From fb3836019f967169c4a198a4bcc2fd15f5e64f95 Mon Sep 17 00:00:00 2001 From: Vladimir Mandic Date: Sat, 12 Nov 2022 11:54:00 -0500 Subject: [PATCH] update dependencies --- CHANGELOG.md | 4 +- dist/face-api.esm.js | 114 +++++++-------- dist/face-api.esm.js.map | 6 +- dist/face-api.js | 136 +++++++++--------- dist/tfjs.esm.js | 90 ++++++------ package.json | 18 +-- typedoc/classes/AgeGenderNet.html | 2 +- typedoc/classes/BoundingBox.html | 2 +- typedoc/classes/Box.html | 2 +- typedoc/classes/ComposableTask.html | 2 +- .../ComputeAllFaceDescriptorsTask.html | 2 +- .../ComputeFaceDescriptorsTaskBase.html | 2 +- .../ComputeSingleFaceDescriptorTask.html | 2 +- .../classes/DetectAllFaceLandmarksTask.html | 2 +- typedoc/classes/DetectAllFacesTask.html | 2 +- .../classes/DetectFaceLandmarksTaskBase.html | 2 +- typedoc/classes/DetectFacesTaskBase.html | 2 +- .../DetectSingleFaceLandmarksTask.html | 2 +- typedoc/classes/DetectSingleFaceTask.html | 2 +- typedoc/classes/Dimensions.html | 2 +- typedoc/classes/FaceDetection.html | 2 +- typedoc/classes/FaceDetectionNet.html | 2 +- typedoc/classes/FaceExpressionNet.html | 2 +- typedoc/classes/FaceExpressions.html | 2 +- typedoc/classes/FaceLandmark68Net.html | 2 +- typedoc/classes/FaceLandmark68TinyNet.html | 2 +- typedoc/classes/FaceLandmarkNet.html | 2 +- typedoc/classes/FaceLandmarks.html | 2 +- typedoc/classes/FaceLandmarks5.html | 2 +- typedoc/classes/FaceLandmarks68.html | 2 +- typedoc/classes/FaceMatch.html | 2 +- typedoc/classes/FaceMatcher.html | 2 +- typedoc/classes/FaceRecognitionNet.html | 2 +- typedoc/classes/LabeledBox.html | 2 +- typedoc/classes/LabeledFaceDescriptors.html | 2 +- typedoc/classes/NetInput.html | 2 +- typedoc/classes/NeuralNetwork.html | 2 +- typedoc/classes/ObjectDetection.html | 2 +- typedoc/classes/Point.html | 2 +- typedoc/classes/PredictedBox.html | 2 +- typedoc/classes/Rect.html | 2 +- typedoc/classes/SsdMobilenetv1.html | 2 +- typedoc/classes/SsdMobilenetv1Options.html | 2 +- typedoc/classes/TinyFaceDetector.html | 2 +- typedoc/classes/TinyFaceDetectorOptions.html | 2 +- typedoc/classes/TinyYolov2.html | 2 +- typedoc/classes/TinyYolov2Options.html | 2 +- typedoc/classes/draw.DrawBox.html | 2 +- typedoc/classes/draw.DrawBoxOptions.html | 2 +- typedoc/classes/draw.DrawFaceLandmarks.html | 2 +- .../draw.DrawFaceLandmarksOptions.html | 2 +- typedoc/classes/draw.DrawTextField.html | 2 +- .../classes/draw.DrawTextFieldOptions.html | 2 +- typedoc/enums/Gender.html | 2 +- typedoc/enums/draw.AnchorPosition.html | 2 +- typedoc/functions/allFaces.html | 2 +- typedoc/functions/allFacesSsdMobilenetv1.html | 2 +- typedoc/functions/allFacesTinyYolov2.html | 2 +- typedoc/functions/awaitMediaLoaded.html | 2 +- typedoc/functions/bufferToImage.html | 2 +- typedoc/functions/computeFaceDescriptor.html | 2 +- typedoc/functions/createCanvas.html | 2 +- typedoc/functions/createCanvasFromMedia.html | 2 +- typedoc/functions/createFaceDetectionNet.html | 2 +- .../functions/createFaceRecognitionNet.html | 2 +- typedoc/functions/createSsdMobilenetv1.html | 2 +- typedoc/functions/createTinyFaceDetector.html | 2 +- typedoc/functions/createTinyYolov2.html | 2 +- typedoc/functions/detectAllFaces.html | 2 +- typedoc/functions/detectFaceLandmarks.html | 2 +- .../functions/detectFaceLandmarksTiny.html | 2 +- typedoc/functions/detectLandmarks.html | 2 +- typedoc/functions/detectSingleFace.html | 2 +- typedoc/functions/draw.drawContour.html | 2 +- typedoc/functions/draw.drawDetections.html | 2 +- .../functions/draw.drawFaceExpressions.html | 2 +- .../functions/draw.drawFaceLandmarks-1.html | 2 +- typedoc/functions/euclideanDistance.html | 2 +- typedoc/functions/extendWithAge.html | 2 +- .../functions/extendWithFaceDescriptor.html | 2 +- .../functions/extendWithFaceDetection.html | 2 +- .../functions/extendWithFaceExpressions.html | 2 +- .../functions/extendWithFaceLandmarks.html | 2 +- typedoc/functions/extendWithGender.html | 2 +- typedoc/functions/extractFaceTensors.html | 2 +- typedoc/functions/extractFaces.html | 2 +- typedoc/functions/fetchImage.html | 2 +- typedoc/functions/fetchJson.html | 2 +- typedoc/functions/fetchNetWeights.html | 2 +- typedoc/functions/fetchOrThrow.html | 2 +- typedoc/functions/fetchVideo.html | 2 +- typedoc/functions/getContext2dOrThrow.html | 2 +- typedoc/functions/getMediaDimensions.html | 2 +- typedoc/functions/imageTensorToCanvas.html | 2 +- typedoc/functions/imageToSquare.html | 2 +- typedoc/functions/inverseSigmoid.html | 2 +- typedoc/functions/iou.html | 2 +- typedoc/functions/isMediaElement.html | 2 +- typedoc/functions/isMediaLoaded.html | 2 +- typedoc/functions/isWithAge.html | 2 +- typedoc/functions/isWithFaceDetection.html | 2 +- typedoc/functions/isWithFaceExpressions.html | 2 +- typedoc/functions/isWithFaceLandmarks.html | 2 +- typedoc/functions/isWithGender.html | 2 +- typedoc/functions/loadAgeGenderModel.html | 2 +- typedoc/functions/loadFaceDetectionModel.html | 2 +- .../functions/loadFaceExpressionModel.html | 2 +- typedoc/functions/loadFaceLandmarkModel.html | 2 +- .../functions/loadFaceLandmarkTinyModel.html | 2 +- .../functions/loadFaceRecognitionModel.html | 2 +- .../functions/loadSsdMobilenetv1Model.html | 2 +- .../functions/loadTinyFaceDetectorModel.html | 2 +- typedoc/functions/loadTinyYolov2Model.html | 2 +- typedoc/functions/loadWeightMap.html | 2 +- typedoc/functions/locateFaces.html | 2 +- typedoc/functions/matchDimensions.html | 2 +- typedoc/functions/minBbox.html | 2 +- typedoc/functions/nonMaxSuppression.html | 2 +- typedoc/functions/normalize.html | 2 +- typedoc/functions/padToSquare.html | 2 +- typedoc/functions/predictAgeAndGender.html | 2 +- .../functions/recognizeFaceExpressions.html | 2 +- typedoc/functions/resizeResults.html | 2 +- typedoc/functions/resolveInput.html | 2 +- typedoc/functions/shuffleArray.html | 2 +- typedoc/functions/sigmoid.html | 2 +- typedoc/functions/ssdMobilenetv1-1.html | 2 +- typedoc/functions/tinyFaceDetector-1.html | 2 +- typedoc/functions/tinyYolov2-1.html | 2 +- typedoc/functions/toNetInput.html | 2 +- .../utils.computeReshapedDimensions.html | 2 +- typedoc/functions/utils.getCenterPoint.html | 2 +- typedoc/functions/utils.isDimensions.html | 2 +- typedoc/functions/utils.isEven.html | 2 +- typedoc/functions/utils.isFloat.html | 2 +- typedoc/functions/utils.isTensor.html | 2 +- typedoc/functions/utils.isTensor1D.html | 2 +- typedoc/functions/utils.isTensor2D.html | 2 +- typedoc/functions/utils.isTensor3D.html | 2 +- typedoc/functions/utils.isTensor4D.html | 2 +- typedoc/functions/utils.isValidNumber.html | 2 +- .../functions/utils.isValidProbablitiy.html | 2 +- typedoc/functions/utils.range.html | 2 +- typedoc/functions/utils.round.html | 2 +- typedoc/functions/validateConfig.html | 2 +- typedoc/index.html | 2 +- typedoc/interfaces/IBoundingBox.html | 2 +- typedoc/interfaces/IDimensions.html | 2 +- typedoc/interfaces/IFaceDetecion.html | 2 +- typedoc/interfaces/IFaceLandmarks.html | 2 +- typedoc/interfaces/IFaceMatch.html | 2 +- typedoc/interfaces/IPoint.html | 2 +- typedoc/interfaces/IRect.html | 2 +- .../interfaces/ISsdMobilenetv1Options.html | 2 +- typedoc/interfaces/ITinyYolov2Options.html | 2 +- typedoc/interfaces/draw.IDrawBoxOptions.html | 2 +- .../draw.IDrawFaceLandmarksOptions.html | 2 +- .../draw.IDrawTextFieldOptions.html | 2 +- typedoc/modules/draw.html | 2 +- typedoc/modules/utils.html | 2 +- typedoc/types/AgeAndGenderPrediction.html | 2 +- typedoc/types/BatchNorm.html | 2 +- typedoc/types/ConvWithBatchNorm.html | 2 +- typedoc/types/DefaultTinyYolov2NetParams.html | 2 +- typedoc/types/Environment.html | 2 +- typedoc/types/FaceDetectionFunction.html | 2 +- typedoc/types/FaceDetectionOptions.html | 2 +- typedoc/types/FileSystem.html | 2 +- typedoc/types/ITinyFaceDetectorOptions.html | 2 +- typedoc/types/MobilenetParams.html | 2 +- typedoc/types/NetOutput.html | 2 +- typedoc/types/NetParams.html | 2 +- typedoc/types/TMediaElement.html | 2 +- typedoc/types/TNetInput.html | 2 +- typedoc/types/TNetInputArg.html | 2 +- typedoc/types/TResolvedNetInput.html | 2 +- typedoc/types/TinyYolov2Config.html | 2 +- typedoc/types/TinyYolov2NetParams.html | 2 +- typedoc/types/WithAge.html | 2 +- typedoc/types/WithFaceDescriptor.html | 2 +- typedoc/types/WithFaceDetection.html | 2 +- typedoc/types/WithFaceExpressions.html | 2 +- typedoc/types/WithFaceLandmarks.html | 2 +- typedoc/types/WithGender.html | 2 +- .../types/draw.DrawFaceExpressionsInput.html | 2 +- .../types/draw.DrawFaceLandmarksInput.html | 2 +- typedoc/types/draw.TDrawDetectionsInput.html | 2 +- typedoc/variables/FACE_EXPRESSION_LABELS.html | 2 +- typedoc/variables/env.html | 2 +- typedoc/variables/nets.html | 2 +- typedoc/variables/version.html | 2 +- 191 files changed, 369 insertions(+), 369 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 699253bc..d49d8c85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,10 +9,10 @@ ## Changelog -### **1.7.6** 2022/10/18 mandic00@live.com +### **HEAD -> master** 2022/10/18 mandic00@live.com -### **origin/master** 2022/10/18 mandic00@live.com +### **1.7.6** 2022/10/18 mandic00@live.com - fix face angles (yaw, pitch, & roll) accuracy (#130) diff --git a/dist/face-api.esm.js b/dist/face-api.esm.js index 0e0af73f..65f3bb82 100644 --- a/dist/face-api.esm.js +++ b/dist/face-api.esm.js @@ -4,51 +4,51 @@ author: ' */ -var aF=Object.defineProperty;var Gr=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,n)=>(typeof require!="undefined"?require:t)[n]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')});var ab=(e,t)=>{for(var n in t)aF(e,n,{get:t[n],enumerable:!0})};var Oe={};ab(Oe,{Abs:()=>wl,Acos:()=>kl,Acosh:()=>Il,AdadeltaOptimizer:()=>of,AdagradOptimizer:()=>lf,AdamOptimizer:()=>uf,AdamaxOptimizer:()=>pf,Add:()=>cs,AddN:()=>mi,All:()=>Sl,Any:()=>Tl,ArgMax:()=>fi,ArgMin:()=>sc,Asin:()=>Nl,Asinh:()=>Cl,Atan:()=>_l,Atan2:()=>Al,Atanh:()=>El,AvgPool:()=>gi,AvgPool3D:()=>ic,AvgPool3DGrad:()=>Yh,AvgPoolGrad:()=>Xh,BackendWasm:()=>kA,BatchMatMul:()=>yi,BatchToSpaceND:()=>$l,Bincount:()=>Zh,BroadcastArgs:()=>Jh,BroadcastTo:()=>RI,Callback:()=>JN,CallbackList:()=>nN,Cast:()=>bi,Ceil:()=>xi,ClipByValue:()=>ds,Complex:()=>Qh,ComplexAbs:()=>oc,Concat:()=>Fl,Conv2D:()=>vi,Conv2DBackpropFilter:()=>em,Conv2DBackpropInput:()=>wi,Conv3D:()=>lc,Conv3DBackpropFilterV2:()=>tm,Conv3DBackpropInputV2:()=>nm,Cos:()=>ki,Cosh:()=>Ii,CropAndResize:()=>Rl,Cumprod:()=>Dl,Cumsum:()=>Si,CustomCallback:()=>rN,DataStorage:()=>jh,DenseBincount:()=>am,DepthToSpace:()=>Ml,DepthwiseConv2dNative:()=>Ti,DepthwiseConv2dNativeBackpropFilter:()=>rm,DepthwiseConv2dNativeBackpropInput:()=>sm,Diag:()=>im,Dilation2D:()=>uc,Dilation2DBackpropFilter:()=>gh,Dilation2DBackpropInput:()=>fh,ENV:()=>Ix,EarlyStopping:()=>QN,Einsum:()=>om,Elu:()=>Ci,EluGrad:()=>lm,Environment:()=>FI,Equal:()=>Ol,Erf:()=>Pl,Exp:()=>_i,ExpandDims:()=>Ll,Expm1:()=>zl,FFT:()=>um,Fill:()=>pc,FlipLeftRight:()=>Wl,Floor:()=>Ei,FloorDiv:()=>Ai,FromPixels:()=>yh,FusedBatchNorm:()=>$i,FusedConv2D:()=>Qs,FusedDepthwiseConv2D:()=>ei,GPGPUContext:()=>ph,GatherNd:()=>Vl,GatherV2:()=>Bl,GraphModel:()=>k0,Greater:()=>Ul,GreaterEqual:()=>Fi,History:()=>aN,IFFT:()=>pm,Identity:()=>Di,Imag:()=>cm,InputSpec:()=>zt,IsFinite:()=>Gl,IsInf:()=>Hl,IsNan:()=>jl,KernelBackend:()=>rc,LRN:()=>cc,LRNGrad:()=>hm,LayerVariable:()=>XT,LayersModel:()=>Nr,LeakyRelu:()=>Ri,Less:()=>ql,LessEqual:()=>Kl,LinSpace:()=>dm,Log:()=>Mi,Log1p:()=>Xl,LogSoftmax:()=>PI,LogicalAnd:()=>Yl,LogicalNot:()=>Zl,LogicalOr:()=>Jl,LogicalXor:()=>MI,LowerBound:()=>qF,MathBackendWebGL:()=>Rf,Max:()=>Pi,MaxPool:()=>Li,MaxPool3D:()=>dc,MaxPool3DGrad:()=>fm,MaxPoolGrad:()=>mm,MaxPoolWithArgmax:()=>gm,Maximum:()=>Oi,Mean:()=>zi,Min:()=>Wi,Minimum:()=>Bi,MirrorPad:()=>Vi,Mod:()=>Ql,MomentumOptimizer:()=>cf,Multinomial:()=>ym,Multiply:()=>Ui,Neg:()=>eu,NonMaxSuppressionV3:()=>nu,NonMaxSuppressionV4:()=>au,NonMaxSuppressionV5:()=>ru,NotEqual:()=>tu,OP_SCOPE_SUFFIX:()=>Cx,OneHot:()=>Gi,OnesLike:()=>su,Optimizer:()=>$r,OptimizerConstructors:()=>Hr,Pack:()=>iu,PadV2:()=>Hi,Pool:()=>KF,Pow:()=>ji,Prelu:()=>qi,Prod:()=>Ki,RMSPropOptimizer:()=>df,RNN:()=>dr,RaggedGather:()=>bm,RaggedRange:()=>xm,RaggedTensorToTensor:()=>vm,Range:()=>hc,Rank:()=>wb,Real:()=>wm,RealDiv:()=>Ni,Reciprocal:()=>ou,Reduction:()=>xn,Relu:()=>Xi,Relu6:()=>Ji,Reshape:()=>lu,ResizeBilinear:()=>Zi,ResizeBilinearGrad:()=>Im,ResizeNearestNeighbor:()=>Yi,ResizeNearestNeighborGrad:()=>km,Reverse:()=>Qi,RotateWithOffset:()=>Su,Round:()=>eo,Rsqrt:()=>to,SGDOptimizer:()=>Bc,ScatterNd:()=>uu,SearchSorted:()=>Sm,Select:()=>pu,Selu:()=>cu,Sequential:()=>hl,Sigmoid:()=>ao,Sign:()=>mu,Sin:()=>no,Sinh:()=>hu,Slice:()=>du,Softmax:()=>io,Softplus:()=>fu,SpaceToBatchND:()=>gu,SparseFillEmptyRows:()=>mc,SparseReshape:()=>bu,SparseSegmentMean:()=>fc,SparseSegmentSum:()=>gc,SparseToDense:()=>Tm,SplitV:()=>yu,Sqrt:()=>ro,Square:()=>yc,SquaredDifference:()=>oo,Step:()=>ms,StridedSlice:()=>xu,StringNGrams:()=>bc,StringSplit:()=>xc,StringToHashBucketFast:()=>vc,Sub:()=>lo,Sum:()=>so,SymbolicTensor:()=>Ba,Tan:()=>uo,Tanh:()=>po,Tensor:()=>Te,TensorBuffer:()=>Ht,Tile:()=>hs,TopK:()=>vu,Transform:()=>wu,Transpose:()=>Tr,Unique:()=>Nm,Unpack:()=>ku,UnsortedSegmentSum:()=>wc,UpperBound:()=>XF,Variable:()=>ts,ZerosLike:()=>Iu,_FusedMatMul:()=>Js,abs:()=>Lt,acos:()=>Bx,acosh:()=>Vx,add:()=>Y,addN:()=>CS,all:()=>$m,any:()=>qp,argMax:()=>ai,argMin:()=>Ux,asin:()=>Gx,asinh:()=>Hx,atan:()=>jx,atan2:()=>qx,atanh:()=>Kx,avgPool:()=>ga,avgPool3d:()=>Yx,backend:()=>uS,backend_util:()=>N,basicLSTMCell:()=>$S,batchNorm:()=>ys,batchNorm2d:()=>Zx,batchNorm3d:()=>Jx,batchNorm4d:()=>Qx,batchToSpaceND:()=>Ac,bincount:()=>ev,booleanMaskAsync:()=>hT,broadcastArgs:()=>FS,broadcastTo:()=>Ks,broadcast_util:()=>Tu,browser:()=>co,buffer:()=>Pe,callbacks:()=>bH,cast:()=>oe,ceil:()=>tv,clipByValue:()=>en,clone:()=>rr,complex:()=>Cr,concat:()=>Ze,concat1d:()=>nv,concat2d:()=>av,concat3d:()=>rv,concat4d:()=>sv,constraints:()=>JT,conv1d:()=>Fm,conv2d:()=>$t,conv2dTranspose:()=>Dm,conv3d:()=>ov,conv3dTranspose:()=>lv,copyRegisteredKernels:()=>QF,cos:()=>$c,cosh:()=>Rm,cosineWindow:()=>tf,cumprod:()=>Kp,cumsum:()=>Mm,customGrad:()=>or,data:()=>I2,denseBincount:()=>Sh,deprecationWarn:()=>Rx,depthToSpace:()=>uv,depthwiseConv2d:()=>bs,deregisterOp:()=>wH,device_util:()=>Tc,diag:()=>RS,dilation2d:()=>pv,disableDeprecationWarnings:()=>CR,dispose:()=>_e,disposeVariables:()=>_R,div:()=>he,divNoNan:()=>cv,dot:()=>dv,dropout:()=>zv,einsum:()=>MS,elu:()=>Nu,enableDebugMode:()=>NR,enableProdMode:()=>TR,enclosingPowerOfTwo:()=>Wv,engine:()=>Na,env:()=>H,equal:()=>Qn,erf:()=>hv,euclideanNorm:()=>gv,exp:()=>fn,expandDims:()=>Zt,expm1:()=>yv,eye:()=>Pm,fft:()=>zc,fill:()=>gn,findBackend:()=>MR,findBackendFactory:()=>PR,floor:()=>_u,floorDiv:()=>Am,forceHalfFloat:()=>V_,fused:()=>pl,gather:()=>Eu,gatherND:()=>yT,gather_util:()=>Mx,getBackend:()=>DR,getGradient:()=>xb,getKernel:()=>bh,getKernelsForBackend:()=>xh,getThreadsCount:()=>mpe,gpgpu_util:()=>v_,grad:()=>iO,grads:()=>oO,greater:()=>Nn,greaterEqual:()=>Er,ifft:()=>ul,imag:()=>Cc,image:()=>za,inTopKAsync:()=>bT,initializers:()=>QT,input:()=>bN,io:()=>Ut,irfft:()=>Zm,isFinite:()=>bv,isInf:()=>xv,isNaN:()=>vv,keep:()=>Jt,kernel_impls:()=>cr,layers:()=>eN,leakyRelu:()=>Fc,less:()=>Om,lessEqual:()=>xs,linalg:()=>Uv,linspace:()=>WS,loadGraphModel:()=>S6,loadGraphModelSync:()=>T6,loadLayersModel:()=>xU,localResponseNormalization:()=>wv,log:()=>ea,log1p:()=>Dc,logSigmoid:()=>kv,logSoftmax:()=>zm,logSumExp:()=>Wm,logicalAnd:()=>Ea,logicalNot:()=>Rc,logicalOr:()=>Bm,logicalXor:()=>Iv,losses:()=>AT,lowerBound:()=>VS,matMul:()=>Fe,math:()=>lS,max:()=>ha,maxPool:()=>Dt,maxPool3d:()=>Sv,maxPoolWithArgmax:()=>US,maximum:()=>pr,mean:()=>Nt,memory:()=>kh,meshgrid:()=>GS,metrics:()=>XN,min:()=>il,minimum:()=>Au,mirrorPad:()=>Tv,mod:()=>Nv,model:()=>kU,models:()=>YN,moments:()=>Mc,movingAverage:()=>mT,mul:()=>z,multiRNNCell:()=>HS,multinomial:()=>jS,neg:()=>bt,nextFrame:()=>Gv,norm:()=>Cu,notEqual:()=>ii,oneHot:()=>rl,ones:()=>Zn,onesLike:()=>ta,op:()=>L,outerProduct:()=>qS,pad:()=>ya,pad1d:()=>KS,pad2d:()=>XS,pad3d:()=>YS,pad4d:()=>ZS,pool:()=>Cv,pow:()=>_r,prelu:()=>Oc,print:()=>$x,prod:()=>_v,profile:()=>ER,raggedGather:()=>JS,raggedRange:()=>QS,raggedTensorToTensor:()=>eT,rand:()=>tT,randomGamma:()=>nT,randomNormal:()=>Um,randomStandardNormal:()=>aT,randomUniform:()=>$u,range:()=>ol,ready:()=>FR,real:()=>sl,reciprocal:()=>$v,registerBackend:()=>Em,registerCallbackConstructor:()=>SU,registerGradient:()=>OI,registerKernel:()=>kc,registerOp:()=>vH,regularizers:()=>ZN,relu:()=>Xe,relu6:()=>Gm,removeBackend:()=>RR,reshape:()=>W,reverse:()=>fa,reverse1d:()=>rT,reverse2d:()=>sT,reverse3d:()=>iT,reverse4d:()=>oT,rfft:()=>Wc,round:()=>Hm,rsqrt:()=>jm,scalar:()=>be,scatterND:()=>fT,scatter_util:()=>Px,searchSorted:()=>Vm,selu:()=>qm,separableConv2d:()=>vs,sequential:()=>IU,serialization:()=>ne,setBackend:()=>$R,setPlatform:()=>OR,setThreadsCount:()=>hpe,setWasmPath:()=>cpe,setWasmPaths:()=>dpe,setWebGLContext:()=>GC,setdiff1dAsync:()=>lT,sigmoid:()=>da,sign:()=>Fv,signal:()=>ET,sin:()=>Km,sinh:()=>Xm,slice:()=>Be,slice1d:()=>Lc,slice2d:()=>Ym,slice3d:()=>mo,slice4d:()=>ll,slice_util:()=>jt,softmax:()=>Ka,softplus:()=>ho,spaceToBatchND:()=>Pc,sparse:()=>$T,sparseToDense:()=>gT,spectral:()=>_T,split:()=>zn,sqrt:()=>ln,square:()=>ot,squaredDifference:()=>Jm,squeeze:()=>ws,stack:()=>Ft,step:()=>fo,stridedSlice:()=>Dv,string:()=>FT,sub:()=>pe,sum:()=>fe,sumOutType:()=>_m,tan:()=>Rv,tanh:()=>ri,tensor:()=>kn,tensor1d:()=>Ke,tensor2d:()=>_a,tensor3d:()=>_c,tensor4d:()=>$a,tensor5d:()=>uT,tensor6d:()=>pT,tensor_util:()=>Va,test_util:()=>SS,tidy:()=>P,tile:()=>Ln,time:()=>AR,topk:()=>Mv,train:()=>zs,transpose:()=>Ee,truncatedNormal:()=>Qm,unique:()=>Pv,unregisterGradient:()=>JF,unregisterKernel:()=>ZF,unsortedSegmentSum:()=>ef,unstack:()=>ct,upcastType:()=>ma,upperBound:()=>cT,util:()=>v,valueAndGrad:()=>lO,valueAndGrads:()=>uO,variable:()=>Ov,variableGrads:()=>BS,version:()=>wpe,version_converter:()=>C6,version_core:()=>fM,version_layers:()=>dw,version_wasm:()=>fpe,version_webgl:()=>rJ,webgl:()=>sJ,webgl_util:()=>UC,where:()=>mn,whereAsync:()=>Lv,zeros:()=>It,zerosLike:()=>qe});var rF=Object.create,bx=Object.defineProperty,sF=Object.getOwnPropertyDescriptor,iF=Object.getOwnPropertyNames,oF=Object.getPrototypeOf,lF=Object.prototype.hasOwnProperty,vI=(e=>typeof Gr!="undefined"?Gr:typeof Proxy!="undefined"?new Proxy(e,{get:(t,n)=>(typeof Gr!="undefined"?Gr:t)[n]}):e)(function(e){if(typeof Gr!="undefined")return Gr.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')}),Bt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ae=(e,t)=>{for(var n in t)bx(e,n,{get:t[n],enumerable:!0})},uF=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of iF(t))!lF.call(e,r)&&r!==n&&bx(e,r,{get:()=>t[r],enumerable:!(a=sF(t,r))||a.enumerable});return e},us=(e,t,n)=>(n=e!=null?rF(oF(e)):{},uF(t||!e||!e.__esModule?bx(n,"default",{value:e,enumerable:!0}):n,e)),pF=Bt((e,t)=>{t.exports=a;var n=null;try{n=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(S){}function a(S,M,B){this.low=S|0,this.high=M|0,this.unsigned=!!B}a.prototype.__isLong__,Object.defineProperty(a.prototype,"__isLong__",{value:!0});function r(S){return(S&&S.__isLong__)===!0}a.isLong=r;var s={},i={};function o(S,M){var B,U,G;return M?(S>>>=0,(G=0<=S&&S<256)&&(U=i[S],U)?U:(B=u(S,(S|0)<0?-1:0,!0),G&&(i[S]=B),B)):(S|=0,(G=-128<=S&&S<128)&&(U=s[S],U)?U:(B=u(S,S<0?-1:0,!1),G&&(s[S]=B),B))}a.fromInt=o;function l(S,M){if(isNaN(S))return M?w:x;if(M){if(S<0)return w;if(S>=g)return A}else{if(S<=-y)return R;if(S+1>=y)return E}return S<0?l(-S,M).neg():u(S%f|0,S/f|0,M)}a.fromNumber=l;function u(S,M,B){return new a(S,M,B)}a.fromBits=u;var p=Math.pow;function d(S,M,B){if(S.length===0)throw Error("empty string");if(S==="NaN"||S==="Infinity"||S==="+Infinity"||S==="-Infinity")return x;if(typeof M=="number"?(B=M,M=!1):M=!!M,B=B||10,B<2||360)throw Error("interior hyphen");if(U===0)return d(S.substring(1),M,B).neg();for(var G=l(p(B,8)),q=x,K=0;K>>0:this.low},F.toNumber=function(){return this.unsigned?(this.high>>>0)*f+(this.low>>>0):this.high*f+(this.low>>>0)},F.toString=function(S){if(S=S||10,S<2||36>>0,ee=Q.toString(S);if(q=Z,q.isZero())return ee+K;for(;ee.length<6;)ee="0"+ee;K=""+ee+K}},F.getHighBits=function(){return this.high},F.getHighBitsUnsigned=function(){return this.high>>>0},F.getLowBits=function(){return this.low},F.getLowBitsUnsigned=function(){return this.low>>>0},F.getNumBitsAbs=function(){if(this.isNegative())return this.eq(R)?64:this.neg().getNumBitsAbs();for(var S=this.high!=0?this.high:this.low,M=31;M>0&&(S&1<=0},F.isOdd=function(){return(this.low&1)===1},F.isEven=function(){return(this.low&1)===0},F.equals=function(S){return r(S)||(S=c(S)),this.unsigned!==S.unsigned&&this.high>>>31===1&&S.high>>>31===1?!1:this.high===S.high&&this.low===S.low},F.eq=F.equals,F.notEquals=function(S){return!this.eq(S)},F.neq=F.notEquals,F.ne=F.notEquals,F.lessThan=function(S){return this.comp(S)<0},F.lt=F.lessThan,F.lessThanOrEqual=function(S){return this.comp(S)<=0},F.lte=F.lessThanOrEqual,F.le=F.lessThanOrEqual,F.greaterThan=function(S){return this.comp(S)>0},F.gt=F.greaterThan,F.greaterThanOrEqual=function(S){return this.comp(S)>=0},F.gte=F.greaterThanOrEqual,F.ge=F.greaterThanOrEqual,F.compare=function(S){if(r(S)||(S=c(S)),this.eq(S))return 0;var M=this.isNegative(),B=S.isNegative();return M&&!B?-1:!M&&B?1:this.unsigned?S.high>>>0>this.high>>>0||S.high===this.high&&S.low>>>0>this.low>>>0?-1:1:this.sub(S).isNegative()?-1:1},F.comp=F.compare,F.negate=function(){return!this.unsigned&&this.eq(R)?R:this.not().add(I)},F.neg=F.negate,F.add=function(S){r(S)||(S=c(S));var M=this.high>>>16,B=this.high&65535,U=this.low>>>16,G=this.low&65535,q=S.high>>>16,K=S.high&65535,Z=S.low>>>16,Q=S.low&65535,ee=0,ae=0,te=0,le=0;return le+=G+Q,te+=le>>>16,le&=65535,te+=U+Z,ae+=te>>>16,te&=65535,ae+=B+K,ee+=ae>>>16,ae&=65535,ee+=M+q,ee&=65535,u(te<<16|le,ee<<16|ae,this.unsigned)},F.subtract=function(S){return r(S)||(S=c(S)),this.add(S.neg())},F.sub=F.subtract,F.multiply=function(S){if(this.isZero())return x;if(r(S)||(S=c(S)),n){var M=n.mul(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}if(S.isZero())return x;if(this.eq(R))return S.isOdd()?R:x;if(S.eq(R))return this.isOdd()?R:x;if(this.isNegative())return S.isNegative()?this.neg().mul(S.neg()):this.neg().mul(S).neg();if(S.isNegative())return this.mul(S.neg()).neg();if(this.lt(b)&&S.lt(b))return l(this.toNumber()*S.toNumber(),this.unsigned);var B=this.high>>>16,U=this.high&65535,G=this.low>>>16,q=this.low&65535,K=S.high>>>16,Z=S.high&65535,Q=S.low>>>16,ee=S.low&65535,ae=0,te=0,le=0,ie=0;return ie+=q*ee,le+=ie>>>16,ie&=65535,le+=G*ee,te+=le>>>16,le&=65535,le+=q*Q,te+=le>>>16,le&=65535,te+=U*ee,ae+=te>>>16,te&=65535,te+=G*Q,ae+=te>>>16,te&=65535,te+=q*Z,ae+=te>>>16,te&=65535,ae+=B*ee+U*Q+G*Z+q*K,ae&=65535,u(le<<16|ie,ae<<16|te,this.unsigned)},F.mul=F.multiply,F.divide=function(S){if(r(S)||(S=c(S)),S.isZero())throw Error("division by zero");if(n){if(!this.unsigned&&this.high===-2147483648&&S.low===-1&&S.high===-1)return this;var M=(this.unsigned?n.div_u:n.div_s)(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?w:x;var B,U,G;if(this.unsigned){if(S.unsigned||(S=S.toUnsigned()),S.gt(this))return w;if(S.gt(this.shru(1)))return T;G=w}else{if(this.eq(R)){if(S.eq(I)||S.eq(C))return R;if(S.eq(R))return I;var q=this.shr(1);return B=q.div(S).shl(1),B.eq(x)?S.isNegative()?I:C:(U=this.sub(S.mul(B)),G=B.add(U.div(S)),G)}else if(S.eq(R))return this.unsigned?w:x;if(this.isNegative())return S.isNegative()?this.neg().div(S.neg()):this.neg().div(S).neg();if(S.isNegative())return this.div(S.neg()).neg();G=x}for(U=this;U.gte(S);){B=Math.max(1,Math.floor(U.toNumber()/S.toNumber()));for(var K=Math.ceil(Math.log(B)/Math.LN2),Z=K<=48?1:p(2,K-48),Q=l(B),ee=Q.mul(S);ee.isNegative()||ee.gt(U);)B-=Z,Q=l(B,this.unsigned),ee=Q.mul(S);Q.isZero()&&(Q=I),G=G.add(Q),U=U.sub(ee)}return G},F.div=F.divide,F.modulo=function(S){if(r(S)||(S=c(S)),n){var M=(this.unsigned?n.rem_u:n.rem_s)(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}return this.sub(this.div(S).mul(S))},F.mod=F.modulo,F.rem=F.modulo,F.not=function(){return u(~this.low,~this.high,this.unsigned)},F.and=function(S){return r(S)||(S=c(S)),u(this.low&S.low,this.high&S.high,this.unsigned)},F.or=function(S){return r(S)||(S=c(S)),u(this.low|S.low,this.high|S.high,this.unsigned)},F.xor=function(S){return r(S)||(S=c(S)),u(this.low^S.low,this.high^S.high,this.unsigned)},F.shiftLeft=function(S){return r(S)&&(S=S.toInt()),(S&=63)===0?this:S<32?u(this.low<>>32-S,this.unsigned):u(0,this.low<>>S|this.high<<32-S,this.high>>S,this.unsigned):u(this.high>>S-32,this.high>=0?0:-1,this.unsigned)},F.shr=F.shiftRight,F.shiftRightUnsigned=function(S){if(r(S)&&(S=S.toInt()),S&=63,S===0)return this;var M=this.high;if(S<32){var B=this.low;return u(B>>>S|M<<32-S,M>>>S,this.unsigned)}else return S===32?u(M,0,this.unsigned):u(M>>>S-32,0,this.unsigned)},F.shru=F.shiftRightUnsigned,F.shr_u=F.shiftRightUnsigned,F.toSigned=function(){return this.unsigned?u(this.low,this.high,!1):this},F.toUnsigned=function(){return this.unsigned?this:u(this.low,this.high,!0)},F.toBytes=function(S){return S?this.toBytesLE():this.toBytesBE()},F.toBytesLE=function(){var S=this.high,M=this.low;return[M&255,M>>>8&255,M>>>16&255,M>>>24,S&255,S>>>8&255,S>>>16&255,S>>>24]},F.toBytesBE=function(){var S=this.high,M=this.low;return[S>>>24,S>>>16&255,S>>>8&255,S&255,M>>>24,M>>>16&255,M>>>8&255,M&255]},a.fromBytes=function(S,M,B){return B?a.fromBytesLE(S,M):a.fromBytesBE(S,M)},a.fromBytesLE=function(S,M){return new a(S[0]|S[1]<<8|S[2]<<16|S[3]<<24,S[4]|S[5]<<8|S[6]<<16|S[7]<<24,M)},a.fromBytesBE=function(S,M){return new a(S[4]<<24|S[5]<<16|S[6]<<8|S[7],S[0]<<24|S[1]<<16|S[2]<<8|S[3],M)}}),cF=Bt(()=>{}),dF=Bt(()=>{}),hF=Bt((e,t)=>{(function(n,a,r){function s(u){var p=this,d=l();p.next=function(){var c=2091639*p.s0+p.c*23283064365386963e-26;return p.s0=p.s1,p.s1=p.s2,p.s2=c-(p.c=c|0)},p.c=1,p.s0=d(" "),p.s1=d(" "),p.s2=d(" "),p.s0-=d(u),p.s0<0&&(p.s0+=1),p.s1-=d(u),p.s1<0&&(p.s1+=1),p.s2-=d(u),p.s2<0&&(p.s2+=1),d=null}function i(u,p){return p.c=u.c,p.s0=u.s0,p.s1=u.s1,p.s2=u.s2,p}function o(u,p){var d=new s(u),c=p&&p.state,h=d.next;return h.int32=function(){return d.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,c&&(typeof c=="object"&&i(c,d),h.state=function(){return i(d,{})}),h}function l(){var u=4022871197,p=function(d){d=String(d);for(var c=0;c>>0,h-=u,h*=u,u=h>>>0,h-=u,u+=h*4294967296}return(u>>>0)*23283064365386963e-26};return p}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.alea=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),mF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.x=0,u.y=0,u.z=0,u.w=0,u.next=function(){var c=u.x^u.x<<11;return u.x=u.y,u.y=u.z,u.z=u.w,u.w^=u.w>>>19^c^c>>>8},l===(l|0)?u.x=l:p+=l;for(var d=0;d>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor128=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),fF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.next=function(){var c=u.x^u.x>>>2;return u.x=u.y,u.y=u.z,u.z=u.w,u.w=u.v,(u.d=u.d+362437|0)+(u.v=u.v^u.v<<4^(c^c<<1))|0},u.x=0,u.y=0,u.z=0,u.w=0,u.v=0,l===(l|0)?u.x=l:p+=l;for(var d=0;d>>4),u.next()}function i(l,u){return u.x=l.x,u.y=l.y,u.z=l.z,u.w=l.w,u.v=l.v,u.d=l.d,u}function o(l,u){var p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorwow=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),gF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var d=u.x,c=u.i,h,m,f;return h=d[c],h^=h>>>7,m=h^h<<24,h=d[c+1&7],m^=h^h>>>10,h=d[c+3&7],m^=h^h>>>3,h=d[c+4&7],m^=h^h<<7,h=d[c+7&7],h=h^h<<13,m^=h^h<<9,d[c]=m,u.i=c+1&7,m};function p(d,c){var h,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=""+c,h=0;h0;--h)d.next()}p(u,l)}function i(l,u){return u.x=l.x.slice(),u.i=l.i,u}function o(l,u){l==null&&(l=+new Date);var p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(d.x&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorshift7=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),yF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var d=u.w,c=u.X,h=u.i,m,f;return u.w=d=d+1640531527|0,f=c[h+34&127],m=c[h=h+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[h]=f^m,u.i=h,f+(d^d>>>16)|0};function p(d,c){var h,m,f,g,y,b=[],x=128;for(c===(c|0)?(m=c,c=null):(c=c+"\0",m=0,x=Math.max(x,c.length)),f=0,g=-32;g>>15,m^=m<<4,m^=m>>>13,g>=0&&(y=y+1640531527|0,h=b[g&127]^=m+y,f=h==0?f+1:0);for(f>=128&&(b[(c&&c.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=b[f+34&127],h=b[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,b[f]=m^h;d.w=y,d.X=b,d.i=f}p(u,l)}function i(l,u){return u.i=l.i,u.w=l.w,u.X=l.X.slice(),u}function o(l,u){l==null&&(l=+new Date);var p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(d.X&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor4096=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),bF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.next=function(){var c=u.b,h=u.c,m=u.d,f=u.a;return c=c<<25^c>>>7^h,h=h-m|0,m=m<<24^m>>>8^f,f=f-c|0,u.b=c=c<<20^c>>>12^h,u.c=h=h-m|0,u.d=m<<16^h>>>16^f,u.a=f-c|0},u.a=0,u.b=0,u.c=-1640531527,u.d=1367130551,l===Math.floor(l)?(u.a=l/4294967296|0,u.b=l|0):p+=l;for(var d=0;d>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.tychei=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),xF=Bt(()=>{}),vF=Bt((e,t)=>{(function(n,a,r){var s=256,i=6,o=52,l="random",u=r.pow(s,i),p=r.pow(2,o),d=p*2,c=s-1,h;function m(I,T,C){var E=[];T=T==!0?{entropy:!0}:T||{};var A=b(y(T.entropy?[I,w(a)]:I==null?x():I,3),E),R=new f(E),F=function(){for(var S=R.g(i),M=u,B=0;S=d;)S/=2,M/=2,B>>>=1;return(S+B)/M};return F.int32=function(){return R.g(4)|0},F.quick=function(){return R.g(4)/4294967296},F.double=F,b(w(R.S),a),(T.pass||C||function(S,M,B,U){return U&&(U.S&&g(U,R),S.state=function(){return g(R,{})}),B?(r[l]=S,M):S})(F,A,"global"in T?T.global:this==r,T.state)}function f(I){var T,C=I.length,E=this,A=0,R=E.i=E.j=0,F=E.S=[];for(C||(I=[C++]);A{var n=hF(),a=mF(),r=fF(),s=gF(),i=yF(),o=bF(),l=vF();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),wI=Bt(()=>{}),xx=Bt(()=>{}),dh=Bt(()=>{}),wF=Bt(()=>{}),kF=Bt(()=>{}),IF=Bt(()=>{}),SF=Bt((e,t)=>{var n=(()=>{var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};function s(){return ue.buffer!=ze&&it(ue.buffer),dt}function i(){return ue.buffer!=ze&&it(ue.buffer),Hn}function o(){return ue.buffer!=ze&&it(ue.buffer),Mt}function l(){return ue.buffer!=ze&&it(ue.buffer),sn}function u(){return ue.buffer!=ze&&it(ue.buffer),Fn}function p(){return ue.buffer!=ze&&it(ue.buffer),ia}function d(){return ue.buffer!=ze&&it(ue.buffer),Dn}var c=typeof r!="undefined"?r:{},h,m;c.ready=new Promise(function(D,j){h=D,m=j});var f;typeof process!="undefined"&&process.listeners&&(f={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var g=Object.assign({},c),y=[],b="./this.program",x=(D,j)=>{throw j},w=typeof window=="object",I=typeof importScripts=="function",T=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",C=c.ENVIRONMENT_IS_PTHREAD||!1,E="";function A(D){return c.locateFile?c.locateFile(D,E):E+D}var R,F,S,M;function B(D){D instanceof Rs||Q("exiting due to exception: "+D)}if(T){I?E=dh().dirname(E)+"/":E=__dirname+"/";var U,G;typeof vI=="function"&&(U=xx(),G=dh()),R=(j,re)=>(j=G.normalize(j),U.readFileSync(j,re?void 0:"utf8")),S=j=>{var re=R(j,!0);return re.buffer||(re=new Uint8Array(re)),re},F=(j,re,ce)=>{j=G.normalize(j),U.readFile(j,function(ke,je){ke?ce(ke):re(je.buffer)})},process.argv.length>1&&(b=process.argv[1].replace(/\\/g,"/")),y=process.argv.slice(2),process.on("uncaughtException",function(j){if(!(j instanceof Rs))throw j}),process.on("unhandledRejection",function(j){throw j}),x=(j,re)=>{if(wa())throw process.exitCode=j,re;B(re),process.exit(j)},c.inspect=function(){return"[Emscripten Module object]"};let D;try{D=wF()}catch(j){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),j}global.Worker=D.Worker}else(w||I)&&(I?E=self.location.href:typeof document!="undefined"&&document.currentScript&&(E=document.currentScript.src),typeof a!="undefined"&&a&&(E=a),E.indexOf("blob:")!==0?E=E.substr(0,E.replace(/[?#].*/,"").lastIndexOf("/")+1):E="",T||(R=D=>{var j=new XMLHttpRequest;return j.open("GET",D,!1),j.send(null),j.responseText},I&&(S=D=>{var j=new XMLHttpRequest;return j.open("GET",D,!1),j.responseType="arraybuffer",j.send(null),new Uint8Array(j.response)}),F=(D,j,re)=>{var ce=new XMLHttpRequest;ce.open("GET",D,!0),ce.responseType="arraybuffer",ce.onload=()=>{if(ce.status==200||ce.status==0&&ce.response){j(ce.response);return}re()},ce.onerror=re,ce.send(null)}),M=D=>document.title=D);T&&typeof performance=="undefined"&&(global.performance=kF().performance);var q=console.log.bind(console),K=console.warn.bind(console);T&&(q=D=>U.writeSync(1,D+` +var aF=Object.defineProperty;var Gr=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,n)=>(typeof require!="undefined"?require:t)[n]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')});var ab=(e,t)=>{for(var n in t)aF(e,n,{get:t[n],enumerable:!0})};var Oe={};ab(Oe,{Abs:()=>wl,Acos:()=>kl,Acosh:()=>Il,AdadeltaOptimizer:()=>of,AdagradOptimizer:()=>lf,AdamOptimizer:()=>uf,AdamaxOptimizer:()=>pf,Add:()=>cs,AddN:()=>mi,All:()=>Sl,Any:()=>Tl,ArgMax:()=>fi,ArgMin:()=>sc,Asin:()=>Nl,Asinh:()=>Cl,Atan:()=>_l,Atan2:()=>$l,Atanh:()=>El,AvgPool:()=>gi,AvgPool3D:()=>ic,AvgPool3DGrad:()=>Yh,AvgPoolGrad:()=>Xh,BackendWasm:()=>k$,BatchMatMul:()=>yi,BatchToSpaceND:()=>Al,Bincount:()=>Zh,BroadcastArgs:()=>Jh,BroadcastTo:()=>RI,Callback:()=>JN,CallbackList:()=>nN,Cast:()=>bi,Ceil:()=>xi,ClipByValue:()=>ds,Complex:()=>Qh,ComplexAbs:()=>oc,Concat:()=>Fl,Conv2D:()=>vi,Conv2DBackpropFilter:()=>em,Conv2DBackpropInput:()=>wi,Conv3D:()=>lc,Conv3DBackpropFilterV2:()=>tm,Conv3DBackpropInputV2:()=>nm,Cos:()=>ki,Cosh:()=>Ii,CropAndResize:()=>Rl,Cumprod:()=>Dl,Cumsum:()=>Si,CustomCallback:()=>rN,DataStorage:()=>jh,DenseBincount:()=>am,DepthToSpace:()=>Ml,DepthwiseConv2dNative:()=>Ti,DepthwiseConv2dNativeBackpropFilter:()=>rm,DepthwiseConv2dNativeBackpropInput:()=>sm,Diag:()=>im,Dilation2D:()=>uc,Dilation2DBackpropFilter:()=>gh,Dilation2DBackpropInput:()=>fh,ENV:()=>Ix,EarlyStopping:()=>QN,Einsum:()=>om,Elu:()=>Ci,EluGrad:()=>lm,Environment:()=>FI,Equal:()=>Ol,Erf:()=>Pl,Exp:()=>_i,ExpandDims:()=>Ll,Expm1:()=>zl,FFT:()=>um,Fill:()=>pc,FlipLeftRight:()=>Wl,Floor:()=>Ei,FloorDiv:()=>$i,FromPixels:()=>yh,FusedBatchNorm:()=>Ai,FusedConv2D:()=>Qs,FusedDepthwiseConv2D:()=>ei,GPGPUContext:()=>ph,GatherNd:()=>Vl,GatherV2:()=>Bl,GraphModel:()=>k0,Greater:()=>Ul,GreaterEqual:()=>Fi,History:()=>aN,IFFT:()=>pm,Identity:()=>Di,Imag:()=>cm,InputSpec:()=>zt,IsFinite:()=>Gl,IsInf:()=>Hl,IsNan:()=>jl,KernelBackend:()=>rc,LRN:()=>cc,LRNGrad:()=>hm,LayerVariable:()=>XT,LayersModel:()=>Nr,LeakyRelu:()=>Ri,Less:()=>ql,LessEqual:()=>Kl,LinSpace:()=>dm,Log:()=>Mi,Log1p:()=>Xl,LogSoftmax:()=>PI,LogicalAnd:()=>Yl,LogicalNot:()=>Zl,LogicalOr:()=>Jl,LogicalXor:()=>MI,LowerBound:()=>qF,MathBackendWebGL:()=>Rf,Max:()=>Pi,MaxPool:()=>Li,MaxPool3D:()=>dc,MaxPool3DGrad:()=>fm,MaxPoolGrad:()=>mm,MaxPoolWithArgmax:()=>gm,Maximum:()=>Oi,Mean:()=>zi,Min:()=>Wi,Minimum:()=>Bi,MirrorPad:()=>Vi,Mod:()=>Ql,MomentumOptimizer:()=>cf,Multinomial:()=>ym,Multiply:()=>Ui,Neg:()=>eu,NonMaxSuppressionV3:()=>nu,NonMaxSuppressionV4:()=>au,NonMaxSuppressionV5:()=>ru,NotEqual:()=>tu,OP_SCOPE_SUFFIX:()=>Cx,OneHot:()=>Gi,OnesLike:()=>su,Optimizer:()=>Ar,OptimizerConstructors:()=>Hr,Pack:()=>iu,PadV2:()=>Hi,Pool:()=>KF,Pow:()=>ji,Prelu:()=>qi,Prod:()=>Ki,RMSPropOptimizer:()=>df,RNN:()=>dr,RaggedGather:()=>bm,RaggedRange:()=>xm,RaggedTensorToTensor:()=>vm,Range:()=>hc,Rank:()=>wb,Real:()=>wm,RealDiv:()=>Ni,Reciprocal:()=>ou,Reduction:()=>xn,Relu:()=>Xi,Relu6:()=>Ji,Reshape:()=>lu,ResizeBilinear:()=>Zi,ResizeBilinearGrad:()=>Im,ResizeNearestNeighbor:()=>Yi,ResizeNearestNeighborGrad:()=>km,Reverse:()=>Qi,RotateWithOffset:()=>Su,Round:()=>eo,Rsqrt:()=>to,SGDOptimizer:()=>Bc,ScatterNd:()=>uu,SearchSorted:()=>Sm,Select:()=>pu,Selu:()=>cu,Sequential:()=>hl,Sigmoid:()=>ao,Sign:()=>mu,Sin:()=>no,Sinh:()=>hu,Slice:()=>du,Softmax:()=>io,Softplus:()=>fu,SpaceToBatchND:()=>gu,SparseFillEmptyRows:()=>mc,SparseReshape:()=>bu,SparseSegmentMean:()=>fc,SparseSegmentSum:()=>gc,SparseToDense:()=>Tm,SplitV:()=>yu,Sqrt:()=>ro,Square:()=>yc,SquaredDifference:()=>oo,Step:()=>ms,StridedSlice:()=>xu,StringNGrams:()=>bc,StringSplit:()=>xc,StringToHashBucketFast:()=>vc,Sub:()=>lo,Sum:()=>so,SymbolicTensor:()=>Ba,Tan:()=>uo,Tanh:()=>po,Tensor:()=>Te,TensorBuffer:()=>Ht,Tile:()=>hs,TopK:()=>vu,Transform:()=>wu,Transpose:()=>Tr,Unique:()=>Nm,Unpack:()=>ku,UnsortedSegmentSum:()=>wc,UpperBound:()=>XF,Variable:()=>ts,ZerosLike:()=>Iu,_FusedMatMul:()=>Js,abs:()=>Lt,acos:()=>Bx,acosh:()=>Vx,add:()=>Y,addN:()=>CS,all:()=>Am,any:()=>qp,argMax:()=>ai,argMin:()=>Ux,asin:()=>Gx,asinh:()=>Hx,atan:()=>jx,atan2:()=>qx,atanh:()=>Kx,avgPool:()=>ga,avgPool3d:()=>Yx,backend:()=>uS,backend_util:()=>N,basicLSTMCell:()=>AS,batchNorm:()=>ys,batchNorm2d:()=>Zx,batchNorm3d:()=>Jx,batchNorm4d:()=>Qx,batchToSpaceND:()=>$c,bincount:()=>ev,booleanMaskAsync:()=>hT,broadcastArgs:()=>FS,broadcastTo:()=>Ks,broadcast_util:()=>Tu,browser:()=>co,buffer:()=>Pe,callbacks:()=>bH,cast:()=>le,ceil:()=>tv,clipByValue:()=>en,clone:()=>rr,complex:()=>Cr,concat:()=>Ze,concat1d:()=>nv,concat2d:()=>av,concat3d:()=>rv,concat4d:()=>sv,constraints:()=>JT,conv1d:()=>Fm,conv2d:()=>At,conv2dTranspose:()=>Dm,conv3d:()=>ov,conv3dTranspose:()=>lv,copyRegisteredKernels:()=>QF,cos:()=>Ac,cosh:()=>Rm,cosineWindow:()=>tf,cumprod:()=>Kp,cumsum:()=>Mm,customGrad:()=>or,data:()=>I2,denseBincount:()=>Sh,deprecationWarn:()=>Rx,depthToSpace:()=>uv,depthwiseConv2d:()=>bs,deregisterOp:()=>wH,device_util:()=>Tc,diag:()=>RS,dilation2d:()=>pv,disableDeprecationWarnings:()=>CR,dispose:()=>_e,disposeVariables:()=>_R,div:()=>he,divNoNan:()=>cv,dot:()=>dv,dropout:()=>zv,einsum:()=>MS,elu:()=>Nu,enableDebugMode:()=>NR,enableProdMode:()=>TR,enclosingPowerOfTwo:()=>Wv,engine:()=>Na,env:()=>H,equal:()=>Qn,erf:()=>hv,euclideanNorm:()=>gv,exp:()=>fn,expandDims:()=>Zt,expm1:()=>yv,eye:()=>Pm,fft:()=>zc,fill:()=>gn,findBackend:()=>MR,findBackendFactory:()=>PR,floor:()=>_u,floorDiv:()=>$m,forceHalfFloat:()=>V_,fused:()=>pl,gather:()=>Eu,gatherND:()=>yT,gather_util:()=>Mx,getBackend:()=>DR,getGradient:()=>xb,getKernel:()=>bh,getKernelsForBackend:()=>xh,getThreadsCount:()=>mpe,gpgpu_util:()=>v_,grad:()=>iO,grads:()=>oO,greater:()=>Nn,greaterEqual:()=>Er,ifft:()=>ul,imag:()=>Cc,image:()=>za,inTopKAsync:()=>bT,initializers:()=>QT,input:()=>bN,io:()=>Ut,irfft:()=>Zm,isFinite:()=>bv,isInf:()=>xv,isNaN:()=>vv,keep:()=>Jt,kernel_impls:()=>cr,layers:()=>eN,leakyRelu:()=>Fc,less:()=>Om,lessEqual:()=>xs,linalg:()=>Uv,linspace:()=>WS,loadGraphModel:()=>S6,loadGraphModelSync:()=>T6,loadLayersModel:()=>xU,localResponseNormalization:()=>wv,log:()=>ea,log1p:()=>Dc,logSigmoid:()=>kv,logSoftmax:()=>zm,logSumExp:()=>Wm,logicalAnd:()=>Ea,logicalNot:()=>Rc,logicalOr:()=>Bm,logicalXor:()=>Iv,losses:()=>$T,lowerBound:()=>VS,matMul:()=>Fe,math:()=>lS,max:()=>ha,maxPool:()=>Dt,maxPool3d:()=>Sv,maxPoolWithArgmax:()=>US,maximum:()=>pr,mean:()=>Nt,memory:()=>kh,meshgrid:()=>GS,metrics:()=>XN,min:()=>il,minimum:()=>$u,mirrorPad:()=>Tv,mod:()=>Nv,model:()=>kU,models:()=>YN,moments:()=>Mc,movingAverage:()=>mT,mul:()=>z,multiRNNCell:()=>HS,multinomial:()=>jS,neg:()=>bt,nextFrame:()=>Gv,norm:()=>Cu,notEqual:()=>ii,oneHot:()=>rl,ones:()=>Zn,onesLike:()=>ta,op:()=>L,outerProduct:()=>qS,pad:()=>ya,pad1d:()=>KS,pad2d:()=>XS,pad3d:()=>YS,pad4d:()=>ZS,pool:()=>Cv,pow:()=>_r,prelu:()=>Oc,print:()=>Ax,prod:()=>_v,profile:()=>ER,raggedGather:()=>JS,raggedRange:()=>QS,raggedTensorToTensor:()=>eT,rand:()=>tT,randomGamma:()=>nT,randomNormal:()=>Um,randomStandardNormal:()=>aT,randomUniform:()=>Au,range:()=>ol,ready:()=>FR,real:()=>sl,reciprocal:()=>Av,registerBackend:()=>Em,registerCallbackConstructor:()=>SU,registerGradient:()=>OI,registerKernel:()=>kc,registerOp:()=>vH,regularizers:()=>ZN,relu:()=>Xe,relu6:()=>Gm,removeBackend:()=>RR,reshape:()=>W,reverse:()=>fa,reverse1d:()=>rT,reverse2d:()=>sT,reverse3d:()=>iT,reverse4d:()=>oT,rfft:()=>Wc,round:()=>Hm,rsqrt:()=>jm,scalar:()=>xe,scatterND:()=>fT,scatter_util:()=>Px,searchSorted:()=>Vm,selu:()=>qm,separableConv2d:()=>vs,sequential:()=>IU,serialization:()=>ne,setBackend:()=>AR,setPlatform:()=>OR,setThreadsCount:()=>hpe,setWasmPath:()=>cpe,setWasmPaths:()=>dpe,setWebGLContext:()=>GC,setdiff1dAsync:()=>lT,sigmoid:()=>da,sign:()=>Fv,signal:()=>ET,sin:()=>Km,sinh:()=>Xm,slice:()=>Be,slice1d:()=>Lc,slice2d:()=>Ym,slice3d:()=>mo,slice4d:()=>ll,slice_util:()=>jt,softmax:()=>Ka,softplus:()=>ho,spaceToBatchND:()=>Pc,sparse:()=>AT,sparseToDense:()=>gT,spectral:()=>_T,split:()=>zn,sqrt:()=>ln,square:()=>ot,squaredDifference:()=>Jm,squeeze:()=>ws,stack:()=>Ft,step:()=>fo,stridedSlice:()=>Dv,string:()=>FT,sub:()=>pe,sum:()=>fe,sumOutType:()=>_m,tan:()=>Rv,tanh:()=>ri,tensor:()=>kn,tensor1d:()=>Ke,tensor2d:()=>_a,tensor3d:()=>_c,tensor4d:()=>Aa,tensor5d:()=>uT,tensor6d:()=>pT,tensor_util:()=>Va,test_util:()=>SS,tidy:()=>P,tile:()=>Ln,time:()=>$R,topk:()=>Mv,train:()=>zs,transpose:()=>Ee,truncatedNormal:()=>Qm,unique:()=>Pv,unregisterGradient:()=>JF,unregisterKernel:()=>ZF,unsortedSegmentSum:()=>ef,unstack:()=>ct,upcastType:()=>ma,upperBound:()=>cT,util:()=>v,valueAndGrad:()=>lO,valueAndGrads:()=>uO,variable:()=>Ov,variableGrads:()=>BS,version:()=>wpe,version_converter:()=>C6,version_core:()=>fM,version_layers:()=>dw,version_wasm:()=>fpe,version_webgl:()=>rJ,webgl:()=>sJ,webgl_util:()=>UC,where:()=>mn,whereAsync:()=>Lv,zeros:()=>It,zerosLike:()=>qe});var rF=Object.create,bx=Object.defineProperty,sF=Object.getOwnPropertyDescriptor,iF=Object.getOwnPropertyNames,oF=Object.getPrototypeOf,lF=Object.prototype.hasOwnProperty,vI=(e=>typeof Gr!="undefined"?Gr:typeof Proxy!="undefined"?new Proxy(e,{get:(t,n)=>(typeof Gr!="undefined"?Gr:t)[n]}):e)(function(e){if(typeof Gr!="undefined")return Gr.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')}),Bt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),$e=(e,t)=>{for(var n in t)bx(e,n,{get:t[n],enumerable:!0})},uF=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of iF(t))!lF.call(e,r)&&r!==n&&bx(e,r,{get:()=>t[r],enumerable:!(a=sF(t,r))||a.enumerable});return e},us=(e,t,n)=>(n=e!=null?rF(oF(e)):{},uF(t||!e||!e.__esModule?bx(n,"default",{value:e,enumerable:!0}):n,e)),pF=Bt((e,t)=>{t.exports=a;var n=null;try{n=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(S){}function a(S,M,B){this.low=S|0,this.high=M|0,this.unsigned=!!B}a.prototype.__isLong__,Object.defineProperty(a.prototype,"__isLong__",{value:!0});function r(S){return(S&&S.__isLong__)===!0}a.isLong=r;var s={},i={};function o(S,M){var B,U,G;return M?(S>>>=0,(G=0<=S&&S<256)&&(U=i[S],U)?U:(B=u(S,(S|0)<0?-1:0,!0),G&&(i[S]=B),B)):(S|=0,(G=-128<=S&&S<128)&&(U=s[S],U)?U:(B=u(S,S<0?-1:0,!1),G&&(s[S]=B),B))}a.fromInt=o;function l(S,M){if(isNaN(S))return M?w:x;if(M){if(S<0)return w;if(S>=g)return $}else{if(S<=-y)return R;if(S+1>=y)return E}return S<0?l(-S,M).neg():u(S%f|0,S/f|0,M)}a.fromNumber=l;function u(S,M,B){return new a(S,M,B)}a.fromBits=u;var p=Math.pow;function d(S,M,B){if(S.length===0)throw Error("empty string");if(S==="NaN"||S==="Infinity"||S==="+Infinity"||S==="-Infinity")return x;if(typeof M=="number"?(B=M,M=!1):M=!!M,B=B||10,B<2||360)throw Error("interior hyphen");if(U===0)return d(S.substring(1),M,B).neg();for(var G=l(p(B,8)),q=x,K=0;K>>0:this.low},F.toNumber=function(){return this.unsigned?(this.high>>>0)*f+(this.low>>>0):this.high*f+(this.low>>>0)},F.toString=function(S){if(S=S||10,S<2||36>>0,ee=J.toString(S);if(q=Z,q.isZero())return ee+K;for(;ee.length<6;)ee="0"+ee;K=""+ee+K}},F.getHighBits=function(){return this.high},F.getHighBitsUnsigned=function(){return this.high>>>0},F.getLowBits=function(){return this.low},F.getLowBitsUnsigned=function(){return this.low>>>0},F.getNumBitsAbs=function(){if(this.isNegative())return this.eq(R)?64:this.neg().getNumBitsAbs();for(var S=this.high!=0?this.high:this.low,M=31;M>0&&(S&1<=0},F.isOdd=function(){return(this.low&1)===1},F.isEven=function(){return(this.low&1)===0},F.equals=function(S){return r(S)||(S=c(S)),this.unsigned!==S.unsigned&&this.high>>>31===1&&S.high>>>31===1?!1:this.high===S.high&&this.low===S.low},F.eq=F.equals,F.notEquals=function(S){return!this.eq(S)},F.neq=F.notEquals,F.ne=F.notEquals,F.lessThan=function(S){return this.comp(S)<0},F.lt=F.lessThan,F.lessThanOrEqual=function(S){return this.comp(S)<=0},F.lte=F.lessThanOrEqual,F.le=F.lessThanOrEqual,F.greaterThan=function(S){return this.comp(S)>0},F.gt=F.greaterThan,F.greaterThanOrEqual=function(S){return this.comp(S)>=0},F.gte=F.greaterThanOrEqual,F.ge=F.greaterThanOrEqual,F.compare=function(S){if(r(S)||(S=c(S)),this.eq(S))return 0;var M=this.isNegative(),B=S.isNegative();return M&&!B?-1:!M&&B?1:this.unsigned?S.high>>>0>this.high>>>0||S.high===this.high&&S.low>>>0>this.low>>>0?-1:1:this.sub(S).isNegative()?-1:1},F.comp=F.compare,F.negate=function(){return!this.unsigned&&this.eq(R)?R:this.not().add(I)},F.neg=F.negate,F.add=function(S){r(S)||(S=c(S));var M=this.high>>>16,B=this.high&65535,U=this.low>>>16,G=this.low&65535,q=S.high>>>16,K=S.high&65535,Z=S.low>>>16,J=S.low&65535,ee=0,ae=0,te=0,ie=0;return ie+=G+J,te+=ie>>>16,ie&=65535,te+=U+Z,ae+=te>>>16,te&=65535,ae+=B+K,ee+=ae>>>16,ae&=65535,ee+=M+q,ee&=65535,u(te<<16|ie,ee<<16|ae,this.unsigned)},F.subtract=function(S){return r(S)||(S=c(S)),this.add(S.neg())},F.sub=F.subtract,F.multiply=function(S){if(this.isZero())return x;if(r(S)||(S=c(S)),n){var M=n.mul(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}if(S.isZero())return x;if(this.eq(R))return S.isOdd()?R:x;if(S.eq(R))return this.isOdd()?R:x;if(this.isNegative())return S.isNegative()?this.neg().mul(S.neg()):this.neg().mul(S).neg();if(S.isNegative())return this.mul(S.neg()).neg();if(this.lt(b)&&S.lt(b))return l(this.toNumber()*S.toNumber(),this.unsigned);var B=this.high>>>16,U=this.high&65535,G=this.low>>>16,q=this.low&65535,K=S.high>>>16,Z=S.high&65535,J=S.low>>>16,ee=S.low&65535,ae=0,te=0,ie=0,oe=0;return oe+=q*ee,ie+=oe>>>16,oe&=65535,ie+=G*ee,te+=ie>>>16,ie&=65535,ie+=q*J,te+=ie>>>16,ie&=65535,te+=U*ee,ae+=te>>>16,te&=65535,te+=G*J,ae+=te>>>16,te&=65535,te+=q*Z,ae+=te>>>16,te&=65535,ae+=B*ee+U*J+G*Z+q*K,ae&=65535,u(ie<<16|oe,ae<<16|te,this.unsigned)},F.mul=F.multiply,F.divide=function(S){if(r(S)||(S=c(S)),S.isZero())throw Error("division by zero");if(n){if(!this.unsigned&&this.high===-2147483648&&S.low===-1&&S.high===-1)return this;var M=(this.unsigned?n.div_u:n.div_s)(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?w:x;var B,U,G;if(this.unsigned){if(S.unsigned||(S=S.toUnsigned()),S.gt(this))return w;if(S.gt(this.shru(1)))return T;G=w}else{if(this.eq(R)){if(S.eq(I)||S.eq(C))return R;if(S.eq(R))return I;var q=this.shr(1);return B=q.div(S).shl(1),B.eq(x)?S.isNegative()?I:C:(U=this.sub(S.mul(B)),G=B.add(U.div(S)),G)}else if(S.eq(R))return this.unsigned?w:x;if(this.isNegative())return S.isNegative()?this.neg().div(S.neg()):this.neg().div(S).neg();if(S.isNegative())return this.div(S.neg()).neg();G=x}for(U=this;U.gte(S);){B=Math.max(1,Math.floor(U.toNumber()/S.toNumber()));for(var K=Math.ceil(Math.log(B)/Math.LN2),Z=K<=48?1:p(2,K-48),J=l(B),ee=J.mul(S);ee.isNegative()||ee.gt(U);)B-=Z,J=l(B,this.unsigned),ee=J.mul(S);J.isZero()&&(J=I),G=G.add(J),U=U.sub(ee)}return G},F.div=F.divide,F.modulo=function(S){if(r(S)||(S=c(S)),n){var M=(this.unsigned?n.rem_u:n.rem_s)(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}return this.sub(this.div(S).mul(S))},F.mod=F.modulo,F.rem=F.modulo,F.not=function(){return u(~this.low,~this.high,this.unsigned)},F.and=function(S){return r(S)||(S=c(S)),u(this.low&S.low,this.high&S.high,this.unsigned)},F.or=function(S){return r(S)||(S=c(S)),u(this.low|S.low,this.high|S.high,this.unsigned)},F.xor=function(S){return r(S)||(S=c(S)),u(this.low^S.low,this.high^S.high,this.unsigned)},F.shiftLeft=function(S){return r(S)&&(S=S.toInt()),(S&=63)===0?this:S<32?u(this.low<>>32-S,this.unsigned):u(0,this.low<>>S|this.high<<32-S,this.high>>S,this.unsigned):u(this.high>>S-32,this.high>=0?0:-1,this.unsigned)},F.shr=F.shiftRight,F.shiftRightUnsigned=function(S){if(r(S)&&(S=S.toInt()),S&=63,S===0)return this;var M=this.high;if(S<32){var B=this.low;return u(B>>>S|M<<32-S,M>>>S,this.unsigned)}else return S===32?u(M,0,this.unsigned):u(M>>>S-32,0,this.unsigned)},F.shru=F.shiftRightUnsigned,F.shr_u=F.shiftRightUnsigned,F.toSigned=function(){return this.unsigned?u(this.low,this.high,!1):this},F.toUnsigned=function(){return this.unsigned?this:u(this.low,this.high,!0)},F.toBytes=function(S){return S?this.toBytesLE():this.toBytesBE()},F.toBytesLE=function(){var S=this.high,M=this.low;return[M&255,M>>>8&255,M>>>16&255,M>>>24,S&255,S>>>8&255,S>>>16&255,S>>>24]},F.toBytesBE=function(){var S=this.high,M=this.low;return[S>>>24,S>>>16&255,S>>>8&255,S&255,M>>>24,M>>>16&255,M>>>8&255,M&255]},a.fromBytes=function(S,M,B){return B?a.fromBytesLE(S,M):a.fromBytesBE(S,M)},a.fromBytesLE=function(S,M){return new a(S[0]|S[1]<<8|S[2]<<16|S[3]<<24,S[4]|S[5]<<8|S[6]<<16|S[7]<<24,M)},a.fromBytesBE=function(S,M){return new a(S[4]<<24|S[5]<<16|S[6]<<8|S[7],S[0]<<24|S[1]<<16|S[2]<<8|S[3],M)}}),cF=Bt(()=>{}),dF=Bt(()=>{}),hF=Bt((e,t)=>{(function(n,a,r){function s(u){var p=this,d=l();p.next=function(){var c=2091639*p.s0+p.c*23283064365386963e-26;return p.s0=p.s1,p.s1=p.s2,p.s2=c-(p.c=c|0)},p.c=1,p.s0=d(" "),p.s1=d(" "),p.s2=d(" "),p.s0-=d(u),p.s0<0&&(p.s0+=1),p.s1-=d(u),p.s1<0&&(p.s1+=1),p.s2-=d(u),p.s2<0&&(p.s2+=1),d=null}function i(u,p){return p.c=u.c,p.s0=u.s0,p.s1=u.s1,p.s2=u.s2,p}function o(u,p){var d=new s(u),c=p&&p.state,h=d.next;return h.int32=function(){return d.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,c&&(typeof c=="object"&&i(c,d),h.state=function(){return i(d,{})}),h}function l(){var u=4022871197,p=function(d){d=String(d);for(var c=0;c>>0,h-=u,h*=u,u=h>>>0,h-=u,u+=h*4294967296}return(u>>>0)*23283064365386963e-26};return p}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.alea=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),mF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.x=0,u.y=0,u.z=0,u.w=0,u.next=function(){var c=u.x^u.x<<11;return u.x=u.y,u.y=u.z,u.z=u.w,u.w^=u.w>>>19^c^c>>>8},l===(l|0)?u.x=l:p+=l;for(var d=0;d>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor128=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),fF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.next=function(){var c=u.x^u.x>>>2;return u.x=u.y,u.y=u.z,u.z=u.w,u.w=u.v,(u.d=u.d+362437|0)+(u.v=u.v^u.v<<4^(c^c<<1))|0},u.x=0,u.y=0,u.z=0,u.w=0,u.v=0,l===(l|0)?u.x=l:p+=l;for(var d=0;d>>4),u.next()}function i(l,u){return u.x=l.x,u.y=l.y,u.z=l.z,u.w=l.w,u.v=l.v,u.d=l.d,u}function o(l,u){var p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorwow=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),gF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var d=u.x,c=u.i,h,m,f;return h=d[c],h^=h>>>7,m=h^h<<24,h=d[c+1&7],m^=h^h>>>10,h=d[c+3&7],m^=h^h>>>3,h=d[c+4&7],m^=h^h<<7,h=d[c+7&7],h=h^h<<13,m^=h^h<<9,d[c]=m,u.i=c+1&7,m};function p(d,c){var h,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=""+c,h=0;h0;--h)d.next()}p(u,l)}function i(l,u){return u.x=l.x.slice(),u.i=l.i,u}function o(l,u){l==null&&(l=+new Date);var p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(d.x&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorshift7=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),yF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var d=u.w,c=u.X,h=u.i,m,f;return u.w=d=d+1640531527|0,f=c[h+34&127],m=c[h=h+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[h]=f^m,u.i=h,f+(d^d>>>16)|0};function p(d,c){var h,m,f,g,y,b=[],x=128;for(c===(c|0)?(m=c,c=null):(c=c+"\0",m=0,x=Math.max(x,c.length)),f=0,g=-32;g>>15,m^=m<<4,m^=m>>>13,g>=0&&(y=y+1640531527|0,h=b[g&127]^=m+y,f=h==0?f+1:0);for(f>=128&&(b[(c&&c.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=b[f+34&127],h=b[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,b[f]=m^h;d.w=y,d.X=b,d.i=f}p(u,l)}function i(l,u){return u.i=l.i,u.w=l.w,u.X=l.X.slice(),u}function o(l,u){l==null&&(l=+new Date);var p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(d.X&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor4096=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),bF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.next=function(){var c=u.b,h=u.c,m=u.d,f=u.a;return c=c<<25^c>>>7^h,h=h-m|0,m=m<<24^m>>>8^f,f=f-c|0,u.b=c=c<<20^c>>>12^h,u.c=h=h-m|0,u.d=m<<16^h>>>16^f,u.a=f-c|0},u.a=0,u.b=0,u.c=-1640531527,u.d=1367130551,l===Math.floor(l)?(u.a=l/4294967296|0,u.b=l|0):p+=l;for(var d=0;d>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.tychei=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),xF=Bt(()=>{}),vF=Bt((e,t)=>{(function(n,a,r){var s=256,i=6,o=52,l="random",u=r.pow(s,i),p=r.pow(2,o),d=p*2,c=s-1,h;function m(I,T,C){var E=[];T=T==!0?{entropy:!0}:T||{};var $=b(y(T.entropy?[I,w(a)]:I==null?x():I,3),E),R=new f(E),F=function(){for(var S=R.g(i),M=u,B=0;S=d;)S/=2,M/=2,B>>>=1;return(S+B)/M};return F.int32=function(){return R.g(4)|0},F.quick=function(){return R.g(4)/4294967296},F.double=F,b(w(R.S),a),(T.pass||C||function(S,M,B,U){return U&&(U.S&&g(U,R),S.state=function(){return g(R,{})}),B?(r[l]=S,M):S})(F,$,"global"in T?T.global:this==r,T.state)}function f(I){var T,C=I.length,E=this,$=0,R=E.i=E.j=0,F=E.S=[];for(C||(I=[C++]);${var n=hF(),a=mF(),r=fF(),s=gF(),i=yF(),o=bF(),l=vF();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),wI=Bt(()=>{}),xx=Bt(()=>{}),dh=Bt(()=>{}),wF=Bt(()=>{}),kF=Bt(()=>{}),IF=Bt(()=>{}),SF=Bt((e,t)=>{var n=(()=>{var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};function s(){return ue.buffer!=ze&&it(ue.buffer),dt}function i(){return ue.buffer!=ze&&it(ue.buffer),Hn}function o(){return ue.buffer!=ze&&it(ue.buffer),Mt}function l(){return ue.buffer!=ze&&it(ue.buffer),sn}function u(){return ue.buffer!=ze&&it(ue.buffer),Fn}function p(){return ue.buffer!=ze&&it(ue.buffer),ia}function d(){return ue.buffer!=ze&&it(ue.buffer),Dn}var c=typeof r!="undefined"?r:{},h,m;c.ready=new Promise(function(D,j){h=D,m=j});var f;typeof process!="undefined"&&process.listeners&&(f={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var g=Object.assign({},c),y=[],b="./this.program",x=(D,j)=>{throw j},w=typeof window=="object",I=typeof importScripts=="function",T=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",C=c.ENVIRONMENT_IS_PTHREAD||!1,E="";function $(D){return c.locateFile?c.locateFile(D,E):E+D}var R,F,S,M;function B(D){D instanceof Rs||J("exiting due to exception: "+D)}if(T){I?E=dh().dirname(E)+"/":E=__dirname+"/";var U,G;typeof vI=="function"&&(U=xx(),G=dh()),R=(j,re)=>(j=G.normalize(j),U.readFileSync(j,re?void 0:"utf8")),S=j=>{var re=R(j,!0);return re.buffer||(re=new Uint8Array(re)),re},F=(j,re,ce)=>{j=G.normalize(j),U.readFile(j,function(Ie,je){Ie?ce(Ie):re(je.buffer)})},process.argv.length>1&&(b=process.argv[1].replace(/\\/g,"/")),y=process.argv.slice(2),process.on("uncaughtException",function(j){if(!(j instanceof Rs))throw j}),process.on("unhandledRejection",function(j){throw j}),x=(j,re)=>{if(wa())throw process.exitCode=j,re;B(re),process.exit(j)},c.inspect=function(){return"[Emscripten Module object]"};let D;try{D=wF()}catch(j){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),j}global.Worker=D.Worker}else(w||I)&&(I?E=self.location.href:typeof document!="undefined"&&document.currentScript&&(E=document.currentScript.src),typeof a!="undefined"&&a&&(E=a),E.indexOf("blob:")!==0?E=E.substr(0,E.replace(/[?#].*/,"").lastIndexOf("/")+1):E="",T||(R=D=>{var j=new XMLHttpRequest;return j.open("GET",D,!1),j.send(null),j.responseText},I&&(S=D=>{var j=new XMLHttpRequest;return j.open("GET",D,!1),j.responseType="arraybuffer",j.send(null),new Uint8Array(j.response)}),F=(D,j,re)=>{var ce=new XMLHttpRequest;ce.open("GET",D,!0),ce.responseType="arraybuffer",ce.onload=()=>{if(ce.status==200||ce.status==0&&ce.response){j(ce.response);return}re()},ce.onerror=re,ce.send(null)}),M=D=>document.title=D);T&&typeof performance=="undefined"&&(global.performance=kF().performance);var q=console.log.bind(console),K=console.warn.bind(console);T&&(q=D=>U.writeSync(1,D+` `),K=D=>U.writeSync(2,D+` -`));var Z=c.print||q,Q=c.printErr||K;Object.assign(c,g),g=null,c.arguments&&(y=c.arguments),c.thisProgram&&(b=c.thisProgram),c.quit&&(x=c.quit);var ee=4,ae=Atomics.load,te=Atomics.store,le=Atomics.compareExchange,ie;c.wasmBinary&&(ie=c.wasmBinary);var ye=c.noExitRuntime||!0;typeof WebAssembly!="object"&&Lo("no native wasm support detected");var ue,xe,Ie=!1,Se;function Le(D,j){D||Lo(j)}var Ve=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function nt(D,j,re){for(var ce=j+re,ke=j;D[ke]&&!(ke>=ce);)++ke;if(ke-j>16&&D.buffer&&Ve)return Ve.decode(D.buffer instanceof SharedArrayBuffer?D.slice(j,ke):D.subarray(j,ke));for(var je="";j>10,56320|la&1023)}}return je}function st(D,j){return D?nt(i(),D,j):""}function Je(D,j,re,ce){if(!(ce>0))return 0;for(var ke=re,je=re+ce-1,Ce=0;Ce=55296&&De<=57343){var Ot=D.charCodeAt(++Ce);De=65536+((De&1023)<<10)|Ot&1023}if(De<=127){if(re>=je)break;j[re++]=De}else if(De<=2047){if(re+1>=je)break;j[re++]=192|De>>6,j[re++]=128|De&63}else if(De<=65535){if(re+2>=je)break;j[re++]=224|De>>12,j[re++]=128|De>>6&63,j[re++]=128|De&63}else{if(re+3>=je)break;j[re++]=240|De>>18,j[re++]=128|De>>12&63,j[re++]=128|De>>6&63,j[re++]=128|De&63}}return j[re]=0,re-ke}function at(D,j,re){return Je(D,i(),j,re)}var ze,dt,Hn,Mt,sa,sn,Fn,ia,Dn;C&&(ze=c.buffer);function it(D){ze=D,c.HEAP8=dt=new Int8Array(D),c.HEAP16=Mt=new Int16Array(D),c.HEAP32=sn=new Int32Array(D),c.HEAPU8=Hn=new Uint8Array(D),c.HEAPU16=sa=new Uint16Array(D),c.HEAPU32=Fn=new Uint32Array(D),c.HEAPF32=ia=new Float32Array(D),c.HEAPF64=Dn=new Float64Array(D)}var Rn=c.INITIAL_MEMORY||16777216;if(C)ue=c.wasmMemory,ze=c.buffer;else if(c.wasmMemory)ue=c.wasmMemory;else if(ue=new WebAssembly.Memory({initial:Rn/65536,maximum:32768,shared:!0}),!(ue.buffer instanceof SharedArrayBuffer))throw Q("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),T&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");ue&&(ze=ue.buffer),Rn=ze.byteLength,it(ze);var jn,gr=[],Mo=[],Ja=[],mp=!1;function wa(){return ye}function Po(){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)bg(c.preRun.shift());bp(gr)}function Xt(){mp=!0,!C&&bp(Mo)}function bd(){if(!C){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)I1(c.postRun.shift());bp(Ja)}}function bg(D){gr.unshift(D)}function xg(D){Mo.unshift(D)}function I1(D){Ja.unshift(D)}var Br=0,Oo=null,yr=null;function S1(D){Br++,c.monitorRunDependencies&&c.monitorRunDependencies(Br)}function T1(D){if(Br--,c.monitorRunDependencies&&c.monitorRunDependencies(Br),Br==0&&(Oo!==null&&(clearInterval(Oo),Oo=null),yr)){var j=yr;yr=null,j()}}function Lo(D){C?postMessage({cmd:"onAbort",arg:D}):c.onAbort&&c.onAbort(D),D="Aborted("+D+")",Q(D),Ie=!0,Se=1,D+=". Build with -sASSERTIONS for more info.";var j=new WebAssembly.RuntimeError(D);throw m(j),j}var vg="data:application/octet-stream;base64,";function xd(D){return D.startsWith(vg)}function fp(D){return D.startsWith("file://")}var yn;yn="tfjs-backend-wasm-threaded-simd.wasm",xd(yn)||(yn=A(yn));function vd(D){try{if(D==yn&&ie)return new Uint8Array(ie);if(S)return S(D);throw"both async and sync fetching of the wasm failed"}catch(j){Lo(j)}}function wg(){if(!ie&&(w||I)){if(typeof fetch=="function"&&!fp(yn))return fetch(yn,{credentials:"same-origin"}).then(function(D){if(!D.ok)throw"failed to load wasm binary file at '"+yn+"'";return D.arrayBuffer()}).catch(function(){return vd(yn)});if(F)return new Promise(function(D,j){F(yn,function(re){D(new Uint8Array(re))},j)})}return Promise.resolve().then(function(){return vd(yn)})}function kg(){var D={env:Fd,wasi_snapshot_preview1:Fd};function j(Ce,De){var Ot=Ce.exports;if(c.asm=Ot,Fg(c.asm._emscripten_tls_init),jn=c.asm.__indirect_function_table,xg(c.asm.__wasm_call_ctors),xe=De,!C){var la=$e.unusedWorkers.length;$e.unusedWorkers.forEach(function(xr){$e.loadWasmModuleToWorker(xr,function(){--la||T1("wasm-instantiate")})})}}C||S1("wasm-instantiate");function re(Ce){j(Ce.instance,Ce.module)}function ce(Ce){return wg().then(function(De){return WebAssembly.instantiate(De,D)}).then(function(De){return De}).then(Ce,function(De){Q("failed to asynchronously prepare wasm: "+De),Lo(De)})}function ke(){return!ie&&typeof WebAssembly.instantiateStreaming=="function"&&!xd(yn)&&!fp(yn)&&!T&&typeof fetch=="function"?fetch(yn,{credentials:"same-origin"}).then(function(Ce){var De=WebAssembly.instantiateStreaming(Ce,D);return De.then(re,function(Ot){return Q("wasm streaming compile failed: "+Ot),Q("falling back to ArrayBuffer instantiation"),ce(re)})}):ce(re)}if(c.instantiateWasm)try{var je=c.instantiateWasm(D,j);return je}catch(Ce){Q("Module.instantiateWasm callback failed with error: "+Ce),m(Ce)}return ke().catch(m),{}}var Ig,N1,Sg={};function Rs(D){this.name="ExitStatus",this.message="Program terminated with exit("+D+")",this.status=D}function Tg(D){var j=$e.pthreads[D];delete $e.pthreads[D],j.terminate(),eb(D),$e.runningWorkers.splice($e.runningWorkers.indexOf(j),1),j.pthread_ptr=0}function Ng(D){var j=$e.pthreads[D];j.postMessage({cmd:"cancel"})}function gp(D){var j=$e.pthreads[D];Le(j),$e.returnWorkerToPool(j)}function wd(D){var j=$e.getNewWorker();if(!j)return 6;$e.runningWorkers.push(j),$e.pthreads[D.pthread_ptr]=j,j.pthread_ptr=D.pthread_ptr;var re={cmd:"run",start_routine:D.startRoutine,arg:D.arg,pthread_ptr:D.pthread_ptr};return j.runPthread=()=>{re.time=performance.now(),j.postMessage(re,D.transferList)},j.loaded&&(j.runPthread(),delete j.runPthread),0}var kd={varargs:void 0,get:function(){kd.varargs+=4;var D=l()[kd.varargs-4>>2];return D},getStr:function(D){var j=st(D);return j}};function yp(D){if(C)return Vr(1,1,D);Se=D,wa()||($e.terminateAllThreads(),c.onExit&&c.onExit(D),Ie=!0),x(D,new Rs(D))}function C1(D,j){if(Se=D,!j&&C)throw Sd(D),"unwind";yp(D)}var Id=C1;function Cg(D){if(D instanceof Rs||D=="unwind")return Se;x(1,D)}var $e={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?$e.initWorker():$e.initMainThread()},initMainThread:function(){for(var D=8;D--;)$e.allocateUnusedWorker()},initWorker:function(){ye=!1},setExitStatus:function(D){Se=D},terminateAllThreads:function(){for(var D of Object.values($e.pthreads))$e.returnWorkerToPool(D);for(var D of $e.unusedWorkers)D.terminate();$e.unusedWorkers=[]},returnWorkerToPool:function(D){var j=D.pthread_ptr;delete $e.pthreads[j],$e.unusedWorkers.push(D),$e.runningWorkers.splice($e.runningWorkers.indexOf(D),1),D.pthread_ptr=0,eb(j)},receiveObjectTransfer:function(D){},threadInitTLS:function(){$e.tlsInitFunctions.forEach(D=>D())},loadWasmModuleToWorker:function(D,j){D.onmessage=re=>{var ce=re.data,ke=ce.cmd;if(D.pthread_ptr&&($e.currentProxiedOperationCallerThread=D.pthread_ptr),ce.targetThread&&ce.targetThread!=Ld()){var je=$e.pthreads[ce.targetThread];je?je.postMessage(ce,ce.transferList):Q('Internal error! Worker sent a message "'+ke+'" to target pthread '+ce.targetThread+", but that thread no longer exists!"),$e.currentProxiedOperationCallerThread=void 0;return}ke==="processProxyingQueue"?xp(ce.queue):ke==="spawnThread"?wd(ce):ke==="cleanupThread"?gp(ce.thread):ke==="killThread"?Tg(ce.thread):ke==="cancelThread"?Ng(ce.thread):ke==="loaded"?(D.loaded=!0,j&&j(D),D.runPthread&&(D.runPthread(),delete D.runPthread)):ke==="print"?Z("Thread "+ce.threadId+": "+ce.text):ke==="printErr"?Q("Thread "+ce.threadId+": "+ce.text):ke==="alert"?alert("Thread "+ce.threadId+": "+ce.text):ce.target==="setimmediate"?D.postMessage(ce):ke==="onAbort"?c.onAbort&&c.onAbort(ce.arg):ke&&Q("worker sent an unknown command "+ke),$e.currentProxiedOperationCallerThread=void 0},D.onerror=re=>{var ce="worker sent an error!";throw Q(ce+" "+re.filename+":"+re.lineno+": "+re.message),re},T&&(D.on("message",function(re){D.onmessage({data:re})}),D.on("error",function(re){D.onerror(re)}),D.on("detachedExit",function(){})),D.postMessage({cmd:"load",urlOrBlob:c.mainScriptUrlOrBlob||a,wasmMemory:ue,wasmModule:xe})},allocateUnusedWorker:function(){var D=A("tfjs-backend-wasm-threaded-simd.worker.js");$e.unusedWorkers.push(new Worker(D))},getNewWorker:function(){return $e.unusedWorkers.length==0&&($e.allocateUnusedWorker(),$e.loadWasmModuleToWorker($e.unusedWorkers[0])),$e.unusedWorkers.pop()}};c.PThread=$e;function bp(D){for(;D.length>0;)D.shift()(c)}function _g(D){var j=tb(),re=D();return zd(j),re}function _1(D){return D}function E1(D){var j=/\b_Z[\w\d_]+/g;return D.replace(j,function(re){var ce=re;return re===ce?re:ce+" ["+re+"]"})}function Eg(){var D=Ld(),j=l()[D+44>>2],re=l()[D+48>>2],ce=j-re;P1(j,ce),zd(j)}c.establishStackSpace=Eg;function Sd(D){if(C)return Vr(2,0,D);try{Id(D)}catch(j){Cg(j)}}var zo=[];function Ag(D){var j=zo[D];return j||(D>=zo.length&&(zo.length=D+1),zo[D]=j=jn.get(D)),j}function $g(D,j){var re=Ag(D)(j);wa()?$e.setExitStatus(re):M1(re)}c.invokeEntryPoint=$g;function A1(){var D=new Error;if(!D.stack){try{throw new Error}catch(j){D=j}if(!D.stack)return"(no stack trace available)"}return D.stack.toString()}function Fg(D){$e.tlsInitFunctions.push(D)}function Dg(D,j){s().set(D,j)}function Rg(D){F1(D,!I,1,!w),$e.threadInitTLS()}function Mg(D){C?postMessage({cmd:"cleanupThread",thread:D}):gp(D)}function Td(D,j,re,ce){return C?Vr(3,1,D,j,re,ce):Nd(D,j,re,ce)}function Nd(D,j,re,ce){if(typeof SharedArrayBuffer=="undefined")return Q("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var ke=[],je=0;if(C&&(ke.length===0||je))return Td(D,j,re,ce);if(je)return je;var Ce={startRoutine:re,pthread_ptr:D,arg:ce,transferList:ke};return C?(Ce.cmd="spawnThread",postMessage(Ce,ke),0):wd(Ce)}function Pg(){return 2097152}var Og=!0;function Lg(){return Og}function xp(D){Atomics.store(l(),D>>2,1),Ld()&&R1(D),Atomics.compareExchange(l(),D>>2,1,0)}c.executeNotifiedProxyingQueue=xp;function zg(D,j,re,ce){if(D==j)setTimeout(()=>xp(ce));else if(C)postMessage({targetThread:D,cmd:"processProxyingQueue",queue:ce});else{var ke=$e.pthreads[D];if(!ke)return;ke.postMessage({cmd:"processProxyingQueue",queue:ce})}return 1}function Wg(D,j,re){return-1}function Bg(){Lo("")}function Ms(D){Ms.shown||(Ms.shown={}),Ms.shown[D]||(Ms.shown[D]=1,T&&(D="warning: "+D),Q(D))}function Vg(){T||I||Ms("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function Ug(){return Date.now()}function Cd(){return 2147483648}function Gg(){return Cd()}var Wo;T?Wo=()=>{var D=process.hrtime();return D[0]*1e3+D[1]/1e6}:C?Wo=()=>performance.now()-c.__performance_now_clock_drift:Wo=()=>performance.now();function Hg(D,j,re){i().copyWithin(D,j,j+re)}function jg(){return T?IF().cpus().length:navigator.hardwareConcurrency}function Vr(D,j){var re=arguments.length-2,ce=arguments;return _g(()=>{for(var ke=re,je=Wd(ke*8),Ce=je>>3,De=0;De>3,ke=0;ke>>16),it(ue.buffer),1}catch(j){}}function Xg(D){var j=i().length;if(D=D>>>0,D<=j)return!1;var re=Cd();if(D>re)return!1;let ce=(Ot,la)=>Ot+(la-Ot%la)%la;for(var ke=1;ke<=4;ke*=2){var je=j*(1+.2/ke);je=Math.min(je,D+100663296);var Ce=Math.min(re,ce(Math.max(D,je),65536)),De=Kg(Ce);if(De)return!0}return!1}function Yg(){throw"unwind"}function _d(D){return C?Vr(4,1,D):52}function Ed(D,j,re,ce,ke){return C?Vr(5,1,D,j,re,ce,ke):70}var Zg=[null,[],[]];function Jg(D,j){var re=Zg[D];j===0||j===10?((D===1?Z:Q)(nt(re,0)),re.length=0):re.push(j)}function Ad(D,j,re,ce){if(C)return Vr(6,1,D,j,re,ce);for(var ke=0,je=0;je>2],De=u()[j+4>>2];j+=8;for(var Ot=0;Ot>2]=ke,0}function $d(D){var j=c["_"+D];return j}function Qg(D,j,re,ce,ke){var je={string:ua=>{var Go=0;if(ua!=null&&ua!==0){var z1=(ua.length<<2)+1;Go=Wd(z1),at(ua,Go,z1)}return Go},array:ua=>{var Go=Wd(ua.length);return Dg(ua,Go),Go}};function Ce(ua){return j==="string"?st(ua):j==="boolean"?Boolean(ua):ua}var De=$d(D),Ot=[],la=0;if(ce)for(var xr=0;xrCe==="number"||Ce==="boolean"),je=j!=="string";return je&&ke&&!ce?$d(D):function(){return Qg(D,j,re,arguments,ce)}}$e.init();var ty=[null,yp,Sd,Td,_d,Ed,Ad],Fd={__emscripten_init_main_thread_js:Rg,__emscripten_thread_cleanup:Mg,__pthread_create_js:Nd,_emscripten_default_pthread_stack_size:Pg,_emscripten_get_now_is_monotonic:Lg,_emscripten_notify_task_queue:zg,_emscripten_set_offscreencanvas_size:Wg,abort:Bg,emscripten_check_blocking_allowed:Vg,emscripten_date_now:Ug,emscripten_get_heap_max:Gg,emscripten_get_now:Wo,emscripten_memcpy_big:Hg,emscripten_num_logical_cores:jg,emscripten_receive_on_main_thread_js:qg,emscripten_resize_heap:Xg,emscripten_unwind_to_js_event_loop:Yg,exit:Id,fd_close:_d,fd_seek:Ed,fd_write:Ad,memory:ue||c.wasmMemory},$1=kg(),ny=c.___wasm_call_ctors=function(){return(ny=c.___wasm_call_ctors=c.asm.__wasm_call_ctors).apply(null,arguments)},ay=c._init=function(){return(ay=c._init=c.asm.init).apply(null,arguments)},ry=c._init_with_threads_count=function(){return(ry=c._init_with_threads_count=c.asm.init_with_threads_count).apply(null,arguments)},sy=c._get_threads_count=function(){return(sy=c._get_threads_count=c.asm.get_threads_count).apply(null,arguments)},iy=c._register_tensor=function(){return(iy=c._register_tensor=c.asm.register_tensor).apply(null,arguments)},oy=c._dispose_data=function(){return(oy=c._dispose_data=c.asm.dispose_data).apply(null,arguments)},ly=c._dispose=function(){return(ly=c._dispose=c.asm.dispose).apply(null,arguments)},uy=c._Abs=function(){return(uy=c._Abs=c.asm.Abs).apply(null,arguments)},py=c._Add=function(){return(py=c._Add=c.asm.Add).apply(null,arguments)},cy=c._AddN=function(){return(cy=c._AddN=c.asm.AddN).apply(null,arguments)},dy=c._All=function(){return(dy=c._All=c.asm.All).apply(null,arguments)},hy=c._Any=function(){return(hy=c._Any=c.asm.Any).apply(null,arguments)},my=c._ArgMax=function(){return(my=c._ArgMax=c.asm.ArgMax).apply(null,arguments)},fy=c._AvgPool=function(){return(fy=c._AvgPool=c.asm.AvgPool).apply(null,arguments)},gy=c._BatchMatMul=function(){return(gy=c._BatchMatMul=c.asm.BatchMatMul).apply(null,arguments)},yy=c._Ceil=function(){return(yy=c._Ceil=c.asm.Ceil).apply(null,arguments)},by=c._ClipByValue=function(){return(by=c._ClipByValue=c.asm.ClipByValue).apply(null,arguments)},xy=c._Conv2D=function(){return(xy=c._Conv2D=c.asm.Conv2D).apply(null,arguments)},vy=c._Conv2DBackpropInput=function(){return(vy=c._Conv2DBackpropInput=c.asm.Conv2DBackpropInput).apply(null,arguments)},wy=c._Cos=function(){return(wy=c._Cos=c.asm.Cos).apply(null,arguments)},ky=c._Cosh=function(){return(ky=c._Cosh=c.asm.Cosh).apply(null,arguments)},Iy=c._CropAndResize=function(){return(Iy=c._CropAndResize=c.asm.CropAndResize).apply(null,arguments)},Sy=c._Cumprod=function(){return(Sy=c._Cumprod=c.asm.Cumprod).apply(null,arguments)},Ty=c._Cumsum=function(){return(Ty=c._Cumsum=c.asm.Cumsum).apply(null,arguments)},Ny=c._DepthToSpace=function(){return(Ny=c._DepthToSpace=c.asm.DepthToSpace).apply(null,arguments)},Cy=c._DepthwiseConv2dNative=function(){return(Cy=c._DepthwiseConv2dNative=c.asm.DepthwiseConv2dNative).apply(null,arguments)},_y=c._Elu=function(){return(_y=c._Elu=c.asm.Elu).apply(null,arguments)},Ey=c._Equal=function(){return(Ey=c._Equal=c.asm.Equal).apply(null,arguments)},Ay=c._Exp=function(){return(Ay=c._Exp=c.asm.Exp).apply(null,arguments)},$y=c._FlipLeftRight=function(){return($y=c._FlipLeftRight=c.asm.FlipLeftRight).apply(null,arguments)},Fy=c._Floor=function(){return(Fy=c._Floor=c.asm.Floor).apply(null,arguments)},Dy=c._FloorDiv=function(){return(Dy=c._FloorDiv=c.asm.FloorDiv).apply(null,arguments)},Ry=c._FusedBatchNorm=function(){return(Ry=c._FusedBatchNorm=c.asm.FusedBatchNorm).apply(null,arguments)},My=c._FusedConv2D=function(){return(My=c._FusedConv2D=c.asm.FusedConv2D).apply(null,arguments)},Py=c._FusedDepthwiseConv2D=function(){return(Py=c._FusedDepthwiseConv2D=c.asm.FusedDepthwiseConv2D).apply(null,arguments)},Oy=c._Gather=function(){return(Oy=c._Gather=c.asm.Gather).apply(null,arguments)},Ly=c._GatherNd=function(){return(Ly=c._GatherNd=c.asm.GatherNd).apply(null,arguments)},zy=c._Greater=function(){return(zy=c._Greater=c.asm.Greater).apply(null,arguments)},Wy=c._GreaterEqual=function(){return(Wy=c._GreaterEqual=c.asm.GreaterEqual).apply(null,arguments)},By=c._LeakyRelu=function(){return(By=c._LeakyRelu=c.asm.LeakyRelu).apply(null,arguments)},Vy=c._Less=function(){return(Vy=c._Less=c.asm.Less).apply(null,arguments)},Uy=c._LessEqual=function(){return(Uy=c._LessEqual=c.asm.LessEqual).apply(null,arguments)},Gy=c._Log=function(){return(Gy=c._Log=c.asm.Log).apply(null,arguments)},Hy=c._LogicalAnd=function(){return(Hy=c._LogicalAnd=c.asm.LogicalAnd).apply(null,arguments)},jy=c._LogicalNot=function(){return(jy=c._LogicalNot=c.asm.LogicalNot).apply(null,arguments)},qy=c._LogicalOr=function(){return(qy=c._LogicalOr=c.asm.LogicalOr).apply(null,arguments)},Ky=c._LogicalXor=function(){return(Ky=c._LogicalXor=c.asm.LogicalXor).apply(null,arguments)},Xy=c._Max=function(){return(Xy=c._Max=c.asm.Max).apply(null,arguments)},Dd=c._MaxPool=function(){return(Dd=c._MaxPool=c.asm.MaxPool).apply(null,arguments)},Rd=c._Maximum=function(){return(Rd=c._Maximum=c.asm.Maximum).apply(null,arguments)},wp=c._Mean=function(){return(wp=c._Mean=c.asm.Mean).apply(null,arguments)},Yy=c._Min=function(){return(Yy=c._Min=c.asm.Min).apply(null,arguments)},Zy=c._Minimum=function(){return(Zy=c._Minimum=c.asm.Minimum).apply(null,arguments)},Bo=c._MirrorPad=function(){return(Bo=c._MirrorPad=c.asm.MirrorPad).apply(null,arguments)},Md=c._Multiply=function(){return(Md=c._Multiply=c.asm.Multiply).apply(null,arguments)},Vo=c._Neg=function(){return(Vo=c._Neg=c.asm.Neg).apply(null,arguments)},Uo=c._NonMaxSuppressionV3=function(){return(Uo=c._NonMaxSuppressionV3=c.asm.NonMaxSuppressionV3).apply(null,arguments)},Jy=c._NonMaxSuppressionV4=function(){return(Jy=c._NonMaxSuppressionV4=c.asm.NonMaxSuppressionV4).apply(null,arguments)},X=c._NonMaxSuppressionV5=function(){return(X=c._NonMaxSuppressionV5=c.asm.NonMaxSuppressionV5).apply(null,arguments)},se=c._NotEqual=function(){return(se=c._NotEqual=c.asm.NotEqual).apply(null,arguments)},we=c._OneHot=function(){return(we=c._OneHot=c.asm.OneHot).apply(null,arguments)},He=c._PadV2=function(){return(He=c._PadV2=c.asm.PadV2).apply(null,arguments)},wt=c._Pow=function(){return(wt=c._Pow=c.asm.Pow).apply(null,arguments)},kt=c._Prelu=function(){return(kt=c._Prelu=c.asm.Prelu).apply(null,arguments)},Ue=c._Prod=function(){return(Ue=c._Prod=c.asm.Prod).apply(null,arguments)},We=c._RealDiv=function(){return(We=c._RealDiv=c.asm.RealDiv).apply(null,arguments)},Pt=c._Relu=function(){return(Pt=c._Relu=c.asm.Relu).apply(null,arguments)},oa=c._Relu6=function(){return(oa=c._Relu6=c.asm.Relu6).apply(null,arguments)},br=c._ResizeBilinear=function(){return(br=c._ResizeBilinear=c.asm.ResizeBilinear).apply(null,arguments)},Pd=c._ResizeNearestNeighbor=function(){return(Pd=c._ResizeNearestNeighbor=c.asm.ResizeNearestNeighbor).apply(null,arguments)},kp=c._Reverse=function(){return(kp=c._Reverse=c.asm.Reverse).apply(null,arguments)},Qy=c._RotateWithOffset=function(){return(Qy=c._RotateWithOffset=c.asm.RotateWithOffset).apply(null,arguments)},Mn=c._Round=function(){return(Mn=c._Round=c.asm.Round).apply(null,arguments)},Ur=c._Rsqrt=function(){return(Ur=c._Rsqrt=c.asm.Rsqrt).apply(null,arguments)},Od=c._ScatterNd=function(){return(Od=c._ScatterNd=c.asm.ScatterNd).apply(null,arguments)},S$=c._SelectV2=function(){return(S$=c._SelectV2=c.asm.SelectV2).apply(null,arguments)},T$=c._Sigmoid=function(){return(T$=c._Sigmoid=c.asm.Sigmoid).apply(null,arguments)},N$=c._Sin=function(){return(N$=c._Sin=c.asm.Sin).apply(null,arguments)},C$=c._Softmax=function(){return(C$=c._Softmax=c.asm.Softmax).apply(null,arguments)},_$=c._SparseFillEmptyRows=function(){return(_$=c._SparseFillEmptyRows=c.asm.SparseFillEmptyRows).apply(null,arguments)},E$=c._SparseReshape=function(){return(E$=c._SparseReshape=c.asm.SparseReshape).apply(null,arguments)},A$=c._SparseSegmentReduction=function(){return(A$=c._SparseSegmentReduction=c.asm.SparseSegmentReduction).apply(null,arguments)},$$=c._Sqrt=function(){return($$=c._Sqrt=c.asm.Sqrt).apply(null,arguments)},F$=c._Square=function(){return(F$=c._Square=c.asm.Square).apply(null,arguments)},D$=c._SquaredDifference=function(){return(D$=c._SquaredDifference=c.asm.SquaredDifference).apply(null,arguments)},R$=c._Step=function(){return(R$=c._Step=c.asm.Step).apply(null,arguments)},M$=c._StridedSlice=function(){return(M$=c._StridedSlice=c.asm.StridedSlice).apply(null,arguments)},P$=c._Sub=function(){return(P$=c._Sub=c.asm.Sub).apply(null,arguments)},O$=c._Sum=function(){return(O$=c._Sum=c.asm.Sum).apply(null,arguments)},L$=c._Tan=function(){return(L$=c._Tan=c.asm.Tan).apply(null,arguments)},z$=c._Tanh=function(){return(z$=c._Tanh=c.asm.Tanh).apply(null,arguments)},W$=c._Tile=function(){return(W$=c._Tile=c.asm.Tile).apply(null,arguments)},B$=c._TopK=function(){return(B$=c._TopK=c.asm.TopK).apply(null,arguments)},V$=c._Transform=function(){return(V$=c._Transform=c.asm.Transform).apply(null,arguments)},U$=c._Transpose=function(){return(U$=c._Transpose=c.asm.Transpose).apply(null,arguments)},G$=c.__FusedMatMul=function(){return(G$=c.__FusedMatMul=c.asm._FusedMatMul).apply(null,arguments)},H$=c._malloc=function(){return(H$=c._malloc=c.asm.malloc).apply(null,arguments)},j$=c._free=function(){return(j$=c._free=c.asm.free).apply(null,arguments)},q$=c.__emscripten_tls_init=function(){return(q$=c.__emscripten_tls_init=c.asm._emscripten_tls_init).apply(null,arguments)},Ld=c._pthread_self=function(){return(Ld=c._pthread_self=c.asm.pthread_self).apply(null,arguments)},K$=c.___errno_location=function(){return(K$=c.___errno_location=c.asm.__errno_location).apply(null,arguments)},F1=c.__emscripten_thread_init=function(){return(F1=c.__emscripten_thread_init=c.asm._emscripten_thread_init).apply(null,arguments)},X$=c.__emscripten_thread_crashed=function(){return(X$=c.__emscripten_thread_crashed=c.asm._emscripten_thread_crashed).apply(null,arguments)},Y$=c._emscripten_main_thread_process_queued_calls=function(){return(Y$=c._emscripten_main_thread_process_queued_calls=c.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},Z$=c._emscripten_main_browser_thread_id=function(){return(Z$=c._emscripten_main_browser_thread_id=c.asm.emscripten_main_browser_thread_id).apply(null,arguments)},D1=c._emscripten_run_in_main_runtime_thread_js=function(){return(D1=c._emscripten_run_in_main_runtime_thread_js=c.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},J$=c._emscripten_dispatch_to_thread_=function(){return(J$=c._emscripten_dispatch_to_thread_=c.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},R1=c.__emscripten_proxy_execute_task_queue=function(){return(R1=c.__emscripten_proxy_execute_task_queue=c.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},eb=c.__emscripten_thread_free_data=function(){return(eb=c.__emscripten_thread_free_data=c.asm._emscripten_thread_free_data).apply(null,arguments)},M1=c.__emscripten_thread_exit=function(){return(M1=c.__emscripten_thread_exit=c.asm._emscripten_thread_exit).apply(null,arguments)},P1=c._emscripten_stack_set_limits=function(){return(P1=c._emscripten_stack_set_limits=c.asm.emscripten_stack_set_limits).apply(null,arguments)},tb=c.stackSave=function(){return(tb=c.stackSave=c.asm.stackSave).apply(null,arguments)},zd=c.stackRestore=function(){return(zd=c.stackRestore=c.asm.stackRestore).apply(null,arguments)},Wd=c.stackAlloc=function(){return(Wd=c.stackAlloc=c.asm.stackAlloc).apply(null,arguments)},Q$=c.dynCall_iijjiiii=function(){return(Q$=c.dynCall_iijjiiii=c.asm.dynCall_iijjiiii).apply(null,arguments)},eF=c.dynCall_jiji=function(){return(eF=c.dynCall_jiji=c.asm.dynCall_jiji).apply(null,arguments)};c.keepRuntimeAlive=wa,c.wasmMemory=ue,c.cwrap=ey,c.ExitStatus=Rs,c.PThread=$e;var Bd;yr=function D(){Bd||O1(),Bd||(yr=D)};function O1(D){if(D=D||y,Br>0)return;if(C){h(c),Xt(),postMessage({cmd:"loaded"});return}if(Po(),Br>0)return;function j(){Bd||(Bd=!0,c.calledRun=!0,!Ie&&(Xt(),h(c),c.onRuntimeInitialized&&c.onRuntimeInitialized(),bd()))}c.setStatus?(c.setStatus("Running..."),setTimeout(function(){setTimeout(function(){c.setStatus("")},1),j()},1)):j()}if(c.preInit)for(typeof c.preInit=="function"&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.pop()();O1();var Vd;f&&(Vd={uncaughtException:process.listeners("uncaughtException").filter(function(D){return!f.uncaughtException.indexOf(D)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(D){return!f.unhandledRejection.indexOf(D)>-1})});var Ud;if(typeof WasmBackendModule!="undefined")Ud=WasmBackendModule;else if(typeof r!="undefined")Ud=r;else throw new Error("Could not find wasm module in post.js");if(Vd){var tF=Ud._dispose;Ud._dispose=function(){tF(),Vd.uncaughtException.forEach(function(D){process.removeListener("uncaughtException",D)}),Vd.unhandledRejection.forEach(function(D){process.removeListener("unhandledRejection",D)})}}return r.ready}})();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModuleThreadedSimd=n)}),TF=Bt((e,t)=>{t.exports.wasmWorkerContents=`"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",data=>onmessage({data:data}));var fs=require("fs");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,"utf8"))},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+" -");return}console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob=="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance})}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.pthread_ptr,0,0,1);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module["executeNotifiedProxyingQueue"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["__emscripten_thread_exit"](ex.status)}}else{throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processProxyingQueue"){if(initializedJS){Module["executeNotifiedProxyingQueue"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}};`}),NF=Bt((e,t)=>{var n=(()=>{var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};var s=typeof r!="undefined"?r:{},i,o;s.ready=new Promise(function(X,se){i=X,o=se});var l;typeof process!="undefined"&&process.listeners&&(l={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var u=Object.assign({},s),p=[],d="./this.program",c=(X,se)=>{throw se},h=typeof window=="object",m=typeof importScripts=="function",f=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g="";function y(X){return s.locateFile?s.locateFile(X,g):g+X}var b,x,w,I;function T(X){X instanceof Oo||R("exiting due to exception: "+X)}if(f){m?g=dh().dirname(g)+"/":g=__dirname+"/";var C,E;typeof vI=="function"&&(C=xx(),E=dh()),b=(X,se)=>(X=E.normalize(X),C.readFileSync(X,se?void 0:"utf8")),w=X=>{var se=b(X,!0);return se.buffer||(se=new Uint8Array(se)),se},x=(X,se,we)=>{X=E.normalize(X),C.readFile(X,function(He,wt){He?we(He):se(wt.buffer)})},process.argv.length>1&&(d=process.argv[1].replace(/\\/g,"/")),p=process.argv.slice(2),process.on("uncaughtException",function(X){if(!(X instanceof Oo))throw X}),process.on("unhandledRejection",function(X){throw X}),c=(X,se)=>{if(Hn())throw process.exitCode=X,se;T(se),process.exit(X)},s.inspect=function(){return"[Emscripten Module object]"}}else(h||m)&&(m?g=self.location.href:typeof document!="undefined"&&document.currentScript&&(g=document.currentScript.src),a&&(g=a),g.indexOf("blob:")!==0?g=g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1):g="",b=X=>{var se=new XMLHttpRequest;return se.open("GET",X,!1),se.send(null),se.responseText},m&&(w=X=>{var se=new XMLHttpRequest;return se.open("GET",X,!1),se.responseType="arraybuffer",se.send(null),new Uint8Array(se.response)}),x=(X,se,we)=>{var He=new XMLHttpRequest;He.open("GET",X,!0),He.responseType="arraybuffer",He.onload=()=>{if(He.status==200||He.status==0&&He.response){se(He.response);return}we()},He.onerror=we,He.send(null)},I=X=>document.title=X);var A=s.print||console.log.bind(console),R=s.printErr||console.warn.bind(console);Object.assign(s,u),u=null,s.arguments&&(p=s.arguments),s.thisProgram&&(d=s.thisProgram),s.quit&&(c=s.quit);var F=4,S;s.wasmBinary&&(S=s.wasmBinary);var M=s.noExitRuntime||!0;typeof WebAssembly!="object"&&Ja("no native wasm support detected");var B,U=!1,G;function q(X,se){X||Ja(se)}var K=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Z(X,se,we){for(var He=se+we,wt=se;X[wt]&&!(wt>=He);)++wt;if(wt-se>16&&X.buffer&&K)return K.decode(X.subarray(se,wt));for(var kt="";se>10,56320|oa&1023)}}return kt}function Q(X,se){return X?Z(ie,X,se):""}function ee(X,se,we,He){if(!(He>0))return 0;for(var wt=we,kt=we+He-1,Ue=0;Ue=55296&&We<=57343){var Pt=X.charCodeAt(++Ue);We=65536+((We&1023)<<10)|Pt&1023}if(We<=127){if(we>=kt)break;se[we++]=We}else if(We<=2047){if(we+1>=kt)break;se[we++]=192|We>>6,se[we++]=128|We&63}else if(We<=65535){if(we+2>=kt)break;se[we++]=224|We>>12,se[we++]=128|We>>6&63,se[we++]=128|We&63}else{if(we+3>=kt)break;se[we++]=240|We>>18,se[we++]=128|We>>12&63,se[we++]=128|We>>6&63,se[we++]=128|We&63}}return se[we]=0,we-wt}function ae(X,se,we){return ee(X,ie,se,we)}var te,le,ie,ye,ue,xe,Ie,Se,Le;function Ve(X){te=X,s.HEAP8=le=new Int8Array(X),s.HEAP16=ye=new Int16Array(X),s.HEAP32=xe=new Int32Array(X),s.HEAPU8=ie=new Uint8Array(X),s.HEAPU16=ue=new Uint16Array(X),s.HEAPU32=Ie=new Uint32Array(X),s.HEAPF32=Se=new Float32Array(X),s.HEAPF64=Le=new Float64Array(X)}var nt=s.INITIAL_MEMORY||16777216,st,Je=[],at=[],ze=[],dt=!1;function Hn(){return M}function Mt(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)Fn(s.preRun.shift());yr(Je)}function sa(){dt=!0,yr(at)}function sn(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)Dn(s.postRun.shift());yr(ze)}function Fn(X){Je.unshift(X)}function ia(X){at.unshift(X)}function Dn(X){ze.unshift(X)}var it=0,Rn=null,jn=null;function gr(X){it++,s.monitorRunDependencies&&s.monitorRunDependencies(it)}function Mo(X){if(it--,s.monitorRunDependencies&&s.monitorRunDependencies(it),it==0&&(Rn!==null&&(clearInterval(Rn),Rn=null),jn)){var se=jn;jn=null,se()}}function Ja(X){s.onAbort&&s.onAbort(X),X="Aborted("+X+")",R(X),U=!0,G=1,X+=". Build with -sASSERTIONS for more info.";var se=new WebAssembly.RuntimeError(X);throw o(se),se}var mp="data:application/octet-stream;base64,";function wa(X){return X.startsWith(mp)}function Po(X){return X.startsWith("file://")}var Xt;Xt="tfjs-backend-wasm.wasm",wa(Xt)||(Xt=y(Xt));function bd(X){try{if(X==Xt&&S)return new Uint8Array(S);if(w)return w(X);throw"both async and sync fetching of the wasm failed"}catch(se){Ja(se)}}function bg(){if(!S&&(h||m)){if(typeof fetch=="function"&&!Po(Xt))return fetch(Xt,{credentials:"same-origin"}).then(function(X){if(!X.ok)throw"failed to load wasm binary file at '"+Xt+"'";return X.arrayBuffer()}).catch(function(){return bd(Xt)});if(x)return new Promise(function(X,se){x(Xt,function(we){X(new Uint8Array(we))},se)})}return Promise.resolve().then(function(){return bd(Xt)})}function xg(){var X={env:yp,wasi_snapshot_preview1:yp};function se(Ue,We){var Pt=Ue.exports;s.asm=Pt,B=s.asm.memory,Ve(B.buffer),st=s.asm.__indirect_function_table,ia(s.asm.__wasm_call_ctors),Mo("wasm-instantiate")}gr("wasm-instantiate");function we(Ue){se(Ue.instance)}function He(Ue){return bg().then(function(We){return WebAssembly.instantiate(We,X)}).then(function(We){return We}).then(Ue,function(We){R("failed to asynchronously prepare wasm: "+We),Ja(We)})}function wt(){return!S&&typeof WebAssembly.instantiateStreaming=="function"&&!wa(Xt)&&!Po(Xt)&&!f&&typeof fetch=="function"?fetch(Xt,{credentials:"same-origin"}).then(function(Ue){var We=WebAssembly.instantiateStreaming(Ue,X);return We.then(we,function(Pt){return R("wasm streaming compile failed: "+Pt),R("falling back to ArrayBuffer instantiation"),He(we)})}):He(we)}if(s.instantiateWasm)try{var kt=s.instantiateWasm(X,se);return kt}catch(Ue){R("Module.instantiateWasm callback failed with error: "+Ue),o(Ue)}return wt().catch(o),{}}var I1,Br;function Oo(X){this.name="ExitStatus",this.message="Program terminated with exit("+X+")",this.status=X}function yr(X){for(;X.length>0;)X.shift()(s)}function S1(X){return X}function T1(X){var se=/\b_Z[\w\d_]+/g;return X.replace(se,function(we){var He=we;return we===He?we:He+" ["+we+"]"})}function Lo(){var X=new Error;if(!X.stack){try{throw new Error}catch(se){X=se}if(!X.stack)return"(no stack trace available)"}return X.stack.toString()}function vg(X,se){le.set(X,se)}function xd(){Ja("")}function fp(){return 2147483648}function yn(){return fp()}function vd(X,se,we){ie.copyWithin(X,se,se+we)}function wg(X){try{return B.grow(X-te.byteLength+65535>>>16),Ve(B.buffer),1}catch(se){}}function kg(X){var se=ie.length;X=X>>>0;var we=fp();if(X>we)return!1;let He=(Pt,oa)=>Pt+(oa-Pt%oa)%oa;for(var wt=1;wt<=4;wt*=2){var kt=se*(1+.2/wt);kt=Math.min(kt,X+100663296);var Ue=Math.min(we,He(Math.max(X,kt),65536)),We=wg(Ue);if(We)return!0}return!1}var Ig={varargs:void 0,get:function(){Ig.varargs+=4;var X=xe[Ig.varargs-4>>2];return X},getStr:function(X){var se=Q(X);return se}};function N1(X){return 52}function Sg(X,se,we,He,wt){return 70}var Rs=[null,[],[]];function Tg(X,se){var we=Rs[X];se===0||se===10?((X===1?A:R)(Z(we,0)),we.length=0):we.push(se)}function Ng(X,se,we,He){for(var wt=0,kt=0;kt>2],We=Ie[se+4>>2];se+=8;for(var Pt=0;Pt>2]=wt,0}function gp(X){var se=s["_"+X];return se}function wd(X,se,we,He,wt){var kt={string:Mn=>{var Ur=0;if(Mn!=null&&Mn!==0){var Od=(Mn.length<<2)+1;Ur=wp(Od),ae(Mn,Ur,Od)}return Ur},array:Mn=>{var Ur=wp(Mn.length);return vg(Mn,Ur),Ur}};function Ue(Mn){return se==="string"?Q(Mn):se==="boolean"?Boolean(Mn):Mn}var We=gp(X),Pt=[],oa=0;if(He)for(var br=0;brUe==="number"||Ue==="boolean"),kt=se!=="string";return kt&&wt&&!He?gp(X):function(){return wd(X,se,we,arguments,He)}}var yp={abort:xd,emscripten_get_heap_max:yn,emscripten_memcpy_big:vd,emscripten_resize_heap:kg,fd_close:N1,fd_seek:Sg,fd_write:Ng},C1=xg(),Id=s.___wasm_call_ctors=function(){return(Id=s.___wasm_call_ctors=s.asm.__wasm_call_ctors).apply(null,arguments)},Cg=s._init=function(){return(Cg=s._init=s.asm.init).apply(null,arguments)},$e=s._init_with_threads_count=function(){return($e=s._init_with_threads_count=s.asm.init_with_threads_count).apply(null,arguments)},bp=s._get_threads_count=function(){return(bp=s._get_threads_count=s.asm.get_threads_count).apply(null,arguments)},_g=s._register_tensor=function(){return(_g=s._register_tensor=s.asm.register_tensor).apply(null,arguments)},_1=s._dispose_data=function(){return(_1=s._dispose_data=s.asm.dispose_data).apply(null,arguments)},E1=s._dispose=function(){return(E1=s._dispose=s.asm.dispose).apply(null,arguments)},Eg=s._Abs=function(){return(Eg=s._Abs=s.asm.Abs).apply(null,arguments)},Sd=s._Add=function(){return(Sd=s._Add=s.asm.Add).apply(null,arguments)},zo=s._AddN=function(){return(zo=s._AddN=s.asm.AddN).apply(null,arguments)},Ag=s._All=function(){return(Ag=s._All=s.asm.All).apply(null,arguments)},$g=s._Any=function(){return($g=s._Any=s.asm.Any).apply(null,arguments)},A1=s._ArgMax=function(){return(A1=s._ArgMax=s.asm.ArgMax).apply(null,arguments)},Fg=s._AvgPool=function(){return(Fg=s._AvgPool=s.asm.AvgPool).apply(null,arguments)},Dg=s._BatchMatMul=function(){return(Dg=s._BatchMatMul=s.asm.BatchMatMul).apply(null,arguments)},Rg=s._Ceil=function(){return(Rg=s._Ceil=s.asm.Ceil).apply(null,arguments)},Mg=s._ClipByValue=function(){return(Mg=s._ClipByValue=s.asm.ClipByValue).apply(null,arguments)},Td=s._Conv2D=function(){return(Td=s._Conv2D=s.asm.Conv2D).apply(null,arguments)},Nd=s._Conv2DBackpropInput=function(){return(Nd=s._Conv2DBackpropInput=s.asm.Conv2DBackpropInput).apply(null,arguments)},Pg=s._Cos=function(){return(Pg=s._Cos=s.asm.Cos).apply(null,arguments)},Og=s._Cosh=function(){return(Og=s._Cosh=s.asm.Cosh).apply(null,arguments)},Lg=s._CropAndResize=function(){return(Lg=s._CropAndResize=s.asm.CropAndResize).apply(null,arguments)},xp=s._Cumprod=function(){return(xp=s._Cumprod=s.asm.Cumprod).apply(null,arguments)},zg=s._Cumsum=function(){return(zg=s._Cumsum=s.asm.Cumsum).apply(null,arguments)},Wg=s._DepthToSpace=function(){return(Wg=s._DepthToSpace=s.asm.DepthToSpace).apply(null,arguments)},Bg=s._DepthwiseConv2dNative=function(){return(Bg=s._DepthwiseConv2dNative=s.asm.DepthwiseConv2dNative).apply(null,arguments)},Ms=s._Elu=function(){return(Ms=s._Elu=s.asm.Elu).apply(null,arguments)},Vg=s._Equal=function(){return(Vg=s._Equal=s.asm.Equal).apply(null,arguments)},Ug=s._Exp=function(){return(Ug=s._Exp=s.asm.Exp).apply(null,arguments)},Cd=s._FlipLeftRight=function(){return(Cd=s._FlipLeftRight=s.asm.FlipLeftRight).apply(null,arguments)},Gg=s._Floor=function(){return(Gg=s._Floor=s.asm.Floor).apply(null,arguments)},Wo=s._FloorDiv=function(){return(Wo=s._FloorDiv=s.asm.FloorDiv).apply(null,arguments)},Hg=s._FusedBatchNorm=function(){return(Hg=s._FusedBatchNorm=s.asm.FusedBatchNorm).apply(null,arguments)},jg=s._FusedConv2D=function(){return(jg=s._FusedConv2D=s.asm.FusedConv2D).apply(null,arguments)},Vr=s._FusedDepthwiseConv2D=function(){return(Vr=s._FusedDepthwiseConv2D=s.asm.FusedDepthwiseConv2D).apply(null,arguments)},vp=s._Gather=function(){return(vp=s._Gather=s.asm.Gather).apply(null,arguments)},qg=s._GatherNd=function(){return(qg=s._GatherNd=s.asm.GatherNd).apply(null,arguments)},Kg=s._Greater=function(){return(Kg=s._Greater=s.asm.Greater).apply(null,arguments)},Xg=s._GreaterEqual=function(){return(Xg=s._GreaterEqual=s.asm.GreaterEqual).apply(null,arguments)},Yg=s._LeakyRelu=function(){return(Yg=s._LeakyRelu=s.asm.LeakyRelu).apply(null,arguments)},_d=s._Less=function(){return(_d=s._Less=s.asm.Less).apply(null,arguments)},Ed=s._LessEqual=function(){return(Ed=s._LessEqual=s.asm.LessEqual).apply(null,arguments)},Zg=s._Log=function(){return(Zg=s._Log=s.asm.Log).apply(null,arguments)},Jg=s._LogicalAnd=function(){return(Jg=s._LogicalAnd=s.asm.LogicalAnd).apply(null,arguments)},Ad=s._LogicalNot=function(){return(Ad=s._LogicalNot=s.asm.LogicalNot).apply(null,arguments)},$d=s._LogicalOr=function(){return($d=s._LogicalOr=s.asm.LogicalOr).apply(null,arguments)},Qg=s._LogicalXor=function(){return(Qg=s._LogicalXor=s.asm.LogicalXor).apply(null,arguments)},ey=s._Max=function(){return(ey=s._Max=s.asm.Max).apply(null,arguments)},ty=s._MaxPool=function(){return(ty=s._MaxPool=s.asm.MaxPool).apply(null,arguments)},Fd=s._Maximum=function(){return(Fd=s._Maximum=s.asm.Maximum).apply(null,arguments)},$1=s._Mean=function(){return($1=s._Mean=s.asm.Mean).apply(null,arguments)},ny=s._Min=function(){return(ny=s._Min=s.asm.Min).apply(null,arguments)},ay=s._Minimum=function(){return(ay=s._Minimum=s.asm.Minimum).apply(null,arguments)},ry=s._MirrorPad=function(){return(ry=s._MirrorPad=s.asm.MirrorPad).apply(null,arguments)},sy=s._Multiply=function(){return(sy=s._Multiply=s.asm.Multiply).apply(null,arguments)},iy=s._Neg=function(){return(iy=s._Neg=s.asm.Neg).apply(null,arguments)},oy=s._NonMaxSuppressionV3=function(){return(oy=s._NonMaxSuppressionV3=s.asm.NonMaxSuppressionV3).apply(null,arguments)},ly=s._NonMaxSuppressionV4=function(){return(ly=s._NonMaxSuppressionV4=s.asm.NonMaxSuppressionV4).apply(null,arguments)},uy=s._NonMaxSuppressionV5=function(){return(uy=s._NonMaxSuppressionV5=s.asm.NonMaxSuppressionV5).apply(null,arguments)},py=s._NotEqual=function(){return(py=s._NotEqual=s.asm.NotEqual).apply(null,arguments)},cy=s._OneHot=function(){return(cy=s._OneHot=s.asm.OneHot).apply(null,arguments)},dy=s._PadV2=function(){return(dy=s._PadV2=s.asm.PadV2).apply(null,arguments)},hy=s._Pow=function(){return(hy=s._Pow=s.asm.Pow).apply(null,arguments)},my=s._Prelu=function(){return(my=s._Prelu=s.asm.Prelu).apply(null,arguments)},fy=s._Prod=function(){return(fy=s._Prod=s.asm.Prod).apply(null,arguments)},gy=s._RealDiv=function(){return(gy=s._RealDiv=s.asm.RealDiv).apply(null,arguments)},yy=s._Relu=function(){return(yy=s._Relu=s.asm.Relu).apply(null,arguments)},by=s._Relu6=function(){return(by=s._Relu6=s.asm.Relu6).apply(null,arguments)},xy=s._ResizeBilinear=function(){return(xy=s._ResizeBilinear=s.asm.ResizeBilinear).apply(null,arguments)},vy=s._ResizeNearestNeighbor=function(){return(vy=s._ResizeNearestNeighbor=s.asm.ResizeNearestNeighbor).apply(null,arguments)},wy=s._Reverse=function(){return(wy=s._Reverse=s.asm.Reverse).apply(null,arguments)},ky=s._RotateWithOffset=function(){return(ky=s._RotateWithOffset=s.asm.RotateWithOffset).apply(null,arguments)},Iy=s._Round=function(){return(Iy=s._Round=s.asm.Round).apply(null,arguments)},Sy=s._Rsqrt=function(){return(Sy=s._Rsqrt=s.asm.Rsqrt).apply(null,arguments)},Ty=s._ScatterNd=function(){return(Ty=s._ScatterNd=s.asm.ScatterNd).apply(null,arguments)},Ny=s._SelectV2=function(){return(Ny=s._SelectV2=s.asm.SelectV2).apply(null,arguments)},Cy=s._Sigmoid=function(){return(Cy=s._Sigmoid=s.asm.Sigmoid).apply(null,arguments)},_y=s._Sin=function(){return(_y=s._Sin=s.asm.Sin).apply(null,arguments)},Ey=s._Softmax=function(){return(Ey=s._Softmax=s.asm.Softmax).apply(null,arguments)},Ay=s._SparseFillEmptyRows=function(){return(Ay=s._SparseFillEmptyRows=s.asm.SparseFillEmptyRows).apply(null,arguments)},$y=s._SparseReshape=function(){return($y=s._SparseReshape=s.asm.SparseReshape).apply(null,arguments)},Fy=s._SparseSegmentReduction=function(){return(Fy=s._SparseSegmentReduction=s.asm.SparseSegmentReduction).apply(null,arguments)},Dy=s._Sqrt=function(){return(Dy=s._Sqrt=s.asm.Sqrt).apply(null,arguments)},Ry=s._Square=function(){return(Ry=s._Square=s.asm.Square).apply(null,arguments)},My=s._SquaredDifference=function(){return(My=s._SquaredDifference=s.asm.SquaredDifference).apply(null,arguments)},Py=s._Step=function(){return(Py=s._Step=s.asm.Step).apply(null,arguments)},Oy=s._StridedSlice=function(){return(Oy=s._StridedSlice=s.asm.StridedSlice).apply(null,arguments)},Ly=s._Sub=function(){return(Ly=s._Sub=s.asm.Sub).apply(null,arguments)},zy=s._Sum=function(){return(zy=s._Sum=s.asm.Sum).apply(null,arguments)},Wy=s._Tan=function(){return(Wy=s._Tan=s.asm.Tan).apply(null,arguments)},By=s._Tanh=function(){return(By=s._Tanh=s.asm.Tanh).apply(null,arguments)},Vy=s._Tile=function(){return(Vy=s._Tile=s.asm.Tile).apply(null,arguments)},Uy=s._TopK=function(){return(Uy=s._TopK=s.asm.TopK).apply(null,arguments)},Gy=s._Transform=function(){return(Gy=s._Transform=s.asm.Transform).apply(null,arguments)},Hy=s._Transpose=function(){return(Hy=s._Transpose=s.asm.Transpose).apply(null,arguments)},jy=s.__FusedMatMul=function(){return(jy=s.__FusedMatMul=s.asm._FusedMatMul).apply(null,arguments)},qy=s._malloc=function(){return(qy=s._malloc=s.asm.malloc).apply(null,arguments)},Ky=s._free=function(){return(Ky=s._free=s.asm.free).apply(null,arguments)},Xy=s.___errno_location=function(){return(Xy=s.___errno_location=s.asm.__errno_location).apply(null,arguments)},Dd=s.stackSave=function(){return(Dd=s.stackSave=s.asm.stackSave).apply(null,arguments)},Rd=s.stackRestore=function(){return(Rd=s.stackRestore=s.asm.stackRestore).apply(null,arguments)},wp=s.stackAlloc=function(){return(wp=s.stackAlloc=s.asm.stackAlloc).apply(null,arguments)},Yy=s.dynCall_iijjiiii=function(){return(Yy=s.dynCall_iijjiiii=s.asm.dynCall_iijjiiii).apply(null,arguments)},Zy=s.dynCall_jiji=function(){return(Zy=s.dynCall_jiji=s.asm.dynCall_jiji).apply(null,arguments)};s.cwrap=kd;var Bo;jn=function X(){Bo||Md(),Bo||(jn=X)};function Md(X){if(X=X||p,it>0||(Mt(),it>0))return;function se(){Bo||(Bo=!0,s.calledRun=!0,!U&&(sa(),i(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),sn()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),se()},1)):se()}if(s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();Md();var Vo;l&&(Vo={uncaughtException:process.listeners("uncaughtException").filter(function(X){return!l.uncaughtException.indexOf(X)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(X){return!l.unhandledRejection.indexOf(X)>-1})});var Uo;if(typeof r!="undefined")Uo=r;else if(typeof WasmBackendModuleThreadedSimd!="undefined")Uo=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(Vo){var Jy=Uo._dispose;Uo._dispose=function(){Jy(),Vo.uncaughtException.forEach(function(X){process.removeListener("uncaughtException",X)}),Vo.unhandledRejection.forEach(function(X){process.removeListener("unhandledRejection",X)})}}return r.ready}})();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModule=n)}),jh=class{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}},rc=class{refCount(e){return qn("refCount")}incRef(e){return qn("incRef")}timerAvailable(){return!0}time(e){return qn("time")}read(e){return qn("read")}readSync(e){return qn("readSync")}readToGPU(e,t){return qn("readToGPU")}numDataIds(){return qn("numDataIds")}disposeData(e,t){return qn("disposeData")}write(e,t,n){return qn("write")}move(e,t,n,a,r){return qn("move")}createTensorFromTexture(e,t,n){return qn("createTensorFromTexture")}memory(){return qn("memory")}floatPrecision(){return qn("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return qn("dispose")}};function qn(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 kI(e){let t=e.length,n=0;for(;t>0;)n=Math.random()*t|0,t--,hh(e,t,n)}function CF(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=e.length,a=0;for(;n>0;)a=Math.random()*n|0,n--,hh(e,n,a),hh(t,n,a)}function Vp(e,t,n){return Math.max(e,Math.min(t,n))}function _F(e){return e%2===0?e:e+1}function hh(e,t,n){let a=e[t];e[t]=e[n],e[n]=a}function EF(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function hi(e){$(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function Zs(e,t=[],n=!1){if(t==null&&(t=[]),Array.isArray(e)||hn(e)&&!n)for(let a=0;a0,n,a){return new Promise((r,s)=>{let i=0,o=()=>{if(e()){r();return}i++;let l=t(i);if(n!=null&&i>=n){s();return}a!=null?a(o,l):setTimeout(o,l)};o()})}function OF(e,t){let n=1,a=-1;for(let s=0;s=0)n*=e[s];else if(e[s]===-1){if(a!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${a} and dim ${s}`);a=s}else if(e[s]<0)throw Error(`Shapes can not be < 0. Found ${e[s]} at dim ${s}`);if(a===-1){if(t>0&&t!==n)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(n===0)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}`);let r=e.slice();return r[a]=t/n,r}function Aa(e,t){let n=t.length;return e=e==null?t.map((a,r)=>r):[].concat(e),$(e.every(a=>a>=-n&&a`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),$(e.every(a=>tl(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function II(e,t){let n=[],a=[],r=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||r?null:Aa(t,e).sort(),i=0;for(let o=0;oo)&&e[o]===1&&(n.push(e[o]),a.push(o)),s[i]<=o&&i++}e[o]!==1&&(n.push(e[o]),a.push(o))}return{newShape:n,keptDims:a}}function SI(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else throw new Error(`Unknown data type ${e}`);return n}function TI(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else if(e==="string")n=new Array(t);else throw new Error(`Unknown data type ${e}`);return n}function NI(e,t){for(let n=0;nt+=n.length),t}function Kr(e){return typeof e=="string"||e instanceof String}function EI(e){return typeof e=="boolean"}function AI(e){return typeof e=="number"}function qh(e){return Array.isArray(e)?qh(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":AI(e)?"float32":Kr(e)?"string":EI(e)?"bool":"float32"}function es(e){return!!(e&&e.constructor&&e.call&&e.apply)}function mh(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function $I(e,t,n,a=!1){let r=new Array;if(t.length===1){let s=t[0]*(a?2:1);for(let i=0;il*u)*(a?2:1);for(let l=0;lr*s)*(n?2:1);if(a===0)return[];if(a!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}${n?" for a complex tensor":""}.`);return $I(0,e,t,n)}function vx(e,t){let n=Kh(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return Zo(e,new Float32Array(n));if(t==="int32")return Zo(e,new Int32Array(n));if(t==="bool")return Zo(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function wx(e){e.forEach(t=>{$(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function WF(e,t,n){if(t===0)return 0;if(t===1)return e[0];let a=e[e.length-1];for(let r=0;r{let[n,a]=t.split(":");this.urlFlags[n]=GF(n,a)})}};function VF(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(UF(t,a[0],a[1]),a.join("="))),t}function UF(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function GF(e,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}function H(){return Ix}var Ix=null;function HF(e){Ix=e}var rb;function DI(){if(rb==null){let e;if(typeof window!="undefined")e=window;else if(typeof global!="undefined")e=global;else if(typeof process!="undefined")e=process;else if(typeof self!="undefined")e=self;else throw new Error("Could not find a global object");rb=e}return rb}function jF(){let e=DI();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function Sx(e,t){let n=jF();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var wl="Abs",kl="Acos",Il="Acosh",cs="Add",mi="AddN",Sl="All",Tl="Any",fi="ArgMax",sc="ArgMin",Nl="Asin",Cl="Asinh",_l="Atan",El="Atanh",Al="Atan2",gi="AvgPool",Xh="AvgPoolGrad",ic="AvgPool3D",Yh="AvgPool3DGrad",yi="BatchMatMul",$l="BatchToSpaceND",Zh="Bincount",RI="BroadcastTo",Jh="BroadcastArgs",bi="Cast",xi="Ceil",ds="ClipByValue",Qh="Complex",oc="ComplexAbs",Fl="Concat",vi="Conv2D",em="Conv2DBackpropFilter",wi="Conv2DBackpropInput",lc="Conv3D",tm="Conv3DBackpropFilterV2",nm="Conv3DBackpropInputV2",ki="Cos",Ii="Cosh",Dl="Cumprod",Si="Cumsum",Rl="CropAndResize",am="DenseBincount",Ml="DepthToSpace",Ti="DepthwiseConv2dNative",rm="DepthwiseConv2dNativeBackpropFilter",sm="DepthwiseConv2dNativeBackpropInput",im="Diag",uc="Dilation2D",fh="Dilation2DBackpropInput",gh="Dilation2DBackpropFilter",Ni="RealDiv",om="Einsum",Ci="Elu",lm="EluGrad",Pl="Erf",Ol="Equal",_i="Exp",Ll="ExpandDims",zl="Expm1",um="FFT",pc="Fill",Wl="FlipLeftRight",Ei="Floor",Ai="FloorDiv",$i="FusedBatchNorm",Bl="GatherV2",Vl="GatherNd",Ul="Greater",Fi="GreaterEqual",Di="Identity",pm="IFFT",cm="Imag",Gl="IsFinite",Hl="IsInf",jl="IsNan",Ri="LeakyRelu",ql="Less",Kl="LessEqual",dm="LinSpace",Mi="Log",Xl="Log1p",Yl="LogicalAnd",Zl="LogicalNot",Jl="LogicalOr",MI="LogicalXor",PI="LogSoftmax",qF="LowerBound",cc="LRN",hm="LRNGrad",Pi="Max",Oi="Maximum",Li="MaxPool",mm="MaxPoolGrad",dc="MaxPool3D",fm="MaxPool3DGrad",gm="MaxPoolWithArgmax",zi="Mean",Wi="Min",Bi="Minimum",Vi="MirrorPad",Ql="Mod",ym="Multinomial",Ui="Multiply",eu="Neg",tu="NotEqual",nu="NonMaxSuppressionV3",au="NonMaxSuppressionV4",ru="NonMaxSuppressionV5",su="OnesLike",Gi="OneHot",iu="Pack",Hi="PadV2",KF="Pool",ji="Pow",qi="Prelu",Ki="Prod",bm="RaggedGather",xm="RaggedRange",vm="RaggedTensorToTensor",hc="Range",wm="Real",ou="Reciprocal",Xi="Relu",lu="Reshape",Yi="ResizeNearestNeighbor",km="ResizeNearestNeighborGrad",Zi="ResizeBilinear",Im="ResizeBilinearGrad",Ji="Relu6",Qi="Reverse",eo="Round",to="Rsqrt",uu="ScatterNd",Sm="SearchSorted",pu="Select",cu="Selu",du="Slice",no="Sin",hu="Sinh",mu="Sign",ao="Sigmoid",fu="Softplus",ro="Sqrt",so="Sum",gu="SpaceToBatchND",yu="SplitV",io="Softmax",mc="SparseFillEmptyRows",bu="SparseReshape",fc="SparseSegmentMean",gc="SparseSegmentSum",Tm="SparseToDense",oo="SquaredDifference",yc="Square",xu="StridedSlice",bc="StringNGrams",xc="StringSplit",vc="StringToHashBucketFast",lo="Sub",uo="Tan",po="Tanh",hs="Tile",vu="TopK",wu="Transform",Tr="Transpose",Nm="Unique",ku="Unpack",wc="UnsortedSegmentSum",XF="UpperBound",Iu="ZerosLike",ms="Step",yh="FromPixels",Su="RotateWithOffset",Js="_FusedMatMul",Qs="FusedConv2D",ei="FusedDepthwiseConv2D";function qr(...e){H().getBool("IS_TEST")||H().getBool("PROD")||console.warn(...e)}function YF(...e){H().getBool("IS_TEST")||H().getBool("PROD")||console.log(...e)}var nl=Sx("kernelRegistry",()=>new Map),Up=Sx("gradRegistry",()=>new Map);function bh(e,t){let n=Tx(e,t);return nl.get(n)}function xb(e){return Up.get(e)}function xh(e){let t=nl.entries(),n=[];for(;;){let{done:a,value:r}=t.next();if(a)break;let[s,i]=r,[o]=s.split("_");o===e&&n.push(i)}return n}function kc(e){let{kernelName:t,backendName:n}=e,a=Tx(t,n);nl.has(a)&&qr(`The kernel '${t}' for backend '${n}' is already registered`),nl.set(a,e)}function OI(e){let{kernelName:t}=e;Up.has(t)&&H().getBool("DEBUG")&&qr(`Overriding the gradient for '${t}'`),Up.set(t,e)}function ZF(e,t){let n=Tx(e,t);if(!nl.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);nl.delete(n)}function JF(e){if(!Up.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);Up.delete(e)}function QF(e,t){xh(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});kc(a)})}function Tx(e,t){return`${t}_${e}`}var v={};Ae(v,{arraysEqual:()=>ps,assert:()=>$,assertNonNegativeIntegerDimensions:()=>wx,assertNonNull:()=>hi,assertShapesMatch:()=>Sn,bytesFromStringArray:()=>_I,bytesPerElement:()=>bb,checkConversionForErrors:()=>NI,clamp:()=>Vp,computeStrides:()=>vl,createScalarValue:()=>sD,createShuffledIndices:()=>MF,decodeString:()=>vh,distSquared:()=>$F,encodeString:()=>Sc,fetch:()=>oD,fingerPrint64:()=>rD,flatten:()=>Zs,getArrayFromDType:()=>TI,getTypedArrayFromDType:()=>SI,hasEncodingLoss:()=>LF,hexToLong:()=>Ic,indexToLoc:()=>BF,inferDtype:()=>qh,inferFromImplicitShape:()=>OF,isBoolean:()=>EI,isFunction:()=>es,isInt:()=>tl,isNumber:()=>AI,isPromise:()=>kx,isScalarShape:()=>FF,isString:()=>Kr,isTypedArray:()=>hn,isValidDtype:()=>CI,locToIndex:()=>WF,makeOnesTypedArray:()=>vx,makeZerosNestedTypedArray:()=>zF,makeZerosTypedArray:()=>Kh,nearestDivisor:()=>mh,nearestLargerEven:()=>_F,now:()=>Gp,parseAxisParam:()=>Aa,randUniform:()=>AF,repeatedTry:()=>PF,rightPad:()=>Lp,shuffle:()=>kI,shuffleCombo:()=>CF,sizeFromShape:()=>mt,sizeToSquarishShape:()=>RF,squeezeShape:()=>II,sum:()=>EF,swap:()=>hh,tanh:()=>DF,toNestedArray:()=>Zo,toTypedArray:()=>Cm});var B1=us(pF()),Ws=B1.default||B1;function Ic(e){return Ws.fromString(e,!0,16)}var LI=Ic("c3a5c85c97cb3127"),Ls=Ic("b492b66fbe98f273"),bn=Ic("9ae16a3b2f90404f");function vb(e){return e.xor(e.shru(47))}function zI(e,t,n){let a=e.slice(t,t+n);return Ws.fromBytes(Array.from(a),!0,!0)}function ht(e,t){return zI(e,t,8)}function V1(e,t){return zI(e,t,4)}function Yt(e,t){return t===0?e:e.shru(t).or(e.shl(64-t))}function Zr(e,t,n=Ic("9ddfea08eb382d69")){let a=e.xor(t).mul(n);a=a.xor(a.shru(47));let r=t.xor(a).mul(n);return r=r.xor(r.shru(47)),r=r.mul(n),r}function eD(e,t,n,a,r,s){r=r.add(e),s=Yt(s.add(r).add(a),21);let i=r;return r=r.add(t),r=r.add(n),s=s.add(Yt(r,44)),[r.add(a),s.add(i)]}function Gd(e,t,n,a){return eD(ht(e,t),ht(e,t+8),ht(e,t+16),ht(e,t+24),n,a)}function tD(e,t=e.length){if(t>=8){let n=bn.add(t*2),a=ht(e,0).add(bn),r=ht(e,t-8),s=Yt(r,37).mul(n).add(a),i=Yt(a,25).add(r).mul(n);return Zr(s,i,n)}if(t>=4){let n=bn.add(t*2),a=V1(e,0);return Zr(a.shl(3).add(t),V1(e,t-4),n)}if(t>0){let n=e[0],a=e[t>>1],r=e[t-1],s=n+(a<<8),i=t+(r<<2);return vb(bn.mul(s).xor(LI.mul(i))).mul(bn)}return bn}function nD(e,t=e.length){let n=bn.add(t*2),a=ht(e,0).mul(Ls),r=ht(e,8),s=ht(e,t-8).mul(n),i=ht(e,t-16).mul(bn);return Zr(Yt(a.add(r),43).add(Yt(s,30)).add(i),a.add(Yt(r.add(bn),18)).add(s),n)}function aD(e,t=e.length){let n=bn.add(t*2),a=ht(e,0).mul(bn),r=ht(e,8),s=ht(e,t-8).mul(n),i=ht(e,t-16).mul(bn),o=Yt(a.add(r),43).add(Yt(s,30)).add(i),l=Zr(o,a.add(Yt(r.add(bn),18)).add(s),n),u=ht(e,16).mul(n),p=ht(e,24),d=o.add(ht(e,t-32)).mul(n),c=l.add(ht(e,t-24)).mul(n);return Zr(Yt(u.add(p),43).add(Yt(d,30)).add(c),u.add(Yt(p.add(a),18)).add(d),n)}function rD(e,t=e.length){let n=Ws.fromNumber(81,!0);if(t<=32)return t<=16?tD(e,t):nD(e,t);if(t<=64)return aD(e,t);let a=n,r=n.mul(Ls).add(113),s=vb(r.mul(bn).add(113)).mul(bn),i=[Ws.UZERO,Ws.UZERO],o=[Ws.UZERO,Ws.UZERO];a=a.mul(bn).add(ht(e,0));let l=0,u=(t-1>>6)*64,p=u+(t-1&63)-63;do a=Yt(a.add(r).add(i[0]).add(ht(e,l+8)),37).mul(Ls),r=Yt(r.add(i[1]).add(ht(e,l+48)),42).mul(Ls),a=a.xor(o[1]),r=r.add(i[0]).add(ht(e,l+40)),s=Yt(s.add(o[0]),33).mul(Ls),i=Gd(e,l,i[1].mul(Ls),a.add(o[0])),o=Gd(e,l+32,s.add(o[1]),r.add(ht(e,l+16))),[s,a]=[a,s],l+=64;while(l!==u);let d=Ls.add(s.and(255).shl(1));return l=p,o[0]=o[0].add(t-1&63),i[0]=i[0].add(o[0]),o[0]=o[0].add(i[0]),a=Yt(a.add(r).add(i[0]).add(ht(e,l+8)),37).mul(d),r=Yt(r.add(i[1]).add(ht(e,l+48)),42).mul(d),a=a.xor(o[1].mul(9)),r=r.add(i[0].mul(9).add(ht(e,l+40))),s=Yt(s.add(o[0]),33).mul(d),i=Gd(e,l,i[1].mul(d),a.add(o[0])),o=Gd(e,l+32,s.add(o[1]),r.add(ht(e,l+16))),[s,a]=[a,s],Zr(Zr(i[0],o[0],d).add(vb(r).mul(LI)).add(s),Zr(i[1],o[1],d).add(a),d)}function sD(e,t){return t==="string"?Sc(e):Cm([e],t)}function iD(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Cm(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=Zs(e)),H().getBool("DEBUG")&&NI(e,t),iD(e,t))return e;if(t==null||t==="float32"||t==="complex64")return new Float32Array(e);if(t==="int32")return new Int32Array(e);if(t==="bool"){let n=new Uint8Array(e.length);for(let a=0;a{a=n()},s,i=Gp();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(r);else{r();for(let o of a)o.dataSync();s=Promise.resolve({kernelMs:Gp()-i})}if(H().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{uD(u,l.dtype,e)})}return{kernelName:e,outputs:a,inputs:t,timeMs:s.then(o=>o.kernelMs),extraInfo:s.then(o=>o.getExtraProfileInfo!=null?o.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:n,timeMs:a,inputs:r,extraInfo:s}=e;n.forEach(i=>{Promise.all([i.data(),a,s]).then(o=>{this.logger.logKernelProfile(t,i,o[0],o[1],r,o[2])})})}};function uD(e,t,n){if(t!=="float32")return!1;for(let a=0;a0?m:""} `}}console.log(`%c${o} %c${i} %c${l}D ${p} %c${u} %c${d} %c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function cD(e,t,n){let a={},r={};for(let l=0;la[f.id]=!0),h=!0,r[u.id]=!0;break}if(h)break}}let s={};s[n.id]=!0;let i={};for(let l=e.length-1;l>=0;l--){let u=e[l],p=u.inputs;for(let d=0;d=0;r--){let s=t[r],i=[];if(s.outputs.forEach(l=>{let u=e[l.id];u!=null?i.push(u):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let o=s.gradient(i);for(let l in s.inputs){if(!(l in o))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(o)}.`);let u=n(()=>o[l]());if(u.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${u.dtype}'`);let p=s.inputs[l];if(!ps(u.shape,p.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${l}' has shape '${u.shape}', which does not match the shape of the input '${p.shape}'`);if(e[p.id]==null)e[p.id]=u;else{let d=e[p.id];e[p.id]=a(d,u),d.dispose()}}}}var U1=20,Ip=3,sb=7;function hD(e,t,n,a){let r=vl(t),s=mD(e,t,n,r),i=t.length,o=ah(e,t,n,r,s),l=["Tensor"];return a&&(l.push(` dtype: ${n}`),l.push(` rank: ${i}`),l.push(` shape: [${t}]`),l.push(" values:")),l.push(o.map(u=>" "+u).join(` +`));var Z=c.print||q,J=c.printErr||K;Object.assign(c,g),g=null,c.arguments&&(y=c.arguments),c.thisProgram&&(b=c.thisProgram),c.quit&&(x=c.quit);var ee=4,ae=Atomics.load,te=Atomics.store,ie=Atomics.compareExchange,oe;c.wasmBinary&&(oe=c.wasmBinary);var ye=c.noExitRuntime||!0;typeof WebAssembly!="object"&&Lo("no native wasm support detected");var ue,be,ke=!1,Se;function Le(D,j){D||Lo(j)}var Ve=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function nt(D,j,re){for(var ce=j+re,Ie=j;D[Ie]&&!(Ie>=ce);)++Ie;if(Ie-j>16&&D.buffer&&Ve)return Ve.decode(D.buffer instanceof SharedArrayBuffer?D.slice(j,Ie):D.subarray(j,Ie));for(var je="";j>10,56320|la&1023)}}return je}function st(D,j){return D?nt(i(),D,j):""}function Je(D,j,re,ce){if(!(ce>0))return 0;for(var Ie=re,je=re+ce-1,Ce=0;Ce=55296&&De<=57343){var Ot=D.charCodeAt(++Ce);De=65536+((De&1023)<<10)|Ot&1023}if(De<=127){if(re>=je)break;j[re++]=De}else if(De<=2047){if(re+1>=je)break;j[re++]=192|De>>6,j[re++]=128|De&63}else if(De<=65535){if(re+2>=je)break;j[re++]=224|De>>12,j[re++]=128|De>>6&63,j[re++]=128|De&63}else{if(re+3>=je)break;j[re++]=240|De>>18,j[re++]=128|De>>12&63,j[re++]=128|De>>6&63,j[re++]=128|De&63}}return j[re]=0,re-Ie}function at(D,j,re){return Je(D,i(),j,re)}var ze,dt,Hn,Mt,sa,sn,Fn,ia,Dn;C&&(ze=c.buffer);function it(D){ze=D,c.HEAP8=dt=new Int8Array(D),c.HEAP16=Mt=new Int16Array(D),c.HEAP32=sn=new Int32Array(D),c.HEAPU8=Hn=new Uint8Array(D),c.HEAPU16=sa=new Uint16Array(D),c.HEAPU32=Fn=new Uint32Array(D),c.HEAPF32=ia=new Float32Array(D),c.HEAPF64=Dn=new Float64Array(D)}var Rn=c.INITIAL_MEMORY||16777216;if(C)ue=c.wasmMemory,ze=c.buffer;else if(c.wasmMemory)ue=c.wasmMemory;else if(ue=new WebAssembly.Memory({initial:Rn/65536,maximum:32768,shared:!0}),!(ue.buffer instanceof SharedArrayBuffer))throw J("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),T&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");ue&&(ze=ue.buffer),Rn=ze.byteLength,it(ze);var jn,gr=[],Mo=[],Ja=[],mp=!1;function wa(){return ye}function Po(){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)bg(c.preRun.shift());bp(gr)}function Xt(){mp=!0,!C&&bp(Mo)}function bd(){if(!C){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)I1(c.postRun.shift());bp(Ja)}}function bg(D){gr.unshift(D)}function xg(D){Mo.unshift(D)}function I1(D){Ja.unshift(D)}var Br=0,Oo=null,yr=null;function S1(D){Br++,c.monitorRunDependencies&&c.monitorRunDependencies(Br)}function T1(D){if(Br--,c.monitorRunDependencies&&c.monitorRunDependencies(Br),Br==0&&(Oo!==null&&(clearInterval(Oo),Oo=null),yr)){var j=yr;yr=null,j()}}function Lo(D){C?postMessage({cmd:"onAbort",arg:D}):c.onAbort&&c.onAbort(D),D="Aborted("+D+")",J(D),ke=!0,Se=1,D+=". Build with -sASSERTIONS for more info.";var j=new WebAssembly.RuntimeError(D);throw m(j),j}var vg="data:application/octet-stream;base64,";function xd(D){return D.startsWith(vg)}function fp(D){return D.startsWith("file://")}var yn;yn="tfjs-backend-wasm-threaded-simd.wasm",xd(yn)||(yn=$(yn));function vd(D){try{if(D==yn&&oe)return new Uint8Array(oe);if(S)return S(D);throw"both async and sync fetching of the wasm failed"}catch(j){Lo(j)}}function wg(){if(!oe&&(w||I)){if(typeof fetch=="function"&&!fp(yn))return fetch(yn,{credentials:"same-origin"}).then(function(D){if(!D.ok)throw"failed to load wasm binary file at '"+yn+"'";return D.arrayBuffer()}).catch(function(){return vd(yn)});if(F)return new Promise(function(D,j){F(yn,function(re){D(new Uint8Array(re))},j)})}return Promise.resolve().then(function(){return vd(yn)})}function kg(){var D={env:Fd,wasi_snapshot_preview1:Fd};function j(Ce,De){var Ot=Ce.exports;if(c.asm=Ot,Fg(c.asm._emscripten_tls_init),jn=c.asm.__indirect_function_table,xg(c.asm.__wasm_call_ctors),be=De,!C){var la=Ae.unusedWorkers.length;Ae.unusedWorkers.forEach(function(xr){Ae.loadWasmModuleToWorker(xr,function(){--la||T1("wasm-instantiate")})})}}C||S1("wasm-instantiate");function re(Ce){j(Ce.instance,Ce.module)}function ce(Ce){return wg().then(function(De){return WebAssembly.instantiate(De,D)}).then(function(De){return De}).then(Ce,function(De){J("failed to asynchronously prepare wasm: "+De),Lo(De)})}function Ie(){return!oe&&typeof WebAssembly.instantiateStreaming=="function"&&!xd(yn)&&!fp(yn)&&!T&&typeof fetch=="function"?fetch(yn,{credentials:"same-origin"}).then(function(Ce){var De=WebAssembly.instantiateStreaming(Ce,D);return De.then(re,function(Ot){return J("wasm streaming compile failed: "+Ot),J("falling back to ArrayBuffer instantiation"),ce(re)})}):ce(re)}if(c.instantiateWasm)try{var je=c.instantiateWasm(D,j);return je}catch(Ce){J("Module.instantiateWasm callback failed with error: "+Ce),m(Ce)}return Ie().catch(m),{}}var Ig,N1,Sg={};function Rs(D){this.name="ExitStatus",this.message="Program terminated with exit("+D+")",this.status=D}function Tg(D){var j=Ae.pthreads[D];delete Ae.pthreads[D],j.terminate(),eb(D),Ae.runningWorkers.splice(Ae.runningWorkers.indexOf(j),1),j.pthread_ptr=0}function Ng(D){var j=Ae.pthreads[D];j.postMessage({cmd:"cancel"})}function gp(D){var j=Ae.pthreads[D];Le(j),Ae.returnWorkerToPool(j)}function wd(D){var j=Ae.getNewWorker();if(!j)return 6;Ae.runningWorkers.push(j),Ae.pthreads[D.pthread_ptr]=j,j.pthread_ptr=D.pthread_ptr;var re={cmd:"run",start_routine:D.startRoutine,arg:D.arg,pthread_ptr:D.pthread_ptr};return j.runPthread=()=>{re.time=performance.now(),j.postMessage(re,D.transferList)},j.loaded&&(j.runPthread(),delete j.runPthread),0}var kd={varargs:void 0,get:function(){kd.varargs+=4;var D=l()[kd.varargs-4>>2];return D},getStr:function(D){var j=st(D);return j}};function yp(D){if(C)return Vr(1,1,D);Se=D,wa()||(Ae.terminateAllThreads(),c.onExit&&c.onExit(D),ke=!0),x(D,new Rs(D))}function C1(D,j){if(Se=D,!j&&C)throw Sd(D),"unwind";yp(D)}var Id=C1;function Cg(D){if(D instanceof Rs||D=="unwind")return Se;x(1,D)}var Ae={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?Ae.initWorker():Ae.initMainThread()},initMainThread:function(){for(var D=8;D--;)Ae.allocateUnusedWorker()},initWorker:function(){ye=!1},setExitStatus:function(D){Se=D},terminateAllThreads:function(){for(var D of Object.values(Ae.pthreads))Ae.returnWorkerToPool(D);for(var D of Ae.unusedWorkers)D.terminate();Ae.unusedWorkers=[]},returnWorkerToPool:function(D){var j=D.pthread_ptr;delete Ae.pthreads[j],Ae.unusedWorkers.push(D),Ae.runningWorkers.splice(Ae.runningWorkers.indexOf(D),1),D.pthread_ptr=0,eb(j)},receiveObjectTransfer:function(D){},threadInitTLS:function(){Ae.tlsInitFunctions.forEach(D=>D())},loadWasmModuleToWorker:function(D,j){D.onmessage=re=>{var ce=re.data,Ie=ce.cmd;if(D.pthread_ptr&&(Ae.currentProxiedOperationCallerThread=D.pthread_ptr),ce.targetThread&&ce.targetThread!=Ld()){var je=Ae.pthreads[ce.targetThread];je?je.postMessage(ce,ce.transferList):J('Internal error! Worker sent a message "'+Ie+'" to target pthread '+ce.targetThread+", but that thread no longer exists!"),Ae.currentProxiedOperationCallerThread=void 0;return}Ie==="processProxyingQueue"?xp(ce.queue):Ie==="spawnThread"?wd(ce):Ie==="cleanupThread"?gp(ce.thread):Ie==="killThread"?Tg(ce.thread):Ie==="cancelThread"?Ng(ce.thread):Ie==="loaded"?(D.loaded=!0,j&&j(D),D.runPthread&&(D.runPthread(),delete D.runPthread)):Ie==="print"?Z("Thread "+ce.threadId+": "+ce.text):Ie==="printErr"?J("Thread "+ce.threadId+": "+ce.text):Ie==="alert"?alert("Thread "+ce.threadId+": "+ce.text):ce.target==="setimmediate"?D.postMessage(ce):Ie==="onAbort"?c.onAbort&&c.onAbort(ce.arg):Ie&&J("worker sent an unknown command "+Ie),Ae.currentProxiedOperationCallerThread=void 0},D.onerror=re=>{var ce="worker sent an error!";throw J(ce+" "+re.filename+":"+re.lineno+": "+re.message),re},T&&(D.on("message",function(re){D.onmessage({data:re})}),D.on("error",function(re){D.onerror(re)}),D.on("detachedExit",function(){})),D.postMessage({cmd:"load",urlOrBlob:c.mainScriptUrlOrBlob||a,wasmMemory:ue,wasmModule:be})},allocateUnusedWorker:function(){var D=$("tfjs-backend-wasm-threaded-simd.worker.js");Ae.unusedWorkers.push(new Worker(D))},getNewWorker:function(){return Ae.unusedWorkers.length==0&&(Ae.allocateUnusedWorker(),Ae.loadWasmModuleToWorker(Ae.unusedWorkers[0])),Ae.unusedWorkers.pop()}};c.PThread=Ae;function bp(D){for(;D.length>0;)D.shift()(c)}function _g(D){var j=tb(),re=D();return zd(j),re}function _1(D){return D}function E1(D){var j=/\b_Z[\w\d_]+/g;return D.replace(j,function(re){var ce=re;return re===ce?re:ce+" ["+re+"]"})}function Eg(){var D=Ld(),j=l()[D+44>>2],re=l()[D+48>>2],ce=j-re;P1(j,ce),zd(j)}c.establishStackSpace=Eg;function Sd(D){if(C)return Vr(2,0,D);try{Id(D)}catch(j){Cg(j)}}var zo=[];function $g(D){var j=zo[D];return j||(D>=zo.length&&(zo.length=D+1),zo[D]=j=jn.get(D)),j}function Ag(D,j){var re=$g(D)(j);wa()?Ae.setExitStatus(re):M1(re)}c.invokeEntryPoint=Ag;function $1(){var D=new Error;if(!D.stack){try{throw new Error}catch(j){D=j}if(!D.stack)return"(no stack trace available)"}return D.stack.toString()}function Fg(D){Ae.tlsInitFunctions.push(D)}function Dg(D,j){s().set(D,j)}function Rg(D){F1(D,!I,1,!w),Ae.threadInitTLS()}function Mg(D){C?postMessage({cmd:"cleanupThread",thread:D}):gp(D)}function Td(D,j,re,ce){return C?Vr(3,1,D,j,re,ce):Nd(D,j,re,ce)}function Nd(D,j,re,ce){if(typeof SharedArrayBuffer=="undefined")return J("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var Ie=[],je=0;if(C&&(Ie.length===0||je))return Td(D,j,re,ce);if(je)return je;var Ce={startRoutine:re,pthread_ptr:D,arg:ce,transferList:Ie};return C?(Ce.cmd="spawnThread",postMessage(Ce,Ie),0):wd(Ce)}function Pg(){return 2097152}var Og=!0;function Lg(){return Og}function xp(D){Atomics.store(l(),D>>2,1),Ld()&&R1(D),Atomics.compareExchange(l(),D>>2,1,0)}c.executeNotifiedProxyingQueue=xp;function zg(D,j,re,ce){if(D==j)setTimeout(()=>xp(ce));else if(C)postMessage({targetThread:D,cmd:"processProxyingQueue",queue:ce});else{var Ie=Ae.pthreads[D];if(!Ie)return;Ie.postMessage({cmd:"processProxyingQueue",queue:ce})}return 1}function Wg(D,j,re){return-1}function Bg(){Lo("")}function Ms(D){Ms.shown||(Ms.shown={}),Ms.shown[D]||(Ms.shown[D]=1,T&&(D="warning: "+D),J(D))}function Vg(){T||I||Ms("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function Ug(){return Date.now()}function Cd(){return 2147483648}function Gg(){return Cd()}var Wo;T?Wo=()=>{var D=process.hrtime();return D[0]*1e3+D[1]/1e6}:C?Wo=()=>performance.now()-c.__performance_now_clock_drift:Wo=()=>performance.now();function Hg(D,j,re){i().copyWithin(D,j,j+re)}function jg(){return T?IF().cpus().length:navigator.hardwareConcurrency}function Vr(D,j){var re=arguments.length-2,ce=arguments;return _g(()=>{for(var Ie=re,je=Wd(Ie*8),Ce=je>>3,De=0;De>3,Ie=0;Ie>>16),it(ue.buffer),1}catch(j){}}function Xg(D){var j=i().length;if(D=D>>>0,D<=j)return!1;var re=Cd();if(D>re)return!1;let ce=(Ot,la)=>Ot+(la-Ot%la)%la;for(var Ie=1;Ie<=4;Ie*=2){var je=j*(1+.2/Ie);je=Math.min(je,D+100663296);var Ce=Math.min(re,ce(Math.max(D,je),65536)),De=Kg(Ce);if(De)return!0}return!1}function Yg(){throw"unwind"}function _d(D){return C?Vr(4,1,D):52}function Ed(D,j,re,ce,Ie){return C?Vr(5,1,D,j,re,ce,Ie):70}var Zg=[null,[],[]];function Jg(D,j){var re=Zg[D];j===0||j===10?((D===1?Z:J)(nt(re,0)),re.length=0):re.push(j)}function $d(D,j,re,ce){if(C)return Vr(6,1,D,j,re,ce);for(var Ie=0,je=0;je>2],De=u()[j+4>>2];j+=8;for(var Ot=0;Ot>2]=Ie,0}function Ad(D){var j=c["_"+D];return j}function Qg(D,j,re,ce,Ie){var je={string:ua=>{var Go=0;if(ua!=null&&ua!==0){var z1=(ua.length<<2)+1;Go=Wd(z1),at(ua,Go,z1)}return Go},array:ua=>{var Go=Wd(ua.length);return Dg(ua,Go),Go}};function Ce(ua){return j==="string"?st(ua):j==="boolean"?Boolean(ua):ua}var De=Ad(D),Ot=[],la=0;if(ce)for(var xr=0;xrCe==="number"||Ce==="boolean"),je=j!=="string";return je&&Ie&&!ce?Ad(D):function(){return Qg(D,j,re,arguments,ce)}}Ae.init();var ty=[null,yp,Sd,Td,_d,Ed,$d],Fd={__emscripten_init_main_thread_js:Rg,__emscripten_thread_cleanup:Mg,__pthread_create_js:Nd,_emscripten_default_pthread_stack_size:Pg,_emscripten_get_now_is_monotonic:Lg,_emscripten_notify_task_queue:zg,_emscripten_set_offscreencanvas_size:Wg,abort:Bg,emscripten_check_blocking_allowed:Vg,emscripten_date_now:Ug,emscripten_get_heap_max:Gg,emscripten_get_now:Wo,emscripten_memcpy_big:Hg,emscripten_num_logical_cores:jg,emscripten_receive_on_main_thread_js:qg,emscripten_resize_heap:Xg,emscripten_unwind_to_js_event_loop:Yg,exit:Id,fd_close:_d,fd_seek:Ed,fd_write:$d,memory:ue||c.wasmMemory},A1=kg(),ny=c.___wasm_call_ctors=function(){return(ny=c.___wasm_call_ctors=c.asm.__wasm_call_ctors).apply(null,arguments)},ay=c._init=function(){return(ay=c._init=c.asm.init).apply(null,arguments)},ry=c._init_with_threads_count=function(){return(ry=c._init_with_threads_count=c.asm.init_with_threads_count).apply(null,arguments)},sy=c._get_threads_count=function(){return(sy=c._get_threads_count=c.asm.get_threads_count).apply(null,arguments)},iy=c._register_tensor=function(){return(iy=c._register_tensor=c.asm.register_tensor).apply(null,arguments)},oy=c._dispose_data=function(){return(oy=c._dispose_data=c.asm.dispose_data).apply(null,arguments)},ly=c._dispose=function(){return(ly=c._dispose=c.asm.dispose).apply(null,arguments)},uy=c._Abs=function(){return(uy=c._Abs=c.asm.Abs).apply(null,arguments)},py=c._Add=function(){return(py=c._Add=c.asm.Add).apply(null,arguments)},cy=c._AddN=function(){return(cy=c._AddN=c.asm.AddN).apply(null,arguments)},dy=c._All=function(){return(dy=c._All=c.asm.All).apply(null,arguments)},hy=c._Any=function(){return(hy=c._Any=c.asm.Any).apply(null,arguments)},my=c._ArgMax=function(){return(my=c._ArgMax=c.asm.ArgMax).apply(null,arguments)},fy=c._AvgPool=function(){return(fy=c._AvgPool=c.asm.AvgPool).apply(null,arguments)},gy=c._BatchMatMul=function(){return(gy=c._BatchMatMul=c.asm.BatchMatMul).apply(null,arguments)},yy=c._Ceil=function(){return(yy=c._Ceil=c.asm.Ceil).apply(null,arguments)},by=c._ClipByValue=function(){return(by=c._ClipByValue=c.asm.ClipByValue).apply(null,arguments)},xy=c._Conv2D=function(){return(xy=c._Conv2D=c.asm.Conv2D).apply(null,arguments)},vy=c._Conv2DBackpropInput=function(){return(vy=c._Conv2DBackpropInput=c.asm.Conv2DBackpropInput).apply(null,arguments)},wy=c._Cos=function(){return(wy=c._Cos=c.asm.Cos).apply(null,arguments)},ky=c._Cosh=function(){return(ky=c._Cosh=c.asm.Cosh).apply(null,arguments)},Iy=c._CropAndResize=function(){return(Iy=c._CropAndResize=c.asm.CropAndResize).apply(null,arguments)},Sy=c._Cumprod=function(){return(Sy=c._Cumprod=c.asm.Cumprod).apply(null,arguments)},Ty=c._Cumsum=function(){return(Ty=c._Cumsum=c.asm.Cumsum).apply(null,arguments)},Ny=c._DepthToSpace=function(){return(Ny=c._DepthToSpace=c.asm.DepthToSpace).apply(null,arguments)},Cy=c._DepthwiseConv2dNative=function(){return(Cy=c._DepthwiseConv2dNative=c.asm.DepthwiseConv2dNative).apply(null,arguments)},_y=c._Elu=function(){return(_y=c._Elu=c.asm.Elu).apply(null,arguments)},Ey=c._Equal=function(){return(Ey=c._Equal=c.asm.Equal).apply(null,arguments)},$y=c._Exp=function(){return($y=c._Exp=c.asm.Exp).apply(null,arguments)},Ay=c._FlipLeftRight=function(){return(Ay=c._FlipLeftRight=c.asm.FlipLeftRight).apply(null,arguments)},Fy=c._Floor=function(){return(Fy=c._Floor=c.asm.Floor).apply(null,arguments)},Dy=c._FloorDiv=function(){return(Dy=c._FloorDiv=c.asm.FloorDiv).apply(null,arguments)},Ry=c._FusedBatchNorm=function(){return(Ry=c._FusedBatchNorm=c.asm.FusedBatchNorm).apply(null,arguments)},My=c._FusedConv2D=function(){return(My=c._FusedConv2D=c.asm.FusedConv2D).apply(null,arguments)},Py=c._FusedDepthwiseConv2D=function(){return(Py=c._FusedDepthwiseConv2D=c.asm.FusedDepthwiseConv2D).apply(null,arguments)},Oy=c._Gather=function(){return(Oy=c._Gather=c.asm.Gather).apply(null,arguments)},Ly=c._GatherNd=function(){return(Ly=c._GatherNd=c.asm.GatherNd).apply(null,arguments)},zy=c._Greater=function(){return(zy=c._Greater=c.asm.Greater).apply(null,arguments)},Wy=c._GreaterEqual=function(){return(Wy=c._GreaterEqual=c.asm.GreaterEqual).apply(null,arguments)},By=c._LeakyRelu=function(){return(By=c._LeakyRelu=c.asm.LeakyRelu).apply(null,arguments)},Vy=c._Less=function(){return(Vy=c._Less=c.asm.Less).apply(null,arguments)},Uy=c._LessEqual=function(){return(Uy=c._LessEqual=c.asm.LessEqual).apply(null,arguments)},Gy=c._Log=function(){return(Gy=c._Log=c.asm.Log).apply(null,arguments)},Hy=c._LogicalAnd=function(){return(Hy=c._LogicalAnd=c.asm.LogicalAnd).apply(null,arguments)},jy=c._LogicalNot=function(){return(jy=c._LogicalNot=c.asm.LogicalNot).apply(null,arguments)},qy=c._LogicalOr=function(){return(qy=c._LogicalOr=c.asm.LogicalOr).apply(null,arguments)},Ky=c._LogicalXor=function(){return(Ky=c._LogicalXor=c.asm.LogicalXor).apply(null,arguments)},Xy=c._Max=function(){return(Xy=c._Max=c.asm.Max).apply(null,arguments)},Dd=c._MaxPool=function(){return(Dd=c._MaxPool=c.asm.MaxPool).apply(null,arguments)},Rd=c._Maximum=function(){return(Rd=c._Maximum=c.asm.Maximum).apply(null,arguments)},wp=c._Mean=function(){return(wp=c._Mean=c.asm.Mean).apply(null,arguments)},Yy=c._Min=function(){return(Yy=c._Min=c.asm.Min).apply(null,arguments)},Zy=c._Minimum=function(){return(Zy=c._Minimum=c.asm.Minimum).apply(null,arguments)},Bo=c._MirrorPad=function(){return(Bo=c._MirrorPad=c.asm.MirrorPad).apply(null,arguments)},Md=c._Multiply=function(){return(Md=c._Multiply=c.asm.Multiply).apply(null,arguments)},Vo=c._Neg=function(){return(Vo=c._Neg=c.asm.Neg).apply(null,arguments)},Uo=c._NonMaxSuppressionV3=function(){return(Uo=c._NonMaxSuppressionV3=c.asm.NonMaxSuppressionV3).apply(null,arguments)},Jy=c._NonMaxSuppressionV4=function(){return(Jy=c._NonMaxSuppressionV4=c.asm.NonMaxSuppressionV4).apply(null,arguments)},X=c._NonMaxSuppressionV5=function(){return(X=c._NonMaxSuppressionV5=c.asm.NonMaxSuppressionV5).apply(null,arguments)},se=c._NotEqual=function(){return(se=c._NotEqual=c.asm.NotEqual).apply(null,arguments)},we=c._OneHot=function(){return(we=c._OneHot=c.asm.OneHot).apply(null,arguments)},He=c._PadV2=function(){return(He=c._PadV2=c.asm.PadV2).apply(null,arguments)},wt=c._Pow=function(){return(wt=c._Pow=c.asm.Pow).apply(null,arguments)},kt=c._Prelu=function(){return(kt=c._Prelu=c.asm.Prelu).apply(null,arguments)},Ue=c._Prod=function(){return(Ue=c._Prod=c.asm.Prod).apply(null,arguments)},We=c._RealDiv=function(){return(We=c._RealDiv=c.asm.RealDiv).apply(null,arguments)},Pt=c._Relu=function(){return(Pt=c._Relu=c.asm.Relu).apply(null,arguments)},oa=c._Relu6=function(){return(oa=c._Relu6=c.asm.Relu6).apply(null,arguments)},br=c._ResizeBilinear=function(){return(br=c._ResizeBilinear=c.asm.ResizeBilinear).apply(null,arguments)},Pd=c._ResizeNearestNeighbor=function(){return(Pd=c._ResizeNearestNeighbor=c.asm.ResizeNearestNeighbor).apply(null,arguments)},kp=c._Reverse=function(){return(kp=c._Reverse=c.asm.Reverse).apply(null,arguments)},Qy=c._RotateWithOffset=function(){return(Qy=c._RotateWithOffset=c.asm.RotateWithOffset).apply(null,arguments)},Mn=c._Round=function(){return(Mn=c._Round=c.asm.Round).apply(null,arguments)},Ur=c._Rsqrt=function(){return(Ur=c._Rsqrt=c.asm.Rsqrt).apply(null,arguments)},Od=c._ScatterNd=function(){return(Od=c._ScatterNd=c.asm.ScatterNd).apply(null,arguments)},SA=c._SelectV2=function(){return(SA=c._SelectV2=c.asm.SelectV2).apply(null,arguments)},TA=c._Sigmoid=function(){return(TA=c._Sigmoid=c.asm.Sigmoid).apply(null,arguments)},NA=c._Sin=function(){return(NA=c._Sin=c.asm.Sin).apply(null,arguments)},CA=c._Softmax=function(){return(CA=c._Softmax=c.asm.Softmax).apply(null,arguments)},_A=c._SparseFillEmptyRows=function(){return(_A=c._SparseFillEmptyRows=c.asm.SparseFillEmptyRows).apply(null,arguments)},EA=c._SparseReshape=function(){return(EA=c._SparseReshape=c.asm.SparseReshape).apply(null,arguments)},$A=c._SparseSegmentReduction=function(){return($A=c._SparseSegmentReduction=c.asm.SparseSegmentReduction).apply(null,arguments)},AA=c._Sqrt=function(){return(AA=c._Sqrt=c.asm.Sqrt).apply(null,arguments)},FA=c._Square=function(){return(FA=c._Square=c.asm.Square).apply(null,arguments)},DA=c._SquaredDifference=function(){return(DA=c._SquaredDifference=c.asm.SquaredDifference).apply(null,arguments)},RA=c._Step=function(){return(RA=c._Step=c.asm.Step).apply(null,arguments)},MA=c._StridedSlice=function(){return(MA=c._StridedSlice=c.asm.StridedSlice).apply(null,arguments)},PA=c._Sub=function(){return(PA=c._Sub=c.asm.Sub).apply(null,arguments)},OA=c._Sum=function(){return(OA=c._Sum=c.asm.Sum).apply(null,arguments)},LA=c._Tan=function(){return(LA=c._Tan=c.asm.Tan).apply(null,arguments)},zA=c._Tanh=function(){return(zA=c._Tanh=c.asm.Tanh).apply(null,arguments)},WA=c._Tile=function(){return(WA=c._Tile=c.asm.Tile).apply(null,arguments)},BA=c._TopK=function(){return(BA=c._TopK=c.asm.TopK).apply(null,arguments)},VA=c._Transform=function(){return(VA=c._Transform=c.asm.Transform).apply(null,arguments)},UA=c._Transpose=function(){return(UA=c._Transpose=c.asm.Transpose).apply(null,arguments)},GA=c.__FusedMatMul=function(){return(GA=c.__FusedMatMul=c.asm._FusedMatMul).apply(null,arguments)},HA=c._malloc=function(){return(HA=c._malloc=c.asm.malloc).apply(null,arguments)},jA=c._free=function(){return(jA=c._free=c.asm.free).apply(null,arguments)},qA=c.__emscripten_tls_init=function(){return(qA=c.__emscripten_tls_init=c.asm._emscripten_tls_init).apply(null,arguments)},Ld=c._pthread_self=function(){return(Ld=c._pthread_self=c.asm.pthread_self).apply(null,arguments)},KA=c.___errno_location=function(){return(KA=c.___errno_location=c.asm.__errno_location).apply(null,arguments)},F1=c.__emscripten_thread_init=function(){return(F1=c.__emscripten_thread_init=c.asm._emscripten_thread_init).apply(null,arguments)},XA=c.__emscripten_thread_crashed=function(){return(XA=c.__emscripten_thread_crashed=c.asm._emscripten_thread_crashed).apply(null,arguments)},YA=c._emscripten_main_thread_process_queued_calls=function(){return(YA=c._emscripten_main_thread_process_queued_calls=c.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},ZA=c._emscripten_main_browser_thread_id=function(){return(ZA=c._emscripten_main_browser_thread_id=c.asm.emscripten_main_browser_thread_id).apply(null,arguments)},D1=c._emscripten_run_in_main_runtime_thread_js=function(){return(D1=c._emscripten_run_in_main_runtime_thread_js=c.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},JA=c._emscripten_dispatch_to_thread_=function(){return(JA=c._emscripten_dispatch_to_thread_=c.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},R1=c.__emscripten_proxy_execute_task_queue=function(){return(R1=c.__emscripten_proxy_execute_task_queue=c.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},eb=c.__emscripten_thread_free_data=function(){return(eb=c.__emscripten_thread_free_data=c.asm._emscripten_thread_free_data).apply(null,arguments)},M1=c.__emscripten_thread_exit=function(){return(M1=c.__emscripten_thread_exit=c.asm._emscripten_thread_exit).apply(null,arguments)},P1=c._emscripten_stack_set_limits=function(){return(P1=c._emscripten_stack_set_limits=c.asm.emscripten_stack_set_limits).apply(null,arguments)},tb=c.stackSave=function(){return(tb=c.stackSave=c.asm.stackSave).apply(null,arguments)},zd=c.stackRestore=function(){return(zd=c.stackRestore=c.asm.stackRestore).apply(null,arguments)},Wd=c.stackAlloc=function(){return(Wd=c.stackAlloc=c.asm.stackAlloc).apply(null,arguments)},QA=c.dynCall_iijjiiii=function(){return(QA=c.dynCall_iijjiiii=c.asm.dynCall_iijjiiii).apply(null,arguments)},eF=c.dynCall_jiji=function(){return(eF=c.dynCall_jiji=c.asm.dynCall_jiji).apply(null,arguments)};c.keepRuntimeAlive=wa,c.wasmMemory=ue,c.cwrap=ey,c.ExitStatus=Rs,c.PThread=Ae;var Bd;yr=function D(){Bd||O1(),Bd||(yr=D)};function O1(D){if(D=D||y,Br>0)return;if(C){h(c),Xt(),postMessage({cmd:"loaded"});return}if(Po(),Br>0)return;function j(){Bd||(Bd=!0,c.calledRun=!0,!ke&&(Xt(),h(c),c.onRuntimeInitialized&&c.onRuntimeInitialized(),bd()))}c.setStatus?(c.setStatus("Running..."),setTimeout(function(){setTimeout(function(){c.setStatus("")},1),j()},1)):j()}if(c.preInit)for(typeof c.preInit=="function"&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.pop()();O1();var Vd;f&&(Vd={uncaughtException:process.listeners("uncaughtException").filter(function(D){return!f.uncaughtException.indexOf(D)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(D){return!f.unhandledRejection.indexOf(D)>-1})});var Ud;if(typeof WasmBackendModule!="undefined")Ud=WasmBackendModule;else if(typeof r!="undefined")Ud=r;else throw new Error("Could not find wasm module in post.js");if(Vd){var tF=Ud._dispose;Ud._dispose=function(){tF(),Vd.uncaughtException.forEach(function(D){process.removeListener("uncaughtException",D)}),Vd.unhandledRejection.forEach(function(D){process.removeListener("unhandledRejection",D)})}}return r.ready}})();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModuleThreadedSimd=n)}),TF=Bt((e,t)=>{t.exports.wasmWorkerContents=`"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",data=>onmessage({data:data}));var fs=require("fs");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,"utf8"))},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+" +");return}console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob=="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance})}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.pthread_ptr,0,0,1);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module["executeNotifiedProxyingQueue"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["__emscripten_thread_exit"](ex.status)}}else{throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processProxyingQueue"){if(initializedJS){Module["executeNotifiedProxyingQueue"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}};`}),NF=Bt((e,t)=>{var n=(()=>{var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};var s=typeof r!="undefined"?r:{},i,o;s.ready=new Promise(function(X,se){i=X,o=se});var l;typeof process!="undefined"&&process.listeners&&(l={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var u=Object.assign({},s),p=[],d="./this.program",c=(X,se)=>{throw se},h=typeof window=="object",m=typeof importScripts=="function",f=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g="";function y(X){return s.locateFile?s.locateFile(X,g):g+X}var b,x,w,I;function T(X){X instanceof Oo||R("exiting due to exception: "+X)}if(f){m?g=dh().dirname(g)+"/":g=__dirname+"/";var C,E;typeof vI=="function"&&(C=xx(),E=dh()),b=(X,se)=>(X=E.normalize(X),C.readFileSync(X,se?void 0:"utf8")),w=X=>{var se=b(X,!0);return se.buffer||(se=new Uint8Array(se)),se},x=(X,se,we)=>{X=E.normalize(X),C.readFile(X,function(He,wt){He?we(He):se(wt.buffer)})},process.argv.length>1&&(d=process.argv[1].replace(/\\/g,"/")),p=process.argv.slice(2),process.on("uncaughtException",function(X){if(!(X instanceof Oo))throw X}),process.on("unhandledRejection",function(X){throw X}),c=(X,se)=>{if(Hn())throw process.exitCode=X,se;T(se),process.exit(X)},s.inspect=function(){return"[Emscripten Module object]"}}else(h||m)&&(m?g=self.location.href:typeof document!="undefined"&&document.currentScript&&(g=document.currentScript.src),a&&(g=a),g.indexOf("blob:")!==0?g=g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1):g="",b=X=>{var se=new XMLHttpRequest;return se.open("GET",X,!1),se.send(null),se.responseText},m&&(w=X=>{var se=new XMLHttpRequest;return se.open("GET",X,!1),se.responseType="arraybuffer",se.send(null),new Uint8Array(se.response)}),x=(X,se,we)=>{var He=new XMLHttpRequest;He.open("GET",X,!0),He.responseType="arraybuffer",He.onload=()=>{if(He.status==200||He.status==0&&He.response){se(He.response);return}we()},He.onerror=we,He.send(null)},I=X=>document.title=X);var $=s.print||console.log.bind(console),R=s.printErr||console.warn.bind(console);Object.assign(s,u),u=null,s.arguments&&(p=s.arguments),s.thisProgram&&(d=s.thisProgram),s.quit&&(c=s.quit);var F=4,S;s.wasmBinary&&(S=s.wasmBinary);var M=s.noExitRuntime||!0;typeof WebAssembly!="object"&&Ja("no native wasm support detected");var B,U=!1,G;function q(X,se){X||Ja(se)}var K=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Z(X,se,we){for(var He=se+we,wt=se;X[wt]&&!(wt>=He);)++wt;if(wt-se>16&&X.buffer&&K)return K.decode(X.subarray(se,wt));for(var kt="";se>10,56320|oa&1023)}}return kt}function J(X,se){return X?Z(oe,X,se):""}function ee(X,se,we,He){if(!(He>0))return 0;for(var wt=we,kt=we+He-1,Ue=0;Ue=55296&&We<=57343){var Pt=X.charCodeAt(++Ue);We=65536+((We&1023)<<10)|Pt&1023}if(We<=127){if(we>=kt)break;se[we++]=We}else if(We<=2047){if(we+1>=kt)break;se[we++]=192|We>>6,se[we++]=128|We&63}else if(We<=65535){if(we+2>=kt)break;se[we++]=224|We>>12,se[we++]=128|We>>6&63,se[we++]=128|We&63}else{if(we+3>=kt)break;se[we++]=240|We>>18,se[we++]=128|We>>12&63,se[we++]=128|We>>6&63,se[we++]=128|We&63}}return se[we]=0,we-wt}function ae(X,se,we){return ee(X,oe,se,we)}var te,ie,oe,ye,ue,be,ke,Se,Le;function Ve(X){te=X,s.HEAP8=ie=new Int8Array(X),s.HEAP16=ye=new Int16Array(X),s.HEAP32=be=new Int32Array(X),s.HEAPU8=oe=new Uint8Array(X),s.HEAPU16=ue=new Uint16Array(X),s.HEAPU32=ke=new Uint32Array(X),s.HEAPF32=Se=new Float32Array(X),s.HEAPF64=Le=new Float64Array(X)}var nt=s.INITIAL_MEMORY||16777216,st,Je=[],at=[],ze=[],dt=!1;function Hn(){return M}function Mt(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)Fn(s.preRun.shift());yr(Je)}function sa(){dt=!0,yr(at)}function sn(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)Dn(s.postRun.shift());yr(ze)}function Fn(X){Je.unshift(X)}function ia(X){at.unshift(X)}function Dn(X){ze.unshift(X)}var it=0,Rn=null,jn=null;function gr(X){it++,s.monitorRunDependencies&&s.monitorRunDependencies(it)}function Mo(X){if(it--,s.monitorRunDependencies&&s.monitorRunDependencies(it),it==0&&(Rn!==null&&(clearInterval(Rn),Rn=null),jn)){var se=jn;jn=null,se()}}function Ja(X){s.onAbort&&s.onAbort(X),X="Aborted("+X+")",R(X),U=!0,G=1,X+=". Build with -sASSERTIONS for more info.";var se=new WebAssembly.RuntimeError(X);throw o(se),se}var mp="data:application/octet-stream;base64,";function wa(X){return X.startsWith(mp)}function Po(X){return X.startsWith("file://")}var Xt;Xt="tfjs-backend-wasm.wasm",wa(Xt)||(Xt=y(Xt));function bd(X){try{if(X==Xt&&S)return new Uint8Array(S);if(w)return w(X);throw"both async and sync fetching of the wasm failed"}catch(se){Ja(se)}}function bg(){if(!S&&(h||m)){if(typeof fetch=="function"&&!Po(Xt))return fetch(Xt,{credentials:"same-origin"}).then(function(X){if(!X.ok)throw"failed to load wasm binary file at '"+Xt+"'";return X.arrayBuffer()}).catch(function(){return bd(Xt)});if(x)return new Promise(function(X,se){x(Xt,function(we){X(new Uint8Array(we))},se)})}return Promise.resolve().then(function(){return bd(Xt)})}function xg(){var X={env:yp,wasi_snapshot_preview1:yp};function se(Ue,We){var Pt=Ue.exports;s.asm=Pt,B=s.asm.memory,Ve(B.buffer),st=s.asm.__indirect_function_table,ia(s.asm.__wasm_call_ctors),Mo("wasm-instantiate")}gr("wasm-instantiate");function we(Ue){se(Ue.instance)}function He(Ue){return bg().then(function(We){return WebAssembly.instantiate(We,X)}).then(function(We){return We}).then(Ue,function(We){R("failed to asynchronously prepare wasm: "+We),Ja(We)})}function wt(){return!S&&typeof WebAssembly.instantiateStreaming=="function"&&!wa(Xt)&&!Po(Xt)&&!f&&typeof fetch=="function"?fetch(Xt,{credentials:"same-origin"}).then(function(Ue){var We=WebAssembly.instantiateStreaming(Ue,X);return We.then(we,function(Pt){return R("wasm streaming compile failed: "+Pt),R("falling back to ArrayBuffer instantiation"),He(we)})}):He(we)}if(s.instantiateWasm)try{var kt=s.instantiateWasm(X,se);return kt}catch(Ue){R("Module.instantiateWasm callback failed with error: "+Ue),o(Ue)}return wt().catch(o),{}}var I1,Br;function Oo(X){this.name="ExitStatus",this.message="Program terminated with exit("+X+")",this.status=X}function yr(X){for(;X.length>0;)X.shift()(s)}function S1(X){return X}function T1(X){var se=/\b_Z[\w\d_]+/g;return X.replace(se,function(we){var He=we;return we===He?we:He+" ["+we+"]"})}function Lo(){var X=new Error;if(!X.stack){try{throw new Error}catch(se){X=se}if(!X.stack)return"(no stack trace available)"}return X.stack.toString()}function vg(X,se){ie.set(X,se)}function xd(){Ja("")}function fp(){return 2147483648}function yn(){return fp()}function vd(X,se,we){oe.copyWithin(X,se,se+we)}function wg(X){try{return B.grow(X-te.byteLength+65535>>>16),Ve(B.buffer),1}catch(se){}}function kg(X){var se=oe.length;X=X>>>0;var we=fp();if(X>we)return!1;let He=(Pt,oa)=>Pt+(oa-Pt%oa)%oa;for(var wt=1;wt<=4;wt*=2){var kt=se*(1+.2/wt);kt=Math.min(kt,X+100663296);var Ue=Math.min(we,He(Math.max(X,kt),65536)),We=wg(Ue);if(We)return!0}return!1}var Ig={varargs:void 0,get:function(){Ig.varargs+=4;var X=be[Ig.varargs-4>>2];return X},getStr:function(X){var se=J(X);return se}};function N1(X){return 52}function Sg(X,se,we,He,wt){return 70}var Rs=[null,[],[]];function Tg(X,se){var we=Rs[X];se===0||se===10?((X===1?$:R)(Z(we,0)),we.length=0):we.push(se)}function Ng(X,se,we,He){for(var wt=0,kt=0;kt>2],We=ke[se+4>>2];se+=8;for(var Pt=0;Pt>2]=wt,0}function gp(X){var se=s["_"+X];return se}function wd(X,se,we,He,wt){var kt={string:Mn=>{var Ur=0;if(Mn!=null&&Mn!==0){var Od=(Mn.length<<2)+1;Ur=wp(Od),ae(Mn,Ur,Od)}return Ur},array:Mn=>{var Ur=wp(Mn.length);return vg(Mn,Ur),Ur}};function Ue(Mn){return se==="string"?J(Mn):se==="boolean"?Boolean(Mn):Mn}var We=gp(X),Pt=[],oa=0;if(He)for(var br=0;brUe==="number"||Ue==="boolean"),kt=se!=="string";return kt&&wt&&!He?gp(X):function(){return wd(X,se,we,arguments,He)}}var yp={abort:xd,emscripten_get_heap_max:yn,emscripten_memcpy_big:vd,emscripten_resize_heap:kg,fd_close:N1,fd_seek:Sg,fd_write:Ng},C1=xg(),Id=s.___wasm_call_ctors=function(){return(Id=s.___wasm_call_ctors=s.asm.__wasm_call_ctors).apply(null,arguments)},Cg=s._init=function(){return(Cg=s._init=s.asm.init).apply(null,arguments)},Ae=s._init_with_threads_count=function(){return(Ae=s._init_with_threads_count=s.asm.init_with_threads_count).apply(null,arguments)},bp=s._get_threads_count=function(){return(bp=s._get_threads_count=s.asm.get_threads_count).apply(null,arguments)},_g=s._register_tensor=function(){return(_g=s._register_tensor=s.asm.register_tensor).apply(null,arguments)},_1=s._dispose_data=function(){return(_1=s._dispose_data=s.asm.dispose_data).apply(null,arguments)},E1=s._dispose=function(){return(E1=s._dispose=s.asm.dispose).apply(null,arguments)},Eg=s._Abs=function(){return(Eg=s._Abs=s.asm.Abs).apply(null,arguments)},Sd=s._Add=function(){return(Sd=s._Add=s.asm.Add).apply(null,arguments)},zo=s._AddN=function(){return(zo=s._AddN=s.asm.AddN).apply(null,arguments)},$g=s._All=function(){return($g=s._All=s.asm.All).apply(null,arguments)},Ag=s._Any=function(){return(Ag=s._Any=s.asm.Any).apply(null,arguments)},$1=s._ArgMax=function(){return($1=s._ArgMax=s.asm.ArgMax).apply(null,arguments)},Fg=s._AvgPool=function(){return(Fg=s._AvgPool=s.asm.AvgPool).apply(null,arguments)},Dg=s._BatchMatMul=function(){return(Dg=s._BatchMatMul=s.asm.BatchMatMul).apply(null,arguments)},Rg=s._Ceil=function(){return(Rg=s._Ceil=s.asm.Ceil).apply(null,arguments)},Mg=s._ClipByValue=function(){return(Mg=s._ClipByValue=s.asm.ClipByValue).apply(null,arguments)},Td=s._Conv2D=function(){return(Td=s._Conv2D=s.asm.Conv2D).apply(null,arguments)},Nd=s._Conv2DBackpropInput=function(){return(Nd=s._Conv2DBackpropInput=s.asm.Conv2DBackpropInput).apply(null,arguments)},Pg=s._Cos=function(){return(Pg=s._Cos=s.asm.Cos).apply(null,arguments)},Og=s._Cosh=function(){return(Og=s._Cosh=s.asm.Cosh).apply(null,arguments)},Lg=s._CropAndResize=function(){return(Lg=s._CropAndResize=s.asm.CropAndResize).apply(null,arguments)},xp=s._Cumprod=function(){return(xp=s._Cumprod=s.asm.Cumprod).apply(null,arguments)},zg=s._Cumsum=function(){return(zg=s._Cumsum=s.asm.Cumsum).apply(null,arguments)},Wg=s._DepthToSpace=function(){return(Wg=s._DepthToSpace=s.asm.DepthToSpace).apply(null,arguments)},Bg=s._DepthwiseConv2dNative=function(){return(Bg=s._DepthwiseConv2dNative=s.asm.DepthwiseConv2dNative).apply(null,arguments)},Ms=s._Elu=function(){return(Ms=s._Elu=s.asm.Elu).apply(null,arguments)},Vg=s._Equal=function(){return(Vg=s._Equal=s.asm.Equal).apply(null,arguments)},Ug=s._Exp=function(){return(Ug=s._Exp=s.asm.Exp).apply(null,arguments)},Cd=s._FlipLeftRight=function(){return(Cd=s._FlipLeftRight=s.asm.FlipLeftRight).apply(null,arguments)},Gg=s._Floor=function(){return(Gg=s._Floor=s.asm.Floor).apply(null,arguments)},Wo=s._FloorDiv=function(){return(Wo=s._FloorDiv=s.asm.FloorDiv).apply(null,arguments)},Hg=s._FusedBatchNorm=function(){return(Hg=s._FusedBatchNorm=s.asm.FusedBatchNorm).apply(null,arguments)},jg=s._FusedConv2D=function(){return(jg=s._FusedConv2D=s.asm.FusedConv2D).apply(null,arguments)},Vr=s._FusedDepthwiseConv2D=function(){return(Vr=s._FusedDepthwiseConv2D=s.asm.FusedDepthwiseConv2D).apply(null,arguments)},vp=s._Gather=function(){return(vp=s._Gather=s.asm.Gather).apply(null,arguments)},qg=s._GatherNd=function(){return(qg=s._GatherNd=s.asm.GatherNd).apply(null,arguments)},Kg=s._Greater=function(){return(Kg=s._Greater=s.asm.Greater).apply(null,arguments)},Xg=s._GreaterEqual=function(){return(Xg=s._GreaterEqual=s.asm.GreaterEqual).apply(null,arguments)},Yg=s._LeakyRelu=function(){return(Yg=s._LeakyRelu=s.asm.LeakyRelu).apply(null,arguments)},_d=s._Less=function(){return(_d=s._Less=s.asm.Less).apply(null,arguments)},Ed=s._LessEqual=function(){return(Ed=s._LessEqual=s.asm.LessEqual).apply(null,arguments)},Zg=s._Log=function(){return(Zg=s._Log=s.asm.Log).apply(null,arguments)},Jg=s._LogicalAnd=function(){return(Jg=s._LogicalAnd=s.asm.LogicalAnd).apply(null,arguments)},$d=s._LogicalNot=function(){return($d=s._LogicalNot=s.asm.LogicalNot).apply(null,arguments)},Ad=s._LogicalOr=function(){return(Ad=s._LogicalOr=s.asm.LogicalOr).apply(null,arguments)},Qg=s._LogicalXor=function(){return(Qg=s._LogicalXor=s.asm.LogicalXor).apply(null,arguments)},ey=s._Max=function(){return(ey=s._Max=s.asm.Max).apply(null,arguments)},ty=s._MaxPool=function(){return(ty=s._MaxPool=s.asm.MaxPool).apply(null,arguments)},Fd=s._Maximum=function(){return(Fd=s._Maximum=s.asm.Maximum).apply(null,arguments)},A1=s._Mean=function(){return(A1=s._Mean=s.asm.Mean).apply(null,arguments)},ny=s._Min=function(){return(ny=s._Min=s.asm.Min).apply(null,arguments)},ay=s._Minimum=function(){return(ay=s._Minimum=s.asm.Minimum).apply(null,arguments)},ry=s._MirrorPad=function(){return(ry=s._MirrorPad=s.asm.MirrorPad).apply(null,arguments)},sy=s._Multiply=function(){return(sy=s._Multiply=s.asm.Multiply).apply(null,arguments)},iy=s._Neg=function(){return(iy=s._Neg=s.asm.Neg).apply(null,arguments)},oy=s._NonMaxSuppressionV3=function(){return(oy=s._NonMaxSuppressionV3=s.asm.NonMaxSuppressionV3).apply(null,arguments)},ly=s._NonMaxSuppressionV4=function(){return(ly=s._NonMaxSuppressionV4=s.asm.NonMaxSuppressionV4).apply(null,arguments)},uy=s._NonMaxSuppressionV5=function(){return(uy=s._NonMaxSuppressionV5=s.asm.NonMaxSuppressionV5).apply(null,arguments)},py=s._NotEqual=function(){return(py=s._NotEqual=s.asm.NotEqual).apply(null,arguments)},cy=s._OneHot=function(){return(cy=s._OneHot=s.asm.OneHot).apply(null,arguments)},dy=s._PadV2=function(){return(dy=s._PadV2=s.asm.PadV2).apply(null,arguments)},hy=s._Pow=function(){return(hy=s._Pow=s.asm.Pow).apply(null,arguments)},my=s._Prelu=function(){return(my=s._Prelu=s.asm.Prelu).apply(null,arguments)},fy=s._Prod=function(){return(fy=s._Prod=s.asm.Prod).apply(null,arguments)},gy=s._RealDiv=function(){return(gy=s._RealDiv=s.asm.RealDiv).apply(null,arguments)},yy=s._Relu=function(){return(yy=s._Relu=s.asm.Relu).apply(null,arguments)},by=s._Relu6=function(){return(by=s._Relu6=s.asm.Relu6).apply(null,arguments)},xy=s._ResizeBilinear=function(){return(xy=s._ResizeBilinear=s.asm.ResizeBilinear).apply(null,arguments)},vy=s._ResizeNearestNeighbor=function(){return(vy=s._ResizeNearestNeighbor=s.asm.ResizeNearestNeighbor).apply(null,arguments)},wy=s._Reverse=function(){return(wy=s._Reverse=s.asm.Reverse).apply(null,arguments)},ky=s._RotateWithOffset=function(){return(ky=s._RotateWithOffset=s.asm.RotateWithOffset).apply(null,arguments)},Iy=s._Round=function(){return(Iy=s._Round=s.asm.Round).apply(null,arguments)},Sy=s._Rsqrt=function(){return(Sy=s._Rsqrt=s.asm.Rsqrt).apply(null,arguments)},Ty=s._ScatterNd=function(){return(Ty=s._ScatterNd=s.asm.ScatterNd).apply(null,arguments)},Ny=s._SelectV2=function(){return(Ny=s._SelectV2=s.asm.SelectV2).apply(null,arguments)},Cy=s._Sigmoid=function(){return(Cy=s._Sigmoid=s.asm.Sigmoid).apply(null,arguments)},_y=s._Sin=function(){return(_y=s._Sin=s.asm.Sin).apply(null,arguments)},Ey=s._Softmax=function(){return(Ey=s._Softmax=s.asm.Softmax).apply(null,arguments)},$y=s._SparseFillEmptyRows=function(){return($y=s._SparseFillEmptyRows=s.asm.SparseFillEmptyRows).apply(null,arguments)},Ay=s._SparseReshape=function(){return(Ay=s._SparseReshape=s.asm.SparseReshape).apply(null,arguments)},Fy=s._SparseSegmentReduction=function(){return(Fy=s._SparseSegmentReduction=s.asm.SparseSegmentReduction).apply(null,arguments)},Dy=s._Sqrt=function(){return(Dy=s._Sqrt=s.asm.Sqrt).apply(null,arguments)},Ry=s._Square=function(){return(Ry=s._Square=s.asm.Square).apply(null,arguments)},My=s._SquaredDifference=function(){return(My=s._SquaredDifference=s.asm.SquaredDifference).apply(null,arguments)},Py=s._Step=function(){return(Py=s._Step=s.asm.Step).apply(null,arguments)},Oy=s._StridedSlice=function(){return(Oy=s._StridedSlice=s.asm.StridedSlice).apply(null,arguments)},Ly=s._Sub=function(){return(Ly=s._Sub=s.asm.Sub).apply(null,arguments)},zy=s._Sum=function(){return(zy=s._Sum=s.asm.Sum).apply(null,arguments)},Wy=s._Tan=function(){return(Wy=s._Tan=s.asm.Tan).apply(null,arguments)},By=s._Tanh=function(){return(By=s._Tanh=s.asm.Tanh).apply(null,arguments)},Vy=s._Tile=function(){return(Vy=s._Tile=s.asm.Tile).apply(null,arguments)},Uy=s._TopK=function(){return(Uy=s._TopK=s.asm.TopK).apply(null,arguments)},Gy=s._Transform=function(){return(Gy=s._Transform=s.asm.Transform).apply(null,arguments)},Hy=s._Transpose=function(){return(Hy=s._Transpose=s.asm.Transpose).apply(null,arguments)},jy=s.__FusedMatMul=function(){return(jy=s.__FusedMatMul=s.asm._FusedMatMul).apply(null,arguments)},qy=s._malloc=function(){return(qy=s._malloc=s.asm.malloc).apply(null,arguments)},Ky=s._free=function(){return(Ky=s._free=s.asm.free).apply(null,arguments)},Xy=s.___errno_location=function(){return(Xy=s.___errno_location=s.asm.__errno_location).apply(null,arguments)},Dd=s.stackSave=function(){return(Dd=s.stackSave=s.asm.stackSave).apply(null,arguments)},Rd=s.stackRestore=function(){return(Rd=s.stackRestore=s.asm.stackRestore).apply(null,arguments)},wp=s.stackAlloc=function(){return(wp=s.stackAlloc=s.asm.stackAlloc).apply(null,arguments)},Yy=s.dynCall_iijjiiii=function(){return(Yy=s.dynCall_iijjiiii=s.asm.dynCall_iijjiiii).apply(null,arguments)},Zy=s.dynCall_jiji=function(){return(Zy=s.dynCall_jiji=s.asm.dynCall_jiji).apply(null,arguments)};s.cwrap=kd;var Bo;jn=function X(){Bo||Md(),Bo||(jn=X)};function Md(X){if(X=X||p,it>0||(Mt(),it>0))return;function se(){Bo||(Bo=!0,s.calledRun=!0,!U&&(sa(),i(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),sn()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),se()},1)):se()}if(s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();Md();var Vo;l&&(Vo={uncaughtException:process.listeners("uncaughtException").filter(function(X){return!l.uncaughtException.indexOf(X)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(X){return!l.unhandledRejection.indexOf(X)>-1})});var Uo;if(typeof r!="undefined")Uo=r;else if(typeof WasmBackendModuleThreadedSimd!="undefined")Uo=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(Vo){var Jy=Uo._dispose;Uo._dispose=function(){Jy(),Vo.uncaughtException.forEach(function(X){process.removeListener("uncaughtException",X)}),Vo.unhandledRejection.forEach(function(X){process.removeListener("unhandledRejection",X)})}}return r.ready}})();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModule=n)}),jh=class{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}},rc=class{refCount(e){return qn("refCount")}incRef(e){return qn("incRef")}timerAvailable(){return!0}time(e){return qn("time")}read(e){return qn("read")}readSync(e){return qn("readSync")}readToGPU(e,t){return qn("readToGPU")}numDataIds(){return qn("numDataIds")}disposeData(e,t){return qn("disposeData")}write(e,t,n){return qn("write")}move(e,t,n,a,r){return qn("move")}createTensorFromTexture(e,t,n){return qn("createTensorFromTexture")}memory(){return qn("memory")}floatPrecision(){return qn("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return qn("dispose")}};function qn(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 kI(e){let t=e.length,n=0;for(;t>0;)n=Math.random()*t|0,t--,hh(e,t,n)}function CF(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=e.length,a=0;for(;n>0;)a=Math.random()*n|0,n--,hh(e,n,a),hh(t,n,a)}function Vp(e,t,n){return Math.max(e,Math.min(t,n))}function _F(e){return e%2===0?e:e+1}function hh(e,t,n){let a=e[t];e[t]=e[n],e[n]=a}function EF(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function hi(e){A(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function Zs(e,t=[],n=!1){if(t==null&&(t=[]),Array.isArray(e)||hn(e)&&!n)for(let a=0;a0,n,a){return new Promise((r,s)=>{let i=0,o=()=>{if(e()){r();return}i++;let l=t(i);if(n!=null&&i>=n){s();return}a!=null?a(o,l):setTimeout(o,l)};o()})}function OF(e,t){let n=1,a=-1;for(let s=0;s=0)n*=e[s];else if(e[s]===-1){if(a!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${a} and dim ${s}`);a=s}else if(e[s]<0)throw Error(`Shapes can not be < 0. Found ${e[s]} at dim ${s}`);if(a===-1){if(t>0&&t!==n)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(n===0)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}`);let r=e.slice();return r[a]=t/n,r}function $a(e,t){let n=t.length;return e=e==null?t.map((a,r)=>r):[].concat(e),A(e.every(a=>a>=-n&&a`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),A(e.every(a=>tl(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function II(e,t){let n=[],a=[],r=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||r?null:$a(t,e).sort(),i=0;for(let o=0;oo)&&e[o]===1&&(n.push(e[o]),a.push(o)),s[i]<=o&&i++}e[o]!==1&&(n.push(e[o]),a.push(o))}return{newShape:n,keptDims:a}}function SI(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else throw new Error(`Unknown data type ${e}`);return n}function TI(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else if(e==="string")n=new Array(t);else throw new Error(`Unknown data type ${e}`);return n}function NI(e,t){for(let n=0;nt+=n.length),t}function Kr(e){return typeof e=="string"||e instanceof String}function EI(e){return typeof e=="boolean"}function $I(e){return typeof e=="number"}function qh(e){return Array.isArray(e)?qh(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":$I(e)?"float32":Kr(e)?"string":EI(e)?"bool":"float32"}function es(e){return!!(e&&e.constructor&&e.call&&e.apply)}function mh(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function AI(e,t,n,a=!1){let r=new Array;if(t.length===1){let s=t[0]*(a?2:1);for(let i=0;il*u)*(a?2:1);for(let l=0;lr*s)*(n?2:1);if(a===0)return[];if(a!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}${n?" for a complex tensor":""}.`);return AI(0,e,t,n)}function vx(e,t){let n=Kh(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return Zo(e,new Float32Array(n));if(t==="int32")return Zo(e,new Int32Array(n));if(t==="bool")return Zo(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function wx(e){e.forEach(t=>{A(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function WF(e,t,n){if(t===0)return 0;if(t===1)return e[0];let a=e[e.length-1];for(let r=0;r{let[n,a]=t.split(":");this.urlFlags[n]=GF(n,a)})}};function VF(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(UF(t,a[0],a[1]),a.join("="))),t}function UF(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function GF(e,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}function H(){return Ix}var Ix=null;function HF(e){Ix=e}var rb;function DI(){if(rb==null){let e;if(typeof window!="undefined")e=window;else if(typeof global!="undefined")e=global;else if(typeof process!="undefined")e=process;else if(typeof self!="undefined")e=self;else throw new Error("Could not find a global object");rb=e}return rb}function jF(){let e=DI();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function Sx(e,t){let n=jF();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var wl="Abs",kl="Acos",Il="Acosh",cs="Add",mi="AddN",Sl="All",Tl="Any",fi="ArgMax",sc="ArgMin",Nl="Asin",Cl="Asinh",_l="Atan",El="Atanh",$l="Atan2",gi="AvgPool",Xh="AvgPoolGrad",ic="AvgPool3D",Yh="AvgPool3DGrad",yi="BatchMatMul",Al="BatchToSpaceND",Zh="Bincount",RI="BroadcastTo",Jh="BroadcastArgs",bi="Cast",xi="Ceil",ds="ClipByValue",Qh="Complex",oc="ComplexAbs",Fl="Concat",vi="Conv2D",em="Conv2DBackpropFilter",wi="Conv2DBackpropInput",lc="Conv3D",tm="Conv3DBackpropFilterV2",nm="Conv3DBackpropInputV2",ki="Cos",Ii="Cosh",Dl="Cumprod",Si="Cumsum",Rl="CropAndResize",am="DenseBincount",Ml="DepthToSpace",Ti="DepthwiseConv2dNative",rm="DepthwiseConv2dNativeBackpropFilter",sm="DepthwiseConv2dNativeBackpropInput",im="Diag",uc="Dilation2D",fh="Dilation2DBackpropInput",gh="Dilation2DBackpropFilter",Ni="RealDiv",om="Einsum",Ci="Elu",lm="EluGrad",Pl="Erf",Ol="Equal",_i="Exp",Ll="ExpandDims",zl="Expm1",um="FFT",pc="Fill",Wl="FlipLeftRight",Ei="Floor",$i="FloorDiv",Ai="FusedBatchNorm",Bl="GatherV2",Vl="GatherNd",Ul="Greater",Fi="GreaterEqual",Di="Identity",pm="IFFT",cm="Imag",Gl="IsFinite",Hl="IsInf",jl="IsNan",Ri="LeakyRelu",ql="Less",Kl="LessEqual",dm="LinSpace",Mi="Log",Xl="Log1p",Yl="LogicalAnd",Zl="LogicalNot",Jl="LogicalOr",MI="LogicalXor",PI="LogSoftmax",qF="LowerBound",cc="LRN",hm="LRNGrad",Pi="Max",Oi="Maximum",Li="MaxPool",mm="MaxPoolGrad",dc="MaxPool3D",fm="MaxPool3DGrad",gm="MaxPoolWithArgmax",zi="Mean",Wi="Min",Bi="Minimum",Vi="MirrorPad",Ql="Mod",ym="Multinomial",Ui="Multiply",eu="Neg",tu="NotEqual",nu="NonMaxSuppressionV3",au="NonMaxSuppressionV4",ru="NonMaxSuppressionV5",su="OnesLike",Gi="OneHot",iu="Pack",Hi="PadV2",KF="Pool",ji="Pow",qi="Prelu",Ki="Prod",bm="RaggedGather",xm="RaggedRange",vm="RaggedTensorToTensor",hc="Range",wm="Real",ou="Reciprocal",Xi="Relu",lu="Reshape",Yi="ResizeNearestNeighbor",km="ResizeNearestNeighborGrad",Zi="ResizeBilinear",Im="ResizeBilinearGrad",Ji="Relu6",Qi="Reverse",eo="Round",to="Rsqrt",uu="ScatterNd",Sm="SearchSorted",pu="Select",cu="Selu",du="Slice",no="Sin",hu="Sinh",mu="Sign",ao="Sigmoid",fu="Softplus",ro="Sqrt",so="Sum",gu="SpaceToBatchND",yu="SplitV",io="Softmax",mc="SparseFillEmptyRows",bu="SparseReshape",fc="SparseSegmentMean",gc="SparseSegmentSum",Tm="SparseToDense",oo="SquaredDifference",yc="Square",xu="StridedSlice",bc="StringNGrams",xc="StringSplit",vc="StringToHashBucketFast",lo="Sub",uo="Tan",po="Tanh",hs="Tile",vu="TopK",wu="Transform",Tr="Transpose",Nm="Unique",ku="Unpack",wc="UnsortedSegmentSum",XF="UpperBound",Iu="ZerosLike",ms="Step",yh="FromPixels",Su="RotateWithOffset",Js="_FusedMatMul",Qs="FusedConv2D",ei="FusedDepthwiseConv2D";function qr(...e){H().getBool("IS_TEST")||H().getBool("PROD")||console.warn(...e)}function YF(...e){H().getBool("IS_TEST")||H().getBool("PROD")||console.log(...e)}var nl=Sx("kernelRegistry",()=>new Map),Up=Sx("gradRegistry",()=>new Map);function bh(e,t){let n=Tx(e,t);return nl.get(n)}function xb(e){return Up.get(e)}function xh(e){let t=nl.entries(),n=[];for(;;){let{done:a,value:r}=t.next();if(a)break;let[s,i]=r,[o]=s.split("_");o===e&&n.push(i)}return n}function kc(e){let{kernelName:t,backendName:n}=e,a=Tx(t,n);nl.has(a)&&qr(`The kernel '${t}' for backend '${n}' is already registered`),nl.set(a,e)}function OI(e){let{kernelName:t}=e;Up.has(t)&&H().getBool("DEBUG")&&qr(`Overriding the gradient for '${t}'`),Up.set(t,e)}function ZF(e,t){let n=Tx(e,t);if(!nl.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);nl.delete(n)}function JF(e){if(!Up.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);Up.delete(e)}function QF(e,t){xh(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});kc(a)})}function Tx(e,t){return`${t}_${e}`}var v={};$e(v,{arraysEqual:()=>ps,assert:()=>A,assertNonNegativeIntegerDimensions:()=>wx,assertNonNull:()=>hi,assertShapesMatch:()=>Sn,bytesFromStringArray:()=>_I,bytesPerElement:()=>bb,checkConversionForErrors:()=>NI,clamp:()=>Vp,computeStrides:()=>vl,createScalarValue:()=>sD,createShuffledIndices:()=>MF,decodeString:()=>vh,distSquared:()=>AF,encodeString:()=>Sc,fetch:()=>oD,fingerPrint64:()=>rD,flatten:()=>Zs,getArrayFromDType:()=>TI,getTypedArrayFromDType:()=>SI,hasEncodingLoss:()=>LF,hexToLong:()=>Ic,indexToLoc:()=>BF,inferDtype:()=>qh,inferFromImplicitShape:()=>OF,isBoolean:()=>EI,isFunction:()=>es,isInt:()=>tl,isNumber:()=>$I,isPromise:()=>kx,isScalarShape:()=>FF,isString:()=>Kr,isTypedArray:()=>hn,isValidDtype:()=>CI,locToIndex:()=>WF,makeOnesTypedArray:()=>vx,makeZerosNestedTypedArray:()=>zF,makeZerosTypedArray:()=>Kh,nearestDivisor:()=>mh,nearestLargerEven:()=>_F,now:()=>Gp,parseAxisParam:()=>$a,randUniform:()=>$F,repeatedTry:()=>PF,rightPad:()=>Lp,shuffle:()=>kI,shuffleCombo:()=>CF,sizeFromShape:()=>mt,sizeToSquarishShape:()=>RF,squeezeShape:()=>II,sum:()=>EF,swap:()=>hh,tanh:()=>DF,toNestedArray:()=>Zo,toTypedArray:()=>Cm});var B1=us(pF()),Ws=B1.default||B1;function Ic(e){return Ws.fromString(e,!0,16)}var LI=Ic("c3a5c85c97cb3127"),Ls=Ic("b492b66fbe98f273"),bn=Ic("9ae16a3b2f90404f");function vb(e){return e.xor(e.shru(47))}function zI(e,t,n){let a=e.slice(t,t+n);return Ws.fromBytes(Array.from(a),!0,!0)}function ht(e,t){return zI(e,t,8)}function V1(e,t){return zI(e,t,4)}function Yt(e,t){return t===0?e:e.shru(t).or(e.shl(64-t))}function Zr(e,t,n=Ic("9ddfea08eb382d69")){let a=e.xor(t).mul(n);a=a.xor(a.shru(47));let r=t.xor(a).mul(n);return r=r.xor(r.shru(47)),r=r.mul(n),r}function eD(e,t,n,a,r,s){r=r.add(e),s=Yt(s.add(r).add(a),21);let i=r;return r=r.add(t),r=r.add(n),s=s.add(Yt(r,44)),[r.add(a),s.add(i)]}function Gd(e,t,n,a){return eD(ht(e,t),ht(e,t+8),ht(e,t+16),ht(e,t+24),n,a)}function tD(e,t=e.length){if(t>=8){let n=bn.add(t*2),a=ht(e,0).add(bn),r=ht(e,t-8),s=Yt(r,37).mul(n).add(a),i=Yt(a,25).add(r).mul(n);return Zr(s,i,n)}if(t>=4){let n=bn.add(t*2),a=V1(e,0);return Zr(a.shl(3).add(t),V1(e,t-4),n)}if(t>0){let n=e[0],a=e[t>>1],r=e[t-1],s=n+(a<<8),i=t+(r<<2);return vb(bn.mul(s).xor(LI.mul(i))).mul(bn)}return bn}function nD(e,t=e.length){let n=bn.add(t*2),a=ht(e,0).mul(Ls),r=ht(e,8),s=ht(e,t-8).mul(n),i=ht(e,t-16).mul(bn);return Zr(Yt(a.add(r),43).add(Yt(s,30)).add(i),a.add(Yt(r.add(bn),18)).add(s),n)}function aD(e,t=e.length){let n=bn.add(t*2),a=ht(e,0).mul(bn),r=ht(e,8),s=ht(e,t-8).mul(n),i=ht(e,t-16).mul(bn),o=Yt(a.add(r),43).add(Yt(s,30)).add(i),l=Zr(o,a.add(Yt(r.add(bn),18)).add(s),n),u=ht(e,16).mul(n),p=ht(e,24),d=o.add(ht(e,t-32)).mul(n),c=l.add(ht(e,t-24)).mul(n);return Zr(Yt(u.add(p),43).add(Yt(d,30)).add(c),u.add(Yt(p.add(a),18)).add(d),n)}function rD(e,t=e.length){let n=Ws.fromNumber(81,!0);if(t<=32)return t<=16?tD(e,t):nD(e,t);if(t<=64)return aD(e,t);let a=n,r=n.mul(Ls).add(113),s=vb(r.mul(bn).add(113)).mul(bn),i=[Ws.UZERO,Ws.UZERO],o=[Ws.UZERO,Ws.UZERO];a=a.mul(bn).add(ht(e,0));let l=0,u=(t-1>>6)*64,p=u+(t-1&63)-63;do a=Yt(a.add(r).add(i[0]).add(ht(e,l+8)),37).mul(Ls),r=Yt(r.add(i[1]).add(ht(e,l+48)),42).mul(Ls),a=a.xor(o[1]),r=r.add(i[0]).add(ht(e,l+40)),s=Yt(s.add(o[0]),33).mul(Ls),i=Gd(e,l,i[1].mul(Ls),a.add(o[0])),o=Gd(e,l+32,s.add(o[1]),r.add(ht(e,l+16))),[s,a]=[a,s],l+=64;while(l!==u);let d=Ls.add(s.and(255).shl(1));return l=p,o[0]=o[0].add(t-1&63),i[0]=i[0].add(o[0]),o[0]=o[0].add(i[0]),a=Yt(a.add(r).add(i[0]).add(ht(e,l+8)),37).mul(d),r=Yt(r.add(i[1]).add(ht(e,l+48)),42).mul(d),a=a.xor(o[1].mul(9)),r=r.add(i[0].mul(9).add(ht(e,l+40))),s=Yt(s.add(o[0]),33).mul(d),i=Gd(e,l,i[1].mul(d),a.add(o[0])),o=Gd(e,l+32,s.add(o[1]),r.add(ht(e,l+16))),[s,a]=[a,s],Zr(Zr(i[0],o[0],d).add(vb(r).mul(LI)).add(s),Zr(i[1],o[1],d).add(a),d)}function sD(e,t){return t==="string"?Sc(e):Cm([e],t)}function iD(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Cm(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=Zs(e)),H().getBool("DEBUG")&&NI(e,t),iD(e,t))return e;if(t==null||t==="float32"||t==="complex64")return new Float32Array(e);if(t==="int32")return new Int32Array(e);if(t==="bool"){let n=new Uint8Array(e.length);for(let a=0;a{a=n()},s,i=Gp();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(r);else{r();for(let o of a)o.dataSync();s=Promise.resolve({kernelMs:Gp()-i})}if(H().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{uD(u,l.dtype,e)})}return{kernelName:e,outputs:a,inputs:t,timeMs:s.then(o=>o.kernelMs),extraInfo:s.then(o=>o.getExtraProfileInfo!=null?o.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:n,timeMs:a,inputs:r,extraInfo:s}=e;n.forEach(i=>{Promise.all([i.data(),a,s]).then(o=>{this.logger.logKernelProfile(t,i,o[0],o[1],r,o[2])})})}};function uD(e,t,n){if(t!=="float32")return!1;for(let a=0;a0?m:""} `}}console.log(`%c${o} %c${i} %c${l}D ${p} %c${u} %c${d} %c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function cD(e,t,n){let a={},r={};for(let l=0;la[f.id]=!0),h=!0,r[u.id]=!0;break}if(h)break}}let s={};s[n.id]=!0;let i={};for(let l=e.length-1;l>=0;l--){let u=e[l],p=u.inputs;for(let d=0;d=0;r--){let s=t[r],i=[];if(s.outputs.forEach(l=>{let u=e[l.id];u!=null?i.push(u):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let o=s.gradient(i);for(let l in s.inputs){if(!(l in o))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(o)}.`);let u=n(()=>o[l]());if(u.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${u.dtype}'`);let p=s.inputs[l];if(!ps(u.shape,p.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${l}' has shape '${u.shape}', which does not match the shape of the input '${p.shape}'`);if(e[p.id]==null)e[p.id]=u;else{let d=e[p.id];e[p.id]=a(d,u),d.dispose()}}}}var U1=20,Ip=3,sb=7;function hD(e,t,n,a){let r=vl(t),s=mD(e,t,n,r),i=t.length,o=ah(e,t,n,r,s),l=["Tensor"];return a&&(l.push(` dtype: ${n}`),l.push(` rank: ${i}`),l.push(` shape: [${t}]`),l.push(" values:")),l.push(o.map(u=>" "+u).join(` `)),l.join(` -`)}function mD(e,t,n,a){let r=mt(t),s=a[a.length-1],i=new Array(s).fill(0),o=t.length,l=n==="complex64"?_p(e):e;if(o>1)for(let u=0;uU1){let g=Ip*i,y=Array.from(e.slice(0,g)),b=Array.from(e.slice((o-Ip)*i,o*i));return n==="complex64"&&(y=_p(y),b=_p(b)),["["+y.map((x,w)=>Cp(x,r[w],n)).join(", ")+", ..., "+b.map((x,w)=>Cp(x,r[o-Ip+w],n)).join(", ")+"]"]}let f=n==="complex64"?_p(e):Array.from(e);return["["+f.map((g,y)=>Cp(g,r[y],n)).join(", ")+"]"]}let u=t.slice(1),p=a.slice(1),d=a[0]*i,c=[];if(o>U1){for(let f=0;f1)for(let u=0;uU1){let f=Ip*i,g=Array.from(e.slice(0,f)),y=Array.from(e.slice((o-Ip)*i,o*i));return n==="complex64"&&(g=_p(g),y=_p(y)),["["+g.map((b,x)=>Cp(b,r[x],n)).join(", ")+", ..., "+y.map((b,x)=>Cp(b,r[o-Ip+x],n)).join(", ")+"]"]}return["["+(n==="complex64"?_p(e):Array.from(e)).map((f,g)=>Cp(f,r[g],n)).join(", ")+"]"]}let u=t.slice(1),p=a.slice(1),d=a[0]*i,c=[];if(o>U1){for(let f=0;f`Length of values '${a}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")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||TI(t,this.size),this.strides=vl(e)}set(e,...t){t.length===0&&(t=[0]),$(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);let n=this.locToIndex(t);this.values[n]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(let a of e){if(a<0||a>=this.shape[t]){let r=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(r)}t++}let n=e[e.length-1];for(let a=0;avh(n))}catch(n){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataToGPU(e){return this.throwIfDisposed(),Oa().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();let e=Oa().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>vh(t))}catch(t){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();let e=await Oa().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(Oa().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return Ko.print(this,e)}clone(){return this.throwIfDisposed(),Ko.clone(this)}toString(e=!1){let t=this.dataSync();return hD(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Ko.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Oa().makeVariable(this,e,t,n)}};Object.defineProperty(Te,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function J(){return Sx("Tensor",()=>Te)}J();var ts=class extends Te{constructor(e,t,n,a){super(e.shape,e.dtype,e.dataId,a),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(!ps(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Oa().disposeTensor(this),this.dataId=e.dataId,Oa().incRef(this,null)}dispose(){Oa().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(ts,Symbol.hasInstance,{value:e=>e instanceof Te&&e.assign!=null&&e.assign instanceof Function});var Va={};Ae(Va,{assertTypesMatch:()=>BI,getTensorsInContainer:()=>Nx,isTensorInList:()=>vD,makeTypesMatch:()=>_t});var wb;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(wb||(wb={}));var kb;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(kb||(kb={}));var Ib;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(Ib||(Ib={}));var Sb;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(Sb||(Sb={}));var Tb;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(Tb||(Tb={}));var xD={float32:Sb,int32:kb,bool:Ib,complex64:Tb};function ma(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return xD[e][t]}function _m(e){return ma(e,"int32")}function _t(e,t){if(e.dtype===t.dtype)return[e,t];let n=ma(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function BI(e,t){$(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function vD(e,t){return t.some(n=>n.id===e.id)}function Nx(e){let t=[];return VI(e,t,new Set),t}function VI(e,t,n){if(e==null)return;if(e instanceof Te){t.push(e);return}if(!wD(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),VI(s,t,n))}}function wD(e){return Array.isArray(e)||typeof e=="object"}function ib(e){return e.kernelName!=null}var G1=class{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(let e in this.registeredVariables)this.registeredVariables[e].dispose()}},Hp=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new G1}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let e=this.getSortedBackends();for(let t=0;t{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){xh(e).forEach(t=>{t.disposeFunc!=null&&t.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{let n=t.factory();if(n&&!(n instanceof rc)&&typeof n.then=="function"){let a=++this.pendingBackendInitId,r=n.then(s=>a(athis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;tthis.startScope(n),()=>this.endScope(a),()=>(a=t(),a instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),a))}scopedRun(e,t,n){e();try{let a=n();return t(),a}catch(a){throw t(),a}}nextTensorId(){return Hp.nextTensorId++}nextVariableId(){return Hp.nextVariableId++}clone(e){let t=O.runKernel(Di,{x:e}),n={x:e},a=s=>({x:()=>{let i="float32",o={x:s},l={dtype:i};return O.runKernel(bi,o,l)}}),r=[];return this.addTapeNode(this.state.activeScope.name,n,[t],a,r,{}),t}runKernel(e,t,n){if(this.backendName==null&&this.backend,bh(e,this.backendName)==null)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){let a=this.backend.numDataIds(),r=0;n.forEach(o=>{r+=o.dtype==="complex64"?3:1});let s=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=a-t-r-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=[],a=this.isTapeOn(),r=this.state.numBytes,s=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let i;this.backendName==null&&this.backend;let o,l=ib(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(ib(e)){let{kernelName:h,inputs:m,attrs:f}=e;this.backendName==null&&this.backend;let g=bh(h,this.backendName);$(g!=null,()=>`Cannot find registered kernel '${h}' for backend '${this.backendName}'`),i=()=>{let y=this.backend.numDataIds();o=g.kernelFunc({inputs:m,attrs:f,backend:this.backend});let b=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(h,y,b);let x=b.map(w=>w.rank!=null?w:this.makeTensorFromTensorInfo(w));if(a){let w=this.getTensorsForGradient(h,m,x);n=this.saveTensorsForBackwardMode(w)}return x}}else{let{forwardFunc:h}=e,m=f=>{!a||(n=f.map(g=>this.keep(this.clone(g))))};i=()=>{let f=this.backend.numDataIds();o=this.tidy(()=>h(this.backend,m));let g=Array.isArray(o)?o:[o];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,f,g),g}}let{inputs:u,attrs:p}=e,d=ib(e)?null:e.backwardsFunc,c;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?t=i():(c=this.profiler.profileKernel(l,u,()=>i()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(c),t=c.outputs)}),a&&this.addTapeNode(l,u,t,d,n,p),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-r,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-s,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(u).map(h=>u[h]!=null?u[h].shape:null),outputShapes:t.map(h=>h.shape),kernelTimeMs:c.timeMs,extraInfo:c.extraInfo}),Array.isArray(o)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(t=>this.keep(this.clone(t)))}getTensorsForGradient(e,t,n){let a=xb(e);if(a!=null){let r=a.inputsToSave||[],s=a.outputsToSave||[],i;a.saveAllInputs?($(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),i=Object.keys(t).map(l=>t[l])):i=r.map(l=>t[l]);let o=n.filter((l,u)=>s[u]);return i.concat(o)}return[]}makeTensor(e,t,n,a){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",a=a||this.backend;let r=e;n==="string"&&Kr(e[0])&&(r=e.map(o=>Sc(o)));let s=a.write(r,t,n),i=new Te(t,n,s,this.nextTensorId());if(this.trackTensor(i,a),n==="string"){let o=this.state.tensorInfo.get(s),l=_I(r);this.state.numBytes+=l-o.bytes,o.bytes=l}return i}makeTensorFromDataId(e,t,n,a){n=n||"float32";let r={dataId:e,shape:t,dtype:n};return this.makeTensorFromTensorInfo(r,a)}makeTensorFromTensorInfo(e,t){let{dataId:n,shape:a,dtype:r}=e,s=new Te(a,r,n,this.nextTensorId());return this.trackTensor(s,t),s}makeVariable(e,t=!0,n,a){n=n||this.nextVariableId().toString(),a!=null&&a!==e.dtype&&(e=e.cast(a));let r=new ts(e,t,n,this.nextTensorId());if(this.state.registeredVariables[r.name]!=null)throw new Error(`Variable with name ${r.name} was already registered`);return this.state.registeredVariables[r.name]=r,this.incRef(r,this.backend),r}trackTensor(e,t){this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++;let n=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(n=e.size*bb(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 ts||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;let t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,e.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),e.dtype!=="complex64"&&e.dtype!=="string"){let n=e.size*bb(e.dtype);this.state.numBytes-=n}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(let e in this.state.registeredVariables){let t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){let 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,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;let 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(a=>a.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let a of this.state.activeProfile.kernels)a.kernelTimeMs=await a.kernelTimeMs,a.extraInfo=await a.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,n,a,r,s){let i={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:n,saved:r},o=xb(e);o!=null&&(a=o.gradFunc),a!=null&&(i.gradient=l=>(l=l.map((u,p)=>{if(u==null){let d=n[p],c=Kh(d.size,d.dtype);return this.makeTensor(c,d.shape,d.dtype)}return u}),a(l.length>1?l:l[0],r,s))),this.state.activeTape.push(i)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){let t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){let t=Nx(e),n=new Set(t.map(r=>r.id));for(let r=0;r{!r.kept&&r.scopeId===a.id&&this.track(r)})}gradients(e,t,n,a=!1){if($(t.length>0,()=>"gradients() received an empty list of xs."),n!=null&&n.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);let r=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));$(r instanceof Te,()=>"The result y returned by f() must be a tensor.");let s=cD(this.state.activeTape,t,r);if(!a&&s.length===0&&t.length>0)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",()=>{let i={};i[r.id]=n==null?kD(r.shape):n,dD(i,s,l=>this.tidy(l),ID);let o=t.map(l=>i[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let u of l.saved)u.dispose()}),this.state.activeTape=null),{value:r,grads:o}})}customGrad(e){return $(es(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{$(t.every(i=>i instanceof Te),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n,a={};t.forEach((i,o)=>{a[o]=i});let r=(i,o)=>(n=e(...t,o),$(n.value instanceof Te,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),$(es(n.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),n.value),s=(i,o)=>{let l=n.gradFunc(i,o),u=Array.isArray(l)?l:[l];$(u.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(...)."),$(u.every(d=>d instanceof Te),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let p={};return u.forEach((d,c)=>{p[c]=()=>d}),p};return this.runKernelFunc({forwardFunc:r,backwardsFunc:s,inputs:a})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}readToGPU(e,t){return this.state.tensorInfo.get(e).backend.readToGPU(e,t)}async time(e){let t=Gp(),n=await this.backend.time(e);return n.wallMs=Gp()-t,n}track(e){return this.state.activeScope!=null&&(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 G1;for(let e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};Hp.nextTensorId=0;Hp.nextVariableId=0;function kD(e){let t=vx(mt(e),"float32");return O.makeTensor(t,e,"float32")}function UI(){let e=DI();if(e._tfengine==null){let t=new FI(e);e._tfengine=new Hp(t)}return HF(e._tfengine.ENV),gD(()=>e._tfengine),e._tfengine}var O=UI();function ID(e,t){let n={a:e,b:t};return O.runKernel(cs,n)}var Tc={};Ae(Tc,{isBrowser:()=>GI,isMobile:()=>ND,mockIsMobile:()=>TD});function SD(){return typeof navigator!="undefined"&&navigator!=null}var Nb;function TD(e){Nb=e}function ND(e){if(Nb!==void 0)return Nb;if(e||SD()){if(e||(e=navigator),e.product==="ReactNative")return!0;let t=e.userAgent||e.vendor||(typeof window!="undefined"?window.opera:"");if(!t){let n=e;return n.userAgentData&&n.userAgentData.mobile}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(t)||/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(t.substr(0,4))}return!1}function GI(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Jn=H();Jn.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.")});Jn.registerFlag("IS_BROWSER",()=>GI());Jn.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Jn.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Jn.registerFlag("PROD",()=>!1);Jn.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Jn.getBool("DEBUG"));Jn.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Jn.registerFlag("IS_TEST",()=>!1);Jn.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);Jn.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);Jn.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);Jn.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);Jn.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function ir(e,t){let n=e;if(hn(e))return t==="string"?[]:[e.length];if(typeof e=="object"&&"texture"in e){let r=e.channels||"RGBA";return[e.height,e.width*r.length]}if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||hn(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&H().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&HI(e,a,[]),a}function HI(e,t,n){if(n=n||[],!Array.isArray(e)&&!hn(e)){$(t.length===0,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}$(t.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`),$(e.length===t[0],()=>`Element arr[${n.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`);let a=t.slice(1);for(let r=0;r=0&&(r=a),H1(a,r,t,n),e==null||!hn(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string"){let o=e==null?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${n}' must be a Tensor or TensorLike, but got '${o}'`)}let s=ir(e,r);!hn(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?Cm(e,r):Zs(e,[],!0);return O.makeTensor(i,s,r)}function jp(e,t,n,a="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${n} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map((r,s)=>_(r,`${t}[${s}]`,n,a))}var Cx="__op";function L(e){let t=Object.keys(e);if(t.length!==1)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],a=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1)),n=n+Cx;let r=(...s)=>{O.startScope(n);try{let i=a(...s);return kx(i)&&console.error("Cannot return a Promise inside of tidy."),O.endScope(i),i}catch(i){throw O.endScope(null),i}};return Object.defineProperty(r,"name",{value:n,configurable:!0}),r}function CD(e,t){let n=_(e,"real","complex"),a=_(t,"imag","complex");Sn(n.shape,a.shape,`real and imag shapes, ${n.shape} and ${a.shape}, must match in call to tf.complex().`);let r={real:n,imag:a};return O.runKernel(Qh,r)}var Cr=L({complex_:CD});function fs(e,t,n,a){if(a==null&&(a=qh(e)),a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(typeof e=="object"&&"texture"in e){if(a!=="float32"&&a!=="int32")throw new Error(`Creating tensor from texture only supports 'float32'|'int32' dtype, while the dtype is ${a}.`);return e.channels=e.channels||"RGBA",O.backend.createTensorFromTexture(e,t||n,a)}if(!hn(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string")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(t!=null){wx(t);let r=mt(t),s=mt(n);$(r===s,()=>`Based on the provided shape, [${t}], the tensor should have ${r} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${n}) does not match the provided shape (${t}). `)}}return!hn(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?Cm(e,a):Zs(e,[],!0),O.makeTensor(e,t,a)}function kn(e,t,n){let a=ir(e,n);return fs(e,t,a,n)}var Cb={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},wh=4;async function _D(e,t){let n=[],a=[],r=Array.isArray(e)?e.map(i=>i.name):Object.keys(e);for(let i=0;i{let c=await l.bytes(),h=c.reduce((g,y)=>g+y.length,0)+wh*c.length,m=new Uint8Array(h),f=0;for(let g=0;g{if(t+=s.byteLength,n.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let a=new Uint8Array(t),r=0;return n.forEach(s=>{a.set(new Uint8Array(s.buffer),r),r+=s.byteLength}),a.buffer}var _x=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function j1(e){return _x?Buffer.byteLength(e):new Blob([e]).size}function AD(e){if(_x)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),n="";for(let a=0,r=t.length;a{t+=r.byteLength});let n=new Uint8Array(t),a=0;return e.forEach(r=>{n.set(new Uint8Array(r),a),a+=r.byteLength}),n.buffer}function q1(e){let t="/";for(e=e.trim();e.endsWith(t);)e=e.slice(0,e.length-1);let n=e.split(t);return n[n.length-1]}function qI(e,t){let n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:t};return e.signature!=null&&(n.signature=e.signature),e.userDefinedMetadata!=null&&(n.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(n.modelInitializer=e.modelInitializer),e.initializerSignature!=null&&(n.initializerSignature=e.initializerSignature),e.trainingConfig!=null&&(n.trainingConfig=e.trainingConfig),n}function KI(e,t,n){let a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};if(e.trainingConfig!=null&&(a.trainingConfig=e.trainingConfig),e.weightsManifest!=null){if(!t)throw new Error("modelJSON has weightsManifest but weightSpecs is null");if(!n)throw new Error("modelJSON has weightsManifest but weightData is null");a.weightSpecs=t,a.weightData=n}return e.signature!=null&&(a.signature=e.signature),e.userDefinedMetadata!=null&&(a.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(a.modelInitializer=e.modelInitializer),e.initializerSignature!=null&&(a.initializerSignature=e.initializerSignature),a}async function Ax(e,t){let n,a;return e.weightsManifest!=null&&([n,a]=await t(e.weightsManifest)),KI(e,n,a)}function Nc(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:e.modelTopology==null?0:j1(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:j1(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function XI(e){let t=[];for(let n of e)t.push(...n.weights);return t}function FD(){let e=n=>{let a=n<<13,r=0;for(;(a&8388608)===0;)r-=8388608,a<<=1;return a&=-8388609,r+=947912704,a|r},t=new Uint32Array(2048);t[0]=0;for(let n=1;n<1024;n++)t[n]=e(n);for(let n=1024;n<2048;n++)t[n]=939524096+(n-1024<<13);return t}function DD(){let 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}function RD(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function MD(){let e=FD(),t=DD(),n=RD();return a=>{let r=new ArrayBuffer(4*a.length),s=new Uint32Array(r);for(let i=0;i>10]+(o&1023)]+t[o>>10];s[i]=l}return new Float32Array(r)}}var At=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return At.instance==null&&(At.instance=new At),At.instance}static registerSaveRouter(e){At.getInstance().saveRouters.push(e)}static registerLoadRouter(e){At.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return At.getHandlers(e,"save")}static getLoadHandlers(e,t){return At.getHandlers(e,"load",t)}static getHandlers(e,t,n){let a=[];return(t==="load"?At.getInstance().loadRouters:At.getInstance().saveRouters).forEach(r=>{let s=r(e,n);s!==null&&a.push(s)}),a}},PD=e=>At.registerSaveRouter(e),OD=e=>At.registerLoadRouter(e),LD=e=>At.getSaveHandlers(e),zD=(e,t)=>At.getLoadHandlers(e,t),_b="tensorflowjs",Eb=1,Gs="models_store",Xr="model_info_store";function YI(){if(!H().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let e=typeof window=="undefined"?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(t==null)throw new Error("The current browser does not appear to support IndexedDB.");return t}function Ab(e){let t=e.result;t.createObjectStore(Gs,{keyPath:"modelPath"}),t.createObjectStore(Xr,{keyPath:"modelPath"})}var ti=class{constructor(e){if(this.indexedDB=YI(),e==null||!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((n,a)=>{let r=this.indexedDB.open(_b,Eb);r.onupgradeneeded=()=>Ab(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(Gs,"readonly"),o=i.objectStore(Gs).get(this.modelPath);o.onsuccess=()=>{if(o.result==null)return s.close(),a(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(o.result.modelArtifacts)},o.onerror=l=>(s.close(),a(o.error)),i.oncomplete=()=>s.close()}else{let i=Nc(t),o=s.transaction(Xr,"readwrite"),l=o.objectStore(Xr),u=l.put({modelPath:this.modelPath,modelArtifactsInfo:i}),p;u.onsuccess=()=>{p=s.transaction(Gs,"readwrite");let d=p.objectStore(Gs).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i});d.onsuccess=()=>n({modelArtifactsInfo:i}),d.onerror=c=>{l=o.objectStore(Xr);let h=l.delete(this.modelPath);h.onsuccess=()=>(s.close(),a(d.error)),h.onerror=m=>(s.close(),a(d.error))}},u.onerror=d=>(s.close(),a(u.error)),o.oncomplete=()=>{p==null?s.close():p.oncomplete=()=>s.close()}}},r.onerror=s=>a(r.error)})}};ti.URL_SCHEME="indexeddb://";var ZI=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ti.URL_SCHEME)?WD(e.slice(ti.URL_SCHEME.length)):null;At.registerSaveRouter(ZI);At.registerLoadRouter(ZI);function WD(e){return new ti(e)}function BD(e){return e.startsWith(ti.URL_SCHEME)?e.slice(ti.URL_SCHEME.length):e}var VD=class{constructor(){this.indexedDB=YI()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(_b,Eb);n.onupgradeneeded=()=>Ab(n),n.onsuccess=()=>{let a=n.result,r=a.transaction(Xr,"readonly"),s=r.objectStore(Xr).getAll();s.onsuccess=()=>{let i={};for(let o of s.result)i[o.modelPath]=o.modelArtifactsInfo;e(i)},s.onerror=i=>(a.close(),t(s.error)),r.oncomplete=()=>a.close()},n.onerror=a=>t(n.error)})}async removeModel(e){return e=BD(e),new Promise((t,n)=>{let a=this.indexedDB.open(_b,Eb);a.onupgradeneeded=()=>Ab(a),a.onsuccess=()=>{let r=a.result,s=r.transaction(Xr,"readwrite"),i=s.objectStore(Xr),o=i.get(e),l;o.onsuccess=()=>{if(o.result==null)return r.close(),n(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{let u=i.delete(e),p=()=>{l=r.transaction(Gs,"readwrite");let d=l.objectStore(Gs).delete(e);d.onsuccess=()=>t(o.result.modelArtifactsInfo),d.onerror=c=>n(o.error)};u.onsuccess=p,u.onerror=d=>(p(),r.close(),n(o.error))}},o.onerror=u=>(r.close(),n(o.error)),s.oncomplete=()=>{l==null?r.close():l.oncomplete=()=>r.close()}},a.onerror=r=>n(a.error)})}},Ir="/",Xo="tensorflowjs_models",JI="info",UD="model_topology",GD="weight_specs",HD="weight_data",jD="model_metadata";function QI(e){return{info:[Xo,e,JI].join(Ir),topology:[Xo,e,UD].join(Ir),weightSpecs:[Xo,e,GD].join(Ir),weightData:[Xo,e,HD].join(Ir),modelMetadata:[Xo,e,jD].join(Ir)}}function eS(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function qD(e){let t=e.split(Ir);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(Ir)}function KD(e){return e.startsWith(ni.URL_SCHEME)?e.slice(ni.URL_SCHEME.length):e}var ni=class{constructor(e){if(!H().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,e==null||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=QI(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.");{let t=JSON.stringify(e.modelTopology),n=JSON.stringify(e.weightSpecs),a=Nc(e);try{this.LS.setItem(this.keys.info,JSON.stringify(a)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,AD(e.weightData));let r={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,signature:e.signature!=null?e.signature:void 0,userDefinedMetadata:e.userDefinedMetadata!=null?e.userDefinedMetadata:void 0,modelInitializer:e.modelInitializer!=null?e.modelInitializer:void 0,initializerSignature:e.initializerSignature!=null?e.initializerSignature:void 0,trainingConfig:e.trainingConfig!=null?e.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(r)),{modelArtifactsInfo:a}}catch(r){throw eS(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${a.modelTopologyBytes}, weightSpecsBytes=${a.weightSpecsBytes}, weightDataBytes=${a.weightDataBytes}.`)}}}async load(){let e=JSON.parse(this.LS.getItem(this.keys.info));if(e==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(e.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},n=JSON.parse(this.LS.getItem(this.keys.topology));if(n==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=n;let a=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(a==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=a;let r=this.LS.getItem(this.keys.modelMetadata);if(r!=null){let i=JSON.parse(r);t.format=i.format,t.generatedBy=i.generatedBy,t.convertedBy=i.convertedBy,i.signature!=null&&(t.signature=i.signature),i.userDefinedMetadata!=null&&(t.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(t.modelInitializer=i.modelInitializer),i.initializerSignature!=null&&(t.initializerSignature=i.initializerSignature),i.trainingConfig!=null&&(t.trainingConfig=i.trainingConfig)}let s=this.LS.getItem(this.keys.weightData);if(s==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=$D(s),t}};ni.URL_SCHEME="localstorage://";var tS=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ni.URL_SCHEME)?XD(e.slice(ni.URL_SCHEME.length)):null;At.registerSaveRouter(tS);At.registerLoadRouter(tS);function XD(e){return new ni(e)}var YD=class{constructor(){$(H().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),$(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=Xo+Ir,n=Ir+JI;for(let a=0;a"scheme must not be undefined or null."),e.endsWith(Jo)&&(e=e.slice(0,e.indexOf(Jo))),$(e.length>0,()=>"scheme must not be an empty string.");let n=Pn.getInstance();$(n.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),n.managers[e]=t}static getManager(e){let t=Pn.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(Pn.getInstance().managers)}};function rh(e){if(e.indexOf(Jo)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Pn.getSchemes().join(",")}`);return{scheme:e.split(Jo)[0],path:e.split(Jo)[1]}}async function nS(e,t,n=!1){$(e!==t,()=>`Old path and new path are the same: '${e}'`);let a=At.getLoadHandlers(e);$(a.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),$(a.length<2,()=>`Copying failed because more than one (${a.length}) load handlers for source URL ${e}.`);let r=a[0],s=At.getSaveHandlers(t);$(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),$(s.length<2,()=>`Copying failed because more than one (${a.length}) save handlers for destination URL ${t}.`);let i=s[0],o=rh(e).scheme,l=rh(e).path,u=o===rh(e).scheme,p=await r.load();n&&u&&await Pn.getManager(o).removeModel(l);let d=await i.save(p);return n&&!u&&await Pn.getManager(o).removeModel(l),d.modelArtifactsInfo}async function ZD(){let e=Pn.getSchemes(),t={};for(let n of e){let a=await Pn.getManager(n).listModels();for(let r in a){let s=n+Jo+r;t[s]=a[r]}}return t}async function JD(e){let t=rh(e);return Pn.getManager(t.scheme).removeModel(t.path)}async function QD(e,t){return nS(e,t,!1)}async function eR(e,t){return nS(e,t,!0)}var tR=class{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}setTimeoutCustom(e,t){if(typeof window=="undefined"||!H().getBool("USE_SETTIMEOUTCUSTOM")){setTimeout(e,t);return}this.functionRefs.push(e),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")},t),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",n=>{if(n.source===window&&n.data.name===this.messageName){n.stopPropagation();let a=this.functionRefs[n.data.index];a(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}},!0))}};if(H().get("IS_BROWSER")){H().setPlatform("browser",new tR);try{Pn.registerManager(ni.URL_SCHEME,new YD)}catch(e){}try{Pn.registerManager(ti.URL_SCHEME,new VD)}catch(e){}}var nR={importFetch:()=>cF()},ob,aR=class{constructor(){this.util=dF(),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return H().global.fetch!=null?H().global.fetch(e,t):(ob==null&&(ob=nR.importFetch()),ob(e,t))}now(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return e.length===0?"":new this.util.TextDecoder(t).decode(e)}};H().get("IS_NODE")&&!H().get("IS_BROWSER")&&H().setPlatform("node",new aR);function Pe(e,t="float32",n){return t=t||"float32",wx(e),new Ht(e,t,n)}function rR(e,t){let n=_(e,"x","cast");if(!CI(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&n.dtype!=="string"||t!=="string"&&n.dtype==="string")throw new Error("Only strings can be casted to strings");let a={x:n},r={dtype:t};return O.runKernel(bi,a,r)}var oe=L({cast_:rR});function sR(e){let t={x:_(e,"x","clone","string_or_numeric")};return O.runKernel(Di,t)}var rr=L({clone_:sR});function $x(e,t=!1){console.log(e.toString(t))}UI();var iR={buffer:Pe,cast:oe,clone:rr,print:$x};yD(iR);var Ut={};Ae(Ut,{browserFiles:()=>hR,browserHTTPRequest:()=>bR,concatenateArrayBuffers:()=>Ex,copyModel:()=>QD,decodeWeights:()=>jI,encodeWeights:()=>_D,fromMemory:()=>vR,fromMemorySync:()=>oS,getLoadHandlers:()=>zD,getModelArtifactsForJSON:()=>Ax,getModelArtifactsForJSONSync:()=>KI,getModelArtifactsInfoForJSON:()=>Nc,getSaveHandlers:()=>LD,getWeightSpecs:()=>XI,http:()=>Dx,isHTTPScheme:()=>$b,listModels:()=>ZD,loadWeights:()=>mR,moveModel:()=>eR,registerLoadRouter:()=>OD,registerSaveRouter:()=>PD,removeModel:()=>JD,weightsLoaderFactory:()=>rS,withSaveHandler:()=>wR,withSaveHandlerSync:()=>kR});var oR="model",lR=".json",uR=".weights.bin";function K1(e){return new Promise(t=>setTimeout(t)).then(e)}var al=class{constructor(e){if(!H().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(al.URL_SCHEME)&&(e=e.slice(al.URL_SCHEME.length)),(e==null||e.length===0)&&(e=oR),this.modelJsonFileName=e+lR,this.weightDataFileName=e+uR}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let 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.");{let n=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],a=qI(e,n),r=window.URL.createObjectURL(new Blob([JSON.stringify(a)],{type:"application/json"})),s=this.modelJsonAnchor==null?document.createElement("a"):this.modelJsonAnchor;if(s.download=this.modelJsonFileName,s.href=r,await K1(()=>s.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){let i=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;i.download=this.weightDataFileName,i.href=t,await K1(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Nc(e)}}}};al.URL_SCHEME="downloads://";var pR=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.jsonFile=e[0],this.weightsFiles=e.slice(1)}async load(){return new Promise((e,t)=>{let n=new FileReader;n.onload=a=>{let r=JSON.parse(a.target.result),s=r.modelTopology;if(s==null){t(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(r.weightsManifest==null){t(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){e({modelTopology:s});return}let i=Ax(r,o=>this.loadWeights(o));e(i)},n.onerror=a=>t(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)})}loadWeights(e){let t=[],n=[];for(let s of e)t.push(...s.weights),n.push(...s.paths);let a=this.checkManifestAndWeightFiles(e),r=n.map(s=>this.loadWeightsFile(s,a[s]));return Promise.all(r).then(s=>[t,Ex(s)])}loadWeightsFile(e,t){return new Promise((n,a)=>{let r=new FileReader;r.onload=s=>{let i=s.target.result;n(i)},r.onerror=s=>a(`Failed to weights data from file of path '${e}'.`),r.readAsArrayBuffer(t)})}checkManifestAndWeightFiles(e){let t=[],n=this.weightsFiles.map(r=>q1(r.name)),a={};for(let r of e)r.paths.forEach(s=>{let i=q1(s);if(t.indexOf(i)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${i}'`);if(t.push(i),n.indexOf(i)===-1)throw new Error(`Weight file with basename '${i}' is not provided.`);a[s]=this.weightsFiles[n.indexOf(i)]});if(t.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${t.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return a}},cR=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(al.URL_SCHEME)?dR(e.slice(al.URL_SCHEME.length)):null;At.registerSaveRouter(cR);function dR(e="model"){return new al(e)}function hR(e){return new pR(e)}function X1(e,t,n,a){i(e),n=n==null?0:n,a=a==null?1:a,o(n,a);let r=0,s=l=>(l.then(u=>{let p=n+ ++r/e.length*(a-n);return t(p),u}),l);function i(l){$(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function o(l,u){$(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),$(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${u}`),$(u>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${u}`)}return Promise.all(e.map(s))}async function aS(e,t){t==null&&(t={});let n=t.fetchFunc==null?H().platform.fetch:t.fetchFunc,a=e.map(u=>n(u,t.requestInit,{isBinary:!0})),r=0,s=.5,i=(t.onProgress==null?await Promise.all(a):await X1(a,t.onProgress,r,s)).map(u=>u.arrayBuffer()),o=.5,l=1;return t.onProgress==null?await Promise.all(i):await X1(i,t.onProgress,o,l)}async function mR(e,t="",n,a){return rS(r=>aS(r,{requestInit:a}))(e,t,n)}function rS(e){return async(t,n="",a)=>{let r=t.map(()=>!1),s={},i=a!=null?a.map(()=>!1):[],o=[];if(t.forEach((h,m)=>{let f=0;h.weights.forEach(g=>{let y="quantization"in g?g.quantization.dtype:g.dtype,b=Cb[y]*mt(g.shape),x=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:b})};a!=null?a.forEach((w,I)=>{w===g.name&&(x(),i[I]=!0)}):x(),o.push(g.name),f+=b})}),!i.every(h=>h)){let h=a.filter((m,f)=>!i[f]);throw new Error(`Could not find weights in manifest with names: ${h.join(", ")}. -Manifest JSON has weights with names: ${o.join(", ")}.`)}let l=r.reduce((h,m,f)=>(m&&h.push(f),h),[]),u=[];l.forEach(h=>{t[h].paths.forEach(m=>{let f=n+(n.endsWith("/")?"":"/")+m;u.push(f)})});let p=await e(u),d={},c=0;return l.forEach(h=>{let m=t[h].paths.length,f=0;for(let x=0;x{let w=g.slice(x.groupOffset,x.groupOffset+x.sizeBytes),I=jI(w,[x.manifestEntry]);for(let T in I)d[T]=I[T]}),c+=m}),d}}var fR="application/octet-stream",gR="application/json",Fx=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?($(typeof t.fetchFunc=="function",()=>"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=H().platform.fetch,$(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&$(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)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.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],a=qI(e,n);t.body.append("model.json",new Blob([JSON.stringify(a)],{type:gR}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:fR}),"model.weights.bin");let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:Nc(e),responses:[r]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${r.status}.`)}async load(){let 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(r){let s=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?s+=" 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.":s+=" Please make sure the server is serving valid JSON for this request.",new Error(s)}let n=t.modelTopology,a=t.weightsManifest;if(n==null&&a==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return Ax(t,r=>this.loadWeights(r))}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=yR(t),r=this.weightPathPrefix||n,s=XI(e),i=[],o=[];for(let u of e)for(let p of u.paths)this.weightUrlConverter!=null?o.push(this.weightUrlConverter(p)):i.push(r+p+a);this.weightUrlConverter&&i.push(...await Promise.all(o));let l=await aS(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[s,Ex(l)]}};Fx.URL_SCHEME_REGEX=/^https?:\/\//;function yR(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function $b(e){return e.match(Fx.URL_SCHEME_REGEX)!=null}var sS=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>$b(a)):n=$b(e),n)return Dx(e,t)}return null};At.registerSaveRouter(sS);At.registerLoadRouter(sS);function Dx(e,t){return new Fx(e,t)}function bR(e,t){return Dx(e,t)}var lb=class{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}},iS=class{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}},xR=class{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}};function vR(e,t,n,a){let r=arguments;return new xR(oS(...r))}function oS(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new lb(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 lb({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 lb({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function wR(e){return new iS(e)}function kR(e){return new iS(e)}var lS={};Ae(lS,{confusionMatrix:()=>UR});function IR(e,t,n=!1,a=!1){let r=_(e,"a","matMul"),s=_(t,"b","matMul");[r,s]=_t(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return O.runKernel(yi,i,o)}var Fe=L({matMul_:IR});function SR(e,t,n=1,a=0,r="int32"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let s={indices:_(e,"indices","oneHot","int32")},i={dtype:r,depth:t,onValue:n,offValue:a};return O.runKernel(Gi,s,i)}var rl=L({oneHot_:SR});function TR(){H().set("PROD",!0)}function NR(){H().set("DEBUG",!0)}function CR(){H().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function Rx(e){H().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}bD(Rx);function _R(){O.disposeVariables()}function Na(){return O}function kh(){return O.memory()}function ER(e){return O.profile(e)}function P(e,t){return O.tidy(e,t)}function _e(e){Nx(e).forEach(t=>t.dispose())}function Jt(e){return O.keep(e)}function AR(e){return O.time(e)}function $R(e){return O.setBackend(e)}function FR(){return O.ready()}function DR(){return O.backendName}function RR(e){O.removeBackend(e)}function MR(e){return O.findBackend(e)}function PR(e){return O.findBackendFactory(e)}function Em(e,t,n=1){return O.registerBackend(e,t,n)}function uS(){return O.backend}function OR(e,t){H().setPlatform(e,t)}function LR(e){let t={input:_(e,"input","imag")};return O.runKernel(cm,t)}var Cc=L({imag_:LR});function zR(e){let t={x:_(e,"x","neg")};return O.runKernel(eu,t)}var bt=L({neg_:zR});function WR(e){let t={input:_(e,"input","real")};return O.runKernel(wm,t)}var sl=L({real_:WR});function BR(e,t,n){let a=_(e,"x","transpose");if(t==null&&(t=a.shape.map((i,o)=>o).reverse()),$(a.rank===t.length,()=>`Error in transpose: rank of input ${a.rank} must match length of perm ${t}.`),t.forEach(i=>{$(i>=0&&i`All entries in 'perm' must be between 0 and ${a.rank-1} but got ${t}`)}),a.rank<=1)return a.clone();let r={x:a},s={perm:t};return a.dtype==="complex64"?P(()=>{let i=sl(a),o=Cc(a);return i=O.runKernel(Tr,{x:i},s),o=O.runKernel(Tr,{x:o},s),n&&(o=bt(o)),Cr(i,o)}):O.runKernel(Tr,r,s)}var Ee=L({transpose_:BR});function VR(e,t,n){let a=_(e,"labels","confusionMatrix"),r=_(t,"predictions","confusionMatrix");$(n==null||n>0&&Number.isInteger(n),()=>`If provided, numClasses must be a positive integer, but got ${n}`),$(a.rank===1,()=>`Expected the rank of labels to be 1, but got ${a.rank}`),$(r.rank===1,()=>`Expected the rank of predictions to be 1, but got ${r.rank}`),$(a.shape[0]===r.shape[0],()=>`Mismatch in the number of examples: ${a.shape[0]} vs. ${r.shape[0]}. Labels and predictions should have the same number of elements.`),$(n>0&&Number.isInteger(n),()=>`numClasses is required to be a positive integer, but got ${n}`);let s=rl(oe(a,"int32"),n),i=rl(oe(r,"int32"),n),o=Ee(s),l=Fe(o,i);return oe(l,"int32")}var UR=L({confusionMatrix_:VR}),Tu={};Ae(Tu,{assertAndGetBroadcastShape:()=>lt,getBroadcastDims:()=>pS,getReductionAxes:()=>Wt});function pS(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function Wt(e,t){let n=[];for(let a=0;a1)&&n.unshift(s)}return n}function lt(e,t){let n=[],a=Math.max(e.length,t.length);for(let r=0;rYR,fromPixelsAsync:()=>KR,toPixels:()=>XR});function _c(e,t,n){if(hi(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let a=ir(e,n);if(a.length!==3&&a.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return fs(e,t,a,n)}var Ps;function cS(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(e==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let n=!1,a=!1,r=!1,s=!1,i=!1,o=!1;if(e.data instanceof Uint8Array)n=!0;else if(typeof ImageData!="undefined"&&e instanceof ImageData)a=!0;else if(typeof HTMLVideoElement!="undefined"&&e instanceof HTMLVideoElement)r=!0;else if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement)s=!0;else if(e.getContext!=null)i=!0;else if(typeof ImageBitmap!="undefined"&&e instanceof ImageBitmap)o=!0;else 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}`);if(bh(yh,O.backendName)!=null){let c={pixels:e},h={numChannels:t};return O.runKernel(yh,c,h)}let[l,u]=r?[e.videoWidth,e.videoHeight]:[e.width,e.height],p;if(i)p=e.getContext("2d").getImageData(0,0,l,u).data;else if(a||n)p=e.data;else if(s||r||o){if(Ps==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")Ps=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else Ps=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Ps.canvas.width=l,Ps.canvas.height=u,Ps.drawImage(e,0,0,l,u),p=Ps.getImageData(0,0,l,u).data}let d;if(t===4)d=new Int32Array(p);else{let c=l*u;d=new Int32Array(c*t);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(n.dtype!=="float32"&&n.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${n.dtype}. Please use float32 or int32 tensors.`);let i=await n.data(),o=n.dtype==="float32"?255:1,l=new Uint8ClampedArray(r*a*4);for(let u=0;u1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${h}.`)}else if(n.dtype==="int32"&&(h<0||h>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${h}.`);s===1?(p[0]=h*o,p[1]=h*o,p[2]=h*o):p[c]=h*o}let d=u*4;l[d+0]=Math.round(p[0]),l[d+1]=Math.round(p[1]),l[d+2]=Math.round(p[2]),l[d+3]=Math.round(p[3])}if(t!=null){t.width=r,t.height=a;let u=t.getContext("2d"),p=new ImageData(l,r,a);u.putImageData(p,0,0)}return n!==e&&n.dispose(),l}var YR=L({fromPixels_:cS}),Mx={};Ae(Mx,{prepareAndValidate:()=>dS});function dS(e,t){let n=e.shape.length,a=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(a<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${a}.`);if(t.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[a-1]>n)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[a-1]} vs. ${n}`);if(mt(e.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);let r=t.shape,s=r[r.length-1],i=1;for(let d=0;dd/u),1].slice(0,s);return[l,i,u,p]}var Px={};Ae(Px,{calculateShapes:()=>hS,validateInput:()=>Lx,validateUpdateShape:()=>Ox});function Ox(e,t,n){let a=t.rank>1?t.shape[t.rank-1]:1,r=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: ${a}, and batchDim: ${r}.`;if(n.rank1?t.shape[a-1]:1,s=n.length,i=1;for(let d=r;dJR,computeFlatOffset:()=>aM,computeOutShape:()=>eM,getNormalizedAxes:()=>tM,isSliceContinous:()=>nM,maskToAxes:()=>QR,parseSliceParams:()=>kS,sliceInfo:()=>rM,startForAxis:()=>vS,startIndicesWithElidedDims:()=>yS,stopForAxis:()=>wS,stopIndicesWithElidedDims:()=>bS,stridesForAxis:()=>xS,stridesWithElidedDims:()=>mS});var Fb=-2,ZR=-1;function JR(e,t,n){let a=e.shape.length;$(a===t.length,()=>`Error in slice${a}D: Length of begin ${t} must match the rank of the array (${a}).`),$(a===n.length,()=>`Error in slice${a}D: Length of size ${n} must match the rank of the array (${a}).`);for(let r=0;r`Error in slice${a}D: begin[${r}] + size[${r}] (${t[r]+n[r]}) would overflow input.shape[${r}] (${e.shape[r]})`)}function QR(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function eM(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;p=yS(i,h,m,a,e),d=bS(o,h,m,r,e),c=mS(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=fS(t,n,o),u=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=fS(t,n,o),u=a[l];e&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),i=Vp(0,i,l-1),i}function wS(e,t,n,a,r,s){let i=t[r],o=n[r]||1;(e&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),o>0?i=Vp(0,i,l):i=Vp(-1,i,l-1),i}function nM(e,t,n){let a=n.length;for(let r=0;r1){a=r;break}for(let r=a+1;r0||n[r]!==e[r])return!1;return!0}function aM(e,t){let n=e.length>0?e[e.length-1]:1;for(let a=0;a{$(i!==-1,()=>"slice() does not support negative begin indexing.")});let s;return n==null?s=new Array(r).fill(-1):typeof n=="number"?s=[n,...new Array(r-1).fill(-1)]:n.lengthi>=0?i:($(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${o}.`),e.shape[o]-a[o])),[a,s]}function rM(e,t,n,a,r,s,i,o,l){let u;if(a==null?(u=new Array(t.length),u.fill(1)):u=a,i!=null&&(i&i-1)!==0)throw new Error("Multiple ellipses in slice is not allowed.");let p=!1,d={dims:u.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:n.slice(),strides:u.slice(),beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};for(let b=0;b0?0:-1,c.strides[b]>0?w:w-1];if(x&&c.strides[b]<=0)throw Error("only stride 1 allowed on non-range indexing.");f=f&&c.strides[b]===1;let C=!!(c.beginMask&1<=w)throw Error(`slice index ${c.begin[b]} of dimension ${b} out of bounds.`)}else c.begin[b]=Y1(c.begin[b],0,c.strides[b],w,I,T),c.end[b]=Y1(c.end[b],1,c.strides[b],w,I,T);let R=c.strides[b]===1&&c.begin[b]===0&&c.end[b]===w;h=h&&R,m=m&&(b===0&&c.strides[b]===1||R)}else h=h&&c.strides[b]===1&&C,m=m&&(b===0&&c.strides[b]===1||C);let E,A=!1;if(c.beginValid&&c.endValid?(E=c.end[b]-c.begin[b],A=!0):x?(E=1,A=!0):C&&w>=0&&(c.strides[b]<0?E=-w:E=w,A=!0),A){let R;E===0||E<0!=c.strides[b]<0?R=0:R=Math.trunc(E/c.strides[b])+(E%c.strides[b]!==0?1:0),g.push(R)}else g.push(-1)}for(let b=0;b=0?y.push(g[x]):x===Fb&&y.push(1)}return{finalShapeSparse:y.filter((b,x)=>c.finalShapeGatherIndices[x]!==Fb),finalShape:y,isIdentity:h,sliceDim0:m,isSimpleSlice:f,begin:c.begin,end:c.end,strides:c.strides}}function sM(e,t){t.beginMask=0,t.endMask=0,t.shrinkAxisMask=0;let n=0;t.beginValid=e.begin!=null,t.endValid=e.end!=null,t.begin=new Array(t.dims),t.end=new Array(t.dims),t.strides=new Array(t.dims),t.finalShapeGatherIndices=[],t.finalShapeGatherIndicesSparse=[],t.inputShapeGatherIndicesSparse=new Array(t.dims);for(let a=0;a0?s[t]:s[t+1&1];{let i=e<0?a+e:e;return is[1]?s[1]:i}}var ne={};Ae(ne,{Serializable:()=>IS,SerializationMap:()=>Bs,registerClass:()=>gs});var IS=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},Bs=class{constructor(){this.classNameMap={}}static getMap(){return Bs.instance==null&&(Bs.instance=new Bs),Bs.instance}static register(e){Bs.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function gs(e){$(e.className!=null,()=>"Class being registered does not have the static className property defined."),$(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),$(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),Bs.register(e)}var SS={};Ae(SS,{TEST_EPSILON_FLOAT16:()=>TS,createVideoElement:()=>hM,encodeStrings:()=>NS,expectArrayBuffersEqual:()=>dM,expectArraysClose:()=>oM,expectArraysEqual:()=>uM,expectNumbersClose:()=>pM,expectPromiseToFail:()=>lM,expectValuesInRange:()=>cM,play:()=>mM,testEpsilon:()=>zx});var iM=.001,TS=.1;function oM(e,t,n){return n==null&&(n=zx()),Db(e,t,(a,r)=>Wx(a,r,n))}function zx(){return O.backend.floatPrecision()===32?iM:TS}function Db(e,t,n){let a=!0;if((hn(e)||hn(t))&&(a=!1),hn(e)&&hn(t)&&(a=!0),a){let i=e.constructor.name,o=t.constructor.name;if(i!==o)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${o}`)}if(Array.isArray(e)&&Array.isArray(t)){let i=ir(e),o=ir(t);if(!ps(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=hn(e)?e:Zs(e),s=hn(t)?t:Zs(t);if(r.length!==s.length)throw new Error(`Arrays have different lengths actual: ${r.length} vs expected: ${s.length}. +`;return c[c.length-1]=" "+c[c.length-1]+"]"+(s?"":m),c}function _p(e){let t=[];for(let n=0;n`Length of values '${a}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")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||TI(t,this.size),this.strides=vl(e)}set(e,...t){t.length===0&&(t=[0]),A(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);let n=this.locToIndex(t);this.values[n]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(let a of e){if(a<0||a>=this.shape[t]){let r=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(r)}t++}let n=e[e.length-1];for(let a=0;avh(n))}catch(n){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataToGPU(e){return this.throwIfDisposed(),Oa().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();let e=Oa().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>vh(t))}catch(t){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();let e=await Oa().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(Oa().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return Ko.print(this,e)}clone(){return this.throwIfDisposed(),Ko.clone(this)}toString(e=!1){let t=this.dataSync();return hD(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Ko.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Oa().makeVariable(this,e,t,n)}};Object.defineProperty(Te,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function Q(){return Sx("Tensor",()=>Te)}Q();var ts=class extends Te{constructor(e,t,n,a){super(e.shape,e.dtype,e.dataId,a),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(!ps(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Oa().disposeTensor(this),this.dataId=e.dataId,Oa().incRef(this,null)}dispose(){Oa().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(ts,Symbol.hasInstance,{value:e=>e instanceof Te&&e.assign!=null&&e.assign instanceof Function});var Va={};$e(Va,{assertTypesMatch:()=>BI,getTensorsInContainer:()=>Nx,isTensorInList:()=>vD,makeTypesMatch:()=>_t});var wb;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(wb||(wb={}));var kb;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(kb||(kb={}));var Ib;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(Ib||(Ib={}));var Sb;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(Sb||(Sb={}));var Tb;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(Tb||(Tb={}));var xD={float32:Sb,int32:kb,bool:Ib,complex64:Tb};function ma(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return xD[e][t]}function _m(e){return ma(e,"int32")}function _t(e,t){if(e.dtype===t.dtype)return[e,t];let n=ma(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function BI(e,t){A(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function vD(e,t){return t.some(n=>n.id===e.id)}function Nx(e){let t=[];return VI(e,t,new Set),t}function VI(e,t,n){if(e==null)return;if(e instanceof Te){t.push(e);return}if(!wD(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),VI(s,t,n))}}function wD(e){return Array.isArray(e)||typeof e=="object"}function ib(e){return e.kernelName!=null}var G1=class{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(let e in this.registeredVariables)this.registeredVariables[e].dispose()}},Hp=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new G1}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let e=this.getSortedBackends();for(let t=0;t{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){xh(e).forEach(t=>{t.disposeFunc!=null&&t.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{let n=t.factory();if(n&&!(n instanceof rc)&&typeof n.then=="function"){let a=++this.pendingBackendInitId,r=n.then(s=>a(athis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;tthis.startScope(n),()=>this.endScope(a),()=>(a=t(),a instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),a))}scopedRun(e,t,n){e();try{let a=n();return t(),a}catch(a){throw t(),a}}nextTensorId(){return Hp.nextTensorId++}nextVariableId(){return Hp.nextVariableId++}clone(e){let t=O.runKernel(Di,{x:e}),n={x:e},a=s=>({x:()=>{let i="float32",o={x:s},l={dtype:i};return O.runKernel(bi,o,l)}}),r=[];return this.addTapeNode(this.state.activeScope.name,n,[t],a,r,{}),t}runKernel(e,t,n){if(this.backendName==null&&this.backend,bh(e,this.backendName)==null)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){let a=this.backend.numDataIds(),r=0;n.forEach(o=>{r+=o.dtype==="complex64"?3:1});let s=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=a-t-r-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=[],a=this.isTapeOn(),r=this.state.numBytes,s=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let i;this.backendName==null&&this.backend;let o,l=ib(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(ib(e)){let{kernelName:h,inputs:m,attrs:f}=e;this.backendName==null&&this.backend;let g=bh(h,this.backendName);A(g!=null,()=>`Cannot find registered kernel '${h}' for backend '${this.backendName}'`),i=()=>{let y=this.backend.numDataIds();o=g.kernelFunc({inputs:m,attrs:f,backend:this.backend});let b=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(h,y,b);let x=b.map(w=>w.rank!=null?w:this.makeTensorFromTensorInfo(w));if(a){let w=this.getTensorsForGradient(h,m,x);n=this.saveTensorsForBackwardMode(w)}return x}}else{let{forwardFunc:h}=e,m=f=>{!a||(n=f.map(g=>this.keep(this.clone(g))))};i=()=>{let f=this.backend.numDataIds();o=this.tidy(()=>h(this.backend,m));let g=Array.isArray(o)?o:[o];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,f,g),g}}let{inputs:u,attrs:p}=e,d=ib(e)?null:e.backwardsFunc,c;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?t=i():(c=this.profiler.profileKernel(l,u,()=>i()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(c),t=c.outputs)}),a&&this.addTapeNode(l,u,t,d,n,p),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-r,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-s,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(u).map(h=>u[h]!=null?u[h].shape:null),outputShapes:t.map(h=>h.shape),kernelTimeMs:c.timeMs,extraInfo:c.extraInfo}),Array.isArray(o)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(t=>this.keep(this.clone(t)))}getTensorsForGradient(e,t,n){let a=xb(e);if(a!=null){let r=a.inputsToSave||[],s=a.outputsToSave||[],i;a.saveAllInputs?(A(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),i=Object.keys(t).map(l=>t[l])):i=r.map(l=>t[l]);let o=n.filter((l,u)=>s[u]);return i.concat(o)}return[]}makeTensor(e,t,n,a){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",a=a||this.backend;let r=e;n==="string"&&Kr(e[0])&&(r=e.map(o=>Sc(o)));let s=a.write(r,t,n),i=new Te(t,n,s,this.nextTensorId());if(this.trackTensor(i,a),n==="string"){let o=this.state.tensorInfo.get(s),l=_I(r);this.state.numBytes+=l-o.bytes,o.bytes=l}return i}makeTensorFromDataId(e,t,n,a){n=n||"float32";let r={dataId:e,shape:t,dtype:n};return this.makeTensorFromTensorInfo(r,a)}makeTensorFromTensorInfo(e,t){let{dataId:n,shape:a,dtype:r}=e,s=new Te(a,r,n,this.nextTensorId());return this.trackTensor(s,t),s}makeVariable(e,t=!0,n,a){n=n||this.nextVariableId().toString(),a!=null&&a!==e.dtype&&(e=e.cast(a));let r=new ts(e,t,n,this.nextTensorId());if(this.state.registeredVariables[r.name]!=null)throw new Error(`Variable with name ${r.name} was already registered`);return this.state.registeredVariables[r.name]=r,this.incRef(r,this.backend),r}trackTensor(e,t){this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++;let n=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(n=e.size*bb(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 ts||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;let t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,e.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),e.dtype!=="complex64"&&e.dtype!=="string"){let n=e.size*bb(e.dtype);this.state.numBytes-=n}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(let e in this.state.registeredVariables){let t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){let 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,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;let 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(a=>a.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let a of this.state.activeProfile.kernels)a.kernelTimeMs=await a.kernelTimeMs,a.extraInfo=await a.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,n,a,r,s){let i={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:n,saved:r},o=xb(e);o!=null&&(a=o.gradFunc),a!=null&&(i.gradient=l=>(l=l.map((u,p)=>{if(u==null){let d=n[p],c=Kh(d.size,d.dtype);return this.makeTensor(c,d.shape,d.dtype)}return u}),a(l.length>1?l:l[0],r,s))),this.state.activeTape.push(i)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){let t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){let t=Nx(e),n=new Set(t.map(r=>r.id));for(let r=0;r{!r.kept&&r.scopeId===a.id&&this.track(r)})}gradients(e,t,n,a=!1){if(A(t.length>0,()=>"gradients() received an empty list of xs."),n!=null&&n.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);let r=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));A(r instanceof Te,()=>"The result y returned by f() must be a tensor.");let s=cD(this.state.activeTape,t,r);if(!a&&s.length===0&&t.length>0)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",()=>{let i={};i[r.id]=n==null?kD(r.shape):n,dD(i,s,l=>this.tidy(l),ID);let o=t.map(l=>i[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let u of l.saved)u.dispose()}),this.state.activeTape=null),{value:r,grads:o}})}customGrad(e){return A(es(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{A(t.every(i=>i instanceof Te),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n,a={};t.forEach((i,o)=>{a[o]=i});let r=(i,o)=>(n=e(...t,o),A(n.value instanceof Te,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),A(es(n.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),n.value),s=(i,o)=>{let l=n.gradFunc(i,o),u=Array.isArray(l)?l:[l];A(u.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(...)."),A(u.every(d=>d instanceof Te),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let p={};return u.forEach((d,c)=>{p[c]=()=>d}),p};return this.runKernelFunc({forwardFunc:r,backwardsFunc:s,inputs:a})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}readToGPU(e,t){return this.state.tensorInfo.get(e).backend.readToGPU(e,t)}async time(e){let t=Gp(),n=await this.backend.time(e);return n.wallMs=Gp()-t,n}track(e){return this.state.activeScope!=null&&(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 G1;for(let e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};Hp.nextTensorId=0;Hp.nextVariableId=0;function kD(e){let t=vx(mt(e),"float32");return O.makeTensor(t,e,"float32")}function UI(){let e=DI();if(e._tfengine==null){let t=new FI(e);e._tfengine=new Hp(t)}return HF(e._tfengine.ENV),gD(()=>e._tfengine),e._tfengine}var O=UI();function ID(e,t){let n={a:e,b:t};return O.runKernel(cs,n)}var Tc={};$e(Tc,{isBrowser:()=>GI,isMobile:()=>ND,mockIsMobile:()=>TD});function SD(){return typeof navigator!="undefined"&&navigator!=null}var Nb;function TD(e){Nb=e}function ND(e){if(Nb!==void 0)return Nb;if(e||SD()){if(e||(e=navigator),e.product==="ReactNative")return!0;let t=e.userAgent||e.vendor||(typeof window!="undefined"?window.opera:"");if(!t){let n=e;return n.userAgentData&&n.userAgentData.mobile}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(t)||/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(t.substr(0,4))}return!1}function GI(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Jn=H();Jn.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.")});Jn.registerFlag("IS_BROWSER",()=>GI());Jn.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Jn.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Jn.registerFlag("PROD",()=>!1);Jn.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Jn.getBool("DEBUG"));Jn.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Jn.registerFlag("IS_TEST",()=>!1);Jn.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);Jn.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);Jn.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);Jn.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);Jn.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function ir(e,t){let n=e;if(hn(e))return t==="string"?[]:[e.length];if(typeof e=="object"&&"texture"in e){let r=e.channels||"RGBA";return[e.height,e.width*r.length]}if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||hn(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&H().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&HI(e,a,[]),a}function HI(e,t,n){if(n=n||[],!Array.isArray(e)&&!hn(e)){A(t.length===0,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}A(t.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`),A(e.length===t[0],()=>`Element arr[${n.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`);let a=t.slice(1);for(let r=0;r=0&&(r=a),H1(a,r,t,n),e==null||!hn(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string"){let o=e==null?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${n}' must be a Tensor or TensorLike, but got '${o}'`)}let s=ir(e,r);!hn(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?Cm(e,r):Zs(e,[],!0);return O.makeTensor(i,s,r)}function jp(e,t,n,a="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${n} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map((r,s)=>_(r,`${t}[${s}]`,n,a))}var Cx="__op";function L(e){let t=Object.keys(e);if(t.length!==1)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],a=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1)),n=n+Cx;let r=(...s)=>{O.startScope(n);try{let i=a(...s);return kx(i)&&console.error("Cannot return a Promise inside of tidy."),O.endScope(i),i}catch(i){throw O.endScope(null),i}};return Object.defineProperty(r,"name",{value:n,configurable:!0}),r}function CD(e,t){let n=_(e,"real","complex"),a=_(t,"imag","complex");Sn(n.shape,a.shape,`real and imag shapes, ${n.shape} and ${a.shape}, must match in call to tf.complex().`);let r={real:n,imag:a};return O.runKernel(Qh,r)}var Cr=L({complex_:CD});function fs(e,t,n,a){if(a==null&&(a=qh(e)),a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(typeof e=="object"&&"texture"in e){if(a!=="float32"&&a!=="int32")throw new Error(`Creating tensor from texture only supports 'float32'|'int32' dtype, while the dtype is ${a}.`);return e.channels=e.channels||"RGBA",O.backend.createTensorFromTexture(e,t||n,a)}if(!hn(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string")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(t!=null){wx(t);let r=mt(t),s=mt(n);A(r===s,()=>`Based on the provided shape, [${t}], the tensor should have ${r} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${n}) does not match the provided shape (${t}). `)}}return!hn(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?Cm(e,a):Zs(e,[],!0),O.makeTensor(e,t,a)}function kn(e,t,n){let a=ir(e,n);return fs(e,t,a,n)}var Cb={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},wh=4;async function _D(e,t){let n=[],a=[],r=Array.isArray(e)?e.map(i=>i.name):Object.keys(e);for(let i=0;i{let c=await l.bytes(),h=c.reduce((g,y)=>g+y.length,0)+wh*c.length,m=new Uint8Array(h),f=0;for(let g=0;g{if(t+=s.byteLength,n.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let a=new Uint8Array(t),r=0;return n.forEach(s=>{a.set(new Uint8Array(s.buffer),r),r+=s.byteLength}),a.buffer}var _x=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function j1(e){return _x?Buffer.byteLength(e):new Blob([e]).size}function $D(e){if(_x)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),n="";for(let a=0,r=t.length;a{t+=r.byteLength});let n=new Uint8Array(t),a=0;return e.forEach(r=>{n.set(new Uint8Array(r),a),a+=r.byteLength}),n.buffer}function q1(e){let t="/";for(e=e.trim();e.endsWith(t);)e=e.slice(0,e.length-1);let n=e.split(t);return n[n.length-1]}function qI(e,t){let n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:t};return e.signature!=null&&(n.signature=e.signature),e.userDefinedMetadata!=null&&(n.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(n.modelInitializer=e.modelInitializer),e.initializerSignature!=null&&(n.initializerSignature=e.initializerSignature),e.trainingConfig!=null&&(n.trainingConfig=e.trainingConfig),n}function KI(e,t,n){let a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};if(e.trainingConfig!=null&&(a.trainingConfig=e.trainingConfig),e.weightsManifest!=null){if(!t)throw new Error("modelJSON has weightsManifest but weightSpecs is null");if(!n)throw new Error("modelJSON has weightsManifest but weightData is null");a.weightSpecs=t,a.weightData=n}return e.signature!=null&&(a.signature=e.signature),e.userDefinedMetadata!=null&&(a.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(a.modelInitializer=e.modelInitializer),e.initializerSignature!=null&&(a.initializerSignature=e.initializerSignature),a}async function $x(e,t){let n,a;return e.weightsManifest!=null&&([n,a]=await t(e.weightsManifest)),KI(e,n,a)}function Nc(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:e.modelTopology==null?0:j1(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:j1(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function XI(e){let t=[];for(let n of e)t.push(...n.weights);return t}function FD(){let e=n=>{let a=n<<13,r=0;for(;(a&8388608)===0;)r-=8388608,a<<=1;return a&=-8388609,r+=947912704,a|r},t=new Uint32Array(2048);t[0]=0;for(let n=1;n<1024;n++)t[n]=e(n);for(let n=1024;n<2048;n++)t[n]=939524096+(n-1024<<13);return t}function DD(){let 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}function RD(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function MD(){let e=FD(),t=DD(),n=RD();return a=>{let r=new ArrayBuffer(4*a.length),s=new Uint32Array(r);for(let i=0;i>10]+(o&1023)]+t[o>>10];s[i]=l}return new Float32Array(r)}}var $t=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return $t.instance==null&&($t.instance=new $t),$t.instance}static registerSaveRouter(e){$t.getInstance().saveRouters.push(e)}static registerLoadRouter(e){$t.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return $t.getHandlers(e,"save")}static getLoadHandlers(e,t){return $t.getHandlers(e,"load",t)}static getHandlers(e,t,n){let a=[];return(t==="load"?$t.getInstance().loadRouters:$t.getInstance().saveRouters).forEach(r=>{let s=r(e,n);s!==null&&a.push(s)}),a}},PD=e=>$t.registerSaveRouter(e),OD=e=>$t.registerLoadRouter(e),LD=e=>$t.getSaveHandlers(e),zD=(e,t)=>$t.getLoadHandlers(e,t),_b="tensorflowjs",Eb=1,Gs="models_store",Xr="model_info_store";function YI(){if(!H().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let e=typeof window=="undefined"?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(t==null)throw new Error("The current browser does not appear to support IndexedDB.");return t}function $b(e){let t=e.result;t.createObjectStore(Gs,{keyPath:"modelPath"}),t.createObjectStore(Xr,{keyPath:"modelPath"})}var ti=class{constructor(e){if(this.indexedDB=YI(),e==null||!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((n,a)=>{let r=this.indexedDB.open(_b,Eb);r.onupgradeneeded=()=>$b(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(Gs,"readonly"),o=i.objectStore(Gs).get(this.modelPath);o.onsuccess=()=>{if(o.result==null)return s.close(),a(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(o.result.modelArtifacts)},o.onerror=l=>(s.close(),a(o.error)),i.oncomplete=()=>s.close()}else{let i=Nc(t),o=s.transaction(Xr,"readwrite"),l=o.objectStore(Xr),u=l.put({modelPath:this.modelPath,modelArtifactsInfo:i}),p;u.onsuccess=()=>{p=s.transaction(Gs,"readwrite");let d=p.objectStore(Gs).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i});d.onsuccess=()=>n({modelArtifactsInfo:i}),d.onerror=c=>{l=o.objectStore(Xr);let h=l.delete(this.modelPath);h.onsuccess=()=>(s.close(),a(d.error)),h.onerror=m=>(s.close(),a(d.error))}},u.onerror=d=>(s.close(),a(u.error)),o.oncomplete=()=>{p==null?s.close():p.oncomplete=()=>s.close()}}},r.onerror=s=>a(r.error)})}};ti.URL_SCHEME="indexeddb://";var ZI=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ti.URL_SCHEME)?WD(e.slice(ti.URL_SCHEME.length)):null;$t.registerSaveRouter(ZI);$t.registerLoadRouter(ZI);function WD(e){return new ti(e)}function BD(e){return e.startsWith(ti.URL_SCHEME)?e.slice(ti.URL_SCHEME.length):e}var VD=class{constructor(){this.indexedDB=YI()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(_b,Eb);n.onupgradeneeded=()=>$b(n),n.onsuccess=()=>{let a=n.result,r=a.transaction(Xr,"readonly"),s=r.objectStore(Xr).getAll();s.onsuccess=()=>{let i={};for(let o of s.result)i[o.modelPath]=o.modelArtifactsInfo;e(i)},s.onerror=i=>(a.close(),t(s.error)),r.oncomplete=()=>a.close()},n.onerror=a=>t(n.error)})}async removeModel(e){return e=BD(e),new Promise((t,n)=>{let a=this.indexedDB.open(_b,Eb);a.onupgradeneeded=()=>$b(a),a.onsuccess=()=>{let r=a.result,s=r.transaction(Xr,"readwrite"),i=s.objectStore(Xr),o=i.get(e),l;o.onsuccess=()=>{if(o.result==null)return r.close(),n(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{let u=i.delete(e),p=()=>{l=r.transaction(Gs,"readwrite");let d=l.objectStore(Gs).delete(e);d.onsuccess=()=>t(o.result.modelArtifactsInfo),d.onerror=c=>n(o.error)};u.onsuccess=p,u.onerror=d=>(p(),r.close(),n(o.error))}},o.onerror=u=>(r.close(),n(o.error)),s.oncomplete=()=>{l==null?r.close():l.oncomplete=()=>r.close()}},a.onerror=r=>n(a.error)})}},Ir="/",Xo="tensorflowjs_models",JI="info",UD="model_topology",GD="weight_specs",HD="weight_data",jD="model_metadata";function QI(e){return{info:[Xo,e,JI].join(Ir),topology:[Xo,e,UD].join(Ir),weightSpecs:[Xo,e,GD].join(Ir),weightData:[Xo,e,HD].join(Ir),modelMetadata:[Xo,e,jD].join(Ir)}}function eS(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function qD(e){let t=e.split(Ir);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(Ir)}function KD(e){return e.startsWith(ni.URL_SCHEME)?e.slice(ni.URL_SCHEME.length):e}var ni=class{constructor(e){if(!H().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,e==null||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=QI(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.");{let t=JSON.stringify(e.modelTopology),n=JSON.stringify(e.weightSpecs),a=Nc(e);try{this.LS.setItem(this.keys.info,JSON.stringify(a)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,$D(e.weightData));let r={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,signature:e.signature!=null?e.signature:void 0,userDefinedMetadata:e.userDefinedMetadata!=null?e.userDefinedMetadata:void 0,modelInitializer:e.modelInitializer!=null?e.modelInitializer:void 0,initializerSignature:e.initializerSignature!=null?e.initializerSignature:void 0,trainingConfig:e.trainingConfig!=null?e.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(r)),{modelArtifactsInfo:a}}catch(r){throw eS(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${a.modelTopologyBytes}, weightSpecsBytes=${a.weightSpecsBytes}, weightDataBytes=${a.weightDataBytes}.`)}}}async load(){let e=JSON.parse(this.LS.getItem(this.keys.info));if(e==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(e.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},n=JSON.parse(this.LS.getItem(this.keys.topology));if(n==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=n;let a=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(a==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=a;let r=this.LS.getItem(this.keys.modelMetadata);if(r!=null){let i=JSON.parse(r);t.format=i.format,t.generatedBy=i.generatedBy,t.convertedBy=i.convertedBy,i.signature!=null&&(t.signature=i.signature),i.userDefinedMetadata!=null&&(t.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(t.modelInitializer=i.modelInitializer),i.initializerSignature!=null&&(t.initializerSignature=i.initializerSignature),i.trainingConfig!=null&&(t.trainingConfig=i.trainingConfig)}let s=this.LS.getItem(this.keys.weightData);if(s==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=AD(s),t}};ni.URL_SCHEME="localstorage://";var tS=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ni.URL_SCHEME)?XD(e.slice(ni.URL_SCHEME.length)):null;$t.registerSaveRouter(tS);$t.registerLoadRouter(tS);function XD(e){return new ni(e)}var YD=class{constructor(){A(H().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),A(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=Xo+Ir,n=Ir+JI;for(let a=0;a"scheme must not be undefined or null."),e.endsWith(Jo)&&(e=e.slice(0,e.indexOf(Jo))),A(e.length>0,()=>"scheme must not be an empty string.");let n=Pn.getInstance();A(n.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),n.managers[e]=t}static getManager(e){let t=Pn.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(Pn.getInstance().managers)}};function rh(e){if(e.indexOf(Jo)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Pn.getSchemes().join(",")}`);return{scheme:e.split(Jo)[0],path:e.split(Jo)[1]}}async function nS(e,t,n=!1){A(e!==t,()=>`Old path and new path are the same: '${e}'`);let a=$t.getLoadHandlers(e);A(a.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),A(a.length<2,()=>`Copying failed because more than one (${a.length}) load handlers for source URL ${e}.`);let r=a[0],s=$t.getSaveHandlers(t);A(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),A(s.length<2,()=>`Copying failed because more than one (${a.length}) save handlers for destination URL ${t}.`);let i=s[0],o=rh(e).scheme,l=rh(e).path,u=o===rh(e).scheme,p=await r.load();n&&u&&await Pn.getManager(o).removeModel(l);let d=await i.save(p);return n&&!u&&await Pn.getManager(o).removeModel(l),d.modelArtifactsInfo}async function ZD(){let e=Pn.getSchemes(),t={};for(let n of e){let a=await Pn.getManager(n).listModels();for(let r in a){let s=n+Jo+r;t[s]=a[r]}}return t}async function JD(e){let t=rh(e);return Pn.getManager(t.scheme).removeModel(t.path)}async function QD(e,t){return nS(e,t,!1)}async function eR(e,t){return nS(e,t,!0)}var tR=class{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}setTimeoutCustom(e,t){if(typeof window=="undefined"||!H().getBool("USE_SETTIMEOUTCUSTOM")){setTimeout(e,t);return}this.functionRefs.push(e),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")},t),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",n=>{if(n.source===window&&n.data.name===this.messageName){n.stopPropagation();let a=this.functionRefs[n.data.index];a(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}},!0))}};if(H().get("IS_BROWSER")){H().setPlatform("browser",new tR);try{Pn.registerManager(ni.URL_SCHEME,new YD)}catch(e){}try{Pn.registerManager(ti.URL_SCHEME,new VD)}catch(e){}}var nR={importFetch:()=>cF()},ob,aR=class{constructor(){this.util=dF(),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return H().global.fetch!=null?H().global.fetch(e,t):(ob==null&&(ob=nR.importFetch()),ob(e,t))}now(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return e.length===0?"":new this.util.TextDecoder(t).decode(e)}};H().get("IS_NODE")&&!H().get("IS_BROWSER")&&H().setPlatform("node",new aR);function Pe(e,t="float32",n){return t=t||"float32",wx(e),new Ht(e,t,n)}function rR(e,t){let n=_(e,"x","cast");if(!CI(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&n.dtype!=="string"||t!=="string"&&n.dtype==="string")throw new Error("Only strings can be casted to strings");let a={x:n},r={dtype:t};return O.runKernel(bi,a,r)}var le=L({cast_:rR});function sR(e){let t={x:_(e,"x","clone","string_or_numeric")};return O.runKernel(Di,t)}var rr=L({clone_:sR});function Ax(e,t=!1){console.log(e.toString(t))}UI();var iR={buffer:Pe,cast:le,clone:rr,print:Ax};yD(iR);var Ut={};$e(Ut,{browserFiles:()=>hR,browserHTTPRequest:()=>bR,concatenateArrayBuffers:()=>Ex,copyModel:()=>QD,decodeWeights:()=>jI,encodeWeights:()=>_D,fromMemory:()=>vR,fromMemorySync:()=>oS,getLoadHandlers:()=>zD,getModelArtifactsForJSON:()=>$x,getModelArtifactsForJSONSync:()=>KI,getModelArtifactsInfoForJSON:()=>Nc,getSaveHandlers:()=>LD,getWeightSpecs:()=>XI,http:()=>Dx,isHTTPScheme:()=>Ab,listModels:()=>ZD,loadWeights:()=>mR,moveModel:()=>eR,registerLoadRouter:()=>OD,registerSaveRouter:()=>PD,removeModel:()=>JD,weightsLoaderFactory:()=>rS,withSaveHandler:()=>wR,withSaveHandlerSync:()=>kR});var oR="model",lR=".json",uR=".weights.bin";function K1(e){return new Promise(t=>setTimeout(t)).then(e)}var al=class{constructor(e){if(!H().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(al.URL_SCHEME)&&(e=e.slice(al.URL_SCHEME.length)),(e==null||e.length===0)&&(e=oR),this.modelJsonFileName=e+lR,this.weightDataFileName=e+uR}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let 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.");{let n=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],a=qI(e,n),r=window.URL.createObjectURL(new Blob([JSON.stringify(a)],{type:"application/json"})),s=this.modelJsonAnchor==null?document.createElement("a"):this.modelJsonAnchor;if(s.download=this.modelJsonFileName,s.href=r,await K1(()=>s.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){let i=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;i.download=this.weightDataFileName,i.href=t,await K1(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Nc(e)}}}};al.URL_SCHEME="downloads://";var pR=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.jsonFile=e[0],this.weightsFiles=e.slice(1)}async load(){return new Promise((e,t)=>{let n=new FileReader;n.onload=a=>{let r=JSON.parse(a.target.result),s=r.modelTopology;if(s==null){t(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(r.weightsManifest==null){t(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){e({modelTopology:s});return}let i=$x(r,o=>this.loadWeights(o));e(i)},n.onerror=a=>t(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)})}loadWeights(e){let t=[],n=[];for(let s of e)t.push(...s.weights),n.push(...s.paths);let a=this.checkManifestAndWeightFiles(e),r=n.map(s=>this.loadWeightsFile(s,a[s]));return Promise.all(r).then(s=>[t,Ex(s)])}loadWeightsFile(e,t){return new Promise((n,a)=>{let r=new FileReader;r.onload=s=>{let i=s.target.result;n(i)},r.onerror=s=>a(`Failed to weights data from file of path '${e}'.`),r.readAsArrayBuffer(t)})}checkManifestAndWeightFiles(e){let t=[],n=this.weightsFiles.map(r=>q1(r.name)),a={};for(let r of e)r.paths.forEach(s=>{let i=q1(s);if(t.indexOf(i)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${i}'`);if(t.push(i),n.indexOf(i)===-1)throw new Error(`Weight file with basename '${i}' is not provided.`);a[s]=this.weightsFiles[n.indexOf(i)]});if(t.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${t.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return a}},cR=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(al.URL_SCHEME)?dR(e.slice(al.URL_SCHEME.length)):null;$t.registerSaveRouter(cR);function dR(e="model"){return new al(e)}function hR(e){return new pR(e)}function X1(e,t,n,a){i(e),n=n==null?0:n,a=a==null?1:a,o(n,a);let r=0,s=l=>(l.then(u=>{let p=n+ ++r/e.length*(a-n);return t(p),u}),l);function i(l){A(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function o(l,u){A(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),A(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${u}`),A(u>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${u}`)}return Promise.all(e.map(s))}async function aS(e,t){t==null&&(t={});let n=t.fetchFunc==null?H().platform.fetch:t.fetchFunc,a=e.map(u=>n(u,t.requestInit,{isBinary:!0})),r=0,s=.5,i=(t.onProgress==null?await Promise.all(a):await X1(a,t.onProgress,r,s)).map(u=>u.arrayBuffer()),o=.5,l=1;return t.onProgress==null?await Promise.all(i):await X1(i,t.onProgress,o,l)}async function mR(e,t="",n,a){return rS(r=>aS(r,{requestInit:a}))(e,t,n)}function rS(e){return async(t,n="",a)=>{let r=t.map(()=>!1),s={},i=a!=null?a.map(()=>!1):[],o=[];if(t.forEach((h,m)=>{let f=0;h.weights.forEach(g=>{let y="quantization"in g?g.quantization.dtype:g.dtype,b=Cb[y]*mt(g.shape),x=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:b})};a!=null?a.forEach((w,I)=>{w===g.name&&(x(),i[I]=!0)}):x(),o.push(g.name),f+=b})}),!i.every(h=>h)){let h=a.filter((m,f)=>!i[f]);throw new Error(`Could not find weights in manifest with names: ${h.join(", ")}. +Manifest JSON has weights with names: ${o.join(", ")}.`)}let l=r.reduce((h,m,f)=>(m&&h.push(f),h),[]),u=[];l.forEach(h=>{t[h].paths.forEach(m=>{let f=n+(n.endsWith("/")?"":"/")+m;u.push(f)})});let p=await e(u),d={},c=0;return l.forEach(h=>{let m=t[h].paths.length,f=0;for(let x=0;x{let w=g.slice(x.groupOffset,x.groupOffset+x.sizeBytes),I=jI(w,[x.manifestEntry]);for(let T in I)d[T]=I[T]}),c+=m}),d}}var fR="application/octet-stream",gR="application/json",Fx=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(A(typeof t.fetchFunc=="function",()=>"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=H().platform.fetch,A(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&A(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)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.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],a=qI(e,n);t.body.append("model.json",new Blob([JSON.stringify(a)],{type:gR}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:fR}),"model.weights.bin");let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:Nc(e),responses:[r]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${r.status}.`)}async load(){let 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(r){let s=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?s+=" 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.":s+=" Please make sure the server is serving valid JSON for this request.",new Error(s)}let n=t.modelTopology,a=t.weightsManifest;if(n==null&&a==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return $x(t,r=>this.loadWeights(r))}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=yR(t),r=this.weightPathPrefix||n,s=XI(e),i=[],o=[];for(let u of e)for(let p of u.paths)this.weightUrlConverter!=null?o.push(this.weightUrlConverter(p)):i.push(r+p+a);this.weightUrlConverter&&i.push(...await Promise.all(o));let l=await aS(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[s,Ex(l)]}};Fx.URL_SCHEME_REGEX=/^https?:\/\//;function yR(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function Ab(e){return e.match(Fx.URL_SCHEME_REGEX)!=null}var sS=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>Ab(a)):n=Ab(e),n)return Dx(e,t)}return null};$t.registerSaveRouter(sS);$t.registerLoadRouter(sS);function Dx(e,t){return new Fx(e,t)}function bR(e,t){return Dx(e,t)}var lb=class{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}},iS=class{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}},xR=class{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}};function vR(e,t,n,a){let r=arguments;return new xR(oS(...r))}function oS(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new lb(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 lb({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 lb({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function wR(e){return new iS(e)}function kR(e){return new iS(e)}var lS={};$e(lS,{confusionMatrix:()=>UR});function IR(e,t,n=!1,a=!1){let r=_(e,"a","matMul"),s=_(t,"b","matMul");[r,s]=_t(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return O.runKernel(yi,i,o)}var Fe=L({matMul_:IR});function SR(e,t,n=1,a=0,r="int32"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let s={indices:_(e,"indices","oneHot","int32")},i={dtype:r,depth:t,onValue:n,offValue:a};return O.runKernel(Gi,s,i)}var rl=L({oneHot_:SR});function TR(){H().set("PROD",!0)}function NR(){H().set("DEBUG",!0)}function CR(){H().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function Rx(e){H().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}bD(Rx);function _R(){O.disposeVariables()}function Na(){return O}function kh(){return O.memory()}function ER(e){return O.profile(e)}function P(e,t){return O.tidy(e,t)}function _e(e){Nx(e).forEach(t=>t.dispose())}function Jt(e){return O.keep(e)}function $R(e){return O.time(e)}function AR(e){return O.setBackend(e)}function FR(){return O.ready()}function DR(){return O.backendName}function RR(e){O.removeBackend(e)}function MR(e){return O.findBackend(e)}function PR(e){return O.findBackendFactory(e)}function Em(e,t,n=1){return O.registerBackend(e,t,n)}function uS(){return O.backend}function OR(e,t){H().setPlatform(e,t)}function LR(e){let t={input:_(e,"input","imag")};return O.runKernel(cm,t)}var Cc=L({imag_:LR});function zR(e){let t={x:_(e,"x","neg")};return O.runKernel(eu,t)}var bt=L({neg_:zR});function WR(e){let t={input:_(e,"input","real")};return O.runKernel(wm,t)}var sl=L({real_:WR});function BR(e,t,n){let a=_(e,"x","transpose");if(t==null&&(t=a.shape.map((i,o)=>o).reverse()),A(a.rank===t.length,()=>`Error in transpose: rank of input ${a.rank} must match length of perm ${t}.`),t.forEach(i=>{A(i>=0&&i`All entries in 'perm' must be between 0 and ${a.rank-1} but got ${t}`)}),a.rank<=1)return a.clone();let r={x:a},s={perm:t};return a.dtype==="complex64"?P(()=>{let i=sl(a),o=Cc(a);return i=O.runKernel(Tr,{x:i},s),o=O.runKernel(Tr,{x:o},s),n&&(o=bt(o)),Cr(i,o)}):O.runKernel(Tr,r,s)}var Ee=L({transpose_:BR});function VR(e,t,n){let a=_(e,"labels","confusionMatrix"),r=_(t,"predictions","confusionMatrix");A(n==null||n>0&&Number.isInteger(n),()=>`If provided, numClasses must be a positive integer, but got ${n}`),A(a.rank===1,()=>`Expected the rank of labels to be 1, but got ${a.rank}`),A(r.rank===1,()=>`Expected the rank of predictions to be 1, but got ${r.rank}`),A(a.shape[0]===r.shape[0],()=>`Mismatch in the number of examples: ${a.shape[0]} vs. ${r.shape[0]}. Labels and predictions should have the same number of elements.`),A(n>0&&Number.isInteger(n),()=>`numClasses is required to be a positive integer, but got ${n}`);let s=rl(le(a,"int32"),n),i=rl(le(r,"int32"),n),o=Ee(s),l=Fe(o,i);return le(l,"int32")}var UR=L({confusionMatrix_:VR}),Tu={};$e(Tu,{assertAndGetBroadcastShape:()=>lt,getBroadcastDims:()=>pS,getReductionAxes:()=>Wt});function pS(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function Wt(e,t){let n=[];for(let a=0;a1)&&n.unshift(s)}return n}function lt(e,t){let n=[],a=Math.max(e.length,t.length);for(let r=0;rYR,fromPixelsAsync:()=>KR,toPixels:()=>XR});function _c(e,t,n){if(hi(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let a=ir(e,n);if(a.length!==3&&a.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return fs(e,t,a,n)}var Ps;function cS(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(e==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let n=!1,a=!1,r=!1,s=!1,i=!1,o=!1;if(e.data instanceof Uint8Array)n=!0;else if(typeof ImageData!="undefined"&&e instanceof ImageData)a=!0;else if(typeof HTMLVideoElement!="undefined"&&e instanceof HTMLVideoElement)r=!0;else if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement)s=!0;else if(e.getContext!=null)i=!0;else if(typeof ImageBitmap!="undefined"&&e instanceof ImageBitmap)o=!0;else 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}`);if(bh(yh,O.backendName)!=null){let c={pixels:e},h={numChannels:t};return O.runKernel(yh,c,h)}let[l,u]=r?[e.videoWidth,e.videoHeight]:[e.width,e.height],p;if(i)p=e.getContext("2d").getImageData(0,0,l,u).data;else if(a||n)p=e.data;else if(s||r||o){if(Ps==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")Ps=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else Ps=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Ps.canvas.width=l,Ps.canvas.height=u,Ps.drawImage(e,0,0,l,u),p=Ps.getImageData(0,0,l,u).data}let d;if(t===4)d=new Int32Array(p);else{let c=l*u;d=new Int32Array(c*t);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(n.dtype!=="float32"&&n.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${n.dtype}. Please use float32 or int32 tensors.`);let i=await n.data(),o=n.dtype==="float32"?255:1,l=new Uint8ClampedArray(r*a*4);for(let u=0;u1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${h}.`)}else if(n.dtype==="int32"&&(h<0||h>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${h}.`);s===1?(p[0]=h*o,p[1]=h*o,p[2]=h*o):p[c]=h*o}let d=u*4;l[d+0]=Math.round(p[0]),l[d+1]=Math.round(p[1]),l[d+2]=Math.round(p[2]),l[d+3]=Math.round(p[3])}if(t!=null){t.width=r,t.height=a;let u=t.getContext("2d"),p=new ImageData(l,r,a);u.putImageData(p,0,0)}return n!==e&&n.dispose(),l}var YR=L({fromPixels_:cS}),Mx={};$e(Mx,{prepareAndValidate:()=>dS});function dS(e,t){let n=e.shape.length,a=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(a<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${a}.`);if(t.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[a-1]>n)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[a-1]} vs. ${n}`);if(mt(e.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);let r=t.shape,s=r[r.length-1],i=1;for(let d=0;dd/u),1].slice(0,s);return[l,i,u,p]}var Px={};$e(Px,{calculateShapes:()=>hS,validateInput:()=>Lx,validateUpdateShape:()=>Ox});function Ox(e,t,n){let a=t.rank>1?t.shape[t.rank-1]:1,r=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: ${a}, and batchDim: ${r}.`;if(n.rank1?t.shape[a-1]:1,s=n.length,i=1;for(let d=r;dJR,computeFlatOffset:()=>aM,computeOutShape:()=>eM,getNormalizedAxes:()=>tM,isSliceContinous:()=>nM,maskToAxes:()=>QR,parseSliceParams:()=>kS,sliceInfo:()=>rM,startForAxis:()=>vS,startIndicesWithElidedDims:()=>yS,stopForAxis:()=>wS,stopIndicesWithElidedDims:()=>bS,stridesForAxis:()=>xS,stridesWithElidedDims:()=>mS});var Fb=-2,ZR=-1;function JR(e,t,n){let a=e.shape.length;A(a===t.length,()=>`Error in slice${a}D: Length of begin ${t} must match the rank of the array (${a}).`),A(a===n.length,()=>`Error in slice${a}D: Length of size ${n} must match the rank of the array (${a}).`);for(let r=0;r`Error in slice${a}D: begin[${r}] + size[${r}] (${t[r]+n[r]}) would overflow input.shape[${r}] (${e.shape[r]})`)}function QR(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function eM(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;p=yS(i,h,m,a,e),d=bS(o,h,m,r,e),c=mS(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=fS(t,n,o),u=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=fS(t,n,o),u=a[l];e&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),i=Vp(0,i,l-1),i}function wS(e,t,n,a,r,s){let i=t[r],o=n[r]||1;(e&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),o>0?i=Vp(0,i,l):i=Vp(-1,i,l-1),i}function nM(e,t,n){let a=n.length;for(let r=0;r1){a=r;break}for(let r=a+1;r0||n[r]!==e[r])return!1;return!0}function aM(e,t){let n=e.length>0?e[e.length-1]:1;for(let a=0;a{A(i!==-1,()=>"slice() does not support negative begin indexing.")});let s;return n==null?s=new Array(r).fill(-1):typeof n=="number"?s=[n,...new Array(r-1).fill(-1)]:n.lengthi>=0?i:(A(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${o}.`),e.shape[o]-a[o])),[a,s]}function rM(e,t,n,a,r,s,i,o,l){let u;if(a==null?(u=new Array(t.length),u.fill(1)):u=a,i!=null&&(i&i-1)!==0)throw new Error("Multiple ellipses in slice is not allowed.");let p=!1,d={dims:u.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:n.slice(),strides:u.slice(),beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};for(let b=0;b0?0:-1,c.strides[b]>0?w:w-1];if(x&&c.strides[b]<=0)throw Error("only stride 1 allowed on non-range indexing.");f=f&&c.strides[b]===1;let C=!!(c.beginMask&1<=w)throw Error(`slice index ${c.begin[b]} of dimension ${b} out of bounds.`)}else c.begin[b]=Y1(c.begin[b],0,c.strides[b],w,I,T),c.end[b]=Y1(c.end[b],1,c.strides[b],w,I,T);let R=c.strides[b]===1&&c.begin[b]===0&&c.end[b]===w;h=h&&R,m=m&&(b===0&&c.strides[b]===1||R)}else h=h&&c.strides[b]===1&&C,m=m&&(b===0&&c.strides[b]===1||C);let E,$=!1;if(c.beginValid&&c.endValid?(E=c.end[b]-c.begin[b],$=!0):x?(E=1,$=!0):C&&w>=0&&(c.strides[b]<0?E=-w:E=w,$=!0),$){let R;E===0||E<0!=c.strides[b]<0?R=0:R=Math.trunc(E/c.strides[b])+(E%c.strides[b]!==0?1:0),g.push(R)}else g.push(-1)}for(let b=0;b=0?y.push(g[x]):x===Fb&&y.push(1)}return{finalShapeSparse:y.filter((b,x)=>c.finalShapeGatherIndices[x]!==Fb),finalShape:y,isIdentity:h,sliceDim0:m,isSimpleSlice:f,begin:c.begin,end:c.end,strides:c.strides}}function sM(e,t){t.beginMask=0,t.endMask=0,t.shrinkAxisMask=0;let n=0;t.beginValid=e.begin!=null,t.endValid=e.end!=null,t.begin=new Array(t.dims),t.end=new Array(t.dims),t.strides=new Array(t.dims),t.finalShapeGatherIndices=[],t.finalShapeGatherIndicesSparse=[],t.inputShapeGatherIndicesSparse=new Array(t.dims);for(let a=0;a0?s[t]:s[t+1&1];{let i=e<0?a+e:e;return is[1]?s[1]:i}}var ne={};$e(ne,{Serializable:()=>IS,SerializationMap:()=>Bs,registerClass:()=>gs});var IS=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},Bs=class{constructor(){this.classNameMap={}}static getMap(){return Bs.instance==null&&(Bs.instance=new Bs),Bs.instance}static register(e){Bs.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function gs(e){A(e.className!=null,()=>"Class being registered does not have the static className property defined."),A(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),A(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),Bs.register(e)}var SS={};$e(SS,{TEST_EPSILON_FLOAT16:()=>TS,createVideoElement:()=>hM,encodeStrings:()=>NS,expectArrayBuffersEqual:()=>dM,expectArraysClose:()=>oM,expectArraysEqual:()=>uM,expectNumbersClose:()=>pM,expectPromiseToFail:()=>lM,expectValuesInRange:()=>cM,play:()=>mM,testEpsilon:()=>zx});var iM=.001,TS=.1;function oM(e,t,n){return n==null&&(n=zx()),Db(e,t,(a,r)=>Wx(a,r,n))}function zx(){return O.backend.floatPrecision()===32?iM:TS}function Db(e,t,n){let a=!0;if((hn(e)||hn(t))&&(a=!1),hn(e)&&hn(t)&&(a=!0),a){let i=e.constructor.name,o=t.constructor.name;if(i!==o)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${o}`)}if(Array.isArray(e)&&Array.isArray(t)){let i=ir(e),o=ir(t);if(!ps(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=hn(e)?e:Zs(e),s=hn(t)?t:Zs(t);if(r.length!==s.length)throw new Error(`Arrays have different lengths actual: ${r.length} vs expected: ${s.length}. Actual: ${r}. Expected: ${s}.`);for(let i=0;it.fail(),()=>t()),typeof expect!="undefined"&&expect().nothing()}function uM(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Kr(e)||Kr(e[0])||Kr(t)||Kr(t[0])?Db(e,n,(a,r)=>a==r):Db(e,t,(a,r)=>Wx(a,r,0))}function pM(e,t,n){if(n==null&&(n=zx()),!Wx(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function Wx(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function cM(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function dM(e,t){let n=new Float32Array(e),a=new Float32Array(t);if(n.length!==a.length)throw new Error(`Expected ArrayBuffer to be of length ${a.length}, but it was ${n.length}`);for(let r=0;r{t.addEventListener("loadeddata",a=>n(t)),t.load()})}async function mM(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise(t=>{e.requestVideoFrameCallback(t)})}var fM="4.0.0";function gM(e,t){let n=_(e,"a","add"),a=_(t,"b","add");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(cs,r)}var Y=L({add_:gM});function yM(e,t){let n=_(e,"a","floorDiv"),a=_(t,"b","floorDiv");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(Ai,r)}var Am=L({floorDiv_:yM});function bM(e,t){let n=_(e,"a","div"),a=_(t,"b","div");if([n,a]=_t(n,a),n.dtype==="int32"&&a.dtype==="int32")return Am(n,a);let r={a:n,b:a},s={};return O.runKernel(Ni,r,s)}var he=L({div_:bM});function xM(e,t){let n=_(e,"a","mul"),a=_(t,"b","mul");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(Ui,r)}var z=L({mul_:xM});function vM(e){let t=_(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return O.runKernel(oc,n)}else{let n={x:t};return O.runKernel(wl,n)}}var Lt=L({abs_:vM});function wM(e){let t={x:_(e,"x","acos")};return O.runKernel(kl,t)}var Bx=L({acos_:wM});function kM(e){let t={x:_(e,"x","acosh")};return O.runKernel(Il,t)}var Vx=L({acosh_:kM});function IM(e){$(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),$(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);let t=e.map((r,s)=>_(r,`tensors${s}`,"addN")),n=t[0];t.forEach(r=>{if(r.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(r=>{if(!ps(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return O.runKernel(mi,a)}var CS=L({addN_:IM});function SM(e,t=null,n=!1){let a={x:_(e,"x","all","bool")},r={axis:t,keepDims:n};return O.runKernel(Sl,a,r)}var $m=L({all_:SM});function TM(e,t=null,n=!1){let a={x:_(e,"x","any","bool")},r={axis:t,keepDims:n};return O.runKernel(Tl,a,r)}var qp=L({any_:TM});function NM(e,t=0){let n={x:_(e,"x","argMax")},a={axis:t};return O.runKernel(fi,n,a)}var ai=L({argMax_:NM});function CM(e,t=0){let n={x:_(e,"x","argMin")},a={axis:t};return O.runKernel(sc,n,a)}var Ux=L({argMin_:CM});function _M(e){let t={x:_(e,"x","asin")};return O.runKernel(Nl,t)}var Gx=L({asin_:_M});function EM(e){let t={x:_(e,"x","asinh")};return O.runKernel(Cl,t)}var Hx=L({asinh_:EM});function AM(e){let t={x:_(e,"x","atan")};return O.runKernel(_l,t)}var jx=L({atan_:AM});function $M(e,t){let n=_(e,"a","atan2"),a=_(t,"b","atan2");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(Al,r)}var qx=L({atan2_:$M});function FM(e){let t={x:_(e,"x","atanh")};return O.runKernel(El,t)}var Kx=L({atanh_:FM});function DM(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=AS(r);return Ec(e,o,n,s,a,null,null,l)}function _S(e,t,n,a,r,s,i="channelsLast"){let[o,l]=Ih(t),u;if(i==="channelsLast")u=[o,l,e[3],e[3]];else if(i==="channelsFirst")u=[o,l,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return Ec(e,u,n,a,r,s,!1,i)}function RM(e,t,n,a,r,s,i="NDHWC"){let[o,l,u]=Rb(t),p,d;if(i==="NDHWC")d="channelsLast",p=[o,l,u,e[4],e[4]];else if(i==="NCDHW")d="channelsFirst",p=[o,l,u,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return ES(e,p,n,a,r,!1,d,s)}function Ec(e,t,n,a,r,s,i=!1,o="channelsLast"){let[l,u,p,d]=[-1,-1,-1,-1];if(o==="channelsLast")[l,u,p,d]=e;else if(o==="channelsFirst")[l,d,u,p]=e;else throw new Error(`Unknown dataFormat ${o}`);let[c,h,,m]=t,[f,g]=Ih(n),[y,b]=Ih(a),x=Qo(c,y),w=Qo(h,b),{padInfo:I,outHeight:T,outWidth:C}=OM(r,u,p,f,g,x,w,s,o),E=i?m*d:m,A;return o==="channelsFirst"?A=[l,E,T,C]:o==="channelsLast"&&(A=[l,T,C,E]),{batchSize:l,dataFormat:o,inHeight:u,inWidth:p,inChannels:d,outHeight:T,outWidth:C,outChannels:E,padInfo:I,strideHeight:f,strideWidth:g,filterHeight:c,filterWidth:h,effectiveFilterHeight:x,effectiveFilterWidth:w,dilationHeight:y,dilationWidth:b,inShape:e,outShape:A,filterShape:t}}function ES(e,t,n,a,r,s=!1,i="channelsLast",o){let[l,u,p,d,c]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[l,u,p,d,c]=e;else if(i==="channelsFirst")[l,c,u,p,d]=e;else throw new Error(`Unknown dataFormat ${i}`);let[h,m,f,,g]=t,[y,b,x]=Rb(n),[w,I,T]=Rb(a),C=Qo(h,w),E=Qo(m,I),A=Qo(f,T),{padInfo:R,outDepth:F,outHeight:S,outWidth:M}=LM(r,u,p,d,y,b,x,C,E,A,o),B=s?g*c:g,U;return i==="channelsFirst"?U=[l,B,F,S,M]:i==="channelsLast"&&(U=[l,F,S,M,B]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:p,inWidth:d,inChannels:c,outDepth:F,outHeight:S,outWidth:M,outChannels:B,padInfo:R,strideDepth:y,strideHeight:b,strideWidth:x,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:C,effectiveFilterHeight:E,effectiveFilterWidth:A,dilationDepth:w,dilationHeight:I,dilationWidth:T,inShape:e,outShape:U,filterShape:t}}function MM(e,t,n,a,r){a==null&&(a=Xx(e,t,n));let s=e[0],i=e[1],o=qs((s-t+2*a)/n+1,r),l=qs((i-t+2*a)/n+1,r);return[o,l]}function PM(e,t,n,a,r,s){r==null&&(r=Xx(e,t,a));let i=e[0],o=e[1],l=e[2],u=qs((i-t+2*r)/a+1,s),p=qs((o-t+2*r)/a+1,s),d=qs((l-t+2*r)/a+1,s);return[u,p,d,n]}function Xx(e,t,n,a=1){let r=Qo(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function Ih(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function Rb(e){return typeof e=="number"?[e,e,e]:e}function Qo(e,t){return t<=1?e:e+(e-1)*(t-1)}function OM(e,t,n,a,r,s,i,o,l){let u,p,d;if(typeof e=="number"){u={top:e,bottom:e,left:e,right:e,type:e===0?"VALID":"NUMBER"};let c=MM([t,n],s,a,e,o);p=c[0],d=c[1]}else if(e==="same"){p=Math.ceil(t/a),d=Math.ceil(n/r);let c=Math.max(0,(p-1)*a+s-t),h=Math.max(0,(d-1)*r+i-n),m=Math.floor(c/2),f=c-m,g=Math.floor(h/2),y=h-g;u={top:m,bottom:f,left:g,right:y,type:"SAME"}}else if(e==="valid")u={top:0,bottom:0,left:0,right:0,type:"VALID"},p=Math.ceil((t-s+1)/a),d=Math.ceil((n-i+1)/r);else if(typeof e=="object"){let c=l==="channelsLast"?e[1][0]:e[2][0],h=l==="channelsLast"?e[1][1]:e[2][1],m=l==="channelsLast"?e[2][0]:e[3][0],f=l==="channelsLast"?e[2][1]:e[3][1];u={top:c,bottom:h,left:m,right:f,type:c===0&&h===0&&m===0&&f===0?"VALID":"EXPLICIT"},p=qs((t-s+c+h)/a+1,o),d=qs((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outHeight:p,outWidth:d}}function LM(e,t,n,a,r,s,i,o,l,u,p){let d,c,h,m;if(typeof e=="number"){d={top:e,bottom:e,left:e,right:e,front:e,back:e,type:e===0?"VALID":"NUMBER"};let f=PM([t,n,a,1],o,1,r,e,p);c=f[0],h=f[1],m=f[2]}else if(e==="same"){c=Math.ceil(t/r),h=Math.ceil(n/s),m=Math.ceil(a/i);let f=(c-1)*r+o-t,g=(h-1)*s+l-n,y=(m-1)*i+u-a,b=Math.floor(f/2),x=f-b,w=Math.floor(g/2),I=g-w,T=Math.floor(y/2),C=y-T;d={top:w,bottom:I,left:T,right:C,front:b,back:x,type:"SAME"}}else if(e==="valid")d={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},c=Math.ceil((t-o+1)/r),h=Math.ceil((n-l+1)/s),m=Math.ceil((a-u+1)/i);else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:d,outDepth:c,outHeight:h,outWidth:m}}function qs(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 ns(e){let[t,n,a]=Ih(e);return t===1&&n===1&&a===1}function ur(e,t){return ns(e)||ns(t)}function AS(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function Tn(e,t,n){if(n!=null){if(typeof t=="string")throw Error(`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);if(typeof t=="number")$(tl(t),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);else if(typeof t=="object")t.forEach(a=>{a.forEach(r=>{$(tl(r),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${r}.`)})});else throw Error(`Error in ${e}: Unknown padding parameter: ${t}`)}}function zM(e,t){let n={x:_(e,"x","reshape","string_or_numeric")},a={shape:t};return O.runKernel(lu,n,a)}var W=L({reshape_:zM});function WM(e,t,n,a,r){let s=_(e,"x","avgPool","float32"),i=1;$(ur(n,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`);let o=s,l=!1;s.rank===3&&(l=!0,o=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),$(o.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${o.rank}.`),Tn("avgPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=O.runKernel(gi,u,p);return d=oe(d,s.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var ga=L({avgPool_:WM});function BM(e,t,n,a,r,s="NDHWC"){let i=_(e,"x","avgPool3d","float32"),o=i,l=!1;i.rank===4&&(l=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),$(o.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`),$(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Tn("avgPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=O.runKernel(ic,u,p);return d=oe(d,o.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Yx=L({avgPool3d_:BM});function VM(e,t=0){$(e.length>=1,()=>"Pass at least one tensor to concat");let n=jp(e,"tensors","concat","string_or_numeric");if(n[0].dtype==="complex64"&&n.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor - with dtype ${s.dtype}. `)}),n.length===1)return rr(n[0]);let a=n,r={axis:t};return O.runKernel(Fl,a,r)}var Ze=L({concat_:VM});function UM(e){let t={x:_(e,"x","sigmoid","float32")};return O.runKernel(ao,t)}var da=L({sigmoid_:UM});function GM(e,t,n){let a=_(e,"x","slice","string_or_numeric");if(a.rank===0)throw new Error("Slicing scalar is not possible");let r={x:a},s={begin:t,size:n};return O.runKernel(du,r,s)}var Be=L({slice_:GM});function HM(e){let t={x:_(e,"x","tanh","float32")};return O.runKernel(po,t)}var ri=L({tanh_:HM});function jM(e,t,n,a,r,s){let i=_(e,"forgetBias","basicLSTMCell"),o=_(t,"lstmKernel","basicLSTMCell"),l=_(n,"lstmBias","basicLSTMCell"),u=_(a,"data","basicLSTMCell"),p=_(r,"c","basicLSTMCell"),d=_(s,"h","basicLSTMCell"),c=Ze([u,d],1),h=Fe(c,o),m=Y(h,l),f=m.shape[0],g=m.shape[1]/4,y=[f,g],b=Be(m,[0,0],y),x=Be(m,[0,g],y),w=Be(m,[0,g*2],y),I=Be(m,[0,g*3],y),T=Y(z(da(b),ri(x)),z(p,da(Y(i,w)))),C=z(ri(T),da(I));return[T,C]}var $S=L({basicLSTMCell_:jM});function qM(e,t,n){let a=_(e,"x","batchToSpaceND"),r=t.reduce((o,l)=>o*l);$(a.rank>=1+t.length,()=>`input rank is ${a.rank} but should be > than blockShape.length ${t.length}`),$(n.length===t.length,()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`),$(a.shape[0]%r===0,()=>`input tensor batch is ${a.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${r}`);let s={x:a},i={blockShape:t,crops:n};return O.runKernel($l,s,i)}var Ac=L({batchToSpaceND_:qM});function KM(e){let t;return e.rank===0||e.rank===1?t=W(e,[1,1,1,e.size]):e.rank===2?t=W(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function XM(e,t,n,a,r,s){s==null&&(s=.001);let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let p;a!=null&&(p=_(a,"offset","batchNorm")),$(o.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),$(p==null||o.rank===p.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),$(u==null||o.rank===u.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let d={x:KM(i),scale:u,offset:p,mean:o,variance:l},c={varianceEpsilon:s},h=O.runKernel($i,d,c);return W(h,i.shape)}var ys=L({batchNorm_:XM});function YM(e,t,n,a,r,s){let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let p;return a!=null&&(p=_(a,"offset","batchNorm")),$(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),$(o.rank===2||o.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`),$(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),u!=null&&$(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`),p!=null&&$(p.rank===2||p.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${p.rank}.`),ys(i,o,l,p,u,s)}var Zx=L({batchNorm2d_:YM});function ZM(e,t,n,a,r,s){let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let p;return a!=null&&(p=_(a,"offset","batchNorm")),$(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),$(o.rank===3||o.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`),$(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),u!=null&&$(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`),p!=null&&$(p.rank===3||p.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${p.rank}.`),ys(i,o,l,p,u,s)}var Jx=L({batchNorm3d_:ZM});function JM(e,t,n,a,r,s){let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let p;return a!=null&&(p=_(a,"offset","batchNorm")),$(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),$(o.rank===4||o.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`),$(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),u!=null&&$(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`),p!=null&&$(p.rank===4||p.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${p.rank}.`),ys(i,o,l,p,u,s)}var Qx=L({batchNorm4d_:JM});function QM(e,t,n){let a=_(e,"x","bincount"),r=_(t,"weights","bincount");$(a.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${a.dtype}`),$(n>=0,()=>`size must be non-negative, but got ${n}.`),$(r.size===a.size||r.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${a.shape}, weights shape: ${r.shape}.`);let s={x:a,weights:r},i={size:n};return O.runKernel(Zh,s,i)}var ev=L({bincount_:QM});function eP(e,t){let n=_(e,"s0","broadcastArgs","int32"),a=_(t,"s1","broadcastArgs","int32");if(n.rank!==1)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${n.rank}`);if(a.rank!==1)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${a.rank}`);let r={s0:n,s1:a};return O.runKernel(Jh,r)}var FS=L({broadcastArgs_:eP});function tP(e,t){let n=_(e,"broadcastTo","x"),a=n.shape;if(t.some(l=>!(l>0)||l%1!==0))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengthn.rank){let l=n.shape.slice();for(;l.length=0;l--)if(r[l]===t[l])s[l]=1;else if(n.shape[l]!==1)throw new Error(`broadcastTo(): [${a}] cannot be broadcast to [${t}].`);if(s.map((l,u)=>l>1?u:-1).filter(l=>l>=0).length===0)return rr(n);let i={x:n},o={reps:s};return O.runKernel(hs,i,o)}var Ks=L({broadcastTo_:tP});function nP(e){let t={x:_(e,"x","ceil","float32")};return O.runKernel(xi,t)}var tv=L({ceil_:nP});function gn(e,t,n){let a={shape:e,value:t,dtype:n};return O.runKernel(pc,{},a)}function aP(e,t,n){let a=_(e,"x","clipByValue");if($(t<=n,()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`),t===n)return gn(a.shape,t,a.dtype);let r={x:a},s={clipValueMin:t,clipValueMax:n};return O.runKernel(ds,r,s)}var en=L({clipByValue_:aP});function rP(e){return Ze(e,0)}var nv=L({concat1d_:rP});function sP(e,t){return Ze(e,t)}var av=L({concat2d_:sP});function iP(e,t){return Ze(e,t)}var rv=L({concat3d_:iP});function oP(e,t){return Ze(e,t)}var sv=L({concat4d_:oP});function lP(e,t,n,a,r="NHWC",s=[1,1],i){let o=_(e,"x","conv2d","float32"),l=_(t,"filter","conv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),$(u.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${u.rank}.`),$(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),Tn("conv2d",a,i);let d=r==="NHWC"?u.shape[3]:u.shape[1];$(d===l.shape[2],()=>`Error in conv2d: depth of input (${d}) must match input depth for filter ${l.shape[2]}.`),$(ur(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=O.runKernel(vi,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var $t=L({conv2d_:lP});function uP(e,t,n,a,r="NWC",s=1,i){let o=_(e,"x","conv1d"),l=_(t,"filter","conv1d"),u=o,p=!1;o.rank===2&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1]])),$(u.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${u.rank}.`),$(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),Tn("conv1d",a,i),$(u.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${u.shape[2]}) must match input depth for filter ${l.shape[1]}.`),$(ur(n,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`),$(r==="NWC",()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`);let d=W(l,[1,l.shape[0],l.shape[1],l.shape[2]]),c=W(u,[u.shape[0],1,u.shape[1],u.shape[2]]),h=$t(c,d,[1,n],a,"NHWC",[1,s],i);return p?W(h,[h.shape[2],h.shape[3]]):W(h,[h.shape[0],h.shape[2],h.shape[3]])}var Fm=L({conv1d_:uP});function pP(e,t,n,a,r,s="NHWC",i){$(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let o=e,l=t,u=!1;t.rank===3&&(u=!0,l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),$(o.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`),$(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),$(n.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`);let p=s==="NHWC"?o[3]:o[1],d=s==="NHWC"?l.shape[3]:l.shape[1];$(p===n.shape[2],()=>`Error in conv2dDerInput: depth of input (${p}) must match input depth for filter ${n.shape[2]}.`),$(d===n.shape[3],()=>`Error in conv2dDerInput: depth of output (${d}) must match output depth for filter ${n.shape[3]}.`),Tn("conv2dDerInput",r,i);let c={dy:l,filter:n},h={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,inputShape:o},m=O.runKernel(wi,c,h);return u?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var iv=L({conv2DBackpropInput_:pP});function cP(e,t,n,a,r,s){let i=_(e,"x","conv2dTranspose"),o=_(t,"filter","conv2dTranspose");return iv(n,i,o,a,r,"NHWC",s)}var Dm=L({conv2dTranspose_:cP});function dP(e,t,n,a,r="NDHWC",s=[1,1,1]){let i=_(e,"x","conv3d"),o=_(t,"filter","conv3d"),l=i,u=!1;i.rank===4&&(u=!0,l=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),$(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),$(o.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`),$(l.shape[4]===o.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`),$(ur(n,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),$(r==="NDHWC",()=>`Error in conv3d: got dataFormat of ${r} but only NDHWC is currently supported.`);let p={x:l,filter:o},d={strides:n,pad:a,dataFormat:r,dilations:s},c=O.runKernel(lc,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var ov=L({conv3d_:dP});function hP(e,t,n,a,r){$(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let s=e,i=t,o=!1;t.rank===4&&(o=!0,i=W(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,e[0],e[1],e[2],e[3]]);let l=s[4],u=i.shape[4];$(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),$(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),$(n.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`),$(l===n.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`),$(u===n.shape[4],()=>`Error in conv3dDerInput: depth of output (${u}) must match output depth for filter ${n.shape[4]}.`);let p={dy:i,filter:n},d={pad:r,strides:a,inputShape:s},c=O.runKernel(nm,p,d);return o?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var DS=L({conv3DBackpropInput_:hP});function mP(e,t,n,a,r){let s=_(e,"x","conv3dTranspose"),i=_(t,"filter","conv3dTranspose");return DS(n,s,i,a,r)}var lv=L({conv3dTranspose_:mP});function fP(e){let t={x:_(e,"x","cos","float32")};return O.runKernel(ki,t)}var $c=L({cos_:fP});function gP(e){let t={x:_(e,"x","cosh","float32")};return O.runKernel(Ii,t)}var Rm=L({cosh_:gP});function yP(e,t=0,n=!1,a=!1){let r={x:_(e,"x","cumprod")},s={axis:t,exclusive:n,reverse:a};return O.runKernel(Dl,r,s)}var Kp=L({cumprod_:yP});function bP(e,t=0,n=!1,a=!1){let r={x:_(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return O.runKernel(Si,r,s)}var Mm=L({cumsum_:bP});function xP(e,t,n,a=!1){let r=_(e,"x","denseBincount"),s=_(t,"weights","denseBincount");$(r.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`),$(r.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`),$(n>=0,()=>`size must be non-negative, but got ${n}.`),$(s.size===r.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${r.shape}, weights shape: ${s.shape}.`);let i={x:r,weights:s},o={size:n,binaryOutput:a};return O.runKernel(am,i,o)}var Sh=L({denseBincount_:xP});function vP(e,t,n="NHWC"){let a=_(e,"x","depthToSpace","float32"),r=n==="NHWC"?a.shape[1]:a.shape[2],s=n==="NHWC"?a.shape[2]:a.shape[3],i=n==="NHWC"?a.shape[3]:a.shape[1];$(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),$(r*t>=0,()=>`Negative dimension size caused by overflow when multiplying +Expected: ${s}.`)}typeof expect!="undefined"&&expect().nothing()}function lM(e,t){e().then(()=>t.fail(),()=>t()),typeof expect!="undefined"&&expect().nothing()}function uM(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Kr(e)||Kr(e[0])||Kr(t)||Kr(t[0])?Db(e,n,(a,r)=>a==r):Db(e,t,(a,r)=>Wx(a,r,0))}function pM(e,t,n){if(n==null&&(n=zx()),!Wx(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function Wx(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function cM(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function dM(e,t){let n=new Float32Array(e),a=new Float32Array(t);if(n.length!==a.length)throw new Error(`Expected ArrayBuffer to be of length ${a.length}, but it was ${n.length}`);for(let r=0;r{t.addEventListener("loadeddata",a=>n(t)),t.load()})}async function mM(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise(t=>{e.requestVideoFrameCallback(t)})}var fM="4.0.0";function gM(e,t){let n=_(e,"a","add"),a=_(t,"b","add");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(cs,r)}var Y=L({add_:gM});function yM(e,t){let n=_(e,"a","floorDiv"),a=_(t,"b","floorDiv");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel($i,r)}var $m=L({floorDiv_:yM});function bM(e,t){let n=_(e,"a","div"),a=_(t,"b","div");if([n,a]=_t(n,a),n.dtype==="int32"&&a.dtype==="int32")return $m(n,a);let r={a:n,b:a},s={};return O.runKernel(Ni,r,s)}var he=L({div_:bM});function xM(e,t){let n=_(e,"a","mul"),a=_(t,"b","mul");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(Ui,r)}var z=L({mul_:xM});function vM(e){let t=_(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return O.runKernel(oc,n)}else{let n={x:t};return O.runKernel(wl,n)}}var Lt=L({abs_:vM});function wM(e){let t={x:_(e,"x","acos")};return O.runKernel(kl,t)}var Bx=L({acos_:wM});function kM(e){let t={x:_(e,"x","acosh")};return O.runKernel(Il,t)}var Vx=L({acosh_:kM});function IM(e){A(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),A(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);let t=e.map((r,s)=>_(r,`tensors${s}`,"addN")),n=t[0];t.forEach(r=>{if(r.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(r=>{if(!ps(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return O.runKernel(mi,a)}var CS=L({addN_:IM});function SM(e,t=null,n=!1){let a={x:_(e,"x","all","bool")},r={axis:t,keepDims:n};return O.runKernel(Sl,a,r)}var Am=L({all_:SM});function TM(e,t=null,n=!1){let a={x:_(e,"x","any","bool")},r={axis:t,keepDims:n};return O.runKernel(Tl,a,r)}var qp=L({any_:TM});function NM(e,t=0){let n={x:_(e,"x","argMax")},a={axis:t};return O.runKernel(fi,n,a)}var ai=L({argMax_:NM});function CM(e,t=0){let n={x:_(e,"x","argMin")},a={axis:t};return O.runKernel(sc,n,a)}var Ux=L({argMin_:CM});function _M(e){let t={x:_(e,"x","asin")};return O.runKernel(Nl,t)}var Gx=L({asin_:_M});function EM(e){let t={x:_(e,"x","asinh")};return O.runKernel(Cl,t)}var Hx=L({asinh_:EM});function $M(e){let t={x:_(e,"x","atan")};return O.runKernel(_l,t)}var jx=L({atan_:$M});function AM(e,t){let n=_(e,"a","atan2"),a=_(t,"b","atan2");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel($l,r)}var qx=L({atan2_:AM});function FM(e){let t={x:_(e,"x","atanh")};return O.runKernel(El,t)}var Kx=L({atanh_:FM});function DM(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=$S(r);return Ec(e,o,n,s,a,null,null,l)}function _S(e,t,n,a,r,s,i="channelsLast"){let[o,l]=Ih(t),u;if(i==="channelsLast")u=[o,l,e[3],e[3]];else if(i==="channelsFirst")u=[o,l,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return Ec(e,u,n,a,r,s,!1,i)}function RM(e,t,n,a,r,s,i="NDHWC"){let[o,l,u]=Rb(t),p,d;if(i==="NDHWC")d="channelsLast",p=[o,l,u,e[4],e[4]];else if(i==="NCDHW")d="channelsFirst",p=[o,l,u,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return ES(e,p,n,a,r,!1,d,s)}function Ec(e,t,n,a,r,s,i=!1,o="channelsLast"){let[l,u,p,d]=[-1,-1,-1,-1];if(o==="channelsLast")[l,u,p,d]=e;else if(o==="channelsFirst")[l,d,u,p]=e;else throw new Error(`Unknown dataFormat ${o}`);let[c,h,,m]=t,[f,g]=Ih(n),[y,b]=Ih(a),x=Qo(c,y),w=Qo(h,b),{padInfo:I,outHeight:T,outWidth:C}=OM(r,u,p,f,g,x,w,s,o),E=i?m*d:m,$;return o==="channelsFirst"?$=[l,E,T,C]:o==="channelsLast"&&($=[l,T,C,E]),{batchSize:l,dataFormat:o,inHeight:u,inWidth:p,inChannels:d,outHeight:T,outWidth:C,outChannels:E,padInfo:I,strideHeight:f,strideWidth:g,filterHeight:c,filterWidth:h,effectiveFilterHeight:x,effectiveFilterWidth:w,dilationHeight:y,dilationWidth:b,inShape:e,outShape:$,filterShape:t}}function ES(e,t,n,a,r,s=!1,i="channelsLast",o){let[l,u,p,d,c]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[l,u,p,d,c]=e;else if(i==="channelsFirst")[l,c,u,p,d]=e;else throw new Error(`Unknown dataFormat ${i}`);let[h,m,f,,g]=t,[y,b,x]=Rb(n),[w,I,T]=Rb(a),C=Qo(h,w),E=Qo(m,I),$=Qo(f,T),{padInfo:R,outDepth:F,outHeight:S,outWidth:M}=LM(r,u,p,d,y,b,x,C,E,$,o),B=s?g*c:g,U;return i==="channelsFirst"?U=[l,B,F,S,M]:i==="channelsLast"&&(U=[l,F,S,M,B]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:p,inWidth:d,inChannels:c,outDepth:F,outHeight:S,outWidth:M,outChannels:B,padInfo:R,strideDepth:y,strideHeight:b,strideWidth:x,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:C,effectiveFilterHeight:E,effectiveFilterWidth:$,dilationDepth:w,dilationHeight:I,dilationWidth:T,inShape:e,outShape:U,filterShape:t}}function MM(e,t,n,a,r){a==null&&(a=Xx(e,t,n));let s=e[0],i=e[1],o=qs((s-t+2*a)/n+1,r),l=qs((i-t+2*a)/n+1,r);return[o,l]}function PM(e,t,n,a,r,s){r==null&&(r=Xx(e,t,a));let i=e[0],o=e[1],l=e[2],u=qs((i-t+2*r)/a+1,s),p=qs((o-t+2*r)/a+1,s),d=qs((l-t+2*r)/a+1,s);return[u,p,d,n]}function Xx(e,t,n,a=1){let r=Qo(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function Ih(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function Rb(e){return typeof e=="number"?[e,e,e]:e}function Qo(e,t){return t<=1?e:e+(e-1)*(t-1)}function OM(e,t,n,a,r,s,i,o,l){let u,p,d;if(typeof e=="number"){u={top:e,bottom:e,left:e,right:e,type:e===0?"VALID":"NUMBER"};let c=MM([t,n],s,a,e,o);p=c[0],d=c[1]}else if(e==="same"){p=Math.ceil(t/a),d=Math.ceil(n/r);let c=Math.max(0,(p-1)*a+s-t),h=Math.max(0,(d-1)*r+i-n),m=Math.floor(c/2),f=c-m,g=Math.floor(h/2),y=h-g;u={top:m,bottom:f,left:g,right:y,type:"SAME"}}else if(e==="valid")u={top:0,bottom:0,left:0,right:0,type:"VALID"},p=Math.ceil((t-s+1)/a),d=Math.ceil((n-i+1)/r);else if(typeof e=="object"){let c=l==="channelsLast"?e[1][0]:e[2][0],h=l==="channelsLast"?e[1][1]:e[2][1],m=l==="channelsLast"?e[2][0]:e[3][0],f=l==="channelsLast"?e[2][1]:e[3][1];u={top:c,bottom:h,left:m,right:f,type:c===0&&h===0&&m===0&&f===0?"VALID":"EXPLICIT"},p=qs((t-s+c+h)/a+1,o),d=qs((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outHeight:p,outWidth:d}}function LM(e,t,n,a,r,s,i,o,l,u,p){let d,c,h,m;if(typeof e=="number"){d={top:e,bottom:e,left:e,right:e,front:e,back:e,type:e===0?"VALID":"NUMBER"};let f=PM([t,n,a,1],o,1,r,e,p);c=f[0],h=f[1],m=f[2]}else if(e==="same"){c=Math.ceil(t/r),h=Math.ceil(n/s),m=Math.ceil(a/i);let f=(c-1)*r+o-t,g=(h-1)*s+l-n,y=(m-1)*i+u-a,b=Math.floor(f/2),x=f-b,w=Math.floor(g/2),I=g-w,T=Math.floor(y/2),C=y-T;d={top:w,bottom:I,left:T,right:C,front:b,back:x,type:"SAME"}}else if(e==="valid")d={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},c=Math.ceil((t-o+1)/r),h=Math.ceil((n-l+1)/s),m=Math.ceil((a-u+1)/i);else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:d,outDepth:c,outHeight:h,outWidth:m}}function qs(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 ns(e){let[t,n,a]=Ih(e);return t===1&&n===1&&a===1}function ur(e,t){return ns(e)||ns(t)}function $S(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function Tn(e,t,n){if(n!=null){if(typeof t=="string")throw Error(`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);if(typeof t=="number")A(tl(t),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);else if(typeof t=="object")t.forEach(a=>{a.forEach(r=>{A(tl(r),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${r}.`)})});else throw Error(`Error in ${e}: Unknown padding parameter: ${t}`)}}function zM(e,t){let n={x:_(e,"x","reshape","string_or_numeric")},a={shape:t};return O.runKernel(lu,n,a)}var W=L({reshape_:zM});function WM(e,t,n,a,r){let s=_(e,"x","avgPool","float32"),i=1;A(ur(n,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`);let o=s,l=!1;s.rank===3&&(l=!0,o=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(o.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${o.rank}.`),Tn("avgPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=O.runKernel(gi,u,p);return d=le(d,s.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var ga=L({avgPool_:WM});function BM(e,t,n,a,r,s="NDHWC"){let i=_(e,"x","avgPool3d","float32"),o=i,l=!1;i.rank===4&&(l=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Tn("avgPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=O.runKernel(ic,u,p);return d=le(d,o.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Yx=L({avgPool3d_:BM});function VM(e,t=0){A(e.length>=1,()=>"Pass at least one tensor to concat");let n=jp(e,"tensors","concat","string_or_numeric");if(n[0].dtype==="complex64"&&n.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor + with dtype ${s.dtype}. `)}),n.length===1)return rr(n[0]);let a=n,r={axis:t};return O.runKernel(Fl,a,r)}var Ze=L({concat_:VM});function UM(e){let t={x:_(e,"x","sigmoid","float32")};return O.runKernel(ao,t)}var da=L({sigmoid_:UM});function GM(e,t,n){let a=_(e,"x","slice","string_or_numeric");if(a.rank===0)throw new Error("Slicing scalar is not possible");let r={x:a},s={begin:t,size:n};return O.runKernel(du,r,s)}var Be=L({slice_:GM});function HM(e){let t={x:_(e,"x","tanh","float32")};return O.runKernel(po,t)}var ri=L({tanh_:HM});function jM(e,t,n,a,r,s){let i=_(e,"forgetBias","basicLSTMCell"),o=_(t,"lstmKernel","basicLSTMCell"),l=_(n,"lstmBias","basicLSTMCell"),u=_(a,"data","basicLSTMCell"),p=_(r,"c","basicLSTMCell"),d=_(s,"h","basicLSTMCell"),c=Ze([u,d],1),h=Fe(c,o),m=Y(h,l),f=m.shape[0],g=m.shape[1]/4,y=[f,g],b=Be(m,[0,0],y),x=Be(m,[0,g],y),w=Be(m,[0,g*2],y),I=Be(m,[0,g*3],y),T=Y(z(da(b),ri(x)),z(p,da(Y(i,w)))),C=z(ri(T),da(I));return[T,C]}var AS=L({basicLSTMCell_:jM});function qM(e,t,n){let a=_(e,"x","batchToSpaceND"),r=t.reduce((o,l)=>o*l);A(a.rank>=1+t.length,()=>`input rank is ${a.rank} but should be > than blockShape.length ${t.length}`),A(n.length===t.length,()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`),A(a.shape[0]%r===0,()=>`input tensor batch is ${a.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${r}`);let s={x:a},i={blockShape:t,crops:n};return O.runKernel(Al,s,i)}var $c=L({batchToSpaceND_:qM});function KM(e){let t;return e.rank===0||e.rank===1?t=W(e,[1,1,1,e.size]):e.rank===2?t=W(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function XM(e,t,n,a,r,s){s==null&&(s=.001);let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let p;a!=null&&(p=_(a,"offset","batchNorm")),A(o.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),A(p==null||o.rank===p.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),A(u==null||o.rank===u.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let d={x:KM(i),scale:u,offset:p,mean:o,variance:l},c={varianceEpsilon:s},h=O.runKernel(Ai,d,c);return W(h,i.shape)}var ys=L({batchNorm_:XM});function YM(e,t,n,a,r,s){let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let p;return a!=null&&(p=_(a,"offset","batchNorm")),A(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),A(o.rank===2||o.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`),A(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),u!=null&&A(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`),p!=null&&A(p.rank===2||p.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${p.rank}.`),ys(i,o,l,p,u,s)}var Zx=L({batchNorm2d_:YM});function ZM(e,t,n,a,r,s){let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let p;return a!=null&&(p=_(a,"offset","batchNorm")),A(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),A(o.rank===3||o.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`),A(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),u!=null&&A(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`),p!=null&&A(p.rank===3||p.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${p.rank}.`),ys(i,o,l,p,u,s)}var Jx=L({batchNorm3d_:ZM});function JM(e,t,n,a,r,s){let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let p;return a!=null&&(p=_(a,"offset","batchNorm")),A(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),A(o.rank===4||o.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`),A(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),u!=null&&A(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`),p!=null&&A(p.rank===4||p.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${p.rank}.`),ys(i,o,l,p,u,s)}var Qx=L({batchNorm4d_:JM});function QM(e,t,n){let a=_(e,"x","bincount"),r=_(t,"weights","bincount");A(a.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${a.dtype}`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(r.size===a.size||r.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${a.shape}, weights shape: ${r.shape}.`);let s={x:a,weights:r},i={size:n};return O.runKernel(Zh,s,i)}var ev=L({bincount_:QM});function eP(e,t){let n=_(e,"s0","broadcastArgs","int32"),a=_(t,"s1","broadcastArgs","int32");if(n.rank!==1)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${n.rank}`);if(a.rank!==1)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${a.rank}`);let r={s0:n,s1:a};return O.runKernel(Jh,r)}var FS=L({broadcastArgs_:eP});function tP(e,t){let n=_(e,"broadcastTo","x"),a=n.shape;if(t.some(l=>!(l>0)||l%1!==0))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengthn.rank){let l=n.shape.slice();for(;l.length=0;l--)if(r[l]===t[l])s[l]=1;else if(n.shape[l]!==1)throw new Error(`broadcastTo(): [${a}] cannot be broadcast to [${t}].`);if(s.map((l,u)=>l>1?u:-1).filter(l=>l>=0).length===0)return rr(n);let i={x:n},o={reps:s};return O.runKernel(hs,i,o)}var Ks=L({broadcastTo_:tP});function nP(e){let t={x:_(e,"x","ceil","float32")};return O.runKernel(xi,t)}var tv=L({ceil_:nP});function gn(e,t,n){let a={shape:e,value:t,dtype:n};return O.runKernel(pc,{},a)}function aP(e,t,n){let a=_(e,"x","clipByValue");if(A(t<=n,()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`),t===n)return gn(a.shape,t,a.dtype);let r={x:a},s={clipValueMin:t,clipValueMax:n};return O.runKernel(ds,r,s)}var en=L({clipByValue_:aP});function rP(e){return Ze(e,0)}var nv=L({concat1d_:rP});function sP(e,t){return Ze(e,t)}var av=L({concat2d_:sP});function iP(e,t){return Ze(e,t)}var rv=L({concat3d_:iP});function oP(e,t){return Ze(e,t)}var sv=L({concat4d_:oP});function lP(e,t,n,a,r="NHWC",s=[1,1],i){let o=_(e,"x","conv2d","float32"),l=_(t,"filter","conv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(u.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${u.rank}.`),A(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),Tn("conv2d",a,i);let d=r==="NHWC"?u.shape[3]:u.shape[1];A(d===l.shape[2],()=>`Error in conv2d: depth of input (${d}) must match input depth for filter ${l.shape[2]}.`),A(ur(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=O.runKernel(vi,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var At=L({conv2d_:lP});function uP(e,t,n,a,r="NWC",s=1,i){let o=_(e,"x","conv1d"),l=_(t,"filter","conv1d"),u=o,p=!1;o.rank===2&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1]])),A(u.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${u.rank}.`),A(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),Tn("conv1d",a,i),A(u.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${u.shape[2]}) must match input depth for filter ${l.shape[1]}.`),A(ur(n,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`),A(r==="NWC",()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`);let d=W(l,[1,l.shape[0],l.shape[1],l.shape[2]]),c=W(u,[u.shape[0],1,u.shape[1],u.shape[2]]),h=At(c,d,[1,n],a,"NHWC",[1,s],i);return p?W(h,[h.shape[2],h.shape[3]]):W(h,[h.shape[0],h.shape[2],h.shape[3]])}var Fm=L({conv1d_:uP});function pP(e,t,n,a,r,s="NHWC",i){A(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let o=e,l=t,u=!1;t.rank===3&&(u=!0,l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),A(o.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`),A(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),A(n.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`);let p=s==="NHWC"?o[3]:o[1],d=s==="NHWC"?l.shape[3]:l.shape[1];A(p===n.shape[2],()=>`Error in conv2dDerInput: depth of input (${p}) must match input depth for filter ${n.shape[2]}.`),A(d===n.shape[3],()=>`Error in conv2dDerInput: depth of output (${d}) must match output depth for filter ${n.shape[3]}.`),Tn("conv2dDerInput",r,i);let c={dy:l,filter:n},h={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,inputShape:o},m=O.runKernel(wi,c,h);return u?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var iv=L({conv2DBackpropInput_:pP});function cP(e,t,n,a,r,s){let i=_(e,"x","conv2dTranspose"),o=_(t,"filter","conv2dTranspose");return iv(n,i,o,a,r,"NHWC",s)}var Dm=L({conv2dTranspose_:cP});function dP(e,t,n,a,r="NDHWC",s=[1,1,1]){let i=_(e,"x","conv3d"),o=_(t,"filter","conv3d"),l=i,u=!1;i.rank===4&&(u=!0,l=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),A(o.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`),A(l.shape[4]===o.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`),A(ur(n,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),A(r==="NDHWC",()=>`Error in conv3d: got dataFormat of ${r} but only NDHWC is currently supported.`);let p={x:l,filter:o},d={strides:n,pad:a,dataFormat:r,dilations:s},c=O.runKernel(lc,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var ov=L({conv3d_:dP});function hP(e,t,n,a,r){A(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let s=e,i=t,o=!1;t.rank===4&&(o=!0,i=W(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,e[0],e[1],e[2],e[3]]);let l=s[4],u=i.shape[4];A(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),A(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),A(n.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`),A(l===n.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`),A(u===n.shape[4],()=>`Error in conv3dDerInput: depth of output (${u}) must match output depth for filter ${n.shape[4]}.`);let p={dy:i,filter:n},d={pad:r,strides:a,inputShape:s},c=O.runKernel(nm,p,d);return o?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var DS=L({conv3DBackpropInput_:hP});function mP(e,t,n,a,r){let s=_(e,"x","conv3dTranspose"),i=_(t,"filter","conv3dTranspose");return DS(n,s,i,a,r)}var lv=L({conv3dTranspose_:mP});function fP(e){let t={x:_(e,"x","cos","float32")};return O.runKernel(ki,t)}var Ac=L({cos_:fP});function gP(e){let t={x:_(e,"x","cosh","float32")};return O.runKernel(Ii,t)}var Rm=L({cosh_:gP});function yP(e,t=0,n=!1,a=!1){let r={x:_(e,"x","cumprod")},s={axis:t,exclusive:n,reverse:a};return O.runKernel(Dl,r,s)}var Kp=L({cumprod_:yP});function bP(e,t=0,n=!1,a=!1){let r={x:_(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return O.runKernel(Si,r,s)}var Mm=L({cumsum_:bP});function xP(e,t,n,a=!1){let r=_(e,"x","denseBincount"),s=_(t,"weights","denseBincount");A(r.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`),A(r.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(s.size===r.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${r.shape}, weights shape: ${s.shape}.`);let i={x:r,weights:s},o={size:n,binaryOutput:a};return O.runKernel(am,i,o)}var Sh=L({denseBincount_:xP});function vP(e,t,n="NHWC"){let a=_(e,"x","depthToSpace","float32"),r=n==="NHWC"?a.shape[1]:a.shape[2],s=n==="NHWC"?a.shape[2]:a.shape[3],i=n==="NHWC"?a.shape[3]:a.shape[1];A(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),A(r*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${r} and ${t} for depthToSpace with input shape - ${a.shape}`),$(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying + ${a.shape}`),A(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${s} and ${t} for depthToSpace with input shape - ${a.shape}`),$(i%(t*t)===0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${a.shape}`);let o={x:a},l={blockSize:t,dataFormat:n};return O.runKernel(Ml,o,l)}var uv=L({depthToSpace_:vP});function wP(e,t,n,a,r="NHWC",s=[1,1],i){let o=_(e,"x","depthwiseConv2d","float32"),l=_(t,"filter","depthwiseConv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),$(u.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${u.rank}.`),$(l.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`);let d=r==="NHWC"?u.shape[3]:u.shape[1];$(d===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${d}) must match the inChannels dimension in filter ${l.shape[2]}.`),Tn("depthwiseConv2d",a,i);let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=O.runKernel(Ti,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var bs=L({depthwiseConv2d_:wP});function kP(e){let t={x:_(e,"x","diag")};return O.runKernel(im,t)}var RS=L({diag_:kP});function IP(e,t,n,a,r=[1,1],s="NHWC"){let i=_(e,"x","dilation2d"),o=_(t,"filter","dilation2d");$(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),$(o.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`),$(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=i,u=!1;i.rank===3&&(l=W(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=!0);let p={x:l,filter:o},d={strides:n,pad:a,dilations:r},c=O.runKernel(uc,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var pv=L({dilation2d_:IP});function SP(e,t){let n=_(e,"a","equal","string_or_numeric"),a=_(t,"b","equal","string_or_numeric");[n,a]=_t(n,a),lt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Ol,r)}var Qn=L({equal_:SP});function TP(e,t,n){let a=_(t,"a","where"),r=_(n,"b","where"),s=_(e,"condition","where","bool"),i=lt(lt(s.shape,a.shape),r.shape),o=Ks(s,i),l=Ks(a,i),u=Ks(r,i),p={condition:o,t:l,e:u};return O.runKernel(pu,p)}var mn=L({where_:TP});function NP(e){let t={x:_(e,"x","zerosLike")};return O.runKernel(Iu,t)}var qe=L({zerosLike_:NP});function CP(e,t){let n=_(e,"a","div"),a=_(t,"b","div");[n,a]=_t(n,a);let r=he(n,a),s=qe(r),i=Qn(a,s);return mn(i,s,r)}var cv=L({divNoNan_:CP});function _P(e,t){let n=_(e,"t1","dot"),a=_(t,"t2","dot");$((n.rank===1||n.rank===2)&&(a.rank===1||a.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${n.rank} and ${a.rank}.`);let r=n.rank===1?n.size:n.shape[1],s=a.rank===1?a.size:a.shape[0];if($(r===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${s}.`),n.rank===1&&a.rank===1){let i=W(n,[1,-1]),o=W(a,[-1,1]),l=Fe(i,o);return W(l,[])}else if(n.rank===1&&a.rank===2){let i=W(n,[1,-1]),o=W(a,[a.shape[0],a.shape[1]]),l=Fe(i,o);return W(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=W(a,[-1,1]),o=Fe(n,i);return W(o,[o.size])}else{let i=W(a,[a.shape[0],a.shape[1]]);return Fe(n,i)}}var dv=L({dot_:_P});function EP(e,...t){let n=t.map((r,s)=>_(r,`tensors${s}`,"einsum")),a={equation:e};return O.runKernel(om,n,a)}var MS=L({einsum_:EP});function AP(e){let t={x:_(e,"x","elu","float32")};return O.runKernel(Ci,t)}var Nu=L({elu_:AP});function $P(e){let t=_(e,"x","erf");$(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=oe(t,"float32"));let n={x:t};return O.runKernel(Pl,n)}var hv=L({erf_:$P});function mv(e,t){for(let n=0;ne[s]);return[n,r]}function si(e,t){let n=t.map(a=>1);return PS(e,n,t)}function FP(e,t,n){$(mv(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function LS(e,t){if(mv(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function fv(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function DP(e,t){let n=[];for(let a=t-e;a"Axis must be <= rank of the tensor");let a={input:n},r={dim:t};return O.runKernel(Ll,a,r)}var Zt=L({expandDims_:UP});function GP(e){let t={x:_(e,"x","expm1")};return O.runKernel(zl,t)}var yv=L({expm1_:GP});function HP(e,t){let n=_(e,"x","tile","string_or_numeric");$(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`);let a={x:n},r={reps:t};return O.runKernel(hs,a,r)}var Ln=L({tile_:HP});function jP(e,t,n,a="float32"){t==null&&(t=e);let r=Pe([e,t],a),s=e<=t?e:t;for(let o=0;o`Error in localResponseNormalization: x must be rank 3 or 4 but got - rank ${s.rank}.`),$(tl(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,o=!1;s.rank===3&&(o=!0,i=W(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let l={x:i},u={depthRadius:t,bias:n,alpha:a,beta:r},p=O.runKernel(cc,l,u);return o?W(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var wv=L({localResponseNormalization_:aO});function rO(e){let t={x:_(e,"x","log","float32")};return O.runKernel(Mi,t)}var ea=L({log_:rO});function sO(e){let t={x:_(e,"x","log1p")};return O.runKernel(Xl,t)}var Dc=L({log1p_:sO});function iO(e){return $(es(e),()=>"The f passed in grad(f) must be a function"),(t,n)=>{let a=_(t,"x","tf.grad","string_or_numeric"),r=n!=null?_(n,"dy","tf.grad"):null;return O.tidy(()=>{let{value:s,grads:i}=O.gradients(()=>e(a),[a],r);return r!=null&&Sn(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Lm(i),i[0]})}}function oO(e){return $(es(e),()=>"The f passed in grads(f) must be a function"),(t,n)=>{$(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let a=jp(t,"args","tf.grads","string_or_numeric"),r=n!=null?_(n,"dy","tf.grads"):null;return O.tidy(()=>{let{value:s,grads:i}=O.gradients(()=>e(...a),a,r);return r!=null&&Sn(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Lm(i),i})}}function lO(e){return $(es(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{$(t instanceof Te,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),$(n==null||n instanceof Te,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:a,value:r}=O.gradients(()=>e(t),[t],n);return Lm(a),{grad:a[0],value:r}}}function uO(e){return $(es(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{$(Array.isArray(t)&&t.every(r=>r instanceof Te),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),$(n==null||n instanceof Te,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let a=O.gradients(()=>e(...t),t,n);return n!=null&&Sn(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Lm(a.grads),a}}function BS(e,t){$(es(e),()=>"The f passed in variableGrads(f) must be a function"),$(t==null||Array.isArray(t)&&t.every(u=>u instanceof ts),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let n=t!=null;if(!n){t=[];for(let u in O.registeredVariables)t.push(O.registeredVariables[u])}let a=n?t.filter(u=>!u.trainable):null,r=t.length;t=t.filter(u=>u.trainable),$(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${r} variables is trainable.`);let s=!0,{value:i,grads:o}=O.gradients(e,t,null,s);$(o.some(u=>u!=null),()=>"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()."),$(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let l={};return t.forEach((u,p)=>{o[p]!=null&&(l[u.name]=o[p])}),a!=null&&a.forEach(u=>l[u.name]=null),{value:i,grads:l}}function or(e){return O.customGrad(e)}function Lm(e){if(e.filter(t=>t==null).length>0)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.`)}function pO(e){let t={x:_(e,"x","softplus")};return O.runKernel(fu,t)}var ho=L({softplus_:pO});function cO(e){let t=_(e,"x","logSigmoid");return or(n=>({value:bt(ho(bt(n))),gradFunc:a=>z(a,da(bt(n)))}))(t)}var kv=L({logSigmoid_:cO});function dO(e,t){let n=_(e,"a","sub"),a=_(t,"b","sub");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(lo,r)}var pe=L({sub_:dO});function hO(e,t=-1){let n=_(e,"logits","logSoftmax");if(t===-1&&(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 or((a,r)=>{let s=ha(a,t,!0),i=pe(a,s),o=pe(oe(i,"float32"),ea(fe(fn(i),t,!0)));return r([o]),{value:o,gradFunc:(l,u)=>{let[p]=u,d=!0,c=fn(p);return pe(l,z(fe(l,t,d),c))}}})(n)}var zm=L({logSoftmax_:hO});function mO(e,t=null,n=!1){let a=_(e,"x","logSumExp"),r=Aa(t,a.shape),s=ha(a,r,!0),i=pe(a,s),o=fn(i),l=fe(o,r),u=ea(l),p=Y(W(s,u.shape),u);if(n){let d=si(p.shape,r);return W(p,d)}return p}var Wm=L({logSumExp_:mO});function fO(e,t){let n=_(e,"a","logicalAnd","bool"),a=_(t,"b","logicalAnd","bool");lt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Yl,r)}var Ea=L({logicalAnd_:fO});function gO(e){let t={x:_(e,"x","logicalNot","bool")};return O.runKernel(Zl,t)}var Rc=L({logicalNot_:gO});function yO(e,t){let n=_(e,"a","logicalOr","bool"),a=_(t,"b","logicalOr","bool");lt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Jl,r)}var Bm=L({logicalOr_:yO});function bO(e,t){let n=_(e,"a","logicalXor","bool"),a=_(t,"b","logicalXor","bool");return lt(n.shape,a.shape),Ea(Bm(e,t),Rc(Ea(e,t)))}var Iv=L({logicalXor_:bO}),Hd=2147483648;function xO(e,t,n="left"){let a=_(e,"sortedSequence","searchSorted"),r=_(t,"values","searchSorted"),s=a.shape[a.shape.length-1],i=r.shape[r.shape.length-1],o=W(a,[-1,s]),l=W(r,[-1,i]);if(o.rank<2)throw new Error("Sorted input argument must be at least 2-dimensional");if(o.shape[0]!==l.shape[0])throw new Error("Leading dimension of 'sortedSequence' and 'values' must match.");if(mt(l.shape)>=Hd)throw new Error(`values tensor size must less than ${Hd}`);if(o.shape[1]>=Hd)throw new Error(`trailing dim_size must less than ${Hd} for int32 output type, was ${o.shape[1]}`);let u={sortedSequence:o,values:l},p={side:n};return O.runKernel(Sm,u,p)}var Vm=L({searchSorted_:xO});function VS(e,t){return Vm(e,t,"left")}function vO(e,t,n,a,r){let s=_(e,"x","maxPool"),i=1,o=s,l=!1;s.rank===3&&(l=!0,o=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),$(o.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${o.rank}.`),$(ur(n,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),Tn("maxPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=O.runKernel(Li,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Dt=L({maxPool_:vO});function wO(e,t=[1,1,1],n,a,r,s="NDHWC"){let i=_(e,"x","maxPool3d"),o=i,l=!1;i.rank===4&&(l=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),$(o.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`),$(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Tn("maxPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=O.runKernel(dc,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Sv=L({maxPool3d_:wO});function kO(e,t,n,a,r=!1){let s={x:_(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=O.runKernel(gm,s,i);return{result:o[0],indexes:o[1]}}var US=L({maxPoolWithArgmax_:kO});function IO(e,t){let n=_(e,"a","maximum"),a=_(t,"b","maximum");[n,a]=_t(n,a),n.dtype==="bool"&&(n=oe(n,"int32"),a=oe(a,"int32")),lt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Oi,r)}var pr=L({maximum_:IO});function SO(e,t=null,n=!1){let a={x:_(e,"x","mean")},r={axis:t,keepDims:n};return O.runKernel(zi,a,r)}var Nt=L({mean_:SO});function It(e,t="float32"){if(t==="complex64"){let a=It(e,"float32"),r=It(e,"float32");return Cr(a,r)}let n=Kh(mt(e),t);return O.makeTensor(n,e,t)}function Zn(e,t="float32"){if(t==="complex64"){let a=Zn(e,"float32"),r=It(e,"float32");return Cr(a,r)}let n=vx(mt(e),t);return O.makeTensor(n,e,t)}function GS(e,t,{indexing:n="xy"}={}){if(n!=="xy"&&n!=="ij")throw new TypeError(`${n} is not a valid third argument to meshgrid`);if(e===void 0)return[];let a=_(e,"x","meshgrid",e instanceof Te?e.dtype:"float32");if(t===void 0)return[a];let r=_(t,"y","meshgrid",t instanceof Te?t.dtype:"float32"),s=mt(a.shape),i=mt(r.shape);return n==="xy"?(a=W(a,[1,-1]),r=W(r,[-1,1]),[Fe(Zn([i,1],a.dtype),a),Fe(r,Zn([1,s],r.dtype))]):(a=W(a,[-1,1]),r=W(r,[1,-1]),[Fe(a,Zn([1,i],a.dtype)),Fe(Zn([s,1],r.dtype),r)])}function TO(e,t){let n=_(e,"a","minimum"),a=_(t,"b","minimum");[n,a]=_t(n,a),n.dtype==="bool"&&(n=oe(n,"int32"),a=oe(a,"int32")),lt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Bi,r)}var Au=L({minimum_:TO});function NO(e,t,n){$(n==="reflect"||n==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`);let a=_(e,"x","mirrorPad");if(a.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");$(t.length===a.rank,()=>`Padding doesn't match input. Must be ${a.rank}. Got ${t.length}.`);let r=n==="reflect"?1:0;for(let o=0;o"Invalid number of paddings. Must be length of 2 each."),$(t[o][0]>=0&&t[o][0]<=a.shape[o]-r&&t[o][1]>=0&&t[o][1]<=a.shape[o]-r,()=>`Padding in dimension ${o} cannot be greater than or equal to ${a.shape[o]-r} or less than 0 for input of shape ${a.shape}`);let s={paddings:t,mode:n},i={x:a};return O.runKernel(Vi,i,s)}var Tv=L({mirrorPad_:NO});function CO(e,t){let n=_(e,"a","mod"),a=_(t,"b","mod");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(Ql,r)}var Nv=L({mod_:CO});function _O(e,t=null,n=!1){e=_(e,"x","moments");let a=Aa(t,e.shape),r=Nt(e,a,n),s=r.shape;n||(s=si(r.shape,a));let i=ot(pe(oe(e,"float32"),W(r,s))),o=Nt(i,a,n);return{mean:r,variance:o}}var Mc=L({moments_:_O});function EO(e,t,n,a){let r=_(t,"data","multiRNNCell"),s=jp(n,"c","multiRNNCell"),i=jp(a,"h","multiRNNCell"),o=r,l=[];for(let d=0;d2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);n=n||Math.random();let o={logits:i===1?W(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:a},u=O.runKernel(ym,o,l);return i===1?W(u,[u.size]):u}var jS=L({multinomial_:AO});function $O(e,t){let n=_(e,"a","notEqual","string_or_numeric"),a=_(t,"b","notEqual","string_or_numeric");[n,a]=_t(n,a),lt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(tu,r)}var ii=L({notEqual_:$O});function FO(e){let t={x:_(e,"x","onesLike")};return O.runKernel(su,t)}var ta=L({onesLike_:FO});function DO(e,t){let n=_(e,"v1","outerProduct"),a=_(t,"v2","outerProduct");$(n.rank===1&&a.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${a.rank}.`);let r=W(n,[-1,1]),s=W(a,[1,-1]);return Fe(r,s)}var qS=L({outerProduct_:DO});function RO(e,t,n=0){let a=_(e,"x","pad");if(a.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let r={paddings:t,constantValue:n},s={x:a};return O.runKernel(Hi,s,r)}var ya=L({pad_:RO});function MO(e,t,n=0){return $(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),ya(e,[t],n)}var KS=L({pad1d_:MO});function PO(e,t,n=0){return $(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ya(e,t,n)}var XS=L({pad2d_:PO});function OO(e,t,n=0){return $(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ya(e,t,n)}var YS=L({pad3d_:OO});function LO(e,t,n=0){return $(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ya(e,t,n)}var ZS=L({pad4d_:LO});function zO(e,t,n){let a=_(e,"x","spaceToBatchND");$(a.rank>=1+t.length,()=>`input rank ${a.rank} should be > than [blockShape] ${t.length}`),$(n.length===t.length,()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`),$(a.shape.reduce((i,o,l)=>l>0&&l<=t.length?i&&(o+n[l-1][0]+n[l-1][1])%t[l-1]===0:i,!0),()=>`input spatial dimensions ${a.shape.slice(1)} with paddings ${n.toString()} must be divisible by blockShapes ${t.toString()}`);let r={x:a},s={blockShape:t,paddings:n};return O.runKernel(gu,r,s)}var Pc=L({spaceToBatchND_:zO});function WO(e,t,n,a,r,s,i){r==null&&(r=[1,1]),s==null&&(s=1),a===0&&(a="valid");let o=_(e,"x","maxPool"),l=o,u=!1;o.rank===3&&(u=!0,l=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),$(ur(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let p=_S(l.shape,t,s,r,a),d=[p.dilationHeight,p.dilationWidth],c;a==="same"?c=VO([p.filterHeight,p.filterWidth],d):c=[[0,0],[0,0]];let h=d[0]===1&&d[1]===1,[m,f]=BO([p.inHeight,p.inWidth],d,c),g=h?a:"valid",y=h?l:Pc(l,d,m),b=(n==="avg"?()=>ga(y,t,s,g,i):()=>Dt(y,t,s,g,i))(),x=h?b:Ac(b,d,f);return u?W(x,[x.shape[1],x.shape[2],x.shape[3]]):x}function BO(e,t,n){let a=n.map(p=>p[0]),r=n.map(p=>p[1]),s=e.concat(a,r),i=t.map((p,d)=>(p-s[d]%p)%p),o=r.map((p,d)=>p+i[d]),l=t.map((p,d)=>[a[d],o[d]]),u=t.map((p,d)=>[0,i[d]]);return[l,u]}function VO(e,t){let n=e.map((s,i)=>s+(s-1)*(t[i]-1)).map(s=>s-1),a=n.map(s=>Math.floor(s/2)),r=n.map((s,i)=>s-a[i]);return n.map((s,i)=>[a[i],r[i]])}var Cv=L({pool_:WO});function UO(e,t){let n=_(e,"x","prelu"),a=_(t,"alpha","prelu"),r={x:n,alpha:a};return O.runKernel(qi,r)}var Oc=L({prelu_:UO});function GO(e,t=null,n=!1){let a=_(e,"x","prod");a.dtype==="bool"&&(a=oe(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return O.runKernel(Ki,r,s)}var _v=L({prod_:GO});function HO(e,t,n,a){let r=e.map((p,d)=>_(p,`tensors${d}`,"raggedGather","int32")),s=_(t,"paramsDenseValues","raggedGather"),i=_(n,"indices","raggedGather","int32"),o={paramsNestedSplits:r,paramsDenseValues:s,indices:i},l={outputRaggedRank:a},u=O.runKernel(bm,o,l);return{outputNestedSplits:u.slice(0,u.length-1),outputDenseValues:u[u.length-1]}}var JS=L({raggedGather_:HO});function jO(e,t,n){let a=_(e,"starts","raggedRange"),r=_(t,"limits","raggedRange",a.dtype),s=_(n,"deltas","raggedRange",a.dtype),i={starts:a,limits:r,deltas:s},o=O.runKernel(xm,i);return{rtNestedSplits:o[0],rtDenseValues:o[1]}}var QS=L({raggedRange_:jO});function qO(e,t,n,a,r){let s=_(e,"shape","raggedTensorToTensor","int32"),i=_(t,"values","raggedTensorToTensor"),o=_(n,"defaultValue","raggedTensorToTensor",i.dtype),l=a.map((d,c)=>_(d,`tensors${c}`,"raggedTensorToTensor","int32")),u={shape:s,values:i,defaultValue:o,rowPartitionTensors:l},p={rowPartitionTypes:r};return O.runKernel(vm,u,p)}var eT=L({raggedTensorToTensor_:qO});function KO(e,t,n){let a=mt(e),r=null;if(n==null||n==="float32")r=new Float32Array(a);else if(n==="int32")r=new Int32Array(a);else if(n==="bool")r=new Uint8Array(a);else throw new Error(`Unknown data type ${n}`);for(let s=0;s=1||s===0);let i=Math.sqrt(-2*Math.log(s)/s);e=this.mean+this.stdDev*a*i,t=this.mean+this.stdDev*r*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 this.dtype==null||this.dtype==="float32"?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}},XO=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=Ev.alea(r.toString()),this.randn=new Av(0,1,n,!1,this.randu()),e<1?this.d=e+2/3:this.d=e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,n,a,r,s;for(;;){do a=this.randn.nextValue(),s=1+this.c*a;while(s<=0);if(s*=s*s,e=a*a,t=1-.331*e*e,n=.5*e+this.d*(1-s+Math.log(s)),r=this.randu(),rthis.dtype==null||this.dtype==="float32",this.min=e,this.range=t-e,this.dtype=n,a==null&&(a=Math.random()),typeof a=="number"&&(a=a.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=Ev.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function ZO(e,t,n=1,a="float32",r){if(n==null&&(n=1),a==null&&(a="float32"),a!=="float32"&&a!=="int32")throw new Error(`Unsupported data type ${a}`);let s=new XO(t,n,a,r),i=Pe(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),fa(t,0)}var rT=L({reverse1d_:s3});function i3(e,t){let n=_(e,"x","reverse");return $(n.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`),fa(n,t)}var sT=L({reverse2d_:i3});function o3(e,t){let n=_(e,"x","reverse");return $(n.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`),fa(n,t)}var iT=L({reverse3d_:o3});function l3(e,t){let n=_(e,"x","reverse");return $(n.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`),fa(n,t)}var oT=L({reverse4d_:l3});function u3(e){let t={x:_(e,"x","round")};return O.runKernel(eo,t)}var Hm=L({round_:u3});function p3(e){let t={x:_(e,"x","rsqrt","float32")};return O.runKernel(to,t)}var jm=L({rsqrt_:p3});function c3(e){let t={x:_(e,"x","selu")};return O.runKernel(cu,t)}var qm=L({selu_:c3});function d3(e,t,n,a,r,s=[1,1],i="NHWC"){let o=_(e,"x","separableConv2d"),l=_(t,"depthwiseFilter","separableConv2d"),u=_(n,"pointwiseFilter","separableConv2d"),p=o,d=!1;if(o.rank===3&&(d=!0,p=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),i==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");$(p.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${p.rank}.`),$(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),$(u.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),$(u.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${u.shape[0]}.`),$(u.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${u.shape[1]}.`);let c=l.shape[2],h=l.shape[3];$(u.shape[2]===c*h,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${c*h}, but got ${u.shape[2]}.`);let m=bs(p,l,a,r,i,s),f=$t(m,u,1,"valid",i);return d?W(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var vs=L({separableConv2d_:d3});async function h3(e,t){let n=_(e,"x","setdiff1d"),a=_(t,"y","setdiff1d");$(n.dtype===a.dtype,()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${a.dtype}).`),$(n.rank===1,()=>`x should be 1D tensor, but got x (${n.shape}).`),$(a.rank===1,()=>`y should be 1D tensor, but got y (${a.shape}).`);let r=await n.data(),s=await a.data(),i=new Set(s),o=0;for(let p=0;p`slice1d expects a rank-1 tensor, but got a rank-${a.rank} tensor`),Be(a,[t],[n])}var Lc=L({slice1d_:y3});function b3(e,t,n){let a=_(e,"x","slice2d");return $(a.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var Ym=L({slice2d_:b3});function x3(e,t,n){let a=_(e,"x","slice3d");return $(a.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var mo=L({slice3d_:x3});function v3(e,t,n){let a=_(e,"x","slice4d");return $(a.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var ll=L({slice4d_:v3});function w3(e,t=-1){let n=_(e,"logits","softmax","float32");if(t===-1&&(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}`);let a={logits:n},r={dim:t};return O.runKernel(io,a,r)}var Ka=L({softmax_:w3});function k3(e){$(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);let t={input:e};return O.runKernel(um,t)}var zc=L({fft_:k3});function I3(e){$(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);let t={input:e};return O.runKernel(pm,t)}var ul=L({ifft_:I3});function S3(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=W(e,[n,t]);a=ul(r)}else{let r=[n,2*(t-1)],s=W(sl(e),[n,t]),i=W(Cc(e),[n,t]),o=fa(Be(s,[0,1],[n,t-2]),1),l=z(fa(Be(i,[0,1],[n,t-2]),1),be(-1)),u=Ze([s,o],1),p=Ze([i,l],1),d=W(Cr(u,p),[r[0],r[1]]);a=ul(d)}if(a=sl(a),e.rank===3&&e.shape[0]!==0){let r=a,s=e.shape[0];a=W(a,[s,a.shape[0]/s,a.shape[1]]),r.dispose()}return a}var Zm=L({irfft_:S3});function T3(e,t,n=0){let a={x:_(e,"x","split")},r={numOrSizeSplits:t,axis:n};return O.runKernel(yu,a,r)}var zn=L({split_:T3});function N3(e,t){$(e.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${e.dtype}`);let n=e.shape[e.shape.length-1],a=e.size/n,r;if(t!=null&&t0),f=e.shape.map(g=>g);f[e.shape.length-1]=t,r=Be(e,m,f),n=t}else if(t!=null&&t>n){let m=e.shape.map(f=>f);m[e.shape.length-1]=t-n,r=Ze([e,It(m)],e.shape.length-1),n=t}else r=e;let s=qe(r),i=W(Cr(r,s),[a,n]),o=zc(i),l=Math.floor(n/2)+1,u=sl(o),p=Cc(o),d=zn(u,[l,n-l],u.shape.length-1),c=zn(p,[l,n-l],p.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=l,W(Cr(d[0],c[0]),h)}var Wc=L({rfft_:N3});function C3(e,t){let n=_(e,"a","squaredDifference"),a=_(t,"b","squaredDifference");[n,a]=_t(n,a),lt(n.shape,a.shape);let r={a:n,b:a},s={};return O.runKernel(oo,r,s)}var Jm=L({squaredDifference_:C3});function _3(e,t){let n=_(e,"x","squeeze","string_or_numeric");return W(n,II(n.shape,t).newShape)}var ws=L({squeeze_:_3});function E3(e,t=0){let n=jp(e,"tensors","stack","string_or_numeric");$(n.length>=1,()=>"Pass at least one tensor to tf.stack"),n.length>0&&$(t<=n[0].rank,()=>"Axis must be <= rank of the tensor");let a=n,r={axis:t};return O.runKernel(iu,a,r)}var Ft=L({stack_:E3});function A3(e,t=0){let n={x:_(e,"x","step")},a={alpha:t};return O.runKernel(ms,n,a)}var fo=L({step_:A3});function $3(e,t,n,a,r=0,s=0,i=0,o=0,l=0){let u={x:_(e,"x","stridedSlice","string_or_numeric")},p={begin:t,end:n,strides:a,beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return O.runKernel(xu,u,p)}var Dv=L({stridedSlice_:$3});function F3(e){let t={x:_(e,"x","tan","float32")};return O.runKernel(uo,t)}var Rv=L({tan_:F3});function Ke(e,t){hi(e);let n=ir(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return fs(e,null,n,t)}function _a(e,t,n){if(hi(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let a=ir(e,n);if(a.length!==2&&a.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return fs(e,t,a,n)}function $a(e,t,n){if(hi(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let a=ir(e,n);if(a.length!==4&&a.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return fs(e,t,a,n)}function uT(e,t,n){if(hi(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let a=ir(e,n);if(a.length!==5&&a.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return fs(e,t,a,n)}function pT(e,t,n){if(hi(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let a=ir(e,n);if(a.length!==6&&a.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||a,fs(e,t,a,n)}function D3(e,t=1,n=!0){let a=_(e,"x","topk");if(a.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let r=a.shape[a.shape.length-1];if(t<0)throw new Error(`'k' passed to topk() must be >= 0 but got ${t}`);if(t>r)throw new Error(`'k' passed to topk() must be <= the last dimension (${r}) but got ${t}`);let s={x:a},i={k:t,sorted:n},[o,l]=O.runKernel(vu,s,i);return{values:o,indices:l}}var Mv=L({topk_:D3});function R3(e,t=0,n=1,a,r){if(a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new Av(t,n,a,!0,r),i=Pe(e,a);for(let o=0;o0,()=>"The input tensor must be at least 1D");let a={x:n},r={axis:t},[s,i]=O.runKernel(Nm,a,r);return{values:s,indices:i}}var Pv=L({unique_:M3});function P3(e,t,n){let a=_(e,"x","unsortedSegmentSum"),r=_(t,"segmentIds","unsortedSegmentSum","int32");$(tl(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return O.runKernel(wc,s,i)}var ef=L({unsortedSegmentSum_:P3});function O3(e,t=0){let n=_(e,"x","unstack","string_or_numeric");$(t>=-n.shape.length&&t`Axis = ${t} is not in [-${n.shape.length}, ${n.shape.length})`);let a={value:n},r={axis:t};return O.runKernel(ku,a,r)}var ct=L({unstack_:O3});function cT(e,t){return Vm(e,t,"right")}function Ov(e,t=!0,n,a){return O.makeVariable(e,t,n,a)}function dT(e,t){let n=[];for(let s=0;s0,()=>"mask cannot be scalar"),Sn(o.slice(s,s+i),r.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let f=s;f"Shape mismatch in v and x");let l=be(1),u=pe(l,o),p=z(pe(i,s),u);if(r){$(a!=null,()=>"When using zeroDebias: true, step is required.");let d=_(a,"step","movingAverage");p=he(p,pe(l,_r(o,d)))}return Y(s,p)}var mT=L({movingAverage_:W3});function B3(e,t,n){let a=_(e,"indices","scatterND","int32"),r=_(t,"updates","scatterND");Lx(r,a,n);let s={indices:a,updates:r},i={shape:n};return O.runKernel(uu,s,i)}var fT=L({scatterND_:B3});function V3(e,t,n,a){if(e.dtype!=="int32")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}.`);let r=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}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===r))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${r}]`);if(t.dtype!==a.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function U3(e,t,n,a=0){let r=_(e,"sparseIndices","sparseToDense","int32"),s=_(t,"sparseValues","sparseToDense","string_or_numeric"),i=_(a,"defaultValue","sparseToDense",s.dtype);V3(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return O.runKernel(Tm,o,l)}var gT=L({sparseToDense_:U3});function G3(e,t){let n=_(t,"indices","gatherND","int32"),a={params:_(e,"x","gatherND","string_or_numeric"),indices:n};return O.runKernel(Vl,a)}var yT=L({gatherND_:G3});function H3(e,t){if(t==null)return e.shape.slice();if(ps(e.shape,t))return t;if(e.shape.length===t.length){let n=[];for(let a=0;a`x has to be a floating point tensor since it's going to be scaled, but got a ${r.dtype} tensor instead.`),$(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof Te?r.clone():r;let s=H3(r,n),i=1-t,o=he(_u(Y($u(s,0,1,"float32",a),i)),i);return z(r,o)}var zv=L({dropout_:j3});function Wv(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function tf(e,t,n){let a=1-e%2,r=new Float32Array(e);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${a.rank}`),$(a.rank-1===r.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${a.rank} and targets rank ${r.rank}`),Sn(a.shape.slice(0,a.shape.length-1),r.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=a.shape[a.shape.length-1];$(n>0&&n<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${n}`);let i=await a.data(),o=await r.data(),[l,u]=[i.length/s,s],p=SI("bool",l);for(let d=0;dg.value-f.value),p[d]=0;for(let f=0;fY3,depthwiseConv2d:()=>eL,matMul:()=>nL});function K3(e,t,n,a,r,s="NHWC",i){let o=e;e.rank===3&&(o=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]])),$(o.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`),$(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),$(n.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`);let u=s==="NHWC"?o.shape[3]:o.shape[1],p=s==="NHWC"?l.shape[3]:l.shape[1];$(u===n[2],()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${n[2]}.`),$(p===n[3],()=>`Error in conv2dDerFilter: depth of dy (${p}) must match output depth for filter (${n[3]}).`),Tn("conv2dDerFilter",r,i);let d={x:o,dy:l},c={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,filterShape:n};return O.runKernel(em,d,c)}var Bv=L({conv2DBackpropFilter_:K3});function nf(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return z(e,fo(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function af(e,t){let n=t,a=Wt(e.shape,t.shape);return a.length>0&&(n=fe(n,a)),W(n,e.shape)}function rf(e,t,n,a){if(t==="linear")return e;if(t==="relu")return Xe(e);if(t==="elu")return Nu(e);if(t==="relu6")return Gm(e);if(t==="prelu")return Oc(e,n);if(t==="leakyrelu")return Fc(e,a);if(t==="sigmoid")return da(e);throw new Error(`Unknown fused activation ${t}.`)}var sf=(e,t)=>!(e>0)||t==="linear";function X3({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:p}){if(l=l||"linear",sf(O.state.gradientDepth,l)===!1){$(r==="NHWC",()=>`Error in fused conv2d: got dataFormat of ${r} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let T=$t(e,t,n,a,r,s,i);return o!=null&&(T=Y(T,o)),rf(T,l,u,p)}let d=_(e,"x","conv2d","float32"),c=_(t,"filter","conv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=W(d,[1,d.shape[0],d.shape[1],d.shape[2]])),$(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),$(c.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${c.rank}.`),Tn("fused conv2d",a,i);let f=r==="NHWC"?h.shape[3]:h.shape[1];$(c.shape[2]===f,()=>`Error in conv2d: depth of input (${f}) must match input depth for filter ${c.shape[2]}.`),$(ur(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let g=Ec(h.shape,c.shape,n,s,a,i),y;o!=null&&(y=_(o,"bias","fused conv2d"),[y]=_t(y,d),r==="NHWC"?lt(g.outShape,y.shape):($(y.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${y.shape.length}.`),$(y.shape.length===0||y.shape[0]===g.outChannels||y.shape[0]===1,()=>`Error in fused conv2d: bias shape (${y.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let b;if(u!=null){let T=u.shape;if($(T.length<=1||T.length===3,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${T.length}.`),T.length===1)$(T[0]===1||T[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${T}) is not compatible with the number of output channels (${g.outChannels}).`);else if(T.length===3)try{lt(T,g.outShape)}catch(C){let E=`Error in fused conv2d: PReLU activation weights (${T}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error(E)}b=_(u,"prelu weights","fused conv2d")}let x=(T,C)=>{$(r==="NHWC",()=>`Error in gradient of fused conv2D: got dataFormat of ${r} but only NHWC is currently supported.`);let[E,A,R,F]=C,S=nf(T,R,l);$(ns(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let M=iv(A.shape,S,E,n,a),B=Bv(A,S,E.shape,n,a),U=[M,B];if(F!=null){let G=af(F,S);U.push(G)}return U},w={x:h,filter:c,bias:y,preluActivationWeights:b},I={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?or((T,C,E)=>{let A=O.runKernel(Qs,w,I);return E([C,T,A]),m&&(A=W(A,[A.shape[1],A.shape[2],A.shape[3]])),{value:A,gradFunc:x}})(h,c):or((T,C,E,A)=>{let R=O.runKernel(Qs,w,I);return A([C,T,R,E]),m&&(R=W(R,[R.shape[1],R.shape[2],R.shape[3]])),{value:R,gradFunc:x}})(h,c,y)}var Y3=L({fusedConv2d_:X3});function Z3(e,t,n,a,r,s=[1,1],i){let o=e;e.rank===3&&(o=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={x:o,dy:l},p={strides:a,pad:r,dimRoundingMode:i,dilations:s,filterShape:n};return O.runKernel(rm,u,p)}var xT=L({depthwiseConv2dNativeBackpropFilter_:Z3});function J3(e,t,n,a,r,s=[1,1],i){let o=t,l=!1;t.rank===3&&(l=!0,o=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={dy:o,filter:n},p={strides:a,pad:r,dimRoundingMode:i,dilations:s,inputShape:e},d=O.runKernel(sm,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var vT=L({depthwiseConv2dNativeBackpropInput_:J3});function Q3({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:p}){if(sf(O.state.gradientDepth,l)===!1){let I=bs(e,t,n,a,r,s,i);return o!=null&&(I=Y(I,o)),rf(I,l,u,p)}let d=_(e,"x","depthwiseConv2d","float32"),c=_(t,"filter","depthwiseConv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=W(d,[1,d.shape[0],d.shape[1],d.shape[2]])),$(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),$(c.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${c.rank}.`),$(h.shape[3]===c.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${h.shape[3]}) must match the inChannels dimension in filter ${c.shape[2]}.`),s==null&&(s=[1,1]),$(ur(n,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),Tn("fused depthwiseConv2d",a,i);let f=Ec(h.shape,c.shape,n,s,a,i,!0),g;o!=null&&(g=_(o,"bias","fused conv2d"),[g]=_t(g,d),lt(f.outShape,g.shape));let y;u!=null&&(y=_(u,"prelu weights","fused depthwiseConv2d"));let b=(I,T)=>{$(ns(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[C,E,A,R]=T,F=nf(I,A,l),S=vT(E.shape,F,C,n,a,s,i),M=xT(E,F,C.shape,n,a,s,i);if(R!=null){let B=af(g,F);return[S,M,B]}return[S,M]},x={x:h,filter:c,bias:g,preluActivationWeights:y},w={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?or((I,T,C)=>{let E=O.runKernel(ei,x,w);return C([T,I,E]),m&&(E=W(E,[E.shape[1],E.shape[2],E.shape[3]])),{value:E,gradFunc:b}})(h,c):or((I,T,C,E)=>{let A=O.runKernel(ei,x,w);return E([T,I,A,C]),m&&(A=W(A,[A.shape[1],A.shape[2],A.shape[3]])),{value:A,gradFunc:b}})(h,c,g)}var eL=L({fusedDepthwiseConv2d_:Q3});function tL({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o=.2}){if(sf(O.state.gradientDepth,s)===!1){let R=Fe(e,t,n,a);return r!=null&&(R=Y(R,r)),rf(R,s,i,o)}let l=_(e,"a","fused matMul"),u=_(t,"b","fused matMul");[l,u]=_t(l,u);let p=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=a?u.shape[u.rank-1]:u.shape[u.rank-2],c=n?l.shape[l.rank-1]:l.shape[l.rank-2],h=a?u.shape[u.rank-2]:u.shape[u.rank-1],m=l.shape.slice(0,-2),f=u.shape.slice(0,-2),g=mt(m),y=mt(f);$(p===d,()=>`Error in fused matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${l.shape} and ${u.shape} and transposeA=${n} and transposeB=${a} must match.`);let b=lt(l.shape.slice(0,-2),u.shape.slice(0,-2)).concat([c,h]),x=n?W(l,[g,p,c]):W(l,[g,c,p]),w=a?W(u,[y,h,d]):W(u,[y,d,h]),I;r!=null&&(I=_(r,"bias","fused matMul"),[I]=_t(I,l),lt(b,I.shape));let T;i!=null&&(T=_(i,"prelu weights","fused matMul"));let C=(R,F)=>{let[S,M,B,U]=F,G=nf(W(R,B.shape),B,s),q,K;if(!n&&!a?(q=Fe(G,M,!1,!0),K=Fe(S,G,!0,!1)):!n&&a?(q=Fe(G,M,!1,!1),K=Fe(G,S,!0,!1)):n&&!a?(q=Fe(M,G,!1,!0),K=Fe(S,G,!1,!1)):(q=Fe(M,G,!0,!0),K=Fe(G,S,!0,!0)),r!=null){let Z=af(U,G);return[q,K,Z]}else return[q,K]},E={a:x,b:w,bias:I,preluActivationWeights:T},A={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?or((R,F,S)=>{let M=O.runKernel(Js,E,A);return S([R,F,M]),{value:W(M,b),gradFunc:C}})(x,w):or((R,F,S,M)=>{let B=O.runKernel(Js,E,A);return M([R,F,B,S]),{value:W(B,b),gradFunc:C}})(x,w,I)}var nL=L({fusedMatMul_:tL});function aL(e){return tf(e,.54,.46)}var rL=L({hammingWindow_:aL});function sL(e){return tf(e,.5,.5)}var wT=L({hannWindow_:sL});function iL(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(Be(e,s,t)),s+=n;if(a)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),$(o.rank===2&&o.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${o.shape}.`),$(l.rank===1&&l.shape[0]===u,()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${o.shape}.`),$(a.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${a.length}.`),$(a[0]>=1&&a[1]>=1,()=>`cropSize must be atleast [1,1], but was ${a}`),$(r==="bilinear"||r==="nearest",()=>`method must be bilinear or nearest, but was ${r}`);let p={image:i,boxes:o,boxInd:l},d={method:r,extrapolationValue:s,cropSize:a};return O.runKernel(Rl,p,d)}var pL=L({cropAndResize_:uL});function cL(e){let t=_(e,"image","flipLeftRight","float32");$(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let n={image:t};return O.runKernel(Wl,n,{})}var dL=L({flipLeftRight_:cL});function hL(e){let t=_(e,"image","grayscaleToRGB"),n=t.rank-1,a=t.shape[n];$(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),$(a===1,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${a}.`);let r=new Array(t.rank);return r.fill(1,0,n),r[n]=3,Ln(t,r)}var mL=L({grayscaleToRGB_:hL});function fL(e,t,n=0,a=.5){let r=_(e,"image","rotateWithOffset","float32");$(r.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${r.rank}.`);let s={image:r},i={radians:t,fillValue:n,center:a};return O.runKernel(Su,s,i)}var gL=L({rotateWithOffset_:fL});function Fu(e,t,n,a,r,s){a==null&&(a=.5),r==null&&(r=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=e.shape[0];return n=Math.min(n,i),$(0<=a&&a<=1,()=>`iouThreshold must be in [0, 1], but was '${a}'`),$(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),$(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),$(t.rank===1,()=>"scores must be a 1D tensor"),$(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),$(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s}}function yL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppression","float32"),i=_(t,"scores","nonMaxSuppression","float32"),o=Fu(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l={maxOutputSize:n,iouThreshold:a,scoreThreshold:r};return O.runKernel(nu,{boxes:s,scores:i},l)}var bL=L({nonMaxSuppression_:yL});function xL(e,t,n){let a=vL(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function vL(e,t,n){return kL(e,t,n||wL)}function wL(e,t){return e>t?1:e>>1);let o=n(t,e[s]);o>0?a=s+1:(r=s,i=!o)}return i?a:-a-1}function IT(e,t,n,a,r){return Vv(e,t,n,a,r,0)}function ST(e,t,n,a,r,s){return Vv(e,t,n,a,r,0,!1,s,!0)}function TT(e,t,n,a,r,s){return Vv(e,t,n,a,r,s,!0)}function Vv(e,t,n,a,r,s,i=!1,o=!1,l=!1){let u=[];for(let g=0;gr&&u.push({score:t[g],boxIndex:g,suppressBeginIndex:0});u.sort(Z1);let p=s>0?-.5/s:0,d=[],c=[];for(;d.length0;){let g=u.pop(),{score:y,boxIndex:b,suppressBeginIndex:x}=g;if(y=x;--I){let T=IL(e,b,d[I]);if(T>=a){w=!0;break}if(g.score=g.score*SL(a,p,T),g.score<=r)break}g.suppressBeginIndex=d.length,w||(g.score===y?(d.push(b),c.push(g.score)):g.score>r&&xL(u,g,Z1))}let h=d.length,m=n-h;o&&m>0&&(d.push(...new Array(m).fill(0)),c.push(...new Array(m).fill(0)));let f={selectedIndices:d};return i&&(f.selectedScores=c),l&&(f.validOutputs=h),f}function IL(e,t,n){let a=e.subarray(t*4,t*4+4),r=e.subarray(n*4,n*4+4),s=Math.min(a[0],a[2]),i=Math.min(a[1],a[3]),o=Math.max(a[0],a[2]),l=Math.max(a[1],a[3]),u=Math.min(r[0],r[2]),p=Math.min(r[1],r[3]),d=Math.max(r[0],r[2]),c=Math.max(r[1],r[3]),h=(o-s)*(l-i),m=(d-u)*(c-p);if(h<=0||m<=0)return 0;let f=Math.max(s,u),g=Math.max(i,p),y=Math.min(o,d),b=Math.min(l,c),x=Math.max(y-f,0)*Math.max(b-g,0);return x/(h+m-x)}function SL(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function Z1(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function TL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppressionAsync"),i=_(t,"scores","nonMaxSuppressionAsync"),o=Fu(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l=await Promise.all([s.data(),i.data()]),u=l[0],p=l[1],{selectedIndices:d}=IT(u,p,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),Ke(d,"int32")}var NL=TL;function CL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=Fu(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let u={boxes:i,scores:o},p={maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s},d=O.runKernel(ru,u,p);return{selectedIndices:d[0],selectedScores:d[1]}}var _L=L({nonMaxSuppressionWithScore_:CL});async function EL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=Fu(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let u=await Promise.all([i.data(),o.data()]),p=u[0],d=u[1],{selectedIndices:c,selectedScores:h}=TT(p,d,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ke(c,"int32"),selectedScores:Ke(h)}}var AL=EL;function $L(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=Fu(i,o,n,a,r,null),u=l.maxOutputSize,p=l.iouThreshold,d=l.scoreThreshold,c={boxes:i,scores:o},h={maxOutputSize:u,iouThreshold:p,scoreThreshold:d,padToMaxOutputSize:s},m=O.runKernel(au,c,h);return{selectedIndices:m[0],validOutputs:m[1]}}var FL=L({nonMaxSuppressionPadded_:$L});async function DL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=Fu(i,o,n,a,r,null),u=l.maxOutputSize,p=l.iouThreshold,d=l.scoreThreshold,[c,h]=await Promise.all([i.data(),o.data()]),{selectedIndices:m,validOutputs:f}=ST(c,h,u,p,d,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ke(m,"int32"),validOutputs:be(f,"int32")}}var RL=DL;function ML(e,t,n=!1,a=!1){let r=_(e,"images","resizeBilinear");$(r.rank===3||r.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`),$(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),$(a===!1||n===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=W(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},u=O.runKernel(Zi,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var NT=L({resizeBilinear_:ML});function PL(e,t,n=!1,a=!1){let r=_(e,"images","resizeNearestNeighbor");$(r.rank===3||r.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`),$(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),$(r.dtype==="float32"||r.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),$(a===!1||n===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=W(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},u=O.runKernel(Yi,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var CT=L({resizeNearestNeighbor_:PL});function OL(e,t="binary",n=!1,a=.5){let r=_(e,"image","threshold"),s=.2989,i=.587,o=.114,l=r.shape[0]*r.shape[1],u=z(Ke([a]),255),p,d,c,h;if($(r.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${r.rank}.`),$(r.shape[2]===3||r.shape[2]===1,()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${r.shape[2]}.`),$(r.dtype==="int32"||r.dtype==="float32",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${r.dtype}.`),$(t==="otsu"||t==="binary",()=>`Method must be binary or otsu, but was ${t}`),r.shape[2]===3){[p,d,c]=zn(r,[1,1,1],-1);let f=z(p,s),g=z(d,i),y=z(c,o);h=Y(Y(f,g),y)}else h=e;if(t==="otsu"){let f=ev(oe(Hm(h),"int32"),kn([]),256);u=LL(f,l)}let m=n?xs(h,u):Nn(h,u);return oe(z(m,255),"int32")}function LL(e,t){let n=Ke([-1]),a=Ke([0]),r=Ke([0]),s,i,o,l,u,p;for(let d=0;d`Error in transform: image must be rank 4,but got rank ${i.rank}.`),$(o.rank===2&&(o.shape[0]===i.shape[0]||o.shape[0]===1)&&o.shape[1]===8,()=>"Error in transform: Input transform should be batch x 8 or 1 x 8"),$(s==null||s.length===2,()=>`Error in transform: outputShape must be [height, width] or null, but got ${s}.`);let l={image:i,transforms:o},u={interpolation:n,fillMode:a,fillValue:r,outputShape:s};return O.runKernel(wu,l,u)}var BL=L({transform_:WL});function VL(e,t,n){$(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),$(n%1===0,()=>`bandPart(): numUpper must be an integer, got ${n}.`);let a=_(e,"a","bandPart");$(a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${a.rank}.`);let r=a.shape,[s,i]=a.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);let o=W(ol(0,s,1,"int32"),[-1,1]),l=ol(0,i,1,"int32"),u=pe(o,l),p=Ea(xs(u,be(+t,"int32")),Er(u,be(-n,"int32"))),d=It([s,i],a.dtype);return W(Ft(ct(W(a,[-1,s,i])).map(c=>mn(p,c,d))),r)}var UL=L({bandPart_:VL});function GL(e){let t;if(Array.isArray(e)){t=!1,$(e!=null&&e.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let r=e[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[s].shape[0]} vs. ${r})`)}else t=!0,e=zn(e,e.shape[0],0).map(r=>ws(r,[0]));$(e.length<=e[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`);let n=[],a=e;for(let r=0;r{let s=a[r];if(r>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`),e.rank===2)return J1(e,t);{let n=e.shape.slice(0,e.shape.length-2).reduce((l,u)=>l*u),a=ct(W(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];a.forEach(l=>{let[u,p]=J1(l,t);r.push(u),s.push(p)});let i=W(Ft(r,0),e.shape),o=W(Ft(s,0),e.shape);return[i,o]}}function J1(e,t=!1){return O.tidy(()=>{$(e.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`);let n=e.shape[0],a=e.shape[1],r=Pm(n),s=rr(e),i=_a([[1]],[1,1]),o=rr(i),l=n>=a?a:n;for(let u=0;u{let h=Be(s,[u,u],[n-u,1]),m=Cu(h),f=Be(s,[u,u],[1,1]),g=mn(Nn(f,0),_a([[-1]]),_a([[1]])),y=pe(f,z(g,m)),b=he(h,y);b.shape[0]===1?o=rr(i):o=Ze([i,Be(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let x=bt(he(Fe(g,y),m)),w=Be(s,[u,0],[n-u,a]),I=z(x,o),T=Ee(o);if(u===0)s=pe(w,Fe(I,Fe(T,w)));else{let A=pe(w,Fe(I,Fe(T,w)));s=Ze([Be(s,[0,0],[u,a]),A],0)}let C=Ee(I),E=Be(r,[0,u],[n,r.shape[1]-u]);if(u===0)r=pe(E,Fe(Fe(E,o),C));else{let A=pe(E,Fe(Fe(E,o),C));r=Ze([Be(r,[0,0],[n,u]),A],1)}return[o,s,r]}),_e([p,d,c])}return!t&&n>a&&(r=Be(r,[0,0],[n,a]),s=Be(s,[0,0],[a,a])),[r,s]})}var qL=L({qr_:jL}),xn;(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"})(xn||(xn={}));function KL(e,t,n=xn.SUM_BY_NONZERO_WEIGHTS){let a=_(e,"losses","computeWeightedLoss"),r=null;t!=null&&(r=_(t,"weights","computeWeightedLoss"));let s=r==null?a:z(a,r);if(n===xn.NONE)return s;if(n===xn.SUM)return fe(s);if(n===xn.MEAN){if(r==null)return Nt(s);{let i=a.size/r.size,o=he(fe(s),fe(r));return i>1?he(o,be(i)):o}}if(n===xn.SUM_BY_NONZERO_WEIGHTS){if(r==null)return he(fe(s),be(a.size));{let i=z(r,Zn(a.shape)),o=oe(fe(ii(i,be(0))),"float32");return he(fe(s),o)}}throw Error(`Unknown reduction: ${n}`)}var Ar=L({computeWeightedLoss_:KL});function XL(e,t,n,a=xn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","absoluteDifference"),s=_(t,"predictions","absoluteDifference"),i=null;n!=null&&(i=_(n,"weights","absoluteDifference")),Sn(r.shape,s.shape,"Error in absoluteDifference: ");let o=Lt(pe(r,s));return Ar(o,i,a)}var YL=L({absoluteDifference_:XL});function ZL(e,t,n,a,r=xn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","cosineDistance"),i=_(t,"predictions","cosineDistance"),o=null;a!=null&&(o=_(a,"weights","cosineDistance")),Sn(s.shape,i.shape,"Error in cosineDistance: ");let l=be(1),u=pe(l,fe(z(s,i),n,!0));return Ar(u,o,r)}var JL=L({cosineDistance_:ZL});function QL(e,t,n,a=xn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","hingeLoss"),s=_(t,"predictions","hingeLoss"),i=null;n!=null&&(i=_(n,"weights","hingeLoss")),Sn(r.shape,s.shape,"Error in hingeLoss: ");let o=be(1);r=pe(z(be(2),r),o);let l=Xe(pe(o,z(r,s)));return Ar(l,i,a)}var ez=L({hingeLoss_:QL});function tz(e,t,n,a=1,r=xn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","huberLoss"),i=_(t,"predictions","huberLoss"),o=null;n!=null&&(o=_(n,"weights","huberLoss")),Sn(s.shape,i.shape,"Error in huberLoss: ");let l=be(a),u=Lt(pe(i,s)),p=Au(u,l),d=pe(u,p),c=Y(z(be(.5),ot(p)),z(l,d));return Ar(c,o,r)}var nz=L({huberLoss_:tz});function az(e,t,n,a=1e-7,r=xn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","logLoss"),i=_(t,"predictions","logLoss"),o=null;n!=null&&(o=_(n,"weights","logLoss")),Sn(s.shape,i.shape,"Error in logLoss: ");let l=be(1),u=be(a),p=bt(z(s,ea(Y(i,u)))),d=z(pe(l,s),ea(Y(pe(l,i),u))),c=pe(p,d);return Ar(c,o,r)}var rz=L({logLoss_:az});function sz(e,t,n,a=xn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","meanSquaredError"),s=_(t,"predictions","meanSquaredError"),i=null;n!=null&&(i=_(n,"weights","meanSquaredError")),Sn(r.shape,s.shape,"Error in meanSquaredError: ");let o=Jm(r,s);return Ar(o,i,a)}var iz=L({meanSquaredError_:sz});function oz(e,t){let n=_(e,"labels","sigmoidCrossEntropyWithLogits"),a=_(t,"logits","sigmoidCrossEntropyWithLogits");Sn(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=Xe(a),s=z(a,n),i=Dc(fn(bt(Lt(a))));return Y(pe(r,s),i)}function lz(e,t,n,a=0,r=xn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"multiClassLabels","sigmoidCrossEntropy"),i=_(t,"logits","sigmoidCrossEntropy"),o=null;if(n!=null&&(o=_(n,"weights","sigmoidCrossEntropy")),Sn(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let u=be(a),p=be(1),d=be(.5);s=Y(z(s,pe(p,u)),z(d,u))}let l=oz(s,i);return Ar(l,o,r)}var uz=L({sigmoidCrossEntropy_:lz});function pz(e,t,n=-1){if(n===-1&&(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 or((a,r,s)=>{let i=Wm(r,[n],!0),o=pe(oe(r,"float32"),i);s([a,o]);let l=bt(z(o,a));return{value:fe(l,[n]),gradFunc:(u,p)=>{let[d,c]=p,h=si(u.shape,[n]);return[z(W(u,h),pe(oe(d,"float32"),fn(c))),z(W(u,h),pe(fn(c),oe(d,"float32")))]}}})(e,t)}function cz(e,t,n,a=0,r=xn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"onehotLabels","softmaxCrossEntropy"),i=_(t,"logits","softmaxCrossEntropy"),o=null;if(n!=null&&(o=_(n,"weights","softmaxCrossEntropy")),Sn(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let u=be(a),p=be(1),d=be(s.shape[1]);s=Y(z(s,pe(p,u)),he(u,d))}let l=pz(s,i);return Ar(l,o,r)}var dz=L({softmaxCrossEntropy_:cz});function hz(e,t,n,a){let r=_(e,"indices","sparseFillEmptyRows","int32"),s=_(t,"values","sparseFillEmptyRows"),i=_(n,"denseShape","sparseFillEmptyRows","int32"),o=_(a,"defaultValue","sparseFillEmptyRows",s.dtype);if(r.rank!==2)throw new Error(`Indices should be Tensor2D but received shape + ${a.shape}`),A(i%(t*t)===0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${a.shape}`);let o={x:a},l={blockSize:t,dataFormat:n};return O.runKernel(Ml,o,l)}var uv=L({depthToSpace_:vP});function wP(e,t,n,a,r="NHWC",s=[1,1],i){let o=_(e,"x","depthwiseConv2d","float32"),l=_(t,"filter","depthwiseConv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(u.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${u.rank}.`),A(l.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`);let d=r==="NHWC"?u.shape[3]:u.shape[1];A(d===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${d}) must match the inChannels dimension in filter ${l.shape[2]}.`),Tn("depthwiseConv2d",a,i);let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=O.runKernel(Ti,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var bs=L({depthwiseConv2d_:wP});function kP(e){let t={x:_(e,"x","diag")};return O.runKernel(im,t)}var RS=L({diag_:kP});function IP(e,t,n,a,r=[1,1],s="NHWC"){let i=_(e,"x","dilation2d"),o=_(t,"filter","dilation2d");A(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),A(o.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`),A(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=i,u=!1;i.rank===3&&(l=W(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=!0);let p={x:l,filter:o},d={strides:n,pad:a,dilations:r},c=O.runKernel(uc,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var pv=L({dilation2d_:IP});function SP(e,t){let n=_(e,"a","equal","string_or_numeric"),a=_(t,"b","equal","string_or_numeric");[n,a]=_t(n,a),lt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Ol,r)}var Qn=L({equal_:SP});function TP(e,t,n){let a=_(t,"a","where"),r=_(n,"b","where"),s=_(e,"condition","where","bool"),i=lt(lt(s.shape,a.shape),r.shape),o=Ks(s,i),l=Ks(a,i),u=Ks(r,i),p={condition:o,t:l,e:u};return O.runKernel(pu,p)}var mn=L({where_:TP});function NP(e){let t={x:_(e,"x","zerosLike")};return O.runKernel(Iu,t)}var qe=L({zerosLike_:NP});function CP(e,t){let n=_(e,"a","div"),a=_(t,"b","div");[n,a]=_t(n,a);let r=he(n,a),s=qe(r),i=Qn(a,s);return mn(i,s,r)}var cv=L({divNoNan_:CP});function _P(e,t){let n=_(e,"t1","dot"),a=_(t,"t2","dot");A((n.rank===1||n.rank===2)&&(a.rank===1||a.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${n.rank} and ${a.rank}.`);let r=n.rank===1?n.size:n.shape[1],s=a.rank===1?a.size:a.shape[0];if(A(r===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${s}.`),n.rank===1&&a.rank===1){let i=W(n,[1,-1]),o=W(a,[-1,1]),l=Fe(i,o);return W(l,[])}else if(n.rank===1&&a.rank===2){let i=W(n,[1,-1]),o=W(a,[a.shape[0],a.shape[1]]),l=Fe(i,o);return W(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=W(a,[-1,1]),o=Fe(n,i);return W(o,[o.size])}else{let i=W(a,[a.shape[0],a.shape[1]]);return Fe(n,i)}}var dv=L({dot_:_P});function EP(e,...t){let n=t.map((r,s)=>_(r,`tensors${s}`,"einsum")),a={equation:e};return O.runKernel(om,n,a)}var MS=L({einsum_:EP});function $P(e){let t={x:_(e,"x","elu","float32")};return O.runKernel(Ci,t)}var Nu=L({elu_:$P});function AP(e){let t=_(e,"x","erf");A(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=le(t,"float32"));let n={x:t};return O.runKernel(Pl,n)}var hv=L({erf_:AP});function mv(e,t){for(let n=0;ne[s]);return[n,r]}function si(e,t){let n=t.map(a=>1);return PS(e,n,t)}function FP(e,t,n){A(mv(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function LS(e,t){if(mv(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function fv(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function DP(e,t){let n=[];for(let a=t-e;a"Axis must be <= rank of the tensor");let a={input:n},r={dim:t};return O.runKernel(Ll,a,r)}var Zt=L({expandDims_:UP});function GP(e){let t={x:_(e,"x","expm1")};return O.runKernel(zl,t)}var yv=L({expm1_:GP});function HP(e,t){let n=_(e,"x","tile","string_or_numeric");A(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`);let a={x:n},r={reps:t};return O.runKernel(hs,a,r)}var Ln=L({tile_:HP});function jP(e,t,n,a="float32"){t==null&&(t=e);let r=Pe([e,t],a),s=e<=t?e:t;for(let o=0;o`Error in localResponseNormalization: x must be rank 3 or 4 but got + rank ${s.rank}.`),A(tl(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,o=!1;s.rank===3&&(o=!0,i=W(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let l={x:i},u={depthRadius:t,bias:n,alpha:a,beta:r},p=O.runKernel(cc,l,u);return o?W(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var wv=L({localResponseNormalization_:aO});function rO(e){let t={x:_(e,"x","log","float32")};return O.runKernel(Mi,t)}var ea=L({log_:rO});function sO(e){let t={x:_(e,"x","log1p")};return O.runKernel(Xl,t)}var Dc=L({log1p_:sO});function iO(e){return A(es(e),()=>"The f passed in grad(f) must be a function"),(t,n)=>{let a=_(t,"x","tf.grad","string_or_numeric"),r=n!=null?_(n,"dy","tf.grad"):null;return O.tidy(()=>{let{value:s,grads:i}=O.gradients(()=>e(a),[a],r);return r!=null&&Sn(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Lm(i),i[0]})}}function oO(e){return A(es(e),()=>"The f passed in grads(f) must be a function"),(t,n)=>{A(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let a=jp(t,"args","tf.grads","string_or_numeric"),r=n!=null?_(n,"dy","tf.grads"):null;return O.tidy(()=>{let{value:s,grads:i}=O.gradients(()=>e(...a),a,r);return r!=null&&Sn(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Lm(i),i})}}function lO(e){return A(es(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{A(t instanceof Te,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),A(n==null||n instanceof Te,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:a,value:r}=O.gradients(()=>e(t),[t],n);return Lm(a),{grad:a[0],value:r}}}function uO(e){return A(es(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{A(Array.isArray(t)&&t.every(r=>r instanceof Te),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),A(n==null||n instanceof Te,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let a=O.gradients(()=>e(...t),t,n);return n!=null&&Sn(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Lm(a.grads),a}}function BS(e,t){A(es(e),()=>"The f passed in variableGrads(f) must be a function"),A(t==null||Array.isArray(t)&&t.every(u=>u instanceof ts),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let n=t!=null;if(!n){t=[];for(let u in O.registeredVariables)t.push(O.registeredVariables[u])}let a=n?t.filter(u=>!u.trainable):null,r=t.length;t=t.filter(u=>u.trainable),A(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${r} variables is trainable.`);let s=!0,{value:i,grads:o}=O.gradients(e,t,null,s);A(o.some(u=>u!=null),()=>"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()."),A(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let l={};return t.forEach((u,p)=>{o[p]!=null&&(l[u.name]=o[p])}),a!=null&&a.forEach(u=>l[u.name]=null),{value:i,grads:l}}function or(e){return O.customGrad(e)}function Lm(e){if(e.filter(t=>t==null).length>0)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.`)}function pO(e){let t={x:_(e,"x","softplus")};return O.runKernel(fu,t)}var ho=L({softplus_:pO});function cO(e){let t=_(e,"x","logSigmoid");return or(n=>({value:bt(ho(bt(n))),gradFunc:a=>z(a,da(bt(n)))}))(t)}var kv=L({logSigmoid_:cO});function dO(e,t){let n=_(e,"a","sub"),a=_(t,"b","sub");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(lo,r)}var pe=L({sub_:dO});function hO(e,t=-1){let n=_(e,"logits","logSoftmax");if(t===-1&&(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 or((a,r)=>{let s=ha(a,t,!0),i=pe(a,s),o=pe(le(i,"float32"),ea(fe(fn(i),t,!0)));return r([o]),{value:o,gradFunc:(l,u)=>{let[p]=u,d=!0,c=fn(p);return pe(l,z(fe(l,t,d),c))}}})(n)}var zm=L({logSoftmax_:hO});function mO(e,t=null,n=!1){let a=_(e,"x","logSumExp"),r=$a(t,a.shape),s=ha(a,r,!0),i=pe(a,s),o=fn(i),l=fe(o,r),u=ea(l),p=Y(W(s,u.shape),u);if(n){let d=si(p.shape,r);return W(p,d)}return p}var Wm=L({logSumExp_:mO});function fO(e,t){let n=_(e,"a","logicalAnd","bool"),a=_(t,"b","logicalAnd","bool");lt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Yl,r)}var Ea=L({logicalAnd_:fO});function gO(e){let t={x:_(e,"x","logicalNot","bool")};return O.runKernel(Zl,t)}var Rc=L({logicalNot_:gO});function yO(e,t){let n=_(e,"a","logicalOr","bool"),a=_(t,"b","logicalOr","bool");lt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Jl,r)}var Bm=L({logicalOr_:yO});function bO(e,t){let n=_(e,"a","logicalXor","bool"),a=_(t,"b","logicalXor","bool");return lt(n.shape,a.shape),Ea(Bm(e,t),Rc(Ea(e,t)))}var Iv=L({logicalXor_:bO}),Hd=2147483648;function xO(e,t,n="left"){let a=_(e,"sortedSequence","searchSorted"),r=_(t,"values","searchSorted"),s=a.shape[a.shape.length-1],i=r.shape[r.shape.length-1],o=W(a,[-1,s]),l=W(r,[-1,i]);if(o.rank<2)throw new Error("Sorted input argument must be at least 2-dimensional");if(o.shape[0]!==l.shape[0])throw new Error("Leading dimension of 'sortedSequence' and 'values' must match.");if(mt(l.shape)>=Hd)throw new Error(`values tensor size must less than ${Hd}`);if(o.shape[1]>=Hd)throw new Error(`trailing dim_size must less than ${Hd} for int32 output type, was ${o.shape[1]}`);let u={sortedSequence:o,values:l},p={side:n};return O.runKernel(Sm,u,p)}var Vm=L({searchSorted_:xO});function VS(e,t){return Vm(e,t,"left")}function vO(e,t,n,a,r){let s=_(e,"x","maxPool"),i=1,o=s,l=!1;s.rank===3&&(l=!0,o=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(o.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${o.rank}.`),A(ur(n,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),Tn("maxPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=O.runKernel(Li,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Dt=L({maxPool_:vO});function wO(e,t=[1,1,1],n,a,r,s="NDHWC"){let i=_(e,"x","maxPool3d"),o=i,l=!1;i.rank===4&&(l=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Tn("maxPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=O.runKernel(dc,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Sv=L({maxPool3d_:wO});function kO(e,t,n,a,r=!1){let s={x:_(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=O.runKernel(gm,s,i);return{result:o[0],indexes:o[1]}}var US=L({maxPoolWithArgmax_:kO});function IO(e,t){let n=_(e,"a","maximum"),a=_(t,"b","maximum");[n,a]=_t(n,a),n.dtype==="bool"&&(n=le(n,"int32"),a=le(a,"int32")),lt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Oi,r)}var pr=L({maximum_:IO});function SO(e,t=null,n=!1){let a={x:_(e,"x","mean")},r={axis:t,keepDims:n};return O.runKernel(zi,a,r)}var Nt=L({mean_:SO});function It(e,t="float32"){if(t==="complex64"){let a=It(e,"float32"),r=It(e,"float32");return Cr(a,r)}let n=Kh(mt(e),t);return O.makeTensor(n,e,t)}function Zn(e,t="float32"){if(t==="complex64"){let a=Zn(e,"float32"),r=It(e,"float32");return Cr(a,r)}let n=vx(mt(e),t);return O.makeTensor(n,e,t)}function GS(e,t,{indexing:n="xy"}={}){if(n!=="xy"&&n!=="ij")throw new TypeError(`${n} is not a valid third argument to meshgrid`);if(e===void 0)return[];let a=_(e,"x","meshgrid",e instanceof Te?e.dtype:"float32");if(t===void 0)return[a];let r=_(t,"y","meshgrid",t instanceof Te?t.dtype:"float32"),s=mt(a.shape),i=mt(r.shape);return n==="xy"?(a=W(a,[1,-1]),r=W(r,[-1,1]),[Fe(Zn([i,1],a.dtype),a),Fe(r,Zn([1,s],r.dtype))]):(a=W(a,[-1,1]),r=W(r,[1,-1]),[Fe(a,Zn([1,i],a.dtype)),Fe(Zn([s,1],r.dtype),r)])}function TO(e,t){let n=_(e,"a","minimum"),a=_(t,"b","minimum");[n,a]=_t(n,a),n.dtype==="bool"&&(n=le(n,"int32"),a=le(a,"int32")),lt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Bi,r)}var $u=L({minimum_:TO});function NO(e,t,n){A(n==="reflect"||n==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`);let a=_(e,"x","mirrorPad");if(a.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");A(t.length===a.rank,()=>`Padding doesn't match input. Must be ${a.rank}. Got ${t.length}.`);let r=n==="reflect"?1:0;for(let o=0;o"Invalid number of paddings. Must be length of 2 each."),A(t[o][0]>=0&&t[o][0]<=a.shape[o]-r&&t[o][1]>=0&&t[o][1]<=a.shape[o]-r,()=>`Padding in dimension ${o} cannot be greater than or equal to ${a.shape[o]-r} or less than 0 for input of shape ${a.shape}`);let s={paddings:t,mode:n},i={x:a};return O.runKernel(Vi,i,s)}var Tv=L({mirrorPad_:NO});function CO(e,t){let n=_(e,"a","mod"),a=_(t,"b","mod");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(Ql,r)}var Nv=L({mod_:CO});function _O(e,t=null,n=!1){e=_(e,"x","moments");let a=$a(t,e.shape),r=Nt(e,a,n),s=r.shape;n||(s=si(r.shape,a));let i=ot(pe(le(e,"float32"),W(r,s))),o=Nt(i,a,n);return{mean:r,variance:o}}var Mc=L({moments_:_O});function EO(e,t,n,a){let r=_(t,"data","multiRNNCell"),s=jp(n,"c","multiRNNCell"),i=jp(a,"h","multiRNNCell"),o=r,l=[];for(let d=0;d2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);n=n||Math.random();let o={logits:i===1?W(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:a},u=O.runKernel(ym,o,l);return i===1?W(u,[u.size]):u}var jS=L({multinomial_:$O});function AO(e,t){let n=_(e,"a","notEqual","string_or_numeric"),a=_(t,"b","notEqual","string_or_numeric");[n,a]=_t(n,a),lt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(tu,r)}var ii=L({notEqual_:AO});function FO(e){let t={x:_(e,"x","onesLike")};return O.runKernel(su,t)}var ta=L({onesLike_:FO});function DO(e,t){let n=_(e,"v1","outerProduct"),a=_(t,"v2","outerProduct");A(n.rank===1&&a.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${a.rank}.`);let r=W(n,[-1,1]),s=W(a,[1,-1]);return Fe(r,s)}var qS=L({outerProduct_:DO});function RO(e,t,n=0){let a=_(e,"x","pad");if(a.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let r={paddings:t,constantValue:n},s={x:a};return O.runKernel(Hi,s,r)}var ya=L({pad_:RO});function MO(e,t,n=0){return A(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),ya(e,[t],n)}var KS=L({pad1d_:MO});function PO(e,t,n=0){return A(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ya(e,t,n)}var XS=L({pad2d_:PO});function OO(e,t,n=0){return A(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ya(e,t,n)}var YS=L({pad3d_:OO});function LO(e,t,n=0){return A(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ya(e,t,n)}var ZS=L({pad4d_:LO});function zO(e,t,n){let a=_(e,"x","spaceToBatchND");A(a.rank>=1+t.length,()=>`input rank ${a.rank} should be > than [blockShape] ${t.length}`),A(n.length===t.length,()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`),A(a.shape.reduce((i,o,l)=>l>0&&l<=t.length?i&&(o+n[l-1][0]+n[l-1][1])%t[l-1]===0:i,!0),()=>`input spatial dimensions ${a.shape.slice(1)} with paddings ${n.toString()} must be divisible by blockShapes ${t.toString()}`);let r={x:a},s={blockShape:t,paddings:n};return O.runKernel(gu,r,s)}var Pc=L({spaceToBatchND_:zO});function WO(e,t,n,a,r,s,i){r==null&&(r=[1,1]),s==null&&(s=1),a===0&&(a="valid");let o=_(e,"x","maxPool"),l=o,u=!1;o.rank===3&&(u=!0,l=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(ur(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let p=_S(l.shape,t,s,r,a),d=[p.dilationHeight,p.dilationWidth],c;a==="same"?c=VO([p.filterHeight,p.filterWidth],d):c=[[0,0],[0,0]];let h=d[0]===1&&d[1]===1,[m,f]=BO([p.inHeight,p.inWidth],d,c),g=h?a:"valid",y=h?l:Pc(l,d,m),b=(n==="avg"?()=>ga(y,t,s,g,i):()=>Dt(y,t,s,g,i))(),x=h?b:$c(b,d,f);return u?W(x,[x.shape[1],x.shape[2],x.shape[3]]):x}function BO(e,t,n){let a=n.map(p=>p[0]),r=n.map(p=>p[1]),s=e.concat(a,r),i=t.map((p,d)=>(p-s[d]%p)%p),o=r.map((p,d)=>p+i[d]),l=t.map((p,d)=>[a[d],o[d]]),u=t.map((p,d)=>[0,i[d]]);return[l,u]}function VO(e,t){let n=e.map((s,i)=>s+(s-1)*(t[i]-1)).map(s=>s-1),a=n.map(s=>Math.floor(s/2)),r=n.map((s,i)=>s-a[i]);return n.map((s,i)=>[a[i],r[i]])}var Cv=L({pool_:WO});function UO(e,t){let n=_(e,"x","prelu"),a=_(t,"alpha","prelu"),r={x:n,alpha:a};return O.runKernel(qi,r)}var Oc=L({prelu_:UO});function GO(e,t=null,n=!1){let a=_(e,"x","prod");a.dtype==="bool"&&(a=le(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return O.runKernel(Ki,r,s)}var _v=L({prod_:GO});function HO(e,t,n,a){let r=e.map((p,d)=>_(p,`tensors${d}`,"raggedGather","int32")),s=_(t,"paramsDenseValues","raggedGather"),i=_(n,"indices","raggedGather","int32"),o={paramsNestedSplits:r,paramsDenseValues:s,indices:i},l={outputRaggedRank:a},u=O.runKernel(bm,o,l);return{outputNestedSplits:u.slice(0,u.length-1),outputDenseValues:u[u.length-1]}}var JS=L({raggedGather_:HO});function jO(e,t,n){let a=_(e,"starts","raggedRange"),r=_(t,"limits","raggedRange",a.dtype),s=_(n,"deltas","raggedRange",a.dtype),i={starts:a,limits:r,deltas:s},o=O.runKernel(xm,i);return{rtNestedSplits:o[0],rtDenseValues:o[1]}}var QS=L({raggedRange_:jO});function qO(e,t,n,a,r){let s=_(e,"shape","raggedTensorToTensor","int32"),i=_(t,"values","raggedTensorToTensor"),o=_(n,"defaultValue","raggedTensorToTensor",i.dtype),l=a.map((d,c)=>_(d,`tensors${c}`,"raggedTensorToTensor","int32")),u={shape:s,values:i,defaultValue:o,rowPartitionTensors:l},p={rowPartitionTypes:r};return O.runKernel(vm,u,p)}var eT=L({raggedTensorToTensor_:qO});function KO(e,t,n){let a=mt(e),r=null;if(n==null||n==="float32")r=new Float32Array(a);else if(n==="int32")r=new Int32Array(a);else if(n==="bool")r=new Uint8Array(a);else throw new Error(`Unknown data type ${n}`);for(let s=0;s=1||s===0);let i=Math.sqrt(-2*Math.log(s)/s);e=this.mean+this.stdDev*a*i,t=this.mean+this.stdDev*r*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 this.dtype==null||this.dtype==="float32"?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}},XO=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=Ev.alea(r.toString()),this.randn=new $v(0,1,n,!1,this.randu()),e<1?this.d=e+2/3:this.d=e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,n,a,r,s;for(;;){do a=this.randn.nextValue(),s=1+this.c*a;while(s<=0);if(s*=s*s,e=a*a,t=1-.331*e*e,n=.5*e+this.d*(1-s+Math.log(s)),r=this.randu(),rthis.dtype==null||this.dtype==="float32",this.min=e,this.range=t-e,this.dtype=n,a==null&&(a=Math.random()),typeof a=="number"&&(a=a.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=Ev.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function ZO(e,t,n=1,a="float32",r){if(n==null&&(n=1),a==null&&(a="float32"),a!=="float32"&&a!=="int32")throw new Error(`Unsupported data type ${a}`);let s=new XO(t,n,a,r),i=Pe(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),fa(t,0)}var rT=L({reverse1d_:s3});function i3(e,t){let n=_(e,"x","reverse");return A(n.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`),fa(n,t)}var sT=L({reverse2d_:i3});function o3(e,t){let n=_(e,"x","reverse");return A(n.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`),fa(n,t)}var iT=L({reverse3d_:o3});function l3(e,t){let n=_(e,"x","reverse");return A(n.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`),fa(n,t)}var oT=L({reverse4d_:l3});function u3(e){let t={x:_(e,"x","round")};return O.runKernel(eo,t)}var Hm=L({round_:u3});function p3(e){let t={x:_(e,"x","rsqrt","float32")};return O.runKernel(to,t)}var jm=L({rsqrt_:p3});function c3(e){let t={x:_(e,"x","selu")};return O.runKernel(cu,t)}var qm=L({selu_:c3});function d3(e,t,n,a,r,s=[1,1],i="NHWC"){let o=_(e,"x","separableConv2d"),l=_(t,"depthwiseFilter","separableConv2d"),u=_(n,"pointwiseFilter","separableConv2d"),p=o,d=!1;if(o.rank===3&&(d=!0,p=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),i==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");A(p.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${p.rank}.`),A(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),A(u.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),A(u.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${u.shape[0]}.`),A(u.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${u.shape[1]}.`);let c=l.shape[2],h=l.shape[3];A(u.shape[2]===c*h,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${c*h}, but got ${u.shape[2]}.`);let m=bs(p,l,a,r,i,s),f=At(m,u,1,"valid",i);return d?W(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var vs=L({separableConv2d_:d3});async function h3(e,t){let n=_(e,"x","setdiff1d"),a=_(t,"y","setdiff1d");A(n.dtype===a.dtype,()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${a.dtype}).`),A(n.rank===1,()=>`x should be 1D tensor, but got x (${n.shape}).`),A(a.rank===1,()=>`y should be 1D tensor, but got y (${a.shape}).`);let r=await n.data(),s=await a.data(),i=new Set(s),o=0;for(let p=0;p`slice1d expects a rank-1 tensor, but got a rank-${a.rank} tensor`),Be(a,[t],[n])}var Lc=L({slice1d_:y3});function b3(e,t,n){let a=_(e,"x","slice2d");return A(a.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var Ym=L({slice2d_:b3});function x3(e,t,n){let a=_(e,"x","slice3d");return A(a.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var mo=L({slice3d_:x3});function v3(e,t,n){let a=_(e,"x","slice4d");return A(a.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var ll=L({slice4d_:v3});function w3(e,t=-1){let n=_(e,"logits","softmax","float32");if(t===-1&&(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}`);let a={logits:n},r={dim:t};return O.runKernel(io,a,r)}var Ka=L({softmax_:w3});function k3(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);let t={input:e};return O.runKernel(um,t)}var zc=L({fft_:k3});function I3(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);let t={input:e};return O.runKernel(pm,t)}var ul=L({ifft_:I3});function S3(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=W(e,[n,t]);a=ul(r)}else{let r=[n,2*(t-1)],s=W(sl(e),[n,t]),i=W(Cc(e),[n,t]),o=fa(Be(s,[0,1],[n,t-2]),1),l=z(fa(Be(i,[0,1],[n,t-2]),1),xe(-1)),u=Ze([s,o],1),p=Ze([i,l],1),d=W(Cr(u,p),[r[0],r[1]]);a=ul(d)}if(a=sl(a),e.rank===3&&e.shape[0]!==0){let r=a,s=e.shape[0];a=W(a,[s,a.shape[0]/s,a.shape[1]]),r.dispose()}return a}var Zm=L({irfft_:S3});function T3(e,t,n=0){let a={x:_(e,"x","split")},r={numOrSizeSplits:t,axis:n};return O.runKernel(yu,a,r)}var zn=L({split_:T3});function N3(e,t){A(e.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${e.dtype}`);let n=e.shape[e.shape.length-1],a=e.size/n,r;if(t!=null&&t0),f=e.shape.map(g=>g);f[e.shape.length-1]=t,r=Be(e,m,f),n=t}else if(t!=null&&t>n){let m=e.shape.map(f=>f);m[e.shape.length-1]=t-n,r=Ze([e,It(m)],e.shape.length-1),n=t}else r=e;let s=qe(r),i=W(Cr(r,s),[a,n]),o=zc(i),l=Math.floor(n/2)+1,u=sl(o),p=Cc(o),d=zn(u,[l,n-l],u.shape.length-1),c=zn(p,[l,n-l],p.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=l,W(Cr(d[0],c[0]),h)}var Wc=L({rfft_:N3});function C3(e,t){let n=_(e,"a","squaredDifference"),a=_(t,"b","squaredDifference");[n,a]=_t(n,a),lt(n.shape,a.shape);let r={a:n,b:a},s={};return O.runKernel(oo,r,s)}var Jm=L({squaredDifference_:C3});function _3(e,t){let n=_(e,"x","squeeze","string_or_numeric");return W(n,II(n.shape,t).newShape)}var ws=L({squeeze_:_3});function E3(e,t=0){let n=jp(e,"tensors","stack","string_or_numeric");A(n.length>=1,()=>"Pass at least one tensor to tf.stack"),n.length>0&&A(t<=n[0].rank,()=>"Axis must be <= rank of the tensor");let a=n,r={axis:t};return O.runKernel(iu,a,r)}var Ft=L({stack_:E3});function $3(e,t=0){let n={x:_(e,"x","step")},a={alpha:t};return O.runKernel(ms,n,a)}var fo=L({step_:$3});function A3(e,t,n,a,r=0,s=0,i=0,o=0,l=0){let u={x:_(e,"x","stridedSlice","string_or_numeric")},p={begin:t,end:n,strides:a,beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return O.runKernel(xu,u,p)}var Dv=L({stridedSlice_:A3});function F3(e){let t={x:_(e,"x","tan","float32")};return O.runKernel(uo,t)}var Rv=L({tan_:F3});function Ke(e,t){hi(e);let n=ir(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return fs(e,null,n,t)}function _a(e,t,n){if(hi(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let a=ir(e,n);if(a.length!==2&&a.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return fs(e,t,a,n)}function Aa(e,t,n){if(hi(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let a=ir(e,n);if(a.length!==4&&a.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return fs(e,t,a,n)}function uT(e,t,n){if(hi(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let a=ir(e,n);if(a.length!==5&&a.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return fs(e,t,a,n)}function pT(e,t,n){if(hi(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let a=ir(e,n);if(a.length!==6&&a.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||a,fs(e,t,a,n)}function D3(e,t=1,n=!0){let a=_(e,"x","topk");if(a.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let r=a.shape[a.shape.length-1];if(t<0)throw new Error(`'k' passed to topk() must be >= 0 but got ${t}`);if(t>r)throw new Error(`'k' passed to topk() must be <= the last dimension (${r}) but got ${t}`);let s={x:a},i={k:t,sorted:n},[o,l]=O.runKernel(vu,s,i);return{values:o,indices:l}}var Mv=L({topk_:D3});function R3(e,t=0,n=1,a,r){if(a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new $v(t,n,a,!0,r),i=Pe(e,a);for(let o=0;o0,()=>"The input tensor must be at least 1D");let a={x:n},r={axis:t},[s,i]=O.runKernel(Nm,a,r);return{values:s,indices:i}}var Pv=L({unique_:M3});function P3(e,t,n){let a=_(e,"x","unsortedSegmentSum"),r=_(t,"segmentIds","unsortedSegmentSum","int32");A(tl(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return O.runKernel(wc,s,i)}var ef=L({unsortedSegmentSum_:P3});function O3(e,t=0){let n=_(e,"x","unstack","string_or_numeric");A(t>=-n.shape.length&&t`Axis = ${t} is not in [-${n.shape.length}, ${n.shape.length})`);let a={value:n},r={axis:t};return O.runKernel(ku,a,r)}var ct=L({unstack_:O3});function cT(e,t){return Vm(e,t,"right")}function Ov(e,t=!0,n,a){return O.makeVariable(e,t,n,a)}function dT(e,t){let n=[];for(let s=0;s0,()=>"mask cannot be scalar"),Sn(o.slice(s,s+i),r.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let f=s;f"Shape mismatch in v and x");let l=xe(1),u=pe(l,o),p=z(pe(i,s),u);if(r){A(a!=null,()=>"When using zeroDebias: true, step is required.");let d=_(a,"step","movingAverage");p=he(p,pe(l,_r(o,d)))}return Y(s,p)}var mT=L({movingAverage_:W3});function B3(e,t,n){let a=_(e,"indices","scatterND","int32"),r=_(t,"updates","scatterND");Lx(r,a,n);let s={indices:a,updates:r},i={shape:n};return O.runKernel(uu,s,i)}var fT=L({scatterND_:B3});function V3(e,t,n,a){if(e.dtype!=="int32")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}.`);let r=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}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===r))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${r}]`);if(t.dtype!==a.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function U3(e,t,n,a=0){let r=_(e,"sparseIndices","sparseToDense","int32"),s=_(t,"sparseValues","sparseToDense","string_or_numeric"),i=_(a,"defaultValue","sparseToDense",s.dtype);V3(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return O.runKernel(Tm,o,l)}var gT=L({sparseToDense_:U3});function G3(e,t){let n=_(t,"indices","gatherND","int32"),a={params:_(e,"x","gatherND","string_or_numeric"),indices:n};return O.runKernel(Vl,a)}var yT=L({gatherND_:G3});function H3(e,t){if(t==null)return e.shape.slice();if(ps(e.shape,t))return t;if(e.shape.length===t.length){let n=[];for(let a=0;a`x has to be a floating point tensor since it's going to be scaled, but got a ${r.dtype} tensor instead.`),A(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof Te?r.clone():r;let s=H3(r,n),i=1-t,o=he(_u(Y(Au(s,0,1,"float32",a),i)),i);return z(r,o)}var zv=L({dropout_:j3});function Wv(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function tf(e,t,n){let a=1-e%2,r=new Float32Array(e);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${a.rank}`),A(a.rank-1===r.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${a.rank} and targets rank ${r.rank}`),Sn(a.shape.slice(0,a.shape.length-1),r.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=a.shape[a.shape.length-1];A(n>0&&n<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${n}`);let i=await a.data(),o=await r.data(),[l,u]=[i.length/s,s],p=SI("bool",l);for(let d=0;dg.value-f.value),p[d]=0;for(let f=0;fY3,depthwiseConv2d:()=>eL,matMul:()=>nL});function K3(e,t,n,a,r,s="NHWC",i){let o=e;e.rank===3&&(o=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]])),A(o.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`),A(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),A(n.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`);let u=s==="NHWC"?o.shape[3]:o.shape[1],p=s==="NHWC"?l.shape[3]:l.shape[1];A(u===n[2],()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${n[2]}.`),A(p===n[3],()=>`Error in conv2dDerFilter: depth of dy (${p}) must match output depth for filter (${n[3]}).`),Tn("conv2dDerFilter",r,i);let d={x:o,dy:l},c={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,filterShape:n};return O.runKernel(em,d,c)}var Bv=L({conv2DBackpropFilter_:K3});function nf(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return z(e,fo(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function af(e,t){let n=t,a=Wt(e.shape,t.shape);return a.length>0&&(n=fe(n,a)),W(n,e.shape)}function rf(e,t,n,a){if(t==="linear")return e;if(t==="relu")return Xe(e);if(t==="elu")return Nu(e);if(t==="relu6")return Gm(e);if(t==="prelu")return Oc(e,n);if(t==="leakyrelu")return Fc(e,a);if(t==="sigmoid")return da(e);throw new Error(`Unknown fused activation ${t}.`)}var sf=(e,t)=>!(e>0)||t==="linear";function X3({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:p}){if(l=l||"linear",sf(O.state.gradientDepth,l)===!1){A(r==="NHWC",()=>`Error in fused conv2d: got dataFormat of ${r} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let T=At(e,t,n,a,r,s,i);return o!=null&&(T=Y(T,o)),rf(T,l,u,p)}let d=_(e,"x","conv2d","float32"),c=_(t,"filter","conv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=W(d,[1,d.shape[0],d.shape[1],d.shape[2]])),A(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),A(c.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${c.rank}.`),Tn("fused conv2d",a,i);let f=r==="NHWC"?h.shape[3]:h.shape[1];A(c.shape[2]===f,()=>`Error in conv2d: depth of input (${f}) must match input depth for filter ${c.shape[2]}.`),A(ur(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let g=Ec(h.shape,c.shape,n,s,a,i),y;o!=null&&(y=_(o,"bias","fused conv2d"),[y]=_t(y,d),r==="NHWC"?lt(g.outShape,y.shape):(A(y.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${y.shape.length}.`),A(y.shape.length===0||y.shape[0]===g.outChannels||y.shape[0]===1,()=>`Error in fused conv2d: bias shape (${y.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let b;if(u!=null){let T=u.shape;if(A(T.length<=1||T.length===3,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${T.length}.`),T.length===1)A(T[0]===1||T[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${T}) is not compatible with the number of output channels (${g.outChannels}).`);else if(T.length===3)try{lt(T,g.outShape)}catch(C){let E=`Error in fused conv2d: PReLU activation weights (${T}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error(E)}b=_(u,"prelu weights","fused conv2d")}let x=(T,C)=>{A(r==="NHWC",()=>`Error in gradient of fused conv2D: got dataFormat of ${r} but only NHWC is currently supported.`);let[E,$,R,F]=C,S=nf(T,R,l);A(ns(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let M=iv($.shape,S,E,n,a),B=Bv($,S,E.shape,n,a),U=[M,B];if(F!=null){let G=af(F,S);U.push(G)}return U},w={x:h,filter:c,bias:y,preluActivationWeights:b},I={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?or((T,C,E)=>{let $=O.runKernel(Qs,w,I);return E([C,T,$]),m&&($=W($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:x}})(h,c):or((T,C,E,$)=>{let R=O.runKernel(Qs,w,I);return $([C,T,R,E]),m&&(R=W(R,[R.shape[1],R.shape[2],R.shape[3]])),{value:R,gradFunc:x}})(h,c,y)}var Y3=L({fusedConv2d_:X3});function Z3(e,t,n,a,r,s=[1,1],i){let o=e;e.rank===3&&(o=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={x:o,dy:l},p={strides:a,pad:r,dimRoundingMode:i,dilations:s,filterShape:n};return O.runKernel(rm,u,p)}var xT=L({depthwiseConv2dNativeBackpropFilter_:Z3});function J3(e,t,n,a,r,s=[1,1],i){let o=t,l=!1;t.rank===3&&(l=!0,o=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={dy:o,filter:n},p={strides:a,pad:r,dimRoundingMode:i,dilations:s,inputShape:e},d=O.runKernel(sm,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var vT=L({depthwiseConv2dNativeBackpropInput_:J3});function Q3({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:p}){if(sf(O.state.gradientDepth,l)===!1){let I=bs(e,t,n,a,r,s,i);return o!=null&&(I=Y(I,o)),rf(I,l,u,p)}let d=_(e,"x","depthwiseConv2d","float32"),c=_(t,"filter","depthwiseConv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=W(d,[1,d.shape[0],d.shape[1],d.shape[2]])),A(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),A(c.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${c.rank}.`),A(h.shape[3]===c.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${h.shape[3]}) must match the inChannels dimension in filter ${c.shape[2]}.`),s==null&&(s=[1,1]),A(ur(n,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),Tn("fused depthwiseConv2d",a,i);let f=Ec(h.shape,c.shape,n,s,a,i,!0),g;o!=null&&(g=_(o,"bias","fused conv2d"),[g]=_t(g,d),lt(f.outShape,g.shape));let y;u!=null&&(y=_(u,"prelu weights","fused depthwiseConv2d"));let b=(I,T)=>{A(ns(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[C,E,$,R]=T,F=nf(I,$,l),S=vT(E.shape,F,C,n,a,s,i),M=xT(E,F,C.shape,n,a,s,i);if(R!=null){let B=af(g,F);return[S,M,B]}return[S,M]},x={x:h,filter:c,bias:g,preluActivationWeights:y},w={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?or((I,T,C)=>{let E=O.runKernel(ei,x,w);return C([T,I,E]),m&&(E=W(E,[E.shape[1],E.shape[2],E.shape[3]])),{value:E,gradFunc:b}})(h,c):or((I,T,C,E)=>{let $=O.runKernel(ei,x,w);return E([T,I,$,C]),m&&($=W($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:b}})(h,c,g)}var eL=L({fusedDepthwiseConv2d_:Q3});function tL({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o=.2}){if(sf(O.state.gradientDepth,s)===!1){let R=Fe(e,t,n,a);return r!=null&&(R=Y(R,r)),rf(R,s,i,o)}let l=_(e,"a","fused matMul"),u=_(t,"b","fused matMul");[l,u]=_t(l,u);let p=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=a?u.shape[u.rank-1]:u.shape[u.rank-2],c=n?l.shape[l.rank-1]:l.shape[l.rank-2],h=a?u.shape[u.rank-2]:u.shape[u.rank-1],m=l.shape.slice(0,-2),f=u.shape.slice(0,-2),g=mt(m),y=mt(f);A(p===d,()=>`Error in fused matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${l.shape} and ${u.shape} and transposeA=${n} and transposeB=${a} must match.`);let b=lt(l.shape.slice(0,-2),u.shape.slice(0,-2)).concat([c,h]),x=n?W(l,[g,p,c]):W(l,[g,c,p]),w=a?W(u,[y,h,d]):W(u,[y,d,h]),I;r!=null&&(I=_(r,"bias","fused matMul"),[I]=_t(I,l),lt(b,I.shape));let T;i!=null&&(T=_(i,"prelu weights","fused matMul"));let C=(R,F)=>{let[S,M,B,U]=F,G=nf(W(R,B.shape),B,s),q,K;if(!n&&!a?(q=Fe(G,M,!1,!0),K=Fe(S,G,!0,!1)):!n&&a?(q=Fe(G,M,!1,!1),K=Fe(G,S,!0,!1)):n&&!a?(q=Fe(M,G,!1,!0),K=Fe(S,G,!1,!1)):(q=Fe(M,G,!0,!0),K=Fe(G,S,!0,!0)),r!=null){let Z=af(U,G);return[q,K,Z]}else return[q,K]},E={a:x,b:w,bias:I,preluActivationWeights:T},$={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?or((R,F,S)=>{let M=O.runKernel(Js,E,$);return S([R,F,M]),{value:W(M,b),gradFunc:C}})(x,w):or((R,F,S,M)=>{let B=O.runKernel(Js,E,$);return M([R,F,B,S]),{value:W(B,b),gradFunc:C}})(x,w,I)}var nL=L({fusedMatMul_:tL});function aL(e){return tf(e,.54,.46)}var rL=L({hammingWindow_:aL});function sL(e){return tf(e,.5,.5)}var wT=L({hannWindow_:sL});function iL(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(Be(e,s,t)),s+=n;if(a)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),A(o.rank===2&&o.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${o.shape}.`),A(l.rank===1&&l.shape[0]===u,()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${o.shape}.`),A(a.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${a.length}.`),A(a[0]>=1&&a[1]>=1,()=>`cropSize must be atleast [1,1], but was ${a}`),A(r==="bilinear"||r==="nearest",()=>`method must be bilinear or nearest, but was ${r}`);let p={image:i,boxes:o,boxInd:l},d={method:r,extrapolationValue:s,cropSize:a};return O.runKernel(Rl,p,d)}var pL=L({cropAndResize_:uL});function cL(e){let t=_(e,"image","flipLeftRight","float32");A(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let n={image:t};return O.runKernel(Wl,n,{})}var dL=L({flipLeftRight_:cL});function hL(e){let t=_(e,"image","grayscaleToRGB"),n=t.rank-1,a=t.shape[n];A(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),A(a===1,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${a}.`);let r=new Array(t.rank);return r.fill(1,0,n),r[n]=3,Ln(t,r)}var mL=L({grayscaleToRGB_:hL});function fL(e,t,n=0,a=.5){let r=_(e,"image","rotateWithOffset","float32");A(r.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${r.rank}.`);let s={image:r},i={radians:t,fillValue:n,center:a};return O.runKernel(Su,s,i)}var gL=L({rotateWithOffset_:fL});function Fu(e,t,n,a,r,s){a==null&&(a=.5),r==null&&(r=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=e.shape[0];return n=Math.min(n,i),A(0<=a&&a<=1,()=>`iouThreshold must be in [0, 1], but was '${a}'`),A(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),A(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),A(t.rank===1,()=>"scores must be a 1D tensor"),A(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),A(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s}}function yL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppression","float32"),i=_(t,"scores","nonMaxSuppression","float32"),o=Fu(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l={maxOutputSize:n,iouThreshold:a,scoreThreshold:r};return O.runKernel(nu,{boxes:s,scores:i},l)}var bL=L({nonMaxSuppression_:yL});function xL(e,t,n){let a=vL(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function vL(e,t,n){return kL(e,t,n||wL)}function wL(e,t){return e>t?1:e>>1);let o=n(t,e[s]);o>0?a=s+1:(r=s,i=!o)}return i?a:-a-1}function IT(e,t,n,a,r){return Vv(e,t,n,a,r,0)}function ST(e,t,n,a,r,s){return Vv(e,t,n,a,r,0,!1,s,!0)}function TT(e,t,n,a,r,s){return Vv(e,t,n,a,r,s,!0)}function Vv(e,t,n,a,r,s,i=!1,o=!1,l=!1){let u=[];for(let g=0;gr&&u.push({score:t[g],boxIndex:g,suppressBeginIndex:0});u.sort(Z1);let p=s>0?-.5/s:0,d=[],c=[];for(;d.length0;){let g=u.pop(),{score:y,boxIndex:b,suppressBeginIndex:x}=g;if(y=x;--I){let T=IL(e,b,d[I]);if(T>=a){w=!0;break}if(g.score=g.score*SL(a,p,T),g.score<=r)break}g.suppressBeginIndex=d.length,w||(g.score===y?(d.push(b),c.push(g.score)):g.score>r&&xL(u,g,Z1))}let h=d.length,m=n-h;o&&m>0&&(d.push(...new Array(m).fill(0)),c.push(...new Array(m).fill(0)));let f={selectedIndices:d};return i&&(f.selectedScores=c),l&&(f.validOutputs=h),f}function IL(e,t,n){let a=e.subarray(t*4,t*4+4),r=e.subarray(n*4,n*4+4),s=Math.min(a[0],a[2]),i=Math.min(a[1],a[3]),o=Math.max(a[0],a[2]),l=Math.max(a[1],a[3]),u=Math.min(r[0],r[2]),p=Math.min(r[1],r[3]),d=Math.max(r[0],r[2]),c=Math.max(r[1],r[3]),h=(o-s)*(l-i),m=(d-u)*(c-p);if(h<=0||m<=0)return 0;let f=Math.max(s,u),g=Math.max(i,p),y=Math.min(o,d),b=Math.min(l,c),x=Math.max(y-f,0)*Math.max(b-g,0);return x/(h+m-x)}function SL(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function Z1(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function TL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppressionAsync"),i=_(t,"scores","nonMaxSuppressionAsync"),o=Fu(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l=await Promise.all([s.data(),i.data()]),u=l[0],p=l[1],{selectedIndices:d}=IT(u,p,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),Ke(d,"int32")}var NL=TL;function CL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=Fu(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let u={boxes:i,scores:o},p={maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s},d=O.runKernel(ru,u,p);return{selectedIndices:d[0],selectedScores:d[1]}}var _L=L({nonMaxSuppressionWithScore_:CL});async function EL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=Fu(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let u=await Promise.all([i.data(),o.data()]),p=u[0],d=u[1],{selectedIndices:c,selectedScores:h}=TT(p,d,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ke(c,"int32"),selectedScores:Ke(h)}}var $L=EL;function AL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=Fu(i,o,n,a,r,null),u=l.maxOutputSize,p=l.iouThreshold,d=l.scoreThreshold,c={boxes:i,scores:o},h={maxOutputSize:u,iouThreshold:p,scoreThreshold:d,padToMaxOutputSize:s},m=O.runKernel(au,c,h);return{selectedIndices:m[0],validOutputs:m[1]}}var FL=L({nonMaxSuppressionPadded_:AL});async function DL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=Fu(i,o,n,a,r,null),u=l.maxOutputSize,p=l.iouThreshold,d=l.scoreThreshold,[c,h]=await Promise.all([i.data(),o.data()]),{selectedIndices:m,validOutputs:f}=ST(c,h,u,p,d,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ke(m,"int32"),validOutputs:xe(f,"int32")}}var RL=DL;function ML(e,t,n=!1,a=!1){let r=_(e,"images","resizeBilinear");A(r.rank===3||r.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),A(a===!1||n===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=W(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},u=O.runKernel(Zi,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var NT=L({resizeBilinear_:ML});function PL(e,t,n=!1,a=!1){let r=_(e,"images","resizeNearestNeighbor");A(r.rank===3||r.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),A(r.dtype==="float32"||r.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),A(a===!1||n===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=W(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},u=O.runKernel(Yi,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var CT=L({resizeNearestNeighbor_:PL});function OL(e,t="binary",n=!1,a=.5){let r=_(e,"image","threshold"),s=.2989,i=.587,o=.114,l=r.shape[0]*r.shape[1],u=z(Ke([a]),255),p,d,c,h;if(A(r.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${r.rank}.`),A(r.shape[2]===3||r.shape[2]===1,()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${r.shape[2]}.`),A(r.dtype==="int32"||r.dtype==="float32",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${r.dtype}.`),A(t==="otsu"||t==="binary",()=>`Method must be binary or otsu, but was ${t}`),r.shape[2]===3){[p,d,c]=zn(r,[1,1,1],-1);let f=z(p,s),g=z(d,i),y=z(c,o);h=Y(Y(f,g),y)}else h=e;if(t==="otsu"){let f=ev(le(Hm(h),"int32"),kn([]),256);u=LL(f,l)}let m=n?xs(h,u):Nn(h,u);return le(z(m,255),"int32")}function LL(e,t){let n=Ke([-1]),a=Ke([0]),r=Ke([0]),s,i,o,l,u,p;for(let d=0;d`Error in transform: image must be rank 4,but got rank ${i.rank}.`),A(o.rank===2&&(o.shape[0]===i.shape[0]||o.shape[0]===1)&&o.shape[1]===8,()=>"Error in transform: Input transform should be batch x 8 or 1 x 8"),A(s==null||s.length===2,()=>`Error in transform: outputShape must be [height, width] or null, but got ${s}.`);let l={image:i,transforms:o},u={interpolation:n,fillMode:a,fillValue:r,outputShape:s};return O.runKernel(wu,l,u)}var BL=L({transform_:WL});function VL(e,t,n){A(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),A(n%1===0,()=>`bandPart(): numUpper must be an integer, got ${n}.`);let a=_(e,"a","bandPart");A(a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${a.rank}.`);let r=a.shape,[s,i]=a.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);let o=W(ol(0,s,1,"int32"),[-1,1]),l=ol(0,i,1,"int32"),u=pe(o,l),p=Ea(xs(u,xe(+t,"int32")),Er(u,xe(-n,"int32"))),d=It([s,i],a.dtype);return W(Ft(ct(W(a,[-1,s,i])).map(c=>mn(p,c,d))),r)}var UL=L({bandPart_:VL});function GL(e){let t;if(Array.isArray(e)){t=!1,A(e!=null&&e.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let r=e[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[s].shape[0]} vs. ${r})`)}else t=!0,e=zn(e,e.shape[0],0).map(r=>ws(r,[0]));A(e.length<=e[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`);let n=[],a=e;for(let r=0;r{let s=a[r];if(r>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`),e.rank===2)return J1(e,t);{let n=e.shape.slice(0,e.shape.length-2).reduce((l,u)=>l*u),a=ct(W(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];a.forEach(l=>{let[u,p]=J1(l,t);r.push(u),s.push(p)});let i=W(Ft(r,0),e.shape),o=W(Ft(s,0),e.shape);return[i,o]}}function J1(e,t=!1){return O.tidy(()=>{A(e.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`);let n=e.shape[0],a=e.shape[1],r=Pm(n),s=rr(e),i=_a([[1]],[1,1]),o=rr(i),l=n>=a?a:n;for(let u=0;u{let h=Be(s,[u,u],[n-u,1]),m=Cu(h),f=Be(s,[u,u],[1,1]),g=mn(Nn(f,0),_a([[-1]]),_a([[1]])),y=pe(f,z(g,m)),b=he(h,y);b.shape[0]===1?o=rr(i):o=Ze([i,Be(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let x=bt(he(Fe(g,y),m)),w=Be(s,[u,0],[n-u,a]),I=z(x,o),T=Ee(o);if(u===0)s=pe(w,Fe(I,Fe(T,w)));else{let $=pe(w,Fe(I,Fe(T,w)));s=Ze([Be(s,[0,0],[u,a]),$],0)}let C=Ee(I),E=Be(r,[0,u],[n,r.shape[1]-u]);if(u===0)r=pe(E,Fe(Fe(E,o),C));else{let $=pe(E,Fe(Fe(E,o),C));r=Ze([Be(r,[0,0],[n,u]),$],1)}return[o,s,r]}),_e([p,d,c])}return!t&&n>a&&(r=Be(r,[0,0],[n,a]),s=Be(s,[0,0],[a,a])),[r,s]})}var qL=L({qr_:jL}),xn;(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"})(xn||(xn={}));function KL(e,t,n=xn.SUM_BY_NONZERO_WEIGHTS){let a=_(e,"losses","computeWeightedLoss"),r=null;t!=null&&(r=_(t,"weights","computeWeightedLoss"));let s=r==null?a:z(a,r);if(n===xn.NONE)return s;if(n===xn.SUM)return fe(s);if(n===xn.MEAN){if(r==null)return Nt(s);{let i=a.size/r.size,o=he(fe(s),fe(r));return i>1?he(o,xe(i)):o}}if(n===xn.SUM_BY_NONZERO_WEIGHTS){if(r==null)return he(fe(s),xe(a.size));{let i=z(r,Zn(a.shape)),o=le(fe(ii(i,xe(0))),"float32");return he(fe(s),o)}}throw Error(`Unknown reduction: ${n}`)}var $r=L({computeWeightedLoss_:KL});function XL(e,t,n,a=xn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","absoluteDifference"),s=_(t,"predictions","absoluteDifference"),i=null;n!=null&&(i=_(n,"weights","absoluteDifference")),Sn(r.shape,s.shape,"Error in absoluteDifference: ");let o=Lt(pe(r,s));return $r(o,i,a)}var YL=L({absoluteDifference_:XL});function ZL(e,t,n,a,r=xn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","cosineDistance"),i=_(t,"predictions","cosineDistance"),o=null;a!=null&&(o=_(a,"weights","cosineDistance")),Sn(s.shape,i.shape,"Error in cosineDistance: ");let l=xe(1),u=pe(l,fe(z(s,i),n,!0));return $r(u,o,r)}var JL=L({cosineDistance_:ZL});function QL(e,t,n,a=xn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","hingeLoss"),s=_(t,"predictions","hingeLoss"),i=null;n!=null&&(i=_(n,"weights","hingeLoss")),Sn(r.shape,s.shape,"Error in hingeLoss: ");let o=xe(1);r=pe(z(xe(2),r),o);let l=Xe(pe(o,z(r,s)));return $r(l,i,a)}var ez=L({hingeLoss_:QL});function tz(e,t,n,a=1,r=xn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","huberLoss"),i=_(t,"predictions","huberLoss"),o=null;n!=null&&(o=_(n,"weights","huberLoss")),Sn(s.shape,i.shape,"Error in huberLoss: ");let l=xe(a),u=Lt(pe(i,s)),p=$u(u,l),d=pe(u,p),c=Y(z(xe(.5),ot(p)),z(l,d));return $r(c,o,r)}var nz=L({huberLoss_:tz});function az(e,t,n,a=1e-7,r=xn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","logLoss"),i=_(t,"predictions","logLoss"),o=null;n!=null&&(o=_(n,"weights","logLoss")),Sn(s.shape,i.shape,"Error in logLoss: ");let l=xe(1),u=xe(a),p=bt(z(s,ea(Y(i,u)))),d=z(pe(l,s),ea(Y(pe(l,i),u))),c=pe(p,d);return $r(c,o,r)}var rz=L({logLoss_:az});function sz(e,t,n,a=xn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","meanSquaredError"),s=_(t,"predictions","meanSquaredError"),i=null;n!=null&&(i=_(n,"weights","meanSquaredError")),Sn(r.shape,s.shape,"Error in meanSquaredError: ");let o=Jm(r,s);return $r(o,i,a)}var iz=L({meanSquaredError_:sz});function oz(e,t){let n=_(e,"labels","sigmoidCrossEntropyWithLogits"),a=_(t,"logits","sigmoidCrossEntropyWithLogits");Sn(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=Xe(a),s=z(a,n),i=Dc(fn(bt(Lt(a))));return Y(pe(r,s),i)}function lz(e,t,n,a=0,r=xn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"multiClassLabels","sigmoidCrossEntropy"),i=_(t,"logits","sigmoidCrossEntropy"),o=null;if(n!=null&&(o=_(n,"weights","sigmoidCrossEntropy")),Sn(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let u=xe(a),p=xe(1),d=xe(.5);s=Y(z(s,pe(p,u)),z(d,u))}let l=oz(s,i);return $r(l,o,r)}var uz=L({sigmoidCrossEntropy_:lz});function pz(e,t,n=-1){if(n===-1&&(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 or((a,r,s)=>{let i=Wm(r,[n],!0),o=pe(le(r,"float32"),i);s([a,o]);let l=bt(z(o,a));return{value:fe(l,[n]),gradFunc:(u,p)=>{let[d,c]=p,h=si(u.shape,[n]);return[z(W(u,h),pe(le(d,"float32"),fn(c))),z(W(u,h),pe(fn(c),le(d,"float32")))]}}})(e,t)}function cz(e,t,n,a=0,r=xn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"onehotLabels","softmaxCrossEntropy"),i=_(t,"logits","softmaxCrossEntropy"),o=null;if(n!=null&&(o=_(n,"weights","softmaxCrossEntropy")),Sn(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let u=xe(a),p=xe(1),d=xe(s.shape[1]);s=Y(z(s,pe(p,u)),he(u,d))}let l=pz(s,i);return $r(l,o,r)}var dz=L({softmaxCrossEntropy_:cz});function hz(e,t,n,a){let r=_(e,"indices","sparseFillEmptyRows","int32"),s=_(t,"values","sparseFillEmptyRows"),i=_(n,"denseShape","sparseFillEmptyRows","int32"),o=_(a,"defaultValue","sparseFillEmptyRows",s.dtype);if(r.rank!==2)throw new Error(`Indices should be Tensor2D but received shape ${r.shape}`);if(s.rank!==1)throw new Error(`Values should be Tensor1D but received shape ${s.shape}`);if(i.rank!==1)throw new Error(`Dense shape should be Tensor1D but received shape ${i.shape}`);if(o.rank!==0)throw new Error(`Default value should be a scalar but received shape ${o.shape}`);let l={indices:r,values:s,denseShape:i,defaultValue:o},u=O.runKernel(mc,l);return{outputIndices:u[0],outputValues:u[1],emptyRowIndicator:u[2],reverseIndexMap:u[3]}}var mz=L({sparseFillEmptyRows_:hz});function fz(e,t,n){let a=_(e,"inputIndices","sparseReshape","int32"),r=_(t,"inputShape","sparseReshape","int32"),s=_(n,"newShape","sparseReshape","int32");if(a.rank!==2)throw new Error(`Input indices should be Tensor2D but received shape ${a.shape}`);if(r.rank!==1)throw new Error(`Input shape should be Tensor1D but received shape ${r.shape}`);if(s.rank!==1)throw new Error(`New shape should be Tensor1D but received shape ${s.shape}`);let i={inputIndices:a,inputShape:r,newShape:s},o=O.runKernel(bu,i);return{outputIndices:o[0],outputShape:o[1]}}var gz=L({sparseReshape_:fz});function yz(e,t,n){let a=_(e,"data","sparseSegmentMean"),r=_(t,"indices","sparseSegmentMean","int32"),s=_(n,"segmentIds","sparseSegmentMean","int32");if(a.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.rank!==1)throw new Error(`Indices should be Tensor1D but received shape ${r.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return O.runKernel(fc,i)}var bz=L({sparseSegmentMean_:yz});function xz(e,t,n){let a=_(e,"data","sparseSegmentSum"),r=_(t,"indices","sparseSegmentSum","int32"),s=_(n,"segmentIds","sparseSegmentSum","int32");if(a.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.rank!==1)throw new Error(`Indices should be Tensor1D but received shape ${r.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape - ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return O.runKernel(gc,i)}var vz=L({sparseSegmentSum_:xz});function wz(e,t,n,a,r,s,i,o){let l=_(e,"data","stringNGrams","string");if(l.dtype!=="string")throw new Error("Data must be of datatype string");if(l.shape.length!==1)throw new Error(`Data must be a vector, saw: ${l.shape}`);let u=_(t,"dataSplits","stringNGrams");if(u.dtype!=="int32")throw new Error("Data splits must be of datatype int32");let p={separator:n,nGramWidths:a,leftPad:r,rightPad:s,padWidth:i,preserveShortSequences:o},d={data:l,dataSplits:u},c=O.runKernel(bc,d,p);return{nGrams:c[0],nGramsSplits:c[1]}}var kz=L({stringNGrams_:wz});function Iz(e,t,n=!0){let a=_(e,"input","stringSplit","string"),r=_(t,"delimiter","stringSplit","string");if(a.rank!==1)throw new Error(`Input should be Tensor1D but received shape ${a.shape}`);if(r.rank!==0)throw new Error(`Delimiter should be a scalar but received shape ${r.shape}`);let s={skipEmpty:n},i={input:a,delimiter:r},o=O.runKernel(xc,i,s);return{indices:o[0],values:o[1],shape:o[2]}}var Sz=L({stringSplit_:Iz});function Tz(e,t){let n=_(e,"input","stringToHashBucketFast","string"),a={numBuckets:t};if(t<=0)throw new Error("Number of buckets must be at least 1");let r={input:n};return O.runKernel(vc,r,a)}var Nz=L({stringToHashBucketFast_:Tz}),_T={fft:zc,ifft:ul,rfft:Wc,irfft:Zm},ET={hammingWindow:rL,hannWindow:wT,frame:kT,stft:lL},za={flipLeftRight:dL,grayscaleToRGB:mL,resizeNearestNeighbor:CT,resizeBilinear:NT,rotateWithOffset:gL,cropAndResize:pL,nonMaxSuppression:bL,nonMaxSuppressionAsync:NL,nonMaxSuppressionWithScore:_L,nonMaxSuppressionWithScoreAsync:AL,nonMaxSuppressionPadded:FL,nonMaxSuppressionPaddedAsync:RL,threshold:zL,transform:BL},Uv={bandPart:UL,gramSchmidt:HL,qr:qL},AT={absoluteDifference:YL,computeWeightedLoss:Ar,cosineDistance:JL,hingeLoss:ez,huberLoss:nz,logLoss:rz,meanSquaredError:iz,sigmoidCrossEntropy:uz,softmaxCrossEntropy:dz},$T={sparseFillEmptyRows:mz,sparseReshape:gz,sparseSegmentMean:bz,sparseSegmentSum:vz},FT={stringNGrams:kz,stringSplit:Sz,stringToHashBucketFast:Nz},$r=class extends IS{minimize(e,t=!1,n){let{value:a,grads:r}=this.computeGradients(e,n);if(n!=null){let s=n.map(i=>({name:i.name,tensor:r[i.name]}));this.applyGradients(s)}else this.applyGradients(r);return _e(r),t?a:(a.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return BS(e,t)}dispose(){this.iterations_!=null&&_e(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:be(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($r,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var of=class extends $r{constructor(e,t,n=null){super(),this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=O.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t],r=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:P(()=>qe(a).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:P(()=>qe(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedGrads[n].variable,o=this.accumulatedUpdates[n].variable;P(()=>{let l=Y(z(i,this.rho),z(ot(s),1-this.rho)),u=z(he(ln(Y(o,this.epsilon)),ln(Y(i,this.epsilon))),s),p=Y(z(o,this.rho),z(ot(u),1-this.rho));i.assign(l),o.assign(p);let d=Y(z(u,-this.learningRate),a);a.assign(d)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(_e(this.accumulatedGrads.map(e=>e.variable)),_e(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){let e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=e.length/2,n=!1;this.accumulatedGrads=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedUpdates=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}};of.className="Adadelta";gs(of);var lf=class extends $r{constructor(e,t=.1){super(),this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t];this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:P(()=>gn(a.shape,this.initialAccumulatorValue).variable(!1))});let r=Array.isArray(e)?e[n].tensor:e[t];if(r==null)return;let s=this.accumulatedGrads[n].variable;P(()=>{let i=Y(s,ot(r));s.assign(i);let o=Y(z(he(r,ln(Y(i,O.backend.epsilon()))),-this.learningRate),a);a.assign(o)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&_e(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);let t=!1;this.accumulatedGrads=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}};lf.className="Adagrad";gs(lf);var uf=class extends $r{constructor(e,t,n,a=null){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],P(()=>{this.accBeta1=be(t).variable(),this.accBeta2=be(n).variable()}),a==null&&(this.epsilon=O.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);P(()=>{let n=pe(1,this.accBeta1),a=pe(1,this.accBeta2);t.forEach((r,s)=>{let i=O.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:P(()=>qe(i).variable(o))}),this.accumulatedSecondMoment[s]==null&&(this.accumulatedSecondMoment[s]={originalName:`${r}/v`,variable:P(()=>qe(i).variable(o))});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,p=this.accumulatedSecondMoment[s].variable,d=Y(z(u,this.beta1),z(l,1-this.beta1)),c=Y(z(p,this.beta2),z(ot(l),1-this.beta2)),h=he(d,n),m=he(c,a);u.assign(d),p.assign(c);let f=Y(z(he(h,Y(ln(m),this.epsilon)),-this.learningRate),i);i.assign(f)}),this.accBeta1.assign(z(this.accBeta1,this.beta1)),this.accBeta2.assign(z(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&_e(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&_e(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),P(()=>{this.accBeta1.assign(_r(this.beta1,this.iterations_+1)),this.accBeta2.assign(_r(this.beta2,this.iterations_+1))});let t=e.length/2,n=!1;this.accumulatedFirstMoment=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}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)}};uf.className="Adam";gs(uf);var pf=class extends $r{constructor(e,t,n,a=null,r=0){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.decay=r,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],P(()=>{this.iteration=be(0).variable(),this.accBeta1=be(t).variable()}),a==null&&(this.epsilon=O.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);P(()=>{let n=pe(1,this.accBeta1),a=he(-this.learningRate,Y(z(this.iteration,this.decay),1));t.forEach((r,s)=>{let i=O.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:qe(i).variable(o)}),this.accumulatedWeightedInfNorm[s]==null&&(this.accumulatedWeightedInfNorm[s]={originalName:`${r}/v`,variable:qe(i).variable(o)});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,p=this.accumulatedWeightedInfNorm[s].variable,d=Y(z(u,this.beta1),z(l,1-this.beta1)),c=z(p,this.beta2),h=Lt(l),m=pr(c,h);u.assign(d),p.assign(m);let f=Y(z(he(a,n),he(d,Y(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(Y(this.iteration,1)),this.accBeta1.assign(z(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&_e(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&_e(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)}};pf.className="Adamax";gs(pf);var Bc=class extends $r{constructor(e){super(),this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=Array.isArray(e)?e[n].tensor:e[t];if(a==null)return;let r=O.registeredVariables[t];P(()=>{let s=Y(z(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=Jt(be(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}};Bc.className="SGD";gs(Bc);var cf=class extends Bc{constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=be(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t];this.accumulations[n]==null&&(this.accumulations[n]={originalName:`${t}/momentum`,variable:P(()=>qe(a).variable(!1))});let r=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];s!=null&&P(()=>{let i,o=Y(z(this.m,r),s);this.useNesterov?i=Y(z(this.c,Y(s,z(o,this.m))),a):i=Y(z(this.c,o),a),r.assign(o),a.assign(i)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&_e(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);let t=!1;this.accumulations=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}};cf.className="Momentum";gs(cf);var df=class extends $r{constructor(e,t=.9,n=0,a=null,r=!1){if(super(),this.learningRate=e,this.decay=t,this.momentum=n,this.epsilon=a,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=r,a==null&&(this.epsilon=O.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t],r=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:P(()=>qe(a).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:P(()=>qe(a).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:P(()=>qe(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedMeanSquares[n].variable,o=this.accumulatedMoments[n].variable;P(()=>{let l=Y(z(i,this.decay),z(ot(s),1-this.decay));if(this.centered){let u=this.accumulatedMeanGrads[n].variable,p=Y(z(u,this.decay),z(s,1-this.decay)),d=he(z(s,this.learningRate),ln(pe(l,Y(ot(p),this.epsilon)))),c=Y(z(o,this.momentum),d);i.assign(l),u.assign(p),o.assign(c);let h=pe(a,c);a.assign(h)}else{let u=Y(z(i,this.decay),z(ot(s),1-this.decay)),p=Y(z(o,this.momentum),he(z(s,this.learningRate),ln(Y(u,this.epsilon))));i.assign(u),o.assign(p);let d=pe(a,p);a.assign(d)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&_e(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&_e(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&_e(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=this.centered?e.length/3:e.length/2,n=!1;this.accumulatedMeanSquares=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedMoments=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(a=>({originalName:a.name,variable:a.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)}};df.className="RMSProp";gs(df);var Hr=class{static sgd(e){return new Bc(e)}static momentum(e,t,n=!1){return new cf(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new df(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new uf(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new of(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new pf(e,t,n,a,r)}static adagrad(e,t=.1){return new lf(e,t)}},zs={sgd:Hr.sgd,momentum:Hr.momentum,adadelta:Hr.adadelta,adagrad:Hr.adagrad,rmsprop:Hr.rmsprop,adamax:Hr.adamax,adam:Hr.adam},Cz=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function Gv(){return new Promise(e=>Cz(()=>e()))}var N={};Ae(N,{ERF_A1:()=>Vz,ERF_A2:()=>Uz,ERF_A3:()=>Gz,ERF_A4:()=>Hz,ERF_A5:()=>jz,ERF_P:()=>Bz,PARALLELIZE_THRESHOLD:()=>Hv,RowPartitionType:()=>er,SELU_SCALE:()=>RT,SELU_SCALEALPHA:()=>DT,applyActivation:()=>rf,assertAndGetBroadcastShape:()=>lt,assertAxesAreInnerMostDims:()=>FP,assertParamsConsistent:()=>_z,assignToTypedArray:()=>Jz,axesAreInnerMostDims:()=>mv,calculateShapes:()=>hS,checkEinsumDimSizes:()=>rW,checkPadOnDimRoundingMode:()=>Tn,combineLocations:()=>PS,combineRaggedTensorToTensorShapes:()=>Az,complexWithEvenIndex:()=>Xz,complexWithOddIndex:()=>Yz,computeConv2DInfo:()=>Ec,computeConv3DInfo:()=>ES,computeDefaultPad:()=>Xx,computeDilation2DInfo:()=>DM,computeOptimalWindowSize:()=>Rz,computeOutAndReduceShapes:()=>OS,computeOutShape:()=>Ez,computePool2DInfo:()=>_S,computePool3DInfo:()=>RM,convertConv2DDataFormat:()=>AS,decodeEinsumEquation:()=>nW,eitherStridesOrDilationsAreOne:()=>ur,expandShapeToKeepDim:()=>si,exponent:()=>eW,exponents:()=>Qz,fromStringArrayToUint8:()=>TW,fromUint8ToStringArray:()=>SW,getAxesPermutation:()=>LS,getBroadcastDims:()=>pS,getComplexWithIndex:()=>Zz,getEinsumComputePath:()=>sW,getEinsumPermutation:()=>aW,getFusedBiasGradient:()=>af,getFusedDyActivation:()=>nf,getImageCenter:()=>Mz,getInnerMostAxes:()=>DP,getPermuted:()=>Oz,getRaggedRank:()=>Fz,getReductionAxes:()=>Wt,getReshaped:()=>Pz,getReshapedPermuted:()=>Lz,getRowPartitionTypesHelper:()=>$z,getSliceBeginCoords:()=>zz,getSliceSize:()=>Wz,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>uW,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>pW,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>cW,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>mW,getSparseReshapeInputOutputMismatchErrorMessage:()=>gW,getSparseReshapeInputOutputMultipleErrorMessage:()=>fW,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>dW,getSparseReshapeNegativeOutputDimErrorMessage:()=>hW,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>vW,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>yW,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>bW,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>xW,getUndoAxesPermutation:()=>fv,isIdentityPermutation:()=>iW,log:()=>YF,mergeRealAndImagArrays:()=>qz,prepareAndValidate:()=>dS,prepareSplitSize:()=>lW,segment_util:()=>MT,shouldFuse:()=>sf,slice_util:()=>jt,splitRealAndImagArrays:()=>Kz,tupleValuesAreOne:()=>ns,upcastType:()=>ma,validateDefaultValueShape:()=>Dz,validateInput:()=>Lx,validateUpdateShape:()=>Ox,warn:()=>qr});function _z(e,t){let n=e[0].length;e.forEach((r,s)=>{$(r.length===n,()=>`Error in concat${n}D: rank of tensors[${s}] must be the same as the rank of the rest (${n})`)}),$(t>=0&&t`Error in concat${n}D: axis must be between 0 and ${n-1}.`);let a=e[0];e.forEach((r,s)=>{for(let i=0;i`Error in concat${n}D: Shape of tensors[${s}] (${r}) does not match the shape of the rest (${a}) along the non-concatenated axis ${s}.`)})}function Ez(e,t){let n=e[0].slice();for(let a=1;a=0)if(o>=0){if(o!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${r+e}] = ${s} but shape[${r+e}] = ${o}`)}else a[i]=s}return a}function $z(e){let t={FIRST_DIM_SIZE:er.FIRST_DIM_SIZE,VALUE_ROWIDS:er.VALUE_ROWIDS,ROW_LENGTHS:er.ROW_LENGTHS,ROW_SPLITS:er.ROW_SPLITS,ROW_LIMITS:er.ROW_LIMITS,ROW_STARTS:er.ROW_STARTS},n=[];for(let a of e)if(a in t)n.push(t[a]);else break;return n}function Fz(e){return e.length===0?0:e[0]===er.FIRST_DIM_SIZE?e.length-1:e.length}function Dz(e,t){if(e==null||t==null)return;let n=e.length,a=t.length;if(n>=a)throw new Error(`defaultValue.shape=${e} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${n} must be less than ragged tensor input flatValues.rank = ${a})`);for(let r=0;r=0&&i>=0&&s!==1&&s!==i)throw new Error(`defaultValue.shape=${e}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${r-e.length}] = ${s} but ragged tensor input.flatValues.shape[${r-e.length}] = ${i}`)}}var Hv=30;function Rz(e){return e<=Hv?e:mh(e,Math.floor(Math.sqrt(e)))}function Mz(e,t,n){let a=n*(typeof e=="number"?e:e[0]),r=t*(typeof e=="number"?e:e[1]);return[a,r]}function Pz(e,t,n,a=!0){let r=[];if(a)r=r.concat(t.slice(0)),r.push(e[0]/n),r=r.concat(e.slice(1));else{r=r.concat(e[0]);let s=t.length;for(let i=0;i=t*2+1||i%2===1?s.push(i):r.push(i);a.push(...r),a.push(0),a.push(...s)}return a}function Lz(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s/g,Q1=",",ek="...";function nW(e,t){e=e.replace(/\s/g,"");let n=(e.length-e.replace(tW,"").length)/ub.length;if(n<1)throw new Error("Equations without an arrow are not supported.");if(n>1)throw new Error(`Equation must contain exactly one arrow ("${ub}").`);let[a,r]=e.split(ub);$(a.indexOf(ek)===-1,()=>`The ellipsis notation ("${ek}") is not supported yet.`);let s=a.split(Q1),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error("Support for more than 2 input tensors is not implemented yet.");let o=[];for(let c=0;cm.indexOf(h)!==-1))throw new Error(`Output subscripts contain the label ${h} not present in the input subscripts.`);o.indexOf(h)===-1&&o.push(h)}for(let c=0;cr!==-1),{permutationIndices:n,expandDims:a}}function rW(e,t,n){let a=new Array(e);for(let r=0;r`Expected dimension ${a[t[r][i]]} at axis ${i} of input shaped ${JSON.stringify(s)}, but got dimension ${s[i]}`)}}function sW(e,t){let n=e,a=[],r=0;e.length===0&&n.push(-1),r=e.length+1;for(let i=0;it===n)}function oW(e,t){let n=[];for(let a=0;a"Number of splits must evenly divide the axis."),a=new Array(t).fill(e.shape[n]/t);else{let r=t.reduce((i,o)=>(o===-1&&(i+=1),i),0);$(r<=1,()=>"There should be only one negative value in split array.");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((o,l)=>l>0?o+l:o);t[s]=e.shape[n]-i}$(e.shape[n]===t.reduce((i,o)=>i+o),()=>"The sum of sizes must match the size of the axis dimension."),a=t}return a}function uW(e){return`Received SparseTensor with denseShape[0] = 0 but + ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return O.runKernel(gc,i)}var vz=L({sparseSegmentSum_:xz});function wz(e,t,n,a,r,s,i,o){let l=_(e,"data","stringNGrams","string");if(l.dtype!=="string")throw new Error("Data must be of datatype string");if(l.shape.length!==1)throw new Error(`Data must be a vector, saw: ${l.shape}`);let u=_(t,"dataSplits","stringNGrams");if(u.dtype!=="int32")throw new Error("Data splits must be of datatype int32");let p={separator:n,nGramWidths:a,leftPad:r,rightPad:s,padWidth:i,preserveShortSequences:o},d={data:l,dataSplits:u},c=O.runKernel(bc,d,p);return{nGrams:c[0],nGramsSplits:c[1]}}var kz=L({stringNGrams_:wz});function Iz(e,t,n=!0){let a=_(e,"input","stringSplit","string"),r=_(t,"delimiter","stringSplit","string");if(a.rank!==1)throw new Error(`Input should be Tensor1D but received shape ${a.shape}`);if(r.rank!==0)throw new Error(`Delimiter should be a scalar but received shape ${r.shape}`);let s={skipEmpty:n},i={input:a,delimiter:r},o=O.runKernel(xc,i,s);return{indices:o[0],values:o[1],shape:o[2]}}var Sz=L({stringSplit_:Iz});function Tz(e,t){let n=_(e,"input","stringToHashBucketFast","string"),a={numBuckets:t};if(t<=0)throw new Error("Number of buckets must be at least 1");let r={input:n};return O.runKernel(vc,r,a)}var Nz=L({stringToHashBucketFast_:Tz}),_T={fft:zc,ifft:ul,rfft:Wc,irfft:Zm},ET={hammingWindow:rL,hannWindow:wT,frame:kT,stft:lL},za={flipLeftRight:dL,grayscaleToRGB:mL,resizeNearestNeighbor:CT,resizeBilinear:NT,rotateWithOffset:gL,cropAndResize:pL,nonMaxSuppression:bL,nonMaxSuppressionAsync:NL,nonMaxSuppressionWithScore:_L,nonMaxSuppressionWithScoreAsync:$L,nonMaxSuppressionPadded:FL,nonMaxSuppressionPaddedAsync:RL,threshold:zL,transform:BL},Uv={bandPart:UL,gramSchmidt:HL,qr:qL},$T={absoluteDifference:YL,computeWeightedLoss:$r,cosineDistance:JL,hingeLoss:ez,huberLoss:nz,logLoss:rz,meanSquaredError:iz,sigmoidCrossEntropy:uz,softmaxCrossEntropy:dz},AT={sparseFillEmptyRows:mz,sparseReshape:gz,sparseSegmentMean:bz,sparseSegmentSum:vz},FT={stringNGrams:kz,stringSplit:Sz,stringToHashBucketFast:Nz},Ar=class extends IS{minimize(e,t=!1,n){let{value:a,grads:r}=this.computeGradients(e,n);if(n!=null){let s=n.map(i=>({name:i.name,tensor:r[i.name]}));this.applyGradients(s)}else this.applyGradients(r);return _e(r),t?a:(a.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return BS(e,t)}dispose(){this.iterations_!=null&&_e(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:xe(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(Ar,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var of=class extends Ar{constructor(e,t,n=null){super(),this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=O.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t],r=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:P(()=>qe(a).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:P(()=>qe(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedGrads[n].variable,o=this.accumulatedUpdates[n].variable;P(()=>{let l=Y(z(i,this.rho),z(ot(s),1-this.rho)),u=z(he(ln(Y(o,this.epsilon)),ln(Y(i,this.epsilon))),s),p=Y(z(o,this.rho),z(ot(u),1-this.rho));i.assign(l),o.assign(p);let d=Y(z(u,-this.learningRate),a);a.assign(d)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(_e(this.accumulatedGrads.map(e=>e.variable)),_e(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){let e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=e.length/2,n=!1;this.accumulatedGrads=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedUpdates=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}};of.className="Adadelta";gs(of);var lf=class extends Ar{constructor(e,t=.1){super(),this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t];this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:P(()=>gn(a.shape,this.initialAccumulatorValue).variable(!1))});let r=Array.isArray(e)?e[n].tensor:e[t];if(r==null)return;let s=this.accumulatedGrads[n].variable;P(()=>{let i=Y(s,ot(r));s.assign(i);let o=Y(z(he(r,ln(Y(i,O.backend.epsilon()))),-this.learningRate),a);a.assign(o)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&_e(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);let t=!1;this.accumulatedGrads=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}};lf.className="Adagrad";gs(lf);var uf=class extends Ar{constructor(e,t,n,a=null){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],P(()=>{this.accBeta1=xe(t).variable(),this.accBeta2=xe(n).variable()}),a==null&&(this.epsilon=O.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);P(()=>{let n=pe(1,this.accBeta1),a=pe(1,this.accBeta2);t.forEach((r,s)=>{let i=O.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:P(()=>qe(i).variable(o))}),this.accumulatedSecondMoment[s]==null&&(this.accumulatedSecondMoment[s]={originalName:`${r}/v`,variable:P(()=>qe(i).variable(o))});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,p=this.accumulatedSecondMoment[s].variable,d=Y(z(u,this.beta1),z(l,1-this.beta1)),c=Y(z(p,this.beta2),z(ot(l),1-this.beta2)),h=he(d,n),m=he(c,a);u.assign(d),p.assign(c);let f=Y(z(he(h,Y(ln(m),this.epsilon)),-this.learningRate),i);i.assign(f)}),this.accBeta1.assign(z(this.accBeta1,this.beta1)),this.accBeta2.assign(z(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&_e(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&_e(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),P(()=>{this.accBeta1.assign(_r(this.beta1,this.iterations_+1)),this.accBeta2.assign(_r(this.beta2,this.iterations_+1))});let t=e.length/2,n=!1;this.accumulatedFirstMoment=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}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)}};uf.className="Adam";gs(uf);var pf=class extends Ar{constructor(e,t,n,a=null,r=0){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.decay=r,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],P(()=>{this.iteration=xe(0).variable(),this.accBeta1=xe(t).variable()}),a==null&&(this.epsilon=O.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);P(()=>{let n=pe(1,this.accBeta1),a=he(-this.learningRate,Y(z(this.iteration,this.decay),1));t.forEach((r,s)=>{let i=O.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:qe(i).variable(o)}),this.accumulatedWeightedInfNorm[s]==null&&(this.accumulatedWeightedInfNorm[s]={originalName:`${r}/v`,variable:qe(i).variable(o)});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,p=this.accumulatedWeightedInfNorm[s].variable,d=Y(z(u,this.beta1),z(l,1-this.beta1)),c=z(p,this.beta2),h=Lt(l),m=pr(c,h);u.assign(d),p.assign(m);let f=Y(z(he(a,n),he(d,Y(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(Y(this.iteration,1)),this.accBeta1.assign(z(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&_e(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&_e(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)}};pf.className="Adamax";gs(pf);var Bc=class extends Ar{constructor(e){super(),this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=Array.isArray(e)?e[n].tensor:e[t];if(a==null)return;let r=O.registeredVariables[t];P(()=>{let s=Y(z(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=Jt(xe(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}};Bc.className="SGD";gs(Bc);var cf=class extends Bc{constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=xe(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t];this.accumulations[n]==null&&(this.accumulations[n]={originalName:`${t}/momentum`,variable:P(()=>qe(a).variable(!1))});let r=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];s!=null&&P(()=>{let i,o=Y(z(this.m,r),s);this.useNesterov?i=Y(z(this.c,Y(s,z(o,this.m))),a):i=Y(z(this.c,o),a),r.assign(o),a.assign(i)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&_e(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);let t=!1;this.accumulations=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}};cf.className="Momentum";gs(cf);var df=class extends Ar{constructor(e,t=.9,n=0,a=null,r=!1){if(super(),this.learningRate=e,this.decay=t,this.momentum=n,this.epsilon=a,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=r,a==null&&(this.epsilon=O.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t],r=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:P(()=>qe(a).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:P(()=>qe(a).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:P(()=>qe(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedMeanSquares[n].variable,o=this.accumulatedMoments[n].variable;P(()=>{let l=Y(z(i,this.decay),z(ot(s),1-this.decay));if(this.centered){let u=this.accumulatedMeanGrads[n].variable,p=Y(z(u,this.decay),z(s,1-this.decay)),d=he(z(s,this.learningRate),ln(pe(l,Y(ot(p),this.epsilon)))),c=Y(z(o,this.momentum),d);i.assign(l),u.assign(p),o.assign(c);let h=pe(a,c);a.assign(h)}else{let u=Y(z(i,this.decay),z(ot(s),1-this.decay)),p=Y(z(o,this.momentum),he(z(s,this.learningRate),ln(Y(u,this.epsilon))));i.assign(u),o.assign(p);let d=pe(a,p);a.assign(d)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&_e(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&_e(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&_e(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=this.centered?e.length/3:e.length/2,n=!1;this.accumulatedMeanSquares=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedMoments=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(a=>({originalName:a.name,variable:a.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)}};df.className="RMSProp";gs(df);var Hr=class{static sgd(e){return new Bc(e)}static momentum(e,t,n=!1){return new cf(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new df(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new uf(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new of(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new pf(e,t,n,a,r)}static adagrad(e,t=.1){return new lf(e,t)}},zs={sgd:Hr.sgd,momentum:Hr.momentum,adadelta:Hr.adadelta,adagrad:Hr.adagrad,rmsprop:Hr.rmsprop,adamax:Hr.adamax,adam:Hr.adam},Cz=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function Gv(){return new Promise(e=>Cz(()=>e()))}var N={};$e(N,{ERF_A1:()=>Vz,ERF_A2:()=>Uz,ERF_A3:()=>Gz,ERF_A4:()=>Hz,ERF_A5:()=>jz,ERF_P:()=>Bz,PARALLELIZE_THRESHOLD:()=>Hv,RowPartitionType:()=>er,SELU_SCALE:()=>RT,SELU_SCALEALPHA:()=>DT,applyActivation:()=>rf,assertAndGetBroadcastShape:()=>lt,assertAxesAreInnerMostDims:()=>FP,assertParamsConsistent:()=>_z,assignToTypedArray:()=>Jz,axesAreInnerMostDims:()=>mv,calculateShapes:()=>hS,checkEinsumDimSizes:()=>rW,checkPadOnDimRoundingMode:()=>Tn,combineLocations:()=>PS,combineRaggedTensorToTensorShapes:()=>$z,complexWithEvenIndex:()=>Xz,complexWithOddIndex:()=>Yz,computeConv2DInfo:()=>Ec,computeConv3DInfo:()=>ES,computeDefaultPad:()=>Xx,computeDilation2DInfo:()=>DM,computeOptimalWindowSize:()=>Rz,computeOutAndReduceShapes:()=>OS,computeOutShape:()=>Ez,computePool2DInfo:()=>_S,computePool3DInfo:()=>RM,convertConv2DDataFormat:()=>$S,decodeEinsumEquation:()=>nW,eitherStridesOrDilationsAreOne:()=>ur,expandShapeToKeepDim:()=>si,exponent:()=>eW,exponents:()=>Qz,fromStringArrayToUint8:()=>TW,fromUint8ToStringArray:()=>SW,getAxesPermutation:()=>LS,getBroadcastDims:()=>pS,getComplexWithIndex:()=>Zz,getEinsumComputePath:()=>sW,getEinsumPermutation:()=>aW,getFusedBiasGradient:()=>af,getFusedDyActivation:()=>nf,getImageCenter:()=>Mz,getInnerMostAxes:()=>DP,getPermuted:()=>Oz,getRaggedRank:()=>Fz,getReductionAxes:()=>Wt,getReshaped:()=>Pz,getReshapedPermuted:()=>Lz,getRowPartitionTypesHelper:()=>Az,getSliceBeginCoords:()=>zz,getSliceSize:()=>Wz,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>uW,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>pW,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>cW,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>mW,getSparseReshapeInputOutputMismatchErrorMessage:()=>gW,getSparseReshapeInputOutputMultipleErrorMessage:()=>fW,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>dW,getSparseReshapeNegativeOutputDimErrorMessage:()=>hW,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>vW,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>yW,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>bW,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>xW,getUndoAxesPermutation:()=>fv,isIdentityPermutation:()=>iW,log:()=>YF,mergeRealAndImagArrays:()=>qz,prepareAndValidate:()=>dS,prepareSplitSize:()=>lW,segment_util:()=>MT,shouldFuse:()=>sf,slice_util:()=>jt,splitRealAndImagArrays:()=>Kz,tupleValuesAreOne:()=>ns,upcastType:()=>ma,validateDefaultValueShape:()=>Dz,validateInput:()=>Lx,validateUpdateShape:()=>Ox,warn:()=>qr});function _z(e,t){let n=e[0].length;e.forEach((r,s)=>{A(r.length===n,()=>`Error in concat${n}D: rank of tensors[${s}] must be the same as the rank of the rest (${n})`)}),A(t>=0&&t`Error in concat${n}D: axis must be between 0 and ${n-1}.`);let a=e[0];e.forEach((r,s)=>{for(let i=0;i`Error in concat${n}D: Shape of tensors[${s}] (${r}) does not match the shape of the rest (${a}) along the non-concatenated axis ${s}.`)})}function Ez(e,t){let n=e[0].slice();for(let a=1;a=0)if(o>=0){if(o!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${r+e}] = ${s} but shape[${r+e}] = ${o}`)}else a[i]=s}return a}function Az(e){let t={FIRST_DIM_SIZE:er.FIRST_DIM_SIZE,VALUE_ROWIDS:er.VALUE_ROWIDS,ROW_LENGTHS:er.ROW_LENGTHS,ROW_SPLITS:er.ROW_SPLITS,ROW_LIMITS:er.ROW_LIMITS,ROW_STARTS:er.ROW_STARTS},n=[];for(let a of e)if(a in t)n.push(t[a]);else break;return n}function Fz(e){return e.length===0?0:e[0]===er.FIRST_DIM_SIZE?e.length-1:e.length}function Dz(e,t){if(e==null||t==null)return;let n=e.length,a=t.length;if(n>=a)throw new Error(`defaultValue.shape=${e} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${n} must be less than ragged tensor input flatValues.rank = ${a})`);for(let r=0;r=0&&i>=0&&s!==1&&s!==i)throw new Error(`defaultValue.shape=${e}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${r-e.length}] = ${s} but ragged tensor input.flatValues.shape[${r-e.length}] = ${i}`)}}var Hv=30;function Rz(e){return e<=Hv?e:mh(e,Math.floor(Math.sqrt(e)))}function Mz(e,t,n){let a=n*(typeof e=="number"?e:e[0]),r=t*(typeof e=="number"?e:e[1]);return[a,r]}function Pz(e,t,n,a=!0){let r=[];if(a)r=r.concat(t.slice(0)),r.push(e[0]/n),r=r.concat(e.slice(1));else{r=r.concat(e[0]);let s=t.length;for(let i=0;i=t*2+1||i%2===1?s.push(i):r.push(i);a.push(...r),a.push(0),a.push(...s)}return a}function Lz(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s/g,Q1=",",ek="...";function nW(e,t){e=e.replace(/\s/g,"");let n=(e.length-e.replace(tW,"").length)/ub.length;if(n<1)throw new Error("Equations without an arrow are not supported.");if(n>1)throw new Error(`Equation must contain exactly one arrow ("${ub}").`);let[a,r]=e.split(ub);A(a.indexOf(ek)===-1,()=>`The ellipsis notation ("${ek}") is not supported yet.`);let s=a.split(Q1),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error("Support for more than 2 input tensors is not implemented yet.");let o=[];for(let c=0;cm.indexOf(h)!==-1))throw new Error(`Output subscripts contain the label ${h} not present in the input subscripts.`);o.indexOf(h)===-1&&o.push(h)}for(let c=0;cr!==-1),{permutationIndices:n,expandDims:a}}function rW(e,t,n){let a=new Array(e);for(let r=0;r`Expected dimension ${a[t[r][i]]} at axis ${i} of input shaped ${JSON.stringify(s)}, but got dimension ${s[i]}`)}}function sW(e,t){let n=e,a=[],r=0;e.length===0&&n.push(-1),r=e.length+1;for(let i=0;it===n)}function oW(e,t){let n=[];for(let a=0;a"Number of splits must evenly divide the axis."),a=new Array(t).fill(e.shape[n]/t);else{let r=t.reduce((i,o)=>(o===-1&&(i+=1),i),0);A(r<=1,()=>"There should be only one negative value in split array.");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((o,l)=>l>0?o+l:o);t[s]=e.shape[n]-i}A(e.shape[n]===t.reduce((i,o)=>i+o),()=>"The sum of sizes must match the size of the axis dimension."),a=t}return a}function uW(e){return`Received SparseTensor with denseShape[0] = 0 but indices.shape[0] = ${e}`}function pW(e,t){return`indices(${e}, 0) is invalid: ${t} < 0`}function cW(e,t,n){return`indices(${e}, 0) is invalid: ${t} >= ${n}`}function dW(e,t){return`only one output dimension may be -1, not both ${e} and ${t}`}function hW(e,t){return`size ${e} must be non-negative, not ${t}`}function mW(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function fW(e,t){let n=mt(e),a=mt(t);return`Input to reshape is a SparseTensor with ${n} - dense values, but the requested shape requires a multiple of ${a}. inputShape=${e} outputShape= ${t}`}function gW(e,t){let n=mt(e),a=mt(t);return`Input to reshape is a tensor with ${n} dense values, but the requested shape has ${a}. inputShape=${e} outputShape=${t}`}function yW(){return"segment ids must be >= 0"}function bW(){return"segment ids are not increasing"}function xW(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function vW(e,t,n){return`Bad: indices[${e}] == ${t} out of range [0, ${n})`}var MT={};Ae(MT,{collectGatherOpShapeInfo:()=>IW,computeOutShape:()=>kW,segOpComputeOptimalWindowSize:()=>wW});function wW(e,t){let n=!1,a;for(e<=Hv?(a=e,n=!0):a=mh(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=mh(e,a+1);return a}function kW(e,t,n){let a=[],r=e.length;for(let s=0;sr))throw new Error(`Expect batchDims in the range of [-${r}, ${r}], but got ${a}`);if(a<0&&(a+=r),a>s)throw new Error(`batchDims (${a}) must be less than rank(x) ( - ${s}).`);if(nvh(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function TW(e){return e.map(t=>Sc(t))}var cr={};Ae(cr,{nonMaxSuppressionV3Impl:()=>IT,nonMaxSuppressionV4Impl:()=>ST,nonMaxSuppressionV5Impl:()=>TT,whereImpl:()=>dT});var PT={kernelName:wl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,fo(oe(n,"float32"),-1))}}},NW={kernelName:kl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ot(oe(n,"float32")),r=ln(pe(be(1),a));return bt(he(e,r))}}}},CW={kernelName:Il,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ln(pe(ot(oe(n,"float32")),1));return he(e,a)}}}},_W={kernelName:cs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=e,i=Wt(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Wt(a.shape,r);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}},EW={kernelName:mi,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},AW={kernelName:fi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},$W={kernelName:sc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},FW={kernelName:Nl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,ln(pe(be(1),ot(oe(n,"float32")))))}}},DW={kernelName:Cl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ln(Y(be(1),ot(oe(n,"float32"))));return he(e,a)}}}},RW={kernelName:Al,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=Y(ot(n),ot(a)),i=z(e,he(a,s)),o=Wt(n.shape,r);return o.length>0&&(i=fe(i,o)),W(i,n.shape)},b:()=>{let s=Y(ot(n),ot(a)),i=bt(z(e,he(n,s))),o=Wt(a.shape,r);return o.length>0&&(i=fe(i,o)),W(i,a.shape)}}}},MW={kernelName:_l,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,Y(ot(oe(n,"float32")),1))}}},PW={kernelName:El,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,pe(be(1),ot(oe(n,"float32"))))}}};function OW(e,t,n,a,r,s){let i=_(e,"dy","avgPool3dGrad"),o=_(t,"input","avgPool3dGrad"),l=i,u=o,p=!1;o.rank===4&&(p=!0,l=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),u=W(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),$(l.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`),$(u.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${u.rank}.`),Tn("avgPool3dGrad",r,s);let d={dy:l,input:u},c={filterSize:n,strides:a,pad:r,dimRoundingMode:s},h=O.runKernel(Yh,d,c);return p?W(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var LW=L({avgPool3dGrad_:OW}),zW={kernelName:ic,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>LW(e,a,r,s,i,o)}}};function WW(e,t,n,a,r){let s=_(e,"dy","avgPoolGrad"),i=_(t,"input","avgPoolGrad");$(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let o=i,l=s,u=!1;i.rank===3&&(u=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),$(l.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`),$(o.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`);let p={dy:l,input:o},d={filterSize:n,strides:a,pad:r},c=O.runKernel(Xh,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var BW=L({avgPoolGrad_:WW}),VW={kernelName:gi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>BW(e,a,r,s,i)}}},UW={kernelName:yi,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>Fe(e,r,!1,!0),b:()=>Fe(a,e,!0,!1)}:!s&&i?{a:()=>Fe(e,r,!1,!1),b:()=>Fe(e,a,!0,!1)}:s&&!i?{a:()=>Fe(r,e,!1,!0),b:()=>Fe(a,e,!1,!1)}:{a:()=>Fe(r,e,!0,!0),b:()=>Fe(e,a,!0,!0)}}},GW={kernelName:$l,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>Pc(e,a,r)}}},HW={kernelName:RI,gradFunc:(e,t,n)=>{let a=n,r=a.inputShape,s=a.shape,i=Array.from(s);for(let l=r.length-1;l>=0;l--)if(r[l]===s[l])i[l]=1;else if(r[l]!==1)throw new Error(`broadcastTo(): [${r}] cannot be broadcast to [${s}].`);let o=[];for(let l=0;l1&&o.push(l);return{x:()=>fe(e,o,!0)}}},jW={kernelName:bi,gradFunc:e=>({x:()=>e.clone()})},qW={kernelName:xi,gradFunc:e=>({x:()=>qe(e)})},KW={kernelName:ds,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>mn(Ea(Er(a,r),xs(a,s)),e,qe(e))}}},XW={kernelName:oc,inputsToSave:["x"],gradFunc:PT.gradFunc},YW={kernelName:Fl,saveAllInputs:!0,gradFunc:(e,t,n)=>{let a=t.map(o=>o.shape),{axis:r}=n,s=Aa(r,t[0].shape)[0],i=a.map(o=>o[s]);return zn(e,i,s).map(o=>()=>o)}},ZW={kernelName:vi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return $(ns(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>iv(a.shape,e,r,i,o,l),filter:()=>Bv(a,e,r.shape,i,o,l)}}},JW={kernelName:wi,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>$t(e,r,s,i,o,1,l),filter:()=>Bv(e,a,r.shape,s,i,o,l)}}};function QW(e,t,n,a,r){let s=e;e.rank===4&&(s=W(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;i.rank===4&&(i=W(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),$(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),$(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),$(n.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`),$(s.shape[4]===n[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`),$(i.shape[4]===n[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${n[4]}).`);let o={x:s,dy:i},l={strides:a,pad:r,filterShape:n};return O.runKernel(tm,o,l)}var eB=L({conv3DBackpropFilter_:QW}),tB={kernelName:lc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;$(ns(a),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${a}'`);let[i,o]=t;return{x:()=>DS(i.shape,e,o,r,s),filter:()=>eB(i,e,o.shape,r,s)}}},nB={kernelName:ki,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(bt(Km(oe(n,"float32"))),e)}}},aB={kernelName:Ii,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Xm(oe(n,"float32")),e)}}},rB={kernelName:Si,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=LS([r],a.rank),l=Mm(e,r,s,!i);return o!=null&&(l=Ee(l,o)),l}}}},sB={kernelName:Ti,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;$(ns(o),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`);let[l,u]=t;return $(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),$(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${u.rank}.`),$(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]}.`),$(ur(r,o),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`),Tn("depthwiseConv2d",s,i),{x:()=>vT(l.shape,e,u,r,s,o,i),filter:()=>xT(l,e,u.shape,r,s,o,i)}}},iB={kernelName:uc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,s={x:a,filter:r,dy:e},i={x:a,filter:r,dy:e};return{x:()=>O.runKernel(fh,s,n),filter:()=>O.runKernel(gh,i,n)}}},oB={kernelName:Ci,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>O.runKernel(lm,a)}}},lB={kernelName:Pl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(fn(bt(ot(n))),2/Math.sqrt(Math.PI));return{x:()=>z(e,a)}}},uB={kernelName:_i,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,n)}}},pB={kernelName:Ll,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>W(e,n.shape)}}},cB={kernelName:zl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,fn(n))}}},dB={kernelName:Ei,gradFunc:e=>({x:()=>qe(e)})},hB={kernelName:Ai,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=he(e,oe(a,"float32")),i=Wt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,oe(n,"float32")),i=Wt(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=ot(a);return bt(he(s,oe(o,"float32")))}}}},mB={kernelName:$i,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?be(1):o,u=Wt(s.shape,r.shape),p=[];if(s.rank===1){for(let f=0;fs.rank===1?W(z(z(e,Ln(W(h,[1,1,1,s.shape[0]]),p)),l),r.shape):W(z(z(e,h),l),r.shape),mean:()=>{let f=z(z(h,be(-1)),c);return s.rank===1&&(f=fe(f,u)),W(f,s.shape)},variance:()=>{let f=z(z(m,d),c);return s.rank===1&&(f=fe(f,u)),W(f,s.shape)},scale:()=>{let f=z(d,h),g=z(e,f);return s.rank===1&&(g=fe(g,u)),W(g,s.shape)},offset:()=>{let f=e;return s.rank===1&&(f=fe(f,u)),W(f,s.shape)}}}},fB={kernelName:Bl,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{let[a,r]=t,{axis:s}=n,i=Aa(s,a.shape)[0];return{x:()=>{let o=a.shape,l=r.size,u=o.slice(0,i),p=u.length,d=o.slice(s,o.length).slice(1),c=d.length,h=tk(0,p),m=tk(p+1,p+1+c),f=nk([u,[l],d]),g=W(e,f),y=W(r,[l]),b=nk([[p],h,m]),x=Ee(g,b),w=ef(x,y,a.shape[i]),I=fv(b);return w=Ee(w,I),w},indices:()=>r}}};function tk(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>qe(n),b:()=>qe(a)}}},yB={kernelName:Di,gradFunc:e=>({x:()=>oe(e,"float32")})},bB={kernelName:Gl,gradFunc:e=>({x:()=>qe(e)})},xB={kernelName:Hl,gradFunc:e=>({x:()=>qe(e)})},vB={kernelName:jl,gradFunc:e=>({x:()=>qe(e)})},wB={kernelName:Ri,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=Nn(a,0);return{x:()=>mn(s,e,z(e,r))}}},kB={kernelName:Xl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,Y(n,1))}}},IB={kernelName:Mi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,oe(n,"float32"))}}},SB={kernelName:PI,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=fn(a);return pe(e,z(fe(e,r,!0),s))}}}};function TB(e,t,n,a=5,r=1,s=1,i=.5){let o={x:e,y:t,dy:n},l={depthRadius:a,bias:r,alpha:s,beta:i};return O.runKernel(hm,o,l)}var NB=L({localResponseNormalizationBackprop_:TB}),CB={kernelName:cc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>NB(a,r,e,s,i,o,l)}}};function OT(e,t,n,a){return t.rankz(e,oe(Qn(n,t),e.dtype))}}var ak={kernelName:Pi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{reductionIndices:r}=a,s=t[0],i=t[1],o=Aa(r,s.shape),l=OT(e,i,s,o);return{x:()=>l.x()}}},_B={kernelName:Oi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,oe(Er(n,a),"float32")),b:()=>z(e,oe(Om(n,a),"float32"))}}};function EB(e,t,n,a,r,s,i){let o=_(e,"dy","maxPool3dGrad"),l=_(t,"input","maxPool3dGrad"),u=_(n,"output","maxPool3dGrad"),p=o,d=l,c=u,h=!1;l.rank===4&&(h=!0,p=W(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),d=W(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),c=W(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]])),$(p.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${p.rank}.`),$(d.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${d.rank}.`),$(c.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${c.rank}.`),Tn("maxPool3dGrad",s,i);let m={dy:p,input:d,output:c},f={filterSize:a,strides:r,pad:s,dimRoundingMode:i},g=O.runKernel(fm,m,f);return h?W(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var AB=L({maxPool3dGrad_:EB}),$B={kernelName:dc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>AB(e,a,r,s,i,o,l)}}};function FB(e,t,n,a,r,s,i){let o=_(e,"dy","maxPoolGrad"),l=_(t,"input","maxPoolGrad"),u=_(n,"output","maxPoolGrad");$(l.rank===o.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`),$(o.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`),$(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),Tn("maxPoolGrad",s,i);let p={dy:o,input:l,output:u},d={filterSize:a,strides:r,pad:s,dimRoundingMode:i};return O.runKernel(mm,p,d)}var DB=L({maxPoolGrad_:FB}),RB={kernelName:Li,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>DB(e,a,r,s,i,o)}}},MB={kernelName:zi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=Aa(r,a.shape),i=OS(a.shape,s)[1],o=mt(i);return{x:()=>{let l=a.shape.slice();s.forEach(p=>{l[p]=1});let u=W(e,l);return he(z(u,Zn(a.shape,"float32")),o)}}}},PB={kernelName:Wi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=Aa(r,s.shape),l=OT(e,i,s,o);return{x:()=>l.x()}}},OB={kernelName:Bi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,oe(xs(n,a),"float32")),b:()=>z(e,oe(Nn(n,a),"float32"))}}},LB={kernelName:Vi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Be(e,s,a.shape)}}},zB={kernelName:Ql,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=Wt(n.shape,r);return s.length>0?W(fe(e,s),n.shape):e},b:()=>{let s=z(e,bt(_u(he(n,a)))),i=Wt(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},WB={kernelName:Ui,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=z(e,oe(a,"float32")),i=Wt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,oe(n,"float32")),i=Wt(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},BB={kernelName:eu,gradFunc:e=>({x:()=>bt(e)})},VB={kernelName:Gi,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>It(n.shape,"float32")}}},UB={kernelName:su,gradFunc:e=>({x:()=>qe(e)})},GB={kernelName:iu,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return ct(e,a).map(r=>()=>r)}},rk={kernelName:Hi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Be(e,s,a.shape)}}},HB={kernelName:ji,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{let[n,a,r]=t,s=n,i=a,o=lt(s.shape,i.shape);return{a:()=>{let l=oe(i,"float32"),u=z(e,z(l,_r(s,pe(l,be(1))))),p=Wt(s.shape,o);return p.length>0&&(u=fe(u,p)),W(u,s.shape)},b:()=>{let l=Nn(s,0),u=mn(l,ea(s),qe(s)),p=z(e,z(r,u)),d=Wt(i.shape,o);return d.length>0&&(p=fe(p,d)),W(p,i.shape)}}}},jB={kernelName:qi,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=Nn(n,0);return{x:()=>mn(r,e,z(e,a)),alpha:()=>{let s=mn(r,qe(e),z(e,n)),i=Wt(a.shape,e.shape);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}};function qB(e,t,n){let a=e.shape.slice();a[n]=1;let r=W(t,a),s=Kp(e,n,!0,!1),i=Kp(e,n,!0,!0),o=z(s,i);return z(r,o)}function KB(e,t,n){let a=e.shape.length,r=a-n.length,s=N.getAxesPermutation(n,a),i=e;s!=null&&(i=Ee(e,s));let o=i.shape.slice(),l=o.splice(a-n.length,n.length).reduce((d,c)=>d*c,1);o.push(l);let u=i.reshape(o),p=qB(u,t,r);if(p=p.reshape(i.shape),s!=null){let d=N.getUndoAxesPermutation(s);p=Ee(p,d)}return p}var XB={kernelName:Ki,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=[];return r==null?s=a.shape.map((i,o)=>o):typeof r=="number"?s=[r]:s=r,{x:()=>KB(a,e,s)}}},YB={kernelName:Ni,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=he(e,oe(a,"float32")),i=Wt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,oe(n,"float32")),i=Wt(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=ot(a);return bt(he(s,oe(o,"float32")))}}}},ZB={kernelName:ou,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,bt(ot(n)))}}},JB={kernelName:Ji,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(xs(n,6),fo(n));return{x:()=>z(e,oe(a,"float32"))}}},QB={kernelName:Xi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,oe(fo(n),"float32"))}}},e4={kernelName:lu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,n.shape)}}},t4={kernelName:Zi,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(Im,r,n)}}},n4={kernelName:Yi,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(km,r,n)}}},a4={kernelName:Qi,gradFunc:(e,t,n)=>{let{dims:a}=n,r=Aa(a,e.shape);return{x:()=>fa(e,r)}}},r4={kernelName:eo,gradFunc:e=>({x:()=>qe(e)})},s4={kernelName:to,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>bt(he(e,z(_r(n,1.5),2)))}}},i4={kernelName:pu,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>oe(qe(n),"float32"),t:()=>z(e,oe(n,e.dtype)),e:()=>z(e,oe(Rc(n),e.dtype))}}},o4={kernelName:cu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=Nn(n,be(0)),r=be(DT),s=be(RT),i=z(e,s),o=z(z(e,r),fn(oe(n,"float32")));return mn(a,i,o)}}}},l4={kernelName:ao,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(n,pe(be(1),n)))}}},u4={kernelName:mu,gradFunc:e=>({x:()=>qe(e)})},p4={kernelName:no,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z($c(oe(n,"float32")),e)}}},c4={kernelName:hu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Rm(oe(n,"float32")),e)}}},d4={kernelName:du,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=kS(a,r,s),u=[];for(let p=0;pya(e,u)}}},h4={kernelName:io,outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{dim:r}=n,s=!0,i=z(e,a);return{logits:()=>pe(i,z(fe(i,[r],s),a))}}},m4={kernelName:fu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,da(n))}}},sk={kernelName:gu,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>Ac(e,a,r)}}},ik={kernelName:yu,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>Ze(e,a)}}},f4={kernelName:ro,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,z(ln(oe(n,"float32")),2))}}},g4={kernelName:yc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(oe(n,"float32"),2))}}},y4={kernelName:oo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=be(2);return{a:()=>z(e,z(r,pe(n,a))),b:()=>z(e,z(r,pe(a,n)))}}},b4={kernelName:ms,gradFunc:e=>({x:()=>qe(e)})},x4={kernelName:lo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=e,i=Wt(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Wt(a.shape,r);return i.length>0&&(s=fe(s,i)),W(bt(s),a.shape)}}}},v4={kernelName:so,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,r=a.shape.slice(),{axis:s}=n;Aa(s,a.shape).forEach(l=>{r[l]=1});let i=W(e,r),o=z(i,Zn(a.shape,"float32"));return{x:()=>o}}},w4={kernelName:uo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,ot($c(n)))}}},k4={kernelName:po,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(pe(be(1),ot(n)),e)}}},I4={kernelName:hs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{reps:r}=n;return{x:()=>{let s=qe(a);if(a.rank===1)for(let i=0;i{let a=n,{perm:r}=a,s=fv(r);return{x:()=>Ee(e,s)}}},T4={kernelName:ku,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>Ft(e,r)}}},N4={kernelName:wc,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>C4(e,n)}}};function C4(e,t){let n=pr(t,qe(t)),a=Eu(e,n),r=Er(t,be(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>qe(e)})},E4=[PT,NW,CW,_W,EW,AW,$W,FW,DW,RW,MW,PW,zW,VW,UW,GW,HW,jW,qW,KW,XW,YW,JW,ZW,tB,nB,aB,rB,sB,iB,YB,oB,lB,uB,pB,cB,hB,dB,mB,fB,gB,yB,bB,xB,vB,wB,kB,IB,SB,CB,ak,ak,_B,$B,RB,MB,PB,OB,LB,zB,WB,BB,VB,UB,GB,rk,rk,HB,jB,XB,ZB,JB,QB,e4,t4,n4,a4,r4,s4,i4,o4,l4,u4,p4,c4,d4,h4,m4,sk,sk,ik,ik,f4,y4,g4,b4,x4,v4,w4,k4,I4,S4,T4,N4,_4];for(let e of E4)OI(e);J().prototype.abs=function(){return this.throwIfDisposed(),Lt(this)};J().prototype.acos=function(){return this.throwIfDisposed(),Bx(this)};J().prototype.acosh=function(){return this.throwIfDisposed(),Vx(this)};J().prototype.add=function(e){return this.throwIfDisposed(),Y(this,e)};J().prototype.all=function(e,t){return this.throwIfDisposed(),$m(this,e,t)};J().prototype.any=function(e,t){return this.throwIfDisposed(),qp(this,e,t)};J().prototype.argMax=function(e){return this.throwIfDisposed(),ai(this,e)};J().prototype.argMin=function(e){return this.throwIfDisposed(),Ux(this,e)};J().prototype.asScalar=function(){return this.throwIfDisposed(),$(this.size===1,()=>"The array must have only 1 element."),W(this,[])};J().prototype.asType=function(e){return this.throwIfDisposed(),oe(this,e)};J().prototype.as1D=function(){return this.throwIfDisposed(),W(this,[this.size])};J().prototype.as2D=function(e,t){return this.throwIfDisposed(),W(this,[e,t])};J().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),W(this,[e,t,n])};J().prototype.as4D=function(e,t,n,a){return this.throwIfDisposed(),W(this,[e,t,n,a])};J().prototype.as5D=function(e,t,n,a,r){return this.throwIfDisposed(),W(this,[e,t,n,a,r])};J().prototype.asin=function(){return this.throwIfDisposed(),Gx(this)};J().prototype.asinh=function(){return this.throwIfDisposed(),Hx(this)};J().prototype.atan=function(){return this.throwIfDisposed(),jx(this)};J().prototype.atan2=function(e){return this.throwIfDisposed(),qx(this,e)};J().prototype.atanh=function(){return this.throwIfDisposed(),Kx(this)};J().prototype.avgPool=function(e,t,n,a){return this.throwIfDisposed(),ga(this,e,t,n,a)};J().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),Ac(this,e,t)};J().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),ys(this,e,t,n,a,r)};J().prototype.broadcastTo=function(e){return this.throwIfDisposed(),Ks(this,e)};J().prototype.cast=function(e){return this.throwIfDisposed(),oe(this,e)};J().prototype.ceil=function(){return this.throwIfDisposed(),tv(this)};J().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),en(this,e,t)};J().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Te&&(e=[e]),Ze([this,...e],t)};J().prototype.conv1d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Fm(this,e,t,n,a,r,s)};J().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),Dm(this,e,t,n,a,r)};J().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),$t(this,e,t,n,a,r,s)};J().prototype.cos=function(){return this.throwIfDisposed(),$c(this)};J().prototype.cosh=function(){return this.throwIfDisposed(),Rm(this)};J().prototype.cumprod=function(e,t,n){return this.throwIfDisposed(),Kp(this,e,t,n)};J().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),Mm(this,e,t,n)};J().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),uv(this,e,t)};J().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),bs(this,e,t,n,a,r,s)};J().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),pv(this,e,t,n,a,r)};J().prototype.divNoNan=function(e){return this.throwIfDisposed(),cv(this,e)};J().prototype.div=function(e){return this.throwIfDisposed(),he(this,e)};J().prototype.dot=function(e){return this.throwIfDisposed(),dv(this,e)};J().prototype.elu=function(){return this.throwIfDisposed(),Nu(this)};J().prototype.equal=function(e){return this.throwIfDisposed(),Qn(this,e)};J().prototype.erf=function(){return this.throwIfDisposed(),hv(this)};J().prototype.euclideanNorm=function(e,t){return this.throwIfDisposed(),gv(this,e,t)};J().prototype.exp=function(){return this.throwIfDisposed(),fn(this)};J().prototype.expandDims=function(e){return this.throwIfDisposed(),Zt(this,e)};J().prototype.expm1=function(){return this.throwIfDisposed(),yv(this)};J().prototype.fft=function(){return this.throwIfDisposed(),zc(this)};J().prototype.flatten=function(){return this.throwIfDisposed(),W(this,[this.size])};J().prototype.floor=function(){return this.throwIfDisposed(),_u(this)};J().prototype.floorDiv=function(e){return this.throwIfDisposed(),Am(this,e)};J().prototype.gather=function(e,t){return this.throwIfDisposed(),Eu(this,e,t)};J().prototype.greaterEqual=function(e){return this.throwIfDisposed(),Er(this,e)};J().prototype.greater=function(e){return this.throwIfDisposed(),Nn(this,e)};J().prototype.ifft=function(){return this.throwIfDisposed(),ul(this)};J().prototype.irfft=function(){return this.throwIfDisposed(),Zm(this)};J().prototype.isFinite=function(){return this.throwIfDisposed(),bv(this)};J().prototype.isInf=function(){return this.throwIfDisposed(),xv(this)};J().prototype.isNaN=function(){return this.throwIfDisposed(),vv(this)};J().prototype.leakyRelu=function(e){return this.throwIfDisposed(),Fc(this,e)};J().prototype.lessEqual=function(e){return this.throwIfDisposed(),xs(this,e)};J().prototype.less=function(e){return this.throwIfDisposed(),Om(this,e)};J().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),wv(this,e,t,n,a)};J().prototype.logSigmoid=function(){return this.throwIfDisposed(),kv(this)};J().prototype.logSoftmax=function(e){return this.throwIfDisposed(),zm(this,e)};J().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),Wm(this,e,t)};J().prototype.log=function(){return this.throwIfDisposed(),ea(this)};J().prototype.log1p=function(){return this.throwIfDisposed(),Dc(this)};J().prototype.logicalAnd=function(e){return this.throwIfDisposed(),Ea(this,e)};J().prototype.logicalNot=function(){return this.throwIfDisposed(),Rc(this)};J().prototype.logicalOr=function(e){return this.throwIfDisposed(),Bm(this,e)};J().prototype.logicalXor=function(e){return this.throwIfDisposed(),Iv(this,e)};J().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),Fe(this,e,t,n)};J().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),Dt(this,e,t,n,a)};J().prototype.max=function(e,t){return this.throwIfDisposed(),ha(this,e,t)};J().prototype.maximum=function(e){return this.throwIfDisposed(),pr(this,e)};J().prototype.mean=function(e,t){return this.throwIfDisposed(),Nt(this,e,t)};J().prototype.min=function(e,t){return this.throwIfDisposed(),il(this,e,t)};J().prototype.minimum=function(e){return this.throwIfDisposed(),Au(this,e)};J().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),Tv(this,e,t)};J().prototype.mod=function(e){return this.throwIfDisposed(),Nv(this,e)};J().prototype.mul=function(e){return this.throwIfDisposed(),z(this,e)};J().prototype.neg=function(){return this.throwIfDisposed(),bt(this)};J().prototype.norm=function(e,t,n){return this.throwIfDisposed(),Cu(this,e,t,n)};J().prototype.notEqual=function(e){return this.throwIfDisposed(),ii(this,e)};J().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),rl(this,e,t,n)};J().prototype.onesLike=function(){return this.throwIfDisposed(),ta(this)};J().prototype.pad=function(e,t){return this.throwIfDisposed(),ya(this,e,t)};J().prototype.pool=function(e,t,n,a,r,s){return this.throwIfDisposed(),Cv(this,e,t,n,a,r,s)};J().prototype.pow=function(e){return this.throwIfDisposed(),_r(this,e)};J().prototype.prelu=function(e){return this.throwIfDisposed(),Oc(this,e)};J().prototype.prod=function(e,t){return this.throwIfDisposed(),_v(this,e,t)};J().prototype.reciprocal=function(){return this.throwIfDisposed(),$v(this)};J().prototype.relu=function(){return this.throwIfDisposed(),Xe(this)};J().prototype.relu6=function(){return this.throwIfDisposed(),Gm(this)};J().prototype.reshapeAs=function(e){return this.throwIfDisposed(),W(this,e.shape)};J().prototype.reshape=function(e){return this.throwIfDisposed(),W(this,e)};J().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),NT(this,e,t,n)};J().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),CT(this,e,t,n)};J().prototype.reverse=function(e){return this.throwIfDisposed(),fa(this,e)};J().prototype.rfft=function(){return this.throwIfDisposed(),Wc(this)};J().prototype.round=function(){return this.throwIfDisposed(),Hm(this)};J().prototype.rsqrt=function(){return this.throwIfDisposed(),jm(this)};J().prototype.selu=function(){return this.throwIfDisposed(),qm(this)};J().prototype.separableConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),vs(this,e,t,n,a,r,s)};J().prototype.sigmoid=function(){return this.throwIfDisposed(),da(this)};J().prototype.sign=function(){return this.throwIfDisposed(),Fv(this)};J().prototype.sin=function(){return this.throwIfDisposed(),Km(this)};J().prototype.sinh=function(){return this.throwIfDisposed(),Xm(this)};J().prototype.slice=function(e,t){return this.throwIfDisposed(),Be(this,e,t)};J().prototype.softmax=function(e){return this.throwIfDisposed(),Ka(this,e)};J().prototype.softplus=function(){return this.throwIfDisposed(),ho(this)};J().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),Pc(this,e,t)};J().prototype.split=function(e,t){return this.throwIfDisposed(),zn(this,e,t)};J().prototype.sqrt=function(){return this.throwIfDisposed(),ln(this)};J().prototype.square=function(){return this.throwIfDisposed(),ot(this)};J().prototype.squaredDifference=function(e){return this.throwIfDisposed(),Jm(this,e)};J().prototype.squeeze=function(e){return this.throwIfDisposed(),ws(this,e)};J().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof Te?[this,e]:[this,...e];return Ft(n,t)};J().prototype.step=function(e){return this.throwIfDisposed(),fo(this,e)};J().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),Dv(this,e,t,n,a,r,s,i,o)};J().prototype.sub=function(e){return this.throwIfDisposed(),pe(this,e)};J().prototype.sum=function(e,t){return this.throwIfDisposed(),fe(this,e,t)};J().prototype.tan=function(){return this.throwIfDisposed(),Rv(this)};J().prototype.tanh=function(){return this.throwIfDisposed(),ri(this)};J().prototype.tile=function(e){return this.throwIfDisposed(),Ln(this,e)};J().prototype.toBool=function(){return this.throwIfDisposed(),oe(this,"bool")};J().prototype.toFloat=function(){return this.throwIfDisposed(),oe(this,"float32")};J().prototype.toInt=function(){return this.throwIfDisposed(),oe(this,"int32")};J().prototype.topk=function(e,t){return this.throwIfDisposed(),Mv(this,e,t)};J().prototype.transpose=function(e){return this.throwIfDisposed(),Ee(this,e)};J().prototype.unique=function(e){return this.throwIfDisposed(),Pv(this,e)};J().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),ef(this,e,t)};J().prototype.unstack=function(e){return this.throwIfDisposed(),ct(this,e)};J().prototype.where=function(e,t){return this.throwIfDisposed(),mn(e,this,t)};J().prototype.zerosLike=function(){return this.throwIfDisposed(),qe(this)};var vr=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,vr.prototype)}},Wa=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Wa.prototype)}},V=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,V.prototype)}},Re=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Re.prototype)}},LT=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,LT.prototype)}},zT=class{constructor(e){this.maxEntries=e||100,this.cache=new Map}get(e){let t;return this.cache.has(e)&&(t=this.cache.get(e),this.cache.delete(e),this.cache.set(e,t)),t}put(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxEntries){let n=this.cache.keys().next().value;this.cache.delete(n)}this.cache.set(e,t)}getMaxEntries(){return this.maxEntries}setMaxEntries(e){if(e<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${e}.`);if(this.maxEntries>e)for(let t=0;tn.toUpperCase())}var ka={};function jv(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function Mb(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>Mb(t));else{let t=Object.keys(e);for(let n of t){let a=e[n];a!=null&&typeof a=="object"&&(!Array.isArray(a)&&a.type==="ndarray"&&typeof a.value=="number"?e[n]=a.value:Mb(a))}}}function Vc(e,t={},n={},a="object",r=!1){if(typeof e=="string"){let s=e,i;if(s in n)i=n[s];else if(s in ka)i=ka[s];else if(i=t[s],i==null)throw new V(`Unknown ${a}: ${e}. This may be due to one of the following reasons: + dense values, but the requested shape requires a multiple of ${a}. inputShape=${e} outputShape= ${t}`}function gW(e,t){let n=mt(e),a=mt(t);return`Input to reshape is a tensor with ${n} dense values, but the requested shape has ${a}. inputShape=${e} outputShape=${t}`}function yW(){return"segment ids must be >= 0"}function bW(){return"segment ids are not increasing"}function xW(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function vW(e,t,n){return`Bad: indices[${e}] == ${t} out of range [0, ${n})`}var MT={};$e(MT,{collectGatherOpShapeInfo:()=>IW,computeOutShape:()=>kW,segOpComputeOptimalWindowSize:()=>wW});function wW(e,t){let n=!1,a;for(e<=Hv?(a=e,n=!0):a=mh(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=mh(e,a+1);return a}function kW(e,t,n){let a=[],r=e.length;for(let s=0;sr))throw new Error(`Expect batchDims in the range of [-${r}, ${r}], but got ${a}`);if(a<0&&(a+=r),a>s)throw new Error(`batchDims (${a}) must be less than rank(x) ( + ${s}).`);if(nvh(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function TW(e){return e.map(t=>Sc(t))}var cr={};$e(cr,{nonMaxSuppressionV3Impl:()=>IT,nonMaxSuppressionV4Impl:()=>ST,nonMaxSuppressionV5Impl:()=>TT,whereImpl:()=>dT});var PT={kernelName:wl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,fo(le(n,"float32"),-1))}}},NW={kernelName:kl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ot(le(n,"float32")),r=ln(pe(xe(1),a));return bt(he(e,r))}}}},CW={kernelName:Il,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ln(pe(ot(le(n,"float32")),1));return he(e,a)}}}},_W={kernelName:cs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=e,i=Wt(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Wt(a.shape,r);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}},EW={kernelName:mi,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},$W={kernelName:fi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},AW={kernelName:sc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},FW={kernelName:Nl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,ln(pe(xe(1),ot(le(n,"float32")))))}}},DW={kernelName:Cl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ln(Y(xe(1),ot(le(n,"float32"))));return he(e,a)}}}},RW={kernelName:$l,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=Y(ot(n),ot(a)),i=z(e,he(a,s)),o=Wt(n.shape,r);return o.length>0&&(i=fe(i,o)),W(i,n.shape)},b:()=>{let s=Y(ot(n),ot(a)),i=bt(z(e,he(n,s))),o=Wt(a.shape,r);return o.length>0&&(i=fe(i,o)),W(i,a.shape)}}}},MW={kernelName:_l,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,Y(ot(le(n,"float32")),1))}}},PW={kernelName:El,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,pe(xe(1),ot(le(n,"float32"))))}}};function OW(e,t,n,a,r,s){let i=_(e,"dy","avgPool3dGrad"),o=_(t,"input","avgPool3dGrad"),l=i,u=o,p=!1;o.rank===4&&(p=!0,l=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),u=W(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),A(l.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`),A(u.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${u.rank}.`),Tn("avgPool3dGrad",r,s);let d={dy:l,input:u},c={filterSize:n,strides:a,pad:r,dimRoundingMode:s},h=O.runKernel(Yh,d,c);return p?W(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var LW=L({avgPool3dGrad_:OW}),zW={kernelName:ic,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>LW(e,a,r,s,i,o)}}};function WW(e,t,n,a,r){let s=_(e,"dy","avgPoolGrad"),i=_(t,"input","avgPoolGrad");A(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let o=i,l=s,u=!1;i.rank===3&&(u=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(l.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`),A(o.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`);let p={dy:l,input:o},d={filterSize:n,strides:a,pad:r},c=O.runKernel(Xh,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var BW=L({avgPoolGrad_:WW}),VW={kernelName:gi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>BW(e,a,r,s,i)}}},UW={kernelName:yi,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>Fe(e,r,!1,!0),b:()=>Fe(a,e,!0,!1)}:!s&&i?{a:()=>Fe(e,r,!1,!1),b:()=>Fe(e,a,!0,!1)}:s&&!i?{a:()=>Fe(r,e,!1,!0),b:()=>Fe(a,e,!1,!1)}:{a:()=>Fe(r,e,!0,!0),b:()=>Fe(e,a,!0,!0)}}},GW={kernelName:Al,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>Pc(e,a,r)}}},HW={kernelName:RI,gradFunc:(e,t,n)=>{let a=n,r=a.inputShape,s=a.shape,i=Array.from(s);for(let l=r.length-1;l>=0;l--)if(r[l]===s[l])i[l]=1;else if(r[l]!==1)throw new Error(`broadcastTo(): [${r}] cannot be broadcast to [${s}].`);let o=[];for(let l=0;l1&&o.push(l);return{x:()=>fe(e,o,!0)}}},jW={kernelName:bi,gradFunc:e=>({x:()=>e.clone()})},qW={kernelName:xi,gradFunc:e=>({x:()=>qe(e)})},KW={kernelName:ds,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>mn(Ea(Er(a,r),xs(a,s)),e,qe(e))}}},XW={kernelName:oc,inputsToSave:["x"],gradFunc:PT.gradFunc},YW={kernelName:Fl,saveAllInputs:!0,gradFunc:(e,t,n)=>{let a=t.map(o=>o.shape),{axis:r}=n,s=$a(r,t[0].shape)[0],i=a.map(o=>o[s]);return zn(e,i,s).map(o=>()=>o)}},ZW={kernelName:vi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return A(ns(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>iv(a.shape,e,r,i,o,l),filter:()=>Bv(a,e,r.shape,i,o,l)}}},JW={kernelName:wi,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>At(e,r,s,i,o,1,l),filter:()=>Bv(e,a,r.shape,s,i,o,l)}}};function QW(e,t,n,a,r){let s=e;e.rank===4&&(s=W(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;i.rank===4&&(i=W(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),A(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),A(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),A(n.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`),A(s.shape[4]===n[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`),A(i.shape[4]===n[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${n[4]}).`);let o={x:s,dy:i},l={strides:a,pad:r,filterShape:n};return O.runKernel(tm,o,l)}var eB=L({conv3DBackpropFilter_:QW}),tB={kernelName:lc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;A(ns(a),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${a}'`);let[i,o]=t;return{x:()=>DS(i.shape,e,o,r,s),filter:()=>eB(i,e,o.shape,r,s)}}},nB={kernelName:ki,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(bt(Km(le(n,"float32"))),e)}}},aB={kernelName:Ii,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Xm(le(n,"float32")),e)}}},rB={kernelName:Si,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=LS([r],a.rank),l=Mm(e,r,s,!i);return o!=null&&(l=Ee(l,o)),l}}}},sB={kernelName:Ti,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;A(ns(o),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`);let[l,u]=t;return A(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),A(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${u.rank}.`),A(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]}.`),A(ur(r,o),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`),Tn("depthwiseConv2d",s,i),{x:()=>vT(l.shape,e,u,r,s,o,i),filter:()=>xT(l,e,u.shape,r,s,o,i)}}},iB={kernelName:uc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,s={x:a,filter:r,dy:e},i={x:a,filter:r,dy:e};return{x:()=>O.runKernel(fh,s,n),filter:()=>O.runKernel(gh,i,n)}}},oB={kernelName:Ci,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>O.runKernel(lm,a)}}},lB={kernelName:Pl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(fn(bt(ot(n))),2/Math.sqrt(Math.PI));return{x:()=>z(e,a)}}},uB={kernelName:_i,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,n)}}},pB={kernelName:Ll,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>W(e,n.shape)}}},cB={kernelName:zl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,fn(n))}}},dB={kernelName:Ei,gradFunc:e=>({x:()=>qe(e)})},hB={kernelName:$i,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=he(e,le(a,"float32")),i=Wt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,le(n,"float32")),i=Wt(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=ot(a);return bt(he(s,le(o,"float32")))}}}},mB={kernelName:Ai,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?xe(1):o,u=Wt(s.shape,r.shape),p=[];if(s.rank===1){for(let f=0;fs.rank===1?W(z(z(e,Ln(W(h,[1,1,1,s.shape[0]]),p)),l),r.shape):W(z(z(e,h),l),r.shape),mean:()=>{let f=z(z(h,xe(-1)),c);return s.rank===1&&(f=fe(f,u)),W(f,s.shape)},variance:()=>{let f=z(z(m,d),c);return s.rank===1&&(f=fe(f,u)),W(f,s.shape)},scale:()=>{let f=z(d,h),g=z(e,f);return s.rank===1&&(g=fe(g,u)),W(g,s.shape)},offset:()=>{let f=e;return s.rank===1&&(f=fe(f,u)),W(f,s.shape)}}}},fB={kernelName:Bl,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{let[a,r]=t,{axis:s}=n,i=$a(s,a.shape)[0];return{x:()=>{let o=a.shape,l=r.size,u=o.slice(0,i),p=u.length,d=o.slice(s,o.length).slice(1),c=d.length,h=tk(0,p),m=tk(p+1,p+1+c),f=nk([u,[l],d]),g=W(e,f),y=W(r,[l]),b=nk([[p],h,m]),x=Ee(g,b),w=ef(x,y,a.shape[i]),I=fv(b);return w=Ee(w,I),w},indices:()=>r}}};function tk(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>qe(n),b:()=>qe(a)}}},yB={kernelName:Di,gradFunc:e=>({x:()=>le(e,"float32")})},bB={kernelName:Gl,gradFunc:e=>({x:()=>qe(e)})},xB={kernelName:Hl,gradFunc:e=>({x:()=>qe(e)})},vB={kernelName:jl,gradFunc:e=>({x:()=>qe(e)})},wB={kernelName:Ri,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=Nn(a,0);return{x:()=>mn(s,e,z(e,r))}}},kB={kernelName:Xl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,Y(n,1))}}},IB={kernelName:Mi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,le(n,"float32"))}}},SB={kernelName:PI,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=fn(a);return pe(e,z(fe(e,r,!0),s))}}}};function TB(e,t,n,a=5,r=1,s=1,i=.5){let o={x:e,y:t,dy:n},l={depthRadius:a,bias:r,alpha:s,beta:i};return O.runKernel(hm,o,l)}var NB=L({localResponseNormalizationBackprop_:TB}),CB={kernelName:cc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>NB(a,r,e,s,i,o,l)}}};function OT(e,t,n,a){return t.rankz(e,le(Qn(n,t),e.dtype))}}var ak={kernelName:Pi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{reductionIndices:r}=a,s=t[0],i=t[1],o=$a(r,s.shape),l=OT(e,i,s,o);return{x:()=>l.x()}}},_B={kernelName:Oi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,le(Er(n,a),"float32")),b:()=>z(e,le(Om(n,a),"float32"))}}};function EB(e,t,n,a,r,s,i){let o=_(e,"dy","maxPool3dGrad"),l=_(t,"input","maxPool3dGrad"),u=_(n,"output","maxPool3dGrad"),p=o,d=l,c=u,h=!1;l.rank===4&&(h=!0,p=W(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),d=W(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),c=W(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]])),A(p.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${p.rank}.`),A(d.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${d.rank}.`),A(c.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${c.rank}.`),Tn("maxPool3dGrad",s,i);let m={dy:p,input:d,output:c},f={filterSize:a,strides:r,pad:s,dimRoundingMode:i},g=O.runKernel(fm,m,f);return h?W(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var $B=L({maxPool3dGrad_:EB}),AB={kernelName:dc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>$B(e,a,r,s,i,o,l)}}};function FB(e,t,n,a,r,s,i){let o=_(e,"dy","maxPoolGrad"),l=_(t,"input","maxPoolGrad"),u=_(n,"output","maxPoolGrad");A(l.rank===o.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`),A(o.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`),A(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),Tn("maxPoolGrad",s,i);let p={dy:o,input:l,output:u},d={filterSize:a,strides:r,pad:s,dimRoundingMode:i};return O.runKernel(mm,p,d)}var DB=L({maxPoolGrad_:FB}),RB={kernelName:Li,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>DB(e,a,r,s,i,o)}}},MB={kernelName:zi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=$a(r,a.shape),i=OS(a.shape,s)[1],o=mt(i);return{x:()=>{let l=a.shape.slice();s.forEach(p=>{l[p]=1});let u=W(e,l);return he(z(u,Zn(a.shape,"float32")),o)}}}},PB={kernelName:Wi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=$a(r,s.shape),l=OT(e,i,s,o);return{x:()=>l.x()}}},OB={kernelName:Bi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,le(xs(n,a),"float32")),b:()=>z(e,le(Nn(n,a),"float32"))}}},LB={kernelName:Vi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Be(e,s,a.shape)}}},zB={kernelName:Ql,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=Wt(n.shape,r);return s.length>0?W(fe(e,s),n.shape):e},b:()=>{let s=z(e,bt(_u(he(n,a)))),i=Wt(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},WB={kernelName:Ui,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=z(e,le(a,"float32")),i=Wt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,le(n,"float32")),i=Wt(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},BB={kernelName:eu,gradFunc:e=>({x:()=>bt(e)})},VB={kernelName:Gi,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>It(n.shape,"float32")}}},UB={kernelName:su,gradFunc:e=>({x:()=>qe(e)})},GB={kernelName:iu,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return ct(e,a).map(r=>()=>r)}},rk={kernelName:Hi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Be(e,s,a.shape)}}},HB={kernelName:ji,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{let[n,a,r]=t,s=n,i=a,o=lt(s.shape,i.shape);return{a:()=>{let l=le(i,"float32"),u=z(e,z(l,_r(s,pe(l,xe(1))))),p=Wt(s.shape,o);return p.length>0&&(u=fe(u,p)),W(u,s.shape)},b:()=>{let l=Nn(s,0),u=mn(l,ea(s),qe(s)),p=z(e,z(r,u)),d=Wt(i.shape,o);return d.length>0&&(p=fe(p,d)),W(p,i.shape)}}}},jB={kernelName:qi,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=Nn(n,0);return{x:()=>mn(r,e,z(e,a)),alpha:()=>{let s=mn(r,qe(e),z(e,n)),i=Wt(a.shape,e.shape);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}};function qB(e,t,n){let a=e.shape.slice();a[n]=1;let r=W(t,a),s=Kp(e,n,!0,!1),i=Kp(e,n,!0,!0),o=z(s,i);return z(r,o)}function KB(e,t,n){let a=e.shape.length,r=a-n.length,s=N.getAxesPermutation(n,a),i=e;s!=null&&(i=Ee(e,s));let o=i.shape.slice(),l=o.splice(a-n.length,n.length).reduce((d,c)=>d*c,1);o.push(l);let u=i.reshape(o),p=qB(u,t,r);if(p=p.reshape(i.shape),s!=null){let d=N.getUndoAxesPermutation(s);p=Ee(p,d)}return p}var XB={kernelName:Ki,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=[];return r==null?s=a.shape.map((i,o)=>o):typeof r=="number"?s=[r]:s=r,{x:()=>KB(a,e,s)}}},YB={kernelName:Ni,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=he(e,le(a,"float32")),i=Wt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,le(n,"float32")),i=Wt(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=ot(a);return bt(he(s,le(o,"float32")))}}}},ZB={kernelName:ou,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,bt(ot(n)))}}},JB={kernelName:Ji,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(xs(n,6),fo(n));return{x:()=>z(e,le(a,"float32"))}}},QB={kernelName:Xi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,le(fo(n),"float32"))}}},e4={kernelName:lu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,n.shape)}}},t4={kernelName:Zi,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(Im,r,n)}}},n4={kernelName:Yi,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(km,r,n)}}},a4={kernelName:Qi,gradFunc:(e,t,n)=>{let{dims:a}=n,r=$a(a,e.shape);return{x:()=>fa(e,r)}}},r4={kernelName:eo,gradFunc:e=>({x:()=>qe(e)})},s4={kernelName:to,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>bt(he(e,z(_r(n,1.5),2)))}}},i4={kernelName:pu,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>le(qe(n),"float32"),t:()=>z(e,le(n,e.dtype)),e:()=>z(e,le(Rc(n),e.dtype))}}},o4={kernelName:cu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=Nn(n,xe(0)),r=xe(DT),s=xe(RT),i=z(e,s),o=z(z(e,r),fn(le(n,"float32")));return mn(a,i,o)}}}},l4={kernelName:ao,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(n,pe(xe(1),n)))}}},u4={kernelName:mu,gradFunc:e=>({x:()=>qe(e)})},p4={kernelName:no,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Ac(le(n,"float32")),e)}}},c4={kernelName:hu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Rm(le(n,"float32")),e)}}},d4={kernelName:du,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=kS(a,r,s),u=[];for(let p=0;pya(e,u)}}},h4={kernelName:io,outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{dim:r}=n,s=!0,i=z(e,a);return{logits:()=>pe(i,z(fe(i,[r],s),a))}}},m4={kernelName:fu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,da(n))}}},sk={kernelName:gu,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>$c(e,a,r)}}},ik={kernelName:yu,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>Ze(e,a)}}},f4={kernelName:ro,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,z(ln(le(n,"float32")),2))}}},g4={kernelName:yc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(le(n,"float32"),2))}}},y4={kernelName:oo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xe(2);return{a:()=>z(e,z(r,pe(n,a))),b:()=>z(e,z(r,pe(a,n)))}}},b4={kernelName:ms,gradFunc:e=>({x:()=>qe(e)})},x4={kernelName:lo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=e,i=Wt(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Wt(a.shape,r);return i.length>0&&(s=fe(s,i)),W(bt(s),a.shape)}}}},v4={kernelName:so,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,r=a.shape.slice(),{axis:s}=n;$a(s,a.shape).forEach(l=>{r[l]=1});let i=W(e,r),o=z(i,Zn(a.shape,"float32"));return{x:()=>o}}},w4={kernelName:uo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,ot(Ac(n)))}}},k4={kernelName:po,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(pe(xe(1),ot(n)),e)}}},I4={kernelName:hs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{reps:r}=n;return{x:()=>{let s=qe(a);if(a.rank===1)for(let i=0;i{let a=n,{perm:r}=a,s=fv(r);return{x:()=>Ee(e,s)}}},T4={kernelName:ku,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>Ft(e,r)}}},N4={kernelName:wc,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>C4(e,n)}}};function C4(e,t){let n=pr(t,qe(t)),a=Eu(e,n),r=Er(t,xe(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>qe(e)})},E4=[PT,NW,CW,_W,EW,$W,AW,FW,DW,RW,MW,PW,zW,VW,UW,GW,HW,jW,qW,KW,XW,YW,JW,ZW,tB,nB,aB,rB,sB,iB,YB,oB,lB,uB,pB,cB,hB,dB,mB,fB,gB,yB,bB,xB,vB,wB,kB,IB,SB,CB,ak,ak,_B,AB,RB,MB,PB,OB,LB,zB,WB,BB,VB,UB,GB,rk,rk,HB,jB,XB,ZB,JB,QB,e4,t4,n4,a4,r4,s4,i4,o4,l4,u4,p4,c4,d4,h4,m4,sk,sk,ik,ik,f4,y4,g4,b4,x4,v4,w4,k4,I4,S4,T4,N4,_4];for(let e of E4)OI(e);Q().prototype.abs=function(){return this.throwIfDisposed(),Lt(this)};Q().prototype.acos=function(){return this.throwIfDisposed(),Bx(this)};Q().prototype.acosh=function(){return this.throwIfDisposed(),Vx(this)};Q().prototype.add=function(e){return this.throwIfDisposed(),Y(this,e)};Q().prototype.all=function(e,t){return this.throwIfDisposed(),Am(this,e,t)};Q().prototype.any=function(e,t){return this.throwIfDisposed(),qp(this,e,t)};Q().prototype.argMax=function(e){return this.throwIfDisposed(),ai(this,e)};Q().prototype.argMin=function(e){return this.throwIfDisposed(),Ux(this,e)};Q().prototype.asScalar=function(){return this.throwIfDisposed(),A(this.size===1,()=>"The array must have only 1 element."),W(this,[])};Q().prototype.asType=function(e){return this.throwIfDisposed(),le(this,e)};Q().prototype.as1D=function(){return this.throwIfDisposed(),W(this,[this.size])};Q().prototype.as2D=function(e,t){return this.throwIfDisposed(),W(this,[e,t])};Q().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),W(this,[e,t,n])};Q().prototype.as4D=function(e,t,n,a){return this.throwIfDisposed(),W(this,[e,t,n,a])};Q().prototype.as5D=function(e,t,n,a,r){return this.throwIfDisposed(),W(this,[e,t,n,a,r])};Q().prototype.asin=function(){return this.throwIfDisposed(),Gx(this)};Q().prototype.asinh=function(){return this.throwIfDisposed(),Hx(this)};Q().prototype.atan=function(){return this.throwIfDisposed(),jx(this)};Q().prototype.atan2=function(e){return this.throwIfDisposed(),qx(this,e)};Q().prototype.atanh=function(){return this.throwIfDisposed(),Kx(this)};Q().prototype.avgPool=function(e,t,n,a){return this.throwIfDisposed(),ga(this,e,t,n,a)};Q().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),$c(this,e,t)};Q().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),ys(this,e,t,n,a,r)};Q().prototype.broadcastTo=function(e){return this.throwIfDisposed(),Ks(this,e)};Q().prototype.cast=function(e){return this.throwIfDisposed(),le(this,e)};Q().prototype.ceil=function(){return this.throwIfDisposed(),tv(this)};Q().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),en(this,e,t)};Q().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Te&&(e=[e]),Ze([this,...e],t)};Q().prototype.conv1d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Fm(this,e,t,n,a,r,s)};Q().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),Dm(this,e,t,n,a,r)};Q().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),At(this,e,t,n,a,r,s)};Q().prototype.cos=function(){return this.throwIfDisposed(),Ac(this)};Q().prototype.cosh=function(){return this.throwIfDisposed(),Rm(this)};Q().prototype.cumprod=function(e,t,n){return this.throwIfDisposed(),Kp(this,e,t,n)};Q().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),Mm(this,e,t,n)};Q().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),uv(this,e,t)};Q().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),bs(this,e,t,n,a,r,s)};Q().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),pv(this,e,t,n,a,r)};Q().prototype.divNoNan=function(e){return this.throwIfDisposed(),cv(this,e)};Q().prototype.div=function(e){return this.throwIfDisposed(),he(this,e)};Q().prototype.dot=function(e){return this.throwIfDisposed(),dv(this,e)};Q().prototype.elu=function(){return this.throwIfDisposed(),Nu(this)};Q().prototype.equal=function(e){return this.throwIfDisposed(),Qn(this,e)};Q().prototype.erf=function(){return this.throwIfDisposed(),hv(this)};Q().prototype.euclideanNorm=function(e,t){return this.throwIfDisposed(),gv(this,e,t)};Q().prototype.exp=function(){return this.throwIfDisposed(),fn(this)};Q().prototype.expandDims=function(e){return this.throwIfDisposed(),Zt(this,e)};Q().prototype.expm1=function(){return this.throwIfDisposed(),yv(this)};Q().prototype.fft=function(){return this.throwIfDisposed(),zc(this)};Q().prototype.flatten=function(){return this.throwIfDisposed(),W(this,[this.size])};Q().prototype.floor=function(){return this.throwIfDisposed(),_u(this)};Q().prototype.floorDiv=function(e){return this.throwIfDisposed(),$m(this,e)};Q().prototype.gather=function(e,t){return this.throwIfDisposed(),Eu(this,e,t)};Q().prototype.greaterEqual=function(e){return this.throwIfDisposed(),Er(this,e)};Q().prototype.greater=function(e){return this.throwIfDisposed(),Nn(this,e)};Q().prototype.ifft=function(){return this.throwIfDisposed(),ul(this)};Q().prototype.irfft=function(){return this.throwIfDisposed(),Zm(this)};Q().prototype.isFinite=function(){return this.throwIfDisposed(),bv(this)};Q().prototype.isInf=function(){return this.throwIfDisposed(),xv(this)};Q().prototype.isNaN=function(){return this.throwIfDisposed(),vv(this)};Q().prototype.leakyRelu=function(e){return this.throwIfDisposed(),Fc(this,e)};Q().prototype.lessEqual=function(e){return this.throwIfDisposed(),xs(this,e)};Q().prototype.less=function(e){return this.throwIfDisposed(),Om(this,e)};Q().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),wv(this,e,t,n,a)};Q().prototype.logSigmoid=function(){return this.throwIfDisposed(),kv(this)};Q().prototype.logSoftmax=function(e){return this.throwIfDisposed(),zm(this,e)};Q().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),Wm(this,e,t)};Q().prototype.log=function(){return this.throwIfDisposed(),ea(this)};Q().prototype.log1p=function(){return this.throwIfDisposed(),Dc(this)};Q().prototype.logicalAnd=function(e){return this.throwIfDisposed(),Ea(this,e)};Q().prototype.logicalNot=function(){return this.throwIfDisposed(),Rc(this)};Q().prototype.logicalOr=function(e){return this.throwIfDisposed(),Bm(this,e)};Q().prototype.logicalXor=function(e){return this.throwIfDisposed(),Iv(this,e)};Q().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),Fe(this,e,t,n)};Q().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),Dt(this,e,t,n,a)};Q().prototype.max=function(e,t){return this.throwIfDisposed(),ha(this,e,t)};Q().prototype.maximum=function(e){return this.throwIfDisposed(),pr(this,e)};Q().prototype.mean=function(e,t){return this.throwIfDisposed(),Nt(this,e,t)};Q().prototype.min=function(e,t){return this.throwIfDisposed(),il(this,e,t)};Q().prototype.minimum=function(e){return this.throwIfDisposed(),$u(this,e)};Q().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),Tv(this,e,t)};Q().prototype.mod=function(e){return this.throwIfDisposed(),Nv(this,e)};Q().prototype.mul=function(e){return this.throwIfDisposed(),z(this,e)};Q().prototype.neg=function(){return this.throwIfDisposed(),bt(this)};Q().prototype.norm=function(e,t,n){return this.throwIfDisposed(),Cu(this,e,t,n)};Q().prototype.notEqual=function(e){return this.throwIfDisposed(),ii(this,e)};Q().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),rl(this,e,t,n)};Q().prototype.onesLike=function(){return this.throwIfDisposed(),ta(this)};Q().prototype.pad=function(e,t){return this.throwIfDisposed(),ya(this,e,t)};Q().prototype.pool=function(e,t,n,a,r,s){return this.throwIfDisposed(),Cv(this,e,t,n,a,r,s)};Q().prototype.pow=function(e){return this.throwIfDisposed(),_r(this,e)};Q().prototype.prelu=function(e){return this.throwIfDisposed(),Oc(this,e)};Q().prototype.prod=function(e,t){return this.throwIfDisposed(),_v(this,e,t)};Q().prototype.reciprocal=function(){return this.throwIfDisposed(),Av(this)};Q().prototype.relu=function(){return this.throwIfDisposed(),Xe(this)};Q().prototype.relu6=function(){return this.throwIfDisposed(),Gm(this)};Q().prototype.reshapeAs=function(e){return this.throwIfDisposed(),W(this,e.shape)};Q().prototype.reshape=function(e){return this.throwIfDisposed(),W(this,e)};Q().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),NT(this,e,t,n)};Q().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),CT(this,e,t,n)};Q().prototype.reverse=function(e){return this.throwIfDisposed(),fa(this,e)};Q().prototype.rfft=function(){return this.throwIfDisposed(),Wc(this)};Q().prototype.round=function(){return this.throwIfDisposed(),Hm(this)};Q().prototype.rsqrt=function(){return this.throwIfDisposed(),jm(this)};Q().prototype.selu=function(){return this.throwIfDisposed(),qm(this)};Q().prototype.separableConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),vs(this,e,t,n,a,r,s)};Q().prototype.sigmoid=function(){return this.throwIfDisposed(),da(this)};Q().prototype.sign=function(){return this.throwIfDisposed(),Fv(this)};Q().prototype.sin=function(){return this.throwIfDisposed(),Km(this)};Q().prototype.sinh=function(){return this.throwIfDisposed(),Xm(this)};Q().prototype.slice=function(e,t){return this.throwIfDisposed(),Be(this,e,t)};Q().prototype.softmax=function(e){return this.throwIfDisposed(),Ka(this,e)};Q().prototype.softplus=function(){return this.throwIfDisposed(),ho(this)};Q().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),Pc(this,e,t)};Q().prototype.split=function(e,t){return this.throwIfDisposed(),zn(this,e,t)};Q().prototype.sqrt=function(){return this.throwIfDisposed(),ln(this)};Q().prototype.square=function(){return this.throwIfDisposed(),ot(this)};Q().prototype.squaredDifference=function(e){return this.throwIfDisposed(),Jm(this,e)};Q().prototype.squeeze=function(e){return this.throwIfDisposed(),ws(this,e)};Q().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof Te?[this,e]:[this,...e];return Ft(n,t)};Q().prototype.step=function(e){return this.throwIfDisposed(),fo(this,e)};Q().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),Dv(this,e,t,n,a,r,s,i,o)};Q().prototype.sub=function(e){return this.throwIfDisposed(),pe(this,e)};Q().prototype.sum=function(e,t){return this.throwIfDisposed(),fe(this,e,t)};Q().prototype.tan=function(){return this.throwIfDisposed(),Rv(this)};Q().prototype.tanh=function(){return this.throwIfDisposed(),ri(this)};Q().prototype.tile=function(e){return this.throwIfDisposed(),Ln(this,e)};Q().prototype.toBool=function(){return this.throwIfDisposed(),le(this,"bool")};Q().prototype.toFloat=function(){return this.throwIfDisposed(),le(this,"float32")};Q().prototype.toInt=function(){return this.throwIfDisposed(),le(this,"int32")};Q().prototype.topk=function(e,t){return this.throwIfDisposed(),Mv(this,e,t)};Q().prototype.transpose=function(e){return this.throwIfDisposed(),Ee(this,e)};Q().prototype.unique=function(e){return this.throwIfDisposed(),Pv(this,e)};Q().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),ef(this,e,t)};Q().prototype.unstack=function(e){return this.throwIfDisposed(),ct(this,e)};Q().prototype.where=function(e,t){return this.throwIfDisposed(),mn(e,this,t)};Q().prototype.zerosLike=function(){return this.throwIfDisposed(),qe(this)};var vr=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,vr.prototype)}},Wa=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Wa.prototype)}},V=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,V.prototype)}},Re=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Re.prototype)}},LT=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,LT.prototype)}},zT=class{constructor(e){this.maxEntries=e||100,this.cache=new Map}get(e){let t;return this.cache.has(e)&&(t=this.cache.get(e),this.cache.delete(e),this.cache.set(e,t)),t}put(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxEntries){let n=this.cache.keys().next().value;this.cache.delete(n)}this.cache.set(e,t)}getMaxEntries(){return this.maxEntries}setMaxEntries(e){if(e<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${e}.`);if(this.maxEntries>e)for(let t=0;tn.toUpperCase())}var ka={};function jv(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function Mb(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>Mb(t));else{let t=Object.keys(e);for(let n of t){let a=e[n];a!=null&&typeof a=="object"&&(!Array.isArray(a)&&a.type==="ndarray"&&typeof a.value=="number"?e[n]=a.value:Mb(a))}}}function Vc(e,t={},n={},a="object",r=!1){if(typeof e=="string"){let s=e,i;if(s in n)i=n[s];else if(s in ka)i=ka[s];else if(i=t[s],i==null)throw new V(`Unknown ${a}: ${e}. This may be due to one of the following reasons: 1. The ${a} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. 2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return i}else{let s=e;if(s.className==null||s.config==null)throw new V(`${a}: Improper config format: ${JSON.stringify(s)}. 'className' and 'config' must set.`);let i=s.className,o,l;if(i in n?[o,l]=n[i]:i in ka?[o,l]=ka.className:i in t&&([o,l]=t[i]),o==null)throw new V(`Unknown ${a}: ${i}. This may be due to one of the following reasons: 1. The ${a} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. -2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(l!=null){let u={};for(let h of Object.keys(ka))u[h]=ka[h];for(let h of Object.keys(n))u[h]=n[h];let p=s.config;p.customObjects=u;let d=Object.assign({},ka);for(let h of Object.keys(n))ka[h]=n[h];Mb(s.config);let c=l(o,s.config,n,r);return ka=Object.assign({},d),c}else{let u=Object.assign({},ka);for(let d of Object.keys(n))ka[d]=n[d];let p=new o(s.config);return ka=Object.assign({},u),p}}}function A4(e,t){return et?1:0}function jd(e,t){return-1*A4(e,t)}function Jr(e){if(e==null)return e;let t=[];for(let n of e)t.indexOf(n)===-1&&t.push(n);return t}function $4(e){if(e==null)throw new V(`Invalid value in obj: ${JSON.stringify(e)}`);for(let t in e)if(e.hasOwnProperty(t))return!1;return!0}function go(e,t,n){if(n!=null&&e.indexOf(n)<0)throw new V(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function qv(e,t,n=0,a=1/0){return tr(n>=0),tr(a>=n),Array.isArray(e)&&e.length>=n&&e.length<=a&&e.every(r=>typeof r===t)}function Qt(e,t){Array.isArray(e)?(v.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>Qt(n,`element ${a+1} of ${t}`))):v.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${WT(e)}.`)}function WT(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>WT(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function F4(e,t,n){let a=n!=null?n():v.now(),r;return(...s)=>{let i=n!=null?n():v.now();return i-a0){let n=`${e}_${t}`;return Ho.set(n,1),n}else return e}var B4=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function jT(e){return!!e.match(B4)}function V4(e){return e===parseInt(e.toString(),10)}function Qr(e,t,n){t==null&&(t=0),n==null&&(n=e.length);let a=1;for(let r=t;rt&&(t=a)}return t}function Ha(e,t){if(t{if(e.shape.length!==2)throw new V(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);let n=Uc(e,1);return Pb(n,[1,t,1])})}function G4(e){let t=[Qr(e.shape)];return W(e,t)}function H4(e){if(e.rank<=1)throw new V(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);let t=[e.shape[0],Qr(e.shape,1)];return W(e,t)}function Ys(e,t,n){return P(()=>{switch(e.rank){case 1:return Lc(e,t,n);case 2:return Ym(e,[t,0],[n,e.shape[1]]);case 3:return mo(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return ll(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return Be(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return Be(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 V(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}})}function cb(e,t,n){return P(()=>{switch(e.rank){case 1:return Lc(e,t,n);case 2:return Ym(e,[0,t],[e.shape[0],n]);case 3:return mo(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return ll(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new V(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Kd(e,t,n,a){return P(()=>{switch(e.rank){case 1:return Lc(e,t,n);case 2:switch(a){case 1:return Ys(e,t,n);case 2:return cb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}case 3:switch(a){case 1:return Ys(e,t,n);case 2:return mo(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return cb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}case 4:switch(a){case 1:return Ys(e,t,n);case 2:return ll(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return ll(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return cb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}default:throw new V(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Kv(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),Ze(e,t)}function uk(e,t){switch(e.rank){case 1:return nv([e,t]);case 2:return av([e,t],0);case 3:return rv([e,t],0);case 4:return sv([e,t],0);default:throw new V(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Pb(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new V(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return Ln(e,t)}function mf(e,t=0,n=1,a,r){return Um(e,t,n,a,r)}function sr(e,t,n,a){if(e.rank<2||t.rank<2)throw new Re(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3){let r=e.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(r!==s)throw new Re(`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(e.rank===2&&t.rank===2)return pl.matMul({a:e,b:t,transposeA:!1,transposeB:!1,bias:a?Ob(e.rank,a,ja()):null,activation:n});{let r=e.shape.slice(),s=r.pop();e=W(e,[-1,s]);let i=t.shape.slice(),o=i.pop(),l=i.pop(),u=[...i,o],p=Array.from({length:t.rank},(m,f)=>f===0?t.rank-2:f<=t.rank-2?f-1:f);t=W(Ee(t,p),[l,-1]);let d=[...r,...u],c=!1,h=!1;return W(pl.matMul({a:e,b:t,transposeA:c,transposeB:h,bias:a?Ob(e.rank,a,ja()):null,activation:n}),d)}}function qT(e,t,n){return P(()=>(Array.isArray(t)?t=Ke(t,"int32"):t=oe(t,"int32"),Eu(e,t,n)))}function Gc(e){return z(e,e)}function Ob(e,t,n){let a=t.shape;if(t.rank!==1&&t.rank!==e)throw new V(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(e===5){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1,1,1]):W(t,[1,a[3],a[0],a[1],a[2]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,1,1,a[0]]):W(t,[1].concat(a))}else if(e===4){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1,1]):W(t,[1,a[2],a[0],a[1]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,1,a[0]]):W(t,[1].concat(a))}else if(e===3){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1]):W(t,[1,a[1],a[0]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,a[0]]):W(t,[1].concat(a))}else if(e<3)return t;throw new V(`Unsupported input rank by biasAdd: ${t.rank}`)}function Xa(e,t,n){return P(()=>(n==null&&(n=ja()),Rt(n),Y(e,Ob(e.rank,t,n))))}function j4(e,t=1){if(t!==1)throw new Re(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Nu(e)}function q4(e){return P(()=>he(e,Y(Lt(e),1)))}function KT(e,t,n,a){return P(()=>zv(e,t,n,a))}function K4(e){return P(()=>{let t=Y(.5,z(.2,e));return en(t,0,1)})}function Hc(e,t,n=!1){return n?e():t()}var X4=["fanIn","fanOut","fanAvg"],Y4=["normal","uniform","truncatedNormal"];function Z4(e){go(X4,"FanMode",e)}function J4(e){go(Y4,"Distribution",e)}var Fa=class extends ne.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Xv=class extends Fa{apply(e,t){return It(e,t)}};Xv.className="Zeros";ne.registerClass(Xv);var ff=class extends Fa{apply(e,t){return Zn(e,t)}};ff.className="Ones";ne.registerClass(ff);var Yv=class extends Fa{constructor(e){if(super(),typeof e!="object")throw new V(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new V(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return P(()=>z(be(this.value),Zn(e,t)))}getConfig(){return{value:this.value}}};Yv.className="Constant";ne.registerClass(Yv);var Zv=class extends Fa{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 $u(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};Zv.className="RandomUniform";ne.registerClass(Zv);var Jv=class extends Fa{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(t=t||"float32",t!=="float32"&&t!=="int32")throw new Re(`randomNormal does not support dType ${t}.`);return mf(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Jv.className="RandomNormal";ne.registerClass(Jv);var Qv=class extends Fa{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(t=t||"float32",t!=="float32"&&t!=="int32")throw new Re(`truncatedNormal 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}}};Qv.className="TruncatedNormal";ne.registerClass(Qv);var ew=class extends Fa{constructor(e){super(),this.gain=e.gain!=null?e.gain:1}apply(e,t){return P(()=>{if(e.length!==2||e[0]!==e[1])throw new V("Identity matrix initializer can only be used for 2D square matrices.");return z(this.gain,Pm(e[0]))})}getConfig(){return{gain:this.gain}}};ew.className="Identity";ne.registerClass(ew);function Q4(e,t="channelsLast"){let n,a;if(Rt(t),e.length===2)n=e[0],a=e[1];else if([3,4,5].indexOf(e.length)!==-1){if(t==="channelsFirst"){let r=Qr(e,2);n=e[1]*r,a=e[0]*r}else if(t==="channelsLast"){let r=Qr(e,0,e.length-2);n=e[e.length-2]*r,a=e[e.length-1]*r}}else{let r=Qr(e);n=Math.sqrt(r),a=Math.sqrt(r)}return[n,a]}var Bn=class extends Fa{constructor(e){if(super(),e.scale<0)throw new V(`scale must be a positive float. Got: ${e.scale}`);this.scale=e.scale==null?1:e.scale,this.mode=e.mode==null?"fanIn":e.mode,Z4(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,J4(this.distribution),this.seed=e.seed}apply(e,t){let n=Q4(e),a=n[0],r=n[1],s=this.scale;if(this.mode==="fanIn"?s/=Math.max(1,a):this.mode==="fanOut"?s/=Math.max(1,r):s/=Math.max(1,(a+r)/2),this.distribution==="normal"){let i=Math.sqrt(s);if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Re(`${this.getClassName()} does not support dType ${t}.`);return Qm(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return $u(e,-i,i,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Bn.className="VarianceScaling";ne.registerClass(Bn);var gf=class extends Bn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};gf.className="GlorotUniform";ne.registerClass(gf);var yf=class extends Bn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};yf.className="GlorotNormal";ne.registerClass(yf);var bf=class extends Bn{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};bf.className="HeNormal";ne.registerClass(bf);var xf=class extends Bn{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};xf.className="HeUniform";ne.registerClass(xf);var vf=class extends Bn{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};vf.className="LeCunNormal";ne.registerClass(vf);var wf=class extends Bn{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};wf.className="LeCunNormal";ne.registerClass(wf);var tw=class extends Fa{constructor(e){if(super(),this.DEFAULT_GAIN=1,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,this.seed!=null)throw new Re("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return P(()=>{if(e.length<2)throw new Re("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.`);let n=e[0]>e[1]?[e[1],e[0]]:e,a=mf(n,0,1,"float32"),r=Uv.gramSchmidt(a);return e[0]>e[1]&&(r=Ee(r)),z(this.gain,r)})}getConfig(){return{gain:this.gain,seed:this.seed}}};tw.className="Orthogonal";ne.registerClass(tw);var pk={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 ck(e,t={}){return Vc(e,ne.SerializationMap.getMap().classNameMap,t,"initializer")}function Ct(e){return jv(e)}function St(e){if(typeof e=="string"){let t=e in pk?pk[e]:e;if(t==="GlorotNormal")return new yf;if(t==="GlorotUniform")return new gf;if(t==="HeNormal")return new bf;if(t==="HeUniform")return new xf;if(t==="LeCunNormal")return new vf;if(t==="LeCunUniform")return new wf;{let n={};return n.className=t,n.config={},ck(n)}}else return e instanceof Fa?e:ck(e)}function Lb(e){return Array.isArray(e)&&Array.isArray(e[0])}function Th(e){return e.length===0?[]:Array.isArray(e[0])?e:[e]}function Ne(e){let t;if(Array.isArray(e)){if(e.length!==1)throw new V(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function Qe(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(e.length===1)return e=e,e[0];throw new V(`Expected exactly 1 Shape; got ${e.length}`)}else return e}function Nh(e){let t=0;for(let n of e)n.shape.length===0?t+=1:t+=n.shape.reduce((a,r)=>a*r);return t}var dk="Variable",XT=class{constructor(e,t="float32",n=dk,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=VT(),n=n==null?dk:n,this.originalName=GT(n),this.name=HT(this.originalName),this.trainable_=a,this.constraint=r,this.val=Ov(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),eV(this.val,e),this.val.id!==e.id&&(this.val.assign(e),this.constraint!=null&&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 eV(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function zb(e){return e.map(t=>t.read())}function nw(e){e.forEach(t=>{t[0].write(t[1])})}var zt=class{constructor(e){this.dtype=e.dtype,this.shape=e.shape,e.shape!=null?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}},Ba=class{constructor(e,t,n,a,r,s,i){this.dtype=e,this.shape=t,this.sourceLayer=n,this.inputs=a,this.callArgs=r,this.outputTensorIndex=i,this.id=VT(),s!=null&&(this.originalName=GT(s),this.name=HT(this.originalName)),this.rank=t.length}},tV=0,kf=class{constructor(e,t){this.callArgs=t,this.id=tV++,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(let n of e.inboundLayers)n!=null&&n.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){let e=[];for(let t of this.inboundLayers)t!=null?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},nV=0,Ge=class extends ne.Serializable{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=nV++,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){let n=this.getClassName();t=wr(n)+"_"+hf(n)}if(this.name=t,this.trainable_=e.trainable==null?!0:e.trainable,e.inputShape!=null||e.batchInputShape!=null){let n;if(e.batchInputShape!=null)n=e.batchInputShape;else if(e.inputShape!=null){let r=null;e.batchSize!=null&&(r=e.batchSize),n=[r].concat(e.inputShape)}this.batchInputShape=n;let a=e.dtype;a==null&&(a=e.inputDType),a==null&&(a="float32"),this.dtype=a}e.weights!=null?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(this.inboundNodes.length===0)throw new Wa(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new V(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return On(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return On(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new vr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new vr(`Layer ${this.name} is not connected, no input to return.`);return On(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new vr(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new vr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return On(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=yt(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=yt(this.inputSpec);if(e.length!==t.length)throw new V(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let n=0;nr.maxNDim)throw new V(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${r.maxNDim}, found ndim=${s}`);if(r.minNDim!=null&&s=0?i[l]:i[i.length+l];if(u!=null&&[u,null].indexOf(p)===-1)throw new V(`Input ${n} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${u} but got shape ${i}.`)}}if(r.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(e);let s=[];for(let i of yt(e))s.push(i.shape);this.build(On(s)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&r&&(this._refCount=1)}if(this.assertInputCompatibility(e),r){let s=this.call(e,t),i=yt(s),o=[];for(let l of i)n.indexOf(l)!==-1&&(l=l.clone()),o.push(l);if(s=On(o),this.activityRegularizer!=null)throw new Re("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=aV(e),i=this.computeOutputShape(s),o,l=rV(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?s[0]:s),i!=null&&i.length>0&&Array.isArray(i[0])?o=i.map((u,p)=>new Ba(l,u,this,yt(e),t,this.name,p)):o=new Ba(l,i,this,yt(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new Re("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return o}})}warnOnIncompatibleInputShape(e){if(this.batchInputShape!=null)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,a)=>{n!=null&&e[a]!=null&&e[a]!==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(this.inboundNodes==null||this.inboundNodes.length===0)throw new vr(`The layer ${this.name} has never been called and thus has no defined output shape.`);let e=[];for(let t of this.inboundNodes){let n=JSON.stringify(t.outputShapes);e.indexOf(n)===-1&&e.push(n)}if(e.length===1){let t=this.inboundNodes[0].outputShapes;return Array.isArray(t)&&Array.isArray(t[0])&&t.length===1?t[0]:t}else throw new vr(`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 Wa(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Nh(this.weights)}build(e){this.built=!0}getWeights(e=!1){return zb(e?this.trainableWeights:this.weights)}setWeights(e){P(()=>{let t=this.weights;if(t.length!==e.length)throw new V(`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(t.length===0)return;let n=[],a=zb(t);for(let r=0;rr.apply(u.read())),s==null&&(s=!0),s?this._trainableWeights.push(u):this._nonTrainableWeights.push(u),u}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){e==null||Array.isArray(e)&&e.length===0||(e=yt(e),this._losses!==void 0&&this._losses!==null&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(t!=null)if(Array.isArray(t))t.forEach(n=>{if(n!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return t}addInboundNode(e,t,n,a,r,s,i=null){let o=yt(e);t=yt(t),n=yt(n),a=yt(a),r=Th(r),s=Th(s);let l=[],u=[],p=[];for(let d of o)l.push(d.sourceLayer),u.push(d.nodeIndex),p.push(d.tensorIndex);new kf({outboundLayer:this,inboundLayers:l,nodeIndices:u,tensorIndices:p,inputTensors:o,outputTensors:t,inputMasks:n,outputMasks:a,inputShapes:r,outputShapes:s},i);for(let d=0;de.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)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(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return--this._refCount===0&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}};function aV(e){e=yt(e);let t=[];for(let n of e)t.push(n.shape);return On(t)}function rV(e){return"float32"}function YT(e,t,n){if((t==null||n!=null&&n>0)&&(t=e.sourceLayer,n=e.nodeIndex),t.inboundNodes.length===0)return[e];{let a=t.inboundNodes[n];if(a.inboundLayers.length===0)return a.inputTensors;{let r=[];for(let s=0;sm.name),l=[],u=t.names();for(let m of o)u.indexOf(m)!==-1?l.push(t.getValue(m)):l.push(null);a!=null&&(a.maxNumTensors=-1/0,a.minNumTensors=1/0);let p=o.join(",")+"|"+t.names().sort().join(","),d=Ch.get(p),c;if(d==null){let m=oV(i,t);d=m.sorted,c=m.recipientCounts,Ch.put(p,d),_h.put(p,c)}c={},r||Object.assign(c,_h.get(p));let h=new Hs(t);for(let m=0;ma.maxNumTensors&&(a.maxNumTensors=A),A0,()=>"Expected at least one fetch, got none");let n=[],a={};if(e.length===1){let r=hk(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=hk(s,t);for(let l of i)r.has(l.name)||(n.push(l),r.add(l.name));for(let l in o)a[l]==null&&(a[l]=new Set),o[l].forEach(u=>a[l].add(u))}}return{sorted:n,recipientCounts:lV(a)}}function lV(e){let t={};for(let n in e)t[n]=e[n].size;return t}function hk(e,t){let n=new Set,a=[],r={};for(let o of t.names())n.add(o);let s=[],i=[];for(s.push(e);s.length>0;){let o=s[s.length-1];if(n.has(o.name)){s.pop();continue}let l=i[i.length-1]===s.length-1;if(o.inputs.length===0||l)s.pop(),a.push(o),n.add(o.name),l&&i.pop();else{i.push(s.length-1);for(let u of o.inputs)r[u.name]==null&&(r[u.name]=new Set),r[u.name].add(o.name),!n.has(u.name)&&s.push(u)}}return{sorted:a,recipientMap:r}}function uV(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;a100,iV);var JT={};Ae(JT,{maxNorm:()=>cV,minMaxNorm:()=>mV,nonNeg:()=>hV,unitNorm:()=>dV});function aw(e,t){return P(()=>ln(fe(z(e,e),t,!0)))}var jc=class extends ne.Serializable{getConfig(){return{}}},rw=class extends jc{constructor(e){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>{let t=aw(e,this.axis),n=en(t,0,this.maxValue);return z(e,he(n,Y(Gt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};rw.className="MaxNorm";ne.registerClass(rw);var sw=class extends jc{constructor(e){super(),this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>he(e,Y(Gt(),aw(e,this.axis))))}getConfig(){return{axis:this.axis}}};sw.className="UnitNorm";ne.registerClass(sw);var iw=class extends jc{apply(e){return Xe(e)}};iw.className="NonNeg";ne.registerClass(iw);var ow=class extends jc{constructor(e){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>{let t=aw(e,this.axis),n=Y(z(this.rate,en(t,this.minValue,this.maxValue)),z(1-this.rate,t));return z(e,he(n,Y(Gt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};ow.className="MinMaxNorm";ne.registerClass(ow);var mk={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function qt(e){return jv(e)}function fk(e,t={}){return Vc(e,ne.SerializationMap.getMap().classNameMap,t,"constraint")}function Kt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in mk?mk[e]:e,config:{}};return fk(t)}else return e instanceof jc?e:fk(e)}function cV(e){return new rw(e)}function dV(e){return new sw(e)}function hV(){return new iw}function mV(e){return new ow(e)}var QT={};Ae(QT,{constant:()=>yV,glorotNormal:()=>SV,glorotUniform:()=>IV,heNormal:()=>TV,heUniform:()=>NV,identity:()=>wV,leCunNormal:()=>CV,leCunUniform:()=>_V,ones:()=>gV,orthogonal:()=>EV,randomNormal:()=>xV,randomUniform:()=>bV,truncatedNormal:()=>vV,varianceScaling:()=>kV,zeros:()=>fV});function fV(){return new Xv}function gV(){return new ff}function yV(e){return new Yv(e)}function bV(e){return new Zv(e)}function xV(e){return new Jv(e)}function vV(e){return new Qv(e)}function wV(e){return new ew(e)}function kV(e){return new Bn(e)}function IV(e){return new gf(e)}function SV(e){return new yf(e)}function TV(e){return new bf(e)}function NV(e){return new xf(e)}function CV(e){return new vf(e)}function _V(e){return new wf(e)}function EV(e){return new tw(e)}var eN={};Ae(eN,{Layer:()=>Ge,RNN:()=>dr,RNNCell:()=>Zc,activation:()=>nG,add:()=>cG,alphaDropout:()=>KG,average:()=>dG,averagePooling1d:()=>y0,averagePooling2d:()=>b0,averagePooling3d:()=>x0,avgPool1d:()=>wG,avgPool2d:()=>IG,avgPool3d:()=>TG,avgPooling1d:()=>kG,avgPooling2d:()=>SG,avgPooling3d:()=>NG,batchNormalization:()=>bG,bidirectional:()=>WG,categoryEncoding:()=>JG,concatenate:()=>hG,conv1d:()=>qU,conv2d:()=>KU,conv2dTranspose:()=>XU,conv3d:()=>YU,conv3dTranspose:()=>ZU,convLstm2d:()=>PG,convLstm2dCell:()=>OG,cropping2D:()=>QU,dense:()=>aG,depthwiseConv2d:()=>tG,dot:()=>yG,dropout:()=>rG,elu:()=>BU,embedding:()=>pG,flatten:()=>iG,gaussianDropout:()=>qG,gaussianNoise:()=>jG,globalAveragePooling1d:()=>CG,globalAveragePooling2d:()=>_G,globalMaxPool1d:()=>VG,globalMaxPool2d:()=>UG,globalMaxPooling1d:()=>HN,globalMaxPooling2d:()=>jN,gru:()=>AG,gruCell:()=>$G,input:()=>bN,inputLayer:()=>WU,layerNormalization:()=>xG,leakyReLU:()=>UU,lstm:()=>FG,lstmCell:()=>DG,masking:()=>XG,maxPool1d:()=>GG,maxPool2d:()=>HG,maxPooling1d:()=>qN,maxPooling2d:()=>KN,maxPooling3d:()=>EG,maximum:()=>mG,minimum:()=>fG,multiply:()=>gG,permute:()=>uG,prelu:()=>GU,reLU:()=>VU,repeatVector:()=>oG,rescaling:()=>YG,reshape:()=>lG,resizing:()=>ZG,rnn:()=>LG,separableConv2d:()=>JU,simpleRNN:()=>RG,simpleRNNCell:()=>MG,softmax:()=>HU,spatialDropout1d:()=>sG,stackedRNNCells:()=>zG,thresholdedReLU:()=>jU,timeDistributed:()=>BG,upSampling2d:()=>eG,zeroPadding2d:()=>vG});async function jr(e){if(e==null)return;let t=[],n=[],a=[];for(let r in e){let s=e[r];if(typeof s!="number"){let i=s;t.push(i.data()),n.push(r),a.push(i)}}if(t.length>0){let r=await Promise.all(t);for(let s=0;sY(this.totals[a],z(r,n)));this.totals[a]=i,s!=null&&s.dispose()}}}async onEpochEnd(e,t){if(t!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]=="number"?t[n]=this.totals[n]/this.seen:P(()=>{let a=z(he(1,this.seen),this.totals[n]);t[n]=a,this.totals[n].dispose(),Jt(t[n])}))}},aN=class extends dl{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){t==null&&(t={}),this.epoch.push(e);for(let n in t)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(t[n])}async syncData(){let e=[],t=[],n=[];for(let r in this.history){let s=this.history[r];for(let i=0;inew rN(n,t))}var Ta=class{constructor(){}static registerCallbackConstructor(e,t){v.assert(e>=0&&Number.isInteger(e),()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`),Ta.checkForDuplicate(t),Ta.constructors[e]==null&&(Ta.constructors[e]=[]),Ta.constructors[e].push(t)}static checkForDuplicate(e){for(let t in Ta.constructors)Ta.constructors[+t].forEach(n=>{if(n===e)throw new V("Duplicate callback constructor.")})}static clear(){Ta.constructors={}}static createCallbacks(e){let t=[];for(let n in Ta.constructors){let a=+n;e>=a&&t.push(...Ta.constructors[a])}return t.map(n=>new n)}};Ta.constructors={};function iN(e,t,n,a,r,s,i,o,l){let u=new aN,p=[new $V,...Ta.createCallbacks(t)];e!=null&&p.push(...e),p.push(u);let d=new nN(p);return d.setParams({epochs:n,initialEpoch:a,samples:r,steps:s,batchSize:i,verbose:t,doValidation:o,metrics:l}),{callbackList:d,history:u}}function Ua(e,t={},n=!1){return Vc(e,ne.SerializationMap.getMap().classNameMap,t,"layer",n)}function Eh(e,t){return P(()=>{e.dtype!=="float32"&&(e=oe(e,"float32"));let n=fe(Gc(e),t,!0),a=gn(n.shape,Gt()),r=ln(pr(n,a));return he(e,r)})}function bo(e,t){return P(()=>Nt(Gc(pe(t,e)),-1))}function If(e,t){return P(()=>Nt(Lt(pe(t,e)),-1))}function Ru(e,t){return P(()=>{let n=pe(e,t),a=en(Lt(e),Gt(),Number.MAX_VALUE),r=Lt(he(n,a));return z(100,Nt(r,-1))})}function FV(e,t){return P(()=>{let n=en(t,Gt(),Number.MAX_VALUE),a=ea(Y(1,n)),r=en(e,Gt(),Number.MAX_VALUE),s=ea(Y(1,r));return Nt(Gc(pe(a,s)),-1)})}function DV(e,t){return P(()=>{let n=pr(0,pe(1,z(e,t)));return Nt(Gc(n),-1)})}function RV(e,t){return P(()=>{let n=pr(0,pe(1,z(e,t)));return Nt(n,-1)})}function MV(e,t){return P(()=>{let n=fe(z(e,t),-1),a=ha(z(pe(1,e),t),-1);return pr(0,Y(1,pe(a,n)))})}function PV(e,t){return P(()=>{let n=Math.log(2),a=pe(t,e),r=pe(Y(a,ho(z(-2,a))),n);return Nt(r,-1)})}function Xp(e,t,n=!1){return P(()=>{if(n)t=Ka(t);else{let a=fe(t,t.shape.length-1,!0);t=he(t,a)}return t=en(t,Gt(),1-Gt()),bt(fe(z(oe(e,"float32"),ea(t)),t.shape.length-1))})}function Ah(e,t,n=!1){return P(()=>{let a=oe(_u(G4(e)),"int32");t=en(t,Gt(),1-Gt());let r=t.shape,s=W(rl(a,r[r.length-1]),r);return Xp(s,t,n)})}function OV(e,t){if(!v.arraysEqual(e.shape,t.shape))throw new V(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return P(()=>{let n=Xe(t),a=bt(Lt(t));return Y(pe(n,z(t,e)),Dc(fn(a)))})}function Sf(e,t){return P(()=>{let n;return n=en(t,Gt(),1-Gt()),n=ea(he(n,pe(1,n))),Nt(OV(e,n),-1)})}function LV(e,t){return P(()=>{let n=en(e,Gt(),1),a=en(t,Gt(),1);return fe(z(e,ea(he(n,a))),-1)})}function zV(e,t){return P(()=>{let n=ea(Y(Gt(),t));return Nt(pe(t,z(e,n)),-1)})}function lw(e,t){return P(()=>{let n=Eh(e,-1),a=Eh(t,-1),r=z(n,a);return bt(fe(r,-1))})}var $h={meanSquaredError:bo,meanAbsoluteError:If,meanAbsolutePercentageError:Ru,meanSquaredLogarithmicError:FV,squaredHinge:DV,hinge:RV,categoricalHinge:MV,logcosh:PV,categoricalCrossentropy:Xp,sparseCategoricalCrossentropy:Ah,binaryCrossentropy:Sf,kullbackLeiblerDivergence:LV,poisson:zV,cosineProximity:lw};function db(e){if(typeof e=="string"){if(e in $h)return $h[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 V(t)}else return e}function uw(e,t){return P(()=>{let n=z(.5,ta(t)),a=yo(Nn(t,n),e.dtype);return Nt(Qn(e,a),-1)})}function pw(e,t){return P(()=>yo(Qn(ai(e,-1),ai(t,-1)),"float32"))}function oN(e,t){return P(()=>oe(fe(Ea(Qn(e,1),Qn(t,1))),"float32"))}function WV(e,t){return P(()=>oe(fe(Ea(Qn(e,1),Qn(t,0))),"float32"))}function BV(e,t){return P(()=>oe(fe(Ea(Qn(e,0),Qn(t,1))),"float32"))}function lN(e,t){return P(()=>{let n=oN(e,t),a=BV(e,t),r=Y(n,a);return oe(mn(Nn(r,0),he(n,r),0),"float32")})}function VV(e,t){return P(()=>{let n=oN(e,t),a=WV(e,t),r=Y(n,a);return oe(mn(Nn(r,0),he(n,r),0),"float32")})}function uN(e,t){return Sf(e,t)}function pN(e,t){return e.rank===t.rank&&(e=ws(e,[e.rank-1])),t=ai(t,-1),t.dtype!==e.dtype&&(t=oe(t,e.dtype)),oe(Qn(e,t),"float32")}var UV=bo,GV=bo,HV=If,jV=If,qV=Ru,KV=Ru,cw=Xp,XV=lw,cN=Ah,Fh={binaryAccuracy:uw,categoricalAccuracy:pw,precision:lN,categoricalCrossentropy:cw,sparseCategoricalCrossentropy:cN,mse:UV,MSE:GV,mae:HV,MAE:jV,mape:qV,MAPE:KV,cosine:XV};function YV(e){if(typeof e=="string"&&e in Fh)return Fh[e];if(typeof e!="string"&&e!=null)return e;throw new V(`Unknown metric ${e}`)}function Xd(e){if(tr(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys($h))if($h[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys(Fh))if(Fh[n]===e){t=n;break}return t!==void 0?t:e.name}}function ZV(e){let t={Adagrad:()=>zs.adagrad(.01),Adadelta:()=>zs.adadelta(1,.95,Gt()),Adam:()=>zs.adam(.001,.9,.999,Gt()),Adamax:()=>zs.adamax(.002,.9,.999,Gt(),0),RMSProp:()=>zs.rmsprop(.001,.9,0,Gt()),SGD:()=>zs.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 V(`Unknown Optimizer ${e}`)}function yk(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!Wb(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(n){let a=JSON.stringify(e);a.length>1048576&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${a.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 Wb(e){if(e===null)return!0;if(typeof e=="object")if(Object.getPrototypeOf(e)===Object.prototype){let t=Object.keys(e);for(let n of t)if(typeof n!="string"||!Wb(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!Wb(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function JV(e,t,n,a=console.log){let r=eU(e),s=["Layer (type)","Input Shape","Output shape","Param #"];r?(t=t||90,n=n||[.32,.61,.89,1]):(t=t||115,n=n||[.24,.48,.7,.8,1]),n[n.length-1]<=1&&(n=n.map(p=>Math.floor(t*p)));let i;if(!r){s.push("Receives inputs"),i=[];for(let p in e.nodesByDepth)i.push(...e.nodesByDepth[p])}a("_".repeat(t)),Dh(s,n,a),a("=".repeat(t));let o=e.layers;for(let p=0;p1||r.length===1&&r[0].inboundLayers.length>1){t=!1;break}a.push(...r)}if(t)for(let r of e.layers){let s=!1;for(let i of r.inboundNodes)if(a.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function Dh(e,t,n=console.log){let a="";for(let r=0;r0&&(a=a.slice(0,a.length-1)+" "),a+=e[r],a=a.slice(0,t[r]),a+=" ".repeat(t[r]-a.length);n(a)}function tU(e,t,n){let a,r;try{r=e.inboundNodes.map(l=>JSON.stringify(l.inputShapes)).join(",")}catch(l){r="multiple"}try{a=JSON.stringify(e.outputShape)}catch(l){a="multiple"}let s=e.name,i=e.getClassName(),o=[`${s} (${i})`,r,a,e.countParams().toString()];Dh(o,t,n)}function nU(e,t,n,a){let r,s;try{s=e.inboundNodes.map(d=>JSON.stringify(d.inputShapes)).join(",")}catch(d){s="multiple"}try{r=JSON.stringify(e.outputShape)}catch(d){r="multiple"}let i=[];for(let d of e.inboundNodes)if(!(n!=null&&n.length>0&&n.indexOf(d)===-1))for(let c=0;cy.name)}`);Jr(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(y=>y.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let y of this.outputs){let b=y.sourceLayer,x=y.nodeIndex,w=y.tensorIndex;this.outputLayers.push(b),this.outputLayersNodeIndices.push(x),this.outputLayersTensorIndices.push(w)}for(let y of this.inputs){let b=y.sourceLayer,x=y.nodeIndex,w=y.tensorIndex;tr(x===0,"input layer has >1 nodes"),tr(w===0,"input layer has >1 tensors"),this.inputLayers.push(b),this.inputLayersNodeIndices.push(x),this.inputLayersTensorIndices.push(w)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let y=0;yy.shape),this.internalOutputShapes=this.outputs.map(y=>y.shape);let t={},n={},a={},r={},s={},i=[],o=(y,b,x,w,I,T)=>{(w==null||I==null||T==null)&&(w=y.sourceLayer,I=y.nodeIndex,T=y.tensorIndex);let C=w.inboundNodes[I];if(x.indexOf(C)!==-1)throw new Wa(`The tensor ${y.name} at layer "${w.name}" is part of a cycle.`);if(b.indexOf(C)!==-1)return;this.containerNodes.add(Qa.nodeKey(w,I)),w.id in s||(s[w.id]=Object.keys(s).length),x.indexOf(C)===-1&&x.push(C);let E=C.inboundLayers.length;for(let A=0;A=0;)x.splice(x.indexOf(C),1);i.push(C)},l=[],u=[];for(let y of this.outputs)o(y,l,u);let p=i.slice().reverse();for(let y of p){n[y.id]=y,y.id in t||(t[y.id]=0);let b=t[y.id],x=a[y.outboundLayer.id]==null?0:a[y.outboundLayer.id];b=Math.max(b,x),a[y.outboundLayer.id]=b,r[y.outboundLayer.id]=y.outboundLayer,t[y.id]=b;for(let w=0;wparseInt(y,10)).sort(jd);this.layers=[];for(let y of h){let b=c[y];b.sort((x,w)=>{let I=s[x.id],T=s[w.id];return IT?1:0});for(let x of b)x instanceof Qa&&this.internalContainerRefs.push(x),this.layers.push(x)}this.layersByDepth=c,h=Object.keys(d).map(y=>parseInt(y,10)).sort(jd);let m=this.inputs.slice(),f=[];for(let y of h)for(let b of d[y]){let x=b.outboundLayer;if(x!=null){for(let w of b.inputTensors)if(m.indexOf(w)===-1)throw new Wa(`Graph disconnected: cannot obtain value for tensor ${w} at layer "${x.name}". The following previous layers were accessed without issue: ${f}`);for(let w of b.outputTensors)m.push(w);f.push(x.name)}}this.nodesByDepth=d;let g=this.layers.map(y=>y.name);for(let y of g){let b=g.filter(x=>x===y).length;if(b!==1)throw new Wa(`The name "${y}" is used ${b} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new kf({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(y=>null),outputMasks:this.outputs.map(y=>null),inputShapes:this.inputs.map(y=>y.shape),outputShapes:this.outputs.map(y=>y.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let e={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(let t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(let 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(n=>n.trainable=e)}),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new V("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(let t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.layers)t.push(...n.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){let n={},a=0;for(let s of this.layers)for(let i of s.weights){if(n[i.originalName]!=null)throw new V(`Duplicate weight name: ${i.originalName}`);n[i.originalName]=i,a++}let r=[];for(let s in e){let i=s;if(n[s]==null){let o=s.split("/");i=o.slice(0,-2).concat([o[o.length-1]]).join("/")}if(n[i]!=null)r.push([n[i],e[s]]);else if(t)throw new V(`Provided weight data has no target variable: ${s}`);delete n[i]}if(t){let s=[];for(let i in n)s.push(i);if(s.length>0)throw new V(`${s.length} of ${a} weights are not set: ${s}`)}nw(r)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${dw}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let n=Bb(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return P(()=>{e=yt(e);let n=new Hs;for(let a=0;a{e=yt(e);let n;return t==null?n=oi(null,e.length):n=yt(t),this.runInternalGraph(e,n)[1]})}computeOutputShape(e){let t=Th(e);if(t.length!==this.inputLayers.length)throw new V(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let i=0;iparseInt(i,10)).sort(jd);if(a.length>1)for(let i of a){let o=this.nodesByDepth[i];for(let l of o){let u=l.outboundLayer;if(this.inputLayers.map(m=>m.id).indexOf(u.id)!==-1)continue;let p=[];for(let m=0;mparseInt(o,10)).sort(jd);for(let o of a){let l=this.nodesByDepth[o];for(let u of l){let p=u.outboundLayer,d=u.inputTensors,c=u.outputTensors,h=new Array;for(let m of d)m.id in n&&h.push(n[m.id]);if(h.length===d.length){let m={},f,g,y,b;if(u.callArgs!=null&&(m=u.callArgs),h.length===1){let[x,w]=h[0];m.mask==null&&(m.mask=w),y=yt(p.call(x,m)),b=yt(p.computeMask(x,w)),f=[x],g=[w]}else f=h.map(x=>x[0]),g=h.map(x=>x[1]),m.mask==null&&(m.mask=g),y=yt(p.call(f,m)),b=yt(p.computeMask(f,g));if(p.activityRegularizer)throw new Re("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let x=0;x{let e=[];for(let t of this.layers)for(let n=0;n0){let m=[];for(let f=0;f0&&f.apply(On(y),b)}function l(f){let g=f.name,y=Ua(f,t.customObjects!=null?t.customObjects:{});y.setFastWeightInitDuringBuild(a),r[g]=y,f.inboundNodes.forEach(b=>{if(!(b instanceof Array))throw new V(`Corrupted configuration, expected array for nodeData: ${b}`);i(y,b)})}let u=t.name,p=t.layers;for(let f of p)l(f);for(;!$4(s);)for(let f of p){let g=r[f.name];if(g.name in s){let y=s[g.name];delete s[g.name];for(let b of y)o(g,b)}}let d=[],c=[],h=t.inputLayers;for(let f of h){let g=f[0],y=f[1],b=f[2];tr(g in r);let x=r[g].inboundNodes[y].outputTensors;d.push(x[b])}let m=t.outputLayers;for(let f of m){let g=f[0],y=f[1],b=f[2];tr(g in r);let x=r[g].inboundNodes[y].outputTensors;c.push(x[b])}return new e({inputs:d,outputs:c,name:u})}get stateful(){if(this._stateful)throw new V("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(let e of this.layers)if(e.stateful)return!0;return!1}resetStates(){P(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}};function aU(e,t,n){let a=t.length;if(e==null||Array.isArray(e)&&e.length===0)return t.map(r=>null);if(a===1)return Array.isArray(e)&&e.length===1?e:typeof e=="object"&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==a)throw new Error(`Provided ${n} is an array of ${e.length} element(s), but the model has ${a} outputs. Make sure a set of weights is provided for each model output.`);return e}else if(typeof e=="object"&&Object.keys(e).length>0&&typeof e[Object.keys(e)[0]]=="object"){let r=[];return t.forEach(s=>{s in e?r.push(e[s]):r.push(null)}),r}else throw new Error(`The model has multiple (${a}) outputs, so ${n} must be either an array with ${a} elements or an object with ${t} keys. Provided ${n} not understood: ${JSON.stringify(e)}`)}function hN(e,t){return aU(e,t,"classWeight")}async function mN(e,t,n,a){if(t!=null||a!=null)throw new Error("Support sampleWeight is not implemented yet");if(n!=null){let r=P(()=>{if(e.shape.length===1)return rr(e);if(e.shape.length===2){if(e.shape[1]>1)return ai(e,1);if(e.shape[1]===1)return W(e,[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.`)}else 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.`)}),s=Array.from(await r.data());_e(r);let i=[];return s.forEach(o=>{if(n[o]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${o} exists in the data but not in classWeight`);i.push(n[o])}),Ke(i,"float32")}else return null}function rU(e,t){return z(e,t)}var sU=32;function fN(e,t){let n,a,r=t;n=r.xs,a=r.ys,v.assert(n!=null&&a!=null,()=>`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}`);let s=bk("input",e.inputNames,n),i=bk("output",e.outputNames,a),o=s[0].shape[0];v.assert(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)})`),v.assert(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 l=0;l`Batch size mismatch: input ${e.inputNames[l]} has ${s[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);for(let l=0;l`Batch size mismatch: output ${e.outputNames[l]} has ${i[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);return{xs:s,ys:i}}function bk(e,t,n){if(n instanceof Te)return[n];if(Array.isArray(n))return v.assert(n.length===t.length,()=>`Received an array of ${n.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`),n;{let a=[];for(let r of t){if(n[r]==null)throw new V(`The feature data generated by the dataset lacks the required ${e} key '${r}'.`);a.push(n[r])}return a}}function iU(e){if(e.length===3)throw new Re("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function oU(e,t,n){let a=n.batchesPerEpoch!=null;if(v.assert(e.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),v.assert(n!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),v.assert(n.epochs!=null&&n.epochs>0&&Number.isInteger(n.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${n.epochs}`),v.assert(!a||n.batchesPerEpoch>0&&Number.isInteger(n.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${n.batchesPerEpoch}`),v.assert(n.validationSplit==null,()=>"`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{let r=n.validationData!=null,s,i;if(r)if(xk(n.validationData))v.assert(n.validationBatches==null||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{let g=iU(n.validationData);s=g.xs,i=g.ys}let o=e.makeTrainFunction(),l=e.getDedupedMetricsNames(),u;r?u=l.slice().concat(l.map(g=>"val_"+g)):u=l.slice();let p=sN(n.callbacks,n.yieldEvery),d=n.verbose==null?1:n.verbose,{callbackList:c,history:h}=iN(p,d,n.epochs,null,null,lU(t,n),null,r,u);c.setModel(e),e.history=h,await c.onTrainBegin(),e.stopTraining_=!1;let m=n.initialEpoch==null?0:n.initialEpoch,f=await t.iterator();for(;m=n.batchesPerEpoch:x.done){if(r){let w;xk(n.validationData)?w=yt(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):w=yt(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?sU:n.validationBatchSize,verbose:0}));for(let I=0;I0)throw new Re("Verbose mode is not implemented yet.");v.assert(!a||n.batches>0&&Number.isInteger(n.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(n.batches)}`);let i=uU(t)?t:await t.iterator(),o=0,l=0;for(;!a||l{if(u.value){let{xs:p,ys:d}=fN(e,u.value),c=p.concat(d),h=P(()=>r(c));if(_e(c),l===0)for(let f=0;fY(s[f],z(m,g))),l>0&&_e(y)}_e(h),o+=m,++l}return s}),u.done){a&&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 u=0;u0&&Number.isInteger(e),()=>`batchSize is required to be a positive integer, but got ${e}`)}function Ap(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>Ys(a,t,n-t)):Ys(e,t,n-t)}function hw(e,t){return P(()=>e==null?null:Array.isArray(e)?e.map(n=>hw(n,t)):qT(e,t.dtype==="int32"?t:oe(t,"int32")))}function Ub(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}async function cU(e,t,n,a,r,s,i,o,l,u,p,d,c,h,m){r==null&&(r=32),s==null&&(s=1),p==null&&(p=!0),c==null&&(c=0);let f=!1;if(l!=null&&u!=null&&(f=!0),m!=null&&(f=!0,h==null))throw new V("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let g=e.checkNumSamples(n,r,h,"steps_per_epoch"),y;g!=null&&(y=Ha(0,g)),i==null&&(i=1);let{callbackList:b,history:x}=iN(o,i,s,c,g,h,r,f,d);b.setModel(e),e.history=x,await b.onTrainBegin(),e.stopTraining_=!1;for(let w=c;w{let R=C[E][0],F=C[E][1],S=Ys(T,R,F-R);A.batch=E,A.size=F-R;let M=hw(n,S),B=t(M);for(let U=0;U0){if(g=!0,a.validationData.length===2)l=a.validationData[0],u=a.validationData[1];else throw a.validationData.length===3?new Re("validationData including sample weights is not supported yet."):new V(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${a.validationData} is invalid.`);let E=!0,A=await e.standardizeUserData(l,u,null,null,E,h);p=A[0],d=A[1],y=p.concat(d)}else if(a.validationSplit!=null&&a.validationSplit>0&&a.validationSplit<1){g=!0;let E=Math.floor(r[0].shape[0]*(1-a.validationSplit)),A=r[0].shape[0];p=Ap(r,E,A),i=r,r=Ap(r,0,E),d=Ap(s,E,A),o=s,s=Ap(s,0,E),y=p.concat(d)}else a.validationSteps!=null&&(g=!0);let b=r.concat(s).concat(c);e.checkTrainableWeightsConsistency();let x=e.makeTrainFunction(),w=e.getDedupedMetricsNames(),I,T;g?(e.makeTestFunction(),I=e.testFunction,T=w.slice().concat(w.map(E=>"val_"+E))):(I=null,y=[],T=w.slice());let C=sN(a.callbacks,a.yieldEvery);return await cU(e,x,b,w,h,a.epochs,a.verbose,C,I,y,a.shuffle,T,a.initialEpoch,null,null)}finally{e.isTraining=!1,La(r,t),La(s,n),La(i,t),La(o,n),La(p,l),La(d,u),c!=null&&_e(c)}}function gN(e){let t=[];e instanceof Te&&(e=[e]);for(let n=0;nn.push(r.id));else if(t!=null)for(let r in t){let s=t[r];n.push(s.id)}let a=[];if(e instanceof Te)n.indexOf(e.id)===-1&&a.push(e);else if(Array.isArray(e))e.forEach(r=>{n.indexOf(r.id)===-1&&a.push(r)});else if(e!=null)for(let r in e){let s=e[r];n.indexOf(s.id)===-1&&a.push(s)}a.forEach(r=>{r.isDisposed||r.dispose()})}function hU(e){return e instanceof Te}function Gb(e){return Array.isArray(e)}function vk(e){return!hU(e)&&!Gb(e)}function wk(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(Gb(e)&&e.length>0)i=!0;else if(vk(e)){for(let o in e)if(e.hasOwnProperty(o)){i=!0;break}}else i=!0;if(i)throw new V(`Error when checking model ${r} expected no data, but got ${e}`)}return[]}if(e==null)return t.map(i=>null);let s;if(vk(e)){e=e,s=[];for(let i of t){if(e[i]==null)throw new V(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(e[i])}}else if(Gb(e)){if(e=e,e.length!==t.length)throw new V(`Error when checking model ${r}: 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 V(`The model ${r} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);s=[e]}if(s=gN(s),n!=null)for(let i=0;i=0&&u!==p)throw new V(`${r} expected a batch of elements where each example has shape [${n[i].slice(1,n[i].length)}] (i.e.,tensor shape [*,${n[i].slice(1,n[i].length)}]) but the ${r} received an input with ${o.shape[0]} examples, each with shape [${o.shape.slice(1,o.shape.length)}] (tensor shape [${o.shape}])`)}}return s}function mU(e,t,n){let a=Jr(e.map(s=>s.shape[0]));a.sort();let r=Jr(t.map(s=>s.shape[0]));if(r.sort(),a.length>1)throw new V(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map(s=>s.shape))}`);if(r.length>1)throw new V(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(s=>s.shape))}`);if(a.length>0&&r.length>0&&!v.arraysEqual(a,r))throw new V(`Input Tensors should have the same number of samples as target Tensors. Found ${a[0]} input sample(s) and ${r[0]} target sample(s).`)}function fU(e,t,n){let a=[bo,Sf,Xp];for(let r=0;r1)throw new V(`The model expects ${t.length} ${r} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);s=[e]}if(n!=null)for(let i=0;i[]);let n;if(typeof e=="string"||typeof e=="function")n=[e];else if(Array.isArray(e)||typeof e=="object")n=e;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);if(Array.isArray(n))return t.map(a=>n);{let a=[];for(let r of t){let s=n.hasOwnProperty(r)?n[r]:[];Array.isArray(s)||(s=[s]),a.push(s)}return a}}var yU="layers-model",Nr=class extends Qa{constructor(e){super(e),this.isTraining=!1}summary(e,t,n=console.log){if(!this.built)throw new V("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");JV(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=ZV(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof $r))throw new V("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(!Array.isArray(e.loss)&&typeof e.loss!="string"&&typeof e.loss!="function"){e.loss=e.loss;for(let s in e.loss)if(this.outputNames.indexOf(s)===-1)throw new V(`Unknown entry in loss dictionary: "${s}". Only expected the following keys: ${this.outputNames}`);for(let s of this.outputNames)e.loss[s]==null&&console.warn(`Output "${s}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${s} during training`),t.push(db(e.loss[s]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new V(`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}.`);t=e.loss.map(s=>db(s))}else{let s=db(e.loss);this.outputs.forEach(i=>{t.push(s)})}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let s=0;s{for(let s=0;s1&&(this.metricsTensors.push([i,s]),this.metricsNames.push(this.outputNames[s]+"_loss"))}});let a=gU(e.metrics,this.outputNames),r=(s,i,o)=>{this.outputNames.length>1&&(i=this.outputNames[s]+"_"+i),this.metricsNames.push(i),this.metricsTensors.push([o,s])};Xs("metric",()=>{for(let s=0;s{let l="",u,p,d;for(let c of o){if(typeof c=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(c)!==-1){let m=this.internalOutputShapes[s];m[m.length-1]===1||this.lossFunctions[s]===Sf?["accuracy","acc"].indexOf(c)!==-1?p=uw:["crossentropy","ce"].indexOf(c)!==-1&&(p=uN):this.lossFunctions[s]===Ah?["accuracy","acc"].indexOf(c)!==-1?p=pN:["crossentropy","ce"].indexOf(c)!==-1&&(p=cN):["accuracy","acc"].indexOf(c)!==-1?p=pw:["crossentropy","ce"].indexOf(c)!==-1&&(p=cw);let f;["accuracy","acc"].indexOf(c)!==-1?f="acc":["crossentropy","ce"].indexOf(c)!==-1&&(f="ce"),d=p,u=l+f}else d=YV(c),u=l+Xd(c);let h;Xs(u,()=>{h=d}),r(s,u,h)}})(i)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&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={}){let a=n.batchSize==null?32:n.batchSize;Vb(a);let r=!0,s=this.standardizeUserDataXY(e,t,r,a);try{let i=s[0].concat(s[1]);this.makeTestFunction();let o=this.testFunction,l=this.testLoop(o,i,a,n.verbose,n.steps);return On(l)}finally{La(s[0],e),La(s[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),pU(this,e,t)}checkNumSamples(e,t,n,a="steps"){let r;if(n!=null){if(r=null,t!=null)throw new V(`If ${a} is set, batchSize must be null or undefined.Got batchSize = ${t}`)}else if(e!=null)Array.isArray(e)?r=e[0].shape[0]:r=e.shape[0];else throw new V(`Either the input data should have a defined shape, or ${a} shoud be specified.`);return r}execute(e,t){if(Array.isArray(t)&&t.length===0)throw new V("`outputs` is an empty Array, which is not allowed.");let n=Array.isArray(t),a=n?t:[t],r=this.retrieveSymbolicTensors(a),s=new Hs;if(e instanceof Te&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new V(`The number of inputs provided (${e.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let o=0;oi.name);for(let i=0;i0){let a=[];throw t.forEach((r,s)=>{r==null&&a.push(e[s])}),new V(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(a)}`)}return t}predictLoop(e,t=32,n=!1){return P(()=>{let a=this.checkNumSamples(e);if(n)throw new Re("Verbose predictLoop() is not implemented yet.");let r=Ub(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],u=Ap(e,o,l),p=[];if(Array.isArray(u))for(let c=0;cs[l].push(o));return On(s.map(i=>Ze(i,0)))})}predict(e,t={}){let n=gN(e);kk(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return Vb(a),this.predictLoop(n,a)}finally{La(n,e)}}predictOnBatch(e){kk(e,this.inputNames,this.feedInputShapes,!0);let t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,n=!0,a){if(this.optimizer_==null)throw new Wa("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let r=[];for(let s=0;s0&&e[0].shape[0]%a!==0)throw new V(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${a}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,n,a,r=!0,s){let[i,o]=this.standardizeUserDataXY(e,t,r,s);if(n!=null)throw new Error("sample weight is not supported yet.");let l=null;if(a!=null){let u=hN(a,this.outputNames);l=[];for(let p=0;p{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new Re("Verbose mode is not implemented yet.");if(r!=null)throw new Re("steps mode in testLoop() is not implemented yet");{let o=Ub(s,n),l=Ke(Ha(0,s));for(let u=0;u1&&(r+=`_${ok(e.slice(0,n),a)}`),t.push(r)}return t}makeTrainFunction(){return e=>{let t=[],n=e.slice(0,this.inputs.length),a=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),r=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),s=[],i=()=>{let u=[];for(let h=0;h1&&h{c=Y(c,h)}),c},o=this.collectedTrainableWeights.map(u=>u.read()),l=!0;return[this.optimizer_.minimize(i,l,o)].concat(s)}}makeTestFunction(){this.testFunction=e=>P(()=>{let t=[],n,a=e.slice(0,this.inputs.length),r=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=[];for(let l=0;lwr(t))}else{let t=Object.keys(this.loss);e={};let n=this.loss;for(let a of t)if(typeof n[a]=="string")e[a]=wr(n[a]);else throw new Error("Serialization of non-string loss is not supported.")}return e}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[wr(Xd(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>wr(Xd(e)));{let e={};for(let t in this.metrics)e[t]=wr(Xd(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(e.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(e.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(e.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let t=Yp(e.optimizer_config),n=Ua(t),a;if(typeof e.loss=="string")a=Vs(e.loss);else if(Array.isArray(e.loss))a=e.loss.map(s=>Vs(s));else if(e.loss!=null){a={};for(let s in e.loss)a[s]=Vs(e.loss[s])}let r;if(Array.isArray(e.metrics))r=e.metrics.map(s=>Vs(s));else if(e.metrics!=null){r={};for(let s in e.metrics)r[s]=Vs(e.metrics[s])}this.compile({loss:a,metrics:r,optimizer:n})}async save(e,t){if(typeof e=="string"){let i=Ut.getSaveHandlers(e);if(i.length===0)throw new V(`Cannot find any save handlers for URL '${e}'`);if(i.length>1)throw new V(`Found more than one (${i.length}) save handlers for URL '${e}'`);e=i[0]}if(e.save==null)throw new V("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await Ut.encodeWeights(this.getNamedWeights(t)),a=!1,r=null,s={modelTopology:this.toJSON(r,a),format:yU,generatedBy:`TensorFlow.js tfjs-layers v${dw}`,convertedBy:null};if((t==null?!1:t.includeOptimizer)&&this.optimizer!=null){s.trainingConfig=this.getTrainingConfig();let i="optimizer",{data:o,specs:l}=await Ut.encodeWeights(await this.optimizer.getWeights(),i);n.specs.push(...l),n.data=Ut.concatenateArrayBuffers([n.data,o])}return this.userDefinedMetadata!=null&&(yk(this.userDefinedMetadata,this.name,!0),s.userDefinedMetadata=this.userDefinedMetadata),s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){yk(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};Nr.className="Model";ne.registerClass(Nr);var yN=class extends Nr{};yN.className="Functional";ne.registerClass(yN);async function bU(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=Yp(n),r=Ua(a,t);if(e.weightsManifest!=null){let s=await Ut.loadWeights(e.weightsManifest,e.pathPrefix,r.weights.map(o=>o.originalName)),i={};for(let o of r.weights)i[o.originalName]=s[o.originalName];r.loadWeights(i),_e(s)}return r}async function xU(e,t){if(t==null&&(t={}),typeof e=="string"){let n=Ut.getLoadHandlers(e,t);if(n.length===0)n.push(Ut.browserHTTPRequest(e,t));else if(n.length>1)throw new V(`Found more than one (${n.length}) load handlers for URL '${e}'`);e=n[0]}return vU(e,void 0,t)}async function vU(e,t,n){if(n==null&&(n={}),e.load==null)throw new V("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let a=await e.load(),r=a.modelTopology;r.model_config!=null&&(r=r.model_config);let s=n.strict==null?!0:n.strict,i=a.weightData!=null&&a.weightSpecs!=null&&s,o=Ua(Yp(r),t,i),l=a.trainingConfig;if(l!=null&&o.loadTrainingConfig(l),a.userDefinedMetadata!=null&&o.setUserDefinedMetadata(a.userDefinedMetadata),a.weightData!=null){if(a.weightSpecs==null)throw new V("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:u,optimizerWeights:p}=wU(a.weightData,a.weightSpecs);o.loadWeights(u,s),o.optimizer!=null&&p.length>0&&await o.optimizer.setWeights(p),_e(u),_e(p.map(d=>d.tensor))}return o}function wU(e,t){let n=Ut.decodeWeights(e,t),a={},r=[];return t.forEach(s=>{s.group==="optimizer"?r.push({name:s.name,tensor:n[s.name]}):a[s.name]=n[s.name]}),{modelWeights:a,optimizerWeights:r}}var hl=class extends Nr{constructor(e){if(super({inputs:[],outputs:[]}),e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:hf("sequential_"),e.layers!=null)for(let t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some(t=>t<0))throw new V(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){let t=e instanceof hl||e instanceof Nr,n;if(t){if(n=e,n.outputs.length!==1)throw new V("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(n.inputs.length!==1)throw new V("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(e.inboundNodes.length===0){if(e.batchInputShape==null)throw new V("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let a=ZT({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(a)}if(t)this.outputs=n.outputs,this.inputs=n.inputs;else{if(e.inboundNodes.length!==1)throw new V(`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(e.inboundNodes[0].outputTensors.length!==1)throw new V("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=YT(this.outputs[0])}this.inboundNodes=[],new kf({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:oi(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(a=>a.shape),outputShapes:this.outputs[0].shape})}else{let a=e.apply(this.outputs[0]);if(Array.isArray(a))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=[a],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let 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 this.model==null&&this.build(),this.model.call(e,t)}build(e){if(Qe(e),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new Nr({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){this.model==null&&this.build(),this.model.setWeights(e)}evaluate(e,t,n={}){if(!this.built)throw new Wa("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 Wa("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return this.model==null&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return this.model==null&&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 this.model==null?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,n={}){if(!this.built)throw new Wa("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 Wa("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={},a=!1){let r,s={};if(t instanceof Array){if(t[0].className==null||t[0].className==="Merge")throw new V("Legacy serialization format not supported yet.");r=t}else v.assert(t.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),r=t.layers,delete t.layers,s=t;let i=new e(s);if(!(i instanceof hl))throw new Re(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(let o of r){let l=Ua(o,void 0,a);a&&l.setFastWeightInitDuringBuild(!0),i.add(l)}return i}set stopTraining(e){if(this.model==null)throw new V("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(this.model==null)throw new V("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let e=[];for(let t of this.layers){let n={};n.className=t.getClassName(),n.config=t.getConfig(),e.push(n)}return{name:this.name,layers:e}}};hl.className="Sequential";ne.registerClass(hl);function kU(e){return new Nr(e)}function IU(e){return new hl(e)}function bN(e){return ZT(e)}function SU(e,t){Ta.registerCallbackConstructor(e,t)}var Un=class extends ne.Serializable{getConfig(){return{}}},xN=class extends Un{apply(e,t=1){return j4(e,t)}};xN.className="elu";ne.registerClass(xN);var vN=class extends Un{apply(e){return qm(e)}};vN.className="selu";ne.registerClass(vN);var wN=class extends Un{apply(e){return Xe(e)}};wN.className="relu";ne.registerClass(wN);var kN=class extends Un{apply(e){return P(()=>Au(6,Xe(e)))}};kN.className="relu6";ne.registerClass(kN);var IN=class extends Un{apply(e){return e}};IN.className="linear";ne.registerClass(IN);var SN=class extends Un{apply(e){return da(e)}};SN.className="sigmoid";ne.registerClass(SN);var TN=class extends Un{apply(e){return K4(e)}};TN.className="hardSigmoid";ne.registerClass(TN);var NN=class extends Un{apply(e){return ho(e)}};NN.className="softplus";ne.registerClass(NN);var CN=class extends Un{apply(e){return q4(e)}};CN.className="softsign";ne.registerClass(CN);var _N=class extends Un{apply(e){return ri(e)}};_N.className="tanh";ne.registerClass(_N);var mw=class extends Un{apply(e,t=-1){return Ka(e,t)}};mw.className="softmax";ne.registerClass(mw);var EN=class extends Un{apply(e,t=-1){return zm(e,t)}};EN.className="logSoftmax";ne.registerClass(EN);var AN=class extends Un{apply(e,t=1){return P(()=>z(da(z(e,t)),e))}};AN.className="swish";ne.registerClass(AN);var $N=class extends Un{apply(e){return P(()=>z(e,ri(ho(e))))}};$N.className="mish";ne.registerClass($N);function rs(e){return e.getClassName()}function hb(e,t={}){return Vc(e,ne.SerializationMap.getMap().classNameMap,t,"activation")}function ss(e){if(e==null){let t={};return t.className="linear",t.config={},hb(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},hb(t)}else return e instanceof Un?e:hb(e)}function fw(e){if(e!=null&&typeof e!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}var FN=class extends ne.Serializable{},qc=class extends FN{constructor(e){super(),fw(e),this.l1=e==null||e.l1==null?.01:e.l1,this.l2=e==null||e.l2==null?.01:e.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(e){return P(()=>{let t=It([1]);return this.hasL1&&(t=Y(t,fe(z(this.l1,Lt(e))))),this.hasL2&&(t=Y(t,fe(z(this.l2,Gc(e))))),W(t,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};qc.className="L1L2";ne.registerClass(qc);function TU(e){return fw(e),new qc({l1:e!=null?e.l1:null,l2:0})}function NU(e){return fw(e),new qc({l2:e!=null?e.l2:null,l1:0})}var Ik={l1l2:"L1L2"};function pt(e){return jv(e)}function Sk(e,t={}){return Vc(e,ne.SerializationMap.getMap().classNameMap,t,"regularizer")}function Tt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in Ik?Ik[e]:e,config:{}};return Sk(t)}else return e instanceof FN?e:Sk(e)}var gw=class extends Ge{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Ne(e);let n=Xe(e);return this.maxValue!=null&&(n=en(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};gw.className="ReLU";ne.registerClass(gw);var yw=class extends Ge{constructor(e){super(e==null?{}:e),this.DEFAULT_ALPHA=.3,e==null&&(e={}),this.alpha=e.alpha==null?this.DEFAULT_ALPHA:e.alpha}call(e,t){let n=Ne(e);return Fc(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};yw.className="LeakyReLU";ne.registerClass(yw);var bw=class extends Ge{constructor(e){if(super(e==null?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=St(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Tt(e.alphaRegularizer),this.alphaConstraint=Kt(e.alphaConstraint),e.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else if(typeof e.sharedAxes=="number")this.sharedAxes=[e.sharedAxes];else throw new V(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=Qe(e);let t=e.slice(1);if(this.sharedAxes!=null)for(let a of this.sharedAxes)t[a-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let a=1;a(Rt(t),t==="channelsFirst"?Ee(e,[0,2,3,1]):e))}function DN(e,t){return P(()=>(Rt(t),t==="channelsFirst"?Ee(e,[0,2,3,4,1]):e))}function CU(e,t,n,a=1,r="valid",s,i=1){return P(()=>{if(s==null&&(s=ja()),Rt(s),e.shape.length!==3)throw new V(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(t.shape.length!==3)throw new V(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(n!=null&&n.shape.length!==1)throw new V(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s==="channelsFirst"&&(e=Ee(e,[0,2,1])),r==="causal")throw new Re("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=Fm(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=Xa(o,n)),o})}function Tk(e,t,n,a=[1,1],r="valid",s,i,o=null){return P(()=>{if(s==null&&(s=ja()),Rt(s),e.rank!==3&&e.rank!==4)throw new V(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(t.rank!==3&&t.rank!==4)throw new V(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=kw(e,s);if(r==="causal")throw new Re("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=pl.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=Ee(l,[0,3,1,2])),l})}function _U(e,t,n,a=[1,1,1],r="valid",s,i){return P(()=>{if(s==null&&(s=ja()),Rt(s),e.rank!==4&&e.rank!==5)throw new V(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(t.rank!==4&&t.rank!==5)throw new V(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=DN(e,s);if(r==="causal")throw new Re("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=ov(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=Xa(o,n)),s==="channelsFirst"&&(o=Ee(o,[0,4,1,2,3])),o})}var Iw=class extends Ge{constructor(e,t){if(super(t),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",Iw.verifyArgs(t),this.rank=e,Qt(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new Re(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=el(t.kernelSize,e,"kernelSize"),this.strides=el(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,ba(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Rt(this.dataFormat),this.activation=ss(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=St(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Kt(t.biasConstraint),this.biasRegularizer=Tt(t.biasRegularizer),this.activityRegularizer=Tt(t.activityRegularizer),this.dilationRate=el(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new V(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new V(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new V(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(tr("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!qv(e.kernelSize,"number",1,3))throw new V(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){let e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:rs(this.activation),useBias:this.useBias,biasInitializer:Ct(this.biasInitializer),biasRegularizer:pt(this.biasRegularizer),activityRegularizer:pt(this.activityRegularizer),biasConstraint:qt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},Kc=class extends Iw{constructor(e,t){super(e,t),this.kernel=null,Kc.verifyArgs(t),this.filters=t.filters,Qt(this.filters,"filters"),this.kernelInitializer=St(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Kt(t.kernelConstraint),this.kernelRegularizer=Tt(t.kernelRegularizer)}build(e){e=Qe(e);let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V(`The channel dimension of the input should be defined. Found ${e[t]}`);let n=e[t],a=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",a,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 P(()=>{e=Ne(e);let n,a=this.bias==null?null:this.bias.read(),r=BT(this.activation.getClassName());if(r!=null&&this.rank===2)n=Tk(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(this.rank===1)n=CU(e,this.kernel.read(),a,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=Tk(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=_U(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new Re("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(e){e=Qe(e);let t=[],n=this.dataFormat==="channelsLast"?e.slice(1,e.length-1):e.slice(2);for(let r=0;r 0 but got ${JSON.stringify(e.filters)}`)}},Xc=class extends Kc{constructor(e){super(2,e),Xc.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!qv(e.kernelSize,"number",1,2))throw new V(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}};Xc.className="Conv2D";ne.registerClass(Xc);var Yc=class extends Kc{constructor(e){super(3,e),Yc.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!(Array.isArray(e.kernelSize)&&(e.kernelSize.length===1||e.kernelSize.length===3)))throw new V(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}};Yc.className="Conv3D";ne.registerClass(Yc);var Sw=class extends Xc{constructor(e){if(super(e),this.inputSpec=[new zt({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new V(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=Qe(e),e.length!==4)throw new V("Input should have rank 4; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V("The channel dimension of the inputs should be defined. Found `None`.");let n=e[t],a=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",a,"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 zt({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return P(()=>{let n=Ne(e);if(n.shape.length!==4)throw new V(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let a=n.shape,r=a[0],s,i;this.dataFormat==="channelsFirst"?(s=2,i=3):(s=1,i=2);let o=a[s],l=a[i],u=this.kernelSize[0],p=this.kernelSize[1],d=this.strides[0],c=this.strides[1],h=nr(o,d,u,this.padding),m=nr(l,c,p,this.padding),f=[r,h,m,this.filters];this.dataFormat!=="channelsLast"&&(n=Ee(n,[0,2,3,1]));let g=Dm(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=Ee(g,[0,3,1,2])),this.bias!=null&&(g=Xa(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=Qe(e);let t=e.slice(),n,a,r;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3):(n=3,a=1,r=2);let s=this.kernelSize[0],i=this.kernelSize[1],o=this.strides[0],l=this.strides[1];return t[n]=this.filters,t[a]=nr(t[a],o,s,this.padding),t[r]=nr(t[r],l,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Sw.className="Conv2DTranspose";ne.registerClass(Sw);var Tw=class extends Yc{constructor(e){if(super(e),this.inputSpec=[new zt({ndim:5})],this.padding!=="same"&&this.padding!=="valid")throw new V(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=Qe(e),e.length!==5)throw new V("Input should have rank 5; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V("The channel dimension of the inputs should be defined. Found `None`.");let n=e[t],a=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",a,"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 zt({ndim:5,axes:{[t]:n}})],this.built=!0}call(e,t){return P(()=>{let n=Ne(e);if(n.shape.length!==5)throw new V(`Conv3DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let a=n.shape,r=a[0],s,i,o;this.dataFormat==="channelsFirst"?(o=2,s=3,i=4):(o=1,s=2,i=3);let l=a[o],u=a[s],p=a[i],d=this.kernelSize[0],c=this.kernelSize[1],h=this.kernelSize[2],m=this.strides[0],f=this.strides[1],g=this.strides[2],y=nr(l,m,d,this.padding),b=nr(u,f,c,this.padding),x=nr(p,g,h,this.padding),w=[r,y,b,x,this.filters];this.dataFormat!=="channelsLast"&&(n=Ee(n,[0,2,3,4,1]));let I=lv(n,this.kernel.read(),w,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(I=Ee(I,[0,4,1,2,3])),this.bias!==null&&(I=Xa(I,this.bias.read(),this.dataFormat)),this.activation!==null&&(I=this.activation.apply(I)),I})}computeOutputShape(e){e=Qe(e);let t=e.slice(),n,a,r,s;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3,s=4):(n=4,a=1,r=2,s=3);let i=this.kernelSize[0],o=this.kernelSize[1],l=this.kernelSize[2],u=this.strides[0],p=this.strides[1],d=this.strides[2];return t[n]=this.filters,t[a]=nr(t[a],u,i,this.padding),t[r]=nr(t[r],p,o,this.padding),t[s]=nr(t[s],d,l,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Tw.className="Conv3DTranspose";ne.registerClass(Tw);var RN=class extends Kc{constructor(e,t){if(super(e,t),this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,t.filters==null)throw new V("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new V("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(t.padding!=null&&t.padding!=="same"&&t.padding!=="valid")throw new V(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=St(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Tt(t.depthwiseRegularizer),this.depthwiseConstraint=Kt(t.depthwiseConstraint),this.pointwiseInitializer=St(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Tt(t.pointwiseRegularizer),this.pointwiseConstraint=Kt(t.pointwiseConstraint)}build(e){if(e=Qe(e),e.length{e=Ne(e);let n;if(this.rank===1)throw new Re("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=Ee(e,[0,2,3,1])),n=vs(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=Xa(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Ee(n,[0,3,1,2])),n})}getConfig(){let e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.pointwiseInitializer=Ct(this.pointwiseInitializer),e.depthwiseRegularizer=pt(this.depthwiseRegularizer),e.pointwiseRegularizer=pt(this.pointwiseRegularizer),e.depthwiseConstraint=qt(this.depthwiseConstraint),e.pointwiseConstraint=qt(this.pointwiseConstraint),e}};RN.className="SeparableConv";var Nw=class extends RN{constructor(e){super(2,e)}};Nw.className="SeparableConv2D";ne.registerClass(Nw);var Tf=class extends Kc{constructor(e){super(1,e),Tf.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){let e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!qv(e.kernelSize,"number",1,1))throw new V(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}};Tf.className="Conv1D";ne.registerClass(Tf);var Cw=class extends Ge{constructor(e){super(e),typeof e.cropping=="number"?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:typeof e.cropping[0]=="number"?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=e.dataFormat===void 0?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return this.dataFormat==="channelsFirst"?[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 P(()=>{if(e=Ne(e),this.dataFormat==="channelsLast"){let n=Kd(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Kd(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=Kd(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Kd(n,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Cw.className="Cropping2D";ne.registerClass(Cw);var _w=class extends Ge{constructor(e){super(e),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=e.size==null?this.DEFAULT_SIZE:e.size,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,z4(this.interpolation)}computeOutputShape(e){if(this.dataFormat==="channelsFirst"){let t=e[2]==null?null:this.size[0]*e[2],n=e[3]==null?null:this.size[1]*e[3];return[e[0],e[1],t,n]}else{let t=e[1]==null?null:this.size[0]*e[1],n=e[2]==null?null:this.size[1]*e[2];return[e[0],t,n,e[3]]}}call(e,t){return P(()=>{let n=Ne(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=Ee(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?za.resizeNearestNeighbor(n,[r,s]):za.resizeBilinear(n,[r,s]);return Ee(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?za.resizeNearestNeighbor(n,[r,s]):za.resizeBilinear(n,[r,s])}})}getConfig(){let e={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},t=super.getConfig();return Object.assign(e,t),e}};_w.className="UpSampling2D";ne.registerClass(_w);function EU(e,t,n=[1,1],a="valid",r,s){return P(()=>{r==null&&(r=ja()),Rt(r);let i=kw(e,r);if(e.rank!==4)throw new V(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(t.rank!==4)throw new V(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=bs(i,t,n,a==="same"?"same":"valid","NHWC",s),r==="channelsFirst"&&(i=Ee(i,[0,3,1,2])),i})}var Ew=class extends Iw{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=St(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Kt(e.depthwiseConstraint),this.depthwiseRegularizer=Tt(e.depthwiseRegularizer)}build(e){if(e=Qe(e),e.length<4)throw new V(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);let t=this.dataFormat==="channelsFirst"?1:3;if(e[t]==null||e[t]<0)throw new V(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);let n=e[t],a=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",a,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 P(()=>{e=Ne(e);let n=EU(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=Xa(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(e){e=Qe(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,r=Ga(t,this.kernelSize[0],this.padding,this.strides[0]),s=Ga(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[e[0],a,r,s]:[e[0],r,s,a]}getConfig(){let e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.depthwiseRegularizer=pt(this.depthwiseRegularizer),e.depthwiseConstraint=qt(this.depthwiseRegularizer),e}};Ew.className="DepthwiseConv2D";ne.registerClass(Ew);function MN(e,t,n,a){if(Array.isArray(e)){if(t!=null||n!=null)throw new V("When inputs is an array, neither initialState or constants should be provided");a!=null&&(n=e.slice(e.length-a,e.length),e=e.slice(0,e.length-a)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function r(s){return s==null||Array.isArray(s)?s:[s]}return t=r(t),n=r(n),{inputs:e,initialState:t,constants:n}}function PN(e,t,n,a=!1,r,s,i=!1,o=!1){return P(()=>{let l=t.shape.length;if(l<3)throw new V(`Input should be at least 3D, but is ${l}D.`);let u=[1,0].concat(Ha(2,l));if(t=Ee(t,u),s!=null)throw new Re("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."),r!=null&&(r=oe(oe(r,"bool"),"float32"),r.rank===l-1&&(r=Zt(r,-1)),r=Ee(r,u)),a&&(t=fa(t,0),r!=null&&(r=fa(r,0)));let p=[],d,c=n,h=t.shape[0],m=ct(t),f;r!=null&&(f=ct(r));for(let y=0;ye(b,c));if(r==null)d=x[0],c=x[1];else{let w=P(()=>{let I=f[y],T=pe(ta(I),I),C=Y(z(x[0],I),z(c[0],T)),E=c.map((A,R)=>Y(z(x[1][R],I),z(A,T)));return{output:C,newStates:E}});d=w.output,c=w.newStates}o&&p.push(d)}let g;return o&&(g=Ft(p,1)),[d,g,c]})}var dr=class extends Ge{constructor(e){super(e);let t;if(e.cell==null)throw new V("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new _f({cells:e.cell}):t=e.cell,t.stateSize==null)throw new V("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=e.returnSequences==null?!1:e.returnSequences,this.returnState=e.returnState==null?!1:e.returnState,this.goBackwards=e.goBackwards==null?!1:e.goBackwards,this._stateful=e.stateful==null?!1:e.stateful,this.unroll=e.unroll==null?!1:e.unroll,this.supportsMasking=!0,this.inputSpec=[new zt({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Ha(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){Lb(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);let n=t[0],a;if(this.returnSequences?a=[e[0],e[1],n]:a=[e[0],n],this.returnState){let r=[];for(let s of t)r.push([e[0],s]);return[a].concat(r)}else return a}computeMask(e,t){return P(()=>{Array.isArray(t)&&(t=t[0]);let n=this.returnSequences?t:null;if(this.returnState){let a=this.states.map(r=>null);return[n].concat(a)}else return n})}get states(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let n=0;ns.shape[s.shape.length-1]),r))throw new V(`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=r.map(s=>new zt({shape:[null,s]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){P(()=>{if(!this.stateful)throw new vr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape[0];if(n==null)throw new V("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(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>It([n,a])):this.states_=[It([n,this.cell.stateSize])];else if(e==null)_e(this.states_),this.keptStates!=null&&(_e(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>It([n,a])):this.states_[0]=It([n,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new V(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t===!0?this.keptStates.push(this.states_.slice()):_e(this.states_);for(let a=0;aJt(a.clone()))})}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=MN(e,n,a,this.numConstants);e=r.inputs,n=r.initialState,a=r.constants;let s=[],i=[];if(n!=null){t.initialState=n,s=s.concat(n),this.stateSpec=[];for(let o of n)this.stateSpec.push(new zt({shape:o.shape}));i=i.concat(this.stateSpec)}if(a!=null&&(t.constants=a,s=s.concat(a),this.numConstants=a.length),s[0]instanceof Ba){let o=[e].concat(s),l=this.inputSpec.concat(i),u=this.inputSpec;this.inputSpec=l;let p=super.apply(o,t);return this.inputSpec=u,p}else return super.apply(e,t)}call(e,t){return P(()=>{let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;e=Ne(e),r==null&&(this.stateful?r=this.states_:r=this.getInitialState(e));let s=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(r.length!==s)throw new V(`RNN Layer has ${s} state(s) but was passed ${r.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let i={training:a},o=PN((c,h)=>{let m=this.cell.call([c].concat(h),i);return[m[0],m.slice(1)]},e,r,this.goBackwards,n,null,this.unroll,this.returnSequences),l=o[0],u=o[1],p=o[2];this.stateful&&this.resetStates(p,a);let d=this.returnSequences?u:l;return this.returnState?[d].concat(p):d})}getInitialState(e){return P(()=>{let t=It(e.shape);return t=fe(t,[1,2]),t=Uc(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Pb(t,[1,n]):t):this.cell.stateSize>1?[Pb(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),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){let e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(t.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===dr.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign(Object.assign(Object.assign({},n),e),t)}static fromConfig(e,t,n={}){let a=t.cell,r=Ua(a,n);return new e(Object.assign(t,{cell:r}))}};dr.className="RNN";ne.registerClass(dr);var Zc=class extends Ge{},Nf=class extends Zc{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,Qt(this.units,"units"),this.activation=ss(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Tt(e.kernelRegularizer),this.recurrentRegularizer=Tt(e.recurrentRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.kernelConstraint=Kt(e.kernelConstraint),this.recurrentConstraint=Kt(e.recurrentConstraint),this.biasConstraint=Kt(e.biasConstraint),this.dropout=cl([1,as([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=cl([1,as([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Qe(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 P(()=>{if(e=e,e.length!==2)throw new V(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let n=e[1];e=e[0];let a=t.training==null?!1:t.training;0ta(e),rate:this.dropout,training:a,dropoutFunc:this.dropoutFunc})),0ta(n),rate:this.recurrentDropout,training:a,dropoutFunc:this.dropoutFunc}));let r,s=this.dropoutMask,i=this.recurrentDropoutMask;s!=null?r=sr(z(e,s),this.kernel.read()):r=sr(e,this.kernel.read()),this.bias!=null&&(r=Xa(r,this.bias.read())),i!=null&&(n=z(n,i));let o=Y(r,sr(n,this.recurrentKernel.read()));return this.activation!=null&&(o=this.activation.apply(o)),[o,o]})}getConfig(){let e=super.getConfig(),t={units:this.units,activation:rs(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),recurrentInitializer:Ct(this.recurrentInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:pt(this.kernelRegularizer),recurrentRegularizer:pt(this.recurrentRegularizer),biasRegularizer:pt(this.biasRegularizer),activityRegularizer:pt(this.activityRegularizer),kernelConstraint:qt(this.kernelConstraint),recurrentConstraint:qt(this.recurrentConstraint),biasConstraint:qt(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},e),t)}};Nf.className="SimpleRNNCell";ne.registerClass(Nf);var Aw=class extends dr{constructor(e){e.cell=new Nf(e),super(e)}call(e,t){return P(()=>{this.cell.dropoutMask!=null&&(_e(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_e(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return new e(t)}};Aw.className="SimpleRNN";ne.registerClass(Aw);var Cf=class extends Zc{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 V("GRUCell does not support reset_after parameter set to true.");this.units=e.units,Qt(this.units,"units"),this.activation=ss(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ss(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Tt(e.kernelRegularizer),this.recurrentRegularizer=Tt(e.recurrentRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.kernelConstraint=Kt(e.kernelConstraint),this.recurrentConstraint=Kt(e.recurrentConstraint),this.biasConstraint=Kt(e.biasConstraint),this.dropout=cl([1,as([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=cl([1,as([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Qe(e);let t=e[e.length-1];this.kernel=this.addWeight("kernel",[t,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return P(()=>{if(e=e,e.length!==2)throw new V(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training==null?!1:t.training,a=e[1];e=e[0],0ta(e),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0ta(a),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));let r=this.dropoutMask,s=this.recurrentDropoutMask,i,o,l;0{this.cell.dropoutMask!=null&&(_e(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_e(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};$w.className="GRU";ne.registerClass($w);var Jc=class extends Zc{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,Qt(this.units,"units"),this.activation=ss(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ss(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=Tt(e.kernelRegularizer),this.recurrentRegularizer=Tt(e.recurrentRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.kernelConstraint=Kt(e.kernelConstraint),this.recurrentConstraint=Kt(e.recurrentConstraint),this.biasConstraint=Kt(e.biasConstraint),this.dropout=cl([1,as([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=cl([1,as([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=Qe(e);let n=e[e.length-1];this.kernel=this.addWeight("kernel",[n,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let a;if(this.useBias){if(this.unitForgetBias){let r=this.biasInitializer,s=this.units;a=new(t=class extends Fa{apply(i,o){let l=r.apply([s]),u=new ff().apply([s]),p=r.apply([s*2]);return uk(uk(l,u),p)}},t.className="CustomInit",t)}else a=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,a,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return P(()=>{let n=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new V(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let a=e[1],r=e[2];e=e[0],0ta(e),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0ta(a),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));let s=this.dropoutMask,i=this.recurrentDropoutMask,o,l,u,p;0{this.cell.dropoutMask!=null&&(_e(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_e(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Fw.className="LSTM";ne.registerClass(Fw);var _f=class extends Zc{constructor(e){super(e),this.cells=e.cells}get stateSize(){let e=[];for(let t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return P(()=>{e=e;let n=e.slice(1),a=[];for(let i of this.cells.slice().reverse())Array.isArray(i.stateSize)?a.push(n.splice(0,i.stateSize.length)):a.push(n.splice(0,1));a.reverse();let r=[],s;for(let i=0;i{Xs(`RNNCell_${a}`,()=>{n.build(e),Array.isArray(n.stateSize)?t=n.stateSize[0]:t=n.stateSize,e=[e[0],t]})}),this.built=!0}getConfig(){let e=super.getConfig(),t=a=>({className:a.getClassName(),config:a.getConfig()}),n={cells:this.cells.map(t)};return Object.assign(Object.assign({},e),n)}static fromConfig(e,t,n={}){let a=[];for(let r of t.cells)a.push(Ua(r,n));return new e({cells:a})}get trainableWeights(){if(!this.trainable)return[];let e=[];for(let t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.cells)t.push(...n.trainableWeights);return t.concat(e)}return e}getWeights(){let e=[];for(let t of this.cells)e.push(...t.weights);return zb(e)}setWeights(e){let t=[];for(let n of this.cells){let a=n.weights.length,r=e.splice(a);for(let s=0;ss!=null?s(t(),n):KT(t(),n),o=()=>Hc(i,t,a);return!r||r<=1?Jt(o().clone()):Array(r).fill(void 0).map(o).map(l=>Jt(l.clone()))}var AU=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,a=Object.getOwnPropertySymbols(e);r{if(this.cell.dropoutMask!=null&&(_e(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_e(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new V("ConvRNN2D cell does not support constants");let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}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 P(()=>{let{stateSize:t}=this.cell,n=e.shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)],s=It(r);return Array.isArray(t)?Array(t.length).fill(s):[s]})}resetStates(e,t=!1){P(()=>{if(!this.stateful)throw new vr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)];if(n[0]==null)throw new V("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(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>It(r)):this.states_=[It(r)];else if(e==null)_e(this.states_),this.keptStates!=null&&(_e(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>It(r)):this.states_[0]=It(r);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new V(`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()):_e(this.states_);for(let s=0;sJt(s.clone()))})}computeSingleOutputShape(e){let{dataFormat:t,filters:n,kernelSize:a,padding:r,strides:s,dilationRate:i}=this.cell,o=t==="channelsFirst",l=e[o?3:2],u=e[o?4:3],p=Ga(l,a[0],r,s[0],i[0]),d=Ga(u,a[1],r,s[1],i[1]);return[...e.slice(0,2),...o?[n,p,d]:[p,d,n]]}};ON.className="ConvRNN2D";var Ef=class extends Jc{constructor(e){let{filters:t,kernelSize:n,strides:a,padding:r,dataFormat:s,dilationRate:i}=e;super(Object.assign(Object.assign({},e),{units:t})),this.filters=t,Qt(this.filters,"filters"),this.kernelSize=el(n,2,"kernelSize"),this.kernelSize.forEach(o=>Qt(o,"kernelSize")),this.strides=el(a||1,2,"strides"),this.strides.forEach(o=>Qt(o,"strides")),this.padding=r||"valid",ba(this.padding),this.dataFormat=s||"channelsLast",Rt(this.dataFormat),this.dilationRate=el(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>Qt(o,"dilationRate"))}build(e){var t;e=Qe(e);let n=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[n]==null)throw new V(`The channel dimension of the input should be defined. Found ${e[n]}`);let a=e[n],r=4,s=this.kernelSize.concat([a,this.filters*r]);this.kernel=this.addWeight("kernel",s,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let i=this.kernelSize.concat([this.filters,this.filters*r]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",i,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let o;if(this.unitForgetBias){let l=this.biasInitializer,u=this.filters;o=new(t=class extends Fa{apply(p,d){let c=l.apply([u]),h=Zn([u]),m=l.apply([u*2]);return Kv([c,h,m])}},t.className="CustomInit",t)}else o=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*r],null,o,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return P(()=>{if(e.length!==3)throw new V(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training||!1,a=e[0],r=e[1],s=e[2],i=4;0ta(a),rate:this.dropout,training:n,count:i,dropoutFunc:this.dropoutFunc}));let o=this.dropoutMask,l=(Z,Q,ee)=>!Q||!Q[ee]?Z:z(Q[ee],Z),u=l(a,o,0),p=l(a,o,1),d=l(a,o,2),c=l(a,o,3);0ta(r),rate:this.recurrentDropout,training:n,count:i,dropoutFunc:this.dropoutFunc}));let h=this.recurrentDropoutMask,m=l(r,h,0),f=l(r,h,1),g=l(r,h,2),y=l(r,h,3),b=3,[x,w,I,T]=zn(this.kernel.read(),i,b),[C,E,A,R]=this.useBias?zn(this.bias.read(),i):[null,null,null,null];u=this.inputConv(u,x,C,this.padding),p=this.inputConv(p,w,E,this.padding),d=this.inputConv(d,I,A,this.padding),c=this.inputConv(c,T,R,this.padding);let[F,S,M,B]=zn(this.recurrentKernel.read(),i,b);m=this.recurrentConv(m,F),f=this.recurrentConv(f,S),g=this.recurrentConv(g,M),y=this.recurrentConv(y,B);let U=this.recurrentActivation.apply(Y(u,m)),G=this.recurrentActivation.apply(Y(p,f)),q=Y(z(G,s),z(U,this.activation.apply(Y(d,g)))),K=z(this.recurrentActivation.apply(Y(c,y)),this.activation.apply(q));return[K,K,q]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=AU(e,["units"]),a={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),a)}inputConv(e,t,n,a){let r=$t(e,t,this.strides,a||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?Xa(r,n,this.dataFormat):r}recurrentConv(e,t){return $t(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Ef.className="ConvLSTM2DCell";ne.registerClass(Ef);var Dw=class extends ON{constructor(e){let t=new Ef(e);super(Object.assign(Object.assign({},e),{cell:t}))}static fromConfig(e,t){return new e(t)}};Dw.className="ConvLSTM2D";ne.registerClass(Dw);var Af=class extends Ge{constructor(e){super(e),this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(this.noiseShape==null)return this.noiseShape;let t=e.shape,n=[];for(let a=0;a{this.invokeCallHook(e,t);let n=Ne(e);if(0KT(n,this.rate,r,this.seed),()=>n,a)}return e})}getConfig(){let e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}};Af.className="Dropout";ne.registerClass(Af);var Rw=class extends Af{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};Rw.className="SpatialDropout1D";ne.registerClass(Rw);var Mw=class extends Ge{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",e.batchInputShape==null&&e.inputShape==null&&e.inputDim!=null){let t=null;e.batchSize!=null&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,Qt(this.units,"units"),this.activation=ss(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Kt(e.kernelConstraint),this.biasConstraint=Kt(e.biasConstraint),this.kernelRegularizer=Tt(e.kernelRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.activityRegularizer=Tt(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=Qe(e);let t=e[e.length-1];this.kernel==null&&(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){e=Qe(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e),a=BT(this.activation.getClassName()),r;return a!=null?r=sr(n,this.kernel.read(),a,this.bias?this.bias.read():null):(r=sr(n,this.kernel.read()),this.bias!=null&&(r=Xa(r,this.bias.read())),this.activation!=null&&(r=this.activation.apply(r))),r})}getConfig(){let e={units:this.units,activation:rs(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:pt(this.kernelRegularizer),biasRegularizer:pt(this.biasRegularizer),activityRegularizer:pt(this.activityRegularizer),kernelConstraint:qt(this.kernelConstraint),biasConstraint:qt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Mw.className="Dense";ne.registerClass(Mw);var Pw=class extends Ge{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=Qe(e);for(let t of e.slice(1))if(t==null)throw new V(`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],Qr(e,1)]}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Ne(e);return this.activation.apply(n)})}getConfig(){let e={activation:rs(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};Ow.className="Activation";ne.registerClass(Ow);var Lw=class extends Ge{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 P(()=>(e=Ne(e),U4(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};Lw.className="RepeatVector";ne.registerClass(Lw);var zw=class extends Ge{constructor(e){super(e),this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Ne(e),a=n.shape,r=a.slice(0,1).concat(this.fixUnknownDimension(a.slice(1),this.targetShape));return W(n,r)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};zw.className="Reshape";ne.registerClass(zw);var Ww=class extends Ge{constructor(e){if(super(e),e.dims==null)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.`);let t=Ha(1,e.dims.length+1);if(!v.arraysEqual(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 zt({ndim:this.dims.length+1})]}computeOutputShape(e){e=Qe(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return Ee(Ne(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};Ww.className="Permute";ne.registerClass(Ww);var Bw=class extends Ge{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null?this.maskValue=e.maskValue==null?0:e.maskValue:this.maskValue=0}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){let n=Ne(e),a=-1;return qp(ii(n,this.maskValue),a)}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e),a=-1,r=!0,s=qp(ii(n,this.maskValue),a,r);return z(n,oe(s,n.dtype))})}};Bw.className="Masking";ne.registerClass(Bw);var Vw=class extends Ge{constructor(e){if(super(e),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",e.batchInputShape==null&&e.inputShape==null){let t=null;e.batchSize!=null&&(t=e.batchSize),e.inputLength==null?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(yt(e.inputLength))}this.inputDim=e.inputDim,Qt(this.inputDim,"inputDim"),this.outputDim=e.outputDim,Qt(this.outputDim,"outputDim"),this.embeddingsInitializer=St(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Tt(e.embeddingsRegularizer),this.activityRegularizer=Tt(e.activityRegularizer),this.embeddingsConstraint=Kt(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 P(()=>this.maskZero?(e=Ne(e),ii(e,qe(e))):null)}computeOutputShape(e){if(e=Qe(e),this.inputLength==null)return[...e,this.outputDim];let t=yt(this.inputLength);if(t.length!==e.length-1)throw new V(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let n=0;for(let a=0;a{this.invokeCallHook(e,t);let n=Ne(e);n.dtype!=="int32"&&(n=yo(n,"int32"));let a=qT(this.embeddings.read(),W(n,[n.size]));return W(a,Qe(this.computeOutputShape(n.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Ct(this.embeddingsInitializer),embeddingsRegularizer:pt(this.embeddingsRegularizer),activityRegularizer:pt(this.activityRegularizer),embeddingsConstraint:qt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};Vw.className="Embedding";ne.registerClass(Vw);var xo=class extends Ge{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new Re}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new V(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let n=e[0]==null?null:e[0].slice(1);for(let r=1;rr.length);e.indexOf(null)===-1&&Jr(a).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return P(()=>{if(e=e,this.reshapeRequired){let n=[],a=e.map(r=>r.rank);if(a.indexOf(null)===-1){let r=as(a);for(let s of e){let i=s.rank;for(let o=0;o1){let u=Ha(1,l).concat([0]);n.push(Ee(o,u)),r=!0}else n.push(o)}let s=this.mergeFunction(n),i=s.rank;if(r){if(i==null){let o=s.shape,l=o.length,u=o[l-1],p=[u].concat(o.slice(0,o.length-1));s=W(Ee(W(s,[-1,u]),[1,0]),p)}else if(i>1){let o=[i-1].concat(Ha(0,i-1));s=Ee(s,o)}}return s}}else return this.mergeFunction(e)})}computeOutputShape(e){e=e;let t;e[0]==null?t=null:t=e[0].slice(1);for(let a=1;a{if(t==null)return null;if(!Array.isArray(t))throw new V("`mask` should be an Array");if(!Array.isArray(e))throw new V("`inputs` should be an Array");if(t.length!==e.length)throw new V(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every(a=>a==null))return null;t=t.map(a=>a==null?a:Zt(a,0));let n=t[0];for(let a=1;a{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 V("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return P(()=>Kv(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new V("A `Concatenate` layer should be called on a list of inputs.");let t=e,n=t[0].slice(),a=this.axis<0?n.length+this.axis:this.axis;for(let r of t.slice(1)){if(n[a]==null||r[a]==null){n[a]=null;break}n[a]+=r[a]}return n}computeMask(e,t){if(t==null)return null;if(!Array.isArray(t))throw new V("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new V("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new V(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return P(()=>{let n=!0;if(t.forEach(s=>{if(s!=null){n=!1;return}}),n)return null;let a=[];for(let s=0;s3||t.shape.length>3)throw new Re("batchDot is not implemented for tensors of 4D or higher rank yet");if(v.assert(e.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`),v.assert(e.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof n=="number"&&(n=[n,n]),e.dtype==="complex64"||t.dtype==="complex64")throw new Re("batchDot is not implemented for complex64-type Tensors yet.");let a=e.shape.length,r=t.shape.length;n==null&&(n=[a-1,r-2]);let s=n;return P(()=>{let i;if(a>r){i=a-r;let l=[];for(let u=0;ua){i=r-a;let l=[];for(let u=0;u0){let l;a>r?l=a+r-3:l=a-1;let u=[];for(let p=l;p"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0],n=e[1];if(t.length>3||n.length>3)throw new Re("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);if(t[a[0]]!==n[a[1]])throw new V(`Dimension incompatibility: ${t[a[0]]} !== ${n[a[1]]}`)}mergeFunction(e){if(e.length!==2)throw new V(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t=e[0],n=e[1],a;return Array.isArray(this.axes)?a=this.axes.map((r,s)=>Sp(r,e[s].shape.length)):a=[Sp(this.axes,t.shape.length),Sp(this.axes,n.shape.length)],this.normalize&&(t=Eh(t,a[0]),n=Eh(n,a[1])),$U(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[Sp(this.axes,e.length),Sp(this.axes,t.length)],n}computeOutputShape(e){v.assert(Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0].slice(),n=e[1].slice();if(t.length>3||n.length>3)throw new Re("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);t.splice(a[0],1),n.splice(a[1],1),n.splice(0,1);let r=t.concat(n);return r.length===1&&r.push(1),r}computeMask(e,t){return null}getConfig(){let e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}};Xw.className="Dot";ne.registerClass(Xw);var Yw=class extends Ge{constructor(e){super(e),this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e);return Hc(()=>Y(mf(n.shape,0,this.stddev),n),()=>n,t.training||!1)})}};Yw.className="GaussianNoise";ne.registerClass(Yw);var Zw=class extends Ge{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e);return this.rate>0&&this.rate<1?Hc(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return z(n,mf(n.shape,1,a))},()=>n,t.training||!1):n})}};Zw.className="GaussianDropout";ne.registerClass(Zw);var Jw=class extends Ge{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Ne(e).shape}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return P(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(e);return Hc(()=>{let a=Ne(e),r=1.6732632423543772,s=1.0507009873554805,i=-r*s,o=Er($u(n),this.rate);o=yo(o,"float32");let l=((1-this.rate)*(1+this.rate*i**2))**-.5,u=-l*i*this.rate,p=Y(z(a,o),z(Y(o,-1),i));return Y(z(p,l),u)},()=>Ne(e),t.training||!1)}return e})}};Jw.className="AlphaDropout";ne.registerClass(Jw);function Zp(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=Zx(e,t,n,a,r,s);else if(e.rank===3)i=Jx(e,t,n,a,r,s);else if(e.rank===4)i=Qx(e,t,n,a,r,s);else throw new Re(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function FU(e,t,n,a,r=.001){return P(()=>{let s=Mc(e,a),i=s.mean,o=s.variance;return[Zp(e,i,o,n,t,r),i,o]})}function DU(e,t,n,a,r=.001){return P(()=>{let s=Mc(e,a),i=s.mean,o=s.variance,l=[];for(let h of Ha(0,e.rank))a.indexOf(h)!==-1?l.push(1):l.push(e.shape[h]);let u=W(i,l),p=W(o,l),d=t==null?null:W(t,l),c=n==null?null:W(n,l);return[Zp(e,u,p,c,d,r),i,o]})}function RU(e,t,n,a,r=.001){return v.arraysEqual(a.slice().sort(),Ha(0,e.rank-1))?FU(e,t,n,a,r):DU(e,t,n,a,r)}var Qw=class extends Ge{constructor(e){e==null&&(e={}),super(e),this.supportsMasking=!0,this.axis=e.axis==null?-1:e.axis,this.momentum=e.momentum==null?.99:e.momentum,this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=St(e.betaInitializer||"zeros"),this.gammaInitializer=St(e.gammaInitializer||"ones"),this.movingMeanInitializer=St(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=St(e.movingVarianceInitializer||"ones"),this.betaConstraint=Kt(e.betaConstraint),this.gammaConstraint=Kt(e.gammaConstraint),this.betaRegularizer=Tt(e.betaRegularizer),this.gammaRegularizer=Tt(e.gammaRegularizer)}build(e){e=Qe(e);let t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(n==null)throw new V(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new zt({ndim:e.length,axes:{[t]:n}})];let a=[n];this.scale&&(this.gamma=this.addWeight("gamma",a,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",a,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",a,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",a,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return P(()=>{let n=t.training==null?!1:t.training,a=Ne(e),r=a.shape,s=r.length,i=Ha(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=oi(1,s);l[o]=r[o];let u=i.slice();u.sort();let p=!v.arraysEqual(u,Ha(0,s).slice(0,s-1)),d=()=>{if(p){let g=W(this.movingMean.read(),l),y=W(this.movingVariance.read(),l),b=this.center?W(this.beta.read(),l):null,x=this.scale?W(this.gamma.read(),l):null;return Zp(a,g,y,b,x,this.epsilon)}else return Zp(a,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!n)return d();let[c,h,m]=RU(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,y,b)=>{P(()=>{let x=1-b,w=g.read(),I=z(pe(w,y),x);g.write(pe(w,I))})};return f(this.movingMean,h,this.momentum),f(this.movingVariance,m,this.momentum),c})}getConfig(){let e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Ct(this.betaInitializer),gammaInitializer:Ct(this.gammaInitializer),movingMeanInitializer:Ct(this.movingMeanInitializer),movingVarianceInitializer:Ct(this.movingVarianceInitializer),betaRegularizer:pt(this.betaRegularizer),gammaRegularizer:pt(this.gammaRegularizer),betaConstraint:qt(this.betaConstraint),gammaConstraint:qt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Qw.className="BatchNormalization";ne.registerClass(Qw);var e0=class extends Ge{constructor(e){if(e==null&&(e={}),super(e),this.axis=e.axis==null?-1:e.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let t of this.axis)if(!Number.isInteger(t))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=St(e.betaInitializer||"zeros"),this.gammaInitializer=St(e.gammaInitializer||"ones"),this.betaRegularizer=Tt(e.betaRegularizer),this.gammaRegularizer=Tt(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=Qe(e);let t=e.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let r=0;r=t)throw new Error(`Invalid axis: ${r}`);if(this.axis.length!==Jr(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(r=>e[r]),a=!0;this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,a):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,a):this.beta=null,this.built=!0}call(e,t){let n=Ne(e),a=n.shape,r=a.length;return P(()=>{let{mean:s,variance:i}=Mc(n,this.axis,!0),o=oi(1,r);for(let h of this.axis)o[h]=a[h];let l=h=>h!=null&&h.shape.length!==r?W(h,o):h,u=this.scale?l(this.gamma.read()):null,p=this.center?l(this.beta.read()):null,d=[],c=[];for(let h=0;h{if(e.rank!==4)throw new V(`temporalPadding expects input tensor to be 4-D, but received a ${e.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new V("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(n==null&&(n=ja()),n!=="channelsLast"&&n!=="channelsFirst")throw new V(`Unknown data format: ${n}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let a;return n==="channelsFirst"?a=[[0,0],[0,0],t[0],t[1]]:a=[[0,0],t[0],t[1],[0,0]],ya(e,a)})}var t0=class extends Ge{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?ja():e.dataFormat,e.padding==null)this.padding=[[1,1],[1,1]];else if(typeof e.padding=="number")this.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,e.padding.length!==2)throw new V(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${e.padding.length} array.`);let t,n;if(typeof e.padding[0]=="number")t=[e.padding[0],e.padding[0]],n=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,e.padding[0].length!==2)throw new V(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${e.padding[0].length} array.`);if(t=e.padding[0],e.padding[1].length!==2)throw new V(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${e.padding[1].length} array.`);n=e.padding[1]}this.padding=[t,n]}this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){e=Qe(e);let t,n;return this.dataFormat==="channelsFirst"?(e[2]!=null&&e[2]>=0?t=e[2]+this.padding[0][0]+this.padding[0][1]:t=null,e[3]!=null&&e[3]>=0?n=e[3]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],e[1],t,n]):(e[1]!=null&&e[1]>=0?t=e[1]+this.padding[0][0]+this.padding[0][1]:t=null,e[2]!=null&&e[2]>=0?n=e[2]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],t,n,e[3]])}call(e,t){return P(()=>MU(Ne(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};t0.className="ZeroPadding2D";ne.registerClass(t0);function $f(e,t,n,a,r,s){return P(()=>{Rt(r),UT(s),ba(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=ja()),s==null&&(s="max"),e=kw(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Dt(e,t,n,o):i=ga(e,t,n,o),r==="channelsFirst"&&(i=Ee(i,[0,3,1,2])),i})}function LN(e,t,n,a,r,s){return P(()=>{Rt(r),UT(s),ba(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=ja()),s==null&&(s="max"),e=DN(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Sv(e,t,n,o):i=Yx(e,t,n,o),r==="channelsFirst"&&(i=Ee(i,[0,4,1,2,3])),i})}var zN=class extends Ge{constructor(e){if(e.poolSize==null&&(e.poolSize=2),super(e),typeof e.poolSize=="number")this.poolSize=[e.poolSize];else if(Array.isArray(e.poolSize)&&e.poolSize.length===1&&typeof e.poolSize[0]=="number")this.poolSize=e.poolSize;else throw new V(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(Qt(this.poolSize,"poolSize"),e.strides==null)this.strides=this.poolSize;else if(typeof e.strides=="number")this.strides=[e.strides];else if(Array.isArray(e.strides)&&e.strides.length===1&&typeof e.strides[0]=="number")this.strides=e.strides;else throw new V(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);Qt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,ba(this.padding),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){e=Qe(e);let t=Ga(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return P(()=>{this.invokeCallHook(e,t),e=Uc(Ne(e),2);let n=this.poolingFunction(Ne(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return ws(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},n0=class extends zN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ba(a),$f(e,t,n,a,r,"max")}};n0.className="MaxPooling1D";ne.registerClass(n0);var a0=class extends zN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ba(a),$f(e,t,n,a,r,"avg")}};a0.className="AveragePooling1D";ne.registerClass(a0);var WN=class extends Ge{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==2)throw new V(`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];Qt(this.poolSize,"poolSize"),Qt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),ba(this.padding),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){e=Qe(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=Ga(t,this.poolSize[0],this.padding,this.strides[0]),n=Ga(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n]:[e[0],t,n,e[3]]}call(e,t){return P(()=>(this.invokeCallHook(e,t),this.poolingFunction(Ne(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},r0=class extends WN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ba(a),$f(e,t,n,a,r,"max")}};r0.className="MaxPooling2D";ne.registerClass(r0);var s0=class extends WN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ba(a),$f(e,t,n,a,r,"avg")}};s0.className="AveragePooling2D";ne.registerClass(s0);var BN=class extends Ge{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==3)throw new V(`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];Qt(this.poolSize,"poolSize"),Qt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),ba(this.padding),this.inputSpec=[new zt({ndim:5})]}computeOutputShape(e){e=Qe(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[4]:e[3];return t=Ga(t,this.poolSize[0],this.padding,this.strides[0]),n=Ga(n,this.poolSize[1],this.padding,this.strides[1]),a=Ga(a,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n,a]:[e[0],t,n,a,e[4]]}call(e,t){return P(()=>(this.invokeCallHook(e,t),this.poolingFunction(Ne(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},i0=class extends BN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ba(a),LN(e,t,n,a,r,"max")}};i0.className="MaxPooling3D";ne.registerClass(i0);var o0=class extends BN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ba(a),LN(e,t,n,a,r,"avg")}};o0.className="AveragePooling3D";ne.registerClass(o0);var VN=class extends Ge{constructor(e){super(e),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new Re}},l0=class extends VN{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Ne(e);return Nt(n,1)})}};l0.className="GlobalAveragePooling1D";ne.registerClass(l0);var u0=class extends VN{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Ne(e);return ha(n,1)})}};u0.className="GlobalMaxPooling1D";ne.registerClass(u0);var UN=class extends Ge{constructor(e){super(e),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new Re}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},p0=class extends UN{call(e,t){return P(()=>{let n=Ne(e);return this.dataFormat==="channelsLast"?Nt(n,[1,2]):Nt(n,[2,3])})}};p0.className="GlobalAveragePooling2D";ne.registerClass(p0);var c0=class extends UN{call(e,t){return P(()=>{let n=Ne(e);return this.dataFormat==="channelsLast"?ha(n,[1,2]):ha(n,[2,3])})}};c0.className="GlobalMaxPooling2D";ne.registerClass(c0);var GN=class extends Ge{constructor(e){super(e),this.layer=e.layer}build(e){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(e){this.layer!=null&&(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(){let e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,n={}){let a=t.layer,r=Ua(a,n);delete t.layer;let s={layer:r};return Object.assign(s,t),new e(s)}},d0=class extends GN{constructor(e){super(e),this.supportsMasking=!0}build(e){if(e=Qe(e),e.length<3)throw new V(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];let t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){e=Qe(e);let t=[e[0]].concat(e.slice(2)),n=this.layer.computeOutputShape(t),a=e[1];return[n[0],a].concat(n.slice(1))}call(e,t){return P(()=>(e=Ne(e),PN((n,a)=>[Ne(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};d0.className="TimeDistributed";ne.registerClass(d0);function PU(e){go(L4,"BidirectionalMergeMode",e)}var OU="concat",h0=class extends GN{constructor(e){super(e);let t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=Ua(n),t.goBackwards=t.goBackwards!==!0;let a={};if(a.className=e.layer.getClassName(),a.config=t,this.backwardLayer=Ua(a),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?OU:e.mergeMode,PU(this.mergeMode),e.weights)throw new Re("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,this.forwardLayer!=null&&(this.forwardLayer.trainable=e),this.backwardLayer!=null&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){let 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=this.forwardLayer.computeOutputShape(e);Array.isArray(t)&&Array.isArray(t[0])||(t=[t]),t=t;let n,a,r;return this.returnState&&(r=t.slice(1)),n=t[0],n=n,this.mergeMode==="concat"?(n[n.length-1]*=2,a=[n]):this.mergeMode==null?a=[n,n.slice()]:a=[n],this.returnState?this.mergeMode==null?a.concat(r).concat(r.slice()):[n].concat(r).concat(r.slice()):On(a)}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=MN(e,n,a,this.numConstants);if(e=r.inputs,n=r.initialState,a=r.constants,Array.isArray(e)&&(n=e.slice(1),e=e[0]),(n==null||n.length===0)&&a==null)return super.apply(e,t);let s=[],i=[];if(n!=null){let l=n.length;if(l%2>0)throw new V("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);let u=n.map(p=>new zt({shape:p.shape}));this.forwardLayer.stateSpec=u.slice(0,l/2),this.backwardLayer.stateSpec=u.slice(l/2),i.push(...u)}if(a!=null)throw new Re("Support for constants in Bidirectional layers is not implemented yet.");let o=s[0]instanceof Ba;for(let l of s)if(l instanceof Ba!==o)throw new V("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(o){let l=[e].concat(s),u=this.inputSpec.concat(i),p=this.inputSpec;this.inputSpec=u;let d=super.apply(l,t);return this.inputSpec=p,d}else return super.apply(e,t)}call(e,t){return P(()=>{let n=t.initialState,a,r;if(n==null)a=this.forwardLayer.call(e,t),r=this.backwardLayer.call(e,t);else{let o=n.slice(0,n.length/2),l=n.slice(n.length/2);a=this.forwardLayer.call(e,Object.assign(t,{initialState:o})),r=this.backwardLayer.call(e,Object.assign(t,{initialState:l}))}let s;this.returnState&&(Array.isArray(a)&&(s=a.slice(1).concat(r.slice(1))),a=a[0],r=r[0]),this.returnSequences&&(r=fa(r,1));let i;return this.mergeMode==="concat"?i=Kv([a,r]):this.mergeMode==="sum"?i=Y(a,r):this.mergeMode==="ave"?i=z(.5,Y(a,r)):this.mergeMode==="mul"?i=z(a,r):this.mergeMode==null&&(i=[a,r]),this.returnState?this.mergeMode==null?i.concat(s):[i].concat(s):i})}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Xs(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),Xs(this.backwardLayer.name,()=>{this.backwardLayer.build(e)}),this.built=!0}computeMask(e,t){Array.isArray(t)&&(t=t[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[t,t]:n=t:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let a=this.forwardLayer.states.map(r=>null);return Array.isArray(n)?n.concat(a).concat(a):[n].concat(a).concat(a)}else 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),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(e),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){let e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){let n=Ua(t.layer);if(delete t.layer,t.numConstants!=null)throw new Re("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};h0.className="Bidirectional";ne.registerClass(h0);var m0=class extends Ge{constructor(e){super(e),this.scale=e.scale,e.offset?this.offset=e.offset:this.offset=0}getConfig(){let e={scale:this.scale,offset:this.offset},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return P(()=>(e=Ne(e),e.dtype!=="float32"&&(e=yo(e,"float32")),Y(z(e,this.scale),this.offset)))}};m0.className="Rescaling";ne.registerClass(m0);var LU=["bilinear","nearest"],Nk=new Set(LU),f0=class extends Ge{constructor(e){if(super(e),this.height=e.height,this.width=e.width,e.interpolation)if(Nk.has(e.interpolation))this.interpolation=e.interpolation;else throw new V(`Invalid interpolation parameter: ${e.interpolation} is not implemented`);else this.interpolation="bilinear";this.cropToAspectRatio=Boolean(e.cropToAspectRatio)}computeOutputShape(e){e=Qe(e);let t=e[2];return[this.height,this.width,t]}getConfig(){let e={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return P(()=>{let n=[this.height,this.width];if(this.interpolation==="bilinear")return za.resizeBilinear(e,n,!this.cropToAspectRatio);if(this.interpolation==="nearest")return za.resizeNearestNeighbor(e,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...Nk]} are supported`)})}};f0.className="Resizing";ne.registerClass(f0);function zU(e,t,n,a){let r=Ne(e);if(r.dtype!=="int32"&&(r=yo(r,"int32")),t==="int")return r;let s=r.shape;if(r.rank===0&&(r=Zt(r,-1)),t==="oneHot"&&r.shape[r.shape.length-1]!==1&&(r=Zt(r,-1)),r.rank>2)throw new V(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${s} which would result in output rank ${r.rank}.`);let i=["multiHot","oneHot"].includes(t),o=r,l;if(typeof a!="undefined"&&t==="count"?l=Sh(o,a,n,i):l=Sh(o,[],n,i),t!=="tfIdf")return l;if(a)return z(l,a);throw new V("When outputMode is 'tfIdf', weights must be provided.")}var g0=class extends Ge{constructor(e){super(e),this.numTokens=e.numTokens,e.outputMode?this.outputMode=e.outputMode:this.outputMode="multiHot"}getConfig(){let e={numTokens:this.numTokens,outputMode:this.outputMode},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){return e=Qe(e),e==null?[this.numTokens]:this.outputMode==="oneHot"&&e[e.length-1]!==1?(e.push(this.numTokens),e):(e[e.length-1]=this.numTokens,e)}call(e,t){return P(()=>{e=Ne(e),e.dtype!=="int32"&&(e=yo(e,"int32"));let n;if(typeof t.countWeights!="undefined"){if(this.outputMode!=="count")throw new V(`countWeights is not used when outputMode !== count. - Received countWeights=${t.countWeights}`);n=Ne(t.countWeights)}let a=ha(e),r=il(e),s=Nn(this.numTokens,a).bufferSync().get(0),i=Er(r,0).bufferSync().get(0);if(!(s&&i))throw new V(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return zU(e,this.outputMode,this.numTokens,n)})}};g0.className="CategoryEncoding";ne.registerClass(g0);function WU(e){return new Du(e)}function BU(e){return new xw(e)}function VU(e){return new gw(e)}function UU(e){return new yw(e)}function GU(e){return new bw(e)}function HU(e){return new ww(e)}function jU(e){return new vw(e)}function qU(e){return new Tf(e)}function KU(e){return new Xc(e)}function XU(e){return new Sw(e)}function YU(e){return new Yc(e)}function ZU(e){return new Tw(e)}function JU(e){return new Nw(e)}function QU(e){return new Cw(e)}function eG(e){return new _w(e)}function tG(e){return new Ew(e)}function nG(e){return new Ow(e)}function aG(e){return new Mw(e)}function rG(e){return new Af(e)}function sG(e){return new Rw(e)}function iG(e){return new Pw(e)}function oG(e){return new Lw(e)}function lG(e){return new zw(e)}function uG(e){return new Ww(e)}function pG(e){return new Vw(e)}function cG(e){return new Uw(e)}function dG(e){return new Hw(e)}function hG(e){return new Kw(e)}function mG(e){return new jw(e)}function fG(e){return new qw(e)}function gG(e){return new Gw(e)}function yG(e){return new Xw(e)}function bG(e){return new Qw(e)}function xG(e){return new e0(e)}function vG(e){return new t0(e)}function y0(e){return new a0(e)}function wG(e){return y0(e)}function kG(e){return y0(e)}function b0(e){return new s0(e)}function IG(e){return b0(e)}function SG(e){return b0(e)}function x0(e){return new o0(e)}function TG(e){return x0(e)}function NG(e){return x0(e)}function CG(e){return new l0(e)}function _G(e){return new p0(e)}function HN(e){return new u0(e)}function jN(e){return new c0(e)}function qN(e){return new n0(e)}function KN(e){return new r0(e)}function EG(e){return new i0(e)}function AG(e){return new $w(e)}function $G(e){return new Cf(e)}function FG(e){return new Fw(e)}function DG(e){return new Jc(e)}function RG(e){return new Aw(e)}function MG(e){return new Nf(e)}function PG(e){return new Dw(e)}function OG(e){return new Ef(e)}function LG(e){return new dr(e)}function zG(e){return new _f(e)}function WG(e){return new h0(e)}function BG(e){return new d0(e)}var VG=HN,UG=jN,GG=qN,HG=KN;function jG(e){return new Yw(e)}function qG(e){return new Zw(e)}function KG(e){return new Jw(e)}function XG(e){return new Bw(e)}function YG(e){return new m0(e)}function ZG(e){return new f0(e)}function JG(e){return new g0(e)}var XN={};Ae(XN,{MAPE:()=>uH,MSE:()=>dH,binaryAccuracy:()=>QG,binaryCrossentropy:()=>eH,categoricalAccuracy:()=>nH,categoricalCrossentropy:()=>aH,cosineProximity:()=>iH,mape:()=>pH,meanAbsoluteError:()=>oH,meanAbsolutePercentageError:()=>lH,meanSquaredError:()=>cH,mse:()=>hH,precision:()=>rH,recall:()=>sH,sparseCategoricalAccuracy:()=>tH});function QG(e,t){return uw(e,t)}function eH(e,t){return uN(e,t)}function tH(e,t){return pN(e,t)}function nH(e,t){return pw(e,t)}function aH(e,t){return cw(e,t)}function rH(e,t){return lN(e,t)}function sH(e,t){return VV(e,t)}function iH(e,t){return lw(e,t)}function oH(e,t){return If(e,t)}function lH(e,t){return Ru(e,t)}function uH(e,t){return Ru(e,t)}function pH(e,t){return Ru(e,t)}function cH(e,t){return bo(e,t)}function dH(e,t){return bo(e,t)}function hH(e,t){return bo(e,t)}var YN={};Ae(YN,{modelFromJSON:()=>bU});var ZN={};Ae(ZN,{l1:()=>fH,l1l2:()=>mH,l2:()=>gH});function mH(e){return new qc(e)}function fH(e){return TU(e)}function gH(e){return NU(e)}var JN=class extends dl{constructor(){super(...arguments),this.model=null}setModel(e){if(!(e instanceof Nr))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function Yd(e,t){return et}var QN=class extends JN{constructor(e){if(super(),e==null&&(e={}),e.restoreBestWeights)throw new Re("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,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=Yd:this.mode==="max"?this.monitorFunc=Ck:this.monitor.indexOf("acc")!==-1?this.monitorFunc=Ck:this.monitorFunc=Yd,this.monitorFunc===Yd&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Yd?1/0:-1/0}async onEpochEnd(e,t){await jr(t);let n=this.getMonitorValue(t);n!=null&&(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){e==null&&(e={});let t=e[this.monitor];return t==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}};function yH(e){return new QN(e)}var bH={earlyStopping:yH},xH=H();xH.registerFlag("KEEP_INTERMEDIATE_TENSORS",()=>!1,e=>{e&&console.warn("Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.")});var Sa;(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_QINT16=15]="DT_QINT16",e[e.DT_QUINT16=16]="DT_QUINT16",e[e.DT_UINT16=17]="DT_UINT16",e[e.DT_COMPLEX128=18]="DT_COMPLEX128",e[e.DT_HALF=19]="DT_HALF",e[e.DT_RESOURCE=20]="DT_RESOURCE",e[e.DT_VARIANT=21]="DT_VARIANT",e[e.DT_UINT32=22]="DT_UINT32",e[e.DT_UINT64=23]="DT_UINT64",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",e[e.DT_QINT16_REF=115]="DT_QINT16_REF",e[e.DT_QUINT16_REF=116]="DT_QUINT16_REF",e[e.DT_UINT16_REF=117]="DT_UINT16_REF",e[e.DT_COMPLEX128_REF=118]="DT_COMPLEX128_REF",e[e.DT_HALF_REF=119]="DT_HALF_REF",e[e.DT_RESOURCE_REF=120]="DT_RESOURCE_REF",e[e.DT_VARIANT_REF=121]="DT_VARIANT_REF",e[e.DT_UINT32_REF=122]="DT_UINT32_REF",e[e.DT_UINT64_REF=123]="DT_UINT64_REF"})(Sa||(Sa={}));var _k;(function(e){let t;(function(n){n[n.LEGACY=0]="LEGACY",n[n.V1=1]="V1",n[n.V2=2]="V2"})(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))})(_k||(_k={}));var v0={};function vH(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};v0[e]=n}function e2(e){return v0[e]}function wH(e){delete v0[e]}function k(e,t,n,a,r){let s=t.inputParams[e];if(s&&s.inputIndexStart!==void 0){let o=s.inputIndexStart,l=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?o+1:s.inputIndexEnd;if(s.type==="tensor")return vn(t.inputNames[s.inputIndexStart],n,a,r);if(s.type==="tensors")return t.inputNames.slice(o,l).map(d=>vn(d,n,a,r));let u=vn(t.inputNames.slice(o)[0],n,a,r),p=u.dataSync();return s.type==="number"?p[0]:v.toNestedArray(u.shape,p)}let i=t.attrParams[e];return i&&i.value}function vn(e,t,n,a){let[r,s]=Xn(e);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[Rh(r,o)]);return i!==void 0?t[Rh(r,i)][s]:void 0}function kH(e,t,n){return t[Rh(e,n.currentContextId)]}function ar(e,t){let[n,a,r]=Xn(e);return[Rh(n,t&&t.currentContextId),a,r]}function Rh(e,t){return t?`${e}-${t}`:e}function Xn(e){let t=e.split(":");if(t.length===1)return[e,0,void 0];let n=t[0],a=t.length===3?t[1]:void 0,r=Number(t[t.length-1]);return[n,r,a]}function sh(e,t,n){let a=k("pad",e,t,n);if(a==="explicit"){a=k("explicitPaddings",e,t,n);let r=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)r[s][0]=a[s*2],r[s][1]=a[s*2+1];return r}return a}function kr(e){return e.kept?e:rr(e)}var t2={};Ae(t2,{json:()=>IH});var IH=[{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}]}],n2={};Ae(n2,{json:()=>SH});var SH=[{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}]},{tfOpName:"IsNan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],a2={};Ae(a2,{json:()=>TH});var TH=[{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:"TensorListConcatV2",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"}]},{tfOpName:"TensorListLength",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}]},{tfOpName:"TensorListResize",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"size",type:"number"}]}],r2={};Ae(r2,{json:()=>NH});var NH=[{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",defaultValue:.2}]},{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"}]}],s2={};Ae(s2,{json:()=>CH});var CH=[{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"}]},{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:"RandomStandardNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"seed",name:"seed",type:"number",defaultValue:0},{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:"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"}]}],i2={};Ae(i2,{json:()=>_H});var _H=[{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}]}],o2={};Ae(o2,{json:()=>EH});var EH=[{tfOpName:"LowerBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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:"UpperBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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"}]}],l2={};Ae(l2,{json:()=>AH});var AH=[{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"}]}],u2={};Ae(u2,{json:()=>$H});var $H=[{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"}]}],p2={};Ae(p2,{json:()=>FH});var FH=[{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"}]},{tfOpName:"ImageProjectiveTransformV3",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"transforms",type:"tensor"},{start:2,name:"outputShape",type:"number[]"},{start:3,name:"fillValue",type:"number"}],attrs:[{tfName:"interpolation",name:"interpolation",type:"string"},{tfName:"fill_mode",name:"fillMode",type:"string"}]}],c2={};Ae(c2,{json:()=>DH});var DH=[{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}]}],d2={};Ae(d2,{json:()=>RH});var RH=[{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:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2},{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}]},{tfOpName:"Einsum",category:"matrices",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"equation",name:"equation",type:"string"},{tfName:"N",name:"n",type:"number",defaultValue:2},{tfName:"T",name:"dtype",type:"dtype"}]}],h2={};Ae(h2,{json:()=>MH});var MH=[{tfOpName:"EuclideanNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",defaultValue:!1}]},{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}]}],m2={};Ae(m2,{json:()=>PH});var PH=[{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:"Cumprod",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"}]},{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"}]}],f2={};Ae(f2,{json:()=>OH});var OH=[{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}]}],g2={};Ae(g2,{json:()=>LH});var LH=[{tfOpName:"SparseFillEmptyRows",category:"sparse",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"denseShape",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}]},{tfOpName:"SparseReshape",category:"sparse",inputs:[{start:0,name:"inputIndices",type:"tensor"},{start:1,name:"inputShape",type:"tensor"},{start:2,name:"newShape",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SparseSegmentMean",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]},{tfOpName:"SparseSegmentSum",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]}],y2={};Ae(y2,{json:()=>zH});var zH=[{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}]}],b2={};Ae(b2,{json:()=>WH});var WH=[{tfOpName:"StringNGrams",category:"string",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"dataSplits",type:"tensor"}],attrs:[{tfName:"separator",name:"separator",type:"string"},{tfName:"ngram_widths",name:"nGramWidths",type:"number[]"},{tfName:"left_pad",name:"leftPad",type:"string"},{tfName:"right_pad",name:"rightPad",type:"string"},{tfName:"pad_width",name:"padWidth",type:"number"},{tfName:"preserve_short_sequences",name:"preserveShortSequences",type:"bool"}],outputs:["ngrams","ngrams_splits"]},{tfOpName:"StringSplit",category:"string",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"delimiter",type:"tensor"}],attrs:[{tfName:"skip_empty",name:"skipEmpty",type:"bool"}],outputs:["indices","values","shape"]},{tfOpName:"StringToHashBucketFast",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"num_buckets",name:"numBuckets",type:"number"}]}],x2={};Ae(x2,{json:()=>BH});var BH=[{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:[]},{tfOpName:"BroadcastArgs",category:"transformation",inputs:[{start:0,name:"s0",type:"tensor"},{start:1,name:"s1",type:"tensor"}],attrs:[]}],Ek=class{constructor(){let e=[t2,n2,a2,r2,s2,i2,o2,l2,u2,p2,c2,d2,h2,m2,f2,g2,y2,b2,x2],t=[].concat(...e.map(n=>n.json));this.opMappers=t.reduce((n,a)=>(n[a.tfOpName]=a,n),{})}static get Instance(){return this._instance||(this._instance=new this)}transformGraph(e,t={}){let n=e.node,a=[],r=[],s=[],i=n.reduce((m,f)=>(m[f.name]=this.mapNode(f),f.op.startsWith("Placeholder")?a.push(m[f.name]):f.op==="Const"?r.push(m[f.name]):(f.input==null||f.input.length===0)&&s.push(m[f.name]),m),{}),o=[],l=[],u={},p={};t!=null&&(u=this.mapSignatureEntries(t.inputs),p=this.mapSignatureEntries(t.outputs));let d=Object.keys(i);d.forEach(m=>{let f=i[m];f.inputNames.forEach((g,y)=>{let[b,,x]=ar(g),w=i[b];if(w.outputs!=null){let I=w.outputs.indexOf(x);if(I!==-1){let T=`${b}:${I}`;f.inputNames[y]=T}}f.inputs.push(w),w.children.push(f)})}),Object.keys(p).length===0?d.forEach(m=>{let f=i[m];f.children.length===0&&l.push(f)}):Object.keys(p).forEach(m=>{let[f]=ar(m),g=i[f];g!=null&&(g.signatureKey=p[m],l.push(g))}),Object.keys(u).length>0?Object.keys(u).forEach(m=>{let[f]=ar(m),g=i[f];g&&(g.signatureKey=u[m],o.push(g))}):o=a;let c={};e.library!=null&&e.library.function!=null&&(c=e.library.function.reduce((m,f)=>(m[f.signature.name]=this.mapFunction(f),m),{}));let h={nodes:i,inputs:o,outputs:l,weights:r,placeholders:a,signature:t,functions:c};return s.length>0&&(h.initNodes=s),h}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,n)=>(t[e[n].name]=n,t),{})}mapNode(e){let t=e2(e.op)||this.opMappers[e.op]||{};e.attr==null&&(e.attr={});let n={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(a=>a.startsWith("^")?a.slice(1):a),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr,outputs:t.outputs};return t.inputs!=null&&(n.inputParams=t.inputs.reduce((a,r)=>(a[r.name]={type:r.type,inputIndexStart:r.start,inputIndexEnd:r.end},a),{})),t.attrs!=null&&(n.attrParams=t.attrs.reduce((a,r)=>{let s=r.type,i;switch(r.type){case"string":i=Hb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Hb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=Jb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Jb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=qb(e.attr,r.tfName,r.defaultValue||0),i===void 0&&!!r.tfDeprecatedName&&(i=qb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=Zb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Zb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":i=jb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=jb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":i=ex(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ex(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=Yb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Yb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=Qb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Qb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=Kb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Kb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=Xb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Xb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=Ak(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Ak(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${r.type} for op: ${e.op}`)}return a[r.name]={value:i,type:s},a},{})),n}mapFunction(e){let t=e.nodeDef,n=[],a=[],r={};t!=null&&(r=t.reduce((u,p)=>(u[p.name]=this.mapNode(p),p.op==="Const"&&a.push(u[p.name]),u),{}));let s=[],i=[];e.signature.inputArg.forEach(u=>{let[p]=ar(u.name),d={name:p,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:w0(u.type),type:"dtype"}},children:[]};d.signatureKey=u.name,s.push(d),r[p]=d}),Object.keys(r).forEach(u=>{let p=r[u];p.inputNames.forEach((d,c)=>{let[h,,m]=ar(d),f=r[h];if(f.outputs!=null){let g=f.outputs.indexOf(m);if(g!==-1){let y=`${h}:${g}`;p.inputNames[c]=y}}p.inputs.push(f),f.children.push(p)})});let o=e.ret;e.signature.outputArg.forEach(u=>{let[p,d]=ar(o[u.name]),c=r[p];c!=null&&(c.defaultOutput=d,i.push(c))});let l=this.mapArgsToSignature(e);return{nodes:r,inputs:s,outputs:i,weights:a,placeholders:n,signature:l}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n),t),{}),outputs:e.signature.outputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n,e.ret),t),{})}}mapArgToTensorInfo(e,t){let n=e.name;return t!=null&&(n=t[n]),{name:n,dtype:e.type}}};function VH(e){let t=H().global;if(typeof t.atob!="undefined")return t.atob(e);if(typeof Buffer!="undefined")return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function v2(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):VH(e);return t?n:n.toLowerCase()}function Hb(e,t,n,a=!1){let r=e[t];return r!=null?v2(r.s,a):n}function jb(e,t,n){let a=e[t];return a?a.b:n}function qb(e,t,n){let a=e[t]||{},r=a.i!=null?a.i:a.f!=null?a.f:n;return typeof r=="number"?r:parseInt(r,10)}function w0(e){switch(typeof e=="string"&&(e=Sa[e]),e){case Sa.DT_FLOAT:case Sa.DT_HALF:return"float32";case Sa.DT_INT32:case Sa.DT_INT64:case Sa.DT_INT8:case Sa.DT_UINT8:return"int32";case Sa.DT_BOOL:return"bool";case Sa.DT_DOUBLE:return"float32";case Sa.DT_STRING:return"string";default:return null}}function Ak(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function Kb(e,t,n){let a=e[t];return a&&a.type?w0(a.type):n}function Xb(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>w0(r)):n}function w2(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function Yb(e,t,n){let a=e[t];return a&&a.shape?w2(a.shape):n}function Zb(e,t,n){let a=e[t];return a?((a.list.f&&a.list.f.length?a.list.f:a.list.i)||[]).map(r=>typeof r=="number"?r:parseInt(r,10)):n}function Jb(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>v2(s,a)):n}function Qb(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>w2(r)):n}function ex(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var UH=class{constructor(e,t,n){this.node=e,this.tensorMap=t,this.context=n,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(a=>this.getInput(a)),e.rawAttrs!=null&&(this.attrs=Object.keys(e.rawAttrs).reduce((a,r)=>(a[r]=this.getAttr(r),a),{}))}getInput(e){return vn(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return vn(e,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return qb(this.node.rawAttrs,e,t);if(n.s!=null)return Hb(this.node.rawAttrs,e,t);if(n.b!=null)return jb(this.node.rawAttrs,e,t);if(n.shape!=null)return Yb(this.node.rawAttrs,e,t);if(n.type!=null)return Kb(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Zb(this.node.rawAttrs,e,t);if(n.list.s!=null)return Jb(this.node.rawAttrs,e,t);if(n.list.shape!=null)return Qb(this.node.rawAttrs,e,t);if(n.list.b!=null)return ex(this.node.rawAttrs,e,t);if(n.list.type!=null)return Xb(this.node.rawAttrs,e,t)}return t}},un={};Ae(un,{OP_SCOPE_SUFFIX:()=>Cx,abs:()=>Lt,acos:()=>Bx,acosh:()=>Vx,add:()=>Y,addN:()=>CS,all:()=>$m,any:()=>qp,argMax:()=>ai,argMin:()=>Ux,asin:()=>Gx,asinh:()=>Hx,atan:()=>jx,atan2:()=>qx,atanh:()=>Kx,avgPool:()=>ga,avgPool3d:()=>Yx,basicLSTMCell:()=>$S,batchNorm:()=>ys,batchNorm2d:()=>Zx,batchNorm3d:()=>Jx,batchNorm4d:()=>Qx,batchToSpaceND:()=>Ac,bincount:()=>ev,booleanMaskAsync:()=>hT,broadcastArgs:()=>FS,broadcastTo:()=>Ks,buffer:()=>Pe,cast:()=>oe,ceil:()=>tv,clipByValue:()=>en,clone:()=>rr,complex:()=>Cr,concat:()=>Ze,concat1d:()=>nv,concat2d:()=>av,concat3d:()=>rv,concat4d:()=>sv,conv1d:()=>Fm,conv2d:()=>$t,conv2dTranspose:()=>Dm,conv3d:()=>ov,conv3dTranspose:()=>lv,cos:()=>$c,cosh:()=>Rm,cosineWindow:()=>tf,cumprod:()=>Kp,cumsum:()=>Mm,denseBincount:()=>Sh,depthToSpace:()=>uv,depthwiseConv2d:()=>bs,diag:()=>RS,dilation2d:()=>pv,div:()=>he,divNoNan:()=>cv,dot:()=>dv,dropout:()=>zv,einsum:()=>MS,elu:()=>Nu,enclosingPowerOfTwo:()=>Wv,equal:()=>Qn,erf:()=>hv,euclideanNorm:()=>gv,exp:()=>fn,expandDims:()=>Zt,expm1:()=>yv,eye:()=>Pm,fft:()=>zc,fill:()=>gn,floor:()=>_u,floorDiv:()=>Am,fused:()=>pl,gather:()=>Eu,gatherND:()=>yT,greater:()=>Nn,greaterEqual:()=>Er,ifft:()=>ul,imag:()=>Cc,image:()=>za,inTopKAsync:()=>bT,irfft:()=>Zm,isFinite:()=>bv,isInf:()=>xv,isNaN:()=>vv,leakyRelu:()=>Fc,less:()=>Om,lessEqual:()=>xs,linalg:()=>Uv,linspace:()=>WS,localResponseNormalization:()=>wv,log:()=>ea,log1p:()=>Dc,logSigmoid:()=>kv,logSoftmax:()=>zm,logSumExp:()=>Wm,logicalAnd:()=>Ea,logicalNot:()=>Rc,logicalOr:()=>Bm,logicalXor:()=>Iv,losses:()=>AT,lowerBound:()=>VS,matMul:()=>Fe,max:()=>ha,maxPool:()=>Dt,maxPool3d:()=>Sv,maxPoolWithArgmax:()=>US,maximum:()=>pr,mean:()=>Nt,meshgrid:()=>GS,min:()=>il,minimum:()=>Au,mirrorPad:()=>Tv,mod:()=>Nv,moments:()=>Mc,movingAverage:()=>mT,mul:()=>z,multiRNNCell:()=>HS,multinomial:()=>jS,neg:()=>bt,norm:()=>Cu,notEqual:()=>ii,oneHot:()=>rl,ones:()=>Zn,onesLike:()=>ta,op:()=>L,outerProduct:()=>qS,pad:()=>ya,pad1d:()=>KS,pad2d:()=>XS,pad3d:()=>YS,pad4d:()=>ZS,pool:()=>Cv,pow:()=>_r,prelu:()=>Oc,print:()=>$x,prod:()=>_v,raggedGather:()=>JS,raggedRange:()=>QS,raggedTensorToTensor:()=>eT,rand:()=>tT,randomGamma:()=>nT,randomNormal:()=>Um,randomStandardNormal:()=>aT,randomUniform:()=>$u,range:()=>ol,real:()=>sl,reciprocal:()=>$v,relu:()=>Xe,relu6:()=>Gm,reshape:()=>W,reverse:()=>fa,reverse1d:()=>rT,reverse2d:()=>sT,reverse3d:()=>iT,reverse4d:()=>oT,rfft:()=>Wc,round:()=>Hm,rsqrt:()=>jm,scalar:()=>be,scatterND:()=>fT,searchSorted:()=>Vm,selu:()=>qm,separableConv2d:()=>vs,setdiff1dAsync:()=>lT,sigmoid:()=>da,sign:()=>Fv,signal:()=>ET,sin:()=>Km,sinh:()=>Xm,slice:()=>Be,slice1d:()=>Lc,slice2d:()=>Ym,slice3d:()=>mo,slice4d:()=>ll,softmax:()=>Ka,softplus:()=>ho,spaceToBatchND:()=>Pc,sparse:()=>$T,sparseToDense:()=>gT,spectral:()=>_T,split:()=>zn,sqrt:()=>ln,square:()=>ot,squaredDifference:()=>Jm,squeeze:()=>ws,stack:()=>Ft,step:()=>fo,stridedSlice:()=>Dv,string:()=>FT,sub:()=>pe,sum:()=>fe,tan:()=>Rv,tanh:()=>ri,tensor:()=>kn,tensor1d:()=>Ke,tensor2d:()=>_a,tensor3d:()=>_c,tensor4d:()=>$a,tensor5d:()=>uT,tensor6d:()=>pT,tile:()=>Ln,topk:()=>Mv,transpose:()=>Ee,truncatedNormal:()=>Qm,unique:()=>Pv,unsortedSegmentSum:()=>ef,unstack:()=>ct,upperBound:()=>cT,variable:()=>Ov,where:()=>mn,whereAsync:()=>Lv,zeros:()=>It,zerosLike:()=>qe});var GH=(e,t,n,a=un)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[a.add(k("a",e,t,n),k("b",e,t,n))];case"AddN":return[a.addN(k("tensors",e,t,n))];case"FloorMod":case"Mod":return[a.mod(k("a",e,t,n),k("b",e,t,n))];case"Mul":return[a.mul(k("a",e,t,n),k("b",e,t,n))];case"RealDiv":case"Div":return[a.div(k("a",e,t,n),k("b",e,t,n))];case"DivNoNan":return[a.divNoNan(k("a",e,t,n),k("b",e,t,n))];case"FloorDiv":return[a.floorDiv(k("a",e,t,n),k("b",e,t,n))];case"Sub":return[a.sub(k("a",e,t,n),k("b",e,t,n))];case"Minimum":return[a.minimum(k("a",e,t,n),k("b",e,t,n))];case"Maximum":return[a.maximum(k("a",e,t,n),k("b",e,t,n))];case"Pow":return[a.pow(k("a",e,t,n),k("b",e,t,n))];case"SquaredDifference":return[a.squaredDifference(k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},HH=(e,t,n,a=un)=>{switch(e.op){case"Abs":case"ComplexAbs":return[a.abs(k("x",e,t,n))];case"Acos":return[a.acos(k("x",e,t,n))];case"Acosh":return[a.acosh(k("x",e,t,n))];case"Asin":return[a.asin(k("x",e,t,n))];case"Asinh":return[a.asinh(k("x",e,t,n))];case"Atan":return[a.atan(k("x",e,t,n))];case"Atan2":return[a.atan2(k("x",e,t,n),k("y",e,t,n))];case"Atanh":return[a.atanh(k("x",e,t,n))];case"Ceil":return[a.ceil(k("x",e,t,n))];case"Complex":return[a.complex(k("real",e,t,n),k("imag",e,t,n))];case"Cos":return[a.cos(k("x",e,t,n))];case"Cosh":return[a.cosh(k("x",e,t,n))];case"Elu":return[a.elu(k("x",e,t,n))];case"Erf":return[a.erf(k("x",e,t,n))];case"Exp":return[a.exp(k("x",e,t,n))];case"Expm1":return[a.expm1(k("x",e,t,n))];case"Floor":return[a.floor(k("x",e,t,n))];case"Log":return[a.log(k("x",e,t,n))];case"Log1p":return[a.log1p(k("x",e,t,n))];case"Imag":return[a.imag(k("x",e,t,n))];case"Neg":return[a.neg(k("x",e,t,n))];case"Reciprocal":return[a.reciprocal(k("x",e,t,n))];case"Real":return[a.real(k("x",e,t,n))];case"Relu":return[a.relu(k("x",e,t,n))];case"Round":return[a.round(k("x",e,t,n))];case"Selu":return[a.selu(k("x",e,t,n))];case"Sigmoid":return[a.sigmoid(k("x",e,t,n))];case"Sin":return[a.sin(k("x",e,t,n))];case"Sign":return[a.sign(k("x",e,t,n))];case"Sinh":return[a.sinh(k("x",e,t,n))];case"Softplus":return[a.softplus(k("x",e,t,n))];case"Sqrt":return[a.sqrt(k("x",e,t,n))];case"Square":return[a.square(k("x",e,t,n))];case"Tanh":return[a.tanh(k("x",e,t,n))];case"Tan":return[a.tan(k("x",e,t,n))];case"ClipByValue":return[a.clipByValue(k("x",e,t,n),k("clipValueMin",e,t,n),k("clipValueMax",e,t,n))];case"Relu6":return[a.relu6(k("x",e,t,n))];case"Rsqrt":return[a.rsqrt(vn(e.inputNames[0],t,n))];case"Prod":return[a.prod(k("x",e,t,n),k("axes",e,t,n))];case"LeakyRelu":return[a.leakyRelu(k("x",e,t,n),k("alpha",e,t,n))];case"Prelu":return[a.prelu(k("x",e,t,n),k("alpha",e,t,n))];case"IsNan":return[a.isNaN(vn(e.inputNames[0],t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Ca(e,t,n=""){if(!(typeof e=="number"||typeof t=="number")){v.assert(e.length===t.length,()=>n+` Shapes ${e} and ${t} must match`);for(let a=0;an+` Shapes ${e} and ${t} must match`)}}}function $k(e){return!(typeof e=="number"||e.some(t=>t<0))}function Tp(e,t,n){let a=tx(e,n),r=!$k(a);if(r&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${a}`);if(r&&t.forEach(s=>{a=tx(s.shape,a)}),!$k(a))throw new Error(`Non-fully-defined elementShape: ${a}`);return a}function tx(e,t){if(typeof e=="number")return t;if(typeof t=="number")return e;if(e.length!==t.length)throw new Error(`Incompatible ranks during merge: ${e} vs. ${t}`);let n=[];for(let a=0;a=0&&s>=0&&r!==s)throw new Error(`Incompatible shape during merge: ${e} vs. ${t}`);n[a]=r>=0?r:s}return n}var jH=class{constructor(e,t,n,a,r,s,i){this.name=e,this.dtype=t,this.maxSize=n,this.elementShape=a,this.identicalElementShapes=r,this.dynamicSize=s,this.clearAfterRead=i,this.tensors=[],this.closed_=!1,this.idTensor=be(0),Jt(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!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()}`);let 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(t=>this.read(t))}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}`);let n=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, +2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(l!=null){let u={};for(let h of Object.keys(ka))u[h]=ka[h];for(let h of Object.keys(n))u[h]=n[h];let p=s.config;p.customObjects=u;let d=Object.assign({},ka);for(let h of Object.keys(n))ka[h]=n[h];Mb(s.config);let c=l(o,s.config,n,r);return ka=Object.assign({},d),c}else{let u=Object.assign({},ka);for(let d of Object.keys(n))ka[d]=n[d];let p=new o(s.config);return ka=Object.assign({},u),p}}}function $4(e,t){return et?1:0}function jd(e,t){return-1*$4(e,t)}function Jr(e){if(e==null)return e;let t=[];for(let n of e)t.indexOf(n)===-1&&t.push(n);return t}function A4(e){if(e==null)throw new V(`Invalid value in obj: ${JSON.stringify(e)}`);for(let t in e)if(e.hasOwnProperty(t))return!1;return!0}function go(e,t,n){if(n!=null&&e.indexOf(n)<0)throw new V(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function qv(e,t,n=0,a=1/0){return tr(n>=0),tr(a>=n),Array.isArray(e)&&e.length>=n&&e.length<=a&&e.every(r=>typeof r===t)}function Qt(e,t){Array.isArray(e)?(v.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>Qt(n,`element ${a+1} of ${t}`))):v.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${WT(e)}.`)}function WT(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>WT(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function F4(e,t,n){let a=n!=null?n():v.now(),r;return(...s)=>{let i=n!=null?n():v.now();return i-a0){let n=`${e}_${t}`;return Ho.set(n,1),n}else return e}var B4=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function jT(e){return!!e.match(B4)}function V4(e){return e===parseInt(e.toString(),10)}function Qr(e,t,n){t==null&&(t=0),n==null&&(n=e.length);let a=1;for(let r=t;rt&&(t=a)}return t}function Ha(e,t){if(t{if(e.shape.length!==2)throw new V(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);let n=Uc(e,1);return Pb(n,[1,t,1])})}function G4(e){let t=[Qr(e.shape)];return W(e,t)}function H4(e){if(e.rank<=1)throw new V(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);let t=[e.shape[0],Qr(e.shape,1)];return W(e,t)}function Ys(e,t,n){return P(()=>{switch(e.rank){case 1:return Lc(e,t,n);case 2:return Ym(e,[t,0],[n,e.shape[1]]);case 3:return mo(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return ll(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return Be(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return Be(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 V(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}})}function cb(e,t,n){return P(()=>{switch(e.rank){case 1:return Lc(e,t,n);case 2:return Ym(e,[0,t],[e.shape[0],n]);case 3:return mo(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return ll(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new V(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Kd(e,t,n,a){return P(()=>{switch(e.rank){case 1:return Lc(e,t,n);case 2:switch(a){case 1:return Ys(e,t,n);case 2:return cb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}case 3:switch(a){case 1:return Ys(e,t,n);case 2:return mo(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return cb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}case 4:switch(a){case 1:return Ys(e,t,n);case 2:return ll(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return ll(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return cb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}default:throw new V(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Kv(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),Ze(e,t)}function uk(e,t){switch(e.rank){case 1:return nv([e,t]);case 2:return av([e,t],0);case 3:return rv([e,t],0);case 4:return sv([e,t],0);default:throw new V(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Pb(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new V(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return Ln(e,t)}function mf(e,t=0,n=1,a,r){return Um(e,t,n,a,r)}function sr(e,t,n,a){if(e.rank<2||t.rank<2)throw new Re(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3){let r=e.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(r!==s)throw new Re(`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(e.rank===2&&t.rank===2)return pl.matMul({a:e,b:t,transposeA:!1,transposeB:!1,bias:a?Ob(e.rank,a,ja()):null,activation:n});{let r=e.shape.slice(),s=r.pop();e=W(e,[-1,s]);let i=t.shape.slice(),o=i.pop(),l=i.pop(),u=[...i,o],p=Array.from({length:t.rank},(m,f)=>f===0?t.rank-2:f<=t.rank-2?f-1:f);t=W(Ee(t,p),[l,-1]);let d=[...r,...u],c=!1,h=!1;return W(pl.matMul({a:e,b:t,transposeA:c,transposeB:h,bias:a?Ob(e.rank,a,ja()):null,activation:n}),d)}}function qT(e,t,n){return P(()=>(Array.isArray(t)?t=Ke(t,"int32"):t=le(t,"int32"),Eu(e,t,n)))}function Gc(e){return z(e,e)}function Ob(e,t,n){let a=t.shape;if(t.rank!==1&&t.rank!==e)throw new V(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(e===5){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1,1,1]):W(t,[1,a[3],a[0],a[1],a[2]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,1,1,a[0]]):W(t,[1].concat(a))}else if(e===4){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1,1]):W(t,[1,a[2],a[0],a[1]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,1,a[0]]):W(t,[1].concat(a))}else if(e===3){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1]):W(t,[1,a[1],a[0]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,a[0]]):W(t,[1].concat(a))}else if(e<3)return t;throw new V(`Unsupported input rank by biasAdd: ${t.rank}`)}function Xa(e,t,n){return P(()=>(n==null&&(n=ja()),Rt(n),Y(e,Ob(e.rank,t,n))))}function j4(e,t=1){if(t!==1)throw new Re(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Nu(e)}function q4(e){return P(()=>he(e,Y(Lt(e),1)))}function KT(e,t,n,a){return P(()=>zv(e,t,n,a))}function K4(e){return P(()=>{let t=Y(.5,z(.2,e));return en(t,0,1)})}function Hc(e,t,n=!1){return n?e():t()}var X4=["fanIn","fanOut","fanAvg"],Y4=["normal","uniform","truncatedNormal"];function Z4(e){go(X4,"FanMode",e)}function J4(e){go(Y4,"Distribution",e)}var Fa=class extends ne.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Xv=class extends Fa{apply(e,t){return It(e,t)}};Xv.className="Zeros";ne.registerClass(Xv);var ff=class extends Fa{apply(e,t){return Zn(e,t)}};ff.className="Ones";ne.registerClass(ff);var Yv=class extends Fa{constructor(e){if(super(),typeof e!="object")throw new V(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new V(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return P(()=>z(xe(this.value),Zn(e,t)))}getConfig(){return{value:this.value}}};Yv.className="Constant";ne.registerClass(Yv);var Zv=class extends Fa{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 Au(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};Zv.className="RandomUniform";ne.registerClass(Zv);var Jv=class extends Fa{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(t=t||"float32",t!=="float32"&&t!=="int32")throw new Re(`randomNormal does not support dType ${t}.`);return mf(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Jv.className="RandomNormal";ne.registerClass(Jv);var Qv=class extends Fa{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(t=t||"float32",t!=="float32"&&t!=="int32")throw new Re(`truncatedNormal 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}}};Qv.className="TruncatedNormal";ne.registerClass(Qv);var ew=class extends Fa{constructor(e){super(),this.gain=e.gain!=null?e.gain:1}apply(e,t){return P(()=>{if(e.length!==2||e[0]!==e[1])throw new V("Identity matrix initializer can only be used for 2D square matrices.");return z(this.gain,Pm(e[0]))})}getConfig(){return{gain:this.gain}}};ew.className="Identity";ne.registerClass(ew);function Q4(e,t="channelsLast"){let n,a;if(Rt(t),e.length===2)n=e[0],a=e[1];else if([3,4,5].indexOf(e.length)!==-1){if(t==="channelsFirst"){let r=Qr(e,2);n=e[1]*r,a=e[0]*r}else if(t==="channelsLast"){let r=Qr(e,0,e.length-2);n=e[e.length-2]*r,a=e[e.length-1]*r}}else{let r=Qr(e);n=Math.sqrt(r),a=Math.sqrt(r)}return[n,a]}var Bn=class extends Fa{constructor(e){if(super(),e.scale<0)throw new V(`scale must be a positive float. Got: ${e.scale}`);this.scale=e.scale==null?1:e.scale,this.mode=e.mode==null?"fanIn":e.mode,Z4(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,J4(this.distribution),this.seed=e.seed}apply(e,t){let n=Q4(e),a=n[0],r=n[1],s=this.scale;if(this.mode==="fanIn"?s/=Math.max(1,a):this.mode==="fanOut"?s/=Math.max(1,r):s/=Math.max(1,(a+r)/2),this.distribution==="normal"){let i=Math.sqrt(s);if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Re(`${this.getClassName()} does not support dType ${t}.`);return Qm(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return Au(e,-i,i,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Bn.className="VarianceScaling";ne.registerClass(Bn);var gf=class extends Bn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};gf.className="GlorotUniform";ne.registerClass(gf);var yf=class extends Bn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};yf.className="GlorotNormal";ne.registerClass(yf);var bf=class extends Bn{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};bf.className="HeNormal";ne.registerClass(bf);var xf=class extends Bn{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};xf.className="HeUniform";ne.registerClass(xf);var vf=class extends Bn{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};vf.className="LeCunNormal";ne.registerClass(vf);var wf=class extends Bn{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};wf.className="LeCunNormal";ne.registerClass(wf);var tw=class extends Fa{constructor(e){if(super(),this.DEFAULT_GAIN=1,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,this.seed!=null)throw new Re("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return P(()=>{if(e.length<2)throw new Re("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.`);let n=e[0]>e[1]?[e[1],e[0]]:e,a=mf(n,0,1,"float32"),r=Uv.gramSchmidt(a);return e[0]>e[1]&&(r=Ee(r)),z(this.gain,r)})}getConfig(){return{gain:this.gain,seed:this.seed}}};tw.className="Orthogonal";ne.registerClass(tw);var pk={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 ck(e,t={}){return Vc(e,ne.SerializationMap.getMap().classNameMap,t,"initializer")}function Ct(e){return jv(e)}function St(e){if(typeof e=="string"){let t=e in pk?pk[e]:e;if(t==="GlorotNormal")return new yf;if(t==="GlorotUniform")return new gf;if(t==="HeNormal")return new bf;if(t==="HeUniform")return new xf;if(t==="LeCunNormal")return new vf;if(t==="LeCunUniform")return new wf;{let n={};return n.className=t,n.config={},ck(n)}}else return e instanceof Fa?e:ck(e)}function Lb(e){return Array.isArray(e)&&Array.isArray(e[0])}function Th(e){return e.length===0?[]:Array.isArray(e[0])?e:[e]}function Ne(e){let t;if(Array.isArray(e)){if(e.length!==1)throw new V(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function Qe(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(e.length===1)return e=e,e[0];throw new V(`Expected exactly 1 Shape; got ${e.length}`)}else return e}function Nh(e){let t=0;for(let n of e)n.shape.length===0?t+=1:t+=n.shape.reduce((a,r)=>a*r);return t}var dk="Variable",XT=class{constructor(e,t="float32",n=dk,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=VT(),n=n==null?dk:n,this.originalName=GT(n),this.name=HT(this.originalName),this.trainable_=a,this.constraint=r,this.val=Ov(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),eV(this.val,e),this.val.id!==e.id&&(this.val.assign(e),this.constraint!=null&&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 eV(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function zb(e){return e.map(t=>t.read())}function nw(e){e.forEach(t=>{t[0].write(t[1])})}var zt=class{constructor(e){this.dtype=e.dtype,this.shape=e.shape,e.shape!=null?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}},Ba=class{constructor(e,t,n,a,r,s,i){this.dtype=e,this.shape=t,this.sourceLayer=n,this.inputs=a,this.callArgs=r,this.outputTensorIndex=i,this.id=VT(),s!=null&&(this.originalName=GT(s),this.name=HT(this.originalName)),this.rank=t.length}},tV=0,kf=class{constructor(e,t){this.callArgs=t,this.id=tV++,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(let n of e.inboundLayers)n!=null&&n.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){let e=[];for(let t of this.inboundLayers)t!=null?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},nV=0,Ge=class extends ne.Serializable{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=nV++,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){let n=this.getClassName();t=wr(n)+"_"+hf(n)}if(this.name=t,this.trainable_=e.trainable==null?!0:e.trainable,e.inputShape!=null||e.batchInputShape!=null){let n;if(e.batchInputShape!=null)n=e.batchInputShape;else if(e.inputShape!=null){let r=null;e.batchSize!=null&&(r=e.batchSize),n=[r].concat(e.inputShape)}this.batchInputShape=n;let a=e.dtype;a==null&&(a=e.inputDType),a==null&&(a="float32"),this.dtype=a}e.weights!=null?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(this.inboundNodes.length===0)throw new Wa(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new V(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return On(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return On(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new vr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new vr(`Layer ${this.name} is not connected, no input to return.`);return On(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new vr(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new vr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return On(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=yt(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=yt(this.inputSpec);if(e.length!==t.length)throw new V(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let n=0;nr.maxNDim)throw new V(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${r.maxNDim}, found ndim=${s}`);if(r.minNDim!=null&&s=0?i[l]:i[i.length+l];if(u!=null&&[u,null].indexOf(p)===-1)throw new V(`Input ${n} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${u} but got shape ${i}.`)}}if(r.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(e);let s=[];for(let i of yt(e))s.push(i.shape);this.build(On(s)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&r&&(this._refCount=1)}if(this.assertInputCompatibility(e),r){let s=this.call(e,t),i=yt(s),o=[];for(let l of i)n.indexOf(l)!==-1&&(l=l.clone()),o.push(l);if(s=On(o),this.activityRegularizer!=null)throw new Re("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=aV(e),i=this.computeOutputShape(s),o,l=rV(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?s[0]:s),i!=null&&i.length>0&&Array.isArray(i[0])?o=i.map((u,p)=>new Ba(l,u,this,yt(e),t,this.name,p)):o=new Ba(l,i,this,yt(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new Re("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return o}})}warnOnIncompatibleInputShape(e){if(this.batchInputShape!=null)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,a)=>{n!=null&&e[a]!=null&&e[a]!==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(this.inboundNodes==null||this.inboundNodes.length===0)throw new vr(`The layer ${this.name} has never been called and thus has no defined output shape.`);let e=[];for(let t of this.inboundNodes){let n=JSON.stringify(t.outputShapes);e.indexOf(n)===-1&&e.push(n)}if(e.length===1){let t=this.inboundNodes[0].outputShapes;return Array.isArray(t)&&Array.isArray(t[0])&&t.length===1?t[0]:t}else throw new vr(`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 Wa(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Nh(this.weights)}build(e){this.built=!0}getWeights(e=!1){return zb(e?this.trainableWeights:this.weights)}setWeights(e){P(()=>{let t=this.weights;if(t.length!==e.length)throw new V(`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(t.length===0)return;let n=[],a=zb(t);for(let r=0;rr.apply(u.read())),s==null&&(s=!0),s?this._trainableWeights.push(u):this._nonTrainableWeights.push(u),u}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){e==null||Array.isArray(e)&&e.length===0||(e=yt(e),this._losses!==void 0&&this._losses!==null&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(t!=null)if(Array.isArray(t))t.forEach(n=>{if(n!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return t}addInboundNode(e,t,n,a,r,s,i=null){let o=yt(e);t=yt(t),n=yt(n),a=yt(a),r=Th(r),s=Th(s);let l=[],u=[],p=[];for(let d of o)l.push(d.sourceLayer),u.push(d.nodeIndex),p.push(d.tensorIndex);new kf({outboundLayer:this,inboundLayers:l,nodeIndices:u,tensorIndices:p,inputTensors:o,outputTensors:t,inputMasks:n,outputMasks:a,inputShapes:r,outputShapes:s},i);for(let d=0;de.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)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(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return--this._refCount===0&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}};function aV(e){e=yt(e);let t=[];for(let n of e)t.push(n.shape);return On(t)}function rV(e){return"float32"}function YT(e,t,n){if((t==null||n!=null&&n>0)&&(t=e.sourceLayer,n=e.nodeIndex),t.inboundNodes.length===0)return[e];{let a=t.inboundNodes[n];if(a.inboundLayers.length===0)return a.inputTensors;{let r=[];for(let s=0;sm.name),l=[],u=t.names();for(let m of o)u.indexOf(m)!==-1?l.push(t.getValue(m)):l.push(null);a!=null&&(a.maxNumTensors=-1/0,a.minNumTensors=1/0);let p=o.join(",")+"|"+t.names().sort().join(","),d=Ch.get(p),c;if(d==null){let m=oV(i,t);d=m.sorted,c=m.recipientCounts,Ch.put(p,d),_h.put(p,c)}c={},r||Object.assign(c,_h.get(p));let h=new Hs(t);for(let m=0;ma.maxNumTensors&&(a.maxNumTensors=$),$0,()=>"Expected at least one fetch, got none");let n=[],a={};if(e.length===1){let r=hk(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=hk(s,t);for(let l of i)r.has(l.name)||(n.push(l),r.add(l.name));for(let l in o)a[l]==null&&(a[l]=new Set),o[l].forEach(u=>a[l].add(u))}}return{sorted:n,recipientCounts:lV(a)}}function lV(e){let t={};for(let n in e)t[n]=e[n].size;return t}function hk(e,t){let n=new Set,a=[],r={};for(let o of t.names())n.add(o);let s=[],i=[];for(s.push(e);s.length>0;){let o=s[s.length-1];if(n.has(o.name)){s.pop();continue}let l=i[i.length-1]===s.length-1;if(o.inputs.length===0||l)s.pop(),a.push(o),n.add(o.name),l&&i.pop();else{i.push(s.length-1);for(let u of o.inputs)r[u.name]==null&&(r[u.name]=new Set),r[u.name].add(o.name),!n.has(u.name)&&s.push(u)}}return{sorted:a,recipientMap:r}}function uV(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;a100,iV);var JT={};$e(JT,{maxNorm:()=>cV,minMaxNorm:()=>mV,nonNeg:()=>hV,unitNorm:()=>dV});function aw(e,t){return P(()=>ln(fe(z(e,e),t,!0)))}var jc=class extends ne.Serializable{getConfig(){return{}}},rw=class extends jc{constructor(e){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>{let t=aw(e,this.axis),n=en(t,0,this.maxValue);return z(e,he(n,Y(Gt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};rw.className="MaxNorm";ne.registerClass(rw);var sw=class extends jc{constructor(e){super(),this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>he(e,Y(Gt(),aw(e,this.axis))))}getConfig(){return{axis:this.axis}}};sw.className="UnitNorm";ne.registerClass(sw);var iw=class extends jc{apply(e){return Xe(e)}};iw.className="NonNeg";ne.registerClass(iw);var ow=class extends jc{constructor(e){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>{let t=aw(e,this.axis),n=Y(z(this.rate,en(t,this.minValue,this.maxValue)),z(1-this.rate,t));return z(e,he(n,Y(Gt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};ow.className="MinMaxNorm";ne.registerClass(ow);var mk={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function qt(e){return jv(e)}function fk(e,t={}){return Vc(e,ne.SerializationMap.getMap().classNameMap,t,"constraint")}function Kt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in mk?mk[e]:e,config:{}};return fk(t)}else return e instanceof jc?e:fk(e)}function cV(e){return new rw(e)}function dV(e){return new sw(e)}function hV(){return new iw}function mV(e){return new ow(e)}var QT={};$e(QT,{constant:()=>yV,glorotNormal:()=>SV,glorotUniform:()=>IV,heNormal:()=>TV,heUniform:()=>NV,identity:()=>wV,leCunNormal:()=>CV,leCunUniform:()=>_V,ones:()=>gV,orthogonal:()=>EV,randomNormal:()=>xV,randomUniform:()=>bV,truncatedNormal:()=>vV,varianceScaling:()=>kV,zeros:()=>fV});function fV(){return new Xv}function gV(){return new ff}function yV(e){return new Yv(e)}function bV(e){return new Zv(e)}function xV(e){return new Jv(e)}function vV(e){return new Qv(e)}function wV(e){return new ew(e)}function kV(e){return new Bn(e)}function IV(e){return new gf(e)}function SV(e){return new yf(e)}function TV(e){return new bf(e)}function NV(e){return new xf(e)}function CV(e){return new vf(e)}function _V(e){return new wf(e)}function EV(e){return new tw(e)}var eN={};$e(eN,{Layer:()=>Ge,RNN:()=>dr,RNNCell:()=>Zc,activation:()=>nG,add:()=>cG,alphaDropout:()=>KG,average:()=>dG,averagePooling1d:()=>y0,averagePooling2d:()=>b0,averagePooling3d:()=>x0,avgPool1d:()=>wG,avgPool2d:()=>IG,avgPool3d:()=>TG,avgPooling1d:()=>kG,avgPooling2d:()=>SG,avgPooling3d:()=>NG,batchNormalization:()=>bG,bidirectional:()=>WG,categoryEncoding:()=>JG,concatenate:()=>hG,conv1d:()=>qU,conv2d:()=>KU,conv2dTranspose:()=>XU,conv3d:()=>YU,conv3dTranspose:()=>ZU,convLstm2d:()=>PG,convLstm2dCell:()=>OG,cropping2D:()=>QU,dense:()=>aG,depthwiseConv2d:()=>tG,dot:()=>yG,dropout:()=>rG,elu:()=>BU,embedding:()=>pG,flatten:()=>iG,gaussianDropout:()=>qG,gaussianNoise:()=>jG,globalAveragePooling1d:()=>CG,globalAveragePooling2d:()=>_G,globalMaxPool1d:()=>VG,globalMaxPool2d:()=>UG,globalMaxPooling1d:()=>HN,globalMaxPooling2d:()=>jN,gru:()=>$G,gruCell:()=>AG,input:()=>bN,inputLayer:()=>WU,layerNormalization:()=>xG,leakyReLU:()=>UU,lstm:()=>FG,lstmCell:()=>DG,masking:()=>XG,maxPool1d:()=>GG,maxPool2d:()=>HG,maxPooling1d:()=>qN,maxPooling2d:()=>KN,maxPooling3d:()=>EG,maximum:()=>mG,minimum:()=>fG,multiply:()=>gG,permute:()=>uG,prelu:()=>GU,reLU:()=>VU,repeatVector:()=>oG,rescaling:()=>YG,reshape:()=>lG,resizing:()=>ZG,rnn:()=>LG,separableConv2d:()=>JU,simpleRNN:()=>RG,simpleRNNCell:()=>MG,softmax:()=>HU,spatialDropout1d:()=>sG,stackedRNNCells:()=>zG,thresholdedReLU:()=>jU,timeDistributed:()=>BG,upSampling2d:()=>eG,zeroPadding2d:()=>vG});async function jr(e){if(e==null)return;let t=[],n=[],a=[];for(let r in e){let s=e[r];if(typeof s!="number"){let i=s;t.push(i.data()),n.push(r),a.push(i)}}if(t.length>0){let r=await Promise.all(t);for(let s=0;sY(this.totals[a],z(r,n)));this.totals[a]=i,s!=null&&s.dispose()}}}async onEpochEnd(e,t){if(t!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]=="number"?t[n]=this.totals[n]/this.seen:P(()=>{let a=z(he(1,this.seen),this.totals[n]);t[n]=a,this.totals[n].dispose(),Jt(t[n])}))}},aN=class extends dl{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){t==null&&(t={}),this.epoch.push(e);for(let n in t)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(t[n])}async syncData(){let e=[],t=[],n=[];for(let r in this.history){let s=this.history[r];for(let i=0;inew rN(n,t))}var Ta=class{constructor(){}static registerCallbackConstructor(e,t){v.assert(e>=0&&Number.isInteger(e),()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`),Ta.checkForDuplicate(t),Ta.constructors[e]==null&&(Ta.constructors[e]=[]),Ta.constructors[e].push(t)}static checkForDuplicate(e){for(let t in Ta.constructors)Ta.constructors[+t].forEach(n=>{if(n===e)throw new V("Duplicate callback constructor.")})}static clear(){Ta.constructors={}}static createCallbacks(e){let t=[];for(let n in Ta.constructors){let a=+n;e>=a&&t.push(...Ta.constructors[a])}return t.map(n=>new n)}};Ta.constructors={};function iN(e,t,n,a,r,s,i,o,l){let u=new aN,p=[new AV,...Ta.createCallbacks(t)];e!=null&&p.push(...e),p.push(u);let d=new nN(p);return d.setParams({epochs:n,initialEpoch:a,samples:r,steps:s,batchSize:i,verbose:t,doValidation:o,metrics:l}),{callbackList:d,history:u}}function Ua(e,t={},n=!1){return Vc(e,ne.SerializationMap.getMap().classNameMap,t,"layer",n)}function Eh(e,t){return P(()=>{e.dtype!=="float32"&&(e=le(e,"float32"));let n=fe(Gc(e),t,!0),a=gn(n.shape,Gt()),r=ln(pr(n,a));return he(e,r)})}function bo(e,t){return P(()=>Nt(Gc(pe(t,e)),-1))}function If(e,t){return P(()=>Nt(Lt(pe(t,e)),-1))}function Ru(e,t){return P(()=>{let n=pe(e,t),a=en(Lt(e),Gt(),Number.MAX_VALUE),r=Lt(he(n,a));return z(100,Nt(r,-1))})}function FV(e,t){return P(()=>{let n=en(t,Gt(),Number.MAX_VALUE),a=ea(Y(1,n)),r=en(e,Gt(),Number.MAX_VALUE),s=ea(Y(1,r));return Nt(Gc(pe(a,s)),-1)})}function DV(e,t){return P(()=>{let n=pr(0,pe(1,z(e,t)));return Nt(Gc(n),-1)})}function RV(e,t){return P(()=>{let n=pr(0,pe(1,z(e,t)));return Nt(n,-1)})}function MV(e,t){return P(()=>{let n=fe(z(e,t),-1),a=ha(z(pe(1,e),t),-1);return pr(0,Y(1,pe(a,n)))})}function PV(e,t){return P(()=>{let n=Math.log(2),a=pe(t,e),r=pe(Y(a,ho(z(-2,a))),n);return Nt(r,-1)})}function Xp(e,t,n=!1){return P(()=>{if(n)t=Ka(t);else{let a=fe(t,t.shape.length-1,!0);t=he(t,a)}return t=en(t,Gt(),1-Gt()),bt(fe(z(le(e,"float32"),ea(t)),t.shape.length-1))})}function $h(e,t,n=!1){return P(()=>{let a=le(_u(G4(e)),"int32");t=en(t,Gt(),1-Gt());let r=t.shape,s=W(rl(a,r[r.length-1]),r);return Xp(s,t,n)})}function OV(e,t){if(!v.arraysEqual(e.shape,t.shape))throw new V(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return P(()=>{let n=Xe(t),a=bt(Lt(t));return Y(pe(n,z(t,e)),Dc(fn(a)))})}function Sf(e,t){return P(()=>{let n;return n=en(t,Gt(),1-Gt()),n=ea(he(n,pe(1,n))),Nt(OV(e,n),-1)})}function LV(e,t){return P(()=>{let n=en(e,Gt(),1),a=en(t,Gt(),1);return fe(z(e,ea(he(n,a))),-1)})}function zV(e,t){return P(()=>{let n=ea(Y(Gt(),t));return Nt(pe(t,z(e,n)),-1)})}function lw(e,t){return P(()=>{let n=Eh(e,-1),a=Eh(t,-1),r=z(n,a);return bt(fe(r,-1))})}var Ah={meanSquaredError:bo,meanAbsoluteError:If,meanAbsolutePercentageError:Ru,meanSquaredLogarithmicError:FV,squaredHinge:DV,hinge:RV,categoricalHinge:MV,logcosh:PV,categoricalCrossentropy:Xp,sparseCategoricalCrossentropy:$h,binaryCrossentropy:Sf,kullbackLeiblerDivergence:LV,poisson:zV,cosineProximity:lw};function db(e){if(typeof e=="string"){if(e in Ah)return Ah[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 V(t)}else return e}function uw(e,t){return P(()=>{let n=z(.5,ta(t)),a=yo(Nn(t,n),e.dtype);return Nt(Qn(e,a),-1)})}function pw(e,t){return P(()=>yo(Qn(ai(e,-1),ai(t,-1)),"float32"))}function oN(e,t){return P(()=>le(fe(Ea(Qn(e,1),Qn(t,1))),"float32"))}function WV(e,t){return P(()=>le(fe(Ea(Qn(e,1),Qn(t,0))),"float32"))}function BV(e,t){return P(()=>le(fe(Ea(Qn(e,0),Qn(t,1))),"float32"))}function lN(e,t){return P(()=>{let n=oN(e,t),a=BV(e,t),r=Y(n,a);return le(mn(Nn(r,0),he(n,r),0),"float32")})}function VV(e,t){return P(()=>{let n=oN(e,t),a=WV(e,t),r=Y(n,a);return le(mn(Nn(r,0),he(n,r),0),"float32")})}function uN(e,t){return Sf(e,t)}function pN(e,t){return e.rank===t.rank&&(e=ws(e,[e.rank-1])),t=ai(t,-1),t.dtype!==e.dtype&&(t=le(t,e.dtype)),le(Qn(e,t),"float32")}var UV=bo,GV=bo,HV=If,jV=If,qV=Ru,KV=Ru,cw=Xp,XV=lw,cN=$h,Fh={binaryAccuracy:uw,categoricalAccuracy:pw,precision:lN,categoricalCrossentropy:cw,sparseCategoricalCrossentropy:cN,mse:UV,MSE:GV,mae:HV,MAE:jV,mape:qV,MAPE:KV,cosine:XV};function YV(e){if(typeof e=="string"&&e in Fh)return Fh[e];if(typeof e!="string"&&e!=null)return e;throw new V(`Unknown metric ${e}`)}function Xd(e){if(tr(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys(Ah))if(Ah[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys(Fh))if(Fh[n]===e){t=n;break}return t!==void 0?t:e.name}}function ZV(e){let t={Adagrad:()=>zs.adagrad(.01),Adadelta:()=>zs.adadelta(1,.95,Gt()),Adam:()=>zs.adam(.001,.9,.999,Gt()),Adamax:()=>zs.adamax(.002,.9,.999,Gt(),0),RMSProp:()=>zs.rmsprop(.001,.9,0,Gt()),SGD:()=>zs.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 V(`Unknown Optimizer ${e}`)}function yk(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!Wb(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(n){let a=JSON.stringify(e);a.length>1048576&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${a.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 Wb(e){if(e===null)return!0;if(typeof e=="object")if(Object.getPrototypeOf(e)===Object.prototype){let t=Object.keys(e);for(let n of t)if(typeof n!="string"||!Wb(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!Wb(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function JV(e,t,n,a=console.log){let r=eU(e),s=["Layer (type)","Input Shape","Output shape","Param #"];r?(t=t||90,n=n||[.32,.61,.89,1]):(t=t||115,n=n||[.24,.48,.7,.8,1]),n[n.length-1]<=1&&(n=n.map(p=>Math.floor(t*p)));let i;if(!r){s.push("Receives inputs"),i=[];for(let p in e.nodesByDepth)i.push(...e.nodesByDepth[p])}a("_".repeat(t)),Dh(s,n,a),a("=".repeat(t));let o=e.layers;for(let p=0;p1||r.length===1&&r[0].inboundLayers.length>1){t=!1;break}a.push(...r)}if(t)for(let r of e.layers){let s=!1;for(let i of r.inboundNodes)if(a.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function Dh(e,t,n=console.log){let a="";for(let r=0;r0&&(a=a.slice(0,a.length-1)+" "),a+=e[r],a=a.slice(0,t[r]),a+=" ".repeat(t[r]-a.length);n(a)}function tU(e,t,n){let a,r;try{r=e.inboundNodes.map(l=>JSON.stringify(l.inputShapes)).join(",")}catch(l){r="multiple"}try{a=JSON.stringify(e.outputShape)}catch(l){a="multiple"}let s=e.name,i=e.getClassName(),o=[`${s} (${i})`,r,a,e.countParams().toString()];Dh(o,t,n)}function nU(e,t,n,a){let r,s;try{s=e.inboundNodes.map(d=>JSON.stringify(d.inputShapes)).join(",")}catch(d){s="multiple"}try{r=JSON.stringify(e.outputShape)}catch(d){r="multiple"}let i=[];for(let d of e.inboundNodes)if(!(n!=null&&n.length>0&&n.indexOf(d)===-1))for(let c=0;cy.name)}`);Jr(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(y=>y.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let y of this.outputs){let b=y.sourceLayer,x=y.nodeIndex,w=y.tensorIndex;this.outputLayers.push(b),this.outputLayersNodeIndices.push(x),this.outputLayersTensorIndices.push(w)}for(let y of this.inputs){let b=y.sourceLayer,x=y.nodeIndex,w=y.tensorIndex;tr(x===0,"input layer has >1 nodes"),tr(w===0,"input layer has >1 tensors"),this.inputLayers.push(b),this.inputLayersNodeIndices.push(x),this.inputLayersTensorIndices.push(w)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let y=0;yy.shape),this.internalOutputShapes=this.outputs.map(y=>y.shape);let t={},n={},a={},r={},s={},i=[],o=(y,b,x,w,I,T)=>{(w==null||I==null||T==null)&&(w=y.sourceLayer,I=y.nodeIndex,T=y.tensorIndex);let C=w.inboundNodes[I];if(x.indexOf(C)!==-1)throw new Wa(`The tensor ${y.name} at layer "${w.name}" is part of a cycle.`);if(b.indexOf(C)!==-1)return;this.containerNodes.add(Qa.nodeKey(w,I)),w.id in s||(s[w.id]=Object.keys(s).length),x.indexOf(C)===-1&&x.push(C);let E=C.inboundLayers.length;for(let $=0;$=0;)x.splice(x.indexOf(C),1);i.push(C)},l=[],u=[];for(let y of this.outputs)o(y,l,u);let p=i.slice().reverse();for(let y of p){n[y.id]=y,y.id in t||(t[y.id]=0);let b=t[y.id],x=a[y.outboundLayer.id]==null?0:a[y.outboundLayer.id];b=Math.max(b,x),a[y.outboundLayer.id]=b,r[y.outboundLayer.id]=y.outboundLayer,t[y.id]=b;for(let w=0;wparseInt(y,10)).sort(jd);this.layers=[];for(let y of h){let b=c[y];b.sort((x,w)=>{let I=s[x.id],T=s[w.id];return IT?1:0});for(let x of b)x instanceof Qa&&this.internalContainerRefs.push(x),this.layers.push(x)}this.layersByDepth=c,h=Object.keys(d).map(y=>parseInt(y,10)).sort(jd);let m=this.inputs.slice(),f=[];for(let y of h)for(let b of d[y]){let x=b.outboundLayer;if(x!=null){for(let w of b.inputTensors)if(m.indexOf(w)===-1)throw new Wa(`Graph disconnected: cannot obtain value for tensor ${w} at layer "${x.name}". The following previous layers were accessed without issue: ${f}`);for(let w of b.outputTensors)m.push(w);f.push(x.name)}}this.nodesByDepth=d;let g=this.layers.map(y=>y.name);for(let y of g){let b=g.filter(x=>x===y).length;if(b!==1)throw new Wa(`The name "${y}" is used ${b} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new kf({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(y=>null),outputMasks:this.outputs.map(y=>null),inputShapes:this.inputs.map(y=>y.shape),outputShapes:this.outputs.map(y=>y.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let e={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(let t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(let 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(n=>n.trainable=e)}),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new V("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(let t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.layers)t.push(...n.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){let n={},a=0;for(let s of this.layers)for(let i of s.weights){if(n[i.originalName]!=null)throw new V(`Duplicate weight name: ${i.originalName}`);n[i.originalName]=i,a++}let r=[];for(let s in e){let i=s;if(n[s]==null){let o=s.split("/");i=o.slice(0,-2).concat([o[o.length-1]]).join("/")}if(n[i]!=null)r.push([n[i],e[s]]);else if(t)throw new V(`Provided weight data has no target variable: ${s}`);delete n[i]}if(t){let s=[];for(let i in n)s.push(i);if(s.length>0)throw new V(`${s.length} of ${a} weights are not set: ${s}`)}nw(r)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${dw}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let n=Bb(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return P(()=>{e=yt(e);let n=new Hs;for(let a=0;a{e=yt(e);let n;return t==null?n=oi(null,e.length):n=yt(t),this.runInternalGraph(e,n)[1]})}computeOutputShape(e){let t=Th(e);if(t.length!==this.inputLayers.length)throw new V(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let i=0;iparseInt(i,10)).sort(jd);if(a.length>1)for(let i of a){let o=this.nodesByDepth[i];for(let l of o){let u=l.outboundLayer;if(this.inputLayers.map(m=>m.id).indexOf(u.id)!==-1)continue;let p=[];for(let m=0;mparseInt(o,10)).sort(jd);for(let o of a){let l=this.nodesByDepth[o];for(let u of l){let p=u.outboundLayer,d=u.inputTensors,c=u.outputTensors,h=new Array;for(let m of d)m.id in n&&h.push(n[m.id]);if(h.length===d.length){let m={},f,g,y,b;if(u.callArgs!=null&&(m=u.callArgs),h.length===1){let[x,w]=h[0];m.mask==null&&(m.mask=w),y=yt(p.call(x,m)),b=yt(p.computeMask(x,w)),f=[x],g=[w]}else f=h.map(x=>x[0]),g=h.map(x=>x[1]),m.mask==null&&(m.mask=g),y=yt(p.call(f,m)),b=yt(p.computeMask(f,g));if(p.activityRegularizer)throw new Re("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let x=0;x{let e=[];for(let t of this.layers)for(let n=0;n0){let m=[];for(let f=0;f0&&f.apply(On(y),b)}function l(f){let g=f.name,y=Ua(f,t.customObjects!=null?t.customObjects:{});y.setFastWeightInitDuringBuild(a),r[g]=y,f.inboundNodes.forEach(b=>{if(!(b instanceof Array))throw new V(`Corrupted configuration, expected array for nodeData: ${b}`);i(y,b)})}let u=t.name,p=t.layers;for(let f of p)l(f);for(;!A4(s);)for(let f of p){let g=r[f.name];if(g.name in s){let y=s[g.name];delete s[g.name];for(let b of y)o(g,b)}}let d=[],c=[],h=t.inputLayers;for(let f of h){let g=f[0],y=f[1],b=f[2];tr(g in r);let x=r[g].inboundNodes[y].outputTensors;d.push(x[b])}let m=t.outputLayers;for(let f of m){let g=f[0],y=f[1],b=f[2];tr(g in r);let x=r[g].inboundNodes[y].outputTensors;c.push(x[b])}return new e({inputs:d,outputs:c,name:u})}get stateful(){if(this._stateful)throw new V("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(let e of this.layers)if(e.stateful)return!0;return!1}resetStates(){P(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}};function aU(e,t,n){let a=t.length;if(e==null||Array.isArray(e)&&e.length===0)return t.map(r=>null);if(a===1)return Array.isArray(e)&&e.length===1?e:typeof e=="object"&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==a)throw new Error(`Provided ${n} is an array of ${e.length} element(s), but the model has ${a} outputs. Make sure a set of weights is provided for each model output.`);return e}else if(typeof e=="object"&&Object.keys(e).length>0&&typeof e[Object.keys(e)[0]]=="object"){let r=[];return t.forEach(s=>{s in e?r.push(e[s]):r.push(null)}),r}else throw new Error(`The model has multiple (${a}) outputs, so ${n} must be either an array with ${a} elements or an object with ${t} keys. Provided ${n} not understood: ${JSON.stringify(e)}`)}function hN(e,t){return aU(e,t,"classWeight")}async function mN(e,t,n,a){if(t!=null||a!=null)throw new Error("Support sampleWeight is not implemented yet");if(n!=null){let r=P(()=>{if(e.shape.length===1)return rr(e);if(e.shape.length===2){if(e.shape[1]>1)return ai(e,1);if(e.shape[1]===1)return W(e,[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.`)}else 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.`)}),s=Array.from(await r.data());_e(r);let i=[];return s.forEach(o=>{if(n[o]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${o} exists in the data but not in classWeight`);i.push(n[o])}),Ke(i,"float32")}else return null}function rU(e,t){return z(e,t)}var sU=32;function fN(e,t){let n,a,r=t;n=r.xs,a=r.ys,v.assert(n!=null&&a!=null,()=>`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}`);let s=bk("input",e.inputNames,n),i=bk("output",e.outputNames,a),o=s[0].shape[0];v.assert(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)})`),v.assert(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 l=0;l`Batch size mismatch: input ${e.inputNames[l]} has ${s[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);for(let l=0;l`Batch size mismatch: output ${e.outputNames[l]} has ${i[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);return{xs:s,ys:i}}function bk(e,t,n){if(n instanceof Te)return[n];if(Array.isArray(n))return v.assert(n.length===t.length,()=>`Received an array of ${n.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`),n;{let a=[];for(let r of t){if(n[r]==null)throw new V(`The feature data generated by the dataset lacks the required ${e} key '${r}'.`);a.push(n[r])}return a}}function iU(e){if(e.length===3)throw new Re("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function oU(e,t,n){let a=n.batchesPerEpoch!=null;if(v.assert(e.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),v.assert(n!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),v.assert(n.epochs!=null&&n.epochs>0&&Number.isInteger(n.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${n.epochs}`),v.assert(!a||n.batchesPerEpoch>0&&Number.isInteger(n.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${n.batchesPerEpoch}`),v.assert(n.validationSplit==null,()=>"`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{let r=n.validationData!=null,s,i;if(r)if(xk(n.validationData))v.assert(n.validationBatches==null||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{let g=iU(n.validationData);s=g.xs,i=g.ys}let o=e.makeTrainFunction(),l=e.getDedupedMetricsNames(),u;r?u=l.slice().concat(l.map(g=>"val_"+g)):u=l.slice();let p=sN(n.callbacks,n.yieldEvery),d=n.verbose==null?1:n.verbose,{callbackList:c,history:h}=iN(p,d,n.epochs,null,null,lU(t,n),null,r,u);c.setModel(e),e.history=h,await c.onTrainBegin(),e.stopTraining_=!1;let m=n.initialEpoch==null?0:n.initialEpoch,f=await t.iterator();for(;m=n.batchesPerEpoch:x.done){if(r){let w;xk(n.validationData)?w=yt(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):w=yt(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?sU:n.validationBatchSize,verbose:0}));for(let I=0;I0)throw new Re("Verbose mode is not implemented yet.");v.assert(!a||n.batches>0&&Number.isInteger(n.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(n.batches)}`);let i=uU(t)?t:await t.iterator(),o=0,l=0;for(;!a||l{if(u.value){let{xs:p,ys:d}=fN(e,u.value),c=p.concat(d),h=P(()=>r(c));if(_e(c),l===0)for(let f=0;fY(s[f],z(m,g))),l>0&&_e(y)}_e(h),o+=m,++l}return s}),u.done){a&&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 u=0;u0&&Number.isInteger(e),()=>`batchSize is required to be a positive integer, but got ${e}`)}function $p(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>Ys(a,t,n-t)):Ys(e,t,n-t)}function hw(e,t){return P(()=>e==null?null:Array.isArray(e)?e.map(n=>hw(n,t)):qT(e,t.dtype==="int32"?t:le(t,"int32")))}function Ub(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}async function cU(e,t,n,a,r,s,i,o,l,u,p,d,c,h,m){r==null&&(r=32),s==null&&(s=1),p==null&&(p=!0),c==null&&(c=0);let f=!1;if(l!=null&&u!=null&&(f=!0),m!=null&&(f=!0,h==null))throw new V("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let g=e.checkNumSamples(n,r,h,"steps_per_epoch"),y;g!=null&&(y=Ha(0,g)),i==null&&(i=1);let{callbackList:b,history:x}=iN(o,i,s,c,g,h,r,f,d);b.setModel(e),e.history=x,await b.onTrainBegin(),e.stopTraining_=!1;for(let w=c;w{let R=C[E][0],F=C[E][1],S=Ys(T,R,F-R);$.batch=E,$.size=F-R;let M=hw(n,S),B=t(M);for(let U=0;U0){if(g=!0,a.validationData.length===2)l=a.validationData[0],u=a.validationData[1];else throw a.validationData.length===3?new Re("validationData including sample weights is not supported yet."):new V(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${a.validationData} is invalid.`);let E=!0,$=await e.standardizeUserData(l,u,null,null,E,h);p=$[0],d=$[1],y=p.concat(d)}else if(a.validationSplit!=null&&a.validationSplit>0&&a.validationSplit<1){g=!0;let E=Math.floor(r[0].shape[0]*(1-a.validationSplit)),$=r[0].shape[0];p=$p(r,E,$),i=r,r=$p(r,0,E),d=$p(s,E,$),o=s,s=$p(s,0,E),y=p.concat(d)}else a.validationSteps!=null&&(g=!0);let b=r.concat(s).concat(c);e.checkTrainableWeightsConsistency();let x=e.makeTrainFunction(),w=e.getDedupedMetricsNames(),I,T;g?(e.makeTestFunction(),I=e.testFunction,T=w.slice().concat(w.map(E=>"val_"+E))):(I=null,y=[],T=w.slice());let C=sN(a.callbacks,a.yieldEvery);return await cU(e,x,b,w,h,a.epochs,a.verbose,C,I,y,a.shuffle,T,a.initialEpoch,null,null)}finally{e.isTraining=!1,La(r,t),La(s,n),La(i,t),La(o,n),La(p,l),La(d,u),c!=null&&_e(c)}}function gN(e){let t=[];e instanceof Te&&(e=[e]);for(let n=0;nn.push(r.id));else if(t!=null)for(let r in t){let s=t[r];n.push(s.id)}let a=[];if(e instanceof Te)n.indexOf(e.id)===-1&&a.push(e);else if(Array.isArray(e))e.forEach(r=>{n.indexOf(r.id)===-1&&a.push(r)});else if(e!=null)for(let r in e){let s=e[r];n.indexOf(s.id)===-1&&a.push(s)}a.forEach(r=>{r.isDisposed||r.dispose()})}function hU(e){return e instanceof Te}function Gb(e){return Array.isArray(e)}function vk(e){return!hU(e)&&!Gb(e)}function wk(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(Gb(e)&&e.length>0)i=!0;else if(vk(e)){for(let o in e)if(e.hasOwnProperty(o)){i=!0;break}}else i=!0;if(i)throw new V(`Error when checking model ${r} expected no data, but got ${e}`)}return[]}if(e==null)return t.map(i=>null);let s;if(vk(e)){e=e,s=[];for(let i of t){if(e[i]==null)throw new V(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(e[i])}}else if(Gb(e)){if(e=e,e.length!==t.length)throw new V(`Error when checking model ${r}: 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 V(`The model ${r} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);s=[e]}if(s=gN(s),n!=null)for(let i=0;i=0&&u!==p)throw new V(`${r} expected a batch of elements where each example has shape [${n[i].slice(1,n[i].length)}] (i.e.,tensor shape [*,${n[i].slice(1,n[i].length)}]) but the ${r} received an input with ${o.shape[0]} examples, each with shape [${o.shape.slice(1,o.shape.length)}] (tensor shape [${o.shape}])`)}}return s}function mU(e,t,n){let a=Jr(e.map(s=>s.shape[0]));a.sort();let r=Jr(t.map(s=>s.shape[0]));if(r.sort(),a.length>1)throw new V(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map(s=>s.shape))}`);if(r.length>1)throw new V(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(s=>s.shape))}`);if(a.length>0&&r.length>0&&!v.arraysEqual(a,r))throw new V(`Input Tensors should have the same number of samples as target Tensors. Found ${a[0]} input sample(s) and ${r[0]} target sample(s).`)}function fU(e,t,n){let a=[bo,Sf,Xp];for(let r=0;r1)throw new V(`The model expects ${t.length} ${r} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);s=[e]}if(n!=null)for(let i=0;i[]);let n;if(typeof e=="string"||typeof e=="function")n=[e];else if(Array.isArray(e)||typeof e=="object")n=e;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);if(Array.isArray(n))return t.map(a=>n);{let a=[];for(let r of t){let s=n.hasOwnProperty(r)?n[r]:[];Array.isArray(s)||(s=[s]),a.push(s)}return a}}var yU="layers-model",Nr=class extends Qa{constructor(e){super(e),this.isTraining=!1}summary(e,t,n=console.log){if(!this.built)throw new V("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");JV(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=ZV(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Ar))throw new V("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(!Array.isArray(e.loss)&&typeof e.loss!="string"&&typeof e.loss!="function"){e.loss=e.loss;for(let s in e.loss)if(this.outputNames.indexOf(s)===-1)throw new V(`Unknown entry in loss dictionary: "${s}". Only expected the following keys: ${this.outputNames}`);for(let s of this.outputNames)e.loss[s]==null&&console.warn(`Output "${s}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${s} during training`),t.push(db(e.loss[s]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new V(`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}.`);t=e.loss.map(s=>db(s))}else{let s=db(e.loss);this.outputs.forEach(i=>{t.push(s)})}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let s=0;s{for(let s=0;s1&&(this.metricsTensors.push([i,s]),this.metricsNames.push(this.outputNames[s]+"_loss"))}});let a=gU(e.metrics,this.outputNames),r=(s,i,o)=>{this.outputNames.length>1&&(i=this.outputNames[s]+"_"+i),this.metricsNames.push(i),this.metricsTensors.push([o,s])};Xs("metric",()=>{for(let s=0;s{let l="",u,p,d;for(let c of o){if(typeof c=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(c)!==-1){let m=this.internalOutputShapes[s];m[m.length-1]===1||this.lossFunctions[s]===Sf?["accuracy","acc"].indexOf(c)!==-1?p=uw:["crossentropy","ce"].indexOf(c)!==-1&&(p=uN):this.lossFunctions[s]===$h?["accuracy","acc"].indexOf(c)!==-1?p=pN:["crossentropy","ce"].indexOf(c)!==-1&&(p=cN):["accuracy","acc"].indexOf(c)!==-1?p=pw:["crossentropy","ce"].indexOf(c)!==-1&&(p=cw);let f;["accuracy","acc"].indexOf(c)!==-1?f="acc":["crossentropy","ce"].indexOf(c)!==-1&&(f="ce"),d=p,u=l+f}else d=YV(c),u=l+Xd(c);let h;Xs(u,()=>{h=d}),r(s,u,h)}})(i)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&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={}){let a=n.batchSize==null?32:n.batchSize;Vb(a);let r=!0,s=this.standardizeUserDataXY(e,t,r,a);try{let i=s[0].concat(s[1]);this.makeTestFunction();let o=this.testFunction,l=this.testLoop(o,i,a,n.verbose,n.steps);return On(l)}finally{La(s[0],e),La(s[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),pU(this,e,t)}checkNumSamples(e,t,n,a="steps"){let r;if(n!=null){if(r=null,t!=null)throw new V(`If ${a} is set, batchSize must be null or undefined.Got batchSize = ${t}`)}else if(e!=null)Array.isArray(e)?r=e[0].shape[0]:r=e.shape[0];else throw new V(`Either the input data should have a defined shape, or ${a} shoud be specified.`);return r}execute(e,t){if(Array.isArray(t)&&t.length===0)throw new V("`outputs` is an empty Array, which is not allowed.");let n=Array.isArray(t),a=n?t:[t],r=this.retrieveSymbolicTensors(a),s=new Hs;if(e instanceof Te&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new V(`The number of inputs provided (${e.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let o=0;oi.name);for(let i=0;i0){let a=[];throw t.forEach((r,s)=>{r==null&&a.push(e[s])}),new V(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(a)}`)}return t}predictLoop(e,t=32,n=!1){return P(()=>{let a=this.checkNumSamples(e);if(n)throw new Re("Verbose predictLoop() is not implemented yet.");let r=Ub(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],u=$p(e,o,l),p=[];if(Array.isArray(u))for(let c=0;cs[l].push(o));return On(s.map(i=>Ze(i,0)))})}predict(e,t={}){let n=gN(e);kk(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return Vb(a),this.predictLoop(n,a)}finally{La(n,e)}}predictOnBatch(e){kk(e,this.inputNames,this.feedInputShapes,!0);let t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,n=!0,a){if(this.optimizer_==null)throw new Wa("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let r=[];for(let s=0;s0&&e[0].shape[0]%a!==0)throw new V(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${a}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,n,a,r=!0,s){let[i,o]=this.standardizeUserDataXY(e,t,r,s);if(n!=null)throw new Error("sample weight is not supported yet.");let l=null;if(a!=null){let u=hN(a,this.outputNames);l=[];for(let p=0;p{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new Re("Verbose mode is not implemented yet.");if(r!=null)throw new Re("steps mode in testLoop() is not implemented yet");{let o=Ub(s,n),l=Ke(Ha(0,s));for(let u=0;u1){let s=ok(e.slice(0,n),a);r+=`_${s}`}t.push(r)}return t}makeTrainFunction(){return e=>{let t=[],n=e.slice(0,this.inputs.length),a=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),r=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),s=[],i=()=>{let u=[];for(let h=0;h1&&h{c=Y(c,h)}),c},o=this.collectedTrainableWeights.map(u=>u.read()),l=!0;return[this.optimizer_.minimize(i,l,o)].concat(s)}}makeTestFunction(){this.testFunction=e=>P(()=>{let t=[],n,a=e.slice(0,this.inputs.length),r=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=[];for(let l=0;lwr(t))}else{let t=Object.keys(this.loss);e={};let n=this.loss;for(let a of t)if(typeof n[a]=="string")e[a]=wr(n[a]);else throw new Error("Serialization of non-string loss is not supported.")}return e}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[wr(Xd(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>wr(Xd(e)));{let e={};for(let t in this.metrics)e[t]=wr(Xd(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(e.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(e.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(e.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let t=Yp(e.optimizer_config),n=Ua(t),a;if(typeof e.loss=="string")a=Vs(e.loss);else if(Array.isArray(e.loss))a=e.loss.map(s=>Vs(s));else if(e.loss!=null){a={};for(let s in e.loss)a[s]=Vs(e.loss[s])}let r;if(Array.isArray(e.metrics))r=e.metrics.map(s=>Vs(s));else if(e.metrics!=null){r={};for(let s in e.metrics)r[s]=Vs(e.metrics[s])}this.compile({loss:a,metrics:r,optimizer:n})}async save(e,t){if(typeof e=="string"){let i=Ut.getSaveHandlers(e);if(i.length===0)throw new V(`Cannot find any save handlers for URL '${e}'`);if(i.length>1)throw new V(`Found more than one (${i.length}) save handlers for URL '${e}'`);e=i[0]}if(e.save==null)throw new V("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await Ut.encodeWeights(this.getNamedWeights(t)),a=!1,r=null,s={modelTopology:this.toJSON(r,a),format:yU,generatedBy:`TensorFlow.js tfjs-layers v${dw}`,convertedBy:null};if((t==null?!1:t.includeOptimizer)&&this.optimizer!=null){s.trainingConfig=this.getTrainingConfig();let i="optimizer",{data:o,specs:l}=await Ut.encodeWeights(await this.optimizer.getWeights(),i);n.specs.push(...l),n.data=Ut.concatenateArrayBuffers([n.data,o])}return this.userDefinedMetadata!=null&&(yk(this.userDefinedMetadata,this.name,!0),s.userDefinedMetadata=this.userDefinedMetadata),s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){yk(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};Nr.className="Model";ne.registerClass(Nr);var yN=class extends Nr{};yN.className="Functional";ne.registerClass(yN);async function bU(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=Yp(n),r=Ua(a,t);if(e.weightsManifest!=null){let s=await Ut.loadWeights(e.weightsManifest,e.pathPrefix,r.weights.map(o=>o.originalName)),i={};for(let o of r.weights)i[o.originalName]=s[o.originalName];r.loadWeights(i),_e(s)}return r}async function xU(e,t){if(t==null&&(t={}),typeof e=="string"){let n=Ut.getLoadHandlers(e,t);if(n.length===0)n.push(Ut.browserHTTPRequest(e,t));else if(n.length>1)throw new V(`Found more than one (${n.length}) load handlers for URL '${e}'`);e=n[0]}return vU(e,void 0,t)}async function vU(e,t,n){if(n==null&&(n={}),e.load==null)throw new V("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let a=await e.load(),r=a.modelTopology;r.model_config!=null&&(r=r.model_config);let s=n.strict==null?!0:n.strict,i=a.weightData!=null&&a.weightSpecs!=null&&s,o=Ua(Yp(r),t,i),l=a.trainingConfig;if(l!=null&&o.loadTrainingConfig(l),a.userDefinedMetadata!=null&&o.setUserDefinedMetadata(a.userDefinedMetadata),a.weightData!=null){if(a.weightSpecs==null)throw new V("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:u,optimizerWeights:p}=wU(a.weightData,a.weightSpecs);o.loadWeights(u,s),o.optimizer!=null&&p.length>0&&await o.optimizer.setWeights(p),_e(u),_e(p.map(d=>d.tensor))}return o}function wU(e,t){let n=Ut.decodeWeights(e,t),a={},r=[];return t.forEach(s=>{s.group==="optimizer"?r.push({name:s.name,tensor:n[s.name]}):a[s.name]=n[s.name]}),{modelWeights:a,optimizerWeights:r}}var hl=class extends Nr{constructor(e){if(super({inputs:[],outputs:[]}),e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:hf("sequential_"),e.layers!=null)for(let t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some(t=>t<0))throw new V(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){let t=e instanceof hl||e instanceof Nr,n;if(t){if(n=e,n.outputs.length!==1)throw new V("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(n.inputs.length!==1)throw new V("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(e.inboundNodes.length===0){if(e.batchInputShape==null)throw new V("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let a=ZT({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(a)}if(t)this.outputs=n.outputs,this.inputs=n.inputs;else{if(e.inboundNodes.length!==1)throw new V(`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(e.inboundNodes[0].outputTensors.length!==1)throw new V("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=YT(this.outputs[0])}this.inboundNodes=[],new kf({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:oi(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(a=>a.shape),outputShapes:this.outputs[0].shape})}else{let a=e.apply(this.outputs[0]);if(Array.isArray(a))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=[a],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let 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 this.model==null&&this.build(),this.model.call(e,t)}build(e){if(Qe(e),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new Nr({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){this.model==null&&this.build(),this.model.setWeights(e)}evaluate(e,t,n={}){if(!this.built)throw new Wa("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 Wa("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return this.model==null&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return this.model==null&&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 this.model==null?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,n={}){if(!this.built)throw new Wa("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 Wa("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={},a=!1){let r,s={};if(t instanceof Array){if(t[0].className==null||t[0].className==="Merge")throw new V("Legacy serialization format not supported yet.");r=t}else v.assert(t.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),r=t.layers,delete t.layers,s=t;let i=new e(s);if(!(i instanceof hl))throw new Re(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(let o of r){let l=Ua(o,void 0,a);a&&l.setFastWeightInitDuringBuild(!0),i.add(l)}return i}set stopTraining(e){if(this.model==null)throw new V("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(this.model==null)throw new V("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let e=[];for(let t of this.layers){let n={};n.className=t.getClassName(),n.config=t.getConfig(),e.push(n)}return{name:this.name,layers:e}}};hl.className="Sequential";ne.registerClass(hl);function kU(e){return new Nr(e)}function IU(e){return new hl(e)}function bN(e){return ZT(e)}function SU(e,t){Ta.registerCallbackConstructor(e,t)}var Un=class extends ne.Serializable{getConfig(){return{}}},xN=class extends Un{apply(e,t=1){return j4(e,t)}};xN.className="elu";ne.registerClass(xN);var vN=class extends Un{apply(e){return qm(e)}};vN.className="selu";ne.registerClass(vN);var wN=class extends Un{apply(e){return Xe(e)}};wN.className="relu";ne.registerClass(wN);var kN=class extends Un{apply(e){return P(()=>$u(6,Xe(e)))}};kN.className="relu6";ne.registerClass(kN);var IN=class extends Un{apply(e){return e}};IN.className="linear";ne.registerClass(IN);var SN=class extends Un{apply(e){return da(e)}};SN.className="sigmoid";ne.registerClass(SN);var TN=class extends Un{apply(e){return K4(e)}};TN.className="hardSigmoid";ne.registerClass(TN);var NN=class extends Un{apply(e){return ho(e)}};NN.className="softplus";ne.registerClass(NN);var CN=class extends Un{apply(e){return q4(e)}};CN.className="softsign";ne.registerClass(CN);var _N=class extends Un{apply(e){return ri(e)}};_N.className="tanh";ne.registerClass(_N);var mw=class extends Un{apply(e,t=-1){return Ka(e,t)}};mw.className="softmax";ne.registerClass(mw);var EN=class extends Un{apply(e,t=-1){return zm(e,t)}};EN.className="logSoftmax";ne.registerClass(EN);var $N=class extends Un{apply(e,t=1){return P(()=>z(da(z(e,t)),e))}};$N.className="swish";ne.registerClass($N);var AN=class extends Un{apply(e){return P(()=>z(e,ri(ho(e))))}};AN.className="mish";ne.registerClass(AN);function rs(e){return e.getClassName()}function hb(e,t={}){return Vc(e,ne.SerializationMap.getMap().classNameMap,t,"activation")}function ss(e){if(e==null){let t={};return t.className="linear",t.config={},hb(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},hb(t)}else return e instanceof Un?e:hb(e)}function fw(e){if(e!=null&&typeof e!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}var FN=class extends ne.Serializable{},qc=class extends FN{constructor(e){super(),fw(e),this.l1=e==null||e.l1==null?.01:e.l1,this.l2=e==null||e.l2==null?.01:e.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(e){return P(()=>{let t=It([1]);return this.hasL1&&(t=Y(t,fe(z(this.l1,Lt(e))))),this.hasL2&&(t=Y(t,fe(z(this.l2,Gc(e))))),W(t,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};qc.className="L1L2";ne.registerClass(qc);function TU(e){return fw(e),new qc({l1:e!=null?e.l1:null,l2:0})}function NU(e){return fw(e),new qc({l2:e!=null?e.l2:null,l1:0})}var Ik={l1l2:"L1L2"};function pt(e){return jv(e)}function Sk(e,t={}){return Vc(e,ne.SerializationMap.getMap().classNameMap,t,"regularizer")}function Tt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in Ik?Ik[e]:e,config:{}};return Sk(t)}else return e instanceof FN?e:Sk(e)}var gw=class extends Ge{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Ne(e);let n=Xe(e);return this.maxValue!=null&&(n=en(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};gw.className="ReLU";ne.registerClass(gw);var yw=class extends Ge{constructor(e){super(e==null?{}:e),this.DEFAULT_ALPHA=.3,e==null&&(e={}),this.alpha=e.alpha==null?this.DEFAULT_ALPHA:e.alpha}call(e,t){let n=Ne(e);return Fc(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};yw.className="LeakyReLU";ne.registerClass(yw);var bw=class extends Ge{constructor(e){if(super(e==null?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=St(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Tt(e.alphaRegularizer),this.alphaConstraint=Kt(e.alphaConstraint),e.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else if(typeof e.sharedAxes=="number")this.sharedAxes=[e.sharedAxes];else throw new V(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=Qe(e);let t=e.slice(1);if(this.sharedAxes!=null)for(let a of this.sharedAxes)t[a-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let a=1;a(Rt(t),t==="channelsFirst"?Ee(e,[0,2,3,1]):e))}function DN(e,t){return P(()=>(Rt(t),t==="channelsFirst"?Ee(e,[0,2,3,4,1]):e))}function CU(e,t,n,a=1,r="valid",s,i=1){return P(()=>{if(s==null&&(s=ja()),Rt(s),e.shape.length!==3)throw new V(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(t.shape.length!==3)throw new V(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(n!=null&&n.shape.length!==1)throw new V(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s==="channelsFirst"&&(e=Ee(e,[0,2,1])),r==="causal")throw new Re("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=Fm(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=Xa(o,n)),o})}function Tk(e,t,n,a=[1,1],r="valid",s,i,o=null){return P(()=>{if(s==null&&(s=ja()),Rt(s),e.rank!==3&&e.rank!==4)throw new V(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(t.rank!==3&&t.rank!==4)throw new V(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=kw(e,s);if(r==="causal")throw new Re("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=pl.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=Ee(l,[0,3,1,2])),l})}function _U(e,t,n,a=[1,1,1],r="valid",s,i){return P(()=>{if(s==null&&(s=ja()),Rt(s),e.rank!==4&&e.rank!==5)throw new V(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(t.rank!==4&&t.rank!==5)throw new V(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=DN(e,s);if(r==="causal")throw new Re("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=ov(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=Xa(o,n)),s==="channelsFirst"&&(o=Ee(o,[0,4,1,2,3])),o})}var Iw=class extends Ge{constructor(e,t){if(super(t),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",Iw.verifyArgs(t),this.rank=e,Qt(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new Re(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=el(t.kernelSize,e,"kernelSize"),this.strides=el(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,ba(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Rt(this.dataFormat),this.activation=ss(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=St(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Kt(t.biasConstraint),this.biasRegularizer=Tt(t.biasRegularizer),this.activityRegularizer=Tt(t.activityRegularizer),this.dilationRate=el(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new V(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new V(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new V(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(tr("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!qv(e.kernelSize,"number",1,3))throw new V(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){let e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:rs(this.activation),useBias:this.useBias,biasInitializer:Ct(this.biasInitializer),biasRegularizer:pt(this.biasRegularizer),activityRegularizer:pt(this.activityRegularizer),biasConstraint:qt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},Kc=class extends Iw{constructor(e,t){super(e,t),this.kernel=null,Kc.verifyArgs(t),this.filters=t.filters,Qt(this.filters,"filters"),this.kernelInitializer=St(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Kt(t.kernelConstraint),this.kernelRegularizer=Tt(t.kernelRegularizer)}build(e){e=Qe(e);let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V(`The channel dimension of the input should be defined. Found ${e[t]}`);let n=e[t],a=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",a,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 P(()=>{e=Ne(e);let n,a=this.bias==null?null:this.bias.read(),r=BT(this.activation.getClassName());if(r!=null&&this.rank===2)n=Tk(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(this.rank===1)n=CU(e,this.kernel.read(),a,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=Tk(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=_U(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new Re("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(e){e=Qe(e);let t=[],n=this.dataFormat==="channelsLast"?e.slice(1,e.length-1):e.slice(2);for(let r=0;r 0 but got ${JSON.stringify(e.filters)}`)}},Xc=class extends Kc{constructor(e){super(2,e),Xc.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!qv(e.kernelSize,"number",1,2))throw new V(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}};Xc.className="Conv2D";ne.registerClass(Xc);var Yc=class extends Kc{constructor(e){super(3,e),Yc.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!(Array.isArray(e.kernelSize)&&(e.kernelSize.length===1||e.kernelSize.length===3)))throw new V(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}};Yc.className="Conv3D";ne.registerClass(Yc);var Sw=class extends Xc{constructor(e){if(super(e),this.inputSpec=[new zt({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new V(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=Qe(e),e.length!==4)throw new V("Input should have rank 4; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V("The channel dimension of the inputs should be defined. Found `None`.");let n=e[t],a=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",a,"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 zt({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return P(()=>{let n=Ne(e);if(n.shape.length!==4)throw new V(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let a=n.shape,r=a[0],s,i;this.dataFormat==="channelsFirst"?(s=2,i=3):(s=1,i=2);let o=a[s],l=a[i],u=this.kernelSize[0],p=this.kernelSize[1],d=this.strides[0],c=this.strides[1],h=nr(o,d,u,this.padding),m=nr(l,c,p,this.padding),f=[r,h,m,this.filters];this.dataFormat!=="channelsLast"&&(n=Ee(n,[0,2,3,1]));let g=Dm(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=Ee(g,[0,3,1,2])),this.bias!=null&&(g=Xa(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=Qe(e);let t=e.slice(),n,a,r;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3):(n=3,a=1,r=2);let s=this.kernelSize[0],i=this.kernelSize[1],o=this.strides[0],l=this.strides[1];return t[n]=this.filters,t[a]=nr(t[a],o,s,this.padding),t[r]=nr(t[r],l,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Sw.className="Conv2DTranspose";ne.registerClass(Sw);var Tw=class extends Yc{constructor(e){if(super(e),this.inputSpec=[new zt({ndim:5})],this.padding!=="same"&&this.padding!=="valid")throw new V(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=Qe(e),e.length!==5)throw new V("Input should have rank 5; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V("The channel dimension of the inputs should be defined. Found `None`.");let n=e[t],a=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",a,"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 zt({ndim:5,axes:{[t]:n}})],this.built=!0}call(e,t){return P(()=>{let n=Ne(e);if(n.shape.length!==5)throw new V(`Conv3DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let a=n.shape,r=a[0],s,i,o;this.dataFormat==="channelsFirst"?(o=2,s=3,i=4):(o=1,s=2,i=3);let l=a[o],u=a[s],p=a[i],d=this.kernelSize[0],c=this.kernelSize[1],h=this.kernelSize[2],m=this.strides[0],f=this.strides[1],g=this.strides[2],y=nr(l,m,d,this.padding),b=nr(u,f,c,this.padding),x=nr(p,g,h,this.padding),w=[r,y,b,x,this.filters];this.dataFormat!=="channelsLast"&&(n=Ee(n,[0,2,3,4,1]));let I=lv(n,this.kernel.read(),w,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(I=Ee(I,[0,4,1,2,3])),this.bias!==null&&(I=Xa(I,this.bias.read(),this.dataFormat)),this.activation!==null&&(I=this.activation.apply(I)),I})}computeOutputShape(e){e=Qe(e);let t=e.slice(),n,a,r,s;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3,s=4):(n=4,a=1,r=2,s=3);let i=this.kernelSize[0],o=this.kernelSize[1],l=this.kernelSize[2],u=this.strides[0],p=this.strides[1],d=this.strides[2];return t[n]=this.filters,t[a]=nr(t[a],u,i,this.padding),t[r]=nr(t[r],p,o,this.padding),t[s]=nr(t[s],d,l,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Tw.className="Conv3DTranspose";ne.registerClass(Tw);var RN=class extends Kc{constructor(e,t){if(super(e,t),this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,t.filters==null)throw new V("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new V("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(t.padding!=null&&t.padding!=="same"&&t.padding!=="valid")throw new V(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=St(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Tt(t.depthwiseRegularizer),this.depthwiseConstraint=Kt(t.depthwiseConstraint),this.pointwiseInitializer=St(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Tt(t.pointwiseRegularizer),this.pointwiseConstraint=Kt(t.pointwiseConstraint)}build(e){if(e=Qe(e),e.length{e=Ne(e);let n;if(this.rank===1)throw new Re("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=Ee(e,[0,2,3,1])),n=vs(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=Xa(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Ee(n,[0,3,1,2])),n})}getConfig(){let e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.pointwiseInitializer=Ct(this.pointwiseInitializer),e.depthwiseRegularizer=pt(this.depthwiseRegularizer),e.pointwiseRegularizer=pt(this.pointwiseRegularizer),e.depthwiseConstraint=qt(this.depthwiseConstraint),e.pointwiseConstraint=qt(this.pointwiseConstraint),e}};RN.className="SeparableConv";var Nw=class extends RN{constructor(e){super(2,e)}};Nw.className="SeparableConv2D";ne.registerClass(Nw);var Tf=class extends Kc{constructor(e){super(1,e),Tf.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){let e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!qv(e.kernelSize,"number",1,1))throw new V(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}};Tf.className="Conv1D";ne.registerClass(Tf);var Cw=class extends Ge{constructor(e){super(e),typeof e.cropping=="number"?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:typeof e.cropping[0]=="number"?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=e.dataFormat===void 0?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return this.dataFormat==="channelsFirst"?[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 P(()=>{if(e=Ne(e),this.dataFormat==="channelsLast"){let n=Kd(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Kd(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=Kd(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Kd(n,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Cw.className="Cropping2D";ne.registerClass(Cw);var _w=class extends Ge{constructor(e){super(e),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=e.size==null?this.DEFAULT_SIZE:e.size,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,z4(this.interpolation)}computeOutputShape(e){if(this.dataFormat==="channelsFirst"){let t=e[2]==null?null:this.size[0]*e[2],n=e[3]==null?null:this.size[1]*e[3];return[e[0],e[1],t,n]}else{let t=e[1]==null?null:this.size[0]*e[1],n=e[2]==null?null:this.size[1]*e[2];return[e[0],t,n,e[3]]}}call(e,t){return P(()=>{let n=Ne(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=Ee(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?za.resizeNearestNeighbor(n,[r,s]):za.resizeBilinear(n,[r,s]);return Ee(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?za.resizeNearestNeighbor(n,[r,s]):za.resizeBilinear(n,[r,s])}})}getConfig(){let e={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},t=super.getConfig();return Object.assign(e,t),e}};_w.className="UpSampling2D";ne.registerClass(_w);function EU(e,t,n=[1,1],a="valid",r,s){return P(()=>{r==null&&(r=ja()),Rt(r);let i=kw(e,r);if(e.rank!==4)throw new V(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(t.rank!==4)throw new V(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=bs(i,t,n,a==="same"?"same":"valid","NHWC",s),r==="channelsFirst"&&(i=Ee(i,[0,3,1,2])),i})}var Ew=class extends Iw{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=St(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Kt(e.depthwiseConstraint),this.depthwiseRegularizer=Tt(e.depthwiseRegularizer)}build(e){if(e=Qe(e),e.length<4)throw new V(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);let t=this.dataFormat==="channelsFirst"?1:3;if(e[t]==null||e[t]<0)throw new V(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);let n=e[t],a=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",a,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 P(()=>{e=Ne(e);let n=EU(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=Xa(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(e){e=Qe(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,r=Ga(t,this.kernelSize[0],this.padding,this.strides[0]),s=Ga(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[e[0],a,r,s]:[e[0],r,s,a]}getConfig(){let e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.depthwiseRegularizer=pt(this.depthwiseRegularizer),e.depthwiseConstraint=qt(this.depthwiseRegularizer),e}};Ew.className="DepthwiseConv2D";ne.registerClass(Ew);function MN(e,t,n,a){if(Array.isArray(e)){if(t!=null||n!=null)throw new V("When inputs is an array, neither initialState or constants should be provided");a!=null&&(n=e.slice(e.length-a,e.length),e=e.slice(0,e.length-a)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function r(s){return s==null||Array.isArray(s)?s:[s]}return t=r(t),n=r(n),{inputs:e,initialState:t,constants:n}}function PN(e,t,n,a=!1,r,s,i=!1,o=!1){return P(()=>{let l=t.shape.length;if(l<3)throw new V(`Input should be at least 3D, but is ${l}D.`);let u=[1,0].concat(Ha(2,l));if(t=Ee(t,u),s!=null)throw new Re("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."),r!=null&&(r=le(le(r,"bool"),"float32"),r.rank===l-1&&(r=Zt(r,-1)),r=Ee(r,u)),a&&(t=fa(t,0),r!=null&&(r=fa(r,0)));let p=[],d,c=n,h=t.shape[0],m=ct(t),f;r!=null&&(f=ct(r));for(let y=0;ye(b,c));if(r==null)d=x[0],c=x[1];else{let w=P(()=>{let I=f[y],T=pe(ta(I),I),C=Y(z(x[0],I),z(c[0],T)),E=c.map(($,R)=>Y(z(x[1][R],I),z($,T)));return{output:C,newStates:E}});d=w.output,c=w.newStates}o&&p.push(d)}let g;return o&&(g=Ft(p,1)),[d,g,c]})}var dr=class extends Ge{constructor(e){super(e);let t;if(e.cell==null)throw new V("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new _f({cells:e.cell}):t=e.cell,t.stateSize==null)throw new V("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=e.returnSequences==null?!1:e.returnSequences,this.returnState=e.returnState==null?!1:e.returnState,this.goBackwards=e.goBackwards==null?!1:e.goBackwards,this._stateful=e.stateful==null?!1:e.stateful,this.unroll=e.unroll==null?!1:e.unroll,this.supportsMasking=!0,this.inputSpec=[new zt({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Ha(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){Lb(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);let n=t[0],a;if(this.returnSequences?a=[e[0],e[1],n]:a=[e[0],n],this.returnState){let r=[];for(let s of t)r.push([e[0],s]);return[a].concat(r)}else return a}computeMask(e,t){return P(()=>{Array.isArray(t)&&(t=t[0]);let n=this.returnSequences?t:null;if(this.returnState){let a=this.states.map(r=>null);return[n].concat(a)}else return n})}get states(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let n=0;ns.shape[s.shape.length-1]),r))throw new V(`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=r.map(s=>new zt({shape:[null,s]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){P(()=>{if(!this.stateful)throw new vr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape[0];if(n==null)throw new V("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(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>It([n,a])):this.states_=[It([n,this.cell.stateSize])];else if(e==null)_e(this.states_),this.keptStates!=null&&(_e(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>It([n,a])):this.states_[0]=It([n,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new V(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t===!0?this.keptStates.push(this.states_.slice()):_e(this.states_);for(let a=0;aJt(a.clone()))})}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=MN(e,n,a,this.numConstants);e=r.inputs,n=r.initialState,a=r.constants;let s=[],i=[];if(n!=null){t.initialState=n,s=s.concat(n),this.stateSpec=[];for(let o of n)this.stateSpec.push(new zt({shape:o.shape}));i=i.concat(this.stateSpec)}if(a!=null&&(t.constants=a,s=s.concat(a),this.numConstants=a.length),s[0]instanceof Ba){let o=[e].concat(s),l=this.inputSpec.concat(i),u=this.inputSpec;this.inputSpec=l;let p=super.apply(o,t);return this.inputSpec=u,p}else return super.apply(e,t)}call(e,t){return P(()=>{let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;e=Ne(e),r==null&&(this.stateful?r=this.states_:r=this.getInitialState(e));let s=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(r.length!==s)throw new V(`RNN Layer has ${s} state(s) but was passed ${r.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let i={training:a},o=PN((c,h)=>{let m=this.cell.call([c].concat(h),i);return[m[0],m.slice(1)]},e,r,this.goBackwards,n,null,this.unroll,this.returnSequences),l=o[0],u=o[1],p=o[2];this.stateful&&this.resetStates(p,a);let d=this.returnSequences?u:l;return this.returnState?[d].concat(p):d})}getInitialState(e){return P(()=>{let t=It(e.shape);return t=fe(t,[1,2]),t=Uc(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Pb(t,[1,n]):t):this.cell.stateSize>1?[Pb(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),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){let e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(t.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===dr.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign(Object.assign(Object.assign({},n),e),t)}static fromConfig(e,t,n={}){let a=t.cell,r=Ua(a,n);return new e(Object.assign(t,{cell:r}))}};dr.className="RNN";ne.registerClass(dr);var Zc=class extends Ge{},Nf=class extends Zc{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,Qt(this.units,"units"),this.activation=ss(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Tt(e.kernelRegularizer),this.recurrentRegularizer=Tt(e.recurrentRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.kernelConstraint=Kt(e.kernelConstraint),this.recurrentConstraint=Kt(e.recurrentConstraint),this.biasConstraint=Kt(e.biasConstraint),this.dropout=cl([1,as([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=cl([1,as([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Qe(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 P(()=>{if(e=e,e.length!==2)throw new V(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let n=e[1];e=e[0];let a=t.training==null?!1:t.training;0ta(e),rate:this.dropout,training:a,dropoutFunc:this.dropoutFunc})),0ta(n),rate:this.recurrentDropout,training:a,dropoutFunc:this.dropoutFunc}));let r,s=this.dropoutMask,i=this.recurrentDropoutMask;s!=null?r=sr(z(e,s),this.kernel.read()):r=sr(e,this.kernel.read()),this.bias!=null&&(r=Xa(r,this.bias.read())),i!=null&&(n=z(n,i));let o=Y(r,sr(n,this.recurrentKernel.read()));return this.activation!=null&&(o=this.activation.apply(o)),[o,o]})}getConfig(){let e=super.getConfig(),t={units:this.units,activation:rs(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),recurrentInitializer:Ct(this.recurrentInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:pt(this.kernelRegularizer),recurrentRegularizer:pt(this.recurrentRegularizer),biasRegularizer:pt(this.biasRegularizer),activityRegularizer:pt(this.activityRegularizer),kernelConstraint:qt(this.kernelConstraint),recurrentConstraint:qt(this.recurrentConstraint),biasConstraint:qt(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},e),t)}};Nf.className="SimpleRNNCell";ne.registerClass(Nf);var $w=class extends dr{constructor(e){e.cell=new Nf(e),super(e)}call(e,t){return P(()=>{this.cell.dropoutMask!=null&&(_e(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_e(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return new e(t)}};$w.className="SimpleRNN";ne.registerClass($w);var Cf=class extends Zc{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 V("GRUCell does not support reset_after parameter set to true.");this.units=e.units,Qt(this.units,"units"),this.activation=ss(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ss(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Tt(e.kernelRegularizer),this.recurrentRegularizer=Tt(e.recurrentRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.kernelConstraint=Kt(e.kernelConstraint),this.recurrentConstraint=Kt(e.recurrentConstraint),this.biasConstraint=Kt(e.biasConstraint),this.dropout=cl([1,as([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=cl([1,as([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Qe(e);let t=e[e.length-1];this.kernel=this.addWeight("kernel",[t,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return P(()=>{if(e=e,e.length!==2)throw new V(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training==null?!1:t.training,a=e[1];e=e[0],0ta(e),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0ta(a),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));let r=this.dropoutMask,s=this.recurrentDropoutMask,i,o,l;0{this.cell.dropoutMask!=null&&(_e(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_e(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Aw.className="GRU";ne.registerClass(Aw);var Jc=class extends Zc{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,Qt(this.units,"units"),this.activation=ss(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ss(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=Tt(e.kernelRegularizer),this.recurrentRegularizer=Tt(e.recurrentRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.kernelConstraint=Kt(e.kernelConstraint),this.recurrentConstraint=Kt(e.recurrentConstraint),this.biasConstraint=Kt(e.biasConstraint),this.dropout=cl([1,as([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=cl([1,as([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=Qe(e);let n=e[e.length-1];this.kernel=this.addWeight("kernel",[n,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let a;if(this.useBias){if(this.unitForgetBias){let r=this.biasInitializer,s=this.units;a=new(t=class extends Fa{apply(i,o){let l=r.apply([s]),u=new ff().apply([s]),p=r.apply([s*2]);return uk(uk(l,u),p)}},t.className="CustomInit",t)}else a=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,a,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return P(()=>{let n=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new V(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let a=e[1],r=e[2];e=e[0],0ta(e),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0ta(a),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));let s=this.dropoutMask,i=this.recurrentDropoutMask,o,l,u,p;0{this.cell.dropoutMask!=null&&(_e(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_e(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Fw.className="LSTM";ne.registerClass(Fw);var _f=class extends Zc{constructor(e){super(e),this.cells=e.cells}get stateSize(){let e=[];for(let t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return P(()=>{e=e;let n=e.slice(1),a=[];for(let i of this.cells.slice().reverse())Array.isArray(i.stateSize)?a.push(n.splice(0,i.stateSize.length)):a.push(n.splice(0,1));a.reverse();let r=[],s;for(let i=0;i{Xs(`RNNCell_${a}`,()=>{n.build(e),Array.isArray(n.stateSize)?t=n.stateSize[0]:t=n.stateSize,e=[e[0],t]})}),this.built=!0}getConfig(){let e=super.getConfig(),t=a=>({className:a.getClassName(),config:a.getConfig()}),n={cells:this.cells.map(t)};return Object.assign(Object.assign({},e),n)}static fromConfig(e,t,n={}){let a=[];for(let r of t.cells)a.push(Ua(r,n));return new e({cells:a})}get trainableWeights(){if(!this.trainable)return[];let e=[];for(let t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.cells)t.push(...n.trainableWeights);return t.concat(e)}return e}getWeights(){let e=[];for(let t of this.cells)e.push(...t.weights);return zb(e)}setWeights(e){let t=[];for(let n of this.cells){let a=n.weights.length,r=e.splice(a);for(let s=0;ss!=null?s(t(),n):KT(t(),n),o=()=>Hc(i,t,a);return!r||r<=1?Jt(o().clone()):Array(r).fill(void 0).map(o).map(l=>Jt(l.clone()))}var $U=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,a=Object.getOwnPropertySymbols(e);r{if(this.cell.dropoutMask!=null&&(_e(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_e(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new V("ConvRNN2D cell does not support constants");let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}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 P(()=>{let{stateSize:t}=this.cell,n=e.shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)],s=It(r);return Array.isArray(t)?Array(t.length).fill(s):[s]})}resetStates(e,t=!1){P(()=>{if(!this.stateful)throw new vr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)];if(n[0]==null)throw new V("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(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>It(r)):this.states_=[It(r)];else if(e==null)_e(this.states_),this.keptStates!=null&&(_e(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>It(r)):this.states_[0]=It(r);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new V(`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()):_e(this.states_);for(let s=0;sJt(s.clone()))})}computeSingleOutputShape(e){let{dataFormat:t,filters:n,kernelSize:a,padding:r,strides:s,dilationRate:i}=this.cell,o=t==="channelsFirst",l=e[o?3:2],u=e[o?4:3],p=Ga(l,a[0],r,s[0],i[0]),d=Ga(u,a[1],r,s[1],i[1]);return[...e.slice(0,2),...o?[n,p,d]:[p,d,n]]}};ON.className="ConvRNN2D";var Ef=class extends Jc{constructor(e){let{filters:t,kernelSize:n,strides:a,padding:r,dataFormat:s,dilationRate:i}=e;super(Object.assign(Object.assign({},e),{units:t})),this.filters=t,Qt(this.filters,"filters"),this.kernelSize=el(n,2,"kernelSize"),this.kernelSize.forEach(o=>Qt(o,"kernelSize")),this.strides=el(a||1,2,"strides"),this.strides.forEach(o=>Qt(o,"strides")),this.padding=r||"valid",ba(this.padding),this.dataFormat=s||"channelsLast",Rt(this.dataFormat),this.dilationRate=el(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>Qt(o,"dilationRate"))}build(e){var t;e=Qe(e);let n=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[n]==null)throw new V(`The channel dimension of the input should be defined. Found ${e[n]}`);let a=e[n],r=4,s=this.kernelSize.concat([a,this.filters*r]);this.kernel=this.addWeight("kernel",s,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let i=this.kernelSize.concat([this.filters,this.filters*r]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",i,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let o;if(this.unitForgetBias){let l=this.biasInitializer,u=this.filters;o=new(t=class extends Fa{apply(p,d){let c=l.apply([u]),h=Zn([u]),m=l.apply([u*2]);return Kv([c,h,m])}},t.className="CustomInit",t)}else o=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*r],null,o,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return P(()=>{if(e.length!==3)throw new V(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training||!1,a=e[0],r=e[1],s=e[2],i=4;0ta(a),rate:this.dropout,training:n,count:i,dropoutFunc:this.dropoutFunc}));let o=this.dropoutMask,l=(Z,J,ee)=>!J||!J[ee]?Z:z(J[ee],Z),u=l(a,o,0),p=l(a,o,1),d=l(a,o,2),c=l(a,o,3);0ta(r),rate:this.recurrentDropout,training:n,count:i,dropoutFunc:this.dropoutFunc}));let h=this.recurrentDropoutMask,m=l(r,h,0),f=l(r,h,1),g=l(r,h,2),y=l(r,h,3),b=3,[x,w,I,T]=zn(this.kernel.read(),i,b),[C,E,$,R]=this.useBias?zn(this.bias.read(),i):[null,null,null,null];u=this.inputConv(u,x,C,this.padding),p=this.inputConv(p,w,E,this.padding),d=this.inputConv(d,I,$,this.padding),c=this.inputConv(c,T,R,this.padding);let[F,S,M,B]=zn(this.recurrentKernel.read(),i,b);m=this.recurrentConv(m,F),f=this.recurrentConv(f,S),g=this.recurrentConv(g,M),y=this.recurrentConv(y,B);let U=this.recurrentActivation.apply(Y(u,m)),G=this.recurrentActivation.apply(Y(p,f)),q=Y(z(G,s),z(U,this.activation.apply(Y(d,g)))),K=z(this.recurrentActivation.apply(Y(c,y)),this.activation.apply(q));return[K,K,q]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=$U(e,["units"]),a={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),a)}inputConv(e,t,n,a){let r=At(e,t,this.strides,a||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?Xa(r,n,this.dataFormat):r}recurrentConv(e,t){return At(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Ef.className="ConvLSTM2DCell";ne.registerClass(Ef);var Dw=class extends ON{constructor(e){let t=new Ef(e);super(Object.assign(Object.assign({},e),{cell:t}))}static fromConfig(e,t){return new e(t)}};Dw.className="ConvLSTM2D";ne.registerClass(Dw);var $f=class extends Ge{constructor(e){super(e),this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(this.noiseShape==null)return this.noiseShape;let t=e.shape,n=[];for(let a=0;a{this.invokeCallHook(e,t);let n=Ne(e);if(0KT(n,this.rate,r,this.seed),()=>n,a)}return e})}getConfig(){let e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}};$f.className="Dropout";ne.registerClass($f);var Rw=class extends $f{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};Rw.className="SpatialDropout1D";ne.registerClass(Rw);var Mw=class extends Ge{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",e.batchInputShape==null&&e.inputShape==null&&e.inputDim!=null){let t=null;e.batchSize!=null&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,Qt(this.units,"units"),this.activation=ss(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Kt(e.kernelConstraint),this.biasConstraint=Kt(e.biasConstraint),this.kernelRegularizer=Tt(e.kernelRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.activityRegularizer=Tt(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=Qe(e);let t=e[e.length-1];this.kernel==null&&(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){e=Qe(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e),a=BT(this.activation.getClassName()),r;return a!=null?r=sr(n,this.kernel.read(),a,this.bias?this.bias.read():null):(r=sr(n,this.kernel.read()),this.bias!=null&&(r=Xa(r,this.bias.read())),this.activation!=null&&(r=this.activation.apply(r))),r})}getConfig(){let e={units:this.units,activation:rs(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:pt(this.kernelRegularizer),biasRegularizer:pt(this.biasRegularizer),activityRegularizer:pt(this.activityRegularizer),kernelConstraint:qt(this.kernelConstraint),biasConstraint:qt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Mw.className="Dense";ne.registerClass(Mw);var Pw=class extends Ge{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=Qe(e);for(let t of e.slice(1))if(t==null)throw new V(`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],Qr(e,1)]}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Ne(e);return this.activation.apply(n)})}getConfig(){let e={activation:rs(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};Ow.className="Activation";ne.registerClass(Ow);var Lw=class extends Ge{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 P(()=>(e=Ne(e),U4(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};Lw.className="RepeatVector";ne.registerClass(Lw);var zw=class extends Ge{constructor(e){super(e),this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Ne(e),a=n.shape,r=a.slice(0,1).concat(this.fixUnknownDimension(a.slice(1),this.targetShape));return W(n,r)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};zw.className="Reshape";ne.registerClass(zw);var Ww=class extends Ge{constructor(e){if(super(e),e.dims==null)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.`);let t=Ha(1,e.dims.length+1);if(!v.arraysEqual(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 zt({ndim:this.dims.length+1})]}computeOutputShape(e){e=Qe(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return Ee(Ne(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};Ww.className="Permute";ne.registerClass(Ww);var Bw=class extends Ge{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null?this.maskValue=e.maskValue==null?0:e.maskValue:this.maskValue=0}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){let n=Ne(e),a=-1;return qp(ii(n,this.maskValue),a)}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e),a=-1,r=!0,s=qp(ii(n,this.maskValue),a,r);return z(n,le(s,n.dtype))})}};Bw.className="Masking";ne.registerClass(Bw);var Vw=class extends Ge{constructor(e){if(super(e),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",e.batchInputShape==null&&e.inputShape==null){let t=null;e.batchSize!=null&&(t=e.batchSize),e.inputLength==null?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(yt(e.inputLength))}this.inputDim=e.inputDim,Qt(this.inputDim,"inputDim"),this.outputDim=e.outputDim,Qt(this.outputDim,"outputDim"),this.embeddingsInitializer=St(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Tt(e.embeddingsRegularizer),this.activityRegularizer=Tt(e.activityRegularizer),this.embeddingsConstraint=Kt(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 P(()=>this.maskZero?(e=Ne(e),ii(e,qe(e))):null)}computeOutputShape(e){if(e=Qe(e),this.inputLength==null)return[...e,this.outputDim];let t=yt(this.inputLength);if(t.length!==e.length-1)throw new V(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let n=0;for(let a=0;a{this.invokeCallHook(e,t);let n=Ne(e);n.dtype!=="int32"&&(n=yo(n,"int32"));let a=qT(this.embeddings.read(),W(n,[n.size]));return W(a,Qe(this.computeOutputShape(n.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Ct(this.embeddingsInitializer),embeddingsRegularizer:pt(this.embeddingsRegularizer),activityRegularizer:pt(this.activityRegularizer),embeddingsConstraint:qt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};Vw.className="Embedding";ne.registerClass(Vw);var xo=class extends Ge{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new Re}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new V(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let n=e[0]==null?null:e[0].slice(1);for(let r=1;rr.length);e.indexOf(null)===-1&&Jr(a).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return P(()=>{if(e=e,this.reshapeRequired){let n=[],a=e.map(r=>r.rank);if(a.indexOf(null)===-1){let r=as(a);for(let s of e){let i=s.rank;for(let o=0;o1){let u=Ha(1,l).concat([0]);n.push(Ee(o,u)),r=!0}else n.push(o)}let s=this.mergeFunction(n),i=s.rank;if(r){if(i==null){let o=s.shape,l=o.length,u=o[l-1],p=[u].concat(o.slice(0,o.length-1));s=W(Ee(W(s,[-1,u]),[1,0]),p)}else if(i>1){let o=[i-1].concat(Ha(0,i-1));s=Ee(s,o)}}return s}}else return this.mergeFunction(e)})}computeOutputShape(e){e=e;let t;e[0]==null?t=null:t=e[0].slice(1);for(let a=1;a{if(t==null)return null;if(!Array.isArray(t))throw new V("`mask` should be an Array");if(!Array.isArray(e))throw new V("`inputs` should be an Array");if(t.length!==e.length)throw new V(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every(a=>a==null))return null;t=t.map(a=>a==null?a:Zt(a,0));let n=t[0];for(let a=1;a{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 V("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return P(()=>Kv(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new V("A `Concatenate` layer should be called on a list of inputs.");let t=e,n=t[0].slice(),a=this.axis<0?n.length+this.axis:this.axis;for(let r of t.slice(1)){if(n[a]==null||r[a]==null){n[a]=null;break}n[a]+=r[a]}return n}computeMask(e,t){if(t==null)return null;if(!Array.isArray(t))throw new V("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new V("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new V(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return P(()=>{let n=!0;if(t.forEach(s=>{if(s!=null){n=!1;return}}),n)return null;let a=[];for(let s=0;s3||t.shape.length>3)throw new Re("batchDot is not implemented for tensors of 4D or higher rank yet");if(v.assert(e.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`),v.assert(e.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof n=="number"&&(n=[n,n]),e.dtype==="complex64"||t.dtype==="complex64")throw new Re("batchDot is not implemented for complex64-type Tensors yet.");let a=e.shape.length,r=t.shape.length;n==null&&(n=[a-1,r-2]);let s=n;return P(()=>{let i;if(a>r){i=a-r;let l=[];for(let u=0;ua){i=r-a;let l=[];for(let u=0;u0){let l;a>r?l=a+r-3:l=a-1;let u=[];for(let p=l;p"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0],n=e[1];if(t.length>3||n.length>3)throw new Re("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);if(t[a[0]]!==n[a[1]])throw new V(`Dimension incompatibility: ${t[a[0]]} !== ${n[a[1]]}`)}mergeFunction(e){if(e.length!==2)throw new V(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t=e[0],n=e[1],a;return Array.isArray(this.axes)?a=this.axes.map((r,s)=>Sp(r,e[s].shape.length)):a=[Sp(this.axes,t.shape.length),Sp(this.axes,n.shape.length)],this.normalize&&(t=Eh(t,a[0]),n=Eh(n,a[1])),AU(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[Sp(this.axes,e.length),Sp(this.axes,t.length)],n}computeOutputShape(e){v.assert(Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0].slice(),n=e[1].slice();if(t.length>3||n.length>3)throw new Re("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);t.splice(a[0],1),n.splice(a[1],1),n.splice(0,1);let r=t.concat(n);return r.length===1&&r.push(1),r}computeMask(e,t){return null}getConfig(){let e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}};Xw.className="Dot";ne.registerClass(Xw);var Yw=class extends Ge{constructor(e){super(e),this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e);return Hc(()=>Y(mf(n.shape,0,this.stddev),n),()=>n,t.training||!1)})}};Yw.className="GaussianNoise";ne.registerClass(Yw);var Zw=class extends Ge{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e);return this.rate>0&&this.rate<1?Hc(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return z(n,mf(n.shape,1,a))},()=>n,t.training||!1):n})}};Zw.className="GaussianDropout";ne.registerClass(Zw);var Jw=class extends Ge{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Ne(e).shape}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return P(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(e);return Hc(()=>{let a=Ne(e),r=1.6732632423543772,s=1.0507009873554805,i=-r*s,o=Er(Au(n),this.rate);o=yo(o,"float32");let l=((1-this.rate)*(1+this.rate*i**2))**-.5,u=-l*i*this.rate,p=Y(z(a,o),z(Y(o,-1),i));return Y(z(p,l),u)},()=>Ne(e),t.training||!1)}return e})}};Jw.className="AlphaDropout";ne.registerClass(Jw);function Zp(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=Zx(e,t,n,a,r,s);else if(e.rank===3)i=Jx(e,t,n,a,r,s);else if(e.rank===4)i=Qx(e,t,n,a,r,s);else throw new Re(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function FU(e,t,n,a,r=.001){return P(()=>{let s=Mc(e,a),i=s.mean,o=s.variance;return[Zp(e,i,o,n,t,r),i,o]})}function DU(e,t,n,a,r=.001){return P(()=>{let s=Mc(e,a),i=s.mean,o=s.variance,l=[];for(let h of Ha(0,e.rank))a.indexOf(h)!==-1?l.push(1):l.push(e.shape[h]);let u=W(i,l),p=W(o,l),d=t==null?null:W(t,l),c=n==null?null:W(n,l);return[Zp(e,u,p,c,d,r),i,o]})}function RU(e,t,n,a,r=.001){return v.arraysEqual(a.slice().sort(),Ha(0,e.rank-1))?FU(e,t,n,a,r):DU(e,t,n,a,r)}var Qw=class extends Ge{constructor(e){e==null&&(e={}),super(e),this.supportsMasking=!0,this.axis=e.axis==null?-1:e.axis,this.momentum=e.momentum==null?.99:e.momentum,this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=St(e.betaInitializer||"zeros"),this.gammaInitializer=St(e.gammaInitializer||"ones"),this.movingMeanInitializer=St(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=St(e.movingVarianceInitializer||"ones"),this.betaConstraint=Kt(e.betaConstraint),this.gammaConstraint=Kt(e.gammaConstraint),this.betaRegularizer=Tt(e.betaRegularizer),this.gammaRegularizer=Tt(e.gammaRegularizer)}build(e){e=Qe(e);let t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(n==null)throw new V(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new zt({ndim:e.length,axes:{[t]:n}})];let a=[n];this.scale&&(this.gamma=this.addWeight("gamma",a,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",a,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",a,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",a,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return P(()=>{let n=t.training==null?!1:t.training,a=Ne(e),r=a.shape,s=r.length,i=Ha(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=oi(1,s);l[o]=r[o];let u=i.slice();u.sort();let p=!v.arraysEqual(u,Ha(0,s).slice(0,s-1)),d=()=>{if(p){let g=W(this.movingMean.read(),l),y=W(this.movingVariance.read(),l),b=this.center?W(this.beta.read(),l):null,x=this.scale?W(this.gamma.read(),l):null;return Zp(a,g,y,b,x,this.epsilon)}else return Zp(a,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!n)return d();let[c,h,m]=RU(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,y,b)=>{P(()=>{let x=1-b,w=g.read(),I=z(pe(w,y),x);g.write(pe(w,I))})};return f(this.movingMean,h,this.momentum),f(this.movingVariance,m,this.momentum),c})}getConfig(){let e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Ct(this.betaInitializer),gammaInitializer:Ct(this.gammaInitializer),movingMeanInitializer:Ct(this.movingMeanInitializer),movingVarianceInitializer:Ct(this.movingVarianceInitializer),betaRegularizer:pt(this.betaRegularizer),gammaRegularizer:pt(this.gammaRegularizer),betaConstraint:qt(this.betaConstraint),gammaConstraint:qt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Qw.className="BatchNormalization";ne.registerClass(Qw);var e0=class extends Ge{constructor(e){if(e==null&&(e={}),super(e),this.axis=e.axis==null?-1:e.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let t of this.axis)if(!Number.isInteger(t))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=St(e.betaInitializer||"zeros"),this.gammaInitializer=St(e.gammaInitializer||"ones"),this.betaRegularizer=Tt(e.betaRegularizer),this.gammaRegularizer=Tt(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=Qe(e);let t=e.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let r=0;r=t)throw new Error(`Invalid axis: ${r}`);if(this.axis.length!==Jr(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(r=>e[r]),a=!0;this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,a):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,a):this.beta=null,this.built=!0}call(e,t){let n=Ne(e),a=n.shape,r=a.length;return P(()=>{let{mean:s,variance:i}=Mc(n,this.axis,!0),o=oi(1,r);for(let h of this.axis)o[h]=a[h];let l=h=>h!=null&&h.shape.length!==r?W(h,o):h,u=this.scale?l(this.gamma.read()):null,p=this.center?l(this.beta.read()):null,d=[],c=[];for(let h=0;h{if(e.rank!==4)throw new V(`temporalPadding expects input tensor to be 4-D, but received a ${e.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new V("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(n==null&&(n=ja()),n!=="channelsLast"&&n!=="channelsFirst")throw new V(`Unknown data format: ${n}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let a;return n==="channelsFirst"?a=[[0,0],[0,0],t[0],t[1]]:a=[[0,0],t[0],t[1],[0,0]],ya(e,a)})}var t0=class extends Ge{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?ja():e.dataFormat,e.padding==null)this.padding=[[1,1],[1,1]];else if(typeof e.padding=="number")this.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,e.padding.length!==2)throw new V(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${e.padding.length} array.`);let t,n;if(typeof e.padding[0]=="number")t=[e.padding[0],e.padding[0]],n=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,e.padding[0].length!==2)throw new V(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${e.padding[0].length} array.`);if(t=e.padding[0],e.padding[1].length!==2)throw new V(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${e.padding[1].length} array.`);n=e.padding[1]}this.padding=[t,n]}this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){e=Qe(e);let t,n;return this.dataFormat==="channelsFirst"?(e[2]!=null&&e[2]>=0?t=e[2]+this.padding[0][0]+this.padding[0][1]:t=null,e[3]!=null&&e[3]>=0?n=e[3]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],e[1],t,n]):(e[1]!=null&&e[1]>=0?t=e[1]+this.padding[0][0]+this.padding[0][1]:t=null,e[2]!=null&&e[2]>=0?n=e[2]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],t,n,e[3]])}call(e,t){return P(()=>MU(Ne(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};t0.className="ZeroPadding2D";ne.registerClass(t0);function Af(e,t,n,a,r,s){return P(()=>{Rt(r),UT(s),ba(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=ja()),s==null&&(s="max"),e=kw(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Dt(e,t,n,o):i=ga(e,t,n,o),r==="channelsFirst"&&(i=Ee(i,[0,3,1,2])),i})}function LN(e,t,n,a,r,s){return P(()=>{Rt(r),UT(s),ba(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=ja()),s==null&&(s="max"),e=DN(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Sv(e,t,n,o):i=Yx(e,t,n,o),r==="channelsFirst"&&(i=Ee(i,[0,4,1,2,3])),i})}var zN=class extends Ge{constructor(e){if(e.poolSize==null&&(e.poolSize=2),super(e),typeof e.poolSize=="number")this.poolSize=[e.poolSize];else if(Array.isArray(e.poolSize)&&e.poolSize.length===1&&typeof e.poolSize[0]=="number")this.poolSize=e.poolSize;else throw new V(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(Qt(this.poolSize,"poolSize"),e.strides==null)this.strides=this.poolSize;else if(typeof e.strides=="number")this.strides=[e.strides];else if(Array.isArray(e.strides)&&e.strides.length===1&&typeof e.strides[0]=="number")this.strides=e.strides;else throw new V(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);Qt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,ba(this.padding),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){e=Qe(e);let t=Ga(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return P(()=>{this.invokeCallHook(e,t),e=Uc(Ne(e),2);let n=this.poolingFunction(Ne(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return ws(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},n0=class extends zN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ba(a),Af(e,t,n,a,r,"max")}};n0.className="MaxPooling1D";ne.registerClass(n0);var a0=class extends zN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ba(a),Af(e,t,n,a,r,"avg")}};a0.className="AveragePooling1D";ne.registerClass(a0);var WN=class extends Ge{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==2)throw new V(`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];Qt(this.poolSize,"poolSize"),Qt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),ba(this.padding),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){e=Qe(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=Ga(t,this.poolSize[0],this.padding,this.strides[0]),n=Ga(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n]:[e[0],t,n,e[3]]}call(e,t){return P(()=>(this.invokeCallHook(e,t),this.poolingFunction(Ne(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},r0=class extends WN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ba(a),Af(e,t,n,a,r,"max")}};r0.className="MaxPooling2D";ne.registerClass(r0);var s0=class extends WN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ba(a),Af(e,t,n,a,r,"avg")}};s0.className="AveragePooling2D";ne.registerClass(s0);var BN=class extends Ge{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==3)throw new V(`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];Qt(this.poolSize,"poolSize"),Qt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),ba(this.padding),this.inputSpec=[new zt({ndim:5})]}computeOutputShape(e){e=Qe(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[4]:e[3];return t=Ga(t,this.poolSize[0],this.padding,this.strides[0]),n=Ga(n,this.poolSize[1],this.padding,this.strides[1]),a=Ga(a,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n,a]:[e[0],t,n,a,e[4]]}call(e,t){return P(()=>(this.invokeCallHook(e,t),this.poolingFunction(Ne(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},i0=class extends BN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ba(a),LN(e,t,n,a,r,"max")}};i0.className="MaxPooling3D";ne.registerClass(i0);var o0=class extends BN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ba(a),LN(e,t,n,a,r,"avg")}};o0.className="AveragePooling3D";ne.registerClass(o0);var VN=class extends Ge{constructor(e){super(e),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new Re}},l0=class extends VN{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Ne(e);return Nt(n,1)})}};l0.className="GlobalAveragePooling1D";ne.registerClass(l0);var u0=class extends VN{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Ne(e);return ha(n,1)})}};u0.className="GlobalMaxPooling1D";ne.registerClass(u0);var UN=class extends Ge{constructor(e){super(e),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new Re}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},p0=class extends UN{call(e,t){return P(()=>{let n=Ne(e);return this.dataFormat==="channelsLast"?Nt(n,[1,2]):Nt(n,[2,3])})}};p0.className="GlobalAveragePooling2D";ne.registerClass(p0);var c0=class extends UN{call(e,t){return P(()=>{let n=Ne(e);return this.dataFormat==="channelsLast"?ha(n,[1,2]):ha(n,[2,3])})}};c0.className="GlobalMaxPooling2D";ne.registerClass(c0);var GN=class extends Ge{constructor(e){super(e),this.layer=e.layer}build(e){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(e){this.layer!=null&&(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(){let e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,n={}){let a=t.layer,r=Ua(a,n);delete t.layer;let s={layer:r};return Object.assign(s,t),new e(s)}},d0=class extends GN{constructor(e){super(e),this.supportsMasking=!0}build(e){if(e=Qe(e),e.length<3)throw new V(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];let t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){e=Qe(e);let t=[e[0]].concat(e.slice(2)),n=this.layer.computeOutputShape(t),a=e[1];return[n[0],a].concat(n.slice(1))}call(e,t){return P(()=>(e=Ne(e),PN((n,a)=>[Ne(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};d0.className="TimeDistributed";ne.registerClass(d0);function PU(e){go(L4,"BidirectionalMergeMode",e)}var OU="concat",h0=class extends GN{constructor(e){super(e);let t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=Ua(n),t.goBackwards=t.goBackwards!==!0;let a={};if(a.className=e.layer.getClassName(),a.config=t,this.backwardLayer=Ua(a),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?OU:e.mergeMode,PU(this.mergeMode),e.weights)throw new Re("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,this.forwardLayer!=null&&(this.forwardLayer.trainable=e),this.backwardLayer!=null&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){let 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=this.forwardLayer.computeOutputShape(e);Array.isArray(t)&&Array.isArray(t[0])||(t=[t]),t=t;let n,a,r;return this.returnState&&(r=t.slice(1)),n=t[0],n=n,this.mergeMode==="concat"?(n[n.length-1]*=2,a=[n]):this.mergeMode==null?a=[n,n.slice()]:a=[n],this.returnState?this.mergeMode==null?a.concat(r).concat(r.slice()):[n].concat(r).concat(r.slice()):On(a)}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=MN(e,n,a,this.numConstants);if(e=r.inputs,n=r.initialState,a=r.constants,Array.isArray(e)&&(n=e.slice(1),e=e[0]),(n==null||n.length===0)&&a==null)return super.apply(e,t);let s=[],i=[];if(n!=null){let l=n.length;if(l%2>0)throw new V("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);let u=n.map(p=>new zt({shape:p.shape}));this.forwardLayer.stateSpec=u.slice(0,l/2),this.backwardLayer.stateSpec=u.slice(l/2),i.push(...u)}if(a!=null)throw new Re("Support for constants in Bidirectional layers is not implemented yet.");let o=s[0]instanceof Ba;for(let l of s)if(l instanceof Ba!==o)throw new V("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(o){let l=[e].concat(s),u=this.inputSpec.concat(i),p=this.inputSpec;this.inputSpec=u;let d=super.apply(l,t);return this.inputSpec=p,d}else return super.apply(e,t)}call(e,t){return P(()=>{let n=t.initialState,a,r;if(n==null)a=this.forwardLayer.call(e,t),r=this.backwardLayer.call(e,t);else{let o=n.slice(0,n.length/2),l=n.slice(n.length/2);a=this.forwardLayer.call(e,Object.assign(t,{initialState:o})),r=this.backwardLayer.call(e,Object.assign(t,{initialState:l}))}let s;this.returnState&&(Array.isArray(a)&&(s=a.slice(1).concat(r.slice(1))),a=a[0],r=r[0]),this.returnSequences&&(r=fa(r,1));let i;return this.mergeMode==="concat"?i=Kv([a,r]):this.mergeMode==="sum"?i=Y(a,r):this.mergeMode==="ave"?i=z(.5,Y(a,r)):this.mergeMode==="mul"?i=z(a,r):this.mergeMode==null&&(i=[a,r]),this.returnState?this.mergeMode==null?i.concat(s):[i].concat(s):i})}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Xs(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),Xs(this.backwardLayer.name,()=>{this.backwardLayer.build(e)}),this.built=!0}computeMask(e,t){Array.isArray(t)&&(t=t[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[t,t]:n=t:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let a=this.forwardLayer.states.map(r=>null);return Array.isArray(n)?n.concat(a).concat(a):[n].concat(a).concat(a)}else 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),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(e),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){let e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){let n=Ua(t.layer);if(delete t.layer,t.numConstants!=null)throw new Re("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};h0.className="Bidirectional";ne.registerClass(h0);var m0=class extends Ge{constructor(e){super(e),this.scale=e.scale,e.offset?this.offset=e.offset:this.offset=0}getConfig(){let e={scale:this.scale,offset:this.offset},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return P(()=>(e=Ne(e),e.dtype!=="float32"&&(e=yo(e,"float32")),Y(z(e,this.scale),this.offset)))}};m0.className="Rescaling";ne.registerClass(m0);var LU=["bilinear","nearest"],Nk=new Set(LU),f0=class extends Ge{constructor(e){if(super(e),this.height=e.height,this.width=e.width,e.interpolation)if(Nk.has(e.interpolation))this.interpolation=e.interpolation;else throw new V(`Invalid interpolation parameter: ${e.interpolation} is not implemented`);else this.interpolation="bilinear";this.cropToAspectRatio=Boolean(e.cropToAspectRatio)}computeOutputShape(e){e=Qe(e);let t=e[2];return[this.height,this.width,t]}getConfig(){let e={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return P(()=>{let n=[this.height,this.width];if(this.interpolation==="bilinear")return za.resizeBilinear(e,n,!this.cropToAspectRatio);if(this.interpolation==="nearest")return za.resizeNearestNeighbor(e,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...Nk]} are supported`)})}};f0.className="Resizing";ne.registerClass(f0);function zU(e,t,n,a){let r=Ne(e);if(r.dtype!=="int32"&&(r=yo(r,"int32")),t==="int")return r;let s=r.shape;if(r.rank===0&&(r=Zt(r,-1)),t==="oneHot"&&r.shape[r.shape.length-1]!==1&&(r=Zt(r,-1)),r.rank>2)throw new V(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${s} which would result in output rank ${r.rank}.`);let i=["multiHot","oneHot"].includes(t),o=r,l;if(typeof a!="undefined"&&t==="count"?l=Sh(o,a,n,i):l=Sh(o,[],n,i),t!=="tfIdf")return l;if(a)return z(l,a);throw new V("When outputMode is 'tfIdf', weights must be provided.")}var g0=class extends Ge{constructor(e){super(e),this.numTokens=e.numTokens,e.outputMode?this.outputMode=e.outputMode:this.outputMode="multiHot"}getConfig(){let e={numTokens:this.numTokens,outputMode:this.outputMode},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){return e=Qe(e),e==null?[this.numTokens]:this.outputMode==="oneHot"&&e[e.length-1]!==1?(e.push(this.numTokens),e):(e[e.length-1]=this.numTokens,e)}call(e,t){return P(()=>{e=Ne(e),e.dtype!=="int32"&&(e=yo(e,"int32"));let n;if(typeof t.countWeights!="undefined"){if(this.outputMode!=="count")throw new V(`countWeights is not used when outputMode !== count. + Received countWeights=${t.countWeights}`);n=Ne(t.countWeights)}let a=ha(e),r=il(e),s=Nn(this.numTokens,a).bufferSync().get(0),i=Er(r,0).bufferSync().get(0);if(!(s&&i))throw new V(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return zU(e,this.outputMode,this.numTokens,n)})}};g0.className="CategoryEncoding";ne.registerClass(g0);function WU(e){return new Du(e)}function BU(e){return new xw(e)}function VU(e){return new gw(e)}function UU(e){return new yw(e)}function GU(e){return new bw(e)}function HU(e){return new ww(e)}function jU(e){return new vw(e)}function qU(e){return new Tf(e)}function KU(e){return new Xc(e)}function XU(e){return new Sw(e)}function YU(e){return new Yc(e)}function ZU(e){return new Tw(e)}function JU(e){return new Nw(e)}function QU(e){return new Cw(e)}function eG(e){return new _w(e)}function tG(e){return new Ew(e)}function nG(e){return new Ow(e)}function aG(e){return new Mw(e)}function rG(e){return new $f(e)}function sG(e){return new Rw(e)}function iG(e){return new Pw(e)}function oG(e){return new Lw(e)}function lG(e){return new zw(e)}function uG(e){return new Ww(e)}function pG(e){return new Vw(e)}function cG(e){return new Uw(e)}function dG(e){return new Hw(e)}function hG(e){return new Kw(e)}function mG(e){return new jw(e)}function fG(e){return new qw(e)}function gG(e){return new Gw(e)}function yG(e){return new Xw(e)}function bG(e){return new Qw(e)}function xG(e){return new e0(e)}function vG(e){return new t0(e)}function y0(e){return new a0(e)}function wG(e){return y0(e)}function kG(e){return y0(e)}function b0(e){return new s0(e)}function IG(e){return b0(e)}function SG(e){return b0(e)}function x0(e){return new o0(e)}function TG(e){return x0(e)}function NG(e){return x0(e)}function CG(e){return new l0(e)}function _G(e){return new p0(e)}function HN(e){return new u0(e)}function jN(e){return new c0(e)}function qN(e){return new n0(e)}function KN(e){return new r0(e)}function EG(e){return new i0(e)}function $G(e){return new Aw(e)}function AG(e){return new Cf(e)}function FG(e){return new Fw(e)}function DG(e){return new Jc(e)}function RG(e){return new $w(e)}function MG(e){return new Nf(e)}function PG(e){return new Dw(e)}function OG(e){return new Ef(e)}function LG(e){return new dr(e)}function zG(e){return new _f(e)}function WG(e){return new h0(e)}function BG(e){return new d0(e)}var VG=HN,UG=jN,GG=qN,HG=KN;function jG(e){return new Yw(e)}function qG(e){return new Zw(e)}function KG(e){return new Jw(e)}function XG(e){return new Bw(e)}function YG(e){return new m0(e)}function ZG(e){return new f0(e)}function JG(e){return new g0(e)}var XN={};$e(XN,{MAPE:()=>uH,MSE:()=>dH,binaryAccuracy:()=>QG,binaryCrossentropy:()=>eH,categoricalAccuracy:()=>nH,categoricalCrossentropy:()=>aH,cosineProximity:()=>iH,mape:()=>pH,meanAbsoluteError:()=>oH,meanAbsolutePercentageError:()=>lH,meanSquaredError:()=>cH,mse:()=>hH,precision:()=>rH,recall:()=>sH,sparseCategoricalAccuracy:()=>tH});function QG(e,t){return uw(e,t)}function eH(e,t){return uN(e,t)}function tH(e,t){return pN(e,t)}function nH(e,t){return pw(e,t)}function aH(e,t){return cw(e,t)}function rH(e,t){return lN(e,t)}function sH(e,t){return VV(e,t)}function iH(e,t){return lw(e,t)}function oH(e,t){return If(e,t)}function lH(e,t){return Ru(e,t)}function uH(e,t){return Ru(e,t)}function pH(e,t){return Ru(e,t)}function cH(e,t){return bo(e,t)}function dH(e,t){return bo(e,t)}function hH(e,t){return bo(e,t)}var YN={};$e(YN,{modelFromJSON:()=>bU});var ZN={};$e(ZN,{l1:()=>fH,l1l2:()=>mH,l2:()=>gH});function mH(e){return new qc(e)}function fH(e){return TU(e)}function gH(e){return NU(e)}var JN=class extends dl{constructor(){super(...arguments),this.model=null}setModel(e){if(!(e instanceof Nr))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function Yd(e,t){return et}var QN=class extends JN{constructor(e){if(super(),e==null&&(e={}),e.restoreBestWeights)throw new Re("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,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=Yd:this.mode==="max"?this.monitorFunc=Ck:this.monitor.indexOf("acc")!==-1?this.monitorFunc=Ck:this.monitorFunc=Yd,this.monitorFunc===Yd&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Yd?1/0:-1/0}async onEpochEnd(e,t){await jr(t);let n=this.getMonitorValue(t);n!=null&&(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){e==null&&(e={});let t=e[this.monitor];return t==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}};function yH(e){return new QN(e)}var bH={earlyStopping:yH},xH=H();xH.registerFlag("KEEP_INTERMEDIATE_TENSORS",()=>!1,e=>{e&&console.warn("Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.")});var Sa;(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_QINT16=15]="DT_QINT16",e[e.DT_QUINT16=16]="DT_QUINT16",e[e.DT_UINT16=17]="DT_UINT16",e[e.DT_COMPLEX128=18]="DT_COMPLEX128",e[e.DT_HALF=19]="DT_HALF",e[e.DT_RESOURCE=20]="DT_RESOURCE",e[e.DT_VARIANT=21]="DT_VARIANT",e[e.DT_UINT32=22]="DT_UINT32",e[e.DT_UINT64=23]="DT_UINT64",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",e[e.DT_QINT16_REF=115]="DT_QINT16_REF",e[e.DT_QUINT16_REF=116]="DT_QUINT16_REF",e[e.DT_UINT16_REF=117]="DT_UINT16_REF",e[e.DT_COMPLEX128_REF=118]="DT_COMPLEX128_REF",e[e.DT_HALF_REF=119]="DT_HALF_REF",e[e.DT_RESOURCE_REF=120]="DT_RESOURCE_REF",e[e.DT_VARIANT_REF=121]="DT_VARIANT_REF",e[e.DT_UINT32_REF=122]="DT_UINT32_REF",e[e.DT_UINT64_REF=123]="DT_UINT64_REF"})(Sa||(Sa={}));var _k;(function(e){let t;(function(n){n[n.LEGACY=0]="LEGACY",n[n.V1=1]="V1",n[n.V2=2]="V2"})(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))})(_k||(_k={}));var v0={};function vH(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};v0[e]=n}function e2(e){return v0[e]}function wH(e){delete v0[e]}function k(e,t,n,a,r){let s=t.inputParams[e];if(s&&s.inputIndexStart!==void 0){let o=s.inputIndexStart,l=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?o+1:s.inputIndexEnd;if(s.type==="tensor")return vn(t.inputNames[s.inputIndexStart],n,a,r);if(s.type==="tensors")return t.inputNames.slice(o,l).map(d=>vn(d,n,a,r));let u=vn(t.inputNames.slice(o)[0],n,a,r),p=u.dataSync();return s.type==="number"?p[0]:v.toNestedArray(u.shape,p)}let i=t.attrParams[e];return i&&i.value}function vn(e,t,n,a){let[r,s]=Xn(e);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[Rh(r,o)]);return i!==void 0?t[Rh(r,i)][s]:void 0}function kH(e,t,n){return t[Rh(e,n.currentContextId)]}function ar(e,t){let[n,a,r]=Xn(e);return[Rh(n,t&&t.currentContextId),a,r]}function Rh(e,t){return t?`${e}-${t}`:e}function Xn(e){let t=e.split(":");if(t.length===1)return[e,0,void 0];let n=t[0],a=t.length===3?t[1]:void 0,r=Number(t[t.length-1]);return[n,r,a]}function sh(e,t,n){let a=k("pad",e,t,n);if(a==="explicit"){a=k("explicitPaddings",e,t,n);let r=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)r[s][0]=a[s*2],r[s][1]=a[s*2+1];return r}return a}function kr(e){return e.kept?e:rr(e)}var t2={};$e(t2,{json:()=>IH});var IH=[{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}]}],n2={};$e(n2,{json:()=>SH});var SH=[{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}]},{tfOpName:"IsNan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],a2={};$e(a2,{json:()=>TH});var TH=[{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:"TensorListConcatV2",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"}]},{tfOpName:"TensorListLength",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}]},{tfOpName:"TensorListResize",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"size",type:"number"}]}],r2={};$e(r2,{json:()=>NH});var NH=[{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",defaultValue:.2}]},{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"}]}],s2={};$e(s2,{json:()=>CH});var CH=[{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"}]},{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:"RandomStandardNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"seed",name:"seed",type:"number",defaultValue:0},{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:"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"}]}],i2={};$e(i2,{json:()=>_H});var _H=[{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}]}],o2={};$e(o2,{json:()=>EH});var EH=[{tfOpName:"LowerBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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:"UpperBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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"}]}],l2={};$e(l2,{json:()=>$H});var $H=[{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"}]}],u2={};$e(u2,{json:()=>AH});var AH=[{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"}]}],p2={};$e(p2,{json:()=>FH});var FH=[{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"}]},{tfOpName:"ImageProjectiveTransformV3",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"transforms",type:"tensor"},{start:2,name:"outputShape",type:"number[]"},{start:3,name:"fillValue",type:"number"}],attrs:[{tfName:"interpolation",name:"interpolation",type:"string"},{tfName:"fill_mode",name:"fillMode",type:"string"}]}],c2={};$e(c2,{json:()=>DH});var DH=[{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}]}],d2={};$e(d2,{json:()=>RH});var RH=[{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:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2},{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}]},{tfOpName:"Einsum",category:"matrices",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"equation",name:"equation",type:"string"},{tfName:"N",name:"n",type:"number",defaultValue:2},{tfName:"T",name:"dtype",type:"dtype"}]}],h2={};$e(h2,{json:()=>MH});var MH=[{tfOpName:"EuclideanNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",defaultValue:!1}]},{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}]}],m2={};$e(m2,{json:()=>PH});var PH=[{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:"Cumprod",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"}]},{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"}]}],f2={};$e(f2,{json:()=>OH});var OH=[{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}]}],g2={};$e(g2,{json:()=>LH});var LH=[{tfOpName:"SparseFillEmptyRows",category:"sparse",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"denseShape",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}]},{tfOpName:"SparseReshape",category:"sparse",inputs:[{start:0,name:"inputIndices",type:"tensor"},{start:1,name:"inputShape",type:"tensor"},{start:2,name:"newShape",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SparseSegmentMean",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]},{tfOpName:"SparseSegmentSum",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]}],y2={};$e(y2,{json:()=>zH});var zH=[{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}]}],b2={};$e(b2,{json:()=>WH});var WH=[{tfOpName:"StringNGrams",category:"string",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"dataSplits",type:"tensor"}],attrs:[{tfName:"separator",name:"separator",type:"string"},{tfName:"ngram_widths",name:"nGramWidths",type:"number[]"},{tfName:"left_pad",name:"leftPad",type:"string"},{tfName:"right_pad",name:"rightPad",type:"string"},{tfName:"pad_width",name:"padWidth",type:"number"},{tfName:"preserve_short_sequences",name:"preserveShortSequences",type:"bool"}],outputs:["ngrams","ngrams_splits"]},{tfOpName:"StringSplit",category:"string",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"delimiter",type:"tensor"}],attrs:[{tfName:"skip_empty",name:"skipEmpty",type:"bool"}],outputs:["indices","values","shape"]},{tfOpName:"StringToHashBucketFast",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"num_buckets",name:"numBuckets",type:"number"}]}],x2={};$e(x2,{json:()=>BH});var BH=[{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:[]},{tfOpName:"BroadcastArgs",category:"transformation",inputs:[{start:0,name:"s0",type:"tensor"},{start:1,name:"s1",type:"tensor"}],attrs:[]}],Ek=class{constructor(){let e=[t2,n2,a2,r2,s2,i2,o2,l2,u2,p2,c2,d2,h2,m2,f2,g2,y2,b2,x2],t=[].concat(...e.map(n=>n.json));this.opMappers=t.reduce((n,a)=>(n[a.tfOpName]=a,n),{})}static get Instance(){return this._instance||(this._instance=new this)}transformGraph(e,t={}){let n=e.node,a=[],r=[],s=[],i=n.reduce((m,f)=>(m[f.name]=this.mapNode(f),f.op.startsWith("Placeholder")?a.push(m[f.name]):f.op==="Const"?r.push(m[f.name]):(f.input==null||f.input.length===0)&&s.push(m[f.name]),m),{}),o=[],l=[],u={},p={};t!=null&&(u=this.mapSignatureEntries(t.inputs),p=this.mapSignatureEntries(t.outputs));let d=Object.keys(i);d.forEach(m=>{let f=i[m];f.inputNames.forEach((g,y)=>{let[b,,x]=ar(g),w=i[b];if(w.outputs!=null){let I=w.outputs.indexOf(x);if(I!==-1){let T=`${b}:${I}`;f.inputNames[y]=T}}f.inputs.push(w),w.children.push(f)})}),Object.keys(p).length===0?d.forEach(m=>{let f=i[m];f.children.length===0&&l.push(f)}):Object.keys(p).forEach(m=>{let[f]=ar(m),g=i[f];g!=null&&(g.signatureKey=p[m],l.push(g))}),Object.keys(u).length>0?Object.keys(u).forEach(m=>{let[f]=ar(m),g=i[f];g&&(g.signatureKey=u[m],o.push(g))}):o=a;let c={};e.library!=null&&e.library.function!=null&&(c=e.library.function.reduce((m,f)=>(m[f.signature.name]=this.mapFunction(f),m),{}));let h={nodes:i,inputs:o,outputs:l,weights:r,placeholders:a,signature:t,functions:c};return s.length>0&&(h.initNodes=s),h}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,n)=>(t[e[n].name]=n,t),{})}mapNode(e){let t=e2(e.op)||this.opMappers[e.op]||{};e.attr==null&&(e.attr={});let n={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(a=>a.startsWith("^")?a.slice(1):a),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr,outputs:t.outputs};return t.inputs!=null&&(n.inputParams=t.inputs.reduce((a,r)=>(a[r.name]={type:r.type,inputIndexStart:r.start,inputIndexEnd:r.end},a),{})),t.attrs!=null&&(n.attrParams=t.attrs.reduce((a,r)=>{let s=r.type,i;switch(r.type){case"string":i=Hb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Hb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=Jb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Jb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=qb(e.attr,r.tfName,r.defaultValue||0),i===void 0&&!!r.tfDeprecatedName&&(i=qb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=Zb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Zb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":i=jb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=jb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":i=ex(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ex(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=Yb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Yb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=Qb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Qb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=Kb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Kb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=Xb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Xb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=$k(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=$k(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${r.type} for op: ${e.op}`)}return a[r.name]={value:i,type:s},a},{})),n}mapFunction(e){let t=e.nodeDef,n=[],a=[],r={};t!=null&&(r=t.reduce((u,p)=>(u[p.name]=this.mapNode(p),p.op==="Const"&&a.push(u[p.name]),u),{}));let s=[],i=[];e.signature.inputArg.forEach(u=>{let[p]=ar(u.name),d={name:p,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:w0(u.type),type:"dtype"}},children:[]};d.signatureKey=u.name,s.push(d),r[p]=d}),Object.keys(r).forEach(u=>{let p=r[u];p.inputNames.forEach((d,c)=>{let[h,,m]=ar(d),f=r[h];if(f.outputs!=null){let g=f.outputs.indexOf(m);if(g!==-1){let y=`${h}:${g}`;p.inputNames[c]=y}}p.inputs.push(f),f.children.push(p)})});let o=e.ret;e.signature.outputArg.forEach(u=>{let[p,d]=ar(o[u.name]),c=r[p];c!=null&&(c.defaultOutput=d,i.push(c))});let l=this.mapArgsToSignature(e);return{nodes:r,inputs:s,outputs:i,weights:a,placeholders:n,signature:l}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n),t),{}),outputs:e.signature.outputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n,e.ret),t),{})}}mapArgToTensorInfo(e,t){let n=e.name;return t!=null&&(n=t[n]),{name:n,dtype:e.type}}};function VH(e){let t=H().global;if(typeof t.atob!="undefined")return t.atob(e);if(typeof Buffer!="undefined")return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function v2(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):VH(e);return t?n:n.toLowerCase()}function Hb(e,t,n,a=!1){let r=e[t];return r!=null?v2(r.s,a):n}function jb(e,t,n){let a=e[t];return a?a.b:n}function qb(e,t,n){let a=e[t]||{},r=a.i!=null?a.i:a.f!=null?a.f:n;return typeof r=="number"?r:parseInt(r,10)}function w0(e){switch(typeof e=="string"&&(e=Sa[e]),e){case Sa.DT_FLOAT:case Sa.DT_HALF:return"float32";case Sa.DT_INT32:case Sa.DT_INT64:case Sa.DT_INT8:case Sa.DT_UINT8:return"int32";case Sa.DT_BOOL:return"bool";case Sa.DT_DOUBLE:return"float32";case Sa.DT_STRING:return"string";default:return null}}function $k(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function Kb(e,t,n){let a=e[t];return a&&a.type?w0(a.type):n}function Xb(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>w0(r)):n}function w2(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function Yb(e,t,n){let a=e[t];return a&&a.shape?w2(a.shape):n}function Zb(e,t,n){let a=e[t];return a?((a.list.f&&a.list.f.length?a.list.f:a.list.i)||[]).map(r=>typeof r=="number"?r:parseInt(r,10)):n}function Jb(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>v2(s,a)):n}function Qb(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>w2(r)):n}function ex(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var UH=class{constructor(e,t,n){this.node=e,this.tensorMap=t,this.context=n,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(a=>this.getInput(a)),e.rawAttrs!=null&&(this.attrs=Object.keys(e.rawAttrs).reduce((a,r)=>(a[r]=this.getAttr(r),a),{}))}getInput(e){return vn(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return vn(e,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return qb(this.node.rawAttrs,e,t);if(n.s!=null)return Hb(this.node.rawAttrs,e,t);if(n.b!=null)return jb(this.node.rawAttrs,e,t);if(n.shape!=null)return Yb(this.node.rawAttrs,e,t);if(n.type!=null)return Kb(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Zb(this.node.rawAttrs,e,t);if(n.list.s!=null)return Jb(this.node.rawAttrs,e,t);if(n.list.shape!=null)return Qb(this.node.rawAttrs,e,t);if(n.list.b!=null)return ex(this.node.rawAttrs,e,t);if(n.list.type!=null)return Xb(this.node.rawAttrs,e,t)}return t}},un={};$e(un,{OP_SCOPE_SUFFIX:()=>Cx,abs:()=>Lt,acos:()=>Bx,acosh:()=>Vx,add:()=>Y,addN:()=>CS,all:()=>Am,any:()=>qp,argMax:()=>ai,argMin:()=>Ux,asin:()=>Gx,asinh:()=>Hx,atan:()=>jx,atan2:()=>qx,atanh:()=>Kx,avgPool:()=>ga,avgPool3d:()=>Yx,basicLSTMCell:()=>AS,batchNorm:()=>ys,batchNorm2d:()=>Zx,batchNorm3d:()=>Jx,batchNorm4d:()=>Qx,batchToSpaceND:()=>$c,bincount:()=>ev,booleanMaskAsync:()=>hT,broadcastArgs:()=>FS,broadcastTo:()=>Ks,buffer:()=>Pe,cast:()=>le,ceil:()=>tv,clipByValue:()=>en,clone:()=>rr,complex:()=>Cr,concat:()=>Ze,concat1d:()=>nv,concat2d:()=>av,concat3d:()=>rv,concat4d:()=>sv,conv1d:()=>Fm,conv2d:()=>At,conv2dTranspose:()=>Dm,conv3d:()=>ov,conv3dTranspose:()=>lv,cos:()=>Ac,cosh:()=>Rm,cosineWindow:()=>tf,cumprod:()=>Kp,cumsum:()=>Mm,denseBincount:()=>Sh,depthToSpace:()=>uv,depthwiseConv2d:()=>bs,diag:()=>RS,dilation2d:()=>pv,div:()=>he,divNoNan:()=>cv,dot:()=>dv,dropout:()=>zv,einsum:()=>MS,elu:()=>Nu,enclosingPowerOfTwo:()=>Wv,equal:()=>Qn,erf:()=>hv,euclideanNorm:()=>gv,exp:()=>fn,expandDims:()=>Zt,expm1:()=>yv,eye:()=>Pm,fft:()=>zc,fill:()=>gn,floor:()=>_u,floorDiv:()=>$m,fused:()=>pl,gather:()=>Eu,gatherND:()=>yT,greater:()=>Nn,greaterEqual:()=>Er,ifft:()=>ul,imag:()=>Cc,image:()=>za,inTopKAsync:()=>bT,irfft:()=>Zm,isFinite:()=>bv,isInf:()=>xv,isNaN:()=>vv,leakyRelu:()=>Fc,less:()=>Om,lessEqual:()=>xs,linalg:()=>Uv,linspace:()=>WS,localResponseNormalization:()=>wv,log:()=>ea,log1p:()=>Dc,logSigmoid:()=>kv,logSoftmax:()=>zm,logSumExp:()=>Wm,logicalAnd:()=>Ea,logicalNot:()=>Rc,logicalOr:()=>Bm,logicalXor:()=>Iv,losses:()=>$T,lowerBound:()=>VS,matMul:()=>Fe,max:()=>ha,maxPool:()=>Dt,maxPool3d:()=>Sv,maxPoolWithArgmax:()=>US,maximum:()=>pr,mean:()=>Nt,meshgrid:()=>GS,min:()=>il,minimum:()=>$u,mirrorPad:()=>Tv,mod:()=>Nv,moments:()=>Mc,movingAverage:()=>mT,mul:()=>z,multiRNNCell:()=>HS,multinomial:()=>jS,neg:()=>bt,norm:()=>Cu,notEqual:()=>ii,oneHot:()=>rl,ones:()=>Zn,onesLike:()=>ta,op:()=>L,outerProduct:()=>qS,pad:()=>ya,pad1d:()=>KS,pad2d:()=>XS,pad3d:()=>YS,pad4d:()=>ZS,pool:()=>Cv,pow:()=>_r,prelu:()=>Oc,print:()=>Ax,prod:()=>_v,raggedGather:()=>JS,raggedRange:()=>QS,raggedTensorToTensor:()=>eT,rand:()=>tT,randomGamma:()=>nT,randomNormal:()=>Um,randomStandardNormal:()=>aT,randomUniform:()=>Au,range:()=>ol,real:()=>sl,reciprocal:()=>Av,relu:()=>Xe,relu6:()=>Gm,reshape:()=>W,reverse:()=>fa,reverse1d:()=>rT,reverse2d:()=>sT,reverse3d:()=>iT,reverse4d:()=>oT,rfft:()=>Wc,round:()=>Hm,rsqrt:()=>jm,scalar:()=>xe,scatterND:()=>fT,searchSorted:()=>Vm,selu:()=>qm,separableConv2d:()=>vs,setdiff1dAsync:()=>lT,sigmoid:()=>da,sign:()=>Fv,signal:()=>ET,sin:()=>Km,sinh:()=>Xm,slice:()=>Be,slice1d:()=>Lc,slice2d:()=>Ym,slice3d:()=>mo,slice4d:()=>ll,softmax:()=>Ka,softplus:()=>ho,spaceToBatchND:()=>Pc,sparse:()=>AT,sparseToDense:()=>gT,spectral:()=>_T,split:()=>zn,sqrt:()=>ln,square:()=>ot,squaredDifference:()=>Jm,squeeze:()=>ws,stack:()=>Ft,step:()=>fo,stridedSlice:()=>Dv,string:()=>FT,sub:()=>pe,sum:()=>fe,tan:()=>Rv,tanh:()=>ri,tensor:()=>kn,tensor1d:()=>Ke,tensor2d:()=>_a,tensor3d:()=>_c,tensor4d:()=>Aa,tensor5d:()=>uT,tensor6d:()=>pT,tile:()=>Ln,topk:()=>Mv,transpose:()=>Ee,truncatedNormal:()=>Qm,unique:()=>Pv,unsortedSegmentSum:()=>ef,unstack:()=>ct,upperBound:()=>cT,variable:()=>Ov,where:()=>mn,whereAsync:()=>Lv,zeros:()=>It,zerosLike:()=>qe});var GH=(e,t,n,a=un)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[a.add(k("a",e,t,n),k("b",e,t,n))];case"AddN":return[a.addN(k("tensors",e,t,n))];case"FloorMod":case"Mod":return[a.mod(k("a",e,t,n),k("b",e,t,n))];case"Mul":return[a.mul(k("a",e,t,n),k("b",e,t,n))];case"RealDiv":case"Div":return[a.div(k("a",e,t,n),k("b",e,t,n))];case"DivNoNan":return[a.divNoNan(k("a",e,t,n),k("b",e,t,n))];case"FloorDiv":return[a.floorDiv(k("a",e,t,n),k("b",e,t,n))];case"Sub":return[a.sub(k("a",e,t,n),k("b",e,t,n))];case"Minimum":return[a.minimum(k("a",e,t,n),k("b",e,t,n))];case"Maximum":return[a.maximum(k("a",e,t,n),k("b",e,t,n))];case"Pow":return[a.pow(k("a",e,t,n),k("b",e,t,n))];case"SquaredDifference":return[a.squaredDifference(k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},HH=(e,t,n,a=un)=>{switch(e.op){case"Abs":case"ComplexAbs":return[a.abs(k("x",e,t,n))];case"Acos":return[a.acos(k("x",e,t,n))];case"Acosh":return[a.acosh(k("x",e,t,n))];case"Asin":return[a.asin(k("x",e,t,n))];case"Asinh":return[a.asinh(k("x",e,t,n))];case"Atan":return[a.atan(k("x",e,t,n))];case"Atan2":return[a.atan2(k("x",e,t,n),k("y",e,t,n))];case"Atanh":return[a.atanh(k("x",e,t,n))];case"Ceil":return[a.ceil(k("x",e,t,n))];case"Complex":return[a.complex(k("real",e,t,n),k("imag",e,t,n))];case"Cos":return[a.cos(k("x",e,t,n))];case"Cosh":return[a.cosh(k("x",e,t,n))];case"Elu":return[a.elu(k("x",e,t,n))];case"Erf":return[a.erf(k("x",e,t,n))];case"Exp":return[a.exp(k("x",e,t,n))];case"Expm1":return[a.expm1(k("x",e,t,n))];case"Floor":return[a.floor(k("x",e,t,n))];case"Log":return[a.log(k("x",e,t,n))];case"Log1p":return[a.log1p(k("x",e,t,n))];case"Imag":return[a.imag(k("x",e,t,n))];case"Neg":return[a.neg(k("x",e,t,n))];case"Reciprocal":return[a.reciprocal(k("x",e,t,n))];case"Real":return[a.real(k("x",e,t,n))];case"Relu":return[a.relu(k("x",e,t,n))];case"Round":return[a.round(k("x",e,t,n))];case"Selu":return[a.selu(k("x",e,t,n))];case"Sigmoid":return[a.sigmoid(k("x",e,t,n))];case"Sin":return[a.sin(k("x",e,t,n))];case"Sign":return[a.sign(k("x",e,t,n))];case"Sinh":return[a.sinh(k("x",e,t,n))];case"Softplus":return[a.softplus(k("x",e,t,n))];case"Sqrt":return[a.sqrt(k("x",e,t,n))];case"Square":return[a.square(k("x",e,t,n))];case"Tanh":return[a.tanh(k("x",e,t,n))];case"Tan":return[a.tan(k("x",e,t,n))];case"ClipByValue":return[a.clipByValue(k("x",e,t,n),k("clipValueMin",e,t,n),k("clipValueMax",e,t,n))];case"Relu6":return[a.relu6(k("x",e,t,n))];case"Rsqrt":return[a.rsqrt(vn(e.inputNames[0],t,n))];case"Prod":return[a.prod(k("x",e,t,n),k("axes",e,t,n))];case"LeakyRelu":return[a.leakyRelu(k("x",e,t,n),k("alpha",e,t,n))];case"Prelu":return[a.prelu(k("x",e,t,n),k("alpha",e,t,n))];case"IsNan":return[a.isNaN(vn(e.inputNames[0],t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Ca(e,t,n=""){if(!(typeof e=="number"||typeof t=="number")){v.assert(e.length===t.length,()=>n+` Shapes ${e} and ${t} must match`);for(let a=0;an+` Shapes ${e} and ${t} must match`)}}}function Ak(e){return!(typeof e=="number"||e.some(t=>t<0))}function Tp(e,t,n){let a=tx(e,n),r=!Ak(a);if(r&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${a}`);if(r&&t.forEach(s=>{a=tx(s.shape,a)}),!Ak(a))throw new Error(`Non-fully-defined elementShape: ${a}`);return a}function tx(e,t){if(typeof e=="number")return t;if(typeof t=="number")return e;if(e.length!==t.length)throw new Error(`Incompatible ranks during merge: ${e} vs. ${t}`);let n=[];for(let a=0;a=0&&s>=0&&r!==s)throw new Error(`Incompatible shape during merge: ${e} vs. ${t}`);n[a]=r>=0?r:s}return n}var jH=class{constructor(e,t,n,a,r,s,i){this.name=e,this.dtype=t,this.maxSize=n,this.elementShape=a,this.identicalElementShapes=r,this.dynamicSize=s,this.clearAfterRead=i,this.tensors=[],this.closed_=!1,this.idTensor=xe(0),Jt(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!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()}`);let 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(t=>this.read(t))}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}`);let n=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=t.shape),Ca(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,Jt(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((n,a)=>this.write(n,t[a]))}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 a=0;a=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(e,ct(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,a=e.map(o=>(n+=o,n));if(n!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${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`);let r=n===0?0:t.size/n,s=[];P(()=>{t=W(t,[1,n,r]);for(let o=0;o{if(n!==r.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${r.dtype}`);Ca(t,r.shape,"TensorList shape mismatch: "),Jt(r)}),this.idTensor=be(0),this.maxNumElements=a,Jt(this.idTensor)}get id(){return this.idTensor.id}copy(){return new ml([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!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(n!==-1&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);Ca(e,this.elementShape,"TensorList shape mismatch: ");let a=Tp(this.elementShape,this.tensors,e);return P(()=>{let r=this.tensors.map(s=>W(s,a));return Ft(r,0)})}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let n=Tp(this.elementShape,this.tensors,e),a=this.tensors.pop();return a.kept=!1,Ca(a.shape,e,"TensorList shape mismatch: "),W(a,n)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(Ca(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");Jt(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(this.maxNumElements!==-1&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);let t=new ml([],this.elementShape,this.elementDtype,this.maxNumElements);t.tensors.length=e;for(let n=0;nthis.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(this.tensors[e]==null)throw new Error(`element at index ${e} is null.`);Ca(this.tensors[e].shape,t,"TensorList shape mismatch: ");let a=Tp(this.elementShape,this.tensors,t);return W(this.tensors[e],a)}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||this.maxNumElements!==-1&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);Ca(this.elementShape,t.shape,"TensorList shape mismatch: "),Jt(t),this.tensors[e]!=null&&(this.tensors[e].kept=!1),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}`);Ca(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size());let a=Tp(this.elementShape,this.tensors,n);return e.length===0?kn([],[0].concat(a)):P(()=>{let r=e.map(s=>W(this.tensors[s],a));return Ft(r,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);Ca(this.elementShape,t,"TensorList shape mismatch: ");let n=Tp(this.elementShape,this.tensors,t);return this.size()===0?kn([],[0].concat(n)):P(()=>{let a=this.tensors.map(r=>W(r,n));return Ze(a,0)})}};function qH(e,t,n){let a=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}`);let r=e.shape.slice(1);Ca(r,t,"TensorList shape mismatch: ");let s=ct(e);return new ml(s,t,a)}function KH(e,t,n,a){return new ml([],e,t,a)}function XH(e,t,n,a){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);let r=Math.max(...t);if(a!=null&&a!==-1&&r>=a)throw new Error(`Max index must be < array size (${r} vs. ${a})`);let s=new ml([],n,e.dtype,a),i=ct(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function YH(e,t,n){let a=0,r=t.map(p=>(a+=p,a));if(a!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to + ${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`);let r=n===0?0:t.size/n,s=[];P(()=>{t=W(t,[1,n,r]);for(let o=0;o{if(n!==r.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${r.dtype}`);Ca(t,r.shape,"TensorList shape mismatch: "),Jt(r)}),this.idTensor=xe(0),this.maxNumElements=a,Jt(this.idTensor)}get id(){return this.idTensor.id}copy(){return new ml([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!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(n!==-1&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);Ca(e,this.elementShape,"TensorList shape mismatch: ");let a=Tp(this.elementShape,this.tensors,e);return P(()=>{let r=this.tensors.map(s=>W(s,a));return Ft(r,0)})}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let n=Tp(this.elementShape,this.tensors,e),a=this.tensors.pop();return a.kept=!1,Ca(a.shape,e,"TensorList shape mismatch: "),W(a,n)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(Ca(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");Jt(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(this.maxNumElements!==-1&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);let t=new ml([],this.elementShape,this.elementDtype,this.maxNumElements);t.tensors.length=e;for(let n=0;nthis.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(this.tensors[e]==null)throw new Error(`element at index ${e} is null.`);Ca(this.tensors[e].shape,t,"TensorList shape mismatch: ");let a=Tp(this.elementShape,this.tensors,t);return W(this.tensors[e],a)}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||this.maxNumElements!==-1&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);Ca(this.elementShape,t.shape,"TensorList shape mismatch: "),Jt(t),this.tensors[e]!=null&&(this.tensors[e].kept=!1),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}`);Ca(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size());let a=Tp(this.elementShape,this.tensors,n);return e.length===0?kn([],[0].concat(a)):P(()=>{let r=e.map(s=>W(this.tensors[s],a));return Ft(r,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);Ca(this.elementShape,t,"TensorList shape mismatch: ");let n=Tp(this.elementShape,this.tensors,t);return this.size()===0?kn([],[0].concat(n)):P(()=>{let a=this.tensors.map(r=>W(r,n));return Ze(a,0)})}};function qH(e,t,n){let a=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}`);let r=e.shape.slice(1);Ca(r,t,"TensorList shape mismatch: ");let s=ct(e);return new ml(s,t,a)}function KH(e,t,n,a){return new ml([],e,t,a)}function XH(e,t,n,a){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);let r=Math.max(...t);if(a!=null&&a!==-1&&r>=a)throw new Error(`Max index must be < array size (${r} vs. ${a})`);let s=new ml([],n,e.dtype,a),i=ct(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function YH(e,t,n){let a=0,r=t.map(p=>(a+=p,a));if(a!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${a}, and tensor's shape is: ${e.shape}`);let s=e.shape.slice(1),i=tx(s,n),o=a===0?0:e.size/a,l=P(()=>{let p=[];e=W(e,[1,a,o]);for(let d=0;d{switch(e.op){case"If":case"StatelessIf":{let a=k("thenBranch",e,t,n),r=k("elseBranch",e,t,n),s=k("cond",e,t,n),i=k("args",e,t,n);return(await s.data())[0]?n.functionMap[a].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap):n.functionMap[r].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap)}case"While":case"StatelessWhile":{let a=k("body",e,t,n),r=k("cond",e,t,n),s=k("args",e,t,n),i=await n.functionMap[r].executeFunctionAsync(s,n.tensorArrayMap,n.tensorListMap),o=s.map(p=>p.id),l=await i[0].data();i.forEach(p=>{!p.kept&&o.indexOf(p.id)===-1&&p.dispose()});let u=s;for(;l[0];){let p=u;u=await n.functionMap[a].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);let d=u.map(h=>h.id);p.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&d.indexOf(h.id)===-1&&h.dispose()});let c=await n.functionMap[r].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);l=await c[0].data(),c.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&d.indexOf(h.id)===-1&&h.dispose()})}return u}case"LoopCond":{let a=k("pred",e,t,n);return[kr(a)]}case"Switch":{let a=k("pred",e,t,n),r=k("data",e,t,n);return r.kept||(r=kr(r)),(await a.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{let a=e.inputNames.find(r=>vn(r,t,n)!==void 0);if(a){let r=vn(a,t,n);return[kr(r)]}return}case"Enter":{let a=k("frameName",e,t,n),r=k("tensor",e,t,n);return n.enterFrame(a),[kr(r)]}case"Exit":{let a=k("tensor",e,t,n);return n.exitFrame(),[kr(a)]}case"NextIteration":{let a=k("tensor",e,t,n);return n.nextIteration(),[kr(a)]}case"TensorArrayV3":{let a=k("size",e,t,n),r=k("dtype",e,t,n),s=k("elementShape",e,t,n),i=k("dynamicSize",e,t,n),o=k("clearAfterRead",e,t,n),l=k("identicalElementShapes",e,t,n),u=k("name",e,t,n),p=new jH(u,r,a,s,l,i,o);return n.addTensorArray(p),[p.idTensor,be(1)]}case"TensorArrayWriteV3":{let a=k("tensorArrayId",e,t,n),r=k("index",e,t,n),s=k("tensor",e,t,n),i=n.getTensorArray(a.id);return i.write(r,s),[i.idTensor]}case"TensorArrayReadV3":{let a=k("tensorArrayId",e,t,n),r=k("index",e,t,n);return[n.getTensorArray(a.id).read(r)]}case"TensorArrayGatherV3":{let a=k("tensorArrayId",e,t,n),r=k("indices",e,t,n),s=k("dtype",e,t,n);return[n.getTensorArray(a.id).gather(r,s)]}case"TensorArrayScatterV3":{let a=k("tensorArrayId",e,t,n),r=k("indices",e,t,n),s=k("tensor",e,t,n),i=n.getTensorArray(a.id);return i.scatter(r,s),[i.idTensor]}case"TensorArrayConcatV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id),s=k("dtype",e,t,n);return[r.concat(s)]}case"TensorArraySplitV3":{let a=k("tensorArrayId",e,t,n),r=k("tensor",e,t,n),s=k("lengths",e,t,n),i=n.getTensorArray(a.id);return i.split(s,r),[i.idTensor]}case"TensorArraySizeV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return[be(r.size(),"int32")]}case"TensorArrayCloseV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return r.clearAndClose(),[r.idTensor]}case"TensorListSetItem":{let a=k("tensorListId",e,t,n),r=k("index",e,t,n),s=k("tensor",e,t,n),i=n.getTensorList(a.id);return i.setItem(r,s),[i.idTensor]}case"TensorListGetItem":{let a=k("tensorListId",e,t,n),r=k("index",e,t,n),s=k("elementShape",e,t,n),i=k("elementDType",e,t,n);return[n.getTensorList(a.id).getItem(r,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let a=k("indices",e,t,n),r=k("tensor",e,t,n),s=k("elementShape",e,t,n),i=k("numElements",e,t,n),o=XH(r,a,s,i);return n.addTensorList(o),[o.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let a=k("elementShape",e,t,n),r=k("elementDType",e,t,n),s;e.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=k(s,e,t,n),o=e.op==="TensorListReserve"?-1:i,l=KH(a,r,i,o);return n.addTensorList(l),[l.idTensor]}case"TensorListGather":{let a=k("tensorListId",e,t,n),r=k("indices",e,t,n),s=k("elementShape",e,t,n),i=k("elementDType",e,t,n);return[n.getTensorList(a.id).gather(r,i,s)]}case"TensorListStack":{let a=k("tensorListId",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n),i=k("numElements",e,t,n);return[n.getTensorList(a.id).stack(r,s,i)]}case"TensorListFromTensor":{let a=k("tensor",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n),i=qH(a,r,s);return n.addTensorList(i),[i.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id),s=k("dtype",e,t,n),i=k("elementShape",e,t,n);return[r.concat(s,i)]}case"TensorListPushBack":{let a=k("tensorListId",e,t,n),r=k("tensor",e,t,n),s=n.getTensorList(a.id);return s.pushBack(r),[s.idTensor]}case"TensorListPopBack":{let a=k("tensorListId",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n);return[n.getTensorList(a.id).popBack(r,s)]}case"TensorListSplit":{let a=k("tensor",e,t,n),r=k("elementShape",e,t,n),s=k("lengths",e,t,n),i=YH(a,s,r);return n.addTensorList(i),[i.idTensor]}case"TensorListLength":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id);return[be(r.size(),"int32")]}case"TensorListResize":{let a=k("tensorListId",e,t,n),r=k("size",e,t,n),s=n.getTensorList(a.id).resize(r);return n.addTensorList(s),[s.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Fk(e,t,n){let[a,r]=k("fusedOps",e,t,n),s=a==="biasadd",i=!s,o=r==="prelu",l=a==="fusedbatchnorm",u=k("numArgs",e,t,n);if(s){if(o&&u!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&s&&u!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(l)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported");let p=k("strides",e,t,n),d=sh(e,t,n),c=k("dataFormat",e,t,n).toUpperCase(),h=k("dilations",e,t,n),[m,f]=k("args",e,t,n);i&&(f=m,m=void 0);let g=k("leakyreluAlpha",e,t,n);return{stride:p,pad:d,dataFormat:c,dilations:h,biasArg:m,preluArg:f,activationFunc:r,leakyreluAlpha:g}}var JH=(e,t,n,a=un)=>{switch(e.op){case"Conv1D":{let r=k("stride",e,t,n),s=k("pad",e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilation",e,t,n);return[a.conv1d(k("x",e,t,n),k("filter",e,t,n),r,s,i,o)]}case"Conv2D":{let r=k("strides",e,t,n),s=sh(e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilations",e,t,n);return[a.conv2d(k("x",e,t,n),k("filter",e,t,n),[r[1],r[2]],s,i,[o[1],o[2]])]}case"_FusedConv2D":{let{stride:r,pad:s,dataFormat:i,dilations:o,biasArg:l,preluArg:u,activationFunc:p,leakyreluAlpha:d}=Fk(e,t,n);return[a.fused.conv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[r[1],r[2]],pad:s,dataFormat:i,dilations:[o[1],o[2]],bias:l,activation:p,preluActivationWeights:u,leakyreluAlpha:d})]}case"FusedDepthwiseConv2dNative":{let{stride:r,pad:s,dataFormat:i,dilations:o,biasArg:l,preluArg:u,activationFunc:p,leakyreluAlpha:d}=Fk(e,t,n);return[a.fused.depthwiseConv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[r[1],r[2]],pad:s,dataFormat:i,dilations:[o[1],o[2]],bias:l,activation:p,preluActivationWeights:u,leakyreluAlpha:d})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let r=k("outputShape",e,t,n),s=k("strides",e,t,n),i=sh(e,t,n);return[a.conv2dTranspose(k("x",e,t,n),k("filter",e,t,n),r,[s[1],s[2]],i)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let r=k("strides",e,t,n),s=sh(e,t,n),i=k("dilations",e,t,n),o=k("dataFormat",e,t,n).toUpperCase();return[a.depthwiseConv2d(k("input",e,t,n),k("filter",e,t,n),[r[1],r[2]],s,o,[i[1],i[2]])]}case"Conv3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilations",e,t,n);return[a.conv3d(k("x",e,t,n),k("filter",e,t,n),[r[1],r[2],r[3]],s,i,[o[1],o[2],o[3]])]}case"AvgPool":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.avgPool(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s)]}case"MaxPool":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.maxPool(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s)]}case"MaxPoolWithArgmax":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n),o=k("includeBatchInIndex",e,t,n),{result:l,indexes:u}=a.maxPoolWithArgmax(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s,o);return[l,u]}case"AvgPool3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.avgPool3d(k("x",e,t,n),[i[1],i[2],i[3]],[r[1],r[2],r[3]],s)]}case"MaxPool3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.maxPool3d(k("x",e,t,n),[i[1],i[2],i[3]],[r[1],r[2],r[3]],s)]}case"Dilation2D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("dilations",e,t,n),o=r[1],l=r[2],u=i[1],p=i[2];return[a.dilation2d(k("x",e,t,n),k("filter",e,t,n),[o,l],s,[u,p],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},QH=(e,t,n,a=un)=>{switch(e.op){case"Fill":{let r=k("shape",e,t,n),s=k("dtype",e,t,n),i=k("value",e,t,n);return[a.fill(r,i,s)]}case"LinSpace":{let r=k("start",e,t,n),s=k("stop",e,t,n),i=k("num",e,t,n);return[a.linspace(r,s,i)]}case"Multinomial":{let r=k("logits",e,t,n),s=k("numSamples",e,t,n),i=k("seed",e,t,n);return[a.multinomial(r,s,i)]}case"OneHot":{let r=k("indices",e,t,n),s=k("depth",e,t,n),i=k("onValue",e,t,n),o=k("offValue",e,t,n),l=k("dtype",e,t,n);return[a.oneHot(r,s,i,o,l)]}case"Ones":return[a.ones(k("shape",e,t,n),k("dtype",e,t,n))];case"OnesLike":return[a.onesLike(k("x",e,t,n))];case"RandomStandardNormal":return[a.randomStandardNormal(k("shape",e,t,n),k("dtype",e,t,n),k("seed",e,t,n))];case"RandomUniform":return[a.randomUniform(k("shape",e,t,n),k("minval",e,t,n),k("maxval",e,t,n),k("dtype",e,t,n))];case"Range":{let r=k("start",e,t,n),s=k("stop",e,t,n),i=k("step",e,t,n);return[a.range(r,s,i,k("dtype",e,t,n))]}case"TruncatedNormal":{let r=k("shape",e,t,n),s=k("mean",e,t,n),i=k("stdDev",e,t,n),o=k("seed",e,t,n);return[a.truncatedNormal(r,s,i,k("dtype",e,t,n),o)]}case"Zeros":return[a.zeros(k("shape",e,t,n),k("dtype",e,t,n))];case"ZerosLike":return[a.zerosLike(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function mb(e,t,n){let a=k("boxes",e,t,n),r=k("scores",e,t,n),s=k("maxOutputSize",e,t,n),i=k("iouThreshold",e,t,n),o=k("scoreThreshold",e,t,n),l=k("softNmsSigma",e,t,n);return{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}}var e6=async(e,t,n,a,r=un)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u,softNmsSigma:p}=mb(e,t,n),d=await r.image.nonMaxSuppressionWithScoreAsync(s,i,o,l,u,p);return[d.selectedIndices,d.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u}=mb(e,t,n),p=k("padToMaxOutputSize",e,t,n),d=await r.image.nonMaxSuppressionPaddedAsync(s,i,o,l,u,p);return[d.selectedIndices,d.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u}=mb(e,t,n);return[await r.image.nonMaxSuppressionAsync(s,i,o,l,u)]}case"Where":{let s=r.cast(k("condition",e,t,n),"bool"),i=[await r.whereAsync(s)];return s.dispose(),i}case"ListDiff":return r.setdiff1dAsync(k("x",e,t,n),k("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}},t6=(e,t,n,a=un)=>{switch(e.op){case"LowerBound":{let r=k("sortedSequence",e,t,n),s=k("values",e,t,n);return[a.lowerBound(r,s)]}case"TopKV2":{let r=k("x",e,t,n),s=k("k",e,t,n),i=k("sorted",e,t,n),o=a.topk(r,s,i);return[o.values,o.indices]}case"UpperBound":{let r=k("sortedSequence",e,t,n),s=k("values",e,t,n);return[a.upperBound(r,s)]}case"Unique":{let r=k("x",e,t,n),s=a.unique(r);return[s.values,s.indices]}case"UniqueV2":{let r=k("x",e,t,n),s=k("axis",e,t,n),i=a.unique(r,s);return[i.values,i.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},n6=(e,t,n,a=un)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let r=k("default",e,t,n);return[vn(e.name,t,n)||r];case"Placeholder":return[vn(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let p=k("x",e,t,n);return[kr(p)]}case"IdentityN":return k("x",e,t,n).map(p=>kr(p));case"Snapshot":let s=k("x",e,t,n);return[kr(s)];case"Shape":return[a.tensor1d(k("x",e,t,n).shape,"int32")];case"ShapeN":return k("x",e,t,n).map(p=>a.tensor1d(p.shape));case"Size":return[a.scalar(k("x",e,t,n).size,"int32")];case"Rank":return[a.scalar(k("x",e,t,n).rank,"int32")];case"NoOp":return[a.scalar(1)];case"Print":let i=k("x",e,t,n),o=k("data",e,t,n),l=k("message",e,t,n),u=k("summarize",e,t,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(l);for(let p=0;pe.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return be(this.size(),"int32")}async import(e,t){this.checkKeyAndValueTensor(e,t);let n=await e.data();return this.tensorMap.forEach(a=>a.dispose()),this.tensorMap.clear(),P(()=>{let a=ct(t),r=n.length,s=a.length;v.assert(r===s,()=>`The number of elements doesn't match, keys has ${r} elements, the values has ${s} elements.`);for(let i=0;i{let a=[];for(let r=0;r{switch(e.op){case"HashTable":case"HashTableV2":{let r=a.getHashTableHandleByName(e.name);if(r!=null)return[r];{let s=k("keyDType",e,t,n),i=k("valueDType",e,t,n),o=new a6(s,i);return a.addHashTable(e.name,o),[o.handle]}}case"LookupTableImport":case"LookupTableImportV2":{let r=k("tableHandle",e,t,n,a),s=k("keys",e,t,n),i=k("values",e,t,n);return[await a.getHashTableById(r.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let r=k("tableHandle",e,t,n,a),s=k("keys",e,t,n),i=k("defaultValue",e,t,n);return[await a.getHashTableById(r.id).find(s,i)]}case"LookupTableSize":case"LookupTableSizeV2":{let r=k("tableHandle",e,t,n,a);return[a.getHashTableById(r.id).tensorSize()]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},s6=(e,t,n,a=un)=>{switch(e.op){case"ResizeBilinear":{let r=k("images",e,t,n),s=k("size",e,t,n),i=k("alignCorners",e,t,n),o=k("halfPixelCenters",e,t,n);return[a.image.resizeBilinear(r,[s[0],s[1]],i,o)]}case"ResizeNearestNeighbor":{let r=k("images",e,t,n),s=k("size",e,t,n),i=k("alignCorners",e,t,n),o=k("halfPixelCenters",e,t,n);return[a.image.resizeNearestNeighbor(r,[s[0],s[1]],i,o)]}case"CropAndResize":{let r=k("image",e,t,n),s=k("boxes",e,t,n),i=k("boxInd",e,t,n),o=k("cropSize",e,t,n),l=k("method",e,t,n),u=k("extrapolationValue",e,t,n);return[a.image.cropAndResize(r,s,i,o,l,u)]}case"ImageProjectiveTransformV3":{let r=k("images",e,t,n),s=k("transforms",e,t,n),i=k("outputShape",e,t,n),o=k("fillValue",e,t,n),l=k("interpolation",e,t,n),u=k("fillMode",e,t,n);return[a.image.transform(r,s,l.toLowerCase(),u.toLowerCase(),o,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},i6=(e,t,n,a=un)=>{switch(e.op){case"Equal":return[a.equal(k("a",e,t,n),k("b",e,t,n))];case"NotEqual":return[a.notEqual(k("a",e,t,n),k("b",e,t,n))];case"Greater":return[a.greater(k("a",e,t,n),k("b",e,t,n))];case"GreaterEqual":return[a.greaterEqual(k("a",e,t,n),k("b",e,t,n))];case"Less":return[a.less(k("a",e,t,n),k("b",e,t,n))];case"LessEqual":return[a.lessEqual(k("a",e,t,n),k("b",e,t,n))];case"LogicalAnd":return[a.logicalAnd(k("a",e,t,n),k("b",e,t,n))];case"LogicalNot":return[a.logicalNot(k("a",e,t,n))];case"LogicalOr":return[a.logicalOr(k("a",e,t,n),k("b",e,t,n))];case"Select":case"SelectV2":return[a.where(k("condition",e,t,n),k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},o6=(e,t,n,a=un)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[a.matMul(k("a",e,t,n),k("b",e,t,n),k("transposeA",e,t,n),k("transposeB",e,t,n))];case"Einsum":return[a.einsum(k("equation",e,t,n),...k("tensors",e,t,n))];case"Transpose":return[a.transpose(k("x",e,t,n),k("perm",e,t,n))];case"_FusedMatMul":let[r,s]=k("fusedOps",e,t,n),i=r==="biasadd",o=s==="prelu",l=k("numArgs",e,t,n),u=k("leakyreluAlpha",e,t,n);if(i){if(o&&l!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&l!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[p,d]=k("args",e,t,n);return[a.fused.matMul({a:k("a",e,t,n),b:k("b",e,t,n),transposeA:k("transposeA",e,t,n),transposeB:k("transposeB",e,t,n),bias:p,activation:s,preluActivationWeights:d,leakyreluAlpha:u})];default:throw TypeError(`Node type ${e.op} is not implemented`)}},l6=(e,t,n,a=un)=>{switch(e.op){case"EuclideanNorm":return[a.euclideanNorm(k("x",e,t,n),k("axis",e,t,n),k("keepDims",e,t,n))];case"FusedBatchNorm":case"FusedBatchNormV2":return[a.batchNorm(k("x",e,t,n),k("mean",e,t,n),k("variance",e,t,n),k("offset",e,t,n),k("scale",e,t,n),k("epsilon",e,t,n))];case"FusedBatchNormV3":return[a.batchNorm(k("x",e,t,n),k("mean",e,t,n),k("variance",e,t,n),k("offset",e,t,n),k("scale",e,t,n),k("epsilon",e,t,n))];case"LRN":return[a.localResponseNormalization(k("x",e,t,n),k("radius",e,t,n),k("bias",e,t,n),k("alpha",e,t,n),k("beta",e,t,n))];case"Softmax":return[a.softmax(k("x",e,t,n))];case"LogSoftmax":return[a.logSoftmax(k("x",e,t,n))];case"SparseToDense":return[a.sparseToDense(k("sparseIndices",e,t,n),k("outputShape",e,t,n),k("sparseValues",e,t,n),k("defaultValue",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},u6=(e,t,n,a=un)=>{switch(e.op){case"Max":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.max(k("x",e,t,n),o,l)]}case"Mean":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.mean(k("x",e,t,n),o,l)]}case"Min":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.min(k("x",e,t,n),o,l)]}case"Sum":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.sum(k("x",e,t,n),o,l)]}case"All":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.all(k("x",e,t,n),o,l)]}case"Any":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.any(k("x",e,t,n),o,l)]}case"ArgMax":{let o=k("axis",e,t,n);return[a.argMax(k("x",e,t,n),o)]}case"ArgMin":{let o=k("axis",e,t,n);return[a.argMin(k("x",e,t,n),o)]}case"Prod":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.prod(k("x",e,t,n),o,l)]}case"Cumprod":{let o=k("axis",e,t,n),l=k("exclusive",e,t,n),u=k("reverse",e,t,n);return[a.cumprod(k("x",e,t,n),o,l,u)]}case"Cumsum":{let o=k("axis",e,t,n),l=k("exclusive",e,t,n),u=k("reverse",e,t,n);return[a.cumsum(k("x",e,t,n),o,l,u)]}case"Bincount":let r=k("x",e,t,n),s=k("weights",e,t,n),i=k("size",e,t,n);return[a.bincount(r,s,i)];case"DenseBincount":{let o=k("x",e,t,n),l=k("weights",e,t,n),u=k("size",e,t,n),p=k("binaryOutput",e,t,n);return[a.denseBincount(o,l,u,p)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},p6=(e,t,n,a=un)=>{switch(e.op){case"ConcatV2":case"Concat":{let r=k("n",e,t,n),s=k("axis",e,t,n),i=k("tensors",e,t,n);return i=i.slice(0,r),[a.concat(i,s)]}case"Gather":{let r=k("x",e,t,n),s=k("indices",e,t,n);return[a.gather(r,a.cast(s,"int32"),0)]}case"GatherV2":{let r=k("axis",e,t,n),s=k("batchDims",e,t,n),i=k("x",e,t,n),o=k("indices",e,t,n);return[a.gather(i,a.cast(o,"int32"),r,s)]}case"Reverse":{let r=k("dims",e,t,n),s=[];for(let o=0;o{let r=k("axis",e,t,n),s=k("tensors",e,t,n),i=s[0].shape,o=a.squeeze(s[0]).shape,l=s.map(u=>{let p=v.arraysEqual(u.shape,i);if(!p&&!v.arraysEqual(a.squeeze(u).shape,o))throw new Error("the input tensors shape does not match");return p?u:a.reshape(u,i)});return[a.stack(l,r)]});case"Unpack":{let r=k("axis",e,t,n),s=k("tensor",e,t,n);return a.unstack(s,r)}case"Tile":{let r=k("reps",e,t,n);return[a.tile(k("x",e,t,n),r)]}case"Split":case"SplitV":{let r=k("axis",e,t,n),s=k("numOrSizeSplits",e,t,n),i=k("x",e,t,n);return a.split(i,s,r)}case"ScatterNd":{let r=k("indices",e,t,n),s=k("values",e,t,n),i=k("shape",e,t,n);return[a.scatterND(r,s,i)]}case"GatherNd":{let r=k("x",e,t,n),s=k("indices",e,t,n);return[a.gatherND(r,s)]}case"SparseToDense":{let r=k("sparseIndices",e,t,n),s=k("outputShape",e,t,n),i=k("sparseValues",e,t,n),o=k("defaultValue",e,t,n);return[a.sparseToDense(r,i,s,i.dtype===o.dtype?o:a.cast(o,i.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},c6=(e,t,n,a=un)=>{switch(e.op){case"SparseFillEmptyRows":{let{outputIndices:r,outputValues:s,emptyRowIndicator:i,reverseIndexMap:o}=a.sparse.sparseFillEmptyRows(k("indices",e,t,n),k("values",e,t,n),k("denseShape",e,t,n),k("defaultValue",e,t,n));return[r,s,i,o]}case"SparseReshape":{let{outputIndices:r,outputShape:s}=a.sparse.sparseReshape(k("inputIndices",e,t,n),k("inputShape",e,t,n),k("newShape",e,t,n));return[r,s]}case"SparseSegmentMean":return[a.sparse.sparseSegmentMean(k("data",e,t,n),k("indices",e,t,n),k("segmentIds",e,t,n))];case"SparseSegmentSum":return[a.sparse.sparseSegmentSum(k("data",e,t,n),k("indices",e,t,n),k("segmentIds",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},d6=(e,t,n,a=un)=>{switch(e.op){case"FFT":return[a.fft(k("x",e,t,n))];case"IFFT":return[a.ifft(k("x",e,t,n))];case"RFFT":return[a.rfft(k("x",e,t,n))];case"IRFFT":return[a.irfft(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},h6=(e,t,n,a=un)=>{switch(e.op){case"StringNGrams":{let{nGrams:r,nGramsSplits:s}=a.string.stringNGrams(k("data",e,t,n),k("dataSplits",e,t,n),k("separator",e,t,n),k("nGramWidths",e,t,n),k("leftPad",e,t,n),k("rightPad",e,t,n),k("padWidth",e,t,n),k("preserveShortSequences",e,t,n));return[r,s]}case"StringSplit":{let{indices:r,values:s,shape:i}=a.string.stringSplit(k("input",e,t,n),k("delimiter",e,t,n),k("skipEmpty",e,t,n));return[r,s,i]}case"StringToHashBucketFast":return[a.string.stringToHashBucketFast(k("input",e,t,n),k("numBuckets",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},m6=(e,t,n,a=un)=>{switch(e.op){case"Cast":return[a.cast(k("x",e,t,n),k("dtype",e,t,n))];case"ExpandDims":{let r=k("axis",e,t,n);return[a.expandDims(k("x",e,t,n),r)]}case"Squeeze":{let r=k("axis",e,t,n);return[a.squeeze(k("x",e,t,n),r)]}case"Reshape":return[a.reshape(k("x",e,t,n),k("shape",e,t,n))];case"MirrorPad":return[a.mirrorPad(k("x",e,t,n),k("padding",e,t,n),k("mode",e,t,n))];case"PadV2":case"Pad":return[a.pad(k("x",e,t,n),k("padding",e,t,n),k("constantValue",e,t,n))];case"SpaceToBatchND":{let r=k("blockShape",e,t,n),s=k("paddings",e,t,n);return[a.spaceToBatchND(k("x",e,t,n),r,s)]}case"BatchToSpaceND":{let r=k("blockShape",e,t,n),s=k("crops",e,t,n);return[a.batchToSpaceND(k("x",e,t,n),r,s)]}case"DepthToSpace":{let r=k("blockSize",e,t,n),s=k("dataFormat",e,t,n).toUpperCase();return[a.depthToSpace(k("x",e,t,n),r,s)]}case"BroadcastTo":return[a.broadcastTo(k("x",e,t,n),k("shape",e,t,n))];case"BroadcastArgs":return[a.broadcastArgs(k("s0",e,t,n),k("s1",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Dk(e,t,n,a,r=P){let s=((i,o,l)=>{switch(i.category){case"arithmetic":return r(()=>GH(i,o,l));case"basic_math":return r(()=>HH(i,o,l));case"control":return ZH(i,o,l);case"convolution":return r(()=>JH(i,o,l));case"creation":return r(()=>QH(i,o,l));case"dynamic":return e6(i,o,l);case"evaluation":return r(()=>t6(i,o,l));case"image":return r(()=>s6(i,o,l));case"graph":return r(()=>n6(i,o,l));case"logical":return r(()=>i6(i,o,l));case"matrices":return r(()=>o6(i,o,l));case"normalization":return r(()=>l6(i,o,l));case"reduction":return r(()=>u6(i,o,l));case"slice_join":return r(()=>p6(i,o,l));case"sparse":return r(()=>c6(i,o,l));case"spectral":return r(()=>d6(i,o,l));case"string":return r(()=>h6(i,o,l));case"transformation":return r(()=>m6(i,o,l));case"hash_table":return r6(i,o,l,a);case"custom":let u=e2(i.op);if(u&&u.customExecutor)return u.customExecutor(new UH(i,o,l));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.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 v.isPromise(s)?s.then(i=>[].concat(i)):[].concat(s)}var Rk=class{constructor(e={},t={},n={},a={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=a,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(){let e=[];for(let t=0;tt.id===0&&t.iterationId===0?"":`${t.frameName}-${t.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)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let 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))}else throw new Error("Cannot increase frame iteration, the context is empty")}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(let t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(let t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}};function Mk(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,u=Object.keys(e).map(c=>Xn(c)[0]),p=[];a!=null&&(p=a.map(c=>Xn(c.name)[0]));let d=[...t];for(;d.length>0;){let c=d.pop();if((k2(c)||x6(c)||v6(c))&&i==null&&(i=c,o=i.children.map(h=>h.name).filter(h=>r.has(h))),r.add(c.name),n[c.name]==null&&u.indexOf(c.name)===-1&&p.indexOf(c.name)===-1){if(c.inputs.length===0){s.push(c.name);continue}c.inputs.forEach(h=>{l.has(h.name)||(l.add(h.name),d.push(h))})}}return{inputs:e,outputs:t,usedNodes:r,missingInputs:s,dynamicNode:i,syncInputs:o}}function f6(e,t,n){let{usedNodes:a,inputs:r}=n,s=[],i=Object.keys(r).map(p=>Xn(p)[0]).map(p=>e.nodes[p]),o=e.initNodes;i.forEach(p=>{a.has(p.name)&&s.push(p)}),e.weights.forEach(p=>{a.has(p.name)&&s.push(p)}),o!=null&&o.forEach(p=>{a.has(p.name)&&s.push(p)});let l=new Set,u=[];for(;s.length>0;){let p=s.pop();l.add(p.name),t[p.name]||u.push(p),p.children.forEach(d=>{!l.has(d.name)&&a.has(d.name)&&d.inputs.every(c=>l.has(c.name))&&s.push(d)})}return u}var g6=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],y6=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],b6=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function k2(e){return g6.indexOf(e.op)>=0}function x6(e){return y6.indexOf(e.op)>=0}function v6(e){return b6.indexOf(e.op)>=0}var nx=class{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this.intermediateTensors={},this.keepTensorForDebug=!1,this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,e.functions!=null&&Object.keys(e.functions).forEach(n=>{this._functionExecutorMap[n]=new nx(e.functions[n],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){let t=Object.keys(e).map(n=>e[n].map(a=>a.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=>{let 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){let n=e.map(r=>r.name).sort(),a=t.map(r=>r.name).sort();return n.join(this.SEPERATOR)+"--"+a.join(this.SEPERATOR)}compile(e,t){let n=Mk(e,t,this.weightMap,this._initNodes),{missingInputs:a,dynamicNode:r,syncInputs:s}=n;if(r!=null)throw new Error(`This execution contains the node '${r.name}', which has the dynamic op '${r.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${s}]`);if(a.length>0){let i=t.map(l=>l.name),o=Object.keys(e);throw new Error(`Cannot compute the outputs [${i}] from the provided inputs [${o}]. Missing the following inputs: [${a}]`)}return f6(this.graph,this.weightMap,n)}execute(e,t){e=this.mapInputs(e);let n=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);let a=n.map(p=>this.graph.nodes[Xn(p)[0]]),r=t.map(p=>Xn(p)[0]),s=r.map(p=>this.graph.nodes[p]);this.resetIntermediateTensors(),s.length===0&&(s=this._outputs);let i=this.getCompilationKey(a,s),o=this.compiledMap.get(i);o==null&&(o=this.compile(e,s),this.compiledMap.set(i,o));let l={},u={};return P(()=>{let p=new Rk(this.weightMap,l,u,this.functionExecutorMap),d=Object.assign({},this.weightMap);Object.keys(e).forEach(m=>{let[f,g]=Xn(m),y=[];y[g]=e[m],d[f]=y});let c=this.getFrozenTensorIds(d),h={};for(let m=0;mvn(m,d,p))})}getFrozenTensorIds(e){let t=[].concat.apply([],Object.keys(e).map(n=>e[n]).map(n=>n.map(a=>a.id)));return new Set(t)}checkTensorForDisposal(e,t,n,a,r,s,i){t.category==="control"||s.indexOf(e)!==-1||(n[e].forEach(o=>{o!=null&&(i[o.id]=(i[o.id]||0)+t.children.length)}),t.inputs.forEach(o=>{if(o.category!=="control"){let l=kH(o.name,n,a);l!=null&&l.forEach(u=>{if(u&&!u.kept&&!r.has(u.id)){let p=i[u.id];if(p===1){if(!this.keepTensorForDebug)u.dispose();else{let[d,c]=ar(t.name,a);this.intermediateTensors[d]?this.intermediateTensors[d][c]=u:(this.intermediateTensors[d]=[],this.intermediateTensors[d][c]=u)}delete i[u.id]}else p!=null&&i[u.id]--}})}}))}async executeAsync(e,t){return this._executeAsync(e,t)}disposeIntermediateTensors(){!this.intermediateTensors||(Object.keys(this.intermediateTensors).forEach(e=>this.intermediateTensors[e].forEach(t=>t.dispose())),this.disposeTensorsMap())}disposeTensorsMap(){!this.tensorsMap||Object.keys(this.tensorsMap).forEach(e=>{this.tensorsMap[e].forEach(t=>{t&&!t.kept&&!t.isDisposed&&!this.keepIds.has(t.id)&&t.dispose()})})}getIntermediateTensors(){return this.tensorsMap}resetIntermediateTensors(){for(let e in this.intermediateTensors)this.intermediateTensors[e].forEach(t=>t.dispose()),delete this.intermediateTensors[e]}async _executeAsync(e,t,n=!1,a={},r={}){n||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));try{this.keepTensorForDebug=H().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(u){console.warn(u.message)}this.resetIntermediateTensors();let s=new Rk(this.weightMap,a,r,this.functionExecutorMap);this.tensorsMap=await this.executeWithControlFlow(e,s,t,n);let i=t.map(u=>vn(u,this.tensorsMap,s)),o=i.map(u=>u.id),l=Object.keys(e).map(u=>e[u].id);return this.keepIds=new Set([...o,...l,...this.weightIds]),this.keepTensorForDebug||this.disposeTensorsMap(),this.parent==null&&s.dispose(this.keepIds),i}async executeFunctionAsync(e,t,n){let a=e.reduce((r,s,i)=>(r[this.inputs[i].name]=s,r),{});return this._executeAsync(a,this.outputNodes,!0,t,n)}async executeWithControlFlow(e,t,n,a){let r=Object.keys(e),s=r.map(b=>this.graph.nodes[Xn(b)[0]]),i=n.map(b=>Xn(b)[0]),o=i.map(b=>this.graph.nodes[b]);o.length===0&&(o=this._outputs);let{usedNodes:l,missingInputs:u,dynamicNode:p,syncInputs:d}=Mk(e,o,this.weightMap,this._initNodes),c=[...s,...this.graph.weights,...this._initNodes||[]].map(b=>({node:b,contexts:t.currentContext})),h=Object.assign({},this.weightMap);Object.keys(e).forEach(b=>{let[x,w]=Xn(b),I=[];I[w]=e[b],h[x]=I});let m={},f=this.getFrozenTensorIds(h),g={};for(;c.length>0;){let b=this.processStack(s,c,t,h,g,f,i,m,l);await Promise.all(b)}p==null&&!a&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let y=o.filter(b=>!k2(b)&&!vn(b.name,h,t)).map(b=>b.name);if(y.length>0){let b="";throw p!=null&&(b=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${d}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${r}]. Consider providing the following inputs: [${u}]. ${b}`)}return h}processStack(e,t,n,a,r,s,i,o,l){let u=[];for(;t.length>0;){let p=t.pop();n.currentContext=p.contexts;let d="";if(p.node.op==="Enter"&&k("isConstant",p.node,a,n)&&([d]=ar(p.node.name,n)),a[p.node.name]==null){let c=Dk(p.node,a,n,this._resourceManager);d||([d]=ar(p.node.name,n));let h=n.currentContext;v.isPromise(c)?u.push(c.then(m=>(a[d]=m,n.currentContext=h,this.checkTensorForDisposal(d,p.node,a,n,s,i,o),this.processChildNodes(p.node,t,n,a,r,l),m))):(a[d]=c,this.checkTensorForDisposal(d,p.node,a,n,s,i,o),this.processChildNodes(p.node,t,n,a,r,l))}else this.processChildNodes(p.node,t,n,a,r,l)}return u}processChildNodes(e,t,n,a,r,s){e.children.forEach(i=>{let[o]=ar(i.name,n);r[o]||!s.has(i.name)||(i.op==="Merge"?i.inputNames.some(l=>!!vn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})):i.inputNames.every(l=>!!vn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(t=>t.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{let n=e[t],[a]=Xn(t),r=this.graph.nodes[a];if(r.attrParams.shape&&r.attrParams.shape.value){let s=r.attrParams.shape.value,i=s.length===n.shape.length&&n.shape.every((o,l)=>s[l]===-1||s[l]===o);v.assert(i,()=>`The shape of dict['${r.name}'] provided in model.execute(dict) must be [${s}], but was [${n.shape}]`)}r.attrParams.dtype&&r.attrParams.dtype.value&&v.assert(n.dtype===r.attrParams.dtype.value,()=>`The dtype of dict['${r.name}'] provided in model.execute(dict) must be ${r.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(e){let t={};for(let n in e)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[n]!=null){let a=this._signature.inputs[n];t[a.name]=e[n]}else t[n]=e[n];return t}checkInputs(e){let t=Object.keys(e).filter(n=>{let[a]=Xn(n);return this.graph.nodes[a]==null});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(t=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[t]!=null?this._signature.outputs[t].name:t,{})}checkOutputs(e){e.forEach(t=>{let[n]=Xn(t);if(!this.graph.nodes[n])throw new Error(`The output '${t}' is not found in the graph`)})}},w6=class{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(let e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(let e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}},k6="?tfjs-format=file",I6="model.json",k0=class{constructor(e,t={},n=Ut){this.modelUrl=e,this.loadOptions=t,this.version="n/a",this.io=n,t==null&&(this.loadOptions={}),this.resourceManager=new w6}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}get modelStructuredOutputKeys(){return this.structuredOutputKeys}findIOHandler(){let e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=this.io.browserHTTPRequest(e,this.loadOptions);else{let t=this.io.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(this.io.browserHTTPRequest(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]}}load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let e=this.handler.load();return v.isPromise(e)?e.then(t=>this.loadSync(t)):this.loadSync(e)}loadSync(e){this.artifacts=e;let t=this.artifacts.modelTopology,n=this.artifacts.signature;if(this.artifacts.userDefinedMetadata!=null){let r=this.artifacts.userDefinedMetadata;r.signature!=null&&(n=r.signature),r.structuredOutputKeys!=null&&(this.structuredOutputKeys=r.structuredOutputKeys)}this.signature=n,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;let a=this.io.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new nx(Ek.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(a),this.executor.resourceManager=this.resourceManager,e.modelInitializer!=null&&e.modelInitializer.node!=null){let r=Ek.Instance.transformGraph(e.modelInitializer);this.initializer=new nx(r),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=e.initializerSignature}return!0}async save(e,t){if(typeof e=="string"){let n=this.io.getSaveHandlers(e);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${e}'`);e=n[0]}if(e.save==null)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){let n=this.execute(e,this.outputNodes);if(this.structuredOutputKeys){let a=n instanceof Te?[n]:n,r={};return a.forEach((s,i)=>r[this.structuredOutputKeys[i]]=s),r}return n}normalizeInputs(e){if(!(e instanceof Te)&&!Array.isArray(e)){if(this.signature!=null&&this.signature.inputs!=null)for(let a in this.signature.inputs){let r=this.signature.inputs[a];r.resourceId!=null&&(e[a]=this.resourceIdToCapturedInput[r.resourceId])}return e}e=Array.isArray(e)?e:[e];let t=Object.keys(this.resourceIdToCapturedInput).length;if(e.length+t!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-t} non-resource placeholders, while there are ${e.length} input tensors provided.`);let n=0;return this.inputNodes.reduce((a,r)=>{let s=this.signature?this.signature.inputs[r]:null;return s!=null&&s.resourceId!=null?a[r]=this.resourceIdToCapturedInput[s.resourceId]:a[r]=e[n++],a},{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}executeInitializerGraph(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(e){if(this.resourceIdToCapturedInput={},this.initializerSignature){let t=Object.keys(this.initializerSignature.outputs);for(let n=0;n1?n:n[0]}async executeAsync(e,t){this.resourceIdToCapturedInput==null&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,n)=>(t[n]=[e[n]],t),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&_e(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function S6(e,t={},n=Ut){if(e==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");t==null&&(t={}),t.fromTFHub&&typeof e=="string"&&(e=N6(e));let a=new k0(e,t,n);return await a.load(),a}function T6(e){if(e==null)throw new Error("modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model");let t;if(e instanceof Array){let[a,r]=e;if(!a)throw new Error("modelJSON must be the first element of the array");if(!r||!(r instanceof ArrayBuffer))throw new Error("An ArrayBuffer of weights must be the second element of the array");if(!("modelTopology"in a))throw new Error("Model JSON is missing 'modelTopology'");if(!("weightsManifest"in a))throw new Error("Model JSON is missing 'weightsManifest'");let s=Ut.getWeightSpecs(a.weightsManifest),i=Ut.getModelArtifactsForJSONSync(a,s,r);t=Ut.fromMemorySync(i)}else if("load"in e)t=e;else if("modelTopology"in e&&"weightSpecs"in e&&"weightData"in e)t=Ut.fromMemorySync(e);else throw new Error("Unknown model format");let n=new k0(t);return n.load(),n}function N6(e){return e.endsWith("/")||(e=e+"/"),`${e}${I6}${k6}`}var C6="4.0.0",I2={};Ae(I2,{CSVDataset:()=>F2,Dataset:()=>Mu,FileDataSource:()=>z2,TextLineDataset:()=>$2,URLDataSource:()=>W2,array:()=>Y6,csv:()=>oj,func:()=>lj,generator:()=>uj,microphone:()=>cj,version_data:()=>dj,webcam:()=>pj,zip:()=>Z6});var _6=us(Hh()),E6=us(Hh());function A6(e,t){return Mh(e,t)}function Mh(e,t,n=new Map,a=new Set){if(e==null)return null;if(typeof Blob=="function"&&e instanceof Blob)return e.slice();if(a.has(e))throw new Error("Circular references are not supported.");if(n.has(e))return n.get(e);let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(r.recurse)if(fl(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=Mh(o,t,n,a);s[i]=l}return a.delete(e),e.__proto__&&(s.__proto__=e.__proto__),s}else throw new Error(`Can't recurse into non-iterable type: ${e}`);else return n.set(e,r.value),r.value}function $6(e,t=T2){return S2(e,t)}function S2(e,t,n=new Set){let a=e[0];if(n.has(a))throw new Error("Circular references are not supported.");let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(r.recurse)if(fl(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(u=>u[i]),l=S2(o,t,n);s[i]=l}return n.delete(a),s}else throw new Error(`Can't recurse into non-iterable type: ${a}`);else return r.value}function T2(e){return e===null?null:fl(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function N2(e,t){let n=new Map;Mh(e,t,n);for(let a of Array.from(n.keys())){let r=n.get(a);if(v.isPromise(r)){let s=await r;n.set(a,s)}}return Mh(e,t,n)}function fl(e){let t=!1;if(H().get("IS_BROWSER"))t=e instanceof TextDecoder;else{let{StringDecoder:n}=wI();t=e instanceof n}return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Te)&&!(e instanceof Promise)&&!t)}function F6(e){return e==null||D6(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Te||v.isTypedArray(e)}function D6(e){return e===null||typeof e!="object"&&typeof e!="function"}function R6(e){return A6(e,M6)}function M6(e){return e instanceof Te?{value:e.clone(),recurse:!1}:fl(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var C2=class{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,e==null)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 this.length()===0}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(let t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let 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.");let 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.");let t=this.wrap(this.begin+e),n=this.get(t);return this.set(t,this.pop()),n}},I0=class extends C2{constructor(){super(I0.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){let e=this.capacity*2,t=new Array(e),n=this.length();for(let a=0;at===!0)}rowMajorBatch(e,t=!0){return new U6(this,e,t)}columnMajorBatch(e,t=!0,n=T2){return this.rowMajorBatch(e,t).map(a=>$6(a,n))}concatenate(e,t){return new E2(_2([this,e]),t)}take(e){return e<0||e==null?this:new V6(this,e)}skip(e){return e<0||e==null?this:new B6(this,e)}prefetch(e){return new A2(this,e)}shuffle(e,t){return new X6(this,e,t)}serial(){return new W6(this)}},L6=class extends tn{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};let e=this.items[this.trav];return this.trav++,{value:R6(e),done:!1}}},z6=class extends tn{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}}},W6=class extends tn{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()}},B6=class extends tn{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()}},U6=class extends tn{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(){let e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}},G6=class extends tn{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(;;){let e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;_e(e.value)}}},H6=class extends tn{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Va.getTensorsInContainer(e.value),n=this.transform(e.value),a=Va.getTensorsInContainer(n);for(let r of t)Va.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},j6=class extends tn{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}}}},Pk=class extends tn{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Va.getTensorsInContainer(e.value),n=await this.transform(e.value),a=Va.getTensorsInContainer(n);for(let r of t)Va.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},T0=class extends tn{constructor(){super(),this.outputQueue=new I0,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},q6=class extends T0{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let e=await this.upstream.next();if(e.done)return!1;let t=Va.getTensorsInContainer(e.value),n=this.transform(e.value),a=Va.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let r of t)Va.isTensorInList(r,a)||r.dispose();return!0}},E2=class extends tn{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,this.iterator==null){let n=await this.moreIterators.next();if(n.done)return{value:null,done:!0};this.iterator=n.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}},Yr;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(Yr||(Yr={}));var K6=class extends tn{constructor(e,t=Yr.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;function a(s){return s instanceof tn?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await N2(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case Yr.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case Yr.SHORTEST:return{value:null,done:!0};case Yr.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},A2=class extends tn{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new C2(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}},X6=class extends A2{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=E6.alea(n||v.now().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();){let e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(t.done)this.upstreamExhausted=!0;else return this.refill(),t}return{value:null,done:!0}}},Mu=class{constructor(){this.size=null}batch(e,t=!0){let n=this;v.assert(e>0,()=>`batchSize needs to be positive, but it is - ${e}`);let a;return this.size===1/0||this.size==null?a=this.size:t?a=Math.ceil(this.size/e):a=Math.floor(this.size/e),Kn(async()=>(await n.iterator()).columnMajorBatch(e,t,J6),a)}concatenate(e){let t=this,n;return this.size===1/0||e.size===1/0?n=1/0:this.size!=null&&e.size!=null?n=this.size+e.size:n=null,Kn(async()=>(await t.iterator()).concatenate(await e.iterator()),n)}filter(e){let t=this,n;return this.size===1/0?n=1/0:n=null,Kn(async()=>(await t.iterator()).filter(a=>P(()=>e(a))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return Kn(async()=>(await t.iterator()).map(n=>P(()=>e(n))),this.size)}mapAsync(e){let t=this;return Kn(async()=>(await t.iterator()).mapAsync(e),this.size)}prefetch(e){if(e==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");let t=this;return Kn(async()=>(await t.iterator()).prefetch(e),this.size)}repeat(e){let t=this,n;return this.size!=null&&e>0?n=this.size*e:e===0?n=0:this.size!=null&&(e===void 0||e<0)?n=1/0:n=null,Kn(async()=>{let a=S0(async()=>({value:await t.iterator(),done:!1}));return P6(a.take(e))},n)}skip(e){let t=this,n;return this.size!=null&&e>=0&&this.size>=e?n=this.size-e:this.size!=null&&(this.size(await t.iterator()).skip(e),n)}shuffle(e,t,n=!0){if(e==null||e<0)throw this.size==null?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)`);let a=this,r=_6.alea(t||v.now().toString());return Kn(async()=>{let s=r.int32();return n&&(s+=r.int32()),(await a.iterator()).shuffle(e,s.toString())},this.size)}take(e){let t=this,n;return this.size!=null&&this.size>e?n=e:this.size!=null&&this.size<=e?n=this.size:n=null,Kn(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()}};Mu.MAX_BUFFER_SIZE=1e4;function Kn(e,t=null){return new class extends Mu{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function Y6(e){return Kn(async()=>_2(e),e.length)}function Z6(e){if(!fl(e))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(e))for(let n=0;n{let n=await N2(e,a=>{if(a instanceof Mu)return{value:a.iterator(),recurse:!1};if(fl(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return O6(n,Yr.SHORTEST)},t)}function J6(e){if(e===null)return null;let t=e[0];return F6(t)?{value:Q6(e),recurse:!1}:{value:null,recurse:!0}}function Q6(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Te?Ft(e):kn(e)}var $2=class extends Mu{constructor(e){super(),this.input=e}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` -`).map(e=>(e.endsWith("\r")&&(e=e.slice(0,-1)),e))}},Zd='"',Np=Symbol("out"),Ok=Symbol("field"),Jd=Symbol("quote"),fb=Symbol("quoteafterquote"),Lk=Symbol("quoteinquote"),F2=class extends Mu{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 $2(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(v.assert(t.delimiter==null,()=>"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(){let 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&&v.assert(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);let t=this.fullColumnNames.reduce((a,r)=>(a[r]=a[r]+1||1,a),{}),n=Object.keys(t).filter(a=>t[a]>1);if(v.assert(n.length===0,()=>"Duplicate column names found: "+n.toString()),this.columnConfigs){for(let a of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(a)===-1)throw new Error('The key "'+a+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let e=await(await this.base.iterator()).next();if(e.done)throw new Error("No data was found for CSV parsing.");let t=e.value;return this.parseRow(t,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map(t=>this.makeDataElement(t))}makeDataElement(e){let t=this.parseRow(e),n={},a={};for(let r=0;r14||!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=e.includeSpectrogram!==!1,this.includeWaveform=e.includeWaveform===!0,!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(!H().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let t=new D2(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(n){throw new Error(`Error thrown while initializing video stream: ${n.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,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,n=await this.getAudioData();if(this.includeSpectrogram){let a=this.flattenQueue(n.freqDataQueue);e=this.getTensorFromAudioDataArray(a,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let a=this.flattenQueue(n.timeDataQueue);t=this.getTensorFromAudioDataArray(a,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let e=[],t=[],n=0;return new Promise(a=>{let r=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&a({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(r),a({freqDataQueue:e,timeDataQueue:t}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&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){let t=e[0].length,n=new Float32Array(e.length*t);return e.forEach((a,r)=>n.set(a,r*t)),n}getTensorFromAudioDataArray(e,t){let n=new Float32Array(v.sizeFromShape(t));return n.set(e,n.length-e.length),kn(n,t)}},R2=class extends tn{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=Ke([0],"int32"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,a=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,r=(1-n)/2,s=(1-a)/2,i=r+n,o=a+s;this.cropBox=_a([s,r,o,i],[1,4])}else this.cropBox=_a([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(!H().get("IS_BROWSER"))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}let n=new R2(e,t);return await n.start(),n}async start(){this.webcamConfig.facingMode&&v.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`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=co.fromPixels(this.webcamVideoElement)}catch(t){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(t)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(t){throw new Error(`Error thrown cropping the video: ${t.message}`)}finally{e.dispose()}else return{value:e,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(e){return P(()=>{let t=Zt(oe(e,"float32"),0),n;n=za.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let a=n.shape;return W(n,a.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.")}},M2=class{},P2=class extends tn{split(e){return new ej(this,e)}},ej=class extends P2{constructor(e,t){super(),this.upstream=e,this.impl=new tj(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},tj=class extends T0{constructor(e,t){super(),this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let e=await this.upstream.next();if(e.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(let n of t.slice(0,-1))this.outputQueue.push(n);return this.carryover=t[t.length-1],!0}},nj=class extends tn{decodeUTF8(){return new aj(this)}},aj=class extends P2{constructor(e){super(),this.upstream=e,this.impl=new rj(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},rj=class extends T0{constructor(e){if(super(),this.upstream=e,H().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=wI();this.decoder=new t("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let e=await this.upstream.next(),t;if(e.done)return!1;t=e.value;let n;return H().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},O2=class extends nj{constructor(e,t={}){super(),this.file=e,this.options=t,v.assert(e instanceof Uint8Array||(H().get("IS_BROWSER")?e instanceof File||e instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((e,t)=>{let n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,n)));else{let a=new FileReader;a.onload=s=>{let i=a.result;if(i instanceof ArrayBuffer&&(i=new Uint8Array(i)),!(i instanceof Uint8Array))return t(new TypeError("FileReader returned unknown type."));e(i)},a.onabort=s=>t(new Error("Aborted")),a.onerror=s=>t(new Error(s.type));let r=this.file.slice(this.offset,n);a.readAsArrayBuffer(r)}this.offset=n}),done:!1}}};async function sj(e,t={},n){let a,r;typeof e=="string"?a=e:(a=e.url,r=ij(e));let s=await(n||v.fetch)(a,r);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new O2(i,t)}else throw new Error(s.statusText)}var ij=e=>({method:e.method,headers:e.headers,body:e.body,mode:e.mode,credentials:e.credentials,cache:e.cache,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity});function L2(e){return typeof e=="string"&&e.slice(0,7)==="file://"}var z2=class extends M2{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(L2(this.input)&&H().get("IS_NODE")){let e=xx();this.input=e.readFileSync(this.input.slice(7))}return new O2(this.input,this.options)}},W2=class extends M2{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return L2(this.url)?new z2(this.url,this.fileOptions).iterator():sj(this.url,this.fileOptions)}};function oj(e,t={}){return new F2(new W2(e),t)}function lj(e){let t=S0(e);return Kn(async()=>t)}function uj(e){return Kn(async()=>{let t=await e();return S0(()=>t.next())})}async function pj(e,t){return R2.create(e,t)}async function cj(e){return D2.create(e)}var dj="4.0.0";function ge(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&v.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var hj=cr.whereImpl,N0=class extends rc{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new jh(this,Na())}nextDataId(){return N0.nextDataId++}write(e,t,n){this.firstUse&&(this.firstUse=!1,H().get("IS_NODE")&&N.warn(` + ${a}, and tensor's shape is: ${e.shape}`);let s=e.shape.slice(1),i=tx(s,n),o=a===0?0:e.size/a,l=P(()=>{let p=[];e=W(e,[1,a,o]);for(let d=0;d{switch(e.op){case"If":case"StatelessIf":{let a=k("thenBranch",e,t,n),r=k("elseBranch",e,t,n),s=k("cond",e,t,n),i=k("args",e,t,n);return(await s.data())[0]?n.functionMap[a].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap):n.functionMap[r].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap)}case"While":case"StatelessWhile":{let a=k("body",e,t,n),r=k("cond",e,t,n),s=k("args",e,t,n),i=await n.functionMap[r].executeFunctionAsync(s,n.tensorArrayMap,n.tensorListMap),o=s.map(p=>p.id),l=await i[0].data();i.forEach(p=>{!p.kept&&o.indexOf(p.id)===-1&&p.dispose()});let u=s;for(;l[0];){let p=u;u=await n.functionMap[a].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);let d=u.map(h=>h.id);p.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&d.indexOf(h.id)===-1&&h.dispose()});let c=await n.functionMap[r].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);l=await c[0].data(),c.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&d.indexOf(h.id)===-1&&h.dispose()})}return u}case"LoopCond":{let a=k("pred",e,t,n);return[kr(a)]}case"Switch":{let a=k("pred",e,t,n),r=k("data",e,t,n);return r.kept||(r=kr(r)),(await a.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{let a=e.inputNames.find(r=>vn(r,t,n)!==void 0);if(a){let r=vn(a,t,n);return[kr(r)]}return}case"Enter":{let a=k("frameName",e,t,n),r=k("tensor",e,t,n);return n.enterFrame(a),[kr(r)]}case"Exit":{let a=k("tensor",e,t,n);return n.exitFrame(),[kr(a)]}case"NextIteration":{let a=k("tensor",e,t,n);return n.nextIteration(),[kr(a)]}case"TensorArrayV3":{let a=k("size",e,t,n),r=k("dtype",e,t,n),s=k("elementShape",e,t,n),i=k("dynamicSize",e,t,n),o=k("clearAfterRead",e,t,n),l=k("identicalElementShapes",e,t,n),u=k("name",e,t,n),p=new jH(u,r,a,s,l,i,o);return n.addTensorArray(p),[p.idTensor,xe(1)]}case"TensorArrayWriteV3":{let a=k("tensorArrayId",e,t,n),r=k("index",e,t,n),s=k("tensor",e,t,n),i=n.getTensorArray(a.id);return i.write(r,s),[i.idTensor]}case"TensorArrayReadV3":{let a=k("tensorArrayId",e,t,n),r=k("index",e,t,n);return[n.getTensorArray(a.id).read(r)]}case"TensorArrayGatherV3":{let a=k("tensorArrayId",e,t,n),r=k("indices",e,t,n),s=k("dtype",e,t,n);return[n.getTensorArray(a.id).gather(r,s)]}case"TensorArrayScatterV3":{let a=k("tensorArrayId",e,t,n),r=k("indices",e,t,n),s=k("tensor",e,t,n),i=n.getTensorArray(a.id);return i.scatter(r,s),[i.idTensor]}case"TensorArrayConcatV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id),s=k("dtype",e,t,n);return[r.concat(s)]}case"TensorArraySplitV3":{let a=k("tensorArrayId",e,t,n),r=k("tensor",e,t,n),s=k("lengths",e,t,n),i=n.getTensorArray(a.id);return i.split(s,r),[i.idTensor]}case"TensorArraySizeV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return[xe(r.size(),"int32")]}case"TensorArrayCloseV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return r.clearAndClose(),[r.idTensor]}case"TensorListSetItem":{let a=k("tensorListId",e,t,n),r=k("index",e,t,n),s=k("tensor",e,t,n),i=n.getTensorList(a.id);return i.setItem(r,s),[i.idTensor]}case"TensorListGetItem":{let a=k("tensorListId",e,t,n),r=k("index",e,t,n),s=k("elementShape",e,t,n),i=k("elementDType",e,t,n);return[n.getTensorList(a.id).getItem(r,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let a=k("indices",e,t,n),r=k("tensor",e,t,n),s=k("elementShape",e,t,n),i=k("numElements",e,t,n),o=XH(r,a,s,i);return n.addTensorList(o),[o.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let a=k("elementShape",e,t,n),r=k("elementDType",e,t,n),s;e.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=k(s,e,t,n),o=e.op==="TensorListReserve"?-1:i,l=KH(a,r,i,o);return n.addTensorList(l),[l.idTensor]}case"TensorListGather":{let a=k("tensorListId",e,t,n),r=k("indices",e,t,n),s=k("elementShape",e,t,n),i=k("elementDType",e,t,n);return[n.getTensorList(a.id).gather(r,i,s)]}case"TensorListStack":{let a=k("tensorListId",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n),i=k("numElements",e,t,n);return[n.getTensorList(a.id).stack(r,s,i)]}case"TensorListFromTensor":{let a=k("tensor",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n),i=qH(a,r,s);return n.addTensorList(i),[i.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id),s=k("dtype",e,t,n),i=k("elementShape",e,t,n);return[r.concat(s,i)]}case"TensorListPushBack":{let a=k("tensorListId",e,t,n),r=k("tensor",e,t,n),s=n.getTensorList(a.id);return s.pushBack(r),[s.idTensor]}case"TensorListPopBack":{let a=k("tensorListId",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n);return[n.getTensorList(a.id).popBack(r,s)]}case"TensorListSplit":{let a=k("tensor",e,t,n),r=k("elementShape",e,t,n),s=k("lengths",e,t,n),i=YH(a,s,r);return n.addTensorList(i),[i.idTensor]}case"TensorListLength":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id);return[xe(r.size(),"int32")]}case"TensorListResize":{let a=k("tensorListId",e,t,n),r=k("size",e,t,n),s=n.getTensorList(a.id).resize(r);return n.addTensorList(s),[s.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Fk(e,t,n){let[a,r]=k("fusedOps",e,t,n),s=a==="biasadd",i=!s,o=r==="prelu",l=a==="fusedbatchnorm",u=k("numArgs",e,t,n);if(s){if(o&&u!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&s&&u!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(l)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported");let p=k("strides",e,t,n),d=sh(e,t,n),c=k("dataFormat",e,t,n).toUpperCase(),h=k("dilations",e,t,n),[m,f]=k("args",e,t,n);i&&(f=m,m=void 0);let g=k("leakyreluAlpha",e,t,n);return{stride:p,pad:d,dataFormat:c,dilations:h,biasArg:m,preluArg:f,activationFunc:r,leakyreluAlpha:g}}var JH=(e,t,n,a=un)=>{switch(e.op){case"Conv1D":{let r=k("stride",e,t,n),s=k("pad",e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilation",e,t,n);return[a.conv1d(k("x",e,t,n),k("filter",e,t,n),r,s,i,o)]}case"Conv2D":{let r=k("strides",e,t,n),s=sh(e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilations",e,t,n);return[a.conv2d(k("x",e,t,n),k("filter",e,t,n),[r[1],r[2]],s,i,[o[1],o[2]])]}case"_FusedConv2D":{let{stride:r,pad:s,dataFormat:i,dilations:o,biasArg:l,preluArg:u,activationFunc:p,leakyreluAlpha:d}=Fk(e,t,n);return[a.fused.conv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[r[1],r[2]],pad:s,dataFormat:i,dilations:[o[1],o[2]],bias:l,activation:p,preluActivationWeights:u,leakyreluAlpha:d})]}case"FusedDepthwiseConv2dNative":{let{stride:r,pad:s,dataFormat:i,dilations:o,biasArg:l,preluArg:u,activationFunc:p,leakyreluAlpha:d}=Fk(e,t,n);return[a.fused.depthwiseConv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[r[1],r[2]],pad:s,dataFormat:i,dilations:[o[1],o[2]],bias:l,activation:p,preluActivationWeights:u,leakyreluAlpha:d})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let r=k("outputShape",e,t,n),s=k("strides",e,t,n),i=sh(e,t,n);return[a.conv2dTranspose(k("x",e,t,n),k("filter",e,t,n),r,[s[1],s[2]],i)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let r=k("strides",e,t,n),s=sh(e,t,n),i=k("dilations",e,t,n),o=k("dataFormat",e,t,n).toUpperCase();return[a.depthwiseConv2d(k("input",e,t,n),k("filter",e,t,n),[r[1],r[2]],s,o,[i[1],i[2]])]}case"Conv3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilations",e,t,n);return[a.conv3d(k("x",e,t,n),k("filter",e,t,n),[r[1],r[2],r[3]],s,i,[o[1],o[2],o[3]])]}case"AvgPool":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.avgPool(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s)]}case"MaxPool":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.maxPool(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s)]}case"MaxPoolWithArgmax":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n),o=k("includeBatchInIndex",e,t,n),{result:l,indexes:u}=a.maxPoolWithArgmax(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s,o);return[l,u]}case"AvgPool3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.avgPool3d(k("x",e,t,n),[i[1],i[2],i[3]],[r[1],r[2],r[3]],s)]}case"MaxPool3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.maxPool3d(k("x",e,t,n),[i[1],i[2],i[3]],[r[1],r[2],r[3]],s)]}case"Dilation2D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("dilations",e,t,n),o=r[1],l=r[2],u=i[1],p=i[2];return[a.dilation2d(k("x",e,t,n),k("filter",e,t,n),[o,l],s,[u,p],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},QH=(e,t,n,a=un)=>{switch(e.op){case"Fill":{let r=k("shape",e,t,n),s=k("dtype",e,t,n),i=k("value",e,t,n);return[a.fill(r,i,s)]}case"LinSpace":{let r=k("start",e,t,n),s=k("stop",e,t,n),i=k("num",e,t,n);return[a.linspace(r,s,i)]}case"Multinomial":{let r=k("logits",e,t,n),s=k("numSamples",e,t,n),i=k("seed",e,t,n);return[a.multinomial(r,s,i)]}case"OneHot":{let r=k("indices",e,t,n),s=k("depth",e,t,n),i=k("onValue",e,t,n),o=k("offValue",e,t,n),l=k("dtype",e,t,n);return[a.oneHot(r,s,i,o,l)]}case"Ones":return[a.ones(k("shape",e,t,n),k("dtype",e,t,n))];case"OnesLike":return[a.onesLike(k("x",e,t,n))];case"RandomStandardNormal":return[a.randomStandardNormal(k("shape",e,t,n),k("dtype",e,t,n),k("seed",e,t,n))];case"RandomUniform":return[a.randomUniform(k("shape",e,t,n),k("minval",e,t,n),k("maxval",e,t,n),k("dtype",e,t,n))];case"Range":{let r=k("start",e,t,n),s=k("stop",e,t,n),i=k("step",e,t,n);return[a.range(r,s,i,k("dtype",e,t,n))]}case"TruncatedNormal":{let r=k("shape",e,t,n),s=k("mean",e,t,n),i=k("stdDev",e,t,n),o=k("seed",e,t,n);return[a.truncatedNormal(r,s,i,k("dtype",e,t,n),o)]}case"Zeros":return[a.zeros(k("shape",e,t,n),k("dtype",e,t,n))];case"ZerosLike":return[a.zerosLike(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function mb(e,t,n){let a=k("boxes",e,t,n),r=k("scores",e,t,n),s=k("maxOutputSize",e,t,n),i=k("iouThreshold",e,t,n),o=k("scoreThreshold",e,t,n),l=k("softNmsSigma",e,t,n);return{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}}var e6=async(e,t,n,a,r=un)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u,softNmsSigma:p}=mb(e,t,n),d=await r.image.nonMaxSuppressionWithScoreAsync(s,i,o,l,u,p);return[d.selectedIndices,d.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u}=mb(e,t,n),p=k("padToMaxOutputSize",e,t,n),d=await r.image.nonMaxSuppressionPaddedAsync(s,i,o,l,u,p);return[d.selectedIndices,d.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u}=mb(e,t,n);return[await r.image.nonMaxSuppressionAsync(s,i,o,l,u)]}case"Where":{let s=r.cast(k("condition",e,t,n),"bool"),i=[await r.whereAsync(s)];return s.dispose(),i}case"ListDiff":return r.setdiff1dAsync(k("x",e,t,n),k("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}},t6=(e,t,n,a=un)=>{switch(e.op){case"LowerBound":{let r=k("sortedSequence",e,t,n),s=k("values",e,t,n);return[a.lowerBound(r,s)]}case"TopKV2":{let r=k("x",e,t,n),s=k("k",e,t,n),i=k("sorted",e,t,n),o=a.topk(r,s,i);return[o.values,o.indices]}case"UpperBound":{let r=k("sortedSequence",e,t,n),s=k("values",e,t,n);return[a.upperBound(r,s)]}case"Unique":{let r=k("x",e,t,n),s=a.unique(r);return[s.values,s.indices]}case"UniqueV2":{let r=k("x",e,t,n),s=k("axis",e,t,n),i=a.unique(r,s);return[i.values,i.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},n6=(e,t,n,a=un)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let r=k("default",e,t,n);return[vn(e.name,t,n)||r];case"Placeholder":return[vn(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let p=k("x",e,t,n);return[kr(p)]}case"IdentityN":return k("x",e,t,n).map(p=>kr(p));case"Snapshot":let s=k("x",e,t,n);return[kr(s)];case"Shape":return[a.tensor1d(k("x",e,t,n).shape,"int32")];case"ShapeN":return k("x",e,t,n).map(p=>a.tensor1d(p.shape));case"Size":return[a.scalar(k("x",e,t,n).size,"int32")];case"Rank":return[a.scalar(k("x",e,t,n).rank,"int32")];case"NoOp":return[a.scalar(1)];case"Print":let i=k("x",e,t,n),o=k("data",e,t,n),l=k("message",e,t,n),u=k("summarize",e,t,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(l);for(let p=0;pe.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return xe(this.size(),"int32")}async import(e,t){this.checkKeyAndValueTensor(e,t);let n=await e.data();return this.tensorMap.forEach(a=>a.dispose()),this.tensorMap.clear(),P(()=>{let a=ct(t),r=n.length,s=a.length;v.assert(r===s,()=>`The number of elements doesn't match, keys has ${r} elements, the values has ${s} elements.`);for(let i=0;i{let a=[];for(let r=0;r{switch(e.op){case"HashTable":case"HashTableV2":{let r=a.getHashTableHandleByName(e.name);if(r!=null)return[r];{let s=k("keyDType",e,t,n),i=k("valueDType",e,t,n),o=new a6(s,i);return a.addHashTable(e.name,o),[o.handle]}}case"LookupTableImport":case"LookupTableImportV2":{let r=k("tableHandle",e,t,n,a),s=k("keys",e,t,n),i=k("values",e,t,n);return[await a.getHashTableById(r.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let r=k("tableHandle",e,t,n,a),s=k("keys",e,t,n),i=k("defaultValue",e,t,n);return[await a.getHashTableById(r.id).find(s,i)]}case"LookupTableSize":case"LookupTableSizeV2":{let r=k("tableHandle",e,t,n,a);return[a.getHashTableById(r.id).tensorSize()]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},s6=(e,t,n,a=un)=>{switch(e.op){case"ResizeBilinear":{let r=k("images",e,t,n),s=k("size",e,t,n),i=k("alignCorners",e,t,n),o=k("halfPixelCenters",e,t,n);return[a.image.resizeBilinear(r,[s[0],s[1]],i,o)]}case"ResizeNearestNeighbor":{let r=k("images",e,t,n),s=k("size",e,t,n),i=k("alignCorners",e,t,n),o=k("halfPixelCenters",e,t,n);return[a.image.resizeNearestNeighbor(r,[s[0],s[1]],i,o)]}case"CropAndResize":{let r=k("image",e,t,n),s=k("boxes",e,t,n),i=k("boxInd",e,t,n),o=k("cropSize",e,t,n),l=k("method",e,t,n),u=k("extrapolationValue",e,t,n);return[a.image.cropAndResize(r,s,i,o,l,u)]}case"ImageProjectiveTransformV3":{let r=k("images",e,t,n),s=k("transforms",e,t,n),i=k("outputShape",e,t,n),o=k("fillValue",e,t,n),l=k("interpolation",e,t,n),u=k("fillMode",e,t,n);return[a.image.transform(r,s,l.toLowerCase(),u.toLowerCase(),o,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},i6=(e,t,n,a=un)=>{switch(e.op){case"Equal":return[a.equal(k("a",e,t,n),k("b",e,t,n))];case"NotEqual":return[a.notEqual(k("a",e,t,n),k("b",e,t,n))];case"Greater":return[a.greater(k("a",e,t,n),k("b",e,t,n))];case"GreaterEqual":return[a.greaterEqual(k("a",e,t,n),k("b",e,t,n))];case"Less":return[a.less(k("a",e,t,n),k("b",e,t,n))];case"LessEqual":return[a.lessEqual(k("a",e,t,n),k("b",e,t,n))];case"LogicalAnd":return[a.logicalAnd(k("a",e,t,n),k("b",e,t,n))];case"LogicalNot":return[a.logicalNot(k("a",e,t,n))];case"LogicalOr":return[a.logicalOr(k("a",e,t,n),k("b",e,t,n))];case"Select":case"SelectV2":return[a.where(k("condition",e,t,n),k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},o6=(e,t,n,a=un)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[a.matMul(k("a",e,t,n),k("b",e,t,n),k("transposeA",e,t,n),k("transposeB",e,t,n))];case"Einsum":return[a.einsum(k("equation",e,t,n),...k("tensors",e,t,n))];case"Transpose":return[a.transpose(k("x",e,t,n),k("perm",e,t,n))];case"_FusedMatMul":let[r,s]=k("fusedOps",e,t,n),i=r==="biasadd",o=s==="prelu",l=k("numArgs",e,t,n),u=k("leakyreluAlpha",e,t,n);if(i){if(o&&l!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&l!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[p,d]=k("args",e,t,n);return[a.fused.matMul({a:k("a",e,t,n),b:k("b",e,t,n),transposeA:k("transposeA",e,t,n),transposeB:k("transposeB",e,t,n),bias:p,activation:s,preluActivationWeights:d,leakyreluAlpha:u})];default:throw TypeError(`Node type ${e.op} is not implemented`)}},l6=(e,t,n,a=un)=>{switch(e.op){case"EuclideanNorm":return[a.euclideanNorm(k("x",e,t,n),k("axis",e,t,n),k("keepDims",e,t,n))];case"FusedBatchNorm":case"FusedBatchNormV2":return[a.batchNorm(k("x",e,t,n),k("mean",e,t,n),k("variance",e,t,n),k("offset",e,t,n),k("scale",e,t,n),k("epsilon",e,t,n))];case"FusedBatchNormV3":return[a.batchNorm(k("x",e,t,n),k("mean",e,t,n),k("variance",e,t,n),k("offset",e,t,n),k("scale",e,t,n),k("epsilon",e,t,n))];case"LRN":return[a.localResponseNormalization(k("x",e,t,n),k("radius",e,t,n),k("bias",e,t,n),k("alpha",e,t,n),k("beta",e,t,n))];case"Softmax":return[a.softmax(k("x",e,t,n))];case"LogSoftmax":return[a.logSoftmax(k("x",e,t,n))];case"SparseToDense":return[a.sparseToDense(k("sparseIndices",e,t,n),k("outputShape",e,t,n),k("sparseValues",e,t,n),k("defaultValue",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},u6=(e,t,n,a=un)=>{switch(e.op){case"Max":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.max(k("x",e,t,n),o,l)]}case"Mean":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.mean(k("x",e,t,n),o,l)]}case"Min":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.min(k("x",e,t,n),o,l)]}case"Sum":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.sum(k("x",e,t,n),o,l)]}case"All":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.all(k("x",e,t,n),o,l)]}case"Any":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.any(k("x",e,t,n),o,l)]}case"ArgMax":{let o=k("axis",e,t,n);return[a.argMax(k("x",e,t,n),o)]}case"ArgMin":{let o=k("axis",e,t,n);return[a.argMin(k("x",e,t,n),o)]}case"Prod":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.prod(k("x",e,t,n),o,l)]}case"Cumprod":{let o=k("axis",e,t,n),l=k("exclusive",e,t,n),u=k("reverse",e,t,n);return[a.cumprod(k("x",e,t,n),o,l,u)]}case"Cumsum":{let o=k("axis",e,t,n),l=k("exclusive",e,t,n),u=k("reverse",e,t,n);return[a.cumsum(k("x",e,t,n),o,l,u)]}case"Bincount":let r=k("x",e,t,n),s=k("weights",e,t,n),i=k("size",e,t,n);return[a.bincount(r,s,i)];case"DenseBincount":{let o=k("x",e,t,n),l=k("weights",e,t,n),u=k("size",e,t,n),p=k("binaryOutput",e,t,n);return[a.denseBincount(o,l,u,p)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},p6=(e,t,n,a=un)=>{switch(e.op){case"ConcatV2":case"Concat":{let r=k("n",e,t,n),s=k("axis",e,t,n),i=k("tensors",e,t,n);return i=i.slice(0,r),[a.concat(i,s)]}case"Gather":{let r=k("x",e,t,n),s=k("indices",e,t,n);return[a.gather(r,a.cast(s,"int32"),0)]}case"GatherV2":{let r=k("axis",e,t,n),s=k("batchDims",e,t,n),i=k("x",e,t,n),o=k("indices",e,t,n);return[a.gather(i,a.cast(o,"int32"),r,s)]}case"Reverse":{let r=k("dims",e,t,n),s=[];for(let o=0;o{let r=k("axis",e,t,n),s=k("tensors",e,t,n),i=s[0].shape,o=a.squeeze(s[0]).shape,l=s.map(u=>{let p=v.arraysEqual(u.shape,i);if(!p&&!v.arraysEqual(a.squeeze(u).shape,o))throw new Error("the input tensors shape does not match");return p?u:a.reshape(u,i)});return[a.stack(l,r)]});case"Unpack":{let r=k("axis",e,t,n),s=k("tensor",e,t,n);return a.unstack(s,r)}case"Tile":{let r=k("reps",e,t,n);return[a.tile(k("x",e,t,n),r)]}case"Split":case"SplitV":{let r=k("axis",e,t,n),s=k("numOrSizeSplits",e,t,n),i=k("x",e,t,n);return a.split(i,s,r)}case"ScatterNd":{let r=k("indices",e,t,n),s=k("values",e,t,n),i=k("shape",e,t,n);return[a.scatterND(r,s,i)]}case"GatherNd":{let r=k("x",e,t,n),s=k("indices",e,t,n);return[a.gatherND(r,s)]}case"SparseToDense":{let r=k("sparseIndices",e,t,n),s=k("outputShape",e,t,n),i=k("sparseValues",e,t,n),o=k("defaultValue",e,t,n);return[a.sparseToDense(r,i,s,i.dtype===o.dtype?o:a.cast(o,i.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},c6=(e,t,n,a=un)=>{switch(e.op){case"SparseFillEmptyRows":{let{outputIndices:r,outputValues:s,emptyRowIndicator:i,reverseIndexMap:o}=a.sparse.sparseFillEmptyRows(k("indices",e,t,n),k("values",e,t,n),k("denseShape",e,t,n),k("defaultValue",e,t,n));return[r,s,i,o]}case"SparseReshape":{let{outputIndices:r,outputShape:s}=a.sparse.sparseReshape(k("inputIndices",e,t,n),k("inputShape",e,t,n),k("newShape",e,t,n));return[r,s]}case"SparseSegmentMean":return[a.sparse.sparseSegmentMean(k("data",e,t,n),k("indices",e,t,n),k("segmentIds",e,t,n))];case"SparseSegmentSum":return[a.sparse.sparseSegmentSum(k("data",e,t,n),k("indices",e,t,n),k("segmentIds",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},d6=(e,t,n,a=un)=>{switch(e.op){case"FFT":return[a.fft(k("x",e,t,n))];case"IFFT":return[a.ifft(k("x",e,t,n))];case"RFFT":return[a.rfft(k("x",e,t,n))];case"IRFFT":return[a.irfft(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},h6=(e,t,n,a=un)=>{switch(e.op){case"StringNGrams":{let{nGrams:r,nGramsSplits:s}=a.string.stringNGrams(k("data",e,t,n),k("dataSplits",e,t,n),k("separator",e,t,n),k("nGramWidths",e,t,n),k("leftPad",e,t,n),k("rightPad",e,t,n),k("padWidth",e,t,n),k("preserveShortSequences",e,t,n));return[r,s]}case"StringSplit":{let{indices:r,values:s,shape:i}=a.string.stringSplit(k("input",e,t,n),k("delimiter",e,t,n),k("skipEmpty",e,t,n));return[r,s,i]}case"StringToHashBucketFast":return[a.string.stringToHashBucketFast(k("input",e,t,n),k("numBuckets",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},m6=(e,t,n,a=un)=>{switch(e.op){case"Cast":return[a.cast(k("x",e,t,n),k("dtype",e,t,n))];case"ExpandDims":{let r=k("axis",e,t,n);return[a.expandDims(k("x",e,t,n),r)]}case"Squeeze":{let r=k("axis",e,t,n);return[a.squeeze(k("x",e,t,n),r)]}case"Reshape":return[a.reshape(k("x",e,t,n),k("shape",e,t,n))];case"MirrorPad":return[a.mirrorPad(k("x",e,t,n),k("padding",e,t,n),k("mode",e,t,n))];case"PadV2":case"Pad":return[a.pad(k("x",e,t,n),k("padding",e,t,n),k("constantValue",e,t,n))];case"SpaceToBatchND":{let r=k("blockShape",e,t,n),s=k("paddings",e,t,n);return[a.spaceToBatchND(k("x",e,t,n),r,s)]}case"BatchToSpaceND":{let r=k("blockShape",e,t,n),s=k("crops",e,t,n);return[a.batchToSpaceND(k("x",e,t,n),r,s)]}case"DepthToSpace":{let r=k("blockSize",e,t,n),s=k("dataFormat",e,t,n).toUpperCase();return[a.depthToSpace(k("x",e,t,n),r,s)]}case"BroadcastTo":return[a.broadcastTo(k("x",e,t,n),k("shape",e,t,n))];case"BroadcastArgs":return[a.broadcastArgs(k("s0",e,t,n),k("s1",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Dk(e,t,n,a,r=P){let s=((i,o,l)=>{switch(i.category){case"arithmetic":return r(()=>GH(i,o,l));case"basic_math":return r(()=>HH(i,o,l));case"control":return ZH(i,o,l);case"convolution":return r(()=>JH(i,o,l));case"creation":return r(()=>QH(i,o,l));case"dynamic":return e6(i,o,l);case"evaluation":return r(()=>t6(i,o,l));case"image":return r(()=>s6(i,o,l));case"graph":return r(()=>n6(i,o,l));case"logical":return r(()=>i6(i,o,l));case"matrices":return r(()=>o6(i,o,l));case"normalization":return r(()=>l6(i,o,l));case"reduction":return r(()=>u6(i,o,l));case"slice_join":return r(()=>p6(i,o,l));case"sparse":return r(()=>c6(i,o,l));case"spectral":return r(()=>d6(i,o,l));case"string":return r(()=>h6(i,o,l));case"transformation":return r(()=>m6(i,o,l));case"hash_table":return r6(i,o,l,a);case"custom":let u=e2(i.op);if(u&&u.customExecutor)return u.customExecutor(new UH(i,o,l));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.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 v.isPromise(s)?s.then(i=>[].concat(i)):[].concat(s)}var Rk=class{constructor(e={},t={},n={},a={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=a,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(){let e=[];for(let t=0;tt.id===0&&t.iterationId===0?"":`${t.frameName}-${t.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)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let 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))}else throw new Error("Cannot increase frame iteration, the context is empty")}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(let t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(let t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}};function Mk(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,u=Object.keys(e).map(c=>Xn(c)[0]),p=[];a!=null&&(p=a.map(c=>Xn(c.name)[0]));let d=[...t];for(;d.length>0;){let c=d.pop();if((k2(c)||x6(c)||v6(c))&&i==null&&(i=c,o=i.children.map(h=>h.name).filter(h=>r.has(h))),r.add(c.name),n[c.name]==null&&u.indexOf(c.name)===-1&&p.indexOf(c.name)===-1){if(c.inputs.length===0){s.push(c.name);continue}c.inputs.forEach(h=>{l.has(h.name)||(l.add(h.name),d.push(h))})}}return{inputs:e,outputs:t,usedNodes:r,missingInputs:s,dynamicNode:i,syncInputs:o}}function f6(e,t,n){let{usedNodes:a,inputs:r}=n,s=[],i=Object.keys(r).map(p=>Xn(p)[0]).map(p=>e.nodes[p]),o=e.initNodes;i.forEach(p=>{a.has(p.name)&&s.push(p)}),e.weights.forEach(p=>{a.has(p.name)&&s.push(p)}),o!=null&&o.forEach(p=>{a.has(p.name)&&s.push(p)});let l=new Set,u=[];for(;s.length>0;){let p=s.pop();l.add(p.name),t[p.name]||u.push(p),p.children.forEach(d=>{!l.has(d.name)&&a.has(d.name)&&d.inputs.every(c=>l.has(c.name))&&s.push(d)})}return u}var g6=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],y6=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],b6=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function k2(e){return g6.indexOf(e.op)>=0}function x6(e){return y6.indexOf(e.op)>=0}function v6(e){return b6.indexOf(e.op)>=0}var nx=class{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this.intermediateTensors={},this.keepTensorForDebug=!1,this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,e.functions!=null&&Object.keys(e.functions).forEach(n=>{this._functionExecutorMap[n]=new nx(e.functions[n],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){let t=Object.keys(e).map(n=>e[n].map(a=>a.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=>{let 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){let n=e.map(r=>r.name).sort(),a=t.map(r=>r.name).sort();return n.join(this.SEPERATOR)+"--"+a.join(this.SEPERATOR)}compile(e,t){let n=Mk(e,t,this.weightMap,this._initNodes),{missingInputs:a,dynamicNode:r,syncInputs:s}=n;if(r!=null)throw new Error(`This execution contains the node '${r.name}', which has the dynamic op '${r.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${s}]`);if(a.length>0){let i=t.map(l=>l.name),o=Object.keys(e);throw new Error(`Cannot compute the outputs [${i}] from the provided inputs [${o}]. Missing the following inputs: [${a}]`)}return f6(this.graph,this.weightMap,n)}execute(e,t){e=this.mapInputs(e);let n=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);let a=n.map(p=>this.graph.nodes[Xn(p)[0]]),r=t.map(p=>Xn(p)[0]),s=r.map(p=>this.graph.nodes[p]);this.resetIntermediateTensors(),s.length===0&&(s=this._outputs);let i=this.getCompilationKey(a,s),o=this.compiledMap.get(i);o==null&&(o=this.compile(e,s),this.compiledMap.set(i,o));let l={},u={};return P(()=>{let p=new Rk(this.weightMap,l,u,this.functionExecutorMap),d=Object.assign({},this.weightMap);Object.keys(e).forEach(m=>{let[f,g]=Xn(m),y=[];y[g]=e[m],d[f]=y});let c=this.getFrozenTensorIds(d),h={};for(let m=0;mvn(m,d,p))})}getFrozenTensorIds(e){let t=[].concat.apply([],Object.keys(e).map(n=>e[n]).map(n=>n.map(a=>a.id)));return new Set(t)}checkTensorForDisposal(e,t,n,a,r,s,i){t.category==="control"||s.indexOf(e)!==-1||(n[e].forEach(o=>{o!=null&&(i[o.id]=(i[o.id]||0)+t.children.length)}),t.inputs.forEach(o=>{if(o.category!=="control"){let l=kH(o.name,n,a);l!=null&&l.forEach(u=>{if(u&&!u.kept&&!r.has(u.id)){let p=i[u.id];if(p===1){if(!this.keepTensorForDebug)u.dispose();else{let[d,c]=ar(t.name,a);this.intermediateTensors[d]?this.intermediateTensors[d][c]=u:(this.intermediateTensors[d]=[],this.intermediateTensors[d][c]=u)}delete i[u.id]}else p!=null&&i[u.id]--}})}}))}async executeAsync(e,t){return this._executeAsync(e,t)}disposeIntermediateTensors(){!this.intermediateTensors||(Object.keys(this.intermediateTensors).forEach(e=>this.intermediateTensors[e].forEach(t=>t.dispose())),this.disposeTensorsMap())}disposeTensorsMap(){!this.tensorsMap||Object.keys(this.tensorsMap).forEach(e=>{this.tensorsMap[e].forEach(t=>{t&&!t.kept&&!t.isDisposed&&!this.keepIds.has(t.id)&&t.dispose()})})}getIntermediateTensors(){return this.tensorsMap}resetIntermediateTensors(){for(let e in this.intermediateTensors)this.intermediateTensors[e].forEach(t=>t.dispose()),delete this.intermediateTensors[e]}async _executeAsync(e,t,n=!1,a={},r={}){n||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));try{this.keepTensorForDebug=H().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(u){console.warn(u.message)}this.resetIntermediateTensors();let s=new Rk(this.weightMap,a,r,this.functionExecutorMap);this.tensorsMap=await this.executeWithControlFlow(e,s,t,n);let i=t.map(u=>vn(u,this.tensorsMap,s)),o=i.map(u=>u.id),l=Object.keys(e).map(u=>e[u].id);return this.keepIds=new Set([...o,...l,...this.weightIds]),this.keepTensorForDebug||this.disposeTensorsMap(),this.parent==null&&s.dispose(this.keepIds),i}async executeFunctionAsync(e,t,n){let a=e.reduce((r,s,i)=>(r[this.inputs[i].name]=s,r),{});return this._executeAsync(a,this.outputNodes,!0,t,n)}async executeWithControlFlow(e,t,n,a){let r=Object.keys(e),s=r.map(b=>this.graph.nodes[Xn(b)[0]]),i=n.map(b=>Xn(b)[0]),o=i.map(b=>this.graph.nodes[b]);o.length===0&&(o=this._outputs);let{usedNodes:l,missingInputs:u,dynamicNode:p,syncInputs:d}=Mk(e,o,this.weightMap,this._initNodes),c=[...s,...this.graph.weights,...this._initNodes||[]].map(b=>({node:b,contexts:t.currentContext})),h=Object.assign({},this.weightMap);Object.keys(e).forEach(b=>{let[x,w]=Xn(b),I=[];I[w]=e[b],h[x]=I});let m={},f=this.getFrozenTensorIds(h),g={};for(;c.length>0;){let b=this.processStack(s,c,t,h,g,f,i,m,l);await Promise.all(b)}p==null&&!a&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let y=o.filter(b=>!k2(b)&&!vn(b.name,h,t)).map(b=>b.name);if(y.length>0){let b="";throw p!=null&&(b=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${d}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${r}]. Consider providing the following inputs: [${u}]. ${b}`)}return h}processStack(e,t,n,a,r,s,i,o,l){let u=[];for(;t.length>0;){let p=t.pop();n.currentContext=p.contexts;let d="";if(p.node.op==="Enter"&&k("isConstant",p.node,a,n)&&([d]=ar(p.node.name,n)),a[p.node.name]==null){let c=Dk(p.node,a,n,this._resourceManager);d||([d]=ar(p.node.name,n));let h=n.currentContext;v.isPromise(c)?u.push(c.then(m=>(a[d]=m,n.currentContext=h,this.checkTensorForDisposal(d,p.node,a,n,s,i,o),this.processChildNodes(p.node,t,n,a,r,l),m))):(a[d]=c,this.checkTensorForDisposal(d,p.node,a,n,s,i,o),this.processChildNodes(p.node,t,n,a,r,l))}else this.processChildNodes(p.node,t,n,a,r,l)}return u}processChildNodes(e,t,n,a,r,s){e.children.forEach(i=>{let[o]=ar(i.name,n);r[o]||!s.has(i.name)||(i.op==="Merge"?i.inputNames.some(l=>!!vn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})):i.inputNames.every(l=>!!vn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(t=>t.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{let n=e[t],[a]=Xn(t),r=this.graph.nodes[a];if(r.attrParams.shape&&r.attrParams.shape.value){let s=r.attrParams.shape.value,i=s.length===n.shape.length&&n.shape.every((o,l)=>s[l]===-1||s[l]===o);v.assert(i,()=>`The shape of dict['${r.name}'] provided in model.execute(dict) must be [${s}], but was [${n.shape}]`)}r.attrParams.dtype&&r.attrParams.dtype.value&&v.assert(n.dtype===r.attrParams.dtype.value,()=>`The dtype of dict['${r.name}'] provided in model.execute(dict) must be ${r.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(e){let t={};for(let n in e)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[n]!=null){let a=this._signature.inputs[n];t[a.name]=e[n]}else t[n]=e[n];return t}checkInputs(e){let t=Object.keys(e).filter(n=>{let[a]=Xn(n);return this.graph.nodes[a]==null});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(t=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[t]!=null?this._signature.outputs[t].name:t,{})}checkOutputs(e){e.forEach(t=>{let[n]=Xn(t);if(!this.graph.nodes[n])throw new Error(`The output '${t}' is not found in the graph`)})}},w6=class{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(let e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(let e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}},k6="?tfjs-format=file",I6="model.json",k0=class{constructor(e,t={},n=Ut){this.modelUrl=e,this.loadOptions=t,this.version="n/a",this.io=n,t==null&&(this.loadOptions={}),this.resourceManager=new w6}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}get modelStructuredOutputKeys(){return this.structuredOutputKeys}findIOHandler(){let e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=this.io.browserHTTPRequest(e,this.loadOptions);else{let t=this.io.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(this.io.browserHTTPRequest(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]}}load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let e=this.handler.load();return v.isPromise(e)?e.then(t=>this.loadSync(t)):this.loadSync(e)}loadSync(e){this.artifacts=e;let t=this.artifacts.modelTopology,n=this.artifacts.signature;if(this.artifacts.userDefinedMetadata!=null){let r=this.artifacts.userDefinedMetadata;r.signature!=null&&(n=r.signature),r.structuredOutputKeys!=null&&(this.structuredOutputKeys=r.structuredOutputKeys)}this.signature=n,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;let a=this.io.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new nx(Ek.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(a),this.executor.resourceManager=this.resourceManager,e.modelInitializer!=null&&e.modelInitializer.node!=null){let r=Ek.Instance.transformGraph(e.modelInitializer);this.initializer=new nx(r),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=e.initializerSignature}return!0}async save(e,t){if(typeof e=="string"){let n=this.io.getSaveHandlers(e);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${e}'`);e=n[0]}if(e.save==null)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){let n=this.execute(e,this.outputNodes);if(this.structuredOutputKeys){let a=n instanceof Te?[n]:n,r={};return a.forEach((s,i)=>r[this.structuredOutputKeys[i]]=s),r}return n}normalizeInputs(e){if(!(e instanceof Te)&&!Array.isArray(e)){if(this.signature!=null&&this.signature.inputs!=null)for(let a in this.signature.inputs){let r=this.signature.inputs[a];r.resourceId!=null&&(e[a]=this.resourceIdToCapturedInput[r.resourceId])}return e}e=Array.isArray(e)?e:[e];let t=Object.keys(this.resourceIdToCapturedInput).length;if(e.length+t!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-t} non-resource placeholders, while there are ${e.length} input tensors provided.`);let n=0;return this.inputNodes.reduce((a,r)=>{let s=this.signature?this.signature.inputs[r]:null;return s!=null&&s.resourceId!=null?a[r]=this.resourceIdToCapturedInput[s.resourceId]:a[r]=e[n++],a},{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}executeInitializerGraph(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(e){if(this.resourceIdToCapturedInput={},this.initializerSignature){let t=Object.keys(this.initializerSignature.outputs);for(let n=0;n1?n:n[0]}async executeAsync(e,t){this.resourceIdToCapturedInput==null&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,n)=>(t[n]=[e[n]],t),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&_e(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function S6(e,t={},n=Ut){if(e==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");t==null&&(t={}),t.fromTFHub&&typeof e=="string"&&(e=N6(e));let a=new k0(e,t,n);return await a.load(),a}function T6(e){if(e==null)throw new Error("modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model");let t;if(e instanceof Array){let[a,r]=e;if(!a)throw new Error("modelJSON must be the first element of the array");if(!r||!(r instanceof ArrayBuffer))throw new Error("An ArrayBuffer of weights must be the second element of the array");if(!("modelTopology"in a))throw new Error("Model JSON is missing 'modelTopology'");if(!("weightsManifest"in a))throw new Error("Model JSON is missing 'weightsManifest'");let s=Ut.getWeightSpecs(a.weightsManifest),i=Ut.getModelArtifactsForJSONSync(a,s,r);t=Ut.fromMemorySync(i)}else if("load"in e)t=e;else if("modelTopology"in e&&"weightSpecs"in e&&"weightData"in e)t=Ut.fromMemorySync(e);else throw new Error("Unknown model format");let n=new k0(t);return n.load(),n}function N6(e){return e.endsWith("/")||(e=e+"/"),`${e}${I6}${k6}`}var C6="4.0.0",I2={};$e(I2,{CSVDataset:()=>F2,Dataset:()=>Mu,FileDataSource:()=>z2,TextLineDataset:()=>A2,URLDataSource:()=>W2,array:()=>Y6,csv:()=>oj,func:()=>lj,generator:()=>uj,microphone:()=>cj,version_data:()=>dj,webcam:()=>pj,zip:()=>Z6});var _6=us(Hh()),E6=us(Hh());function $6(e,t){return Mh(e,t)}function Mh(e,t,n=new Map,a=new Set){if(e==null)return null;if(typeof Blob=="function"&&e instanceof Blob)return e.slice();if(a.has(e))throw new Error("Circular references are not supported.");if(n.has(e))return n.get(e);let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(r.recurse)if(fl(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=Mh(o,t,n,a);s[i]=l}return a.delete(e),e.__proto__&&(s.__proto__=e.__proto__),s}else throw new Error(`Can't recurse into non-iterable type: ${e}`);else return n.set(e,r.value),r.value}function A6(e,t=T2){return S2(e,t)}function S2(e,t,n=new Set){let a=e[0];if(n.has(a))throw new Error("Circular references are not supported.");let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(r.recurse)if(fl(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(u=>u[i]),l=S2(o,t,n);s[i]=l}return n.delete(a),s}else throw new Error(`Can't recurse into non-iterable type: ${a}`);else return r.value}function T2(e){return e===null?null:fl(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function N2(e,t){let n=new Map;Mh(e,t,n);for(let a of Array.from(n.keys())){let r=n.get(a);if(v.isPromise(r)){let s=await r;n.set(a,s)}}return Mh(e,t,n)}function fl(e){let t=!1;if(H().get("IS_BROWSER"))t=e instanceof TextDecoder;else{let{StringDecoder:n}=wI();t=e instanceof n}return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Te)&&!(e instanceof Promise)&&!t)}function F6(e){return e==null||D6(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Te||v.isTypedArray(e)}function D6(e){return e===null||typeof e!="object"&&typeof e!="function"}function R6(e){return $6(e,M6)}function M6(e){return e instanceof Te?{value:e.clone(),recurse:!1}:fl(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var C2=class{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,e==null)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 this.length()===0}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(let t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let 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.");let 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.");let t=this.wrap(this.begin+e),n=this.get(t);return this.set(t,this.pop()),n}},I0=class extends C2{constructor(){super(I0.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){let e=this.capacity*2,t=new Array(e),n=this.length();for(let a=0;at===!0)}rowMajorBatch(e,t=!0){return new U6(this,e,t)}columnMajorBatch(e,t=!0,n=T2){return this.rowMajorBatch(e,t).map(a=>A6(a,n))}concatenate(e,t){return new E2(_2([this,e]),t)}take(e){return e<0||e==null?this:new V6(this,e)}skip(e){return e<0||e==null?this:new B6(this,e)}prefetch(e){return new $2(this,e)}shuffle(e,t){return new X6(this,e,t)}serial(){return new W6(this)}},L6=class extends tn{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};let e=this.items[this.trav];return this.trav++,{value:R6(e),done:!1}}},z6=class extends tn{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}}},W6=class extends tn{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()}},B6=class extends tn{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()}},U6=class extends tn{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(){let e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}},G6=class extends tn{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(;;){let e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;_e(e.value)}}},H6=class extends tn{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Va.getTensorsInContainer(e.value),n=this.transform(e.value),a=Va.getTensorsInContainer(n);for(let r of t)Va.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},j6=class extends tn{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}}}},Pk=class extends tn{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Va.getTensorsInContainer(e.value),n=await this.transform(e.value),a=Va.getTensorsInContainer(n);for(let r of t)Va.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},T0=class extends tn{constructor(){super(),this.outputQueue=new I0,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},q6=class extends T0{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let e=await this.upstream.next();if(e.done)return!1;let t=Va.getTensorsInContainer(e.value),n=this.transform(e.value),a=Va.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let r of t)Va.isTensorInList(r,a)||r.dispose();return!0}},E2=class extends tn{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,this.iterator==null){let n=await this.moreIterators.next();if(n.done)return{value:null,done:!0};this.iterator=n.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}},Yr;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(Yr||(Yr={}));var K6=class extends tn{constructor(e,t=Yr.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;function a(s){return s instanceof tn?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await N2(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case Yr.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case Yr.SHORTEST:return{value:null,done:!0};case Yr.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},$2=class extends tn{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new C2(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}},X6=class extends $2{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=E6.alea(n||v.now().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();){let e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(t.done)this.upstreamExhausted=!0;else return this.refill(),t}return{value:null,done:!0}}},Mu=class{constructor(){this.size=null}batch(e,t=!0){let n=this;v.assert(e>0,()=>`batchSize needs to be positive, but it is + ${e}`);let a;return this.size===1/0||this.size==null?a=this.size:t?a=Math.ceil(this.size/e):a=Math.floor(this.size/e),Kn(async()=>(await n.iterator()).columnMajorBatch(e,t,J6),a)}concatenate(e){let t=this,n;return this.size===1/0||e.size===1/0?n=1/0:this.size!=null&&e.size!=null?n=this.size+e.size:n=null,Kn(async()=>(await t.iterator()).concatenate(await e.iterator()),n)}filter(e){let t=this,n;return this.size===1/0?n=1/0:n=null,Kn(async()=>(await t.iterator()).filter(a=>P(()=>e(a))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return Kn(async()=>(await t.iterator()).map(n=>P(()=>e(n))),this.size)}mapAsync(e){let t=this;return Kn(async()=>(await t.iterator()).mapAsync(e),this.size)}prefetch(e){if(e==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");let t=this;return Kn(async()=>(await t.iterator()).prefetch(e),this.size)}repeat(e){let t=this,n;return this.size!=null&&e>0?n=this.size*e:e===0?n=0:this.size!=null&&(e===void 0||e<0)?n=1/0:n=null,Kn(async()=>{let a=S0(async()=>({value:await t.iterator(),done:!1}));return P6(a.take(e))},n)}skip(e){let t=this,n;return this.size!=null&&e>=0&&this.size>=e?n=this.size-e:this.size!=null&&(this.size(await t.iterator()).skip(e),n)}shuffle(e,t,n=!0){if(e==null||e<0)throw this.size==null?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)`);let a=this,r=_6.alea(t||v.now().toString());return Kn(async()=>{let s=r.int32();return n&&(s+=r.int32()),(await a.iterator()).shuffle(e,s.toString())},this.size)}take(e){let t=this,n;return this.size!=null&&this.size>e?n=e:this.size!=null&&this.size<=e?n=this.size:n=null,Kn(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()}};Mu.MAX_BUFFER_SIZE=1e4;function Kn(e,t=null){return new class extends Mu{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function Y6(e){return Kn(async()=>_2(e),e.length)}function Z6(e){if(!fl(e))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(e))for(let n=0;n{let n=await N2(e,a=>{if(a instanceof Mu)return{value:a.iterator(),recurse:!1};if(fl(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return O6(n,Yr.SHORTEST)},t)}function J6(e){if(e===null)return null;let t=e[0];return F6(t)?{value:Q6(e),recurse:!1}:{value:null,recurse:!0}}function Q6(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Te?Ft(e):kn(e)}var A2=class extends Mu{constructor(e){super(),this.input=e}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` +`).map(e=>(e.endsWith("\r")&&(e=e.slice(0,-1)),e))}},Zd='"',Np=Symbol("out"),Ok=Symbol("field"),Jd=Symbol("quote"),fb=Symbol("quoteafterquote"),Lk=Symbol("quoteinquote"),F2=class extends Mu{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 A2(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(v.assert(t.delimiter==null,()=>"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(){let 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&&v.assert(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);let t=this.fullColumnNames.reduce((a,r)=>(a[r]=a[r]+1||1,a),{}),n=Object.keys(t).filter(a=>t[a]>1);if(v.assert(n.length===0,()=>"Duplicate column names found: "+n.toString()),this.columnConfigs){for(let a of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(a)===-1)throw new Error('The key "'+a+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let e=await(await this.base.iterator()).next();if(e.done)throw new Error("No data was found for CSV parsing.");let t=e.value;return this.parseRow(t,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map(t=>this.makeDataElement(t))}makeDataElement(e){let t=this.parseRow(e),n={},a={};for(let r=0;r14||!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=e.includeSpectrogram!==!1,this.includeWaveform=e.includeWaveform===!0,!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(!H().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let t=new D2(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(n){throw new Error(`Error thrown while initializing video stream: ${n.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,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,n=await this.getAudioData();if(this.includeSpectrogram){let a=this.flattenQueue(n.freqDataQueue);e=this.getTensorFromAudioDataArray(a,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let a=this.flattenQueue(n.timeDataQueue);t=this.getTensorFromAudioDataArray(a,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let e=[],t=[],n=0;return new Promise(a=>{let r=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&a({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(r),a({freqDataQueue:e,timeDataQueue:t}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&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){let t=e[0].length,n=new Float32Array(e.length*t);return e.forEach((a,r)=>n.set(a,r*t)),n}getTensorFromAudioDataArray(e,t){let n=new Float32Array(v.sizeFromShape(t));return n.set(e,n.length-e.length),kn(n,t)}},R2=class extends tn{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=Ke([0],"int32"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,a=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,r=(1-n)/2,s=(1-a)/2,i=r+n,o=a+s;this.cropBox=_a([s,r,o,i],[1,4])}else this.cropBox=_a([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(!H().get("IS_BROWSER"))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}let n=new R2(e,t);return await n.start(),n}async start(){this.webcamConfig.facingMode&&v.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`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=co.fromPixels(this.webcamVideoElement)}catch(t){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(t)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(t){throw new Error(`Error thrown cropping the video: ${t.message}`)}finally{e.dispose()}else return{value:e,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(e){return P(()=>{let t=Zt(le(e,"float32"),0),n;n=za.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let a=n.shape;return W(n,a.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.")}},M2=class{},P2=class extends tn{split(e){return new ej(this,e)}},ej=class extends P2{constructor(e,t){super(),this.upstream=e,this.impl=new tj(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},tj=class extends T0{constructor(e,t){super(),this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let e=await this.upstream.next();if(e.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(let n of t.slice(0,-1))this.outputQueue.push(n);return this.carryover=t[t.length-1],!0}},nj=class extends tn{decodeUTF8(){return new aj(this)}},aj=class extends P2{constructor(e){super(),this.upstream=e,this.impl=new rj(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},rj=class extends T0{constructor(e){if(super(),this.upstream=e,H().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=wI();this.decoder=new t("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let e=await this.upstream.next(),t;if(e.done)return!1;t=e.value;let n;return H().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},O2=class extends nj{constructor(e,t={}){super(),this.file=e,this.options=t,v.assert(e instanceof Uint8Array||(H().get("IS_BROWSER")?e instanceof File||e instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((e,t)=>{let n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,n)));else{let a=new FileReader;a.onload=s=>{let i=a.result;if(i instanceof ArrayBuffer&&(i=new Uint8Array(i)),!(i instanceof Uint8Array))return t(new TypeError("FileReader returned unknown type."));e(i)},a.onabort=s=>t(new Error("Aborted")),a.onerror=s=>t(new Error(s.type));let r=this.file.slice(this.offset,n);a.readAsArrayBuffer(r)}this.offset=n}),done:!1}}};async function sj(e,t={},n){let a,r;typeof e=="string"?a=e:(a=e.url,r=ij(e));let s=await(n||v.fetch)(a,r);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new O2(i,t)}else throw new Error(s.statusText)}var ij=e=>({method:e.method,headers:e.headers,body:e.body,mode:e.mode,credentials:e.credentials,cache:e.cache,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity});function L2(e){return typeof e=="string"&&e.slice(0,7)==="file://"}var z2=class extends M2{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(L2(this.input)&&H().get("IS_NODE")){let e=xx();this.input=e.readFileSync(this.input.slice(7))}return new O2(this.input,this.options)}},W2=class extends M2{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return L2(this.url)?new z2(this.url,this.fileOptions).iterator():sj(this.url,this.fileOptions)}};function oj(e,t={}){return new F2(new W2(e),t)}function lj(e){let t=S0(e);return Kn(async()=>t)}function uj(e){return Kn(async()=>{let t=await e();return S0(()=>t.next())})}async function pj(e,t){return R2.create(e,t)}async function cj(e){return D2.create(e)}var dj="4.0.0";function ge(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&v.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var hj=cr.whereImpl,N0=class extends rc{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new jh(this,Na())}nextDataId(){return N0.nextDataId++}write(e,t,n){this.firstUse&&(this.firstUse=!1,H().get("IS_NODE")&&N.warn(` ============================ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, visit https://github.com/tensorflow/tfjs-node for more details. -============================`));let a={id:this.nextDataId()};return this.data.set(a,{values:e,dtype:n,refCount:1}),a}makeTensorInfo(e,t,n){let a;if(t==="string"&&n!=null&&n.length>0&&v.isString(n[0])){let r=n.map(s=>v.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return{dataId:a,shape:e,dtype:t}}refCount(e){return this.data.has(e)?this.data.get(e).refCount:0}incRef(e){let t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){let t=this.data.get(e);t.refCount--}}move(e,t,n,a,r){this.data.set(e,{values:t,dtype:a,refCount:r})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){let{dtype:t,complexTensorInfos:n}=this.data.get(e);if(t==="complex64"){let a=this.readSync(n.real.dataId),r=this.readSync(n.imag.dataId);return N.mergeRealAndImagArrays(a,r)}return this.data.get(e).values}bufferSync(e){let t=this.readSync(e.dataId);if(e.dtype==="string")try{let n=t.map(a=>v.decodeString(a));return Pe(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Pe(e.shape,e.dtype,t)}makeOutput(e,t,n){return Na().makeTensorFromTensorInfo(this.makeTensorInfo(t,n,e),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;let{complexTensorInfos:n}=this.data.get(e);n!=null&&(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){let t=v.now();return e(),{kernelMs:v.now()-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){ge([e],"where");let t=this.readSync(e.dataId);return hj(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};N0.nextDataId=0;var B2={};Ae(B2,{addImpl:()=>G2,bincountImpl:()=>_0,bincountReduceImpl:()=>H2,castImpl:()=>U2,ceilImpl:()=>j2,concatImpl:()=>E0,equalImpl:()=>q2,expImpl:()=>X2,expm1Impl:()=>Z2,floorImpl:()=>J2,gatherNdImpl:()=>Q2,gatherV2Impl:()=>eC,greaterEqualImpl:()=>nC,greaterImpl:()=>tC,lessEqualImpl:()=>rC,lessImpl:()=>aC,linSpaceImpl:()=>sC,logImpl:()=>iC,maxImpl:()=>oC,maximumImpl:()=>lC,minimumImpl:()=>uC,multiplyImpl:()=>A0,negImpl:()=>pC,notEqualImpl:()=>cC,prodImpl:()=>dC,raggedGatherImpl:()=>hC,raggedRangeImpl:()=>mC,raggedTensorToTensorImpl:()=>fC,rangeImpl:()=>F0,rsqrtImpl:()=>gC,scatterImpl:()=>Yo,sigmoidImpl:()=>oq,simpleAbsImpl:()=>V2,sliceImpl:()=>Oh,sparseFillEmptyRowsImpl:()=>bC,sparseReshapeImpl:()=>xC,sparseSegmentReductionImpl:()=>D0,sqrtImpl:()=>pq,squaredDifferenceImpl:()=>vC,stridedSliceImpl:()=>wC,stringNGramsImpl:()=>R0,stringSplitImpl:()=>M0,stringToHashBucketFastImpl:()=>P0,subImpl:()=>kC,tileImpl:()=>IC,topKImpl:()=>TC,transposeImpl:()=>$0,uniqueImpl:()=>NC});function V2(e){let t=new Float32Array(e.length);for(let n=0;n{let{x:t}=e.inputs,n=e.backend;ge(t,"abs");let a=new Float32Array(v.sizeFromShape(t.shape)),r=n.data.get(t.dataId).values;return a=V2(r),n.makeOutput(a,t.shape,t.dtype)},fj={kernelName:wl,backendName:"cpu",kernelFunc:mj};function Vt(e){return(t,n,a,r,s)=>{let i=N.assertAndGetBroadcastShape(t,n),o=i.length,l=v.computeStrides(i),u=v.sizeFromShape(i),p=v.getTypedArrayFromDType(s,u),d=t.length,c=n.length,h=v.computeStrides(t),m=v.computeStrides(n),f=N.getBroadcastDims(t,i),g=N.getBroadcastDims(n,i);if(f.length+g.length===0)for(let y=0;yx[C]=0);let w=v.locToIndex(x,d,h),I=b.slice(-c);g.forEach(C=>I[C]=0);let T=v.locToIndex(I,c,m);p[y]=e(a[w],r[T])}return[p,i]}}function Yn(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=n.makeTensorInfo(a.shape,"complex64"),l=n.data.get(o.dataId);return l.complexTensorInfos={real:n.makeTensorInfo(a.shape,"float32",s),imag:n.makeTensorInfo(r.shape,"float32",i)},o}var gj={kernelName:Qh,backendName:"cpu",kernelFunc:Yn};function Ph(e,t,n="float32"){if(n==="complex64"){let r=Ph(e,t,"float32"),s=Ph(e,t,"float32");return Yn({inputs:{real:r,imag:s},backend:e})}let a=v.makeZerosTypedArray(v.sizeFromShape(t),n);return e.makeTensorInfo(t,n,a)}function lr(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var yj={kernelName:Di,backendName:"cpu",kernelFunc:lr};function li(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.data.get(a.dataId).complexTensorInfos.real,s=n.data.get(r.dataId).values;return n.makeTensorInfo(r.shape,r.dtype,s)}var bj={kernelName:wm,backendName:"cpu",kernelFunc:li};function U2(e,t,n,a){if(a==="int32"){let r=Int32Array.from(e);return[t,"int32",r]}if(a==="bool"){let r=v.toTypedArray([0],n),[s,i]=Vt((o,l)=>o!==l?1:0)(t,[],e,r,"bool");return[i,"bool",s]}throw new Error(`Error in Cast: failed to cast ${n} to ${a}`)}function os(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return lr({inputs:{x:r},backend:n});let p=Ph(n,r.shape,r.dtype),d=os({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),c=Yn({inputs:{real:d,imag:p},backend:n});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),c}if(r.dtype==="complex64"){let p=li({inputs:{input:r},backend:n}),d=os({inputs:{x:p},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(p),d}if(!v.hasEncodingLoss(r.dtype,s)){let p=lr({inputs:{x:r},backend:n});return{dataId:p.dataId,shape:p.shape,dtype:s}}let i=n.data.get(r.dataId).values,[o,l,u]=U2(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}var xj={kernelName:bi,backendName:"cpu",kernelFunc:os};function nn(e,t,n,a){return n==null?({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;ge([i,o],e);let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=i.dtype==="string"?N.fromUint8ToStringArray(u):u,c=i.dtype==="string"?N.fromUint8ToStringArray(p):p,h=a||i.dtype,[m,f]=t(i.shape,o.shape,d,c,h);return l.makeTensorInfo(f,h,m)}:({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;if(i.dtype==="complex64"||o.dtype==="complex64"){let u=os({inputs:{x:i},backend:l,attrs:{dtype:"complex64"}}),p=l.data.get(u.dataId),d=p.complexTensorInfos.real,c=p.complexTensorInfos.imag,h=l.data.get(d.dataId).values,m=l.data.get(c.dataId).values,f=os({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),y=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,x=l.data.get(y.dataId).values,w=l.data.get(b.dataId).values,[I,T,C]=n(i.shape,o.shape,h,m,x,w),E=l.makeTensorInfo(C,"float32",I),A=l.makeTensorInfo(C,"float32",T),R=Yn({inputs:{real:E,imag:A},backend:l});return l.disposeIntermediateTensorInfo(u),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo(E),l.disposeIntermediateTensorInfo(A),R}else{let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=a||i.dtype,[c,h]=t(i.shape,o.shape,u,p,d);return l.makeTensorInfo(h,d,c)}}}function C0(e){return(t,n,a,r,s,i)=>{let o=N.assertAndGetBroadcastShape(t,n),l=v.sizeFromShape(o),u=o.length,p=v.computeStrides(o),d=v.getTypedArrayFromDType("float32",l),c=v.getTypedArrayFromDType("float32",l),h=N.getBroadcastDims(t,o),m=N.getBroadcastDims(n,o),f=N.mergeRealAndImagArrays(a,r),g=N.mergeRealAndImagArrays(s,i),y=t.length,b=v.computeStrides(t),x=n.length,w=v.computeStrides(n);if(h.length+m.length===0)for(let I=0;IC[S]=0);let E=v.locToIndex(C,y,b),A=T.slice(-x);m.forEach(S=>A[S]=0);let R=v.locToIndex(A,x,w),F=e(f[E*2],f[E*2+1],g[R*2],g[R*2+1]);d[I]=F.real,c[I]=F.imag}return[d,c,o]}}var G2=Vt((e,t)=>e+t),vj=C0((e,t,n,a)=>({real:e+n,imag:t+a})),gl=nn(cs,G2,vj),wj={kernelName:cs,backendName:"cpu",kernelFunc:gl};function _0(e,t,n,a,r){let s=v.sizeFromShape(a),i=v.makeZerosTypedArray(r,n);for(let o=0;o=r||(s>0?i[l]+=t[o]:i[l]+=1)}return i}function H2(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=Pe([r,n],t.dtype);for(let o=0;o=n||(a?i.set(1,o,u):t.size>0?i.set(i.get(o,u)+t.get(o,l),o,u):i.set(i.get(o,u)+1,o,u))}return i}function ks(e){return(t,n,a)=>{let r=v.getTypedArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;if(ge(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,u=v.sizeFromShape(i.shape),p=n||i.dtype,d=v.getArrayFromDType(p,u);for(let c=0;c{let{x:i}=a;if(ge(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,u=n||i.dtype,p=t(l,u,r);return o.makeTensorInfo(i.shape,u,p)}}var j2=ks(e=>Math.ceil(e)),kj=Pu(xi,j2),Ij={kernelName:xi,backendName:"cpu",kernelFunc:kj};function E0(e,t,n,a){let r=v.getArrayFromDType(n,v.sizeFromShape(t));if(a&&n!=="string"){let s=0;e.forEach(i=>{let o=v.sizeFromShape(i.shape);r.set(i.vals,s),s+=o})}else{let s=0;e.forEach(i=>{let o=n==="string"?N.fromUint8ToStringArray(i.vals):i.vals,l=0;for(let u=0;ue===t?1:0),K2=nn(Ol,q2,null,"bool"),Sj={kernelName:Ol,backendName:"cpu",kernelFunc:K2},X2=ks(e=>Math.exp(e)),Y2=Pu(_i,X2,"float32"),Tj={kernelName:_i,backendName:"cpu",kernelFunc:Y2},Z2=ks(e=>Math.expm1(e)),Nj=Pu(zl,Z2),Cj={kernelName:zl,backendName:"cpu",kernelFunc:Nj},J2=ks(e=>Math.floor(e)),_j=Pu(Ei,J2),Ej={kernelName:Ei,backendName:"cpu",kernelFunc:_j};function Q2(e,t,n,a,r,s,i,o,l){let u=Pe([a,s],n);for(let p=0;p=l/s)throw new Error(`Invalid indices: ${d} does not index into ${o}`);for(let h=0;he>t?1:0),Aj=nn(Ul,tC,null,"bool"),$j={kernelName:Ul,backendName:"cpu",kernelFunc:Aj},nC=Vt((e,t)=>e>=t?1:0),Fj=nn(Fi,nC,null,"bool"),Dj={kernelName:Fi,backendName:"cpu",kernelFunc:Fj},aC=Vt((e,t)=>ee<=t?1:0),Pj=nn(Kl,rC,null,"bool"),Oj={kernelName:Kl,backendName:"cpu",kernelFunc:Pj};function sC(e,t,n){let a=(t-e)/(n-1),r=v.makeZerosTypedArray(n,"float32");r[0]=e;for(let s=1;sMath.log(e)),Lj=Pu(Mi,iC),zj={kernelName:Mi,backendName:"cpu",kernelFunc:Lj};function oC(e,t,n,a){let r=v.getTypedArrayFromDType(a,v.sizeFromShape(n));for(let s=0;so)&&(o=u)}r[s]=o}return r}var lC=Vt((e,t)=>Math.max(e,t)),Wj=nn(Oi,lC),Bj={kernelName:Oi,backendName:"cpu",kernelFunc:Wj},uC=Vt((e,t)=>Math.min(e,t)),Vj=nn(Bi,uC),Uj={kernelName:Bi,backendName:"cpu",kernelFunc:Vj},A0=Vt((e,t)=>e*t),Gj=C0((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),Ff=nn(Ui,A0,Gj),Hj={kernelName:Ui,backendName:"cpu",kernelFunc:Ff};function pC(e,t,n){let a=v.createScalarValue(-1,n);return A0([],t,a,e,n)}function jj(e){let{inputs:t,backend:n}=e,{x:a}=t;ge(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=pC(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var qj={kernelName:eu,backendName:"cpu",kernelFunc:jj},cC=Vt((e,t)=>e!==t?1:0),Kj=nn(tu,cC,null,"bool"),Xj={kernelName:tu,backendName:"cpu",kernelFunc:Kj};function $0(e,t,n,a,r){let s=t.length,i=v.sizeFromShape(t),o=v.computeStrides(t),l=v.computeStrides(r),u=v.getTypedArrayFromDType(n,v.sizeFromShape(r));for(let p=0;pn.disposeIntermediateTensorInfo(b)),n.makeTensorInfo(y,g,m)}var Jj={kernelName:Ki,backendName:"cpu",kernelFunc:Zj};function Qj(e,t,n){e.forEach((a,r)=>{if(a<0||a>=n){let s=v.indexToLoc(r,t.length,v.computeStrides(t)).join(",");throw new Error(`indices[${s}] = ${a} is not in [0, ${n})`)}})}function eq(e,t){for(let n=0;nr)throw new Error("Ragged splits must not point past values");for(let s=1;sa[s])throw new Error("Ragged splits must be sorted in ascending order")}}function tq(e,t,n,a){let r=[],s=0,i=t.length-1+n.length,o=new Array(i).fill(null).map(()=>[0]);eq(n,a);let l=1;for(let u=0;u=0){let f=o[m],g=f[f.length-1]-h[p];for(let y=p;yr[i]=s)}return t}function zk(e,t){let n=e.slice(0,t);for(;n.length1)throw new Error("starts must be a scalar or vector");if(r.length>1)throw new Error("limits must be a scalar or vector");if(i.length>1)throw new Error("deltas must be a scalar or vector");let o=t.length===0,l=r.length===0,u=i.length===0,p=[];o||p.push(t[0]),l||p.push(r[0]),u||p.push(i[0]);for(let g=1;g0&&by)w=0;else if(w=Math.ceil(Math.abs((b-y)/x)),w>Wk)throw new Error(`Requires ((limit - start) / delta) <= ${Wk}`);c[g+1]=c[g]+w}let h=c[d],m=v.getArrayFromDType(n,h),f=0;for(let g=0;gn&&(n=r)}return n}static getMaxWidthValueRowID(e){let t=e.length;if(t===0)return 0;let n=0,a=e[0],r=0;for(let s=1;s"Final length of result must be equal to firstDimension."),r}calculateOutputIndexRowSplit(e,t,n,a){let r=e.length,s=[];for(let i=0;i0&&s.length!==e[r-1])throw new Error("Invalid row split size.");return s}calculateOutputIndexValueRowID(e,t,n,a){let r=e.length,s=[];if(r===0)return[];let i=0,o=e[0];if(o>=t.length)throw new Error(`Got currentValueRowId=${o}, which is not less than ${t.length}`);let l=t[o];s.push(l);for(let u=1;u=0&&(++i,i=t.length)throw new Error(`Got nextValueRowId=${p} which is not less than ${t.length}`);l=t[p]}s.push(l)}if(s.length!==e.length)throw new Error("Invalid row ids.");return s}calculateOutputIndex(e,t,n,a){let r=this.getRowPartitionTensor(e),s=this.getRowPartitionTypeByDimension(e);switch(s){case Ia.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(r,t,n,a);case Ia.ROW_SPLITS:if(r.length-1>t.length)throw new Error(`Row partition size is greater than output size: ${r.length-1} > ${t.length}`);return this.calculateOutputIndexRowSplit(r,t,n,a);default:throw new Error(`Unsupported partition type: ${Ia[s]}`)}}getFirstDimensionSize(){let e=this.rowPartitionValues[0];if(this.rowPartitionTypes.length===0)throw new Error("No row_partition_types given.");let t=this.rowPartitionTypes[0];switch(t){case Ia.FIRST_DIM_SIZE:return e[0];case Ia.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Ia.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Ia[t]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error("Invalid first partition input. Tensor requires at least one element.");let e=this.getFirstDimensionSize(),t=this.calculateOutputSize(e),n=new Array(this.raggedRank+1);n[n.length-1]=1;for(let s=n.length-2;s>=0;--s)n[s]=n[s+1]*t[s+1];let a=Vk(t,!1),r=v.getArrayFromDType(this.valuesDType,v.sizeFromShape(a));if(n[0]*t[0]>0){let s=this.calculateFirstParentOutputIndex(e,n[0],t[0]);for(let i=1;i<=this.raggedRank;++i)s=this.calculateOutputIndex(i-1,s,n[i],t[i]);this.setOutput(this.raggedRank,s,r,a)}return[a,r]}setOutput(e,t,n,a){if(n.length===0)return;let r=this.values,s=n,i=a.slice();i=i.slice(e+1);let o=v.sizeFromShape(i),l=t.length,u=this.defaultValue;if(u.length!==o&&u.length!==1){let h=this.defaultValueShape;P(()=>{let m=W(u,h);u=Ks(m,i).dataSync()})}let p=0,d=0,c=0;for(let h=0;h<=l;++h){let m=h=l){let f=n.length;m=Math.floor(f/o)}if(m>c)if(this.defaultValue.length===1)s.subarray(c*o,m*o).fill(this.defaultValue[0]),c=m;else for(;m>c;){let f=s.slice(c*o);Bk(f,u,o),++c}m<0?(p=h+1,d=c):(p=h,d=c,c=d+1)}}};function Bk(e,t,n){for(let a=0;a= 0`);if(a<-1)throw new Error(`Dimension ${a} must be >= -1`);a=-1}n.push(a)}return n}function fC(e,t,n,a,r,s,i,o,l,u){return new ax(e,t,n,a,r,s,i,o,l,u).compute()}function F0(e,t,n,a){let r=e===t,s=e1;if(r||s||i)return v.makeZerosTypedArray(0,a);let o=Math.abs(Math.ceil((t-e)/n)),l=v.makeZerosTypedArray(o,a);t1/Math.sqrt(e)),sq=Pu(to,gC),iq={kernelName:to,backendName:"cpu",kernelFunc:sq};function Yo(e,t,n,a,r,s,i,o,l,u){let p=[a/r,r],d=e.values,c=t.values;if(a===0)return Pe(n,t.dtype);let h=Pe(p,t.dtype);typeof l=="string"||typeof l=="number"?h.values.fill(l):typeof l=="boolean"&&h.values.fill(+l);for(let m=0;m=a/r)throw new Error(`Invalid indices: ${f} does not index into ${n}`);for(let y=0;y1/(1+Math.exp(-e))),yC=rt(ao,e=>1/(1+Math.exp(-e))),lq={kernelName:ao,backendName:"cpu",kernelFunc:yC};function Oh(e,t,n,a,r){let s=jt.isSliceContinous(a,t,n),i=v.sizeFromShape(n),o=v.computeStrides(a);if(s){let d=jt.computeFlatOffset(t,o);return r==="string"?e.slice(d,d+i):e.subarray(d,d+i)}let l=r==="string"?N.fromUint8ToStringArray(e):e,u=Pe(a,r,l),p=Pe(n,r);for(let d=0;dm+t[f]);p.set(u.get(...h),...c)}return r==="string"?N.fromStringArrayToUint8(p.values):p.values}function ui(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a;ge(r,"slice");let[o,l]=jt.parseSliceParams(r,s,i);jt.assertParamsValid(r,o,l);let u=n.data.get(r.dataId).values,p=Oh(u,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,p)}var uq={kernelName:du,backendName:"cpu",kernelFunc:ui};function bC(e,t,n,a,r,s,i){let o=t[0],l=s[0],u=new Array(l),p=new Array(o),d=t[1];if(l===0){if(o!==0)throw new Error(N.getSparseFillEmptyRowsIndicesDenseShapeMismatch(o));let g=v.getArrayFromDType(n,0),y=v.getArrayFromDType(r,0);return[g,[0,d],y,u,p]}let c=!0,h=0,m=new Array(l).fill(0);for(let g=0;g=l)throw new Error(N.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,y,l));++m[y],c=c&&y>=h,h=y}let f=!0;for(let g=0;g0&&(m[g]+=m[g-1])}if(f&&c){let g=e,y=a;for(let b=0;b0){c[d-1]=1;for(let f=d-2;f>=0;--f)c[f]=c[f+1]*a[f+1]}let h=[];if(o>0){h[o-1]=1;for(let f=o-2;f>=0;--f)h[f]=h[f+1]*l[f+1]}let m=v.getArrayFromDType(n,i*o);for(let f=0;f0?r[o-1]+1:0;if(p<0)throw new Error(N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let d=t.slice();d[0]=p;let c=d.reduce((b,x)=>b*x,1),h=v.getArrayFromDType(n,c);if(o===0)return p>0&&h.fill(i),[h,d];if(p<=0)throw new Error(N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=0,f=1,g=0,y=r[m];for(;;){let b=0;if(f=b)throw new Error(N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(y<0||y>=p)throw new Error(N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(y,p));y>g&&h.fill(i,g*u,y*u);for(let x=m;x=l[0])throw new Error(N.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(x,a[x],l[0]));for(let I=0;Io)break}return gMath.sqrt(e)),cq=rt(ro,e=>Math.sqrt(e)),dq={kernelName:ro,backendName:"cpu",kernelFunc:cq},vC=Vt((e,t)=>{let n=e-t;return n*n}),hq=nn(oo,vC),mq={kernelName:oo,backendName:"cpu",kernelFunc:hq};function wC(e,t,n,a){let r=Pe(e,t.dtype);for(let s=0;s0?0:i-o),c=0;c+=l*this.leftPad.length;for(let g=0;gg.forEach(y=>h[m++]=y);for(let g=0;g0){f(e[d+p-1]);for(let g=0;g0){let o=t[0];if(o!==0)throw new Error(`First split value must be 0, got ${o}`);for(let l=1;l=o;if(u=u&&t[l]<=n,!u)throw new Error(`Invalid split value ${t[l]}, must be in [${o}, ${n}]`);o=t[l]}if(o!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${o}`)}let r=a-1,s=v.getArrayFromDType("int32",a);if(n===0||a===0){let o=new Array(n);for(let l=0;l<=r;++l)s[l]=0;return[o,s]}s[0]=0;for(let o=1;o<=r;++o){let l=t[o]-t[o-1],u=0;this.nGramWidths.forEach(p=>{u+=this.getNumNGrams(l,p)}),this.preserveShort&&l>0&&u===0&&(u=1),s[o]=s[o-1]+u}let i=new Array(s[r]);for(let o=0;o{let d=t[o+1]-t[o],c=this.getNumNGrams(d,p);this.createNGrams(e,l,i,u,c,p),u+=c}),this.preserveShort&&u===s[o]){let p=t[o+1]-t[o];if(p===0)continue;let d=p+2*this.padWidth,c=1;this.createNGrams(e,l,i,u,c,d)}}return[i,s]}};function R0(e,t,n,a,r,s,i,o){return new fq(n,a,r,s,i,o).compute(e,t)}function gq(e,t,n,a){if(!e.length)return;if(t.length===0){for(let s=0;se-t),yq=C0((e,t,n,a)=>({real:e-n,imag:t-a})),O0=nn(lo,kC,yq),bq={kernelName:lo,backendName:"cpu",kernelFunc:O0};function IC(e,t){let n=new Array(e.rank);for(let r=0;r{let n=t.value-e.value;return n===0?e.index-t.index:n};function SC(e,t,n=0,a=e.length-1){for(;a>n;){if(a-n>600){let o=a-n+1,l=t-n+1,u=Math.log(o),p=.5*Math.exp(2*u/3),d=.5*Math.sqrt(u*p*(o-p)/o)*Math.sign(l-o/2),c=Math.max(n,Math.floor(t-l*p/o+d)),h=Math.min(a,Math.floor(t+(o-l)*p/o+d));SC(e,t,c,h)}let r=e[t],s=n,i=a;for(v.swap(e,n,t),$p(e[a],r)>0&&v.swap(e,n,a);s0;)i=i-1}$p(e[n],r)===0?v.swap(e,n,i):(i=i+1,v.swap(e,i,a)),i<=t&&(n=i+1),t<=i&&(a=i-1)}}function TC(e,t,n,a,r){let s=t[t.length-1],[i,o]=[e.length/s,s],l=v.getTypedArrayFromDType(n,i*a),u=v.getTypedArrayFromDType("int32",i*a);for(let d=0;dm[x]={value:b,index:x}),a{for(let g=0;gnew N0,1);var CC=rt(Ci,e=>e>=0?e:Math.exp(e)-1),xq={kernelName:Ci,backendName:"cpu",kernelFunc:CC};function _C(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a;ge([r],"leakyRelu");let i=v.sizeFromShape(r.shape),o=n.data.get(r.dataId).values,l=v.getTypedArrayFromDType("float32",i);for(let u=0;ue<0?t*e:e);function EC(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t;ge([a,r],"prelu");let s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,[o,l]=wq(a.shape,r.shape,s,i,"float32");return n.makeTensorInfo(l,"float32",o)}var kq={kernelName:qi,backendName:"cpu",kernelFunc:EC},AC=rt(Xi,e=>Math.max(0,e)),Iq={kernelName:Xi,backendName:"cpu",kernelFunc:AC},$C=rt(Ji,e=>Math.min(Math.max(0,e),6)),Sq={kernelName:Ji,backendName:"cpu",kernelFunc:$C};function Lh(e,t,n,a,r){if(n==="linear")return lr({inputs:{x:t},backend:e});if(n==="relu")return AC({inputs:{x:t},backend:e});if(n==="elu")return CC({inputs:{x:t},backend:e});if(n==="relu6")return $C({inputs:{x:t},backend:e});if(n==="prelu")return EC({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return _C({inputs:{x:t},backend:e,attrs:{alpha:r}});if(n==="sigmoid")return yC({inputs:{x:t},backend:e});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function ft(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=v.sizeFromShape(r.shape),o=v.inferFromImplicitShape(s,i),l=v.sizeFromShape(o);v.assert(i===l,()=>`The new shape (${o}) has ${l} elements and the old shape (${r.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),n.incRef(r.dataId);let u=n.data.get(r.dataId);if(u.complexTensorInfos!=null){let p=u.complexTensorInfos.real,d=u.complexTensorInfos.imag;p.shape=o,d.shape=o}return{dataId:r.dataId,shape:o,dtype:r.dtype}}var Tq={kernelName:lu,backendName:"cpu",kernelFunc:ft};function FC(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;ge([r,s],"matMul");let l=r.shape.length,u=s.shape.length,p=i?r.shape[l-2]:r.shape[l-1],d=o?s.shape[u-1]:s.shape[u-2],c=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[u-2]:s.shape[u-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=v.sizeFromShape(m),y=v.sizeFromShape(f),b=Tu.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);v.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,p,c]:[g,c,p],w=o?[y,h,d]:[y,d,h],I=ft({inputs:{x:r},backend:n,attrs:{shape:x}}),T=ft({inputs:{x:s},backend:n,attrs:{shape:w}}),C=i?I.shape[1]:I.shape[2],E=i?I.shape[2]:I.shape[1],A=o?T.shape[1]:T.shape[2],R=Math.max(g,y),F=n.data.get(I.dataId).values,S=n.data.get(T.dataId).values,M=v.computeStrides(I.shape),B=v.computeStrides(T.shape),[U,G,q]=i?[M[0],1,M[1]]:[M[0],M[1],1],[K,Z,Q]=o?[1,B[1],B[0]]:[B[1],1,B[0]],ee=E*A,ae=Pe([R,E,A],I.dtype),te=ae.values,le=n.blockSize;for(let ie=0;ieMath.acos(e)),Aq={kernelName:kl,backendName:"cpu",kernelFunc:Eq},$q=rt(Il,e=>Math.acosh(e)),Fq={kernelName:Il,backendName:"cpu",kernelFunc:$q};function Dq(e){let{inputs:t,backend:n}=e,a=t;ge(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=Pe(a[0].shape,a[0].dtype),i=s.values;for(let o=0;ob&&(b=I,x=w)}h[g]=x}return u.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var Wq={kernelName:fi,backendName:"cpu",kernelFunc:zq};function Bq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a;ge(r,"argMin");let i=v.parseAxisParam(s,r.shape),o=N.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Vn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=N.getInnerMostAxes(i.length,l.shape.length)),i=[i[0]],N.assertAxesAreInnerMostDims("argMin",i,l.shape.length);let[p,d]=N.computeOutAndReduceShapes(l.shape,i),c=v.sizeFromShape(p),h=v.makeZerosTypedArray(c,"int32"),m=v.sizeFromShape(d),f=n.data.get(l.dataId).values;for(let g=0;gn.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var Vq={kernelName:sc,backendName:"cpu",kernelFunc:Bq},Uq=rt(Nl,e=>Math.asin(e)),Gq={kernelName:Nl,backendName:"cpu",kernelFunc:Uq},Hq=rt(Cl,e=>Math.asinh(e)),jq={kernelName:Cl,backendName:"cpu",kernelFunc:Hq},qq=rt(_l,e=>Math.atan(e)),Kq={kernelName:_l,backendName:"cpu",kernelFunc:qq},Xq=Vt((e,t)=>Math.atan2(e,t)),Yq=nn(Al,Xq),Zq={kernelName:Al,backendName:"cpu",kernelFunc:Yq},Jq=rt(El,e=>Math.atanh(e)),Qq={kernelName:El,backendName:"cpu",kernelFunc:Jq};function L0(e,t,n,a,r,s){let i=r.strideHeight,o=r.strideWidth,l=r.dilationHeight,u=r.dilationWidth,p=r.effectiveFilterHeight,d=r.effectiveFilterWidth,c=r.padInfo.top,h=r.padInfo.left,m=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,f=Pe(r.outShape,n),g=f.values,y=r.outShape[1]*r.outShape[2]*r.outShape[3],b=r.outShape[2]*r.outShape[3],x=r.outShape[3];for(let w=0;wq?q=ie:s==="avg"&&(K+=ie,Z++)}if(isNaN(q))break}let Q=S+M*x+C;g[Q]=s==="avg"?K/Z:q}}}return f}function DC(e,t,n,a,r=!1,s=!1){let i=Pe(a.outShape,"int32"),o=a.strideHeight,l=a.strideWidth,u=a.dilationHeight,p=a.dilationWidth,d=a.effectiveFilterHeight,c=a.effectiveFilterWidth,h=a.padInfo.top,m=a.padInfo.left,f=Pe(t,n,e);for(let g=0;gR&&(R=G,r?F=s?((g*a.inHeight+S)*a.inWidth+B)*a.inChannels+y:(S*a.inWidth+B)*a.inChannels+y:F=M*c+U)}}i.set(F,g,b,T,y)}}return i}function RC(e,t,n,a,r,s){let i=r.strideDepth,o=r.strideHeight,l=r.strideWidth,u=r.dilationDepth,p=r.dilationHeight,d=r.dilationWidth,c=r.effectiveFilterDepth,h=r.effectiveFilterHeight,m=r.effectiveFilterWidth,f=r.padInfo.front,g=r.padInfo.top,y=r.padInfo.left,b=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,x=Pe(r.outShape,n),w=x.values,I=r.outShape[1]*r.outShape[2]*r.outShape[3]*r.outShape[4],T=r.outShape[2]*r.outShape[3]*r.outShape[4],C=r.outShape[3]*r.outShape[4],E=r.outShape[4];for(let A=0;Axe?xe=dt:s==="avg"&&(Ie+=dt,Se++),isNaN(xe))break}if(isNaN(xe))break}if(isNaN(xe))break}let Le=ue+S;w[Le]=s==="avg"?Ie/Se:xe}}}}return x}function e5(e,t){let n=Pe(t.outShape,"int32"),a=t.strideDepth,r=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,u=t.effectiveFilterDepth,p=t.effectiveFilterHeight,d=t.effectiveFilterWidth,c=t.padInfo.front,h=t.padInfo.top,m=t.padInfo.left;for(let f=0;f=M&&(M=ee,B=G*p*d+K*p+Q)}}}n.set(B,f,y,I,A,g)}}}return n}function t5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;ge(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;v.assert(N.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=N.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))d=lr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=v.computeStrides(r.shape),m=L0(c,r.shape,r.dtype,h,p,"avg");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var n5={kernelName:gi,backendName:"cpu",kernelFunc:t5};function a5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ge(r,"avgPool3d");let p=N.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=RC(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"avg");return n.makeTensorInfo(c.shape,"float32",c.values)}var r5={kernelName:ic,backendName:"cpu",kernelFunc:a5};function s5(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ge([r,s],"avgPool3DGrad");let p=N.computePool3DInfo(s.shape,i,o,1,l,u),d=p.strideDepth,c=p.strideHeight,h=p.strideWidth,m=p.filterDepth,f=p.filterHeight,g=p.filterWidth,y=p.dilationDepth,b=p.dilationHeight,x=p.dilationWidth,w=p.effectiveFilterDepth,I=p.effectiveFilterHeight,T=p.effectiveFilterWidth,C=w-1-p.padInfo.front,E=T-1-p.padInfo.left,A=I-1-p.padInfo.top,R=Pe(s.shape,"float32"),F=1/(m*f*g),S=n.bufferSync(r);for(let M=0;M=p.outDepth||Math.floor(te)!==te))for(let le=0;le=p.outHeight||Math.floor(ie)!==ie))for(let ye=0;ye=p.outWidth||Math.floor(ue)!==ue||(ee+=S.get(M,te,ie,ue,B))}}}R.set(ee*F,M,U,G,q,B)}return n.makeTensorInfo(R.shape,R.dtype,R.values)}var i5={kernelName:Yh,backendName:"cpu",kernelFunc:s5};function o5(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;ge([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=N.computePool2DInfo(i.shape,o,l,1,u),d=p.strideHeight,c=p.strideWidth,h=p.filterHeight,m=p.filterWidth,f=p.dilationHeight,g=p.dilationWidth,y=p.effectiveFilterHeight,b=p.effectiveFilterWidth,x=b-1-p.padInfo.left,w=y-1-p.padInfo.top,I=Pe(i.shape,"float32"),T=1/(h*m),C=n.data.get(r.dataId).values,E=Pe(r.shape,"float32",C);for(let A=0;A=p.outHeight||Math.floor(q)!==q))for(let K=0;K=p.outWidth||Math.floor(Z)!==Z||(U+=E.get(A,q,Z,R))}}I.set(U*T,A,F,S,R)}return n.makeTensorInfo(I.shape,I.dtype,I.values)}var l5={kernelName:Xh,backendName:"cpu",kernelFunc:o5};function u5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,scale:s,offset:i,mean:o,variance:l}=t;v.assert(o.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),v.assert(i==null||o.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),v.assert(s==null||o.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),ge([r,o,l,s,i],"batchNorm");let{varianceEpsilon:u}=a;u==null&&(u=.001);let p=n.data.get(r.dataId).values,d=n.data.get(o.dataId).values,c=n.data.get(l.dataId).values,h=s?n.data.get(s.dataId).values:new Float32Array([1]),m=i?n.data.get(i.dataId).values:new Float32Array([0]),f=new Float32Array(p.length),g=m.length,y=h.length,b=c.length,x=d.length,w=0,I=0,T=0,C=0;for(let E=0;E=g&&(w=0),I>=x&&(I=0),T>=y&&(T=0),C>=b&&(C=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var p5={kernelName:$i,backendName:"cpu",kernelFunc:u5};function c5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;ge([r],"batchToSpaceND");let o=s.reduce((y,b)=>y*b),l=N.getReshaped(r.shape,s,o),u=N.getPermuted(l.length,s.length),p=N.getReshapedPermuted(r.shape,s,o),d=N.getSliceBeginCoords(i,s.length),c=N.getSliceSize(p,i,s.length),h=ft({inputs:{x:r},backend:n,attrs:{shape:l}}),m=Vn({inputs:{x:h},backend:n,attrs:{perm:u}}),f=ft({inputs:{x:m},backend:n,attrs:{shape:p}}),g=ui({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var d5={kernelName:$l,backendName:"cpu",kernelFunc:c5};function h5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,u=_0(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var m5={kernelName:Zh,backendName:"cpu",kernelFunc:h5};function f5(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=N.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var g5={kernelName:Jh,backendName:"cpu",kernelFunc:f5},y5=rt(ds,(e,t)=>{let n=t;return e>n.clipValueMax?n.clipValueMax:e{let{x:t}=e.inputs,n=e.backend,a=new Float32Array(v.sizeFromShape(t.shape)),r=n.data.get(t.dataId),s=r.complexTensorInfos.real,i=r.complexTensorInfos.imag,o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values;for(let u=0;uf.shape);N.assertParamsConsistent(i,s);let o=N.computeOutShape(t.map(f=>f.shape),s);if(v.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(f=>v.sizeFromShape(f.shape)>0);if(l.length===1)return lr({inputs:{x:l[0]},backend:n});if(l[0].dtype==="complex64"){let f=l.map(w=>li({inputs:{input:w},backend:n})),g=l.map(w=>yl({inputs:{input:w},backend:n})),y=bl({inputs:f,backend:n,attrs:{axis:s}}),b=bl({inputs:g,backend:n,attrs:{axis:s}}),x=Yn({inputs:{real:y,imag:b},backend:n});return f.forEach(w=>n.disposeIntermediateTensorInfo(w)),g.forEach(w=>n.disposeIntermediateTensorInfo(w)),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(b),x}let u=l.map(f=>{let g=v.sizeFromShape(f.shape.slice(s));return ft({inputs:{x:f},backend:n,attrs:{shape:[-1,g]}})}),p=u.map(f=>({vals:n.data.get(f.dataId).values,shape:f.shape}));o=N.computeOutShape(u.map(f=>f.shape),1);let d=u[0].shape[0]===1,c=E0(p,o,t[0].dtype,d),h=N.computeOutShape(l.map(f=>f.shape),s),m=n.makeTensorInfo(h,t[0].dtype,c);return u.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var k5={kernelName:Fl,backendName:"cpu",kernelFunc:bl};function MC(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:p}=a;ge([r,s],"conv2d");let d=N.convertConv2DDataFormat(l),c=N.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h=c.filterHeight,m=c.filterWidth,f=c.dilationHeight,g=c.dilationWidth,y=c.padInfo.left,b=c.padInfo.top,x=c.dataFormat==="channelsLast",w=new Ht(c.outShape,r.dtype),I=v.computeStrides(r.shape),T=v.computeStrides(s.shape),C=I[0],E=x?I[1]:I[2],A=x?I[2]:1,R=x?1:I[1],F=w.strides[0],S=x?w.strides[1]:w.strides[2],M=x?w.strides[2]:1,B=x?1:w.strides[1],U=n.data.get(r.dataId).values,G=n.data.get(s.dataId).values,q=w.values;for(let K=0;K=c.inHeight)continue;let ye=le*T[0],ue=Z+ie*E;for(let xe=0;xe=c.inWidth)continue;let nt=ye+Le*T[1],st=ue+Ve*A,Je=nt;for(let at=0;at=u.inDepth)continue;let K=G*A[0],Z=F+q*E[1];for(let Q=0;Q=u.inHeight)continue;let ie=K+te*A[1],ye=Z+le*E[2];for(let ue=0;ue=u.inWidth)continue;let Ve=ie+Se*A[2],nt=ye+Le*u.inChannels,st=Ve;for(let Je=0;JeMath.cos(e)),M5={kernelName:ki,backendName:"cpu",kernelFunc:R5},P5=rt(Ii,e=>Math.cosh(e)),O5={kernelName:Ii,backendName:"cpu",kernelFunc:P5};function L5(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,[p,d,c,h]=r.shape,m=s.shape[0],[f,g]=o,y=Pe([m,f,g,h],"float32"),b=n.data.get(s.dataId).values,x=n.data.get(i.dataId).values,w=n.data.get(r.dataId).values,I=v.computeStrides(r.shape),T=v.computeStrides(y.shape);for(let C=0;C=p)continue;let B=f>1?(F-A)*(d-1)/(f-1):0,U=g>1?(S-R)*(c-1)/(g-1):0;for(let G=0;G1?A*(d-1)+G*B:.5*(A+F)*(d-1);if(q<0||q>d-1){for(let K=0;K1?R*(c-1)+ee*U:.5*(R+S)*(c-1);if(ae<0||ae>c-1){for(let ye=0;ye1?R*(c-1)+K*U:.5*(R+S)*(c-1);if(Z<0||Z>c-1){for(let ae=0;aey+m-b-1:(y,b)=>y+b;for(let y=0;yy+m-b-1:(y,b)=>y+b;for(let y=0;y`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`);let o=r.shape[0],l=r.shape[1],u=r.shape[2],p=r.shape[3],d=l*s,c=u*s,h=p/(s*s),m=n.data.get(r.dataId).values,f=new Float32Array(o*d*c*h),g=0;for(let y=0;y`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let h=N.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!0),{filterHeight:m,filterWidth:f,dilationHeight:g,dilationWidth:y,padInfo:b}=h,x=b.left,w=b.top,I=h.outChannels/h.inChannels,T=new Ht(h.outShape,r.dtype),C=n.data.get(r.dataId).values,E=n.data.get(s.dataId).values,A=T.values;for(let R=0;R=h.inHeight)continue;let K=G*d[0],Z=F+q*p[1];for(let Q=0;Q=h.inWidth)continue;let ie=K+te*d[1],ye=Z+le*h.inChannels,ue=ee,xe=ie;for(let Ie=0;Ie{let{x:a,filter:r}=e,{strides:s,pad:i,dilations:o}=n,l=t,u=l.data.get(a.dataId).values,p=a.shape.length,d=l.data.get(r.dataId).values,c=r.shape.length,{batchSize:h,inHeight:m,inWidth:f,inChannels:g,outHeight:y,outWidth:b,padInfo:x,strideHeight:w,strideWidth:I,filterHeight:T,filterWidth:C,dilationHeight:E,dilationWidth:A,outShape:R}=N.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),F=v.sizeFromShape(R),S=R.length,M=v.getArrayFromDType(a.dtype,F);for(let B=0;B=0&&te=0&&ieQ&&(Q=xe)}}}let ee=v.locToIndex([B,U,q,Z],S,v.computeStrides(R));M[ee]=Q}}}return{dataId:l.write(v.toTypedArray(M,a.dtype),R,a.dtype),shape:R,dtype:a.dtype}}},n8={kernelName:gh,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,p=v.toNestedArray(a.shape,u.data.get(a.dataId).values),d=v.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:x,strideWidth:w,filterHeight:I,filterWidth:T,dilationHeight:C,dilationWidth:E,outShape:A}=N.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);v.assert(s.rank===A.length,()=>`Error in ${gh}, dy must have the same rank as output ${A.length}, but got ${s.rank}`);let R=v.toNestedArray(A,u.data.get(s.dataId).values),F=v.makeZerosNestedTypedArray(r.shape,r.dtype);for(let S=0;S=0&&ae=0&&leK&&(K=ie,Z=ee,Q=te)}}}F[Z][Q][q]+=R[S][M][U][q]}}}return{dataId:u.write(v.toTypedArray(F,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},a8={kernelName:fh,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,p=v.toNestedArray(a.shape,u.data.get(a.dataId).values),d=v.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:x,strideWidth:w,filterHeight:I,filterWidth:T,dilationHeight:C,dilationWidth:E,outShape:A}=N.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);v.assert(s.rank===A.length,()=>`Error in ${fh}, dy must have the same rank as output ${A.length}, but got ${s.rank}`);let R=v.toNestedArray(A,u.data.get(s.dataId).values),F=v.makeZerosNestedTypedArray(a.shape,a.dtype);for(let S=0;S=0&&ae=0&&leK&&(K=ie,Z=ae,Q=le)}}}F[S][Z][Q][q]+=R[S][M][U][q]}}}return{dataId:u.write(v.toTypedArray(F,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function Qc(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"sum");let o;r.dtype==="bool"?o=os({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=lr({inputs:{x:r},backend:n});let l=o.shape.length,u=v.parseAxisParam(s,o.shape),p=N.getAxesPermutation(u,l),d=u,c=o;p!=null&&(c=Vn({inputs:{x:o},backend:n,attrs:{perm:p}}),d=N.getInnerMostAxes(d.length,l)),N.assertAxesAreInnerMostDims("sum",d,c.shape.length);let[h,m]=N.computeOutAndReduceShapes(c.shape,d),f=N.upcastType(c.dtype,"int32"),g=Ph(n,h,f),y=v.sizeFromShape(m),b=n.data.get(g.dataId).values,x=n.data.get(c.dataId).values;for(let w=0;w=0&&(c=Qc({inputs:{x:c},backend:n,attrs:{axis:u[f]-(i.length-h),keepDims:!1}}),m.push(c)),h--)}for(let f of m)f!==c&&n.disposeIntermediateTensorInfo(f);return c}var i8={kernelName:om,backendName:"cpu",kernelFunc:s8};function o8(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t;ge([a,r],"eluGrad");let s=new Float32Array(v.sizeFromShape(r.shape)),i=n.data.get(r.dataId).values,o=n.data.get(a.dataId).values;for(let l=0;l=1?s[l]=o[l]:s[l]=o[l]*(u+1)}return n.makeTensorInfo(r.shape,"float32",s)}var l8={kernelName:lm,backendName:"cpu",kernelFunc:o8},u8=N.ERF_P,p8=N.ERF_A1,c8=N.ERF_A2,d8=N.ERF_A3,h8=N.ERF_A4,m8=N.ERF_A5,f8=rt(Pl,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+u8*n);return t*(1-((((m8*a+h8)*a+d8)*a+c8)*a+p8)*a*Math.exp(-n*n))}),g8={kernelName:Pl,backendName:"cpu",kernelFunc:f8};function zh(e){let{inputs:t,backend:n,attrs:a}=e,{input:r}=t,{dim:s}=a,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(v.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),ft({inputs:{x:r},backend:n,attrs:{shape:o}})}var y8={kernelName:Ll,backendName:"cpu",kernelFunc:zh},b8=Vt((e,t)=>e/t),z0=nn(Ni,b8),rx={kernelName:Ni,backendName:"cpu",kernelFunc:z0};function OC(e,t,n){let a=e.shape,r=a[0],s=a[1],i=n.data.get(e.dataId),o=i.complexTensorInfos.real,l=i.complexTensorInfos.imag,u=[r,s],p=v.sizeFromShape(u),d=v.getTypedArrayFromDType("float32",p),c=v.getTypedArrayFromDType("float32",p);for(let g=0;g{let{image:a}=e,r=n,s=v.getTypedArrayFromDType(a.dtype,v.sizeFromShape(a.shape)),[i,o,l,u]=a.shape,p=r.data.get(a.dataId).values;for(let d=0;d=0&&bMath.floor(e/t)),_8=nn(Ai,C8,null,"int32"),E8={kernelName:Ai,backendName:"cpu",kernelFunc:_8};function A8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=MC({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c}});if(i){let g=f;if(p==="NCHW"&&i.shape.length===1&&i.shape[0]!==1){let y=ft({inputs:{x:i},backend:n,attrs:{shape:[i.shape[0],1,1]}});f=gl({inputs:{a:f,b:y},backend:n}),n.disposeIntermediateTensorInfo(y)}else f=gl({inputs:{a:f,b:i},backend:n});n.disposeIntermediateTensorInfo(g)}if(h){let g=f;if(p==="NCHW"&&h==="prelu"&&o.shape.length===1&&o.shape[0]!==1){let y=ft({inputs:{x:o},backend:n,attrs:{shape:[o.shape[0],1,1]}});f=Lh(n,f,h,y,m),n.disposeIntermediateTensorInfo(y)}else f=Lh(n,f,h,o,m);n.disposeIntermediateTensorInfo(g)}return f}var $8={kernelName:Qs,backendName:"cpu",kernelFunc:A8};function F8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=PC({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c}});if(i){let g=f;f=gl({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=Lh(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var D8={kernelName:ei,backendName:"cpu",kernelFunc:F8};function R8(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=v.sizeFromShape(a.shape),i=r.shape,o=i[i.length-1],[l,u,p,d]=N.prepareAndValidate(a,r);if(u===0)return n.makeTensorInfo(l,a.dtype,[]);let c=n.data.get(r.dataId).values,h=n.bufferSync(a),m=Q2(c,h,a.dtype,u,o,p,d,a.shape,s);return n.makeTensorInfo(l,a.dtype,m.values)}var M8={kernelName:Vl,backendName:"cpu",kernelFunc:R8};function P8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,indices:s}=t,{axis:i,batchDims:o}=a;ge([r,s],"gatherV2");let l=v.parseAxisParam(i,r.shape)[0],u=n.data.get(s.dataId).values,p=r.shape[l];for(let w=0;w=0,()=>`GatherV2: the index value ${I} is not in [0, ${p-1}]`)}let d=o;o==null&&(d=0);let c=v.sizeFromShape(s.shape),h=N.segment_util.collectGatherOpShapeInfo(r,s,l,d),m=ft({inputs:{x:r},backend:n,attrs:{shape:[h.batchSize,h.outerSize,h.dimSize,h.sliceSize]}}),f=ft({inputs:{x:s},backend:n,attrs:{shape:[h.batchSize,c/h.batchSize]}}),g=[h.batchSize,h.outerSize,c/h.batchSize,h.sliceSize],y=n.bufferSync(f),b=n.bufferSync(m),x=eC(b,y,g);return n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),n.makeTensorInfo(h.outputShape,x.dtype,x.values)}var O8={kernelName:Bl,backendName:"cpu",kernelFunc:P8};function L8(e){let{inputs:t,backend:n}=e,{input:a}=t,r=v.sizeFromShape(a.shape),s=a.shape[a.shape.length-1],i=r/s,o=ft({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=OC(o,!0,n),u=ft({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),u}var z8={kernelName:pm,backendName:"cpu",kernelFunc:L8},W8=rt(Gl,e=>Number.isFinite(e)?1:0,"bool"),B8={kernelName:Gl,backendName:"cpu",kernelFunc:W8},V8=rt(Hl,e=>Math.abs(e)===1/0?1:0,"bool"),U8={kernelName:Hl,backendName:"cpu",kernelFunc:V8},G8=rt(jl,e=>Number.isNaN(e)?1:0,"bool"),H8={kernelName:jl,backendName:"cpu",kernelFunc:G8};function j8(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=sC(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var q8={kernelName:dm,backendName:"cpu",kernelFunc:j8},K8=rt(Xl,e=>Math.log1p(e)),X8={kernelName:Xl,backendName:"cpu",kernelFunc:K8},Y8=Vt((e,t)=>e&&t),Z8=nn(Yl,Y8,null,"bool"),J8={kernelName:Yl,backendName:"cpu",kernelFunc:Z8},Q8=rt(Zl,e=>e?0:1,"bool"),eK={kernelName:Zl,backendName:"cpu",kernelFunc:Q8},tK=Vt((e,t)=>e||t),nK=nn(Jl,tK,null,"bool"),aK={kernelName:Jl,backendName:"cpu",kernelFunc:nK};function rK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;ge(r,"LRN");let u=r.shape[3],p=u-1,d=n.data.get(r.dataId).values,c=v.sizeFromShape(r.shape),h=new Float32Array(c);function m(f){let g=f%u,y=f-g+Math.max(0,g-s),b=f-g+Math.min(g+s,p),x=0;for(;y<=b;y++){let w=d[y];x+=w*w}return x}for(let f=0;f`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=N.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))d=lr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=v.computeStrides(r.shape),m=L0(c,r.shape,r.dtype,h,p,"max");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var pK={kernelName:Li,backendName:"cpu",kernelFunc:uK};function cK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ge(r,"maxPool3d");let p=N.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=RC(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"max");return n.makeTensorInfo(c.shape,"float32",c.values)}var dK={kernelName:dc,backendName:"cpu",kernelFunc:cK};function hK(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ge([r,s],"maxPool3DGrad");let p=N.computePool3DInfo(s.shape,i,o,1,l,u),d=n.bufferSync(s),c=e5(d,p),h=p.strideDepth,m=p.strideHeight,f=p.strideWidth,g=p.dilationDepth,y=p.dilationHeight,b=p.dilationWidth,x=p.effectiveFilterDepth,w=p.effectiveFilterHeight,I=p.effectiveFilterWidth,T=x-1-p.padInfo.front,C=I-1-p.padInfo.left,E=w-1-p.padInfo.top,A=Pe(s.shape,"float32"),R=n.bufferSync(r);for(let F=0;F=p.outDepth||Math.floor(ee)!==ee))for(let ae=0;ae=p.outHeight||Math.floor(te)!==te))for(let le=0;le=p.outWidth||Math.floor(ie)!==ie)continue;let ye=x*w*I-1-c.get(F,ee,te,ie,S),ue=Q*w*I+ae*I+le,xe=ye===ue?1:0;xe!==0&&(Z+=R.get(F,ee,te,ie,S)*xe)}}}A.set(Z,F,M,B,U,S)}return n.makeTensorInfo(A.shape,A.dtype,A.values)}var mK={kernelName:fm,backendName:"cpu",kernelFunc:hK};function fK(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;ge([s,i],"maxPoolGrad");let{filterSize:l,strides:u,pad:p,dimRoundingMode:d}=a,c=N.computePool2DInfo(o.shape,l,u,1,p,d),h=n.data.get(o.dataId).values,m=Pe(c.outShape,o.dtype,DC(h,o.shape,o.dtype,c).values),f=c.strideHeight,g=c.strideWidth,y=c.dilationHeight,b=c.dilationWidth,x=c.effectiveFilterHeight,w=c.effectiveFilterWidth,I=w-1-c.padInfo.left,T=x-1-c.padInfo.top,C=Pe(o.shape,"float32"),E=n.data.get(r.dataId).values,A=Pe(r.shape,"float32",E);for(let R=0;R=c.outHeight||Math.floor(K)!==K))for(let Z=0;Z=c.outWidth||Math.floor(Q)!==Q)continue;let ee=x*w-1-m.get(R,K,Q,F),ae=q*w+Z,te=ee===ae?1:0;te!==0&&(G+=A.get(R,K,Q,F)*te)}}C.set(G,R,S,M,F)}return n.makeTensorInfo(C.shape,C.dtype,C.values)}var gK={kernelName:mm,backendName:"cpu",kernelFunc:fK};function yK(e,t,n,a,r){let s=v.computeStrides(t),i=L0(e,t,n,s,r,"max"),o=DC(e,t,n,r,!0,a);return[i.values,o.values]}var bK={kernelName:gm,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;ge(a,"MaxPoolWithArgmax");let u=l.data.get(a.dataId).values,p=N.computePool2DInfo(a.shape,r,s,[1,1],i),[d,c]=yK(u,a.shape,a.dtype,o,p),h=l.write(d,p.outShape,a.dtype),m=l.write(c,p.outShape,a.dtype);return[{dataId:h,shape:p.outShape,dtype:a.dtype},{dataId:m,shape:p.outShape,dtype:"int32"}]}};function xK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=v.parseAxisParam(s,r.shape),l=N.computeOutAndReduceShapes(r.shape,o)[1],u=v.sizeFromShape(l),p=[],d=n.makeTensorInfo([],"float32",new Float32Array([u]));p.push(d);let c=os({inputs:{x:r},backend:n,attrs:{dtype:"float32"}});p.push(c);let h=z0({inputs:{a:c,b:d},backend:n});p.push(h);let m=Qc({inputs:{x:h},backend:n,attrs:{axis:s,keepDims:i}});return p.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var vK={kernelName:zi,backendName:"cpu",kernelFunc:xK};function wK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"min");let o=v.parseAxisParam(s,r.shape),l=o,u=N.getAxesPermutation(l,r.shape.length),p=r;u!=null&&(p=Vn({inputs:{x:r},backend:n,attrs:{perm:u}}),l=N.getInnerMostAxes(l.length,r.shape.length)),N.assertAxesAreInnerMostDims("min",l,p.shape.length);let[d,c]=N.computeOutAndReduceShapes(p.shape,l),h=v.sizeFromShape(c),m=v.makeZerosTypedArray(v.sizeFromShape(d),p.dtype),f=n.data.get(p.dataId).values;for(let y=0;yb[0]+r.shape[x]+b[1]),l=s.map(b=>b[0]),u=s.map((b,x)=>b[0]+r.shape[x]),p=i==="reflect"?0:1,d=n.data.get(r.dataId).values,c=r.shape.length,h=v.computeStrides(r.shape),m=v.sizeFromShape(o),f=o.length,g=v.computeStrides(o),y=v.getTypedArrayFromDType(r.dtype,m);for(let b=0;b=u[I]&&(x[I]=(u[I]-1)*2-x[I]+p);x=x.map((I,T)=>I-l[T]);let w=v.locToIndex(x,c,h);y[b]=d[w]}return{dataId:n.write(y,o,r.dtype),shape:o,dtype:r.dtype}}var SK={kernelName:Vi,backendName:"cpu",kernelFunc:IK},TK=Vt((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),NK=nn(Ql,TK),CK={kernelName:Ql,backendName:"cpu",kernelFunc:NK},_K=us(Hh());function zC(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=r.shape.length,o=s;if(o===-1&&(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}`);let l=v.parseAxisParam([o],r.shape),u=LC({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),p=N.expandShapeToKeepDim(u.shape,l),d=ft({inputs:{x:u},backend:n,attrs:{shape:p}}),c=O0({inputs:{a:r,b:d},backend:n}),h=Y2({inputs:{x:c},backend:n}),m=Qc({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=ft({inputs:{x:m},backend:n,attrs:{shape:p}}),g=z0({inputs:{a:h,b:f},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var EK={kernelName:io,backendName:"cpu",kernelFunc:zC};function AK(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;ge(r,"multinomial");let l=o?r:zC({inputs:{logits:r},backend:n,attrs:{dim:-1}}),u=l.shape[0],p=l.shape[1],d=n.data.get(l.dataId).values,c=[u,s],h=v.makeZerosTypedArray(v.sizeFromShape(c),"int32");for(let m=0;m=0&&d[c]{v.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),v.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=zh({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=bl({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var HK={kernelName:iu,backendName:"cpu",kernelFunc:BC};function jK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;ge(r,"pad");let o=s.map((y,b)=>y[0]+r.shape[b]+y[1]),l=s.map(y=>y[0]),u=n.data.get(r.dataId).values,p=v.sizeFromShape(r.shape),d=r.shape.length,c=v.computeStrides(r.shape),h=v.sizeFromShape(o),m=o.length,f=v.computeStrides(o),g=v.getTypedArrayFromDType(r.dtype,h);i!==0&&g.fill(i);for(let y=0;yw+l[I]),x=v.locToIndex(b,m,f);g[x]=u[y]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var VC={kernelName:Hi,backendName:"cpu",kernelFunc:jK},qK=Vt((e,t)=>Math.pow(e,t)),KK=nn(ji,qK),XK={kernelName:ji,backendName:"cpu",kernelFunc:KK};function YK(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(y=>n.data.get(y.dataId).values),u=r.map(y=>y.shape),p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,[c,h,m]=hC(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(y=>n.makeTensorInfo([y.length],"int32",y)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var ZK={kernelName:bm,backendName:"cpu",kernelFunc:YK};function JK(e){let{inputs:t,backend:n}=e,{starts:a,limits:r,deltas:s}=t,i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=mC(i,a.shape,a.dtype,o,r.shape,l,s.shape),d=n.makeTensorInfo([u.length],"int32",u),c=n.makeTensorInfo([p.length],a.dtype,p);return[d,c]}var QK={kernelName:xm,backendName:"cpu",kernelFunc:JK};function eX(e){let{inputs:t,backend:n,attrs:a}=e,{shape:r,values:s,defaultValue:i,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=a,u=n.data.get(r.dataId).values,p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,c=o.map(g=>n.data.get(g.dataId).values),h=o.map(g=>g.shape),[m,f]=fC(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var tX={kernelName:vm,backendName:"cpu",kernelFunc:eX};function nX(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=F0(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var aX={kernelName:hc,backendName:"cpu",kernelFunc:nX},rX=rt(ou,e=>1/e),sX={kernelName:ou,backendName:"cpu",kernelFunc:rX};function iX(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a;ge(r,"resizeBilinear");let l=v.computeStrides(r.shape),[u,p]=o,[d,c,h,m]=r.shape,f=n.data.get(r.dataId).values,g=new Float32Array(v.sizeFromShape([d,u,p,m])),y=[s&&u>1?c-1:c,s&&p>1?h-1:h],b=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=0,w=y[0]/b[0],I=y[1]/b[1];for(let T=0;T1?u-1:u,i&&h>1?p-1:p],g=[i&&c>1?c-1:c,i&&h>1?h-1:h],y=f[0]/g[0],b=f[1]/g[1],x=n.data.get(s.dataId).values,w=0;for(let I=0;I1?c-1:c,s&&p>1?h-1:h],b=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=y[0]/b[0],w=y[1]/b[1],I=0;for(let T=0;T1?p-1:p,i&&m>1?d-1:d],b=[i&&h>1?h-1:h,i&&m>1?m-1:m],x=y[0]/b[0],w=y[1]/b[1],I=1/x,T=1/w,C=Math.ceil(I)*2+2,E=Math.ceil(T)*2+2;for(let A=0;A=h)continue;let te=R+ae*l[1],le=ae*x,ie=Math.min(p-1,i?Math.round(le):Math.floor(le));if(F===ie)for(let ye=0;ye=m)continue;let xe=te+ue*l[2],Ie=ue*w,Se=Math.min(d-1,i?Math.round(Ie):Math.floor(Ie));U===Se&&(Q+=g[xe+Z])}}f[G+Z]=Q}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var hX={kernelName:km,backendName:"cpu",kernelFunc:dX};function mX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a;ge(r,"reverse");let i=r.shape.length,o=v.parseAxisParam(s,r.shape);if(i===0)return lr({inputs:{x:r},backend:n});let l=new Ht(r.shape,r.dtype),u=n.bufferSync(r);for(let p=0;pc[h]=r.shape[h]-1-c[h]),l.set(u.get(...c),...d)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}var fX={kernelName:Qi,backendName:"cpu",kernelFunc:mX},gX={kernelName:Su,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=v.getTypedArrayFromDType(a.dtype,v.sizeFromShape(a.shape)),[u,p,d,c]=a.shape,[h,m]=N.getImageCenter(i,p,d),f=255,g=Math.sin(r),y=Math.cos(r),b=o.data.get(a.dataId).values;for(let x=0;x=0&&M=0&&B{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2===0?t:t+1}),bX={kernelName:eo,backendName:"cpu",kernelFunc:yX};function xX(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r,updates:s}=t,{shape:i}=a,{sliceRank:o,numUpdates:l,sliceSize:u,strides:p,outputSize:d}=N.calculateShapes(s,r,i),c=!0,h=n.bufferSync(r),m=n.bufferSync(s),f=Yo(h,m,i,d,u,l,o,p,0,c);return n.makeTensorInfo(i,f.dtype,f.values)}var vX={kernelName:uu,backendName:"cpu",kernelFunc:xX};function wX(e,t){let n=0,a=e.length,r=0;for(;n1||r.shape.length===1?1:v.sizeFromShape(r.shape.slice(1));for(let m=0;me>=0?EX*e:_X*(Math.exp(e)-1)),$X={kernelName:cu,backendName:"cpu",kernelFunc:AX},FX=rt(mu,e=>e<0?-1:e>0?1:0),DX={kernelName:mu,backendName:"cpu",kernelFunc:FX},RX=rt(no,e=>Math.sin(e)),MX={kernelName:no,backendName:"cpu",kernelFunc:RX},PX=rt(hu,e=>Math.sinh(e)),OX={kernelName:hu,backendName:"cpu",kernelFunc:PX},LX=11920928955078125e-23,Uk=Math.log(LX)+2,zX=rt(fu,e=>{let t=e>-Uk,n=e0&&v.isString(n[0])){let r=n.map(s=>v.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return{dataId:a,shape:e,dtype:t}}refCount(e){return this.data.has(e)?this.data.get(e).refCount:0}incRef(e){let t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){let t=this.data.get(e);t.refCount--}}move(e,t,n,a,r){this.data.set(e,{values:t,dtype:a,refCount:r})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){let{dtype:t,complexTensorInfos:n}=this.data.get(e);if(t==="complex64"){let a=this.readSync(n.real.dataId),r=this.readSync(n.imag.dataId);return N.mergeRealAndImagArrays(a,r)}return this.data.get(e).values}bufferSync(e){let t=this.readSync(e.dataId);if(e.dtype==="string")try{let n=t.map(a=>v.decodeString(a));return Pe(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Pe(e.shape,e.dtype,t)}makeOutput(e,t,n){return Na().makeTensorFromTensorInfo(this.makeTensorInfo(t,n,e),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;let{complexTensorInfos:n}=this.data.get(e);n!=null&&(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){let t=v.now();return e(),{kernelMs:v.now()-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){ge([e],"where");let t=this.readSync(e.dataId);return hj(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};N0.nextDataId=0;var B2={};$e(B2,{addImpl:()=>G2,bincountImpl:()=>_0,bincountReduceImpl:()=>H2,castImpl:()=>U2,ceilImpl:()=>j2,concatImpl:()=>E0,equalImpl:()=>q2,expImpl:()=>X2,expm1Impl:()=>Z2,floorImpl:()=>J2,gatherNdImpl:()=>Q2,gatherV2Impl:()=>eC,greaterEqualImpl:()=>nC,greaterImpl:()=>tC,lessEqualImpl:()=>rC,lessImpl:()=>aC,linSpaceImpl:()=>sC,logImpl:()=>iC,maxImpl:()=>oC,maximumImpl:()=>lC,minimumImpl:()=>uC,multiplyImpl:()=>$0,negImpl:()=>pC,notEqualImpl:()=>cC,prodImpl:()=>dC,raggedGatherImpl:()=>hC,raggedRangeImpl:()=>mC,raggedTensorToTensorImpl:()=>fC,rangeImpl:()=>F0,rsqrtImpl:()=>gC,scatterImpl:()=>Yo,sigmoidImpl:()=>oq,simpleAbsImpl:()=>V2,sliceImpl:()=>Oh,sparseFillEmptyRowsImpl:()=>bC,sparseReshapeImpl:()=>xC,sparseSegmentReductionImpl:()=>D0,sqrtImpl:()=>pq,squaredDifferenceImpl:()=>vC,stridedSliceImpl:()=>wC,stringNGramsImpl:()=>R0,stringSplitImpl:()=>M0,stringToHashBucketFastImpl:()=>P0,subImpl:()=>kC,tileImpl:()=>IC,topKImpl:()=>TC,transposeImpl:()=>A0,uniqueImpl:()=>NC});function V2(e){let t=new Float32Array(e.length);for(let n=0;n{let{x:t}=e.inputs,n=e.backend;ge(t,"abs");let a=new Float32Array(v.sizeFromShape(t.shape)),r=n.data.get(t.dataId).values;return a=V2(r),n.makeOutput(a,t.shape,t.dtype)},fj={kernelName:wl,backendName:"cpu",kernelFunc:mj};function Vt(e){return(t,n,a,r,s)=>{let i=N.assertAndGetBroadcastShape(t,n),o=i.length,l=v.computeStrides(i),u=v.sizeFromShape(i),p=v.getTypedArrayFromDType(s,u),d=t.length,c=n.length,h=v.computeStrides(t),m=v.computeStrides(n),f=N.getBroadcastDims(t,i),g=N.getBroadcastDims(n,i);if(f.length+g.length===0)for(let y=0;yx[C]=0);let w=v.locToIndex(x,d,h),I=b.slice(-c);g.forEach(C=>I[C]=0);let T=v.locToIndex(I,c,m);p[y]=e(a[w],r[T])}return[p,i]}}function Yn(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=n.makeTensorInfo(a.shape,"complex64"),l=n.data.get(o.dataId);return l.complexTensorInfos={real:n.makeTensorInfo(a.shape,"float32",s),imag:n.makeTensorInfo(r.shape,"float32",i)},o}var gj={kernelName:Qh,backendName:"cpu",kernelFunc:Yn};function Ph(e,t,n="float32"){if(n==="complex64"){let r=Ph(e,t,"float32"),s=Ph(e,t,"float32");return Yn({inputs:{real:r,imag:s},backend:e})}let a=v.makeZerosTypedArray(v.sizeFromShape(t),n);return e.makeTensorInfo(t,n,a)}function lr(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var yj={kernelName:Di,backendName:"cpu",kernelFunc:lr};function li(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.data.get(a.dataId).complexTensorInfos.real,s=n.data.get(r.dataId).values;return n.makeTensorInfo(r.shape,r.dtype,s)}var bj={kernelName:wm,backendName:"cpu",kernelFunc:li};function U2(e,t,n,a){if(a==="int32"){let r=Int32Array.from(e);return[t,"int32",r]}if(a==="bool"){let r=v.toTypedArray([0],n),[s,i]=Vt((o,l)=>o!==l?1:0)(t,[],e,r,"bool");return[i,"bool",s]}throw new Error(`Error in Cast: failed to cast ${n} to ${a}`)}function os(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return lr({inputs:{x:r},backend:n});let p=Ph(n,r.shape,r.dtype),d=os({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),c=Yn({inputs:{real:d,imag:p},backend:n});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),c}if(r.dtype==="complex64"){let p=li({inputs:{input:r},backend:n}),d=os({inputs:{x:p},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(p),d}if(!v.hasEncodingLoss(r.dtype,s)){let p=lr({inputs:{x:r},backend:n});return{dataId:p.dataId,shape:p.shape,dtype:s}}let i=n.data.get(r.dataId).values,[o,l,u]=U2(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}var xj={kernelName:bi,backendName:"cpu",kernelFunc:os};function nn(e,t,n,a){return n==null?({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;ge([i,o],e);let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=i.dtype==="string"?N.fromUint8ToStringArray(u):u,c=i.dtype==="string"?N.fromUint8ToStringArray(p):p,h=a||i.dtype,[m,f]=t(i.shape,o.shape,d,c,h);return l.makeTensorInfo(f,h,m)}:({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;if(i.dtype==="complex64"||o.dtype==="complex64"){let u=os({inputs:{x:i},backend:l,attrs:{dtype:"complex64"}}),p=l.data.get(u.dataId),d=p.complexTensorInfos.real,c=p.complexTensorInfos.imag,h=l.data.get(d.dataId).values,m=l.data.get(c.dataId).values,f=os({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),y=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,x=l.data.get(y.dataId).values,w=l.data.get(b.dataId).values,[I,T,C]=n(i.shape,o.shape,h,m,x,w),E=l.makeTensorInfo(C,"float32",I),$=l.makeTensorInfo(C,"float32",T),R=Yn({inputs:{real:E,imag:$},backend:l});return l.disposeIntermediateTensorInfo(u),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo(E),l.disposeIntermediateTensorInfo($),R}else{let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=a||i.dtype,[c,h]=t(i.shape,o.shape,u,p,d);return l.makeTensorInfo(h,d,c)}}}function C0(e){return(t,n,a,r,s,i)=>{let o=N.assertAndGetBroadcastShape(t,n),l=v.sizeFromShape(o),u=o.length,p=v.computeStrides(o),d=v.getTypedArrayFromDType("float32",l),c=v.getTypedArrayFromDType("float32",l),h=N.getBroadcastDims(t,o),m=N.getBroadcastDims(n,o),f=N.mergeRealAndImagArrays(a,r),g=N.mergeRealAndImagArrays(s,i),y=t.length,b=v.computeStrides(t),x=n.length,w=v.computeStrides(n);if(h.length+m.length===0)for(let I=0;IC[S]=0);let E=v.locToIndex(C,y,b),$=T.slice(-x);m.forEach(S=>$[S]=0);let R=v.locToIndex($,x,w),F=e(f[E*2],f[E*2+1],g[R*2],g[R*2+1]);d[I]=F.real,c[I]=F.imag}return[d,c,o]}}var G2=Vt((e,t)=>e+t),vj=C0((e,t,n,a)=>({real:e+n,imag:t+a})),gl=nn(cs,G2,vj),wj={kernelName:cs,backendName:"cpu",kernelFunc:gl};function _0(e,t,n,a,r){let s=v.sizeFromShape(a),i=v.makeZerosTypedArray(r,n);for(let o=0;o=r||(s>0?i[l]+=t[o]:i[l]+=1)}return i}function H2(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=Pe([r,n],t.dtype);for(let o=0;o=n||(a?i.set(1,o,u):t.size>0?i.set(i.get(o,u)+t.get(o,l),o,u):i.set(i.get(o,u)+1,o,u))}return i}function ks(e){return(t,n,a)=>{let r=v.getTypedArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;if(ge(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,u=v.sizeFromShape(i.shape),p=n||i.dtype,d=v.getArrayFromDType(p,u);for(let c=0;c{let{x:i}=a;if(ge(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,u=n||i.dtype,p=t(l,u,r);return o.makeTensorInfo(i.shape,u,p)}}var j2=ks(e=>Math.ceil(e)),kj=Pu(xi,j2),Ij={kernelName:xi,backendName:"cpu",kernelFunc:kj};function E0(e,t,n,a){let r=v.getArrayFromDType(n,v.sizeFromShape(t));if(a&&n!=="string"){let s=0;e.forEach(i=>{let o=v.sizeFromShape(i.shape);r.set(i.vals,s),s+=o})}else{let s=0;e.forEach(i=>{let o=n==="string"?N.fromUint8ToStringArray(i.vals):i.vals,l=0;for(let u=0;ue===t?1:0),K2=nn(Ol,q2,null,"bool"),Sj={kernelName:Ol,backendName:"cpu",kernelFunc:K2},X2=ks(e=>Math.exp(e)),Y2=Pu(_i,X2,"float32"),Tj={kernelName:_i,backendName:"cpu",kernelFunc:Y2},Z2=ks(e=>Math.expm1(e)),Nj=Pu(zl,Z2),Cj={kernelName:zl,backendName:"cpu",kernelFunc:Nj},J2=ks(e=>Math.floor(e)),_j=Pu(Ei,J2),Ej={kernelName:Ei,backendName:"cpu",kernelFunc:_j};function Q2(e,t,n,a,r,s,i,o,l){let u=Pe([a,s],n);for(let p=0;p=l/s)throw new Error(`Invalid indices: ${d} does not index into ${o}`);for(let h=0;he>t?1:0),$j=nn(Ul,tC,null,"bool"),Aj={kernelName:Ul,backendName:"cpu",kernelFunc:$j},nC=Vt((e,t)=>e>=t?1:0),Fj=nn(Fi,nC,null,"bool"),Dj={kernelName:Fi,backendName:"cpu",kernelFunc:Fj},aC=Vt((e,t)=>ee<=t?1:0),Pj=nn(Kl,rC,null,"bool"),Oj={kernelName:Kl,backendName:"cpu",kernelFunc:Pj};function sC(e,t,n){let a=(t-e)/(n-1),r=v.makeZerosTypedArray(n,"float32");r[0]=e;for(let s=1;sMath.log(e)),Lj=Pu(Mi,iC),zj={kernelName:Mi,backendName:"cpu",kernelFunc:Lj};function oC(e,t,n,a){let r=v.getTypedArrayFromDType(a,v.sizeFromShape(n));for(let s=0;so)&&(o=u)}r[s]=o}return r}var lC=Vt((e,t)=>Math.max(e,t)),Wj=nn(Oi,lC),Bj={kernelName:Oi,backendName:"cpu",kernelFunc:Wj},uC=Vt((e,t)=>Math.min(e,t)),Vj=nn(Bi,uC),Uj={kernelName:Bi,backendName:"cpu",kernelFunc:Vj},$0=Vt((e,t)=>e*t),Gj=C0((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),Ff=nn(Ui,$0,Gj),Hj={kernelName:Ui,backendName:"cpu",kernelFunc:Ff};function pC(e,t,n){let a=v.createScalarValue(-1,n);return $0([],t,a,e,n)}function jj(e){let{inputs:t,backend:n}=e,{x:a}=t;ge(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=pC(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var qj={kernelName:eu,backendName:"cpu",kernelFunc:jj},cC=Vt((e,t)=>e!==t?1:0),Kj=nn(tu,cC,null,"bool"),Xj={kernelName:tu,backendName:"cpu",kernelFunc:Kj};function A0(e,t,n,a,r){let s=t.length,i=v.sizeFromShape(t),o=v.computeStrides(t),l=v.computeStrides(r),u=v.getTypedArrayFromDType(n,v.sizeFromShape(r));for(let p=0;pn.disposeIntermediateTensorInfo(b)),n.makeTensorInfo(y,g,m)}var Jj={kernelName:Ki,backendName:"cpu",kernelFunc:Zj};function Qj(e,t,n){e.forEach((a,r)=>{if(a<0||a>=n){let s=v.indexToLoc(r,t.length,v.computeStrides(t)).join(",");throw new Error(`indices[${s}] = ${a} is not in [0, ${n})`)}})}function eq(e,t){for(let n=0;nr)throw new Error("Ragged splits must not point past values");for(let s=1;sa[s])throw new Error("Ragged splits must be sorted in ascending order")}}function tq(e,t,n,a){let r=[],s=0,i=t.length-1+n.length,o=new Array(i).fill(null).map(()=>[0]);eq(n,a);let l=1;for(let u=0;u=0){let f=o[m],g=f[f.length-1]-h[p];for(let y=p;yr[i]=s)}return t}function zk(e,t){let n=e.slice(0,t);for(;n.length1)throw new Error("starts must be a scalar or vector");if(r.length>1)throw new Error("limits must be a scalar or vector");if(i.length>1)throw new Error("deltas must be a scalar or vector");let o=t.length===0,l=r.length===0,u=i.length===0,p=[];o||p.push(t[0]),l||p.push(r[0]),u||p.push(i[0]);for(let g=1;g0&&by)w=0;else if(w=Math.ceil(Math.abs((b-y)/x)),w>Wk)throw new Error(`Requires ((limit - start) / delta) <= ${Wk}`);c[g+1]=c[g]+w}let h=c[d],m=v.getArrayFromDType(n,h),f=0;for(let g=0;gn&&(n=r)}return n}static getMaxWidthValueRowID(e){let t=e.length;if(t===0)return 0;let n=0,a=e[0],r=0;for(let s=1;s"Final length of result must be equal to firstDimension."),r}calculateOutputIndexRowSplit(e,t,n,a){let r=e.length,s=[];for(let i=0;i0&&s.length!==e[r-1])throw new Error("Invalid row split size.");return s}calculateOutputIndexValueRowID(e,t,n,a){let r=e.length,s=[];if(r===0)return[];let i=0,o=e[0];if(o>=t.length)throw new Error(`Got currentValueRowId=${o}, which is not less than ${t.length}`);let l=t[o];s.push(l);for(let u=1;u=0&&(++i,i=t.length)throw new Error(`Got nextValueRowId=${p} which is not less than ${t.length}`);l=t[p]}s.push(l)}if(s.length!==e.length)throw new Error("Invalid row ids.");return s}calculateOutputIndex(e,t,n,a){let r=this.getRowPartitionTensor(e),s=this.getRowPartitionTypeByDimension(e);switch(s){case Ia.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(r,t,n,a);case Ia.ROW_SPLITS:if(r.length-1>t.length)throw new Error(`Row partition size is greater than output size: ${r.length-1} > ${t.length}`);return this.calculateOutputIndexRowSplit(r,t,n,a);default:throw new Error(`Unsupported partition type: ${Ia[s]}`)}}getFirstDimensionSize(){let e=this.rowPartitionValues[0];if(this.rowPartitionTypes.length===0)throw new Error("No row_partition_types given.");let t=this.rowPartitionTypes[0];switch(t){case Ia.FIRST_DIM_SIZE:return e[0];case Ia.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Ia.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Ia[t]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error("Invalid first partition input. Tensor requires at least one element.");let e=this.getFirstDimensionSize(),t=this.calculateOutputSize(e),n=new Array(this.raggedRank+1);n[n.length-1]=1;for(let s=n.length-2;s>=0;--s)n[s]=n[s+1]*t[s+1];let a=Vk(t,!1),r=v.getArrayFromDType(this.valuesDType,v.sizeFromShape(a));if(n[0]*t[0]>0){let s=this.calculateFirstParentOutputIndex(e,n[0],t[0]);for(let i=1;i<=this.raggedRank;++i)s=this.calculateOutputIndex(i-1,s,n[i],t[i]);this.setOutput(this.raggedRank,s,r,a)}return[a,r]}setOutput(e,t,n,a){if(n.length===0)return;let r=this.values,s=n,i=a.slice();i=i.slice(e+1);let o=v.sizeFromShape(i),l=t.length,u=this.defaultValue;if(u.length!==o&&u.length!==1){let h=this.defaultValueShape;P(()=>{let m=W(u,h);u=Ks(m,i).dataSync()})}let p=0,d=0,c=0;for(let h=0;h<=l;++h){let m=h=l){let f=n.length;m=Math.floor(f/o)}if(m>c)if(this.defaultValue.length===1)s.subarray(c*o,m*o).fill(this.defaultValue[0]),c=m;else for(;m>c;){let f=s.slice(c*o);Bk(f,u,o),++c}m<0?(p=h+1,d=c):(p=h,d=c,c=d+1)}}};function Bk(e,t,n){for(let a=0;a= 0`);if(a<-1)throw new Error(`Dimension ${a} must be >= -1`);a=-1}n.push(a)}return n}function fC(e,t,n,a,r,s,i,o,l,u){return new ax(e,t,n,a,r,s,i,o,l,u).compute()}function F0(e,t,n,a){let r=e===t,s=e1;if(r||s||i)return v.makeZerosTypedArray(0,a);let o=Math.abs(Math.ceil((t-e)/n)),l=v.makeZerosTypedArray(o,a);t1/Math.sqrt(e)),sq=Pu(to,gC),iq={kernelName:to,backendName:"cpu",kernelFunc:sq};function Yo(e,t,n,a,r,s,i,o,l,u){let p=[a/r,r],d=e.values,c=t.values;if(a===0)return Pe(n,t.dtype);let h=Pe(p,t.dtype);typeof l=="string"||typeof l=="number"?h.values.fill(l):typeof l=="boolean"&&h.values.fill(+l);for(let m=0;m=a/r)throw new Error(`Invalid indices: ${f} does not index into ${n}`);for(let y=0;y1/(1+Math.exp(-e))),yC=rt(ao,e=>1/(1+Math.exp(-e))),lq={kernelName:ao,backendName:"cpu",kernelFunc:yC};function Oh(e,t,n,a,r){let s=jt.isSliceContinous(a,t,n),i=v.sizeFromShape(n),o=v.computeStrides(a);if(s){let d=jt.computeFlatOffset(t,o);return r==="string"?e.slice(d,d+i):e.subarray(d,d+i)}let l=r==="string"?N.fromUint8ToStringArray(e):e,u=Pe(a,r,l),p=Pe(n,r);for(let d=0;dm+t[f]);p.set(u.get(...h),...c)}return r==="string"?N.fromStringArrayToUint8(p.values):p.values}function ui(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a;ge(r,"slice");let[o,l]=jt.parseSliceParams(r,s,i);jt.assertParamsValid(r,o,l);let u=n.data.get(r.dataId).values,p=Oh(u,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,p)}var uq={kernelName:du,backendName:"cpu",kernelFunc:ui};function bC(e,t,n,a,r,s,i){let o=t[0],l=s[0],u=new Array(l),p=new Array(o),d=t[1];if(l===0){if(o!==0)throw new Error(N.getSparseFillEmptyRowsIndicesDenseShapeMismatch(o));let g=v.getArrayFromDType(n,0),y=v.getArrayFromDType(r,0);return[g,[0,d],y,u,p]}let c=!0,h=0,m=new Array(l).fill(0);for(let g=0;g=l)throw new Error(N.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,y,l));++m[y],c=c&&y>=h,h=y}let f=!0;for(let g=0;g0&&(m[g]+=m[g-1])}if(f&&c){let g=e,y=a;for(let b=0;b0){c[d-1]=1;for(let f=d-2;f>=0;--f)c[f]=c[f+1]*a[f+1]}let h=[];if(o>0){h[o-1]=1;for(let f=o-2;f>=0;--f)h[f]=h[f+1]*l[f+1]}let m=v.getArrayFromDType(n,i*o);for(let f=0;f0?r[o-1]+1:0;if(p<0)throw new Error(N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let d=t.slice();d[0]=p;let c=d.reduce((b,x)=>b*x,1),h=v.getArrayFromDType(n,c);if(o===0)return p>0&&h.fill(i),[h,d];if(p<=0)throw new Error(N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=0,f=1,g=0,y=r[m];for(;;){let b=0;if(f=b)throw new Error(N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(y<0||y>=p)throw new Error(N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(y,p));y>g&&h.fill(i,g*u,y*u);for(let x=m;x=l[0])throw new Error(N.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(x,a[x],l[0]));for(let I=0;Io)break}return gMath.sqrt(e)),cq=rt(ro,e=>Math.sqrt(e)),dq={kernelName:ro,backendName:"cpu",kernelFunc:cq},vC=Vt((e,t)=>{let n=e-t;return n*n}),hq=nn(oo,vC),mq={kernelName:oo,backendName:"cpu",kernelFunc:hq};function wC(e,t,n,a){let r=Pe(e,t.dtype);for(let s=0;s0?0:i-o),c=0;c+=l*this.leftPad.length;for(let y=0;yy.forEach(b=>m[f++]=b);for(let y=0;y0){g(e[d+p-1]);for(let y=0;y0){let o=t[0];if(o!==0)throw new Error(`First split value must be 0, got ${o}`);for(let l=1;l=o;if(u=u&&t[l]<=n,!u)throw new Error(`Invalid split value ${t[l]}, must be in [${o}, ${n}]`);o=t[l]}if(o!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${o}`)}let r=a-1,s=v.getArrayFromDType("int32",a);if(n===0||a===0){let o=new Array(n);for(let l=0;l<=r;++l)s[l]=0;return[o,s]}s[0]=0;for(let o=1;o<=r;++o){let l=t[o]-t[o-1],u=0;this.nGramWidths.forEach(p=>{u+=this.getNumNGrams(l,p)}),this.preserveShort&&l>0&&u===0&&(u=1),s[o]=s[o-1]+u}let i=new Array(s[r]);for(let o=0;o{let d=t[o+1]-t[o],c=this.getNumNGrams(d,p);this.createNGrams(e,l,i,u,c,p),u+=c}),this.preserveShort&&u===s[o]){let p=t[o+1]-t[o];if(p===0)continue;let d=p+2*this.padWidth,c=1;this.createNGrams(e,l,i,u,c,d)}}return[i,s]}};function R0(e,t,n,a,r,s,i,o){return new fq(n,a,r,s,i,o).compute(e,t)}function gq(e,t,n,a){if(!e.length)return;if(t.length===0){for(let s=0;se-t),yq=C0((e,t,n,a)=>({real:e-n,imag:t-a})),O0=nn(lo,kC,yq),bq={kernelName:lo,backendName:"cpu",kernelFunc:O0};function IC(e,t){let n=new Array(e.rank);for(let r=0;r{let n=t.value-e.value;return n===0?e.index-t.index:n};function SC(e,t,n=0,a=e.length-1){for(;a>n;){if(a-n>600){let o=a-n+1,l=t-n+1,u=Math.log(o),p=.5*Math.exp(2*u/3),d=.5*Math.sqrt(u*p*(o-p)/o)*Math.sign(l-o/2),c=Math.max(n,Math.floor(t-l*p/o+d)),h=Math.min(a,Math.floor(t+(o-l)*p/o+d));SC(e,t,c,h)}let r=e[t],s=n,i=a;for(v.swap(e,n,t),Ap(e[a],r)>0&&v.swap(e,n,a);s0;)i=i-1}Ap(e[n],r)===0?v.swap(e,n,i):(i=i+1,v.swap(e,i,a)),i<=t&&(n=i+1),t<=i&&(a=i-1)}}function TC(e,t,n,a,r){let s=t[t.length-1],[i,o]=[e.length/s,s],l=v.getTypedArrayFromDType(n,i*a),u=v.getTypedArrayFromDType("int32",i*a);for(let d=0;dm[x]={value:b,index:x}),a{for(let g=0;gnew N0,1);var CC=rt(Ci,e=>e>=0?e:Math.exp(e)-1),xq={kernelName:Ci,backendName:"cpu",kernelFunc:CC};function _C(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a;ge([r],"leakyRelu");let i=v.sizeFromShape(r.shape),o=n.data.get(r.dataId).values,l=v.getTypedArrayFromDType("float32",i);for(let u=0;ue<0?t*e:e);function EC(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t;ge([a,r],"prelu");let s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,[o,l]=wq(a.shape,r.shape,s,i,"float32");return n.makeTensorInfo(l,"float32",o)}var kq={kernelName:qi,backendName:"cpu",kernelFunc:EC},$C=rt(Xi,e=>Math.max(0,e)),Iq={kernelName:Xi,backendName:"cpu",kernelFunc:$C},AC=rt(Ji,e=>Math.min(Math.max(0,e),6)),Sq={kernelName:Ji,backendName:"cpu",kernelFunc:AC};function Lh(e,t,n,a,r){if(n==="linear")return lr({inputs:{x:t},backend:e});if(n==="relu")return $C({inputs:{x:t},backend:e});if(n==="elu")return CC({inputs:{x:t},backend:e});if(n==="relu6")return AC({inputs:{x:t},backend:e});if(n==="prelu")return EC({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return _C({inputs:{x:t},backend:e,attrs:{alpha:r}});if(n==="sigmoid")return yC({inputs:{x:t},backend:e});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function ft(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=v.sizeFromShape(r.shape),o=v.inferFromImplicitShape(s,i),l=v.sizeFromShape(o);v.assert(i===l,()=>`The new shape (${o}) has ${l} elements and the old shape (${r.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),n.incRef(r.dataId);let u=n.data.get(r.dataId);if(u.complexTensorInfos!=null){let p=u.complexTensorInfos.real,d=u.complexTensorInfos.imag;p.shape=o,d.shape=o}return{dataId:r.dataId,shape:o,dtype:r.dtype}}var Tq={kernelName:lu,backendName:"cpu",kernelFunc:ft};function FC(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;ge([r,s],"matMul");let l=r.shape.length,u=s.shape.length,p=i?r.shape[l-2]:r.shape[l-1],d=o?s.shape[u-1]:s.shape[u-2],c=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[u-2]:s.shape[u-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=v.sizeFromShape(m),y=v.sizeFromShape(f),b=Tu.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);v.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,p,c]:[g,c,p],w=o?[y,h,d]:[y,d,h],I=ft({inputs:{x:r},backend:n,attrs:{shape:x}}),T=ft({inputs:{x:s},backend:n,attrs:{shape:w}}),C=i?I.shape[1]:I.shape[2],E=i?I.shape[2]:I.shape[1],$=o?T.shape[1]:T.shape[2],R=Math.max(g,y),F=n.data.get(I.dataId).values,S=n.data.get(T.dataId).values,M=v.computeStrides(I.shape),B=v.computeStrides(T.shape),[U,G,q]=i?[M[0],1,M[1]]:[M[0],M[1],1],[K,Z,J]=o?[1,B[1],B[0]]:[B[1],1,B[0]],ee=E*$,ae=Pe([R,E,$],I.dtype),te=ae.values,ie=n.blockSize;for(let oe=0;oeMath.acos(e)),$q={kernelName:kl,backendName:"cpu",kernelFunc:Eq},Aq=rt(Il,e=>Math.acosh(e)),Fq={kernelName:Il,backendName:"cpu",kernelFunc:Aq};function Dq(e){let{inputs:t,backend:n}=e,a=t;ge(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=Pe(a[0].shape,a[0].dtype),i=s.values;for(let o=0;ob&&(b=I,x=w)}h[g]=x}return u.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var Wq={kernelName:fi,backendName:"cpu",kernelFunc:zq};function Bq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a;ge(r,"argMin");let i=v.parseAxisParam(s,r.shape),o=N.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Vn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=N.getInnerMostAxes(i.length,l.shape.length)),i=[i[0]],N.assertAxesAreInnerMostDims("argMin",i,l.shape.length);let[p,d]=N.computeOutAndReduceShapes(l.shape,i),c=v.sizeFromShape(p),h=v.makeZerosTypedArray(c,"int32"),m=v.sizeFromShape(d),f=n.data.get(l.dataId).values;for(let g=0;gn.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var Vq={kernelName:sc,backendName:"cpu",kernelFunc:Bq},Uq=rt(Nl,e=>Math.asin(e)),Gq={kernelName:Nl,backendName:"cpu",kernelFunc:Uq},Hq=rt(Cl,e=>Math.asinh(e)),jq={kernelName:Cl,backendName:"cpu",kernelFunc:Hq},qq=rt(_l,e=>Math.atan(e)),Kq={kernelName:_l,backendName:"cpu",kernelFunc:qq},Xq=Vt((e,t)=>Math.atan2(e,t)),Yq=nn($l,Xq),Zq={kernelName:$l,backendName:"cpu",kernelFunc:Yq},Jq=rt(El,e=>Math.atanh(e)),Qq={kernelName:El,backendName:"cpu",kernelFunc:Jq};function L0(e,t,n,a,r,s){let i=r.strideHeight,o=r.strideWidth,l=r.dilationHeight,u=r.dilationWidth,p=r.effectiveFilterHeight,d=r.effectiveFilterWidth,c=r.padInfo.top,h=r.padInfo.left,m=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,f=Pe(r.outShape,n),g=f.values,y=r.outShape[1]*r.outShape[2]*r.outShape[3],b=r.outShape[2]*r.outShape[3],x=r.outShape[3];for(let w=0;wq?q=oe:s==="avg"&&(K+=oe,Z++)}if(isNaN(q))break}let J=S+M*x+C;g[J]=s==="avg"?K/Z:q}}}return f}function DC(e,t,n,a,r=!1,s=!1){let i=Pe(a.outShape,"int32"),o=a.strideHeight,l=a.strideWidth,u=a.dilationHeight,p=a.dilationWidth,d=a.effectiveFilterHeight,c=a.effectiveFilterWidth,h=a.padInfo.top,m=a.padInfo.left,f=Pe(t,n,e);for(let g=0;gR&&(R=G,r?F=s?((g*a.inHeight+S)*a.inWidth+B)*a.inChannels+y:(S*a.inWidth+B)*a.inChannels+y:F=M*c+U)}}i.set(F,g,b,T,y)}}return i}function RC(e,t,n,a,r,s){let i=r.strideDepth,o=r.strideHeight,l=r.strideWidth,u=r.dilationDepth,p=r.dilationHeight,d=r.dilationWidth,c=r.effectiveFilterDepth,h=r.effectiveFilterHeight,m=r.effectiveFilterWidth,f=r.padInfo.front,g=r.padInfo.top,y=r.padInfo.left,b=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,x=Pe(r.outShape,n),w=x.values,I=r.outShape[1]*r.outShape[2]*r.outShape[3]*r.outShape[4],T=r.outShape[2]*r.outShape[3]*r.outShape[4],C=r.outShape[3]*r.outShape[4],E=r.outShape[4];for(let $=0;$be?be=dt:s==="avg"&&(ke+=dt,Se++),isNaN(be))break}if(isNaN(be))break}if(isNaN(be))break}let Le=ue+S;w[Le]=s==="avg"?ke/Se:be}}}}return x}function e5(e,t){let n=Pe(t.outShape,"int32"),a=t.strideDepth,r=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,u=t.effectiveFilterDepth,p=t.effectiveFilterHeight,d=t.effectiveFilterWidth,c=t.padInfo.front,h=t.padInfo.top,m=t.padInfo.left;for(let f=0;f=M&&(M=ee,B=G*p*d+K*p+J)}}}n.set(B,f,y,I,$,g)}}}return n}function t5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;ge(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;v.assert(N.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=N.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))d=lr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=v.computeStrides(r.shape),m=L0(c,r.shape,r.dtype,h,p,"avg");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var n5={kernelName:gi,backendName:"cpu",kernelFunc:t5};function a5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ge(r,"avgPool3d");let p=N.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=RC(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"avg");return n.makeTensorInfo(c.shape,"float32",c.values)}var r5={kernelName:ic,backendName:"cpu",kernelFunc:a5};function s5(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ge([r,s],"avgPool3DGrad");let p=N.computePool3DInfo(s.shape,i,o,1,l,u),d=p.strideDepth,c=p.strideHeight,h=p.strideWidth,m=p.filterDepth,f=p.filterHeight,g=p.filterWidth,y=p.dilationDepth,b=p.dilationHeight,x=p.dilationWidth,w=p.effectiveFilterDepth,I=p.effectiveFilterHeight,T=p.effectiveFilterWidth,C=w-1-p.padInfo.front,E=T-1-p.padInfo.left,$=I-1-p.padInfo.top,R=Pe(s.shape,"float32"),F=1/(m*f*g),S=n.bufferSync(r);for(let M=0;M=p.outDepth||Math.floor(te)!==te))for(let ie=0;ie=p.outHeight||Math.floor(oe)!==oe))for(let ye=0;ye=p.outWidth||Math.floor(ue)!==ue)continue;let be=S.get(M,te,oe,ue,B);ee+=be}}}R.set(ee*F,M,U,G,q,B)}return n.makeTensorInfo(R.shape,R.dtype,R.values)}var i5={kernelName:Yh,backendName:"cpu",kernelFunc:s5};function o5(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;ge([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=N.computePool2DInfo(i.shape,o,l,1,u),d=p.strideHeight,c=p.strideWidth,h=p.filterHeight,m=p.filterWidth,f=p.dilationHeight,g=p.dilationWidth,y=p.effectiveFilterHeight,b=p.effectiveFilterWidth,x=b-1-p.padInfo.left,w=y-1-p.padInfo.top,I=Pe(i.shape,"float32"),T=1/(h*m),C=n.data.get(r.dataId).values,E=Pe(r.shape,"float32",C);for(let $=0;$=p.outHeight||Math.floor(q)!==q))for(let K=0;K=p.outWidth||Math.floor(Z)!==Z)continue;let J=E.get($,q,Z,R);U+=J}}I.set(U*T,$,F,S,R)}return n.makeTensorInfo(I.shape,I.dtype,I.values)}var l5={kernelName:Xh,backendName:"cpu",kernelFunc:o5};function u5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,scale:s,offset:i,mean:o,variance:l}=t;v.assert(o.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),v.assert(i==null||o.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),v.assert(s==null||o.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),ge([r,o,l,s,i],"batchNorm");let{varianceEpsilon:u}=a;u==null&&(u=.001);let p=n.data.get(r.dataId).values,d=n.data.get(o.dataId).values,c=n.data.get(l.dataId).values,h=s?n.data.get(s.dataId).values:new Float32Array([1]),m=i?n.data.get(i.dataId).values:new Float32Array([0]),f=new Float32Array(p.length),g=m.length,y=h.length,b=c.length,x=d.length,w=0,I=0,T=0,C=0;for(let E=0;E=g&&(w=0),I>=x&&(I=0),T>=y&&(T=0),C>=b&&(C=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var p5={kernelName:Ai,backendName:"cpu",kernelFunc:u5};function c5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;ge([r],"batchToSpaceND");let o=s.reduce((y,b)=>y*b),l=N.getReshaped(r.shape,s,o),u=N.getPermuted(l.length,s.length),p=N.getReshapedPermuted(r.shape,s,o),d=N.getSliceBeginCoords(i,s.length),c=N.getSliceSize(p,i,s.length),h=ft({inputs:{x:r},backend:n,attrs:{shape:l}}),m=Vn({inputs:{x:h},backend:n,attrs:{perm:u}}),f=ft({inputs:{x:m},backend:n,attrs:{shape:p}}),g=ui({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var d5={kernelName:Al,backendName:"cpu",kernelFunc:c5};function h5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,u=_0(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var m5={kernelName:Zh,backendName:"cpu",kernelFunc:h5};function f5(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=N.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var g5={kernelName:Jh,backendName:"cpu",kernelFunc:f5},y5=rt(ds,(e,t)=>{let n=t;return e>n.clipValueMax?n.clipValueMax:e{let{x:t}=e.inputs,n=e.backend,a=new Float32Array(v.sizeFromShape(t.shape)),r=n.data.get(t.dataId),s=r.complexTensorInfos.real,i=r.complexTensorInfos.imag,o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values;for(let u=0;uf.shape);N.assertParamsConsistent(i,s);let o=N.computeOutShape(t.map(f=>f.shape),s);if(v.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(f=>v.sizeFromShape(f.shape)>0);if(l.length===1)return lr({inputs:{x:l[0]},backend:n});if(l[0].dtype==="complex64"){let f=l.map(w=>li({inputs:{input:w},backend:n})),g=l.map(w=>yl({inputs:{input:w},backend:n})),y=bl({inputs:f,backend:n,attrs:{axis:s}}),b=bl({inputs:g,backend:n,attrs:{axis:s}}),x=Yn({inputs:{real:y,imag:b},backend:n});return f.forEach(w=>n.disposeIntermediateTensorInfo(w)),g.forEach(w=>n.disposeIntermediateTensorInfo(w)),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(b),x}let u=l.map(f=>{let g=[-1,v.sizeFromShape(f.shape.slice(s))];return ft({inputs:{x:f},backend:n,attrs:{shape:g}})}),p=u.map(f=>({vals:n.data.get(f.dataId).values,shape:f.shape}));o=N.computeOutShape(u.map(f=>f.shape),1);let d=u[0].shape[0]===1,c=E0(p,o,t[0].dtype,d),h=N.computeOutShape(l.map(f=>f.shape),s),m=n.makeTensorInfo(h,t[0].dtype,c);return u.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var k5={kernelName:Fl,backendName:"cpu",kernelFunc:bl};function MC(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:p}=a;ge([r,s],"conv2d");let d=N.convertConv2DDataFormat(l),c=N.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h=c.filterHeight,m=c.filterWidth,f=c.dilationHeight,g=c.dilationWidth,y=c.padInfo.left,b=c.padInfo.top,x=c.dataFormat==="channelsLast",w=new Ht(c.outShape,r.dtype),I=v.computeStrides(r.shape),T=v.computeStrides(s.shape),C=I[0],E=x?I[1]:I[2],$=x?I[2]:1,R=x?1:I[1],F=w.strides[0],S=x?w.strides[1]:w.strides[2],M=x?w.strides[2]:1,B=x?1:w.strides[1],U=n.data.get(r.dataId).values,G=n.data.get(s.dataId).values,q=w.values;for(let K=0;K=c.inHeight)continue;let ye=ie*T[0],ue=Z+oe*E;for(let be=0;be=c.inWidth)continue;let nt=ye+Le*T[1],st=ue+Ve*$,Je=nt;for(let at=0;at=u.inDepth)continue;let K=G*$[0],Z=F+q*E[1];for(let J=0;J=u.inHeight)continue;let oe=K+te*$[1],ye=Z+ie*E[2];for(let ue=0;ue=u.inWidth)continue;let Ve=oe+Se*$[2],nt=ye+Le*u.inChannels,st=Ve;for(let Je=0;JeMath.cos(e)),M5={kernelName:ki,backendName:"cpu",kernelFunc:R5},P5=rt(Ii,e=>Math.cosh(e)),O5={kernelName:Ii,backendName:"cpu",kernelFunc:P5};function L5(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,[p,d,c,h]=r.shape,m=s.shape[0],[f,g]=o,y=Pe([m,f,g,h],"float32"),b=n.data.get(s.dataId).values,x=n.data.get(i.dataId).values,w=n.data.get(r.dataId).values,I=v.computeStrides(r.shape),T=v.computeStrides(y.shape);for(let C=0;C=p)continue;let B=f>1?(F-$)*(d-1)/(f-1):0,U=g>1?(S-R)*(c-1)/(g-1):0;for(let G=0;G1?$*(d-1)+G*B:.5*($+F)*(d-1);if(q<0||q>d-1){for(let K=0;K1?R*(c-1)+ee*U:.5*(R+S)*(c-1);if(ae<0||ae>c-1){for(let ye=0;ye1?R*(c-1)+K*U:.5*(R+S)*(c-1);if(Z<0||Z>c-1){for(let ae=0;aey+m-b-1:(y,b)=>y+b;for(let y=0;yy+m-b-1:(y,b)=>y+b;for(let y=0;y`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`);let o=r.shape[0],l=r.shape[1],u=r.shape[2],p=r.shape[3],d=l*s,c=u*s,h=p/(s*s),m=n.data.get(r.dataId).values,f=new Float32Array(o*d*c*h),g=0;for(let y=0;y`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let h=N.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!0),{filterHeight:m,filterWidth:f,dilationHeight:g,dilationWidth:y,padInfo:b}=h,x=b.left,w=b.top,I=h.outChannels/h.inChannels,T=new Ht(h.outShape,r.dtype),C=n.data.get(r.dataId).values,E=n.data.get(s.dataId).values,$=T.values;for(let R=0;R=h.inHeight)continue;let K=G*d[0],Z=F+q*p[1];for(let J=0;J=h.inWidth)continue;let oe=K+te*d[1],ye=Z+ie*h.inChannels,ue=ee,be=oe;for(let ke=0;ke{let{x:a,filter:r}=e,{strides:s,pad:i,dilations:o}=n,l=t,u=l.data.get(a.dataId).values,p=a.shape.length,d=l.data.get(r.dataId).values,c=r.shape.length,{batchSize:h,inHeight:m,inWidth:f,inChannels:g,outHeight:y,outWidth:b,padInfo:x,strideHeight:w,strideWidth:I,filterHeight:T,filterWidth:C,dilationHeight:E,dilationWidth:$,outShape:R}=N.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),F=v.sizeFromShape(R),S=R.length,M=v.getArrayFromDType(a.dtype,F);for(let B=0;B=0&&te=0&&oeJ&&(J=be)}}}let ee=v.locToIndex([B,U,q,Z],S,v.computeStrides(R));M[ee]=J}}}return{dataId:l.write(v.toTypedArray(M,a.dtype),R,a.dtype),shape:R,dtype:a.dtype}}},n8={kernelName:gh,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,p=v.toNestedArray(a.shape,u.data.get(a.dataId).values),d=v.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:x,strideWidth:w,filterHeight:I,filterWidth:T,dilationHeight:C,dilationWidth:E,outShape:$}=N.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);v.assert(s.rank===$.length,()=>`Error in ${gh}, dy must have the same rank as output ${$.length}, but got ${s.rank}`);let R=v.toNestedArray($,u.data.get(s.dataId).values),F=v.makeZerosNestedTypedArray(r.shape,r.dtype);for(let S=0;S=0&&ae=0&&ieK&&(K=oe,Z=ee,J=te)}}}F[Z][J][q]+=R[S][M][U][q]}}}return{dataId:u.write(v.toTypedArray(F,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},a8={kernelName:fh,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,p=v.toNestedArray(a.shape,u.data.get(a.dataId).values),d=v.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:x,strideWidth:w,filterHeight:I,filterWidth:T,dilationHeight:C,dilationWidth:E,outShape:$}=N.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);v.assert(s.rank===$.length,()=>`Error in ${fh}, dy must have the same rank as output ${$.length}, but got ${s.rank}`);let R=v.toNestedArray($,u.data.get(s.dataId).values),F=v.makeZerosNestedTypedArray(a.shape,a.dtype);for(let S=0;S=0&&ae=0&&ieK&&(K=oe,Z=ae,J=ie)}}}F[S][Z][J][q]+=R[S][M][U][q]}}}return{dataId:u.write(v.toTypedArray(F,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function Qc(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"sum");let o;r.dtype==="bool"?o=os({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=lr({inputs:{x:r},backend:n});let l=o.shape.length,u=v.parseAxisParam(s,o.shape),p=N.getAxesPermutation(u,l),d=u,c=o;p!=null&&(c=Vn({inputs:{x:o},backend:n,attrs:{perm:p}}),d=N.getInnerMostAxes(d.length,l)),N.assertAxesAreInnerMostDims("sum",d,c.shape.length);let[h,m]=N.computeOutAndReduceShapes(c.shape,d),f=N.upcastType(c.dtype,"int32"),g=Ph(n,h,f),y=v.sizeFromShape(m),b=n.data.get(g.dataId).values,x=n.data.get(c.dataId).values;for(let w=0;w=0&&(c=Qc({inputs:{x:c},backend:n,attrs:{axis:u[f]-(i.length-h),keepDims:!1}}),m.push(c)),h--)}for(let f of m)f!==c&&n.disposeIntermediateTensorInfo(f);return c}var i8={kernelName:om,backendName:"cpu",kernelFunc:s8};function o8(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t;ge([a,r],"eluGrad");let s=new Float32Array(v.sizeFromShape(r.shape)),i=n.data.get(r.dataId).values,o=n.data.get(a.dataId).values;for(let l=0;l=1?s[l]=o[l]:s[l]=o[l]*(u+1)}return n.makeTensorInfo(r.shape,"float32",s)}var l8={kernelName:lm,backendName:"cpu",kernelFunc:o8},u8=N.ERF_P,p8=N.ERF_A1,c8=N.ERF_A2,d8=N.ERF_A3,h8=N.ERF_A4,m8=N.ERF_A5,f8=rt(Pl,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+u8*n);return t*(1-((((m8*a+h8)*a+d8)*a+c8)*a+p8)*a*Math.exp(-n*n))}),g8={kernelName:Pl,backendName:"cpu",kernelFunc:f8};function zh(e){let{inputs:t,backend:n,attrs:a}=e,{input:r}=t,{dim:s}=a,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(v.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),ft({inputs:{x:r},backend:n,attrs:{shape:o}})}var y8={kernelName:Ll,backendName:"cpu",kernelFunc:zh},b8=Vt((e,t)=>e/t),z0=nn(Ni,b8),rx={kernelName:Ni,backendName:"cpu",kernelFunc:z0};function OC(e,t,n){let a=e.shape,r=a[0],s=a[1],i=n.data.get(e.dataId),o=i.complexTensorInfos.real,l=i.complexTensorInfos.imag,u=[r,s],p=v.sizeFromShape(u),d=v.getTypedArrayFromDType("float32",p),c=v.getTypedArrayFromDType("float32",p);for(let g=0;g{let{image:a}=e,r=n,s=v.getTypedArrayFromDType(a.dtype,v.sizeFromShape(a.shape)),[i,o,l,u]=a.shape,p=r.data.get(a.dataId).values;for(let d=0;d=0&&bMath.floor(e/t)),_8=nn($i,C8,null,"int32"),E8={kernelName:$i,backendName:"cpu",kernelFunc:_8};function $8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=MC({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c}});if(i){let g=f;if(p==="NCHW"&&i.shape.length===1&&i.shape[0]!==1){let y=ft({inputs:{x:i},backend:n,attrs:{shape:[i.shape[0],1,1]}});f=gl({inputs:{a:f,b:y},backend:n}),n.disposeIntermediateTensorInfo(y)}else f=gl({inputs:{a:f,b:i},backend:n});n.disposeIntermediateTensorInfo(g)}if(h){let g=f;if(p==="NCHW"&&h==="prelu"&&o.shape.length===1&&o.shape[0]!==1){let y=ft({inputs:{x:o},backend:n,attrs:{shape:[o.shape[0],1,1]}});f=Lh(n,f,h,y,m),n.disposeIntermediateTensorInfo(y)}else f=Lh(n,f,h,o,m);n.disposeIntermediateTensorInfo(g)}return f}var A8={kernelName:Qs,backendName:"cpu",kernelFunc:$8};function F8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=PC({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c}});if(i){let g=f;f=gl({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=Lh(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var D8={kernelName:ei,backendName:"cpu",kernelFunc:F8};function R8(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=v.sizeFromShape(a.shape),i=r.shape,o=i[i.length-1],[l,u,p,d]=N.prepareAndValidate(a,r);if(u===0)return n.makeTensorInfo(l,a.dtype,[]);let c=n.data.get(r.dataId).values,h=n.bufferSync(a),m=Q2(c,h,a.dtype,u,o,p,d,a.shape,s);return n.makeTensorInfo(l,a.dtype,m.values)}var M8={kernelName:Vl,backendName:"cpu",kernelFunc:R8};function P8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,indices:s}=t,{axis:i,batchDims:o}=a;ge([r,s],"gatherV2");let l=v.parseAxisParam(i,r.shape)[0],u=n.data.get(s.dataId).values,p=r.shape[l];for(let w=0;w=0,()=>`GatherV2: the index value ${I} is not in [0, ${p-1}]`)}let d=o;o==null&&(d=0);let c=v.sizeFromShape(s.shape),h=N.segment_util.collectGatherOpShapeInfo(r,s,l,d),m=ft({inputs:{x:r},backend:n,attrs:{shape:[h.batchSize,h.outerSize,h.dimSize,h.sliceSize]}}),f=ft({inputs:{x:s},backend:n,attrs:{shape:[h.batchSize,c/h.batchSize]}}),g=[h.batchSize,h.outerSize,c/h.batchSize,h.sliceSize],y=n.bufferSync(f),b=n.bufferSync(m),x=eC(b,y,g);return n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),n.makeTensorInfo(h.outputShape,x.dtype,x.values)}var O8={kernelName:Bl,backendName:"cpu",kernelFunc:P8};function L8(e){let{inputs:t,backend:n}=e,{input:a}=t,r=v.sizeFromShape(a.shape),s=a.shape[a.shape.length-1],i=r/s,o=ft({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=OC(o,!0,n),u=ft({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),u}var z8={kernelName:pm,backendName:"cpu",kernelFunc:L8},W8=rt(Gl,e=>Number.isFinite(e)?1:0,"bool"),B8={kernelName:Gl,backendName:"cpu",kernelFunc:W8},V8=rt(Hl,e=>Math.abs(e)===1/0?1:0,"bool"),U8={kernelName:Hl,backendName:"cpu",kernelFunc:V8},G8=rt(jl,e=>Number.isNaN(e)?1:0,"bool"),H8={kernelName:jl,backendName:"cpu",kernelFunc:G8};function j8(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=sC(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var q8={kernelName:dm,backendName:"cpu",kernelFunc:j8},K8=rt(Xl,e=>Math.log1p(e)),X8={kernelName:Xl,backendName:"cpu",kernelFunc:K8},Y8=Vt((e,t)=>e&&t),Z8=nn(Yl,Y8,null,"bool"),J8={kernelName:Yl,backendName:"cpu",kernelFunc:Z8},Q8=rt(Zl,e=>e?0:1,"bool"),eK={kernelName:Zl,backendName:"cpu",kernelFunc:Q8},tK=Vt((e,t)=>e||t),nK=nn(Jl,tK,null,"bool"),aK={kernelName:Jl,backendName:"cpu",kernelFunc:nK};function rK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;ge(r,"LRN");let u=r.shape[3],p=u-1,d=n.data.get(r.dataId).values,c=v.sizeFromShape(r.shape),h=new Float32Array(c);function m(f){let g=f%u,y=f-g+Math.max(0,g-s),b=f-g+Math.min(g+s,p),x=0;for(;y<=b;y++){let w=d[y];x+=w*w}return x}for(let f=0;f`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=N.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))d=lr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=v.computeStrides(r.shape),m=L0(c,r.shape,r.dtype,h,p,"max");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var pK={kernelName:Li,backendName:"cpu",kernelFunc:uK};function cK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ge(r,"maxPool3d");let p=N.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=RC(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"max");return n.makeTensorInfo(c.shape,"float32",c.values)}var dK={kernelName:dc,backendName:"cpu",kernelFunc:cK};function hK(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ge([r,s],"maxPool3DGrad");let p=N.computePool3DInfo(s.shape,i,o,1,l,u),d=n.bufferSync(s),c=e5(d,p),h=p.strideDepth,m=p.strideHeight,f=p.strideWidth,g=p.dilationDepth,y=p.dilationHeight,b=p.dilationWidth,x=p.effectiveFilterDepth,w=p.effectiveFilterHeight,I=p.effectiveFilterWidth,T=x-1-p.padInfo.front,C=I-1-p.padInfo.left,E=w-1-p.padInfo.top,$=Pe(s.shape,"float32"),R=n.bufferSync(r);for(let F=0;F=p.outDepth||Math.floor(ee)!==ee))for(let ae=0;ae=p.outHeight||Math.floor(te)!==te))for(let ie=0;ie=p.outWidth||Math.floor(oe)!==oe)continue;let ye=x*w*I-1-c.get(F,ee,te,oe,S),ue=J*w*I+ae*I+ie,be=ye===ue?1:0;if(be===0)continue;let ke=R.get(F,ee,te,oe,S);Z+=ke*be}}}$.set(Z,F,M,B,U,S)}return n.makeTensorInfo($.shape,$.dtype,$.values)}var mK={kernelName:fm,backendName:"cpu",kernelFunc:hK};function fK(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;ge([s,i],"maxPoolGrad");let{filterSize:l,strides:u,pad:p,dimRoundingMode:d}=a,c=N.computePool2DInfo(o.shape,l,u,1,p,d),h=n.data.get(o.dataId).values,m=Pe(c.outShape,o.dtype,DC(h,o.shape,o.dtype,c).values),f=c.strideHeight,g=c.strideWidth,y=c.dilationHeight,b=c.dilationWidth,x=c.effectiveFilterHeight,w=c.effectiveFilterWidth,I=w-1-c.padInfo.left,T=x-1-c.padInfo.top,C=Pe(o.shape,"float32"),E=n.data.get(r.dataId).values,$=Pe(r.shape,"float32",E);for(let R=0;R=c.outHeight||Math.floor(K)!==K))for(let Z=0;Z=c.outWidth||Math.floor(J)!==J)continue;let ee=x*w-1-m.get(R,K,J,F),ae=q*w+Z,te=ee===ae?1:0;if(te===0)continue;let ie=$.get(R,K,J,F);G+=ie*te}}C.set(G,R,S,M,F)}return n.makeTensorInfo(C.shape,C.dtype,C.values)}var gK={kernelName:mm,backendName:"cpu",kernelFunc:fK};function yK(e,t,n,a,r){let s=v.computeStrides(t),i=L0(e,t,n,s,r,"max"),o=DC(e,t,n,r,!0,a);return[i.values,o.values]}var bK={kernelName:gm,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;ge(a,"MaxPoolWithArgmax");let u=l.data.get(a.dataId).values,p=N.computePool2DInfo(a.shape,r,s,[1,1],i),[d,c]=yK(u,a.shape,a.dtype,o,p),h=l.write(d,p.outShape,a.dtype),m=l.write(c,p.outShape,a.dtype);return[{dataId:h,shape:p.outShape,dtype:a.dtype},{dataId:m,shape:p.outShape,dtype:"int32"}]}};function xK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=v.parseAxisParam(s,r.shape),l=N.computeOutAndReduceShapes(r.shape,o)[1],u=v.sizeFromShape(l),p=[],d=n.makeTensorInfo([],"float32",new Float32Array([u]));p.push(d);let c=os({inputs:{x:r},backend:n,attrs:{dtype:"float32"}});p.push(c);let h=z0({inputs:{a:c,b:d},backend:n});p.push(h);let m=Qc({inputs:{x:h},backend:n,attrs:{axis:s,keepDims:i}});return p.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var vK={kernelName:zi,backendName:"cpu",kernelFunc:xK};function wK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"min");let o=v.parseAxisParam(s,r.shape),l=o,u=N.getAxesPermutation(l,r.shape.length),p=r;u!=null&&(p=Vn({inputs:{x:r},backend:n,attrs:{perm:u}}),l=N.getInnerMostAxes(l.length,r.shape.length)),N.assertAxesAreInnerMostDims("min",l,p.shape.length);let[d,c]=N.computeOutAndReduceShapes(p.shape,l),h=v.sizeFromShape(c),m=v.makeZerosTypedArray(v.sizeFromShape(d),p.dtype),f=n.data.get(p.dataId).values;for(let y=0;yb[0]+r.shape[x]+b[1]),l=s.map(b=>b[0]),u=s.map((b,x)=>b[0]+r.shape[x]),p=i==="reflect"?0:1,d=n.data.get(r.dataId).values,c=r.shape.length,h=v.computeStrides(r.shape),m=v.sizeFromShape(o),f=o.length,g=v.computeStrides(o),y=v.getTypedArrayFromDType(r.dtype,m);for(let b=0;b=u[I]&&(x[I]=(u[I]-1)*2-x[I]+p);x=x.map((I,T)=>I-l[T]);let w=v.locToIndex(x,c,h);y[b]=d[w]}return{dataId:n.write(y,o,r.dtype),shape:o,dtype:r.dtype}}var SK={kernelName:Vi,backendName:"cpu",kernelFunc:IK},TK=Vt((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),NK=nn(Ql,TK),CK={kernelName:Ql,backendName:"cpu",kernelFunc:NK},_K=us(Hh());function zC(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=r.shape.length,o=s;if(o===-1&&(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}`);let l=v.parseAxisParam([o],r.shape),u=LC({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),p=N.expandShapeToKeepDim(u.shape,l),d=ft({inputs:{x:u},backend:n,attrs:{shape:p}}),c=O0({inputs:{a:r,b:d},backend:n}),h=Y2({inputs:{x:c},backend:n}),m=Qc({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=ft({inputs:{x:m},backend:n,attrs:{shape:p}}),g=z0({inputs:{a:h,b:f},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var EK={kernelName:io,backendName:"cpu",kernelFunc:zC};function $K(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;ge(r,"multinomial");let l=o?r:zC({inputs:{logits:r},backend:n,attrs:{dim:-1}}),u=l.shape[0],p=l.shape[1],d=n.data.get(l.dataId).values,c=[u,s],h=v.makeZerosTypedArray(v.sizeFromShape(c),"int32");for(let m=0;m=0&&d[c]{v.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),v.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=zh({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=bl({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var HK={kernelName:iu,backendName:"cpu",kernelFunc:BC};function jK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;ge(r,"pad");let o=s.map((y,b)=>y[0]+r.shape[b]+y[1]),l=s.map(y=>y[0]),u=n.data.get(r.dataId).values,p=v.sizeFromShape(r.shape),d=r.shape.length,c=v.computeStrides(r.shape),h=v.sizeFromShape(o),m=o.length,f=v.computeStrides(o),g=v.getTypedArrayFromDType(r.dtype,h);i!==0&&g.fill(i);for(let y=0;yw+l[I]),x=v.locToIndex(b,m,f);g[x]=u[y]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var VC={kernelName:Hi,backendName:"cpu",kernelFunc:jK},qK=Vt((e,t)=>Math.pow(e,t)),KK=nn(ji,qK),XK={kernelName:ji,backendName:"cpu",kernelFunc:KK};function YK(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(y=>n.data.get(y.dataId).values),u=r.map(y=>y.shape),p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,[c,h,m]=hC(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(y=>n.makeTensorInfo([y.length],"int32",y)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var ZK={kernelName:bm,backendName:"cpu",kernelFunc:YK};function JK(e){let{inputs:t,backend:n}=e,{starts:a,limits:r,deltas:s}=t,i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=mC(i,a.shape,a.dtype,o,r.shape,l,s.shape),d=n.makeTensorInfo([u.length],"int32",u),c=n.makeTensorInfo([p.length],a.dtype,p);return[d,c]}var QK={kernelName:xm,backendName:"cpu",kernelFunc:JK};function eX(e){let{inputs:t,backend:n,attrs:a}=e,{shape:r,values:s,defaultValue:i,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=a,u=n.data.get(r.dataId).values,p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,c=o.map(g=>n.data.get(g.dataId).values),h=o.map(g=>g.shape),[m,f]=fC(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var tX={kernelName:vm,backendName:"cpu",kernelFunc:eX};function nX(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=F0(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var aX={kernelName:hc,backendName:"cpu",kernelFunc:nX},rX=rt(ou,e=>1/e),sX={kernelName:ou,backendName:"cpu",kernelFunc:rX};function iX(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a;ge(r,"resizeBilinear");let l=v.computeStrides(r.shape),[u,p]=o,[d,c,h,m]=r.shape,f=n.data.get(r.dataId).values,g=new Float32Array(v.sizeFromShape([d,u,p,m])),y=[s&&u>1?c-1:c,s&&p>1?h-1:h],b=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=0,w=y[0]/b[0],I=y[1]/b[1];for(let T=0;T1?u-1:u,i&&h>1?p-1:p],g=[i&&c>1?c-1:c,i&&h>1?h-1:h],y=f[0]/g[0],b=f[1]/g[1],x=n.data.get(s.dataId).values,w=0;for(let I=0;I1?c-1:c,s&&p>1?h-1:h],b=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=y[0]/b[0],w=y[1]/b[1],I=0;for(let T=0;T1?p-1:p,i&&m>1?d-1:d],b=[i&&h>1?h-1:h,i&&m>1?m-1:m],x=y[0]/b[0],w=y[1]/b[1],I=1/x,T=1/w,C=Math.ceil(I)*2+2,E=Math.ceil(T)*2+2;for(let $=0;$=h)continue;let te=R+ae*l[1],ie=ae*x,oe=Math.min(p-1,i?Math.round(ie):Math.floor(ie));if(F===oe)for(let ye=0;ye=m)continue;let be=te+ue*l[2],ke=ue*w,Se=Math.min(d-1,i?Math.round(ke):Math.floor(ke));U===Se&&(J+=g[be+Z])}}f[G+Z]=J}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var hX={kernelName:km,backendName:"cpu",kernelFunc:dX};function mX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a;ge(r,"reverse");let i=r.shape.length,o=v.parseAxisParam(s,r.shape);if(i===0)return lr({inputs:{x:r},backend:n});let l=new Ht(r.shape,r.dtype),u=n.bufferSync(r);for(let p=0;pc[h]=r.shape[h]-1-c[h]),l.set(u.get(...c),...d)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}var fX={kernelName:Qi,backendName:"cpu",kernelFunc:mX},gX={kernelName:Su,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=v.getTypedArrayFromDType(a.dtype,v.sizeFromShape(a.shape)),[u,p,d,c]=a.shape,[h,m]=N.getImageCenter(i,p,d),f=255,g=Math.sin(r),y=Math.cos(r),b=o.data.get(a.dataId).values;for(let x=0;x=0&&M=0&&B{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2===0?t:t+1}),bX={kernelName:eo,backendName:"cpu",kernelFunc:yX};function xX(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r,updates:s}=t,{shape:i}=a,{sliceRank:o,numUpdates:l,sliceSize:u,strides:p,outputSize:d}=N.calculateShapes(s,r,i),c=!0,h=n.bufferSync(r),m=n.bufferSync(s),f=Yo(h,m,i,d,u,l,o,p,0,c);return n.makeTensorInfo(i,f.dtype,f.values)}var vX={kernelName:uu,backendName:"cpu",kernelFunc:xX};function wX(e,t){let n=0,a=e.length,r=0;for(;n1||r.shape.length===1?1:v.sizeFromShape(r.shape.slice(1));for(let m=0;me>=0?EX*e:_X*(Math.exp(e)-1)),AX={kernelName:cu,backendName:"cpu",kernelFunc:$X},FX=rt(mu,e=>e<0?-1:e>0?1:0),DX={kernelName:mu,backendName:"cpu",kernelFunc:FX},RX=rt(no,e=>Math.sin(e)),MX={kernelName:no,backendName:"cpu",kernelFunc:RX},PX=rt(hu,e=>Math.sinh(e)),OX={kernelName:hu,backendName:"cpu",kernelFunc:PX},LX=11920928955078125e-23,Uk=Math.log(LX)+2,zX=rt(fu,e=>{let t=e>-Uk,n=e{let c=[...p];c[o]=d;let h=ui({inputs:{x:r},backend:n,attrs:{begin:u,size:c}});return u[o]+=d,h})}var eY={kernelName:yu,backendName:"cpu",kernelFunc:QX},tY={kernelName:yc,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:n}=e,a=t;ge(n,"square");let r=a.data.get(n.dataId).values,s=new Float32Array(r.length);for(let i=0;i{let n=t;return isNaN(e)?NaN:e>0?1:n.alpha}),aY={kernelName:ms,backendName:"cpu",kernelFunc:nY};function rY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a;ge(r,"stridedSlice");let{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:y,begin:b,end:x,strides:w}=jt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=ft({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||y){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=jt.computeOutShape(b,x,w),C=ui({inputs:{x:r},backend:n,attrs:{begin:b,size:T}});I=ft({inputs:{x:C},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(C)}else{let T=n.bufferSync(r),C=wC(h,T,w,b);I=n.makeTensorInfo(m,C.dtype,C.values)}return I}var sY={kernelName:xu,backendName:"cpu",kernelFunc:rY};function iY(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.data.get(p.dataId).values,h=n.data.get(d.dataId).values,[m,f]=R0(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var oY={kernelName:bc,backendName:"cpu",kernelFunc:iY};function lY(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values[0],[u,p,d]=M0(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var uY={kernelName:xc,backendName:"cpu",kernelFunc:lY};function pY(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.data.get(s.dataId).values,o=P0(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var cY={kernelName:vc,backendName:"cpu",kernelFunc:pY},dY=rt(uo,e=>Math.tan(e)),hY={kernelName:uo,backendName:"cpu",kernelFunc:dY},mY=rt(po,e=>Math.tanh(e)),fY={kernelName:po,backendName:"cpu",kernelFunc:mY};function gY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;ge(r,"tile");let i=IC(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var yY={kernelName:hs,backendName:"cpu",kernelFunc:gY};function bY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a;ge(r,"topk");let o=n.data.get(r.dataId).values,[l,u]=TC(o,r.shape,r.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(u.shape,u.dtype,u.values)]}var xY={kernelName:vu,backendName:"cpu",kernelFunc:bY};function vY(e){let{inputs:t,attrs:n,backend:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=n,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],y=v.computeStrides(r.shape),b=y[0],x=y[1],w=y[2],I=v.computeStrides(g),T=I[0],C=I[1],E=I[2],A=v.getTypedArrayFromDType(r.dtype,v.sizeFromShape(g));A.fill(l);let R=a.data.get(r.dataId).values,F=a.data.get(s.dataId).values;for(let S=0;St-1)if(t<=1)n=0;else{let a=2*t;n-=a*Math.trunc(n/a),n>=t&&(n=a-n-1)}return v.clamp(0,n,t-1)}function IY(e,t){let n=e;if(n<0)if(t<=1)n=0;else{let a=t-1;n+=t*(Math.trunc(-n/a)+1)}else if(n>t-1)if(t<=1)n=0;else{let a=t-1;n-=t*Math.trunc(n/a)}return v.clamp(0,n,t-1)}function SY(e,t){return e}function TY(e,t){return v.clamp(0,e,t-1)}function Fp(e,t,n,a,r,s,i,o,l,u,p){let d=i*a+o*r+l*s+u;return 0<=o&&on.disposeIntermediateTensorInfo(m)),h}var DY={kernelName:wc,backendName:"cpu",kernelFunc:FY},RY=[_q,fj,Aq,Fq,wj,Rq,Pq,Lq,Wq,Vq,Gq,jq,Kq,Zq,Qq,n5,r5,i5,l5,Nq,p5,d5,m5,g5,xj,Ij,b5,gj,v5,k5,I5,T5,C5,E5,$5,D5,M5,O5,z5,B5,U5,H5,q5,K5,Y5,J5,e8,t8,n8,a8,i8,xq,l8,Sj,g8,Tj,y8,Cj,I8,S8,N8,Ej,E8,$8,D8,M8,O8,$j,Dj,yj,z8,w5,B8,U8,H8,vq,Mj,Oj,q8,zj,X8,J8,eK,aK,sK,oK,lK,Bj,pK,dK,mK,gK,bK,vK,kK,Uj,SK,CK,$K,Hj,qj,RK,OK,WK,Xj,VK,GK,HK,VC,XK,kq,Jj,ZK,QK,tX,aX,bj,rx,sX,Iq,Sq,Tq,oX,uX,cX,hX,fX,gX,bX,iq,vX,TX,CX,$X,lq,DX,MX,OX,uq,EK,WX,VX,GX,jX,KX,YX,JX,eY,dq,tY,mq,aY,sY,oY,uY,cY,bq,r8,hY,fY,yY,xY,wY,Yj,EY,$Y,DY,UK];for(let e of RY)kc(e);var UC={};Ae(UC,{assertNotComplex:()=>Lu,bindCanvasToFramebuffer:()=>HY,bindColorTextureToFramebuffer:()=>oh,bindTextureToProgramUniformSampler:()=>s_,bindTextureUnit:()=>n_,bindVertexBufferToProgramAttribute:()=>ix,callAndCheck:()=>me,canBeRepresented:()=>HC,createFragmentShader:()=>KC,createFramebuffer:()=>t_,createProgram:()=>XC,createStaticIndexBuffer:()=>JC,createStaticVertexBuffer:()=>ZC,createTexture:()=>QC,createVertexShader:()=>qC,getBatchDim:()=>pi,getExtensionOrThrow:()=>Dp,getFramebufferErrorMessage:()=>i_,getMaxTexturesInShader:()=>p_,getNumChannels:()=>UY,getProgramUniformLocation:()=>r_,getProgramUniformLocationOrThrow:()=>a_,getRowsCols:()=>ci,getShapeAs3D:()=>Mp,getTextureShapeFromLogicalShape:()=>l_,getWebGLDisjointQueryTimerVersion:()=>c_,getWebGLErrorMessage:()=>jC,getWebGLMaxTextureSize:()=>u_,hasExtension:()=>ca,isCapableOfRenderingToFloatTexture:()=>d_,isDownloadFloatTextureEnabled:()=>h_,isReshapeFree:()=>Qp,isWebGLFenceEnabled:()=>m_,isWebGLVersionEnabled:()=>lx,linkProgram:()=>YC,logShaderSourceAndInfoLog:()=>V0,resetMaxTextureSize:()=>jY,resetMaxTexturesInShader:()=>qY,unbindColorTextureFromFramebuffer:()=>ox,unbindTextureUnit:()=>GY,validateFramebuffer:()=>Rp,validateProgram:()=>ih,validateTextureSize:()=>e_});var Us={},Qd={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function GC(e,t){Us[e]=t}function qa(e,t){if(!(e in Us)||t!=null){let a=PY(e,t);if(a!==null)Us[e]=a;else return console.log("Could not get context for WebGL version",e),null}let n=Us[e];return n==null||n.isContextLost()?(delete Us[e],qa(e)):(n.disable(n.DEPTH_TEST),n.disable(n.STENCIL_TEST),n.disable(n.BLEND),n.disable(n.DITHER),n.disable(n.POLYGON_OFFSET_FILL),n.disable(n.SAMPLE_COVERAGE),n.enable(n.SCISSOR_TEST),n.enable(n.CULL_FACE),n.cullFace(n.BACK),Us[e])}function MY(e){if(typeof OffscreenCanvas!="undefined"&&e===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function PY(e,t){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let n=t==null?MY(e):t;return n.addEventListener("webglcontextlost",a=>{a.preventDefault(),delete Us[e]},!1),H().getBool("SOFTWARE_WEBGL_ENABLED")&&(Qd.failIfMajorPerformanceCaveat=!1),e===1?n.getContext("webgl",Qd)||n.getContext("experimental-webgl",Qd):n.getContext("webgl2",Qd)}var Jp;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(Jp||(Jp={}));var pa;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(pa||(pa={}));var on;(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"})(on||(on={}));function ed(e,t){return[t,e]}function OY(e,t){return e*t}function eh(e){let t=v.sizeFromShape(e),n=Math.ceil(t/4);return v.sizeToSquarishShape(n)}function Ou(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function LY(e,t){let[n,a]=Ou(e,t);return n*a*4}function B0(e,t){let n=e,a,r,s,i,o,l,u,p,d,c;return H().getNumber("WEBGL_VERSION")===2?(a=n.R32F,r=n.R16F,s=n.RGBA16F,i=n.RGBA32F,o=n.RED,u=4,p=1,d=n.HALF_FLOAT,c=n.FLOAT,l=n.RGBA8):(a=e.RGBA,r=e.RGBA,s=e.RGBA,i=n.RGBA,o=e.RGBA,u=4,p=4,d=t!=null?t.HALF_FLOAT_OES:null,c=e.FLOAT,l=e.RGBA),{internalFormatFloat:a,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:u,defaultNumChannels:p,textureTypeHalfFloat:d,textureTypeFloat:c}}function me(e,t){let n=t();return H().getBool("DEBUG")&&zY(e),n}function zY(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+jC(e,t))}var WY=596e-10,BY=65504;function HC(e){return!!(H().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||WYe.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function qC(e,t){let n=Fr(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(me(e,()=>e.shaderSource(n,t)),me(e,()=>e.compileShader(n)),e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw console.log(e.getShaderInfoLog(n)),new Error("Failed to compile vertex shader.");return n}function KC(e,t){let n=Fr(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(me(e,()=>e.shaderSource(n,t)),me(e,()=>e.compileShader(n)),H().get("ENGINE_COMPILE_ONLY"))return n;if(e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw V0(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var VY=/ERROR: [0-9]+:([0-9]+):/g;function V0(e,t){let n=VY.exec(t);if(n==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(e);return}let a=+n[1],r=e.split(` + ${s.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=D0(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var YX={kernelName:gc,backendName:"cpu",kernelFunc:XX};function ZX(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=N.calculateShapes(s,r,o),h=!1,m=n.bufferSync(r),f;switch(s.dtype){case"bool":{let g=n.bufferSync(s),y=Boolean(n.data.get(i.dataId).values[0]);f=Yo(m,g,o,c,p,u,l,d,y,h);break}case"float32":{let g=n.bufferSync(s),y=n.data.get(i.dataId).values[0];f=Yo(m,g,o,c,p,u,l,d,y,h);break}case"int32":{let g=n.bufferSync(s),y=n.data.get(i.dataId).values[0];f=Yo(m,g,o,c,p,u,l,d,y,h);break}case"string":{let g=n.bufferSync(s),y=v.decodeString(n.data.get(i.dataId).values[0]);f=Yo(m,g,o,c,p,u,l,d,y,h);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return n.makeTensorInfo(o,f.dtype,f.values)}var JX={kernelName:Tm,backendName:"cpu",kernelFunc:ZX};function QX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=v.parseAxisParam(i,r.shape)[0],l=N.prepareSplitSize(r,s,o),u=new Array(r.shape.length).fill(0),p=r.shape.slice();return l.map(d=>{let c=[...p];c[o]=d;let h=ui({inputs:{x:r},backend:n,attrs:{begin:u,size:c}});return u[o]+=d,h})}var eY={kernelName:yu,backendName:"cpu",kernelFunc:QX},tY={kernelName:yc,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:n}=e,a=t;ge(n,"square");let r=a.data.get(n.dataId).values,s=new Float32Array(r.length);for(let i=0;i{let n=t;return isNaN(e)?NaN:e>0?1:n.alpha}),aY={kernelName:ms,backendName:"cpu",kernelFunc:nY};function rY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a;ge(r,"stridedSlice");let{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:y,begin:b,end:x,strides:w}=jt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=ft({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||y){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=jt.computeOutShape(b,x,w),C=ui({inputs:{x:r},backend:n,attrs:{begin:b,size:T}});I=ft({inputs:{x:C},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(C)}else{let T=n.bufferSync(r),C=wC(h,T,w,b);I=n.makeTensorInfo(m,C.dtype,C.values)}return I}var sY={kernelName:xu,backendName:"cpu",kernelFunc:rY};function iY(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.data.get(p.dataId).values,h=n.data.get(d.dataId).values,[m,f]=R0(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var oY={kernelName:bc,backendName:"cpu",kernelFunc:iY};function lY(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values[0],[u,p,d]=M0(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var uY={kernelName:xc,backendName:"cpu",kernelFunc:lY};function pY(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.data.get(s.dataId).values,o=P0(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var cY={kernelName:vc,backendName:"cpu",kernelFunc:pY},dY=rt(uo,e=>Math.tan(e)),hY={kernelName:uo,backendName:"cpu",kernelFunc:dY},mY=rt(po,e=>Math.tanh(e)),fY={kernelName:po,backendName:"cpu",kernelFunc:mY};function gY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;ge(r,"tile");let i=IC(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var yY={kernelName:hs,backendName:"cpu",kernelFunc:gY};function bY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a;ge(r,"topk");let o=n.data.get(r.dataId).values,[l,u]=TC(o,r.shape,r.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(u.shape,u.dtype,u.values)]}var xY={kernelName:vu,backendName:"cpu",kernelFunc:bY};function vY(e){let{inputs:t,attrs:n,backend:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=n,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],y=v.computeStrides(r.shape),b=y[0],x=y[1],w=y[2],I=v.computeStrides(g),T=I[0],C=I[1],E=I[2],$=v.getTypedArrayFromDType(r.dtype,v.sizeFromShape(g));$.fill(l);let R=a.data.get(r.dataId).values,F=a.data.get(s.dataId).values;for(let S=0;St-1)if(t<=1)n=0;else{let a=2*t;n-=a*Math.trunc(n/a),n>=t&&(n=a-n-1)}return v.clamp(0,n,t-1)}function IY(e,t){let n=e;if(n<0)if(t<=1)n=0;else{let a=t-1;n+=t*(Math.trunc(-n/a)+1)}else if(n>t-1)if(t<=1)n=0;else{let a=t-1;n-=t*Math.trunc(n/a)}return v.clamp(0,n,t-1)}function SY(e,t){return e}function TY(e,t){return v.clamp(0,e,t-1)}function Fp(e,t,n,a,r,s,i,o,l,u,p){let d=i*a+o*r+l*s+u;return 0<=o&&on.disposeIntermediateTensorInfo(m)),h}var DY={kernelName:wc,backendName:"cpu",kernelFunc:FY},RY=[_q,fj,$q,Fq,wj,Rq,Pq,Lq,Wq,Vq,Gq,jq,Kq,Zq,Qq,n5,r5,i5,l5,Nq,p5,d5,m5,g5,xj,Ij,b5,gj,v5,k5,I5,T5,C5,E5,A5,D5,M5,O5,z5,B5,U5,H5,q5,K5,Y5,J5,e8,t8,n8,a8,i8,xq,l8,Sj,g8,Tj,y8,Cj,I8,S8,N8,Ej,E8,A8,D8,M8,O8,Aj,Dj,yj,z8,w5,B8,U8,H8,vq,Mj,Oj,q8,zj,X8,J8,eK,aK,sK,oK,lK,Bj,pK,dK,mK,gK,bK,vK,kK,Uj,SK,CK,AK,Hj,qj,RK,OK,WK,Xj,VK,GK,HK,VC,XK,kq,Jj,ZK,QK,tX,aX,bj,rx,sX,Iq,Sq,Tq,oX,uX,cX,hX,fX,gX,bX,iq,vX,TX,CX,AX,lq,DX,MX,OX,uq,EK,WX,VX,GX,jX,KX,YX,JX,eY,dq,tY,mq,aY,sY,oY,uY,cY,bq,r8,hY,fY,yY,xY,wY,Yj,EY,AY,DY,UK];for(let e of RY)kc(e);var UC={};$e(UC,{assertNotComplex:()=>Lu,bindCanvasToFramebuffer:()=>HY,bindColorTextureToFramebuffer:()=>oh,bindTextureToProgramUniformSampler:()=>s_,bindTextureUnit:()=>n_,bindVertexBufferToProgramAttribute:()=>ix,callAndCheck:()=>me,canBeRepresented:()=>HC,createFragmentShader:()=>KC,createFramebuffer:()=>t_,createProgram:()=>XC,createStaticIndexBuffer:()=>JC,createStaticVertexBuffer:()=>ZC,createTexture:()=>QC,createVertexShader:()=>qC,getBatchDim:()=>pi,getExtensionOrThrow:()=>Dp,getFramebufferErrorMessage:()=>i_,getMaxTexturesInShader:()=>p_,getNumChannels:()=>UY,getProgramUniformLocation:()=>r_,getProgramUniformLocationOrThrow:()=>a_,getRowsCols:()=>ci,getShapeAs3D:()=>Mp,getTextureShapeFromLogicalShape:()=>l_,getWebGLDisjointQueryTimerVersion:()=>c_,getWebGLErrorMessage:()=>jC,getWebGLMaxTextureSize:()=>u_,hasExtension:()=>ca,isCapableOfRenderingToFloatTexture:()=>d_,isDownloadFloatTextureEnabled:()=>h_,isReshapeFree:()=>Qp,isWebGLFenceEnabled:()=>m_,isWebGLVersionEnabled:()=>lx,linkProgram:()=>YC,logShaderSourceAndInfoLog:()=>V0,resetMaxTextureSize:()=>jY,resetMaxTexturesInShader:()=>qY,unbindColorTextureFromFramebuffer:()=>ox,unbindTextureUnit:()=>GY,validateFramebuffer:()=>Rp,validateProgram:()=>ih,validateTextureSize:()=>e_});var Us={},Qd={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function GC(e,t){Us[e]=t}function qa(e,t){if(!(e in Us)||t!=null){let a=PY(e,t);if(a!==null)Us[e]=a;else return console.log("Could not get context for WebGL version",e),null}let n=Us[e];return n==null||n.isContextLost()?(delete Us[e],qa(e)):(n.disable(n.DEPTH_TEST),n.disable(n.STENCIL_TEST),n.disable(n.BLEND),n.disable(n.DITHER),n.disable(n.POLYGON_OFFSET_FILL),n.disable(n.SAMPLE_COVERAGE),n.enable(n.SCISSOR_TEST),n.enable(n.CULL_FACE),n.cullFace(n.BACK),Us[e])}function MY(e){if(typeof OffscreenCanvas!="undefined"&&e===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function PY(e,t){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let n=t==null?MY(e):t;return n.addEventListener("webglcontextlost",a=>{a.preventDefault(),delete Us[e]},!1),H().getBool("SOFTWARE_WEBGL_ENABLED")&&(Qd.failIfMajorPerformanceCaveat=!1),e===1?n.getContext("webgl",Qd)||n.getContext("experimental-webgl",Qd):n.getContext("webgl2",Qd)}var Jp;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(Jp||(Jp={}));var pa;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(pa||(pa={}));var on;(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"})(on||(on={}));function ed(e,t){return[t,e]}function OY(e,t){return e*t}function eh(e){let t=v.sizeFromShape(e),n=Math.ceil(t/4);return v.sizeToSquarishShape(n)}function Ou(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function LY(e,t){let[n,a]=Ou(e,t);return n*a*4}function B0(e,t){let n=e,a,r,s,i,o,l,u,p,d,c;return H().getNumber("WEBGL_VERSION")===2?(a=n.R32F,r=n.R16F,s=n.RGBA16F,i=n.RGBA32F,o=n.RED,u=4,p=1,d=n.HALF_FLOAT,c=n.FLOAT,l=n.RGBA8):(a=e.RGBA,r=e.RGBA,s=e.RGBA,i=n.RGBA,o=e.RGBA,u=4,p=4,d=t!=null?t.HALF_FLOAT_OES:null,c=e.FLOAT,l=e.RGBA),{internalFormatFloat:a,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:u,defaultNumChannels:p,textureTypeHalfFloat:d,textureTypeFloat:c}}function me(e,t){let n=t();return H().getBool("DEBUG")&&zY(e),n}function zY(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+jC(e,t))}var WY=596e-10,BY=65504;function HC(e){return!!(H().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||WYe.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function qC(e,t){let n=Fr(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(me(e,()=>e.shaderSource(n,t)),me(e,()=>e.compileShader(n)),e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw console.log(e.getShaderInfoLog(n)),new Error("Failed to compile vertex shader.");return n}function KC(e,t){let n=Fr(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(me(e,()=>e.shaderSource(n,t)),me(e,()=>e.compileShader(n)),H().get("ENGINE_COMPILE_ONLY"))return n;if(e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw V0(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var VY=/ERROR: [0-9]+:([0-9]+):/g;function V0(e,t){let n=VY.exec(t);if(n==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(e);return}let a=+n[1],r=e.split(` `),s=r.length.toString().length+2,i=r.map((d,c)=>v.rightPad((c+1).toString(),s)+d),o=0;for(let d=0;d{let h=v.sizeFromShape(c.shapeInfo.logicalShape);if(c.shapeInfo.isUniform?a.push(`uniform float ${c.name}${h>1?`[${h}]`:""};`):(a.push(`uniform sampler2D ${c.name};`),a.push(`uniform int offset${c.name};`)),n.enableShapeUniforms){let{uniformShape:m}=H0(n.packedInputs,c.shapeInfo.logicalShape,c.shapeInfo.texShape);switch(m.length){case 1:a.push(`uniform int ${c.name}Shape;`);break;case 2:a.push(`uniform ivec2 ${c.name}Shape;`);break;case 3:a.push(`uniform ivec3 ${c.name}Shape;`);break;case 4:a.push(`uniform ivec4 ${c.name}Shape;`);break;default:break}a.push(`uniform ivec2 ${c.name}TexShape;`)}}),n.enableShapeUniforms){switch(t.logicalShape.length){case 1:a.push("uniform int outShape;");break;case 2:a.push("uniform ivec2 outShape;"),a.push("uniform int outShapeStrides;");break;case 3:a.push("uniform ivec3 outShape;"),a.push("uniform ivec2 outShapeStrides;");break;case 4:a.push("uniform ivec4 outShape;"),a.push("uniform ivec3 outShapeStrides;");break;default:break}a.push("uniform ivec2 outTexShape;")}n.customUniforms&&n.customUniforms.forEach(c=>{a.push(`uniform ${c.type} ${c.name}${c.arrayIndex?`[${c.arrayIndex}]`:""};`)});let r=a.join(` `),s=e.map(c=>JY(c,t,n.packedInputs,n.enableShapeUniforms)).join(` `),i=t.texShape,o=Cn(),l=tZ(o),u,p,d=rZ(o);return t.isPacked?(u=QY(t.logicalShape,i,n.enableShapeUniforms),p=aZ(o)):(u=eZ(t.logicalShape,i,n.enableShapeUniforms),p=nZ(o)),n.packedInputs&&(d+=lZ),[d,l,p,r,u,s,n.userCode].join(` -`)}function zu(e,t=!1){let n=e.shapeInfo.logicalShape;switch(n.length){case 0:return vZ(e,t);case 1:return kZ(e,t);case 2:return SZ(e,t);case 3:return NZ(e,t);case 4:return _Z(e,t);case 5:return EZ(e);case 6:return AZ(e);default:throw new Error(`${n.length}-D input sampling is not yet supported`)}}function y_(e,t){switch(e.shapeInfo.logicalShape.length){case 0:return xZ(e);case 1:return wZ(e,t);case 2:return IZ(e,t);case 3:return TZ(e,t);default:return CZ(e,t)}}function JY(e,t,n=!1,a){let r="";n?r+=y_(e,a):r+=zu(e,a);let s=e.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(n?r+=$Z(e,t):r+=FZ(e,t)),r}function QY(e,t,n){switch(e.length){case 0:return b_();case 1:return uZ(e,t,n);case 2:return yZ(e,t,n);case 3:return cZ(e,t,n);default:return hZ(e,t,n)}}function eZ(e,t,n){switch(e.length){case 0:return b_();case 1:return pZ(e,t,n);case 2:return bZ(e,t,n);case 3:return dZ(e,t,n);case 4:return mZ(e,t,n);case 5:return fZ(e,t);case 6:return gZ(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function tZ(e){return` +`)}function zu(e,t=!1){let n=e.shapeInfo.logicalShape;switch(n.length){case 0:return vZ(e,t);case 1:return kZ(e,t);case 2:return SZ(e,t);case 3:return NZ(e,t);case 4:return _Z(e,t);case 5:return EZ(e);case 6:return $Z(e);default:throw new Error(`${n.length}-D input sampling is not yet supported`)}}function y_(e,t){switch(e.shapeInfo.logicalShape.length){case 0:return xZ(e);case 1:return wZ(e,t);case 2:return IZ(e,t);case 3:return TZ(e,t);default:return CZ(e,t)}}function JY(e,t,n=!1,a){let r="";n?r+=y_(e,a):r+=zu(e,a);let s=e.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(n?r+=AZ(e,t):r+=FZ(e,t)),r}function QY(e,t,n){switch(e.length){case 0:return b_();case 1:return uZ(e,t,n);case 2:return yZ(e,t,n);case 3:return cZ(e,t,n);default:return hZ(e,t,n)}}function eZ(e,t,n){switch(e.length){case 0:return b_();case 1:return pZ(e,t,n);case 2:return bZ(e,t,n);case 3:return dZ(e,t,n);case 4:return mZ(e,t,n);case 5:return fZ(e,t);case 6:return gZ(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function tZ(e){return` float sampleTexture(sampler2D textureSampler, vec2 uv) { return ${e.texture2D}(textureSampler, uv).r; } @@ -903,7 +903,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${c}, ${h}, index); return sampleTexture(${n}, uv); } - `}function AZ(e){let t=e.shapeInfo.logicalShape,n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1),{newShape:r,keptDims:s}=v.squeezeShape(t);if(r.length=1?p="coords = 0;":p=o.map(g=>`coords.${d[g+u]} = 0;`).join(` + `}function AZ(e,t){let n=e.name,a=n.charAt(0).toUpperCase()+n.slice(1),r="get"+a+"AtOutCoords",s=e.shapeInfo.logicalShape.length,i=t.logicalShape.length,o=g_(e.shapeInfo.logicalShape,t.logicalShape),l=gt(i),u=i-s,p,d=["x","y","z","w","u","v"];s===0?p="":i<2&&o.length>=1?p="coords = 0;":p=o.map(g=>`coords.${d[g+u]} = 0;`).join(` `);let c="";i<2&&s>0?c="coords":c=e.shapeInfo.logicalShape.map((g,y)=>`coords.${d[y+u]}`).join(", ");let h="return outputValue;",m=v.sizeFromShape(e.shapeInfo.logicalShape)===1,f=v.sizeFromShape(t.logicalShape)===1;if(s===1&&!m&&!f)h=` return vec4(outputValue.xy, outputValue.xy); `;else if(m&&!f)i===1?h=` @@ -1106,7 +1106,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${n.output} = ${r}; } - `}},v_={};Ae(v_,{bindVertexProgramAttributeStreams:()=>E_,createBufferFromOutputTexture:()=>F_,createFloat16MatrixTexture:()=>T_,createFloat16PackedMatrixTexture:()=>__,createFloat32MatrixTexture:()=>S_,createIndexBuffer:()=>I_,createPackedMatrixTexture:()=>C_,createUnsignedBytesMatrixTexture:()=>N_,createVertexBuffer:()=>k_,createVertexShader:()=>w_,downloadByteEncodedFloatMatrixFromOutputTexture:()=>R_,downloadFloat32MatrixFromBuffer:()=>D_,downloadMatrixFromPackedOutputTexture:()=>P_,downloadPackedMatrixFromBuffer:()=>M_,getInternalFormatForFloat16MatrixTexture:()=>q0,getInternalFormatForFloat16PackedMatrixTexture:()=>Y0,getInternalFormatForFloat32MatrixTexture:()=>j0,getInternalFormatForPackedMatrixTexture:()=>X0,getInternalFormatForUnsignedBytesMatrixTexture:()=>K0,uploadDenseMatrixToTexture:()=>A_,uploadPixelDataToTexture:()=>$_});function w_(e){let t=Cn(),n=`${t.version} + `}},v_={};$e(v_,{bindVertexProgramAttributeStreams:()=>E_,createBufferFromOutputTexture:()=>F_,createFloat16MatrixTexture:()=>T_,createFloat16PackedMatrixTexture:()=>__,createFloat32MatrixTexture:()=>S_,createIndexBuffer:()=>I_,createPackedMatrixTexture:()=>C_,createUnsignedBytesMatrixTexture:()=>N_,createVertexBuffer:()=>k_,createVertexShader:()=>w_,downloadByteEncodedFloatMatrixFromOutputTexture:()=>R_,downloadFloat32MatrixFromBuffer:()=>D_,downloadMatrixFromPackedOutputTexture:()=>P_,downloadPackedMatrixFromBuffer:()=>M_,getInternalFormatForFloat16MatrixTexture:()=>q0,getInternalFormatForFloat16PackedMatrixTexture:()=>Y0,getInternalFormatForFloat32MatrixTexture:()=>j0,getInternalFormatForPackedMatrixTexture:()=>X0,getInternalFormatForUnsignedBytesMatrixTexture:()=>K0,uploadDenseMatrixToTexture:()=>$_,uploadPixelDataToTexture:()=>A_});function w_(e){let t=Cn(),n=`${t.version} precision highp float; ${t.attribute} vec3 clipSpacePos; ${t.attribute} vec2 uv; @@ -1115,7 +1115,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, void main() { gl_Position = vec4(clipSpacePos, 1); resultUV = uv; - }`;return qC(e,n)}function k_(e){let t=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return ZC(e,t)}function I_(e){let t=new Uint16Array([0,1,2,2,1,3]);return JC(e,t)}function td(e,t,n,a,r,s){e_(t,n);let i=QC(e),o=e.TEXTURE_2D;return me(e,()=>e.bindTexture(o,i)),me(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),me(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),me(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),me(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),H().getNumber("WEBGL_VERSION")===1?me(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)):me(e,()=>e.texStorage2D(o,1,a,t,n)),me(e,()=>e.bindTexture(e.TEXTURE_2D,null)),{texture:i,texShape:[n,t]}}function j0(e){return e.internalFormatFloat}function S_(e,t,n,a){let[r,s]=ed(t,n);return td(e,r,s,j0(a),a.textureFormatFloat,e.FLOAT)}function q0(e){return e.internalFormatHalfFloat}function T_(e,t,n,a){let[r,s]=ed(t,n);return td(e,r,s,q0(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function K0(e){return e.downloadTextureFormat}function N_(e,t,n,a){let[r,s]=ed(t,n);return td(e,r,s,K0(a),e.RGBA,e.UNSIGNED_BYTE)}function X0(e){return e.internalFormatPackedFloat}function C_(e,t,n,a){let[r,s]=Ou(t,n);return td(e,r,s,X0(a),e.RGBA,e.FLOAT)}function Y0(e){return e.internalFormatPackedHalfFloat}function __(e,t,n,a){let[r,s]=Ou(t,n);return td(e,r,s,Y0(a),e.RGBA,a.textureTypeHalfFloat)}function E_(e,t,n){return me(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),ix(e,t,"clipSpacePos",n,3,20,0)&&ix(e,t,"uv",n,2,20,12)}function A_(e,t,n,a,r,s){me(e,()=>e.bindTexture(e.TEXTURE_2D,t));let i,o,l;r instanceof Uint8Array?(i=new Uint8Array(n*a*4),o=e.UNSIGNED_BYTE,l=e.RGBA):(i=new Float32Array(n*a*4),o=e.FLOAT,l=s.internalFormatPackedFloat),i.set(r),H().getNumber("WEBGL_VERSION")===2?me(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,a,e.RGBA,o,i)):me(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),me(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function $_(e,t,n){me(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?H().getNumber("WEBGL_VERSION")===2?me(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n.width,n.height,e.RGBA,e.UNSIGNED_BYTE,n.data)):me(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):H().getNumber("WEBGL_VERSION")===2?me(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,n)):me(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),me(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function F_(e,t,n,a){let r=e.createBuffer();me(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return me(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),me(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),me(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function D_(e,t,n){let a=e,r=new Float32Array(n);return a.bindBuffer(a.PIXEL_PACK_BUFFER,t),a.getBufferSubData(a.PIXEL_PACK_BUFFER,0,r),a.bindBuffer(a.PIXEL_PACK_BUFFER,null),r}function R_(e,t,n,a){let[r,s]=ed(t,n),i=4,o=new Uint8Array(OY(t*n,i));return me(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function M_(e,t,n,a,r,s,i,o){let l=e,u=new Float32Array(LY(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}function P_(e,t,n){let a=new Float32Array(t*n*4);return me(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var ph=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let t=H().getNumber("WEBGL_VERSION");e!=null?(this.gl=e,GC(t,e)):this.gl=qa(t);let n="WEBGL_color_buffer_float",a="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),H().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=Dp(this.gl,r),ca(this.gl,s))this.textureHalfFloatExtension=Dp(this.gl,s);else if(H().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),ca(this.gl,a))this.colorBufferHalfFloatExtension=Dp(this.gl,a);else if(H().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",ca(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(ca(this.gl,a))this.colorBufferHalfFloatExtension=this.gl.getExtension(a);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=k_(this.gl),this.indexBuffer=I_(this.gl),this.framebuffer=t_(this.gl),this.textureConfig=B0(this.gl,this.textureHalfFloatExtension)}get debug(){return H().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&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."),this.outputTexture!=null&&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.");let e=this.gl;me(e,()=>e.finish()),me(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),me(e,()=>e.deleteFramebuffer(this.framebuffer)),me(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),me(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),me(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),S_(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),T_(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),N_(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),$_(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),A_(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),__(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),C_(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(ox(this.gl,this.framebuffer),this.outputTexture=null),me(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>R_(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return M_(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return D_(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=F_(this.gl,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),a}createAndWaitForFence(){let e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,n;if(H().getBool("WEBGL_FENCE_API_ENABLED")){let a=e,r=a.fenceSync(a.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=()=>{let s=a.clientWaitSync(r,0,0);return s===a.ALREADY_SIGNALED||s===a.CONDITION_SATISFIED},t=r}else H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>P_(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl;this.vertexShader==null&&(this.vertexShader=w_(t));let n=XC(t);return me(t,()=>t.attachShader(n,this.vertexShader)),me(t,()=>t.attachShader(n,e)),YC(t,n),this.debug&&ih(t,n),this.vertexAttrsAreBound||(this.setProgram(n),this.vertexAttrsAreBound=E_(t,this.program,this.vertexBuffer)),n}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&me(this.gl,()=>this.gl.deleteProgram(e))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&ih(this.gl,this.program),me(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?a_(this.gl,e,t):r_(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),me(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(),s_(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=Ou(t,n);this.setOutputMatrixTextureDriver(e,a,r)}setOutputMatrixWriteRegion(e,t,n,a){this.setOutputMatrixWriteRegionDriver(n,e,a,t)}setOutputPackedMatrixWriteRegion(e,t,n,a){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&ih(this.gl,this.program),Rp(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;this.debug&&this.debugValidate(),me(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),me(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=Dp(this.gl,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.createQuery();return n.beginQuery(a.TIME_ELAPSED_EXT,r),r}let e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let t=this.gl,n=this.getQueryTimerExtensionWebGL2();t.endQuery(n.TIME_ELAPSED_EXT);return}let e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await v.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(t===0)return null;if(t===2){let n=this.gl;return n.getQueryParameter(e,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(e,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(t===0)return!0;if(t===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.getQueryParameter(e,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(a.GPU_DISJOINT_EXT)),r&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),a=n.getQueryObjectEXT(e,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),a&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){let e=VZ(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=e;++t){let{resolveFn:n}=this.itemsToPoll[t];n()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){if(this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1)return;let n;"setTimeoutCustom"in H().platform&&(n=H().platform.setTimeoutCustom.bind(H().platform)),v.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(e){this.throwIfDisposed(),oh(this.gl,e,this.framebuffer),this.debug&&Rp(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(oh(this.gl,this.outputTexture,this.framebuffer),this.debug&&Rp(this.gl)):ox(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);let n=t();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(e,t,n){this.throwIfDisposed();let a=this.gl;oh(a,e,this.framebuffer),this.debug&&Rp(a),this.outputTexture=e,me(a,()=>a.viewport(0,0,t,n)),me(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),me(this.gl,()=>this.gl.scissor(e,t,n,a))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}};function VZ(e){let t=0;for(;t`${e}.${n}`)}function wn(e,t){return t===1?[e]:W_(e,t)}function F7(e,t){if(e===1)return"rc";let n="";for(let a=0;ae.bindTexture(o,i)),me(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),me(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),me(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),me(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),H().getNumber("WEBGL_VERSION")===1?me(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)):me(e,()=>e.texStorage2D(o,1,a,t,n)),me(e,()=>e.bindTexture(e.TEXTURE_2D,null)),{texture:i,texShape:[n,t]}}function j0(e){return e.internalFormatFloat}function S_(e,t,n,a){let[r,s]=ed(t,n);return td(e,r,s,j0(a),a.textureFormatFloat,e.FLOAT)}function q0(e){return e.internalFormatHalfFloat}function T_(e,t,n,a){let[r,s]=ed(t,n);return td(e,r,s,q0(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function K0(e){return e.downloadTextureFormat}function N_(e,t,n,a){let[r,s]=ed(t,n);return td(e,r,s,K0(a),e.RGBA,e.UNSIGNED_BYTE)}function X0(e){return e.internalFormatPackedFloat}function C_(e,t,n,a){let[r,s]=Ou(t,n);return td(e,r,s,X0(a),e.RGBA,e.FLOAT)}function Y0(e){return e.internalFormatPackedHalfFloat}function __(e,t,n,a){let[r,s]=Ou(t,n);return td(e,r,s,Y0(a),e.RGBA,a.textureTypeHalfFloat)}function E_(e,t,n){return me(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),ix(e,t,"clipSpacePos",n,3,20,0)&&ix(e,t,"uv",n,2,20,12)}function $_(e,t,n,a,r,s){me(e,()=>e.bindTexture(e.TEXTURE_2D,t));let i,o,l;r instanceof Uint8Array?(i=new Uint8Array(n*a*4),o=e.UNSIGNED_BYTE,l=e.RGBA):(i=new Float32Array(n*a*4),o=e.FLOAT,l=s.internalFormatPackedFloat),i.set(r),H().getNumber("WEBGL_VERSION")===2?me(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,a,e.RGBA,o,i)):me(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),me(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function A_(e,t,n){me(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?H().getNumber("WEBGL_VERSION")===2?me(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n.width,n.height,e.RGBA,e.UNSIGNED_BYTE,n.data)):me(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):H().getNumber("WEBGL_VERSION")===2?me(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,n)):me(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),me(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function F_(e,t,n,a){let r=e.createBuffer();me(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return me(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),me(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),me(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function D_(e,t,n){let a=e,r=new Float32Array(n);return a.bindBuffer(a.PIXEL_PACK_BUFFER,t),a.getBufferSubData(a.PIXEL_PACK_BUFFER,0,r),a.bindBuffer(a.PIXEL_PACK_BUFFER,null),r}function R_(e,t,n,a){let[r,s]=ed(t,n),i=4,o=new Uint8Array(OY(t*n,i));return me(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function M_(e,t,n,a,r,s,i,o){let l=e,u=new Float32Array(LY(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}function P_(e,t,n){let a=new Float32Array(t*n*4);return me(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var ph=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let t=H().getNumber("WEBGL_VERSION");e!=null?(this.gl=e,GC(t,e)):this.gl=qa(t);let n="WEBGL_color_buffer_float",a="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),H().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=Dp(this.gl,r),ca(this.gl,s))this.textureHalfFloatExtension=Dp(this.gl,s);else if(H().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),ca(this.gl,a))this.colorBufferHalfFloatExtension=Dp(this.gl,a);else if(H().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",ca(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(ca(this.gl,a))this.colorBufferHalfFloatExtension=this.gl.getExtension(a);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=k_(this.gl),this.indexBuffer=I_(this.gl),this.framebuffer=t_(this.gl),this.textureConfig=B0(this.gl,this.textureHalfFloatExtension)}get debug(){return H().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&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."),this.outputTexture!=null&&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.");let e=this.gl;me(e,()=>e.finish()),me(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),me(e,()=>e.deleteFramebuffer(this.framebuffer)),me(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),me(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),me(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),S_(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),T_(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),N_(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),A_(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),$_(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),__(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),C_(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(ox(this.gl,this.framebuffer),this.outputTexture=null),me(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>R_(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return M_(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return D_(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=F_(this.gl,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),a}createAndWaitForFence(){let e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,n;if(H().getBool("WEBGL_FENCE_API_ENABLED")){let a=e,r=a.fenceSync(a.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=()=>{let s=a.clientWaitSync(r,0,0);return s===a.ALREADY_SIGNALED||s===a.CONDITION_SATISFIED},t=r}else H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>P_(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl;this.vertexShader==null&&(this.vertexShader=w_(t));let n=XC(t);return me(t,()=>t.attachShader(n,this.vertexShader)),me(t,()=>t.attachShader(n,e)),YC(t,n),this.debug&&ih(t,n),this.vertexAttrsAreBound||(this.setProgram(n),this.vertexAttrsAreBound=E_(t,this.program,this.vertexBuffer)),n}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&me(this.gl,()=>this.gl.deleteProgram(e))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&ih(this.gl,this.program),me(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?a_(this.gl,e,t):r_(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),me(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(),s_(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=Ou(t,n);this.setOutputMatrixTextureDriver(e,a,r)}setOutputMatrixWriteRegion(e,t,n,a){this.setOutputMatrixWriteRegionDriver(n,e,a,t)}setOutputPackedMatrixWriteRegion(e,t,n,a){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&ih(this.gl,this.program),Rp(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;this.debug&&this.debugValidate(),me(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),me(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=Dp(this.gl,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.createQuery();return n.beginQuery(a.TIME_ELAPSED_EXT,r),r}let e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let t=this.gl,n=this.getQueryTimerExtensionWebGL2();t.endQuery(n.TIME_ELAPSED_EXT);return}let e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await v.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(t===0)return null;if(t===2){let n=this.gl;return n.getQueryParameter(e,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(e,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(t===0)return!0;if(t===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.getQueryParameter(e,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(a.GPU_DISJOINT_EXT)),r&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),a=n.getQueryObjectEXT(e,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),a&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){let e=VZ(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=e;++t){let{resolveFn:n}=this.itemsToPoll[t];n()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){if(this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1)return;let n;"setTimeoutCustom"in H().platform&&(n=H().platform.setTimeoutCustom.bind(H().platform)),v.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(e){this.throwIfDisposed(),oh(this.gl,e,this.framebuffer),this.debug&&Rp(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(oh(this.gl,this.outputTexture,this.framebuffer),this.debug&&Rp(this.gl)):ox(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);let n=t();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(e,t,n){this.throwIfDisposed();let a=this.gl;oh(a,e,this.framebuffer),this.debug&&Rp(a),this.outputTexture=e,me(a,()=>a.viewport(0,0,t,n)),me(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),me(this.gl,()=>this.gl.scissor(e,t,n,a))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}};function VZ(e){let t=0;for(;t`${e}.${n}`)}function wn(e,t){return t===1?[e]:W_(e,t)}function F7(e,t){if(e===1)return"rc";let n="";for(let a=0;ah.push(m))}let t=this.texData.get(e),{values:n,shape:a,slice:r,dtype:s,complexTensorInfos:i,isPacked:o}=t;if(r!=null){let h;o?h=new js(a,jo):h=new Sr(a,jo);let m=this.runWebGLProgram(h,[{dataId:e,shape:a,dtype:s}],s),f=this.read(m.dataId);return this.disposeIntermediateTensorInfo(m),f}if(n!=null)return this.convertAndCacheOnCPU(e);if(H().getBool("DEBUG")&&!H().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&H().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l=null,u;if(s!=="complex64"&&H().get("WEBGL_BUFFER_SUPPORTED")){u=this.decode(e);let h=this.texData.get(u.dataId);l=this.gpgpu.createBufferFromTexture(h.texture.texture,...eh(a))}this.pendingRead.set(e,[]),s!=="complex64"&&await this.gpgpu.createAndWaitForFence();let p;if(s==="complex64"){let h=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]),m=h[0],f=h[1];p=N.mergeRealAndImagArrays(m,f)}else if(l==null)p=this.getValuesFromTexture(e);else{let h=v.sizeFromShape(a);p=this.gpgpu.downloadFloat32MatrixFromBuffer(l,h)}if(u!=null&&this.disposeIntermediateTensorInfo(u),l!=null){let h=this.gpgpu.gl;me(h,()=>h.deleteBuffer(l))}let d=this.convertAndCacheOnCPU(e,p),c=this.pendingRead.get(e);return this.pendingRead.delete(e),c.forEach(h=>h(d)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&Na().removeDataId(e,this),this.pendingDeletes--),d}readToGPU(e,t={}){let n=this.texData.get(e),{values:a,shape:r,slice:s,dtype:i,isPacked:o,texture:l}=n;if(i==="complex64")throw new Error("Does not support reading texture for complex64 dtype.");if(s!=null){let c;o?c=new js(r,jo):c=new Sr(r,jo);let h=this.runWebGLProgram(c,[{dataId:e,shape:r,dtype:i}],i),m=this.readToGPU(h,t);return this.disposeIntermediateTensorInfo(h),m}if(l==null)throw a!=null?new Error("Data is not on GPU but on CPU."):new Error("There is no data on GPU or CPU.");let u=this.decode(e,t.customTexShape),p=Na().makeTensorFromTensorInfo(u),d=this.texData.get(u.dataId);return Object.assign({tensorRef:p},d.texture)}bufferSync(e){let t=this.readSync(e.dataId);if(e.dtype==="string")try{let n=t.map(a=>v.decodeString(a));return Pe(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Pe(e.shape,e.dtype,t)}checkNumericalProblems(e){if(e!=null)for(let t=0;t0}time(e){let t=this.activeTimers,n=[],a=!1;this.programTimersStack==null?(this.programTimersStack=n,a=!0):this.activeTimers.push(n),this.activeTimers=n,e();let r=v.flatten(this.activeTimers.map(o=>o.query)).filter(o=>o!=null),s=v.flatten(this.activeTimers.map(o=>o.name)).filter(o=>o!=null);this.activeTimers=t,a&&(this.programTimersStack=null);let i={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let o=await Promise.all(r);i.kernelMs=v.sum(o),i.getExtraProfileInfo=()=>o.map((l,u)=>({name:s[u],ms:l})).map(l=>`${l.name}: ${l.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 H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:v.now(),endMs:null}}endTimer(e){return H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=v.now(),e)}async getQueryTime(e){if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);let 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);let{complexTensorInfos:n}=this.texData.get(e);return n!=null&&(this.disposeData(n.real.dataId,t),this.disposeData(n.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){let{texture:t,dtype:n,texShape:a,usage:r,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),t!=null&&(this.numBytesInGPU-=this.computeBytes(a,n),this.textureManager.releaseTexture(t,a,r,s)));let 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.texture}getDataInfo(e){return this.texData.get(e)}shouldExecuteOnCPU(e,t=eJ){return H().getBool("WEBGL_CPU_FORWARD")&&e.every(n=>this.texData.get(n.dataId).texture==null&&v.sizeFromShape(n.shape)0&&v.isString(n[0])){let r=n.map(s=>v.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return this.texData.get(a).usage=null,{dataId:a,shape:e,dtype:t}}makeOutput(e,t,n){return Na().makeTensorFromTensorInfo(this.makeTensorInfo(e,t,n),this)}unpackTensor(e){let t=new X7(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new D7(e.shape),n=!0;return this.runWebGLProgram(t,[e],e.dtype,null,n)}packedReshape(e,t){let n=[pi(e.shape),...ci(e.shape)],a={dtype:e.dtype,shape:n,dataId:e.dataId},r=[pi(t),...ci(t)],s=new B_(r,n),i=!0,o=[n],l=this.runWebGLProgram(s,[a],e.dtype,o,i);return{dataId:l.dataId,shape:t,dtype:l.dtype}}decode(e,t){let n=this.texData.get(e),{isPacked:a,shape:r,dtype:s}=n;if(t!=null){let d=v.sizeFromShape(r),c=t[0]*t[1]*4;v.assert(d<=c,()=>"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.")}let i=Mp(r),o;a?o=new OZ(i):o=new PZ(i);let l=!0,u=[t!=null?t:eh(i)],p=this.runWebGLProgram(o,[{shape:i,dtype:s,dataId:e}],s,u,l,t);return{dtype:s,shape:r,dataId:p.dataId}}runWebGLProgram(e,t,n,a,r=!1,s){let i=this.makeTensorInfo(e.outputShape,n),o=this.texData.get(i.dataId);if(e.packedOutput&&(o.isPacked=!0),e.outPackingScheme===Jp.DENSE){let g=s!=null?s:eh(e.outputShape);o.texShape=g.map(y=>y*2)}if(e.outTexUsage!=null&&(o.usage=e.outTexUsage),v.sizeFromShape(i.shape)===0)return o.values=v.getTypedArrayFromDType(i.dtype,0),i;let l=[],u=t.map(g=>{if(g.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let y=this.texData.get(g.dataId);if(y.texture==null){if(!e.packedInputs&&v.sizeFromShape(g.shape)<=H().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:g.shape,texData:null,isUniform:!0,uniformValues:y.values};e.packedInputs&&(y.isPacked=!0,y.shape=g.shape)}if(this.uploadToGPU(g.dataId),!!y.isPacked!=!!e.packedInputs)g=y.isPacked?this.unpackTensor(g):this.packTensor(g),l.push(g),y=this.texData.get(g.dataId);else if(y.isPacked&&!Qp(y.shape,g.shape)){let b=g,x=g.shape;g.shape=y.shape,g=this.packedReshape(g,x),l.push(g),y=this.texData.get(g.dataId),b.shape=x}return{shape:g.shape,texData:y,isUniform:!1}});this.uploadToGPU(i.dataId);let p={shape:i.shape,texData:o,isUniform:!1},d=MZ(e,u,p),c=this.getAndSaveBinary(d,()=>DZ(this.gpgpu,e,u,p)),h=this.activeTimers!=null,m;h&&(m=this.startTimer()),H().get("ENGINE_COMPILE_ONLY")||RZ(this.gpgpu,c,u,p,a),l.forEach(g=>this.disposeIntermediateTensorInfo(g)),h&&(m=this.endTimer(m),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(m)}));let f=H().get("WEBGL_FLUSH_THRESHOLD");if(f>0){let g=v.now();g-this.lastGlFlushTime>f&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=g)}if(!H().getBool("WEBGL_LAZILY_UNPACK")&&o.isPacked&&r===!1){let g=this.unpackTensor(i);return this.disposeIntermediateTensorInfo(i),g}return i}compileAndRun(e,t,n,a,r=!1){return n=n||t[0].dtype,this.runWebGLProgram(e,t,n,a,r)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(H().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=P(()=>{if(!H().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=H().getBool("DEBUG");H().set("DEBUG",!1);let t=this.abs(be(1e-8)).dataSync()[0];if(H().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?Z7:J7}uploadToGPU(e){let t=this.texData.get(e),{shape:n,dtype:a,values:r,texture:s,usage:i,isPacked:o}=t;if(s!=null)return;let l=this.activeTimers!=null,u;l&&(u=v.now());let p=t.texShape;if(p==null&&(p=l_(n,o),t.texShape=p),r!=null){let d=Mp(n),c,h=p[1],m=p[0],f=r instanceof Uint8Array||r instanceof Uint8ClampedArray;(o||!f)&&([h,m]=Ou(p[0],p[1])),o?c=new BZ(d,f):c=new jk(d,f);let g=f?[m,h]:p,y=this.makeTensorInfo(g,a),b=this.texData.get(y.dataId);f?b.usage=pa.PIXELS:b.usage=pa.UPLOAD,b.texShape=g,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(y.dataId),h,m,r);let x=[[m,h]],w=!0,I=this.runWebGLProgram(c,[y],a,x,w),T=this.texData.get(I.dataId);t.texShape=T.texShape,t.isPacked=T.isPacked,t.usage=T.usage,H().get("ENGINE_COMPILE_ONLY")?this.disposeData(I.dataId):(t.texture=T.texture,t.values=null,this.texData.delete(I.dataId)),this.disposeIntermediateTensorInfo(y),l&&(this.uploadWaitMs+=v.now()-u)}else{let d=this.acquireTexture(p,i,a,o);t.texture=d}}convertAndCacheOnCPU(e,t){let n=this.texData.get(e),{dtype:a}=n;return this.releaseGPUData(e),t!=null&&(n.values=aJ(t,a)),n.values}acquireTexture(e,t,n,a){if(this.numBytesInGPU+=this.computeBytes(e,n),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let r=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${r} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,a)}computeBytes(e,t){return e[0]*e[1]*v.bytesPerElement(t)}checkCompileCompletion(){for(let[,e]of Object.entries(this.binaryCache))this.checkCompletion_(e)}async checkCompileCompletionAsync(){let e=[];if(this.gpgpu.parallelCompilationExtension){for(let[,t]of Object.entries(this.binaryCache))e.push(this.checkCompletionAsync_(t));return Promise.all(e)}else{for(let[,t]of Object.entries(this.binaryCache)){let n=new Promise(a=>{try{this.checkCompletion_(t),a(!0)}catch(r){throw r}});e.push(n)}return Promise.all(e)}}async checkCompletionAsync_(e){return this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(e):(await Gv(),this.checkCompletionAsync_(e))}checkCompletion_(e){if(this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.gl.LINK_STATUS)===!1)throw console.log(this.gpgpu.gl.getProgramInfoLog(e.webGLProgram)),this.gpgpu.gl.getShaderParameter(e.fragmentShader,this.gpgpu.gl.COMPILE_STATUS)===!1?(V0(e.source,this.gpgpu.gl.getShaderInfoLog(e.fragmentShader)),new Error("Failed to compile fragment shader.")):new Error("Failed to link vertex and fragment shaders.");return!0}getUniformLocations(){for(let[,e]of Object.entries(this.binaryCache)){let{uniformLocations:t,customUniformLocations:n,infLoc:a,nanLoc:r,inShapesLocations:s,inTexShapesLocations:i,outShapeLocation:o,outShapeStridesLocation:l,outTexShapeLocation:u}=x_(this.gpgpu,e.program,e.webGLProgram);e.uniformLocations=t,e.customUniformLocations=n,e.infLoc=a,e.nanLoc=r,e.inShapesLocations=s,e.inTexShapesLocations=i,e.outShapeLocation=o,e.outShapeStridesLocation=l,e.outTexShapeLocation=u}}createTensorFromTexture(e,t,n){let{texture:a,height:r,width:s,channels:i}=e,o=Na().backend;if(!o.gpgpu.gl.isTexture(a))throw new Error("The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.");let l=o.writeTexture(a,t,n,r,s,i);return Na().makeTensorFromDataId(l,t,n,o)}};Rf.nextDataId=0;function aJ(e,t){if(t==="float32"||t==="complex64")return e;if(t==="int32"||t==="bool"){let n=t==="int32"?new Int32Array(e.length):new Uint8Array(e.length);for(let a=0;anew Rf,2);var sJ={forceHalfFloat:V_},J0=` + `}},Y7=cr.whereImpl,Z7=1e-7,J7=1e-4,gb={};function Q7(e){return e in gb||(gb[e]={}),gb[e]}var eJ=H().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),tJ=600;function nJ(){return H().global.screen==null?1024:H().global.screen.height*H().global.screen.width*window.devicePixelRatio*tJ/1024/1024}var Rf=class extends rc{constructor(e){if(super(),this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.lastGlFlushTime=0,this.warnedAboutMemory=!1,this.pendingDeletes=0,this.disposed=!1,!H().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");let t;if(e!=null){if(e instanceof ph)t=e;else{let n=qa(H().getNumber("WEBGL_VERSION"),e);t=new ph(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=qa(H().getNumber("WEBGL_VERSION"));t=new ph(n),this.binaryCache=Q7(H().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=t,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new M7(this.gpgpu),this.numMBBeforeWarning=nJ(),this.texData=new jh(this,Na())}nextDataId(){return Rf.nextDataId++}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}writeTexture(e,t,n,a,r,s){let i=this.makeTensorInfo(t,n),o=this.texData.get(i.dataId);o.isPacked=!1,o.texture={texture:e,texShape:[a,r]},o.texShape=[a,r];let l=Mp(t),u=new jk(l,!1,s),p=this.runWebGLProgram(u,[i],n,[[a,r]]);return p.shape=t,o.texture=null,this.disposeIntermediateTensorInfo(i),p.dataId}write(e,t,n){if((H().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||H().getBool("DEBUG"))&&this.checkNumericalProblems(e),n==="complex64"&&e!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let a={id:this.nextDataId()};return this.texData.set(a,{shape:t,dtype:n,values:e,usage:pa.UPLOAD,refCount:1}),a}refCount(e){return this.texData.has(e)?this.texData.get(e).refCount:0}incRef(e){let t=this.texData.get(e);t.refCount++}decRef(e){if(this.texData.has(e)){let t=this.texData.get(e);t.refCount--}}move(e,t,n,a,r){if(H().getBool("DEBUG")&&this.checkNumericalProblems(t),a==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:n,dtype:a,values:t,usage:pa.UPLOAD,refCount:r})}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}readSync(e){let t=this.texData.get(e),{values:n,dtype:a,complexTensorInfos:r,slice:s,shape:i,isPacked:o}=t;if(s!=null){let d;o?d=new js(i,jo):d=new Sr(i,jo);let c=this.runWebGLProgram(d,[{dataId:e,shape:i,dtype:a}],a),h=this.readSync(c.dataId);return this.disposeIntermediateTensorInfo(c),h}if(n!=null)return this.convertAndCacheOnCPU(e);if(a==="string")return n;let l=this.activeTimers!=null,u;l&&(u=v.now());let p;if(a==="complex64"){let d=this.readSync(r.real.dataId),c=this.readSync(r.imag.dataId);p=N.mergeRealAndImagArrays(d,c)}else p=this.getValuesFromTexture(e);return l&&(this.downloadWaitMs+=v.now()-u),this.convertAndCacheOnCPU(e,p)}async read(e){if(this.pendingRead.has(e)){let h=this.pendingRead.get(e);return new Promise(m=>h.push(m))}let t=this.texData.get(e),{values:n,shape:a,slice:r,dtype:s,complexTensorInfos:i,isPacked:o}=t;if(r!=null){let h;o?h=new js(a,jo):h=new Sr(a,jo);let m=this.runWebGLProgram(h,[{dataId:e,shape:a,dtype:s}],s),f=this.read(m.dataId);return this.disposeIntermediateTensorInfo(m),f}if(n!=null)return this.convertAndCacheOnCPU(e);if(H().getBool("DEBUG")&&!H().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&H().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l=null,u;if(s!=="complex64"&&H().get("WEBGL_BUFFER_SUPPORTED")){u=this.decode(e);let h=this.texData.get(u.dataId);l=this.gpgpu.createBufferFromTexture(h.texture.texture,...eh(a))}this.pendingRead.set(e,[]),s!=="complex64"&&await this.gpgpu.createAndWaitForFence();let p;if(s==="complex64"){let h=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]),m=h[0],f=h[1];p=N.mergeRealAndImagArrays(m,f)}else if(l==null)p=this.getValuesFromTexture(e);else{let h=v.sizeFromShape(a);p=this.gpgpu.downloadFloat32MatrixFromBuffer(l,h)}if(u!=null&&this.disposeIntermediateTensorInfo(u),l!=null){let h=this.gpgpu.gl;me(h,()=>h.deleteBuffer(l))}let d=this.convertAndCacheOnCPU(e,p),c=this.pendingRead.get(e);return this.pendingRead.delete(e),c.forEach(h=>h(d)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&Na().removeDataId(e,this),this.pendingDeletes--),d}readToGPU(e,t={}){let n=this.texData.get(e),{values:a,shape:r,slice:s,dtype:i,isPacked:o,texture:l}=n;if(i==="complex64")throw new Error("Does not support reading texture for complex64 dtype.");if(s!=null){let c;o?c=new js(r,jo):c=new Sr(r,jo);let h=this.runWebGLProgram(c,[{dataId:e,shape:r,dtype:i}],i),m=this.readToGPU(h,t);return this.disposeIntermediateTensorInfo(h),m}if(l==null)throw a!=null?new Error("Data is not on GPU but on CPU."):new Error("There is no data on GPU or CPU.");let u=this.decode(e,t.customTexShape),p=Na().makeTensorFromTensorInfo(u),d=this.texData.get(u.dataId);return Object.assign({tensorRef:p},d.texture)}bufferSync(e){let t=this.readSync(e.dataId);if(e.dtype==="string")try{let n=t.map(a=>v.decodeString(a));return Pe(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Pe(e.shape,e.dtype,t)}checkNumericalProblems(e){if(e!=null)for(let t=0;t0}time(e){let t=this.activeTimers,n=[],a=!1;this.programTimersStack==null?(this.programTimersStack=n,a=!0):this.activeTimers.push(n),this.activeTimers=n,e();let r=v.flatten(this.activeTimers.map(o=>o.query)).filter(o=>o!=null),s=v.flatten(this.activeTimers.map(o=>o.name)).filter(o=>o!=null);this.activeTimers=t,a&&(this.programTimersStack=null);let i={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let o=await Promise.all(r);i.kernelMs=v.sum(o),i.getExtraProfileInfo=()=>o.map((l,u)=>({name:s[u],ms:l})).map(l=>`${l.name}: ${l.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 H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:v.now(),endMs:null}}endTimer(e){return H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=v.now(),e)}async getQueryTime(e){if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);let 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);let{complexTensorInfos:n}=this.texData.get(e);return n!=null&&(this.disposeData(n.real.dataId,t),this.disposeData(n.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){let{texture:t,dtype:n,texShape:a,usage:r,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),t!=null&&(this.numBytesInGPU-=this.computeBytes(a,n),this.textureManager.releaseTexture(t,a,r,s)));let 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.texture}getDataInfo(e){return this.texData.get(e)}shouldExecuteOnCPU(e,t=eJ){return H().getBool("WEBGL_CPU_FORWARD")&&e.every(n=>this.texData.get(n.dataId).texture==null&&v.sizeFromShape(n.shape)0&&v.isString(n[0])){let r=n.map(s=>v.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return this.texData.get(a).usage=null,{dataId:a,shape:e,dtype:t}}makeOutput(e,t,n){return Na().makeTensorFromTensorInfo(this.makeTensorInfo(e,t,n),this)}unpackTensor(e){let t=new X7(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new D7(e.shape),n=!0;return this.runWebGLProgram(t,[e],e.dtype,null,n)}packedReshape(e,t){let n=[pi(e.shape),...ci(e.shape)],a={dtype:e.dtype,shape:n,dataId:e.dataId},r=[pi(t),...ci(t)],s=new B_(r,n),i=!0,o=[n],l=this.runWebGLProgram(s,[a],e.dtype,o,i);return{dataId:l.dataId,shape:t,dtype:l.dtype}}decode(e,t){let n=this.texData.get(e),{isPacked:a,shape:r,dtype:s}=n;if(t!=null){let d=v.sizeFromShape(r),c=t[0]*t[1]*4;v.assert(d<=c,()=>"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.")}let i=Mp(r),o;a?o=new OZ(i):o=new PZ(i);let l=!0,u=[t!=null?t:eh(i)],p=this.runWebGLProgram(o,[{shape:i,dtype:s,dataId:e}],s,u,l,t);return{dtype:s,shape:r,dataId:p.dataId}}runWebGLProgram(e,t,n,a,r=!1,s){let i=this.makeTensorInfo(e.outputShape,n),o=this.texData.get(i.dataId);if(e.packedOutput&&(o.isPacked=!0),e.outPackingScheme===Jp.DENSE){let g=s!=null?s:eh(e.outputShape);o.texShape=g.map(y=>y*2)}if(e.outTexUsage!=null&&(o.usage=e.outTexUsage),v.sizeFromShape(i.shape)===0)return o.values=v.getTypedArrayFromDType(i.dtype,0),i;let l=[],u=t.map(g=>{if(g.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let y=this.texData.get(g.dataId);if(y.texture==null){if(!e.packedInputs&&v.sizeFromShape(g.shape)<=H().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:g.shape,texData:null,isUniform:!0,uniformValues:y.values};e.packedInputs&&(y.isPacked=!0,y.shape=g.shape)}if(this.uploadToGPU(g.dataId),!!y.isPacked!=!!e.packedInputs)g=y.isPacked?this.unpackTensor(g):this.packTensor(g),l.push(g),y=this.texData.get(g.dataId);else if(y.isPacked&&!Qp(y.shape,g.shape)){let b=g,x=g.shape;g.shape=y.shape,g=this.packedReshape(g,x),l.push(g),y=this.texData.get(g.dataId),b.shape=x}return{shape:g.shape,texData:y,isUniform:!1}});this.uploadToGPU(i.dataId);let p={shape:i.shape,texData:o,isUniform:!1},d=MZ(e,u,p),c=this.getAndSaveBinary(d,()=>DZ(this.gpgpu,e,u,p)),h=this.activeTimers!=null,m;h&&(m=this.startTimer()),H().get("ENGINE_COMPILE_ONLY")||RZ(this.gpgpu,c,u,p,a),l.forEach(g=>this.disposeIntermediateTensorInfo(g)),h&&(m=this.endTimer(m),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(m)}));let f=H().get("WEBGL_FLUSH_THRESHOLD");if(f>0){let g=v.now();g-this.lastGlFlushTime>f&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=g)}if(!H().getBool("WEBGL_LAZILY_UNPACK")&&o.isPacked&&r===!1){let g=this.unpackTensor(i);return this.disposeIntermediateTensorInfo(i),g}return i}compileAndRun(e,t,n,a,r=!1){return n=n||t[0].dtype,this.runWebGLProgram(e,t,n,a,r)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(H().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=P(()=>{if(!H().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=H().getBool("DEBUG");H().set("DEBUG",!1);let t=this.abs(xe(1e-8)).dataSync()[0];if(H().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?Z7:J7}uploadToGPU(e){let t=this.texData.get(e),{shape:n,dtype:a,values:r,texture:s,usage:i,isPacked:o}=t;if(s!=null)return;let l=this.activeTimers!=null,u;l&&(u=v.now());let p=t.texShape;if(p==null&&(p=l_(n,o),t.texShape=p),r!=null){let d=Mp(n),c,h=p[1],m=p[0],f=r instanceof Uint8Array||r instanceof Uint8ClampedArray;(o||!f)&&([h,m]=Ou(p[0],p[1])),o?c=new BZ(d,f):c=new jk(d,f);let g=f?[m,h]:p,y=this.makeTensorInfo(g,a),b=this.texData.get(y.dataId);f?b.usage=pa.PIXELS:b.usage=pa.UPLOAD,b.texShape=g,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(y.dataId),h,m,r);let x=[[m,h]],w=!0,I=this.runWebGLProgram(c,[y],a,x,w),T=this.texData.get(I.dataId);t.texShape=T.texShape,t.isPacked=T.isPacked,t.usage=T.usage,H().get("ENGINE_COMPILE_ONLY")?this.disposeData(I.dataId):(t.texture=T.texture,t.values=null,this.texData.delete(I.dataId)),this.disposeIntermediateTensorInfo(y),l&&(this.uploadWaitMs+=v.now()-u)}else{let d=this.acquireTexture(p,i,a,o);t.texture=d}}convertAndCacheOnCPU(e,t){let n=this.texData.get(e),{dtype:a}=n;return this.releaseGPUData(e),t!=null&&(n.values=aJ(t,a)),n.values}acquireTexture(e,t,n,a){if(this.numBytesInGPU+=this.computeBytes(e,n),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let r=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${r} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,a)}computeBytes(e,t){return e[0]*e[1]*v.bytesPerElement(t)}checkCompileCompletion(){for(let[,e]of Object.entries(this.binaryCache))this.checkCompletion_(e)}async checkCompileCompletionAsync(){let e=[];if(this.gpgpu.parallelCompilationExtension){for(let[,t]of Object.entries(this.binaryCache))e.push(this.checkCompletionAsync_(t));return Promise.all(e)}else{for(let[,t]of Object.entries(this.binaryCache)){let n=new Promise(a=>{try{this.checkCompletion_(t),a(!0)}catch(r){throw r}});e.push(n)}return Promise.all(e)}}async checkCompletionAsync_(e){return this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(e):(await Gv(),this.checkCompletionAsync_(e))}checkCompletion_(e){if(this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.gl.LINK_STATUS)===!1)throw console.log(this.gpgpu.gl.getProgramInfoLog(e.webGLProgram)),this.gpgpu.gl.getShaderParameter(e.fragmentShader,this.gpgpu.gl.COMPILE_STATUS)===!1?(V0(e.source,this.gpgpu.gl.getShaderInfoLog(e.fragmentShader)),new Error("Failed to compile fragment shader.")):new Error("Failed to link vertex and fragment shaders.");return!0}getUniformLocations(){for(let[,e]of Object.entries(this.binaryCache)){let{uniformLocations:t,customUniformLocations:n,infLoc:a,nanLoc:r,inShapesLocations:s,inTexShapesLocations:i,outShapeLocation:o,outShapeStridesLocation:l,outTexShapeLocation:u}=x_(this.gpgpu,e.program,e.webGLProgram);e.uniformLocations=t,e.customUniformLocations=n,e.infLoc=a,e.nanLoc=r,e.inShapesLocations=s,e.inTexShapesLocations=i,e.outShapeLocation=o,e.outShapeStridesLocation=l,e.outTexShapeLocation=u}}createTensorFromTexture(e,t,n){let{texture:a,height:r,width:s,channels:i}=e,o=Na().backend;if(!o.gpgpu.gl.isTexture(a))throw new Error("The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.");let l=o.writeTexture(a,t,n,r,s,i);return Na().makeTensorFromDataId(l,t,n,o)}};Rf.nextDataId=0;function aJ(e,t){if(t==="float32"||t==="complex64")return e;if(t==="int32"||t==="bool"){let n=t==="int32"?new Int32Array(e.length):new Uint8Array(e.length);for(let a=0;anew Rf,2);var sJ={forceHalfFloat:V_},J0=` if (isnan(a)) return a; if (isnan(b)) return b; `,xl=class{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=N.assertAndGetBroadcastShape(t,n),this.enableShapeUniforms=_n(this.outputShape.length),this.userCode=` @@ -1524,14 +1524,14 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(result); } - `}};function Mf(e,t,n){let a=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new xJ(e.shape,t):new yJ(e.shape,t);return n.runWebGLProgram(a,[e],e.dtype)}function vJ(e,t,n,a){let r=t,s=e.shape.length,i=v.parseAxisParam(r,e.shape),o=i,l=N.getAxesPermutation(o,s),u=l!=null,p=e;u&&(p=Mf(e,l,a),o=N.getInnerMostAxes(o.length,s)),N.assertAxesAreInnerMostDims("sum",o,s);let[d,c]=N.computeOutAndReduceShapes(p.shape,o),h=d;n&&(h=N.expandShapeToKeepDim(d,i));let m=v.sizeFromShape(c),f=v.sizeFromShape(e.shape)/m,g=de({inputs:{x:p},attrs:{shape:[f,m]},backend:a}),y=_m(e.dtype),b=ko(g,y,"sum",a),x=de({inputs:{x:b},attrs:{shape:h},backend:a});return a.disposeIntermediateTensorInfo(g),a.disposeIntermediateTensorInfo(b),u&&a.disposeIntermediateTensorInfo(p),x}function Pf(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;return vJ(r,s,i,n)}var wJ={kernelName:so,backendName:"webgl",kernelFunc:Pf};function In(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{perm:s}=a,i=n,o=r.shape.length,l=new Array(o);for(let p=0;p`Error in matMul: inner shapes (${d}) and (${c}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${a} must match.`);let w=n?[y,d,h]:[y,h,d],I=a?[b,m,c]:[b,c,m],T=de({inputs:{x:e},backend:r,attrs:{shape:w}}),C=de({inputs:{x:t},backend:r,attrs:{shape:I}}),E=[T,C],A=Math.max(y,b),R=n?T.shape[1]:T.shape[2],F=s!=null,S=i!=null,M=l==="leakyrelu",B=l!=null?ec(l,!0):null,U=F||S||M||B!=null,G;if((h===1||m===1)&&R>K_&&U===!1){let K=T,Z=C;n&&(K=In({inputs:{x:T},backend:r,attrs:{perm:[0,2,1]}}),E.push(K)),a&&(Z=In({inputs:{x:C},backend:r,attrs:{perm:[0,2,1]}}),E.push(Z));let Q=m!==1,ee=m===1,ae=K;Q&&(ae=de({inputs:{x:K},backend:r,attrs:{shape:[A,R,1]}}),E.push(ae));let te=m===1?2:1,le=Z;ee&&(le=de({inputs:{x:Z},backend:r,attrs:{shape:[A,1,R]}}),E.push(le));let ie=Q0({inputs:{a:ae,b:le},backend:r});G=Pf({inputs:{x:ie},backend:r,attrs:{axis:te,keepDims:!0}}),E.push(ie)}else{let K=ma(e.dtype,t.dtype),Z=new q_(w,I,[A,h,m],n,a,F,B,S,M),Q=[T,C];if(s!=null&&Q.push(s),S&&Q.push(i),M){let ee=r.makeTensorInfo([],"float32",v.createScalarValue(o,"float32"));Q.push(ee),E.push(ee)}G=r.runWebGLProgram(Z,Q,K)}let q=de({inputs:{x:G},backend:r,attrs:{shape:x}});E.push(G);for(let K of E)r.disposeIntermediateTensorInfo(K);return q}function IJ(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t,{transposeA:l,transposeB:u,activation:p,leakyreluAlpha:d}=a;return Bh({a:r,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:d,activation:p})}var SJ={kernelName:Js,backendName:"webgl",kernelFunc:IJ},tI="return abs(x);";function TJ(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])&&a.dtype!=="complex64"){let s=n.texData.get(a.dataId),i=L_(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return H().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new js(a.shape,tI):r=new Sr(a.shape,tI),n.runWebGLProgram(r,[a],a.dtype)}var NJ={kernelName:wl,backendName:"webgl",kernelFunc:TJ},CJ=Da+` + `}};function Mf(e,t,n){let a=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new xJ(e.shape,t):new yJ(e.shape,t);return n.runWebGLProgram(a,[e],e.dtype)}function vJ(e,t,n,a){let r=t,s=e.shape.length,i=v.parseAxisParam(r,e.shape),o=i,l=N.getAxesPermutation(o,s),u=l!=null,p=e;u&&(p=Mf(e,l,a),o=N.getInnerMostAxes(o.length,s)),N.assertAxesAreInnerMostDims("sum",o,s);let[d,c]=N.computeOutAndReduceShapes(p.shape,o),h=d;n&&(h=N.expandShapeToKeepDim(d,i));let m=v.sizeFromShape(c),f=v.sizeFromShape(e.shape)/m,g=de({inputs:{x:p},attrs:{shape:[f,m]},backend:a}),y=_m(e.dtype),b=ko(g,y,"sum",a),x=de({inputs:{x:b},attrs:{shape:h},backend:a});return a.disposeIntermediateTensorInfo(g),a.disposeIntermediateTensorInfo(b),u&&a.disposeIntermediateTensorInfo(p),x}function Pf(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;return vJ(r,s,i,n)}var wJ={kernelName:so,backendName:"webgl",kernelFunc:Pf};function In(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{perm:s}=a,i=n,o=r.shape.length,l=new Array(o);for(let p=0;p`Error in matMul: inner shapes (${d}) and (${c}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${a} must match.`);let w=n?[y,d,h]:[y,h,d],I=a?[b,m,c]:[b,c,m],T=de({inputs:{x:e},backend:r,attrs:{shape:w}}),C=de({inputs:{x:t},backend:r,attrs:{shape:I}}),E=[T,C],$=Math.max(y,b),R=n?T.shape[1]:T.shape[2],F=s!=null,S=i!=null,M=l==="leakyrelu",B=l!=null?ec(l,!0):null,U=F||S||M||B!=null,G;if((h===1||m===1)&&R>K_&&U===!1){let K=T,Z=C;n&&(K=In({inputs:{x:T},backend:r,attrs:{perm:[0,2,1]}}),E.push(K)),a&&(Z=In({inputs:{x:C},backend:r,attrs:{perm:[0,2,1]}}),E.push(Z));let J=m!==1,ee=m===1,ae=K;J&&(ae=de({inputs:{x:K},backend:r,attrs:{shape:[$,R,1]}}),E.push(ae));let te=m===1?2:1,ie=Z;ee&&(ie=de({inputs:{x:Z},backend:r,attrs:{shape:[$,1,R]}}),E.push(ie));let oe=Q0({inputs:{a:ae,b:ie},backend:r});G=Pf({inputs:{x:oe},backend:r,attrs:{axis:te,keepDims:!0}}),E.push(oe)}else{let K=ma(e.dtype,t.dtype),Z=new q_(w,I,[$,h,m],n,a,F,B,S,M),J=[T,C];if(s!=null&&J.push(s),S&&J.push(i),M){let ee=r.makeTensorInfo([],"float32",v.createScalarValue(o,"float32"));J.push(ee),E.push(ee)}G=r.runWebGLProgram(Z,J,K)}let q=de({inputs:{x:G},backend:r,attrs:{shape:x}});E.push(G);for(let K of E)r.disposeIntermediateTensorInfo(K);return q}function IJ(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t,{transposeA:l,transposeB:u,activation:p,leakyreluAlpha:d}=a;return Bh({a:r,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:d,activation:p})}var SJ={kernelName:Js,backendName:"webgl",kernelFunc:IJ},tI="return abs(x);";function TJ(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])&&a.dtype!=="complex64"){let s=n.texData.get(a.dataId),i=L_(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return H().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new js(a.shape,tI):r=new Sr(a.shape,tI),n.runWebGLProgram(r,[a],a.dtype)}var NJ={kernelName:wl,backendName:"webgl",kernelFunc:TJ},CJ=Da+` if (abs(x) > 1.) { return NAN; } return acos(x); -`,_J=Ye({opSnippet:CJ}),EJ={kernelName:kl,backendName:"webgl",kernelFunc:_J},AJ=Da+` +`,_J=Ye({opSnippet:CJ}),EJ={kernelName:kl,backendName:"webgl",kernelFunc:_J},$J=Da+` if (x < 1.0) return NAN; -return log(x + sqrt(x * x - 1.0));`,$J=Ye({opSnippet:AJ}),FJ={kernelName:Il,backendName:"webgl",kernelFunc:$J},nI="return a + b;",DJ=pn({opSnippet:nI,packedOpSnippet:nI,supportsComplex:!0,cpuKernelImpl:UZ}),RJ={kernelName:cs,backendName:"webgl",kernelFunc:DJ},MJ=class{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`float v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` +return log(x + sqrt(x * x - 1.0));`,AJ=Ye({opSnippet:$J}),FJ={kernelName:Il,backendName:"webgl",kernelFunc:AJ},nI="return a + b;",DJ=pn({opSnippet:nI,packedOpSnippet:nI,supportsComplex:!0,cpuKernelImpl:UZ}),RJ={kernelName:cs,backendName:"webgl",kernelFunc:DJ},MJ=class{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`float v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` void main() { ${n.join(` `)} @@ -1645,7 +1645,7 @@ return log(x + sqrt(x * x - 1.0));`,$J=Ye({opSnippet:AJ}),FJ={kernelName:Il,back bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w); `+nd+` return result; -`,s9=pn({opSnippet:a9,packedOpSnippet:r9}),i9={kernelName:Al,backendName:"webgl",kernelFunc:s9},o9=Da+` +`,s9=pn({opSnippet:a9,packedOpSnippet:r9}),i9={kernelName:$l,backendName:"webgl",kernelFunc:s9},o9=Da+` if ((x < -1.0) || (x > 1.0)) return NAN; return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelName:El,backendName:"webgl",kernelFunc:l9},tc=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideHeight,o=e.strideWidth,l=e.dilationHeight,u=e.dilationWidth,p=e.effectiveFilterHeight,d=e.effectiveFilterWidth,c=e.padInfo.top,h=e.padInfo.left;this.outputShape=e.outShape;let m=t==="avg",f=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,g=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`,y="0.0";if(m||(y="-1.0 / 1e-20"),n){let C=">=";this.userCode=` const ivec2 strides = ivec2(${i}, ${o}); @@ -1788,7 +1788,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam } setOutput(${x}); } - `}},e1=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideDepth,o=e.strideHeight,l=e.strideWidth,u=e.dilationDepth,p=e.dilationHeight,d=e.dilationWidth,c=e.effectiveFilterDepth,h=e.effectiveFilterHeight,m=e.effectiveFilterWidth,f=e.padInfo.front,g=e.padInfo.top,y=e.padInfo.left;this.outputShape=e.outShape;let b=t==="avg",x="0.0";if(b||(x="-1.0 / 1e-20"),n){let A=">=";this.userCode=` + `}},e1=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideDepth,o=e.strideHeight,l=e.strideWidth,u=e.dilationDepth,p=e.dilationHeight,d=e.dilationWidth,c=e.effectiveFilterDepth,h=e.effectiveFilterHeight,m=e.effectiveFilterWidth,f=e.padInfo.front,g=e.padInfo.top,y=e.padInfo.left;this.outputShape=e.outShape;let b=t==="avg",x="0.0";if(b||(x="-1.0 / 1e-20"),n){let $=">=";this.userCode=` const ivec3 strides = ivec3(${i}, ${o}, ${l}); const ivec3 pads = ivec3(${f}, ${g}, ${y}); @@ -1839,7 +1839,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam // use the current value. float currMinMaxValue = mix( value, minMaxValue, minMaxValueFound); - if (value ${A} currMinMaxValue) { + if (value ${$} currMinMaxValue) { minMaxValue = value; minMaxValueFound = 1.0; minMaxPosition = ${a?r?`(((batch * ${e.inDepth} + xD) * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`((xD * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`wD * ${h} * ${m} + @@ -2072,7 +2072,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam setOutput((x - mean) * inv + offset); } - `}},S9=({inputs:e,backend:t,attrs:n})=>{let{x:a,mean:r,variance:s,offset:i,scale:o}=e;v.assert(r.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),v.assert(i==null||r.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),v.assert(o==null||r.shape.length===o.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:l}=n;l==null&&(l=.001);let u=[a,r,s],p=null;i!=null&&(p=i.shape,u.push(i));let d=null;o!=null&&(d=o.shape,u.push(o));let c=H().getBool("WEBGL_PACK_NORMALIZATION")?new I9(a.shape,r.shape,s.shape,p,d,l):new k9(a.shape,r.shape,s.shape,p,d,l);return t.runWebGLProgram(c,u,u[0].dtype)},T9={kernelName:$i,backendName:"webgl",kernelFunc:S9},N9=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=gt(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let n=C9(this.rank),a,r=e.map((s,i)=>`sourceLoc.${px[i]} = start[${i}] + coords.${px[i]};`);a=` + `}},S9=({inputs:e,backend:t,attrs:n})=>{let{x:a,mean:r,variance:s,offset:i,scale:o}=e;v.assert(r.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),v.assert(i==null||r.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),v.assert(o==null||r.shape.length===o.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:l}=n;l==null&&(l=.001);let u=[a,r,s],p=null;i!=null&&(p=i.shape,u.push(i));let d=null;o!=null&&(d=o.shape,u.push(o));let c=H().getBool("WEBGL_PACK_NORMALIZATION")?new I9(a.shape,r.shape,s.shape,p,d,l):new k9(a.shape,r.shape,s.shape,p,d,l);return t.runWebGLProgram(c,u,u[0].dtype)},T9={kernelName:Ai,backendName:"webgl",kernelFunc:S9},N9=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=gt(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let n=C9(this.rank),a,r=e.map((s,i)=>`sourceLoc.${px[i]} = start[${i}] + coords.${px[i]};`);a=` ${t} sourceLoc; ${t} coords = getOutputCoords(); ${r.join(` @@ -2111,7 +2111,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam ${o} setOutput(result); } - `}};function E9(e,t,n,a){let r=a.texData.get(e.dataId),s=a.makeTensorInfo(n,e.dtype),i=a.texData.get(s.dataId);Object.assign(i,r),i.refCount=1,i.shape=n,i.dtype=e.dtype;let o=jt.computeFlatOffset(t,v.computeStrides(e.shape));r.slice&&(o+=r.slice.flatOffset),i.slice={flatOffset:o,origDataId:r.slice&&r.slice.origDataId||e.dataId};let l=a.dataRefCount.get(i.slice.origDataId)||1;return a.dataRefCount.set(i.slice.origDataId,l+1),s}function Gu(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a,[o,l]=jt.parseSliceParams(r,s,i);if(jt.assertParamsValid(r,o,l),v.sizeFromShape(l)===0)return n.makeTensorInfo(l,r.dtype,[]);if(n.shouldExecuteOnCPU([r])||r.dtype==="string"){let d=n.texData.get(r.dataId),c=v7(d.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,c)}let{isPacked:u}=n.texData.get(r.dataId),p=jt.isSliceContinous(r.shape,o,l);if(u||!p){let d=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new _9(l):new N9(l),c=[o];return n.runWebGLProgram(d,[r],r.dtype,c)}return n.uploadToGPU(r.dataId),E9(r,o,l,n)}var A9={kernelName:du,backendName:"webgl",kernelFunc:Gu},$9=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;v.assert(r.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((b,x)=>b*x),l=N.getReshaped(r.shape,s,o),u=N.getPermuted(l.length,s.length),p=N.getReshapedPermuted(r.shape,s,o),d=N.getSliceBeginCoords(i,s.length),c=N.getSliceSize(p,i,s.length),h=[],m=de({inputs:{x:r},backend:n,attrs:{shape:l}}),f=In({inputs:{x:m},backend:n,attrs:{perm:u}}),g=de({inputs:{x:f},backend:n,attrs:{shape:p}}),y=Gu({inputs:{x:g},backend:n,attrs:{begin:d,size:c}});return h.push(m),h.push(f),h.push(g),h.forEach(b=>n.disposeIntermediateTensorInfo(b)),y},F9={kernelName:$l,backendName:"webgl",kernelFunc:$9};function D9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.readSync(r.dataId),l=n.readSync(s.dataId),u=O_(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var R9={kernelName:Zh,backendName:"webgl",kernelFunc:D9};function M9(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.readSync(a.dataId),i=n.readSync(r.dataId),o=N.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var P9={kernelName:Jh,backendName:"webgl",kernelFunc:M9},O9="return float(a != b);",J_=pn({opSnippet:O9,cpuKernelImpl:c7,dtype:"bool"}),L9={kernelName:tu,backendName:"webgl",kernelFunc:J_};function rd(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return na({inputs:{x:r.complexTensorInfos.real},backend:n})}var z9={kernelName:wm,backendName:"webgl",kernelFunc:rd},W9="return float(int(x));";function B9(e,t){let n=new Sr(e.shape,W9),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function cx(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return na({inputs:{x:r},backend:n});let i=It(r.shape),o=cx({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=Is({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=rd({inputs:{input:r},backend:n}),o=cx({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!v.hasEncodingLoss(r.dtype,s)){let i=na({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(n.shouldExecuteOnCPU([r])){let i=n.texData.get(r.dataId).values,[o,l,u]=HZ(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}if(s==="int32")return B9(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",v.getTypedArrayFromDType("bool",1)),o=J_({inputs:{a:r,b:i},backend:n});return n.disposeIntermediateTensorInfo(i),o}throw new Error(`Error in Cast: failed to cast ${r.dtype} to ${s}`)}var V9={kernelName:bi,backendName:"webgl",kernelFunc:cx},aI="return ceil(x);",U9=Ye({opSnippet:aI,packedOpSnippet:aI,cpuKernelImpl:jZ}),G9={kernelName:xi,backendName:"webgl",kernelFunc:U9},H9=class{constructor(e){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` + `}};function E9(e,t,n,a){let r=a.texData.get(e.dataId),s=a.makeTensorInfo(n,e.dtype),i=a.texData.get(s.dataId);Object.assign(i,r),i.refCount=1,i.shape=n,i.dtype=e.dtype;let o=jt.computeFlatOffset(t,v.computeStrides(e.shape));r.slice&&(o+=r.slice.flatOffset),i.slice={flatOffset:o,origDataId:r.slice&&r.slice.origDataId||e.dataId};let l=a.dataRefCount.get(i.slice.origDataId)||1;return a.dataRefCount.set(i.slice.origDataId,l+1),s}function Gu(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a,[o,l]=jt.parseSliceParams(r,s,i);if(jt.assertParamsValid(r,o,l),v.sizeFromShape(l)===0)return n.makeTensorInfo(l,r.dtype,[]);if(n.shouldExecuteOnCPU([r])||r.dtype==="string"){let d=n.texData.get(r.dataId),c=v7(d.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,c)}let{isPacked:u}=n.texData.get(r.dataId),p=jt.isSliceContinous(r.shape,o,l);if(u||!p){let d=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new _9(l):new N9(l),c=[o];return n.runWebGLProgram(d,[r],r.dtype,c)}return n.uploadToGPU(r.dataId),E9(r,o,l,n)}var $9={kernelName:du,backendName:"webgl",kernelFunc:Gu},A9=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;v.assert(r.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((b,x)=>b*x),l=N.getReshaped(r.shape,s,o),u=N.getPermuted(l.length,s.length),p=N.getReshapedPermuted(r.shape,s,o),d=N.getSliceBeginCoords(i,s.length),c=N.getSliceSize(p,i,s.length),h=[],m=de({inputs:{x:r},backend:n,attrs:{shape:l}}),f=In({inputs:{x:m},backend:n,attrs:{perm:u}}),g=de({inputs:{x:f},backend:n,attrs:{shape:p}}),y=Gu({inputs:{x:g},backend:n,attrs:{begin:d,size:c}});return h.push(m),h.push(f),h.push(g),h.forEach(b=>n.disposeIntermediateTensorInfo(b)),y},F9={kernelName:Al,backendName:"webgl",kernelFunc:A9};function D9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.readSync(r.dataId),l=n.readSync(s.dataId),u=O_(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var R9={kernelName:Zh,backendName:"webgl",kernelFunc:D9};function M9(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.readSync(a.dataId),i=n.readSync(r.dataId),o=N.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var P9={kernelName:Jh,backendName:"webgl",kernelFunc:M9},O9="return float(a != b);",J_=pn({opSnippet:O9,cpuKernelImpl:c7,dtype:"bool"}),L9={kernelName:tu,backendName:"webgl",kernelFunc:J_};function rd(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return na({inputs:{x:r.complexTensorInfos.real},backend:n})}var z9={kernelName:wm,backendName:"webgl",kernelFunc:rd},W9="return float(int(x));";function B9(e,t){let n=new Sr(e.shape,W9),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function cx(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return na({inputs:{x:r},backend:n});let i=It(r.shape),o=cx({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=Is({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=rd({inputs:{input:r},backend:n}),o=cx({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!v.hasEncodingLoss(r.dtype,s)){let i=na({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(n.shouldExecuteOnCPU([r])){let i=n.texData.get(r.dataId).values,[o,l,u]=HZ(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}if(s==="int32")return B9(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",v.getTypedArrayFromDType("bool",1)),o=J_({inputs:{a:r,b:i},backend:n});return n.disposeIntermediateTensorInfo(i),o}throw new Error(`Error in Cast: failed to cast ${r.dtype} to ${s}`)}var V9={kernelName:bi,backendName:"webgl",kernelFunc:cx},aI="return ceil(x);",U9=Ye({opSnippet:aI,packedOpSnippet:aI,cpuKernelImpl:jZ}),G9={kernelName:xi,backendName:"webgl",kernelFunc:U9},H9=class{constructor(e){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` void main() { float value = getAAtOutCoords(); @@ -2192,7 +2192,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam } setOutput(result); } - `}};function nh(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function Of(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return na({inputs:{x:r.complexTensorInfos.imag},backend:n})}var eQ={kernelName:cm,backendName:"webgl",kernelFunc:Of};function Pp(e,t,n){let a=e[0].dtype;if(a==="complex64"){let d=e.map(g=>rd({inputs:{input:g},backend:n})),c=e.map(g=>Of({inputs:{input:g},backend:n})),h=Pp(d,t,n),m=Pp(c,t,n),f=Is({inputs:{real:h,imag:m},backend:n});return d.forEach(g=>n.disposeIntermediateTensorInfo(g)),c.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),f}let r=n.shouldExecuteOnCPU(e);if(a==="string"&&(r=!0),r){let d=e.map(b=>{let x=v.sizeFromShape(b.shape.slice(t));return de({inputs:{x:b},backend:n,attrs:{shape:[-1,x]}})}),c=d.map(b=>({vals:n.readSync(b.dataId),shape:b.shape})),h=N.computeOutShape(d.map(b=>b.shape),1),m=d[0].shape[0]===1,f=qZ(c,h,a,m),g=N.computeOutShape(e.map(b=>b.shape),t),y=n.makeTensorInfo(g,a,f);return d.forEach(b=>n.disposeIntermediateTensorInfo(b)),y}let s=H().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(e.length>s){let d=[];for(let h=0;h1){let d=new Q9(e.map(c=>c.shape),t);return n.runWebGLProgram(d,e,a)}let{tensors2D:i,outShape:o}=tQ(e,t,n),l=new J9(i.map(d=>d.shape)),u=n.runWebGLProgram(l,i,a);i.forEach(d=>n.disposeIntermediateTensorInfo(d));let p=de({inputs:{x:u},attrs:{shape:o},backend:n});return n.disposeIntermediateTensorInfo(u),p}function tQ(e,t,n){let a=N.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>de({inputs:{x:r},attrs:{shape:[-1,v.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function Q_(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a,s=v.parseAxisParam(r,t[0].shape)[0],i=t.map(u=>u.shape);N.assertParamsConsistent(i,s);let o=N.computeOutShape(t.map(u=>u.shape),s);if(v.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(u=>v.sizeFromShape(u.shape)>0);return l.length===1?na({inputs:{x:l[0]},backend:n}):Pp(l,s,n)}var nQ={kernelName:Fl,backendName:"webgl",kernelFunc:Q_},eE=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let s=e.padInfo.top,i=e.padInfo.left,o=e.strideHeight,l=e.strideWidth,u=e.dilationHeight,p=e.dilationWidth,d=e.filterHeight,c=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4,f=e.dataFormat==="channelsLast",g=f?1:2,y=f?2:3,b=f?3:1,x="",w="";n&&(a?x=`float activation(float a) { + `}};function nh(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function Of(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return na({inputs:{x:r.complexTensorInfos.imag},backend:n})}var eQ={kernelName:cm,backendName:"webgl",kernelFunc:Of};function Pp(e,t,n){let a=e[0].dtype;if(a==="complex64"){let d=e.map(g=>rd({inputs:{input:g},backend:n})),c=e.map(g=>Of({inputs:{input:g},backend:n})),h=Pp(d,t,n),m=Pp(c,t,n),f=Is({inputs:{real:h,imag:m},backend:n});return d.forEach(g=>n.disposeIntermediateTensorInfo(g)),c.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),f}let r=n.shouldExecuteOnCPU(e);if(a==="string"&&(r=!0),r){let d=e.map(b=>{let x=[-1,v.sizeFromShape(b.shape.slice(t))];return de({inputs:{x:b},backend:n,attrs:{shape:x}})}),c=d.map(b=>({vals:n.readSync(b.dataId),shape:b.shape})),h=N.computeOutShape(d.map(b=>b.shape),1),m=d[0].shape[0]===1,f=qZ(c,h,a,m),g=N.computeOutShape(e.map(b=>b.shape),t),y=n.makeTensorInfo(g,a,f);return d.forEach(b=>n.disposeIntermediateTensorInfo(b)),y}let s=H().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(e.length>s){let d=[];for(let h=0;h1){let d=new Q9(e.map(c=>c.shape),t);return n.runWebGLProgram(d,e,a)}let{tensors2D:i,outShape:o}=tQ(e,t,n),l=new J9(i.map(d=>d.shape)),u=n.runWebGLProgram(l,i,a);i.forEach(d=>n.disposeIntermediateTensorInfo(d));let p=de({inputs:{x:u},attrs:{shape:o},backend:n});return n.disposeIntermediateTensorInfo(u),p}function tQ(e,t,n){let a=N.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>de({inputs:{x:r},attrs:{shape:[-1,v.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function Q_(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a,s=v.parseAxisParam(r,t[0].shape)[0],i=t.map(u=>u.shape);N.assertParamsConsistent(i,s);let o=N.computeOutShape(t.map(u=>u.shape),s);if(v.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(u=>v.sizeFromShape(u.shape)>0);return l.length===1?na({inputs:{x:l[0]},backend:n}):Pp(l,s,n)}var nQ={kernelName:Fl,backendName:"webgl",kernelFunc:Q_},eE=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let s=e.padInfo.top,i=e.padInfo.left,o=e.strideHeight,l=e.strideWidth,u=e.dilationHeight,p=e.dilationWidth,d=e.filterHeight,c=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4,f=e.dataFormat==="channelsLast",g=f?1:2,y=f?2:3,b=f?3:1,x="",w="";n&&(a?x=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:r?x=`float activation(float a) { @@ -2657,7 +2657,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam ${a.output} = result; } - `}};function Vh(e,t){let n=e.length;return n>=3?t?[...e.slice(0,-3),e[n-3]*e[n-2],e[n-1]]:[...e.slice(0,-3),e[n-3],e[n-2]*e[n-1]]:!t&&n===1&&e[0]>1?[e[0],1]:null}function nE({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let l=e.shape,u=a.texData.get(e.dataId),p=n.inChannels,d=l[0]*l[1]*l[2],c=n.outChannels,h=n.dataFormat==="channelsLast",m=!1,f=!1,g,y=[];if(s!=null){let b=Vh(s.shape,h);b!=null&&(s=de({inputs:{x:s},backend:a,attrs:{shape:b}}),y.push(s))}if(r!=null){let b=Vh(r.shape,h);b!=null&&(r=de({inputs:{x:r},backend:a,attrs:{shape:b}}),y.push(r))}if(!((d===1||c===1)&&p>K_)&&u.isPacked&&h&&u.texture!=null&&l[2]%2!==0&&v.arraysEqual(u.shape.slice(-3),l.slice(-3))){let b=l[0]*l[1]*(l[2]+1),x={dataId:e.dataId,shape:[1,b,n.inChannels],dtype:e.dtype},w=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,v.assert(Qp(u.shape,x.shape),()=>`packed reshape ${u.shape} to ${x.shape} isn't free`);let I=de({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});y.push(I);let T=Bh({a:x,b:I,backend:a,transposeA:m,transposeB:f,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),C=a.texData.get(T.dataId);v.assert(C.isPacked,()=>"batchMatMul result is expected to be packed"),u.shape=w,C.shape=n.outShape,g=na({inputs:{x:T},backend:a}),g.shape=n.outShape,y.push(T)}else{let b=n.outHeight*n.outWidth,x=de({inputs:{x:e},backend:a,attrs:{shape:h?[n.batchSize,b,n.inChannels]:[n.batchSize,n.inChannels,b]}}),w=de({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),I=Bh({a:h?x:w,b:h?w:x,transposeA:!h,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=de({inputs:{x:I},backend:a,attrs:{shape:n.outShape}}),y.push(x),y.push(w),y.push(I)}for(let b of y)a.disposeIntermediateTensorInfo(b);return g}function aE({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let{filterWidth:l,filterHeight:u,inChannels:p,outWidth:d,outHeight:c,dataFormat:h}=n,m=h==="channelsLast",f=l*u*p,g=c*d,y=[n.batchSize,f,g],b=!0,x=!1,w=[];if(s!=null){let K=Vh(s.shape,m);K!=null&&(s=de({inputs:{x:s},backend:a,attrs:{shape:K}}),w.push(s))}if(r!=null){let K=Vh(r.shape,m);K!=null&&(r=de({inputs:{x:r},backend:a,attrs:{shape:K}}),w.push(r))}let I=de({inputs:{x:t},backend:a,attrs:{shape:[1,f,v.sizeFromShape(t.shape)/f]}});w.push(I);let T=new rQ(y,n),C=[e.shape,[n.padInfo.top,n.padInfo.left],[n.strideHeight,n.strideWidth],[n.dilationHeight,n.dilationWidth],[n.inChannels],[n.filterWidth*n.inChannels],[n.outWidth]],E=a.runWebGLProgram(T,[e],"float32",C),A=de({inputs:{x:E},backend:a,attrs:{shape:y}});w.push(E),w.push(A);let R=r!=null,F=s!=null,S=o==="leakyrelu",M=o?ec(o,!0):null,B=new q_(m?A.shape:I.shape,m?I.shape:A.shape,m?[n.batchSize,g,n.outChannels]:[n.batchSize,n.outChannels,g],b,x,R,M,F,S),U=m?[A,I]:[I,A];if(r&&U.push(r),F&&U.push(s),S){let K=a.makeTensorInfo([],"float32",v.createScalarValue(i,"float32"));U.push(K),w.push(K)}let G=a.runWebGLProgram(B,U,"float32"),q=de({inputs:{x:G},backend:a,attrs:{shape:n.outShape}});w.push(G);for(let K of w)a.disposeIntermediateTensorInfo(K);return q}function sQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:p}=a,d=N.convertConv2DDataFormat(l),c=N.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h;if(c.filterHeight===1&&c.filterWidth===1&&c.dilationHeight===1&&c.dilationWidth===1&&c.strideHeight===1&&c.strideWidth===1&&(c.padInfo.type==="SAME"||c.padInfo.type==="VALID"))h=nE({x:r,filter:s,convInfo:c,backend:n});else if(c.strideWidth<=2&&d==="channelsLast"&&H().getBool("WEBGL_EXP_CONV")){let f=new tE(c),g=[[c.padInfo.top,c.padInfo.left],[c.strideHeight,c.strideWidth],[c.dilationHeight,c.dilationWidth],[c.inHeight,c.inWidth]];h=n.runWebGLProgram(f,[r,s],"float32",g)}else if(H().getBool("WEBGL_CONV_IM2COL"))h=aE({x:r,filter:s,convInfo:c,backend:n});else{let f=new eE(c);h=n.runWebGLProgram(f,[r,s],"float32")}let m=de({inputs:{x:h},backend:n,attrs:{shape:c.outShape}});return n.disposeIntermediateTensorInfo(h),m}var iQ={kernelName:vi,backendName:"webgl",kernelFunc:sQ},oQ=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.dataFormat==="channelsLast";this.userCode=` + `}};function Vh(e,t){let n=e.length;return n>=3?t?[...e.slice(0,-3),e[n-3]*e[n-2],e[n-1]]:[...e.slice(0,-3),e[n-3],e[n-2]*e[n-1]]:!t&&n===1&&e[0]>1?[e[0],1]:null}function nE({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let l=e.shape,u=a.texData.get(e.dataId),p=n.inChannels,d=l[0]*l[1]*l[2],c=n.outChannels,h=n.dataFormat==="channelsLast",m=!1,f=!1,g,y=[];if(s!=null){let b=Vh(s.shape,h);b!=null&&(s=de({inputs:{x:s},backend:a,attrs:{shape:b}}),y.push(s))}if(r!=null){let b=Vh(r.shape,h);b!=null&&(r=de({inputs:{x:r},backend:a,attrs:{shape:b}}),y.push(r))}if(!((d===1||c===1)&&p>K_)&&u.isPacked&&h&&u.texture!=null&&l[2]%2!==0&&v.arraysEqual(u.shape.slice(-3),l.slice(-3))){let b=l[0]*l[1]*(l[2]+1),x={dataId:e.dataId,shape:[1,b,n.inChannels],dtype:e.dtype},w=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,v.assert(Qp(u.shape,x.shape),()=>`packed reshape ${u.shape} to ${x.shape} isn't free`);let I=de({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});y.push(I);let T=Bh({a:x,b:I,backend:a,transposeA:m,transposeB:f,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),C=a.texData.get(T.dataId);v.assert(C.isPacked,()=>"batchMatMul result is expected to be packed"),u.shape=w,C.shape=n.outShape,g=na({inputs:{x:T},backend:a}),g.shape=n.outShape,y.push(T)}else{let b=n.outHeight*n.outWidth,x=de({inputs:{x:e},backend:a,attrs:{shape:h?[n.batchSize,b,n.inChannels]:[n.batchSize,n.inChannels,b]}}),w=de({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),I=Bh({a:h?x:w,b:h?w:x,transposeA:!h,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=de({inputs:{x:I},backend:a,attrs:{shape:n.outShape}}),y.push(x),y.push(w),y.push(I)}for(let b of y)a.disposeIntermediateTensorInfo(b);return g}function aE({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let{filterWidth:l,filterHeight:u,inChannels:p,outWidth:d,outHeight:c,dataFormat:h}=n,m=h==="channelsLast",f=l*u*p,g=c*d,y=[n.batchSize,f,g],b=!0,x=!1,w=[];if(s!=null){let K=Vh(s.shape,m);K!=null&&(s=de({inputs:{x:s},backend:a,attrs:{shape:K}}),w.push(s))}if(r!=null){let K=Vh(r.shape,m);K!=null&&(r=de({inputs:{x:r},backend:a,attrs:{shape:K}}),w.push(r))}let I=de({inputs:{x:t},backend:a,attrs:{shape:[1,f,v.sizeFromShape(t.shape)/f]}});w.push(I);let T=new rQ(y,n),C=[e.shape,[n.padInfo.top,n.padInfo.left],[n.strideHeight,n.strideWidth],[n.dilationHeight,n.dilationWidth],[n.inChannels],[n.filterWidth*n.inChannels],[n.outWidth]],E=a.runWebGLProgram(T,[e],"float32",C),$=de({inputs:{x:E},backend:a,attrs:{shape:y}});w.push(E),w.push($);let R=r!=null,F=s!=null,S=o==="leakyrelu",M=o?ec(o,!0):null,B=new q_(m?$.shape:I.shape,m?I.shape:$.shape,m?[n.batchSize,g,n.outChannels]:[n.batchSize,n.outChannels,g],b,x,R,M,F,S),U=m?[$,I]:[I,$];if(r&&U.push(r),F&&U.push(s),S){let K=a.makeTensorInfo([],"float32",v.createScalarValue(i,"float32"));U.push(K),w.push(K)}let G=a.runWebGLProgram(B,U,"float32"),q=de({inputs:{x:G},backend:a,attrs:{shape:n.outShape}});w.push(G);for(let K of w)a.disposeIntermediateTensorInfo(K);return q}function sQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:p}=a,d=N.convertConv2DDataFormat(l),c=N.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h;if(c.filterHeight===1&&c.filterWidth===1&&c.dilationHeight===1&&c.dilationWidth===1&&c.strideHeight===1&&c.strideWidth===1&&(c.padInfo.type==="SAME"||c.padInfo.type==="VALID"))h=nE({x:r,filter:s,convInfo:c,backend:n});else if(c.strideWidth<=2&&d==="channelsLast"&&H().getBool("WEBGL_EXP_CONV")){let f=new tE(c),g=[[c.padInfo.top,c.padInfo.left],[c.strideHeight,c.strideWidth],[c.dilationHeight,c.dilationWidth],[c.inHeight,c.inWidth]];h=n.runWebGLProgram(f,[r,s],"float32",g)}else if(H().getBool("WEBGL_CONV_IM2COL"))h=aE({x:r,filter:s,convInfo:c,backend:n});else{let f=new eE(c);h=n.runWebGLProgram(f,[r,s],"float32")}let m=de({inputs:{x:h},backend:n,attrs:{shape:c.outShape}});return n.disposeIntermediateTensorInfo(h),m}var iQ={kernelName:vi,backendName:"webgl",kernelFunc:sQ},oQ=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.dataFormat==="channelsLast";this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -2930,7 +2930,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam } setOutput(val); } - `}};function iI(e,t,n){if(e===1)return`${t}`;if(e===2)return`${t}.x, ${t}.y`;if(e===3)return`${t}.x, ${t}.y, ${t}.z`;if(e===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw new Error(`Cumulative ${n} for rank ${e} is not yet supported`)}function oI(e,t,n){if(e===1)return`${t}`;if(e===2)return`${t}.y`;if(e===3)return`${t}.z`;if(e===4)return`${t}.w`;throw new Error(`Cumulative ${n} for rank ${e} is not yet supported`)}function rE(e,t,n,a,r,s){let i=t.shape.length,o=N.getAxesPermutation([a],i),l=t;o!=null&&(l=In({inputs:{x:t},backend:n,attrs:{perm:o}}));let u=N.getInnerMostAxes(1,i)[0];if(u!==i-1)throw new Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${a}`);let p=l.shape[u],d=na({inputs:{x:l},backend:n});for(let c=0;c<=Math.ceil(Math.log2(p))-1;c++){let h=new sI(e,l.shape,!1,s),m=[[c]],f=d;d=n.runWebGLProgram(h,[d],d.dtype,m),n.disposeIntermediateTensorInfo(f)}if(r){let c=new sI(e,l.shape,r,s),h=d;d=n.runWebGLProgram(c,[d],d.dtype),n.disposeIntermediateTensorInfo(h)}if(o!=null){let c=N.getUndoAxesPermutation(o),h=In({inputs:{x:d},backend:n,attrs:{perm:c}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(l),h}return d}function AQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return rE(nc.Prod,r,n,s,i,o)}var $Q={kernelName:Dl,backendName:"webgl",kernelFunc:AQ};function FQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return rE(nc.Sum,r,n,s,i,o)}var DQ={kernelName:Si,backendName:"webgl",kernelFunc:FQ};function RQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i,binaryOutput:o}=a;if(r.shape.length===1){let l=n.readSync(r.dataId),u=n.readSync(s.dataId),p=O_(l,u,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,p)}else if(r.shape.length===2){let l=n.bufferSync(r),u=n.bufferSync(s),p=GZ(l,u,i,o);return n.makeTensorInfo(p.shape,s.dtype,p.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${r.shape.length}.`)}var MQ={kernelName:am,backendName:"webgl",kernelFunc:RQ},PQ=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=` + `}};function iI(e,t,n){if(e===1)return`${t}`;if(e===2)return`${t}.x, ${t}.y`;if(e===3)return`${t}.x, ${t}.y, ${t}.z`;if(e===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw new Error(`Cumulative ${n} for rank ${e} is not yet supported`)}function oI(e,t,n){if(e===1)return`${t}`;if(e===2)return`${t}.y`;if(e===3)return`${t}.z`;if(e===4)return`${t}.w`;throw new Error(`Cumulative ${n} for rank ${e} is not yet supported`)}function rE(e,t,n,a,r,s){let i=t.shape.length,o=N.getAxesPermutation([a],i),l=t;o!=null&&(l=In({inputs:{x:t},backend:n,attrs:{perm:o}}));let u=N.getInnerMostAxes(1,i)[0];if(u!==i-1)throw new Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${a}`);let p=l.shape[u],d=na({inputs:{x:l},backend:n});for(let c=0;c<=Math.ceil(Math.log2(p))-1;c++){let h=new sI(e,l.shape,!1,s),m=[[c]],f=d;d=n.runWebGLProgram(h,[d],d.dtype,m),n.disposeIntermediateTensorInfo(f)}if(r){let c=new sI(e,l.shape,r,s),h=d;d=n.runWebGLProgram(c,[d],d.dtype),n.disposeIntermediateTensorInfo(h)}if(o!=null){let c=N.getUndoAxesPermutation(o),h=In({inputs:{x:d},backend:n,attrs:{perm:c}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(l),h}return d}function $Q(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return rE(nc.Prod,r,n,s,i,o)}var AQ={kernelName:Dl,backendName:"webgl",kernelFunc:$Q};function FQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return rE(nc.Sum,r,n,s,i,o)}var DQ={kernelName:Si,backendName:"webgl",kernelFunc:FQ};function RQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i,binaryOutput:o}=a;if(r.shape.length===1){let l=n.readSync(r.dataId),u=n.readSync(s.dataId),p=O_(l,u,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,p)}else if(r.shape.length===2){let l=n.bufferSync(r),u=n.bufferSync(s),p=GZ(l,u,i,o);return n.makeTensorInfo(p.shape,s.dtype,p.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${r.shape.length}.`)}var MQ={kernelName:am,backendName:"webgl",kernelFunc:RQ},PQ=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3407,7 +3407,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam } setOutput(outputValue); } - `}},Cee={kernelName:Wl,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new Nee(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},pI="return floor(x);",_ee=Ye({opSnippet:pI,packedOpSnippet:pI,cpuKernelImpl:ZZ}),Eee={kernelName:Ei,backendName:"webgl",kernelFunc:_ee},Aee=` + `}},Cee={kernelName:Wl,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new Nee(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},pI="return floor(x);",_ee=Ye({opSnippet:pI,packedOpSnippet:pI,cpuKernelImpl:ZZ}),Eee={kernelName:Ei,backendName:"webgl",kernelFunc:_ee},$ee=` float s = sign(a) * sign(b); int ia = round(a); int ib = round(b); @@ -3417,7 +3417,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam } else { return NAN; } -`,$ee=` +`,Aee=` ivec4 ia = round(a); ivec4 ib = round(b); bvec4 cond = notEqual(ib, ivec4(0)); @@ -3438,7 +3438,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam result[3] = idiv(ia[3], ib[3], s[3]); } return vec4(result); -`,Fee=pn({opSnippet:Aee,packedOpSnippet:$ee,dtype:"int32"}),Dee={kernelName:Ai,backendName:"webgl",kernelFunc:Fee},Ree=class{constructor(e){this.variableNames=["A"];let t=Cn(),[n,a]=e;this.outputShape=e,this.userCode=` +`,Fee=pn({opSnippet:$ee,packedOpSnippet:Aee,dtype:"int32"}),Dee={kernelName:$i,backendName:"webgl",kernelFunc:Fee},Ree=class{constructor(e){this.variableNames=["A"];let t=Cn(),[n,a]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -3494,7 +3494,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam ${t.output} = result; } - `}},Pee={kernelName:yh,backendName:"webgl",kernelFunc:Oee},qo,yb=H().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function Oee(e){let{inputs:t,backend:n,attrs:a}=e,{pixels:r}=t,{numChannels:s}=a,i=typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement,o=typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement,[l,u]=i?[r.videoWidth,r.videoHeight]:[r.width,r.height],p=[u,l],d=[u,l,s];if(o||i){let f=H().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(qo==null||f!==yb)&&(yb=f,qo=document.createElement("canvas").getContext("2d",{willReadFrequently:yb})),qo.canvas.width=l,qo.canvas.height=u,qo.drawImage(r,0,0,l,u),r=qo.canvas}let c=n.makeTensorInfo(p,"int32");n.texData.get(c.dataId).usage=pa.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(c.dataId),r);let h=H().getBool("WEBGL_PACK")?new Mee(d):new Ree(d),m=n.runWebGLProgram(h,[c],"int32");return n.disposeData(c.dataId),m}function Lee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=N.convertConv2DDataFormat(p),g=N.computeConv2DInfo(r.shape,s.shape,l,d,u,c,!1,f),y,b=[],x=i!=null,w=o!=null,I=h==="leakyrelu",T=()=>{let E=[r,s],A=(R,F)=>{if(F==="NCHW"&&R.shape.length===1&&R.shape[0]!==1){let S=de({inputs:{x:R},backend:n,attrs:{shape:[R.shape[0],1,1]}});return b.push(S),S}return R};if(x&&E.push(A(i,p)),w&&E.push(A(o,p)),I){let R=n.makeTensorInfo([],"float32",v.createScalarValue(m,"float32"));E.push(R),b.push(R)}return E};if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type==="SAME"||g.padInfo.type==="VALID"))y=nE({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(g.strideWidth<=2&&f==="channelsLast"&&H().getBool("WEBGL_EXP_CONV")){let E=h?ec(h,!0):null,A=new tE(g,x,E,w,I),R=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=T();y=n.runWebGLProgram(A,F,"float32",R)}else if(H().getBool("WEBGL_CONV_IM2COL"))y=aE({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let E=h?ec(h,!1):null,A=new eE(g,x,E,w,I),R=T();y=n.runWebGLProgram(A,R,"float32")}let C=de({inputs:{x:y},backend:n,attrs:{shape:g.outShape}});return b.push(y),b.forEach(E=>n.disposeIntermediateTensorInfo(E)),C}var zee={kernelName:Qs,backendName:"webgl",kernelFunc:Lee};function Wee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dimRoundingMode:d,activation:c,leakyreluAlpha:h}=a,m=[],f=p;f==null&&(f=[1,1]),v.assert(N.eitherStridesOrDilationsAreOne(l,f),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${f}'`);let g=N.computeConv2DInfo(r.shape,s.shape,l,f,u,d,!0),y=H().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=c?ec(c,y):null,x=[r,s],w=i!=null,I=o!=null,T=c==="leakyrelu";if(w&&x.push(i),I&&x.push(o),T){let R=n.makeTensorInfo([],"float32",v.createScalarValue(h,"float32"));x.push(R),m.push(R)}let C;y?C=new iE(g,w,b,I,T):C=new sE(g,w,b,I,T);let E=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],A=n.runWebGLProgram(C,x,"float32",E);return m.forEach(R=>n.disposeIntermediateTensorInfo(R)),A}var Bee={kernelName:ei,backendName:"webgl",kernelFunc:Wee},Vee=class{constructor(e,t,n,a){this.sliceDim=e,this.strides=t,this.paramsShape=a,this.variableNames=["x","indices"],this.outputShape=n;let r=gt(n.length),s=` + `}},Pee={kernelName:yh,backendName:"webgl",kernelFunc:Oee},qo,yb=H().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function Oee(e){let{inputs:t,backend:n,attrs:a}=e,{pixels:r}=t,{numChannels:s}=a,i=typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement,o=typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement,[l,u]=i?[r.videoWidth,r.videoHeight]:[r.width,r.height],p=[u,l],d=[u,l,s];if(o||i){let f=H().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(qo==null||f!==yb)&&(yb=f,qo=document.createElement("canvas").getContext("2d",{willReadFrequently:yb})),qo.canvas.width=l,qo.canvas.height=u,qo.drawImage(r,0,0,l,u),r=qo.canvas}let c=n.makeTensorInfo(p,"int32");n.texData.get(c.dataId).usage=pa.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(c.dataId),r);let h=H().getBool("WEBGL_PACK")?new Mee(d):new Ree(d),m=n.runWebGLProgram(h,[c],"int32");return n.disposeData(c.dataId),m}function Lee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=N.convertConv2DDataFormat(p),g=N.computeConv2DInfo(r.shape,s.shape,l,d,u,c,!1,f),y,b=[],x=i!=null,w=o!=null,I=h==="leakyrelu",T=()=>{let E=[r,s],$=(R,F)=>{if(F==="NCHW"&&R.shape.length===1&&R.shape[0]!==1){let S=de({inputs:{x:R},backend:n,attrs:{shape:[R.shape[0],1,1]}});return b.push(S),S}return R};if(x&&E.push($(i,p)),w&&E.push($(o,p)),I){let R=n.makeTensorInfo([],"float32",v.createScalarValue(m,"float32"));E.push(R),b.push(R)}return E};if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type==="SAME"||g.padInfo.type==="VALID"))y=nE({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(g.strideWidth<=2&&f==="channelsLast"&&H().getBool("WEBGL_EXP_CONV")){let E=h?ec(h,!0):null,$=new tE(g,x,E,w,I),R=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=T();y=n.runWebGLProgram($,F,"float32",R)}else if(H().getBool("WEBGL_CONV_IM2COL"))y=aE({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let E=h?ec(h,!1):null,$=new eE(g,x,E,w,I),R=T();y=n.runWebGLProgram($,R,"float32")}let C=de({inputs:{x:y},backend:n,attrs:{shape:g.outShape}});return b.push(y),b.forEach(E=>n.disposeIntermediateTensorInfo(E)),C}var zee={kernelName:Qs,backendName:"webgl",kernelFunc:Lee};function Wee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dimRoundingMode:d,activation:c,leakyreluAlpha:h}=a,m=[],f=p;f==null&&(f=[1,1]),v.assert(N.eitherStridesOrDilationsAreOne(l,f),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${f}'`);let g=N.computeConv2DInfo(r.shape,s.shape,l,f,u,d,!0),y=H().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=c?ec(c,y):null,x=[r,s],w=i!=null,I=o!=null,T=c==="leakyrelu";if(w&&x.push(i),I&&x.push(o),T){let R=n.makeTensorInfo([],"float32",v.createScalarValue(h,"float32"));x.push(R),m.push(R)}let C;y?C=new iE(g,w,b,I,T):C=new sE(g,w,b,I,T);let E=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],$=n.runWebGLProgram(C,x,"float32",E);return m.forEach(R=>n.disposeIntermediateTensorInfo(R)),$}var Bee={kernelName:ei,backendName:"webgl",kernelFunc:Wee},Vee=class{constructor(e,t,n,a){this.sliceDim=e,this.strides=t,this.paramsShape=a,this.variableNames=["x","indices"],this.outputShape=n;let r=gt(n.length),s=` int index;`;for(let i=0;i= 1.0 && b >= 1.0);",$te=` +`,_te=Ye({opSnippet:Cte}),Ete={kernelName:Xl,backendName:"webgl",kernelFunc:_te},$te="return float(a >= 1.0 && b >= 1.0);",Ate=` return vec4( vec4(greaterThanEqual(a, vec4(1.0))) * vec4(greaterThanEqual(b, vec4(1.0)))); -`,Fte=pn({opSnippet:Ate,packedOpSnippet:$te,dtype:"bool"}),Dte={kernelName:Yl,backendName:"webgl",kernelFunc:Fte},Rte="return float(!(x >= 1.0));",Mte=Ye({opSnippet:Rte}),Pte={kernelName:Zl,backendName:"webgl",kernelFunc:Mte},Ote="return float(a >= 1.0 || b >= 1.0);",Lte=` +`,Fte=pn({opSnippet:$te,packedOpSnippet:Ate,dtype:"bool"}),Dte={kernelName:Yl,backendName:"webgl",kernelFunc:Fte},Rte="return float(!(x >= 1.0));",Mte=Ye({opSnippet:Rte}),Pte={kernelName:Zl,backendName:"webgl",kernelFunc:Mte},Ote="return float(a >= 1.0 || b >= 1.0);",Lte=` return min( vec4(greaterThanEqual(a, vec4(1.0))) + vec4(greaterThanEqual(b, vec4(1.0))), @@ -3924,7 +3924,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam if (a == b) { return 1.0; }; -return a / b;`,Ane=` +return a / b;`,$ne=` // vec4 one = vec4(equal(a, b)); // return one + (vec4(1.0) - one) * a / b; vec4 result = a / b; @@ -3942,7 +3942,7 @@ return a / b;`,Ane=` } return result; -`,cE=pn({opSnippet:Ene,packedOpSnippet:Ane,checkOutOfBounds:!0}),$ne={kernelName:Ni,backendName:"webgl",kernelFunc:cE},cI="return a - b;",dE=pn({opSnippet:cI,packedOpSnippet:cI,supportsComplex:!0,cpuKernelImpl:_7}),Fne={kernelName:lo,backendName:"webgl",kernelFunc:dE};function hE(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=v.parseAxisParam([s],r.shape),o=pE({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=N.expandShapeToKeepDim(o.shape,i),u=de({inputs:{x:o},backend:n,attrs:{shape:l}}),p=dE({inputs:{a:r,b:u},backend:n}),d=oE({inputs:{x:p},backend:n}),c=Pf({inputs:{x:d},backend:n,attrs:{axis:i,keepDims:!1}}),h=de({inputs:{x:c},backend:n,attrs:{shape:l}}),m=cE({inputs:{a:d,b:h},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),m}var Dne={kernelName:io,backendName:"webgl",kernelFunc:hE};function Rne(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:hE({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),u=l.shape[0],p=l.shape[1],d=new _ne(u,p,s),c=[[i]],h=n.runWebGLProgram(d,[l],"int32",c);return o||n.disposeIntermediateTensorInfo(l),h}var Mne={kernelName:ym,backendName:"webgl",kernelFunc:Rne},Pne=Da+` +`,cE=pn({opSnippet:Ene,packedOpSnippet:$ne,checkOutOfBounds:!0}),Ane={kernelName:Ni,backendName:"webgl",kernelFunc:cE},cI="return a - b;",dE=pn({opSnippet:cI,packedOpSnippet:cI,supportsComplex:!0,cpuKernelImpl:_7}),Fne={kernelName:lo,backendName:"webgl",kernelFunc:dE};function hE(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=v.parseAxisParam([s],r.shape),o=pE({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=N.expandShapeToKeepDim(o.shape,i),u=de({inputs:{x:o},backend:n,attrs:{shape:l}}),p=dE({inputs:{a:r,b:u},backend:n}),d=oE({inputs:{x:p},backend:n}),c=Pf({inputs:{x:d},backend:n,attrs:{axis:i,keepDims:!1}}),h=de({inputs:{x:c},backend:n,attrs:{shape:l}}),m=cE({inputs:{a:d,b:h},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),m}var Dne={kernelName:io,backendName:"webgl",kernelFunc:hE};function Rne(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:hE({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),u=l.shape[0],p=l.shape[1],d=new _ne(u,p,s),c=[[i]],h=n.runWebGLProgram(d,[l],"int32",c);return o||n.disposeIntermediateTensorInfo(l),h}var Mne={kernelName:ym,backendName:"webgl",kernelFunc:Rne},Pne=Da+` return -x; `,One=` vec4 result = -x; @@ -4094,7 +4094,7 @@ return a / b;`,Ane=` setOutput(newValue); } - `}},Aae=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let u=[a&&t>1?i-1:i,a&&n>1?o-1:o],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d;r?d="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":d="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}},$ae=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let u=[a&&t>1?i-1:i,a&&n>1?o-1:o],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d;r?d="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":d="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec3 effectiveInputOverOutputRatioRC = vec3( ${u[0]/p[0]}, ${u[1]/p[1]}, @@ -4171,7 +4171,7 @@ return a / b;`,Ane=` setOutput(newValue); } - `}};function $ae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=H().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new Aae(r.shape,l,u,s,i):new Eae(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],"float32")}var Fae={kernelName:Zi,backendName:"webgl",kernelFunc:$ae},Dae=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],u=o[0]/l[0],p=o[1]/l[1],d=1/u,c=1/p,h=Math.ceil(d)*2+2,m=Math.ceil(c)*2+2;this.userCode=` + `}};function Aae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=H().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new $ae(r.shape,l,u,s,i):new Eae(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],"float32")}var Fae={kernelName:Zi,backendName:"webgl",kernelFunc:Aae},Dae=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],u=o[0]/l[0],p=o[1]/l[1],d=1/u,c=1/p,h=Math.ceil(d)*2+2,m=Math.ceil(c)*2+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -4558,11 +4558,11 @@ return a / b;`,Ane=` result = log(exp_x + 1.0); } return result; -`,Nre=Ye({opSnippet:Tre}),Cre={kernelName:fu,backendName:"webgl",kernelFunc:Nre},_re=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a;v.assert(r.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((y,b)=>y*b),l=[[0,0]];l.push(...i);for(let y=1+s.length;yn.disposeIntermediateTensorInfo(y)),g},Ere={kernelName:gu,backendName:"webgl",kernelFunc:_re};function Are(e){let{inputs:t,backend:n}=e,{indices:a,values:r,denseShape:s,defaultValue:i}=t;if(s.shape.length!==1)throw new Error(`Dense shape must be a vector, saw: +`,Nre=Ye({opSnippet:Tre}),Cre={kernelName:fu,backendName:"webgl",kernelFunc:Nre},_re=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a;v.assert(r.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((y,b)=>y*b),l=[[0,0]];l.push(...i);for(let y=1+s.length;yn.disposeIntermediateTensorInfo(y)),g},Ere={kernelName:gu,backendName:"webgl",kernelFunc:_re};function $re(e){let{inputs:t,backend:n}=e,{indices:a,values:r,denseShape:s,defaultValue:i}=t;if(s.shape.length!==1)throw new Error(`Dense shape must be a vector, saw: ${s.shape}`);if(a.shape.length!==2)throw new Error(`Indices must be a matrix, saw: ${a.shape}`);if(r.shape.length!==1)throw new Error(`Values must be a vector, saw: ${r.shape}`);if(i.shape.length!==0)throw new Error(`Default value must be a scalar, saw: - ${i.shape}`);let o=n.readSync(a.dataId),l=n.readSync(r.dataId),u=n.readSync(s.dataId),p=n.readSync(i.dataId)[0],[d,c,h,m,f]=w7(o,a.shape,a.dtype,l,r.dtype,u,p);return[n.makeTensorInfo(c,a.dtype,d),n.makeTensorInfo([c[0]],r.dtype,h),n.makeTensorInfo([m.length],"bool",new Uint8Array(m.map(g=>Number(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var $re={kernelName:mc,backendName:"webgl",kernelFunc:Are};function Fre(e){let{inputs:t,backend:n}=e,{inputIndices:a,inputShape:r,newShape:s}=t;if(a.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${a.shape}`);if(r.shape.length!==1)throw new Error(`Input shape should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(n.readSync(r.dataId)),o=n.readSync(a.dataId),l=Array.from(n.readSync(s.dataId)),[u,p,d]=k7(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var Dre={kernelName:bu,backendName:"webgl",kernelFunc:Fre};function Rre(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${i.shape}`);let o=n.readSync(a.dataId),l=n.readSync(r.dataId),u=n.readSync(s.dataId),p=n.readSync(i.dataId)[0],[d,c,h,m,f]=w7(o,a.shape,a.dtype,l,r.dtype,u,p);return[n.makeTensorInfo(c,a.dtype,d),n.makeTensorInfo([c[0]],r.dtype,h),n.makeTensorInfo([m.length],"bool",new Uint8Array(m.map(g=>Number(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var Are={kernelName:mc,backendName:"webgl",kernelFunc:$re};function Fre(e){let{inputs:t,backend:n}=e,{inputIndices:a,inputShape:r,newShape:s}=t;if(a.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${a.shape}`);if(r.shape.length!==1)throw new Error(`Input shape should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(n.readSync(r.dataId)),o=n.readSync(a.dataId),l=Array.from(n.readSync(s.dataId)),[u,p,d]=k7(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var Dre={kernelName:bu,backendName:"webgl",kernelFunc:Fre};function Rre(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape ${s.shape}`);let i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=z_(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var Mre={kernelName:fc,backendName:"webgl",kernelFunc:Rre};function Pre(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape @@ -4576,7 +4576,7 @@ return a / b;`,Ane=` ${s} coords = getOutputCoords(); setOutput(getX(${i})); } - `}};function Jre(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a,{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:y,begin:b,end:x,strides:w}=jt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=de({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||y){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let C=jt.computeOutShape(b,x,w),E=Gu({inputs:{x:r},backend:n,attrs:{begin:b,size:C}});I=de({inputs:{x:E},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(E)}else if(n.shouldExecuteOnCPU([r])){let C=n.readSync(r.dataId),E=Pe(r.shape,r.dtype,C),A=S7(h,E,w,b);I=n.makeTensorInfo(m,r.dtype,A.values)}else{let C=new Zre(b,w,h);I=n.runWebGLProgram(C,[r],r.dtype)}let T=de({inputs:{x:I},backend:n,attrs:{shape:m}});return n.disposeIntermediateTensorInfo(I),T}var Qre={kernelName:xu,backendName:"webgl",kernelFunc:Jre};function ese(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.readSync(p.dataId),h=n.readSync(d.dataId),[m,f]=T7(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var tse={kernelName:bc,backendName:"webgl",kernelFunc:ese};function nse(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let o=n.readSync(s.dataId),l=n.readSync(i.dataId)[0],[u,p,d]=N7(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var ase={kernelName:xc,backendName:"webgl",kernelFunc:nse};function rse(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.readSync(s.dataId),o=C7(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var sse={kernelName:vc,backendName:"webgl",kernelFunc:rse},ise="return tan(x);",ose=Ye({opSnippet:ise}),lse={kernelName:uo,backendName:"webgl",kernelFunc:ose},use=` + `}};function Jre(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a,{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:y,begin:b,end:x,strides:w}=jt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=de({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||y){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let C=jt.computeOutShape(b,x,w),E=Gu({inputs:{x:r},backend:n,attrs:{begin:b,size:C}});I=de({inputs:{x:E},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(E)}else if(n.shouldExecuteOnCPU([r])){let C=n.readSync(r.dataId),E=Pe(r.shape,r.dtype,C),$=S7(h,E,w,b);I=n.makeTensorInfo(m,r.dtype,$.values)}else{let C=new Zre(b,w,h);I=n.runWebGLProgram(C,[r],r.dtype)}let T=de({inputs:{x:I},backend:n,attrs:{shape:m}});return n.disposeIntermediateTensorInfo(I),T}var Qre={kernelName:xu,backendName:"webgl",kernelFunc:Jre};function ese(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.readSync(p.dataId),h=n.readSync(d.dataId),[m,f]=T7(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var tse={kernelName:bc,backendName:"webgl",kernelFunc:ese};function nse(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let o=n.readSync(s.dataId),l=n.readSync(i.dataId)[0],[u,p,d]=N7(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var ase={kernelName:xc,backendName:"webgl",kernelFunc:nse};function rse(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.readSync(s.dataId),o=C7(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var sse={kernelName:vc,backendName:"webgl",kernelFunc:rse},ise="return tan(x);",ose=Ye({opSnippet:ise}),lse={kernelName:uo,backendName:"webgl",kernelFunc:ose},use=` float e2x = exp(-2.0 * abs(x)); return sign(x) * (1.0 - e2x) / (1.0 + e2x); `,pse=Ye({opSnippet:use}),cse={kernelName:po,backendName:"webgl",kernelFunc:pse},dse=class{constructor(e,t){this.variableNames=["A"];let n=new Array(e.length);for(let s=0;s= x1 ? float(i0) : float(i1)); } - `}};function Os(e,t){t!==null&&e.disposeIntermediateTensorInfo(t)}function mI(e){let t=1;for(;tl){let A=n.readSync(r.dataId),[R,F]=A7(A,u,r.dtype,s,i);return[n.makeTensorInfo(R.shape,R.dtype,R.values),n.makeTensorInfo(F.shape,F.dtype,F.values)]}if(s===0)return u[u.length-1]=0,[n.makeTensorInfo(u,r.dtype,[]),n.makeTensorInfo(u,"int32",[])];if(p===1)return[r,sd({attrs:{shape:u,dtype:"int32",value:0},backend:n})];let d=n.texData.get(r.dataId),c=d!==null&&d.isPacked,h=c?n.unpackTensor(r):r,m=v.sizeFromShape(u)/p,f=de({inputs:{x:h},attrs:{shape:[m,p]},backend:n});c&&Os(n,h);let g=mI(s),y=mI(p),b=null,x=()=>b===null?[f,f]:[f,b],w=(A,R,F)=>{let S=x(),M=new fse(F),B=[[p],[b===null?1:0],[Number.NEGATIVE_INFINITY],[A],[R]],U=b;b=n.runWebGLProgram(M,S,"int32",B),Os(n,U)};for(let A=1;A=1;F/=2)w(R,F,[m,y])}for(let A=y;A>g;A/=2){let R=x(),F=new gse([m,A/2]),S=[[p],[b===null?1:0],[g]],M=b;b=n.runWebGLProgram(F,R,"int32",S),Os(n,M);let B=g/2,U=B*2;for(let G=B;G>=1;G/=2)w(U,G,b.shape)}let I=b;b=Gu({inputs:{x:b},backend:n,attrs:{begin:0,size:[m,s]}}),Os(n,I);let T=uE({inputs:{x:f,indices:b},backend:n,attrs:{axis:1,batchDims:1}});Os(n,f);let C=u.slice(0,-1);C.push(s),I=b,b=de({inputs:{x:b},attrs:{shape:C},backend:n}),Os(n,I);let E=T;return T=de({inputs:{x:T},attrs:{shape:C},backend:n}),Os(n,E),[T,b]}var bse={kernelName:vu,backendName:"webgl",kernelFunc:yse},xse=class{constructor(e,t,n,a,r,s){this.variableNames=["Image","Transforms"],this.outputShape=s;let i=n==="nearest"?1:2,o;switch(a){case"constant":o=1;break;case"reflect":o=2;break;case"wrap":o=3;break;case"nearest":o=4;break;default:o=1;break}this.userCode=` + `}};function Os(e,t){t!==null&&e.disposeIntermediateTensorInfo(t)}function mI(e){let t=1;for(;tl){let $=n.readSync(r.dataId),[R,F]=$7($,u,r.dtype,s,i);return[n.makeTensorInfo(R.shape,R.dtype,R.values),n.makeTensorInfo(F.shape,F.dtype,F.values)]}if(s===0)return u[u.length-1]=0,[n.makeTensorInfo(u,r.dtype,[]),n.makeTensorInfo(u,"int32",[])];if(p===1)return[r,sd({attrs:{shape:u,dtype:"int32",value:0},backend:n})];let d=n.texData.get(r.dataId),c=d!==null&&d.isPacked,h=c?n.unpackTensor(r):r,m=v.sizeFromShape(u)/p,f=de({inputs:{x:h},attrs:{shape:[m,p]},backend:n});c&&Os(n,h);let g=mI(s),y=mI(p),b=null,x=()=>b===null?[f,f]:[f,b],w=($,R,F)=>{let S=x(),M=new fse(F),B=[[p],[b===null?1:0],[Number.NEGATIVE_INFINITY],[$],[R]],U=b;b=n.runWebGLProgram(M,S,"int32",B),Os(n,U)};for(let $=1;$=1;F/=2)w(R,F,[m,y])}for(let $=y;$>g;$/=2){let R=x(),F=new gse([m,$/2]),S=[[p],[b===null?1:0],[g]],M=b;b=n.runWebGLProgram(F,R,"int32",S),Os(n,M);let B=g/2,U=B*2;for(let G=B;G>=1;G/=2)w(U,G,b.shape)}let I=b;b=Gu({inputs:{x:b},backend:n,attrs:{begin:0,size:[m,s]}}),Os(n,I);let T=uE({inputs:{x:f,indices:b},backend:n,attrs:{axis:1,batchDims:1}});Os(n,f);let C=u.slice(0,-1);C.push(s),I=b,b=de({inputs:{x:b},attrs:{shape:C},backend:n}),Os(n,I);let E=T;return T=de({inputs:{x:T},attrs:{shape:C},backend:n}),Os(n,E),[T,b]}var bse={kernelName:vu,backendName:"webgl",kernelFunc:yse},xse=class{constructor(e,t,n,a,r,s){this.variableNames=["Image","Transforms"],this.outputShape=s;let i=n==="nearest"?1:2,o;switch(a){case"constant":o=1;break;case"reflect":o=2;break;case"wrap":o=3;break;case"nearest":o=4;break;default:o=1;break}this.userCode=` float mapCoord(float outCoord, float len) { float inCoord = outCoord; if(${o} == 2) { @@ -4770,7 +4770,7 @@ return a / b;`,Ane=` } setOutput(outputValue); } - `}};function vse(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],y=new xse(d,c,i,o,l,g);return n.runWebGLProgram(y,[r,s],"float32")}var wse={kernelName:wu,backendName:"webgl",kernelFunc:vse};function kse(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;Lu(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=a.readSync(s.dataId),{outputValues:o,outputShape:l,indices:u}=$7(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([u.length],"int32",u)]}var Ise={kernelName:Nm,backendName:"webgl",kernelFunc:kse};function Sse(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r,o=i.shape.length,l=r.shape[s],u=new Array(o-1),p=0;for(let f=0;fn.disposeIntermediateTensorInfo(f)),m}var Tse={kernelName:ku,backendName:"webgl",kernelFunc:Sse},Nse=class{constructor(e,t){this.variableNames=["x","segmentIds"];let n=e.windowSize,a=e.batchSize,r=e.inSize,s=e.numSegments,i=s*Math.ceil(r/n);this.outputShape=[a,i];let o="0.0",l="sumValue",u=Math.floor(n/4)*4,p=n%4,d=` + `}};function vse(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],y=new xse(d,c,i,o,l,g);return n.runWebGLProgram(y,[r,s],"float32")}var wse={kernelName:wu,backendName:"webgl",kernelFunc:vse};function kse(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;Lu(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=a.readSync(s.dataId),{outputValues:o,outputShape:l,indices:u}=A7(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([u.length],"int32",u)]}var Ise={kernelName:Nm,backendName:"webgl",kernelFunc:kse};function Sse(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r,o=i.shape.length,l=r.shape[s],u=new Array(o-1),p=0;for(let f=0;fn.disposeIntermediateTensorInfo(f)),m}var Tse={kernelName:ku,backendName:"webgl",kernelFunc:Sse},Nse=class{constructor(e,t){this.variableNames=["x","segmentIds"];let n=e.windowSize,a=e.batchSize,r=e.inSize,s=e.numSegments,i=s*Math.ceil(r/n);this.outputShape=[a,i];let o="0.0",l="sumValue",u=Math.floor(n/4)*4,p=n%4,d=` sumValue += dot(values, segFilter); `,c="";r%n>0&&(c=` if (inIdx < 0 || inIdx >= ${r}) { @@ -4876,7 +4876,7 @@ return a / b;`,Ane=` } setOutput(${l}); } - `}};function Cse(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,segmentIds:s}=t,{numSegments:i}=a,o=r.shape.length,l=[],u=0,p=N.getAxesPermutation([u],o),d=r;p!=null&&(d=In({inputs:{x:r},backend:n,attrs:{perm:p}}),l.push(d),u=N.getInnerMostAxes(1,o)[0]);let c=N.segment_util.computeOutShape(d.shape,u,i),h=v.sizeFromShape([d.shape[u]]),m=de({inputs:{x:d},backend:n,attrs:{shape:[-1,h]}});l.push(m);let f=_m(r.dtype),g=(w,I,T,C,E)=>{let A=w.shape[0],R=w.shape[1],F=N.segment_util.segOpComputeOptimalWindowSize(R,E),S={windowSize:F,inSize:R,batchSize:A,numSegments:E},M=new Nse(S,I),B=n.compileAndRun(M,[w,T],C);if(l.push(B),B.shape[1]===E)return B;let U=gE({backend:n,attrs:{start:0,stop:E,step:1,dtype:"float32"}}),G=bE({inputs:{x:U},backend:n,attrs:{reps:[R/F]}});return l.push(U),l.push(G),g(B,I,G,C,E)},y=g(m,"unsortedSegmentSum",s,f,i),b=de({inputs:{x:y},backend:n,attrs:{shape:c}}),x=b;if(p!=null){l.push(b);let w=N.getUndoAxesPermutation(p);x=In({inputs:{x},backend:n,attrs:{perm:w}})}return l.forEach(w=>n.disposeIntermediateTensorInfo(w)),x}var _se={kernelName:wc,backendName:"webgl",kernelFunc:Cse},Ese=[SJ,NJ,EJ,FJ,RJ,OJ,zJ,BJ,HJ,qJ,YJ,QJ,n9,i9,u9,c9,h9,y9,x9,w9,T9,F9,R9,P9,V9,G9,K9,oJ,Z9,nQ,iQ,dQ,mQ,gQ,bQ,vQ,IQ,NQ,EQ,$Q,DQ,MQ,LQ,WQ,GQ,jQ,XQ,JQ,eee,ree,lee,dee,fee,bee,xee,wee,Iee,Tee,Cee,Eee,Dee,Pee,zee,Bee,Gee,qee,Zee,tte,iJ,ate,eQ,ite,ute,dte,uJ,gte,vte,kte,Nte,Ete,Dte,Pte,Wte,Gte,qte,Xte,Qte,tne,ane,one,une,cne,hne,fne,xne,Ine,Cne,Mne,dJ,zne,Vne,Hne,Kne,L9,Zne,Qne,tae,rae,lae,cJ,pae,dae,mae,gae,yae,z9,$ne,vae,Sae,_ae,mJ,Fae,Mae,zae,Vae,jae,Kae,Zae,ere,nre,sre,lre,cre,fre,bre,wre,Sre,A9,Dne,Cre,Ere,$re,Dre,Mre,Ore,zre,Bre,Ure,jre,Kre,Yre,Qre,tse,ase,sse,Fne,wJ,lse,cse,mse,bse,wse,kJ,Ise,Tse,_se,Jne];for(let e of Ese)kc(e);var Et;(function(e){e[e.float32=0]="float32",e[e.int32=1]="int32",e[e.bool=2]="bool",e[e.string=3]="string",e[e.complex64=4]="complex64"})(Et||(Et={}));var ac;(function(e){e[e.linear=0]="linear",e[e.relu=1]="relu",e[e.relu6=2]="relu6",e[e.prelu=3]="prelu",e[e.leakyrelu=4]="leakyrelu",e[e.sigmoid=5]="sigmoid",e[e.elu=6]="elu"})(ac||(ac={}));var xE;function Ase(e){xE=e.wasm.cwrap(Js,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function $se(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:l,transposeB:u,activation:p,leakyreluAlpha:d}=a,c=n.dataIdMap.get(r.dataId).id,h=n.dataIdMap.get(s.dataId).id,m=0;if(i!=null){let E=n.dataIdMap.get(i.dataId);if(E.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${E.shape.length}.`);m=E.id}let f=o==null?0:n.dataIdMap.get(o.dataId).id,g=ac[p];if(g==null)throw new Error(`${p} activation not yet supported for FusedConv2D in the wasm backend.`);let y=l?r.shape[2]:r.shape[1],b=u?s.shape[1]:s.shape[2],x=Tu.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)),w=n.makeOutput([...x,y,b],r.dtype),I=n.dataIdMap.get(w.dataId).id,T=new Uint8Array(new Int32Array(r.shape).buffer),C=new Uint8Array(new Int32Array(s.shape).buffer);return xE(c,T,r.shape.length,h,C,s.shape.length,l,u,g,m,f,d||0,I),w}var Fse={kernelName:Js,backendName:"wasm",setupFunc:Ase,kernelFunc:$se};function an(e,t){let n;function a(s){n=s.wasm.cwrap(e,null,["number","number","number"])}function r(s){let{backend:i,inputs:{x:o}}=s,l=i.dataIdMap.get(o.dataId).id,u=i.makeOutput(o.shape,t||o.dtype),p=i.dataIdMap.get(u.dataId).id;return v.sizeFromShape(u.shape)===0||n(l,Et[o.dtype],p),u}return{kernelName:e,backendName:"wasm",setupFunc:a,kernelFunc:r}}var Dse=an(wl);function cn(e,t,n){let a;function r(i){a=i.wasm.cwrap(e,null,["number","array","number","number","array","number","number","number"])}function s(i){let{backend:o,inputs:l}=i,{a:u,b:p}=l,d=o.dataIdMap.get(u.dataId).id,c=o.dataIdMap.get(p.dataId).id,h=n!=null?n:u.dtype,m=N.assertAndGetBroadcastShape(u.shape,p.shape),f=o.makeOutput(m,h);if(v.sizeFromShape(m)===0)return f;let g=new Uint8Array(new Int32Array(u.shape).buffer),y=new Uint8Array(new Int32Array(p.shape).buffer),b=o.dataIdMap.get(f.dataId).id;return a(d,g,u.shape.length,c,y,p.shape.length,Et[u.dtype],b),f}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var Rse=!0,Mse=cn(cs,Rse),vE;function Pse(e){vE=e.wasm.cwrap(mi,null,["array","number","number","number"])}function Ose(e){let{inputs:t,backend:n}=e,a=n.makeOutput(t[0].shape,t[0].dtype);if(v.sizeFromShape(a.shape)===0)return a;let r=t.map(o=>n.dataIdMap.get(o.dataId).id),s=new Uint8Array(new Int32Array(r).buffer),i=n.dataIdMap.get(a.dataId).id;return vE(s,r.length,Et[a.dtype],i),a}var Lse={kernelName:mi,backendName:"wasm",setupFunc:Pse,kernelFunc:Ose};function Lf(e){let{inputs:{x:t},backend:n}=e;if(t.dtype==="string")return kn(n.readSync(t.dataId),t.shape,t.dtype);let a=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(a).set(r),a}var zse={kernelName:Di,backendName:"wasm",kernelFunc:Lf},wE;function Wse(e){wE=e.wasm.cwrap(Tr,null,["number","array","number","number","number","array","number"])}function ls(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=Vse(t.x.shape,a.perm),i=!0;for(let m=0;m=r&&(s===-1||a[s]>a[i])&&(s=i);a[s]=r}return[n,a]}var Use={kernelName:Tr,backendName:"wasm",kernelFunc:ls,setupFunc:Wse};function Ss(e,t,n){let a=e.shape,r=e.shape.length,s=v.parseAxisParam(t,a),i=s,o=N.getAxesPermutation(i,r),l=null,u=!1;if(o!=null){let p=new Array(r);for(let c=0;c`new shape: ${i}, old shape: ${a.shape}. New shape and old shape must have the same number of elements.`),e.backend.incRef(a.dataId),{dataId:a.dataId,shape:i,dtype:a.dtype}}var nie={kernelName:lu,backendName:"wasm",kernelFunc:Wn},NE;function aie(e){NE=e.wasm.cwrap(yi,null,["number","array","number","number","array","number","number","number","number"])}function rie(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let l=r.shape.length,u=s.shape.length,p=i?r.shape[l-2]:r.shape[l-1],d=o?s.shape[u-1]:s.shape[u-2],c=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[u-2]:s.shape[u-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=v.sizeFromShape(m),y=v.sizeFromShape(f),b=Tu.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);v.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,p,c]:[g,c,p],w=o?[y,h,d]:[y,d,h],I=Wn({inputs:{x:r},backend:n,attrs:{shape:x}}),T=Wn({inputs:{x:s},backend:n,attrs:{shape:w}}),C=n.dataIdMap.get(I.dataId).id,E=n.dataIdMap.get(T.dataId).id,A=i?I.shape[2]:I.shape[1],R=o?T.shape[1]:T.shape[2],F=Math.max(g,y),S=n.makeOutput([F,A,R],I.dtype),M=n.dataIdMap.get(S.dataId).id,B=new Uint8Array(new Int32Array(I.shape).buffer),U=new Uint8Array(new Int32Array(T.shape).buffer);return NE(C,B,I.shape.length,E,U,T.shape.length,i,o,M),n.disposeData(I.dataId),n.disposeData(T.dataId),S.shape=b,S}var sie={kernelName:yi,backendName:"wasm",setupFunc:aie,kernelFunc:rie};function di(e){let{inputs:{x:t},attrs:{begin:n,size:a},backend:r}=e,[s,i]=jt.parseSliceParams(t,n,a),o=jt.isSliceContinous(t.shape,s,i),l=r.readSync(t.dataId),u=r.makeOutput(i,t.dtype),p=v.computeStrides(t.shape),d=r.dataIdMap.get(u.dataId);if(o){let m=jt.computeFlatOffset(s,p);return t.dtype==="string"?d.stringBytes=l.slice(m,m+v.sizeFromShape(i)):r.typedArrayFromHeap(u).set(l.subarray(m,m+v.sizeFromShape(i))),u}if(t.dtype==="string"){let m=Oh(l,s,i,t.shape,t.dtype);return d.stringBytes=m,u}let c=r.typedArrayFromHeap(u),h=t.shape.length;if(h===2)iie(l,p[0],c,s,i);else if(h===3)oie(l,p[0],p[1],c,s,i);else if(h===4)lie(l,p[0],p[1],p[2],c,s,i);else{let m=Oh(l,s,i,t.shape,t.dtype);c.set(m)}return u}function iie(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let u=i;uy*b),l=N.getReshaped(r.shape,s,o),u=N.getPermuted(l.length,s.length),p=N.getReshapedPermuted(r.shape,s,o),d=N.getSliceBeginCoords(i,s.length),c=N.getSliceSize(p,i,s.length),h=Wn({inputs:{x:r},backend:n,attrs:{shape:l}}),m=ls({inputs:{x:h},backend:n,attrs:{perm:u}}),f=Wn({inputs:{x:m},backend:n,attrs:{shape:p}}),g=di({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeData(h.dataId),n.disposeData(m.dataId),n.disposeData(h.dataId),g}var cie={kernelName:$l,backendName:"wasm",kernelFunc:pie};function Hu(e){let{inputs:{x:t},attrs:{dtype:n},backend:a}=e,r=a.makeOutput(t.shape,n),s=a.typedArrayFromHeap(t);return a.typedArrayFromHeap(r).set(s),r}var die={kernelName:bi,backendName:"wasm",kernelFunc:Hu},hie=an(xi),CE;function mie(e){CE=e.wasm.cwrap(ds,null,["number","number","number","number"])}function fie(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o=n.dataIdMap.get(r.dataId).id,l=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(l.dataId).id;return CE(o,s,i,u),l}var gie={kernelName:ds,backendName:"wasm",setupFunc:mie,kernelFunc:fie};function _E(e){let{inputs:t,backend:n}=e,a=v.parseAxisParam(e.attrs.axis,t[0].shape)[0],r=t.map(h=>h.shape);N.assertParamsConsistent(r,a);let s=N.computeOutShape(t.map(h=>h.shape),a),i=t.filter(h=>v.sizeFromShape(h.shape)>0);if(i.length===1)return Lf({inputs:{x:i[0]},backend:n});let o=n.makeOutput(s,t[0].dtype);if(v.sizeFromShape(s)===0)return o;if(i[0].dtype==="string"){let h=i.map(x=>{let w=v.sizeFromShape(x.shape.slice(a));return Wn({inputs:{x},backend:n,attrs:{shape:[-1,w]}})}),m=h.map(x=>({vals:n.readSync(x.dataId),shape:x.shape}));s=N.computeOutShape(h.map(x=>x.shape),1);let f=h[0].shape[0]===1,g=E0(m,s,t[0].dtype,f),y=N.computeOutShape(i.map(x=>x.shape),a);o.shape=y;let b=n.dataIdMap.get(o.dataId);return b.stringBytes=N.fromStringArrayToUint8(g),h.forEach(x=>n.disposeData(x.dataId)),o}let l=v.sizeFromShape(i[0].shape.slice(0,a)),u=0,p=i.map(h=>{let m=v.sizeFromShape(h.shape.slice(a));return u+=m,m}),d=i.map(h=>n.typedArrayFromHeap(h)),c=n.typedArrayFromHeap(o);for(let h=0;h`cumprod does not support ${r.dtype} tensors in the WASM backend`);let u=N.getAxesPermutation([s],l),p=r;u!==null&&(p=ls({inputs:{x:r},attrs:{perm:u},backend:n}));let d=N.getInnerMostAxes(1,l)[0];N.assertAxesAreInnerMostDims("cumprod",[d],l);let c=n.makeOutput(p.shape,p.dtype),h=p.shape[d],m=n.dataIdMap.get(p.dataId).id,f=n.dataIdMap.get(c.dataId).id;FE(m,i?1:0,o?1:0,h,f,Et[r.dtype]);let g=c;if(u!==null){let y=N.getUndoAxesPermutation(u);g=ls({inputs:{x:c},attrs:{perm:y},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var $ie={kernelName:Dl,backendName:"wasm",setupFunc:Eie,kernelFunc:Aie},DE;function Fie(e){DE=e.wasm.cwrap(Si,null,["number","number","number","number","number","number"])}function Die(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a,l=r.shape.length;v.assert(r.dtype==="float32"||r.dtype==="int32",()=>`cumsum does not support ${r.dtype} tensors in the WASM backend`);let u=N.getAxesPermutation([s],l),p=r;u!==null&&(p=ls({inputs:{x:r},attrs:{perm:u},backend:n}));let d=N.getInnerMostAxes(1,l)[0];N.assertAxesAreInnerMostDims("cumsum",[d],l);let c=n.makeOutput(p.shape,p.dtype),h=p.shape[d],m=n.dataIdMap.get(p.dataId).id,f=n.dataIdMap.get(c.dataId).id;DE(m,i?1:0,o?1:0,h,f,Et[r.dtype]);let g=c;if(u!==null){let y=N.getUndoAxesPermutation(u);g=ls({inputs:{x:c},attrs:{perm:y},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Rie={kernelName:Si,backendName:"wasm",setupFunc:Fie,kernelFunc:Die},RE;function Mie(e){RE=e.wasm.cwrap(Ml,null,["number","number","number","array","number","array","array","number","number"])}function Pie(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{blockSize:s,dataFormat:i}=a,o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],u=i==="NHWC"?r.shape[2]:r.shape[3],p=i==="NHWC"?r.shape[3]:r.shape[1],d=l*s,c=u*s,h=p/(s*s),m=i==="NHWC"?[o,d,c,h]:[o,h,d,c],f=t.makeOutput(m,"float32"),g=t.dataIdMap.get(r.dataId).id,y=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),b=new Uint8Array(new Int32Array(m).buffer),x=new Uint8Array(new Int32Array(v.computeStrides(m)).buffer),w=t.dataIdMap.get(f.dataId).id;return RE(g,s,i==="NHWC"?1:0,y,r.shape.length-1,b,x,m.length,w),f}var Oie={kernelName:Ml,backendName:"wasm",setupFunc:Mie,kernelFunc:Pie},ME;function Lie(e){ME=e.wasm.cwrap(Ti,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function zie(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s}=t,i=a.dataIdMap.get(r.dataId).id,o=a.dataIdMap.get(s.dataId).id,{strides:l,dilations:u,pad:p,dimRoundingMode:d}=n,c=u==null?[1,1]:u,h=N.computeConv2DInfo(r.shape,s.shape,l,c,p,d,!0),m=h.filterHeight,f=h.filterWidth,g=h.padInfo.top,y=h.padInfo.right,b=h.padInfo.bottom,x=h.padInfo.left,w=h.dilationHeight,I=h.dilationWidth,T=h.strideHeight,C=h.strideWidth,E=h.inChannels,A=h.outChannels,R=h.padInfo.type==="SAME"?1:0;if(h.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${h.dataFormat}'. Please use 'channelsLast'.`);let F=a.makeOutput(h.outShape,"float32"),S=a.dataIdMap.get(F.dataId).id;return ME(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,y,b,x,R,w,I,T,C,E,A,S),F}var Wie={kernelName:Ti,backendName:"wasm",setupFunc:Lie,kernelFunc:zie},Bie=an(Ci),Vie=!1,Uie=cn(Ol,Vie,"bool"),Gie=an(_i,"float32");function mx(e){let{inputs:t,attrs:n,backend:a}=e,{input:r}=t,{dim:s}=n,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(v.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),Wn({inputs:{x:r},backend:a,attrs:{shape:o}})}var Hie={kernelName:Ll,backendName:"wasm",kernelFunc:mx};function PE(e){let{attrs:{shape:t,value:n,dtype:a},backend:r}=e,s=r.makeOutput(t,a);return r.typedArrayFromHeap(s).fill(n),s}var jie={kernelName:pc,backendName:"wasm",kernelFunc:PE},OE;function qie(e){OE=e.wasm.cwrap(Wl,null,["number","number","number","number","number","number"])}function Kie(e){let{inputs:t,backend:n}=e,{image:a}=t,r=n.makeOutput(a.shape,a.dtype),s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,[o,l,u,p]=a.shape;return OE(s,o,l,u,p,i),r}var Xie={kernelName:Wl,backendName:"wasm",kernelFunc:Kie,setupFunc:qie},Yie=an(Ei),Zie=!1,Jie=cn(Ai,Zie),LE;function Qie(e){LE=e.wasm.cwrap($i,null,["number","number","number","number","number","number","number"])}function eoe(e){let{backend:t,inputs:n,attrs:a}=e,{varianceEpsilon:r}=a,{x:s,mean:i,variance:o,offset:l,scale:u}=n,p=t.dataIdMap.get(s.dataId).id,d=t.dataIdMap.get(i.dataId).id,c=t.dataIdMap.get(o.dataId).id,h=l!=null?t.dataIdMap.get(l.dataId).id:0,m=u!=null?t.dataIdMap.get(u.dataId).id:0,f=t.makeOutput(s.shape,s.dtype);if(v.sizeFromShape(s.shape)===0)return f;let g=t.dataIdMap.get(f.dataId).id;return LE(p,d,c,h,m,r,g),f}var toe={kernelName:$i,backendName:"wasm",setupFunc:Qie,kernelFunc:eoe},zE;function noe(e){zE=e.wasm.cwrap(Qs,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function aoe(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dataFormat:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=n,f=N.computeConv2DInfo(r.shape,s.shape,l,p,u,c),g=ac[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,x=f.outChannels,w=0;if(i!=null){let te=a.dataIdMap.get(i.dataId);if(te.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${te.shape.length}.`);if(te.shape[0]!==x)throw new Error(`FusedConv2D bias shape (${te.shape}) does not match the number of output channels (${x})`);w=te.id}let I=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,E=f.padInfo.right,A=f.padInfo.bottom,R=f.padInfo.left,F=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,G=f.padInfo.type==="SAME"?1:0,q=f.batchSize,K=f.inHeight,Z=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let Q=a.makeOutput(f.outShape,"float32"),ee=a.dataIdMap.get(Q.dataId).id,ae=o==null?0:a.dataIdMap.get(o.dataId).id;return zE(y,q,K,Z,b,I,T,w,C,E,A,R,G,F,S,M,B,U,x,g,ae,m||0,ee),Q}var roe={kernelName:Qs,backendName:"wasm",setupFunc:noe,kernelFunc:aoe},WE;function soe(e){WE=e.wasm.cwrap(ei,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ioe(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dataFormat:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=n,f=N.computeConv2DInfo(r.shape,s.shape,l,p,u,c,!0),g=ac[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,x=f.outChannels,w=0;if(i!=null){let te=a.dataIdMap.get(i.dataId);if(te.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${te.shape.length}.`);if(te.shape[0]!==x)throw new Error(`FusedDepthwiseConv2D bias shape (${te.shape}) does not match the number of output channels (${x})`);w=te.id}let I=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,E=f.padInfo.right,A=f.padInfo.bottom,R=f.padInfo.left,F=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,G=f.padInfo.type==="SAME"?1:0,q=f.batchSize,K=f.inHeight,Z=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let Q=a.makeOutput(f.outShape,"float32"),ee=a.dataIdMap.get(Q.dataId).id,ae=o==null?0:a.dataIdMap.get(o.dataId).id;return WE(y,q,K,Z,b,I,T,w,C,E,A,R,G,F,S,M,B,U,x,g,ae,m||0,ee),Q}var ooe={kernelName:ei,backendName:"wasm",setupFunc:soe,kernelFunc:ioe},BE;function loe(e){BE=e.wasm.cwrap(Vl,null,["number","number","number","number","number","number","array","number"])}function uoe(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=Mx.prepareAndValidate(a,r),u=t.makeOutput(s,a.dtype);if(i===0)return u;let p=r.shape,d=p[p.length-1],c=t.dataIdMap.get(a.dataId).id,h=t.dataIdMap.get(r.dataId).id,m=new Uint8Array(new Int32Array(l).buffer),f=t.dataIdMap.get(u.dataId).id;return BE(c,Et[a.dtype],h,i,d,o,m,f),u}var poe={kernelName:Vl,backendName:"wasm",setupFunc:loe,kernelFunc:uoe},VE;function coe(e){VE=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function doe(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,indices:s}=n,{axis:i,batchDims:o}=a,l=v.parseAxisParam(i,r.shape)[0],u=t.readSync(s.dataId),p=r.shape[l];for(let C=0;C=0,()=>`GatherV2: the index value ${E} is not in [0, ${p-1}]`)}let d=N.segment_util.collectGatherOpShapeInfo(r,s,l,o),c=Wn({inputs:{x:r},attrs:{shape:[d.batchSize,d.outerSize,d.dimSize,d.sliceSize]},backend:t}),h=v.sizeFromShape(s.shape),m=Wn({inputs:{x:s},attrs:{shape:[d.batchSize,h/d.batchSize]},backend:t}),f=[d.batchSize,d.outerSize,h/d.batchSize,d.sliceSize],g=t.makeOutput(f,r.dtype);if(v.sizeFromShape(r.shape)===0)return g;let y=c.shape.length-1,b=t.dataIdMap.get(c.dataId).id,x=t.dataIdMap.get(m.dataId).id,w=t.dataIdMap.get(g.dataId).id,I=new Uint8Array(new Int32Array(v.computeStrides(c.shape)).buffer),T=new Uint8Array(new Int32Array(v.computeStrides(f)).buffer);return VE(b,Et[r.dtype],I,y,x,d.batchSize,T,w),t.disposeData(c.dataId),t.disposeData(m.dataId),g.shape=d.outputShape,g}var hoe={kernelName:Bl,backendName:"wasm",setupFunc:coe,kernelFunc:doe},moe=!1,foe=cn(Ul,moe,"bool"),goe=!1,yoe=cn(Fi,goe,"bool"),UE;function boe(e){UE=e.wasm.cwrap(Ri,null,["number","number","number","number"])}function xoe(e){let{inputs:{x:t},attrs:{alpha:n},backend:a}=e,r=a.dataIdMap.get(t.dataId).id,s=a.makeOutput(t.shape,"float32");if(v.sizeFromShape(t.shape)!==0){let i=a.dataIdMap.get(s.dataId).id;UE(r,Et[t.dtype],n,i)}return s}var voe={kernelName:Ri,backendName:"wasm",setupFunc:boe,kernelFunc:xoe},woe=!1,koe=cn(ql,woe,"bool"),Ioe=!1,Soe=cn(Kl,Ioe,"bool"),Toe=an(Mi),Noe=!1,Coe=cn(Yl,Noe,"bool"),_oe=an(Zl),Eoe=!1,Aoe=cn(Jl,Eoe,"bool"),$oe=!1,Foe=cn(MI,$oe,"bool"),GE;function Doe(e){GE=e.wasm.cwrap(Pi,null,["number","number","number","number"])}function Roe(e){let{backend:t,inputs:n,attrs:a}=e,{reductionIndices:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:c}=Ss(i,r,t);if(c){let b=t.dataIdMap.get(u.dataId).id;l=u,o=b}let h=l.shape.length;N.assertAxesAreInnerMostDims("max",p,h);let[m,f]=N.computeOutAndReduceShapes(l.shape,p),g=v.sizeFromShape(f),y=t.makeOutput(m,i.dtype);if(v.sizeFromShape(l.shape)!==0){let b=t.dataIdMap.get(y.dataId).id;GE(o,Et[i.dtype],g,b)}if(c&&t.disposeData(u.dataId),s){let b=N.expandShapeToKeepDim(y.shape,d);y.shape=b}return y}var Moe={kernelName:Pi,backendName:"wasm",setupFunc:Doe,kernelFunc:Roe},Poe=!1,Ooe=cn(Oi,Poe),HE;function Loe(e){HE=e.wasm.cwrap(Li,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function zoe(e){let{inputs:t,attrs:n,backend:a}=e,r=t.x,s=a.dataIdMap.get(r.dataId).id;v.assert(r.dtype==="float32",()=>`Error in MaxPool: only float32 input is supported. Got ${r.dtype}.`);let{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=n,p=N.computePool2DInfo(r.shape,i,o,1,l,u),d=p.filterHeight,c=p.filterWidth,h=p.padInfo.top,m=p.padInfo.right,f=p.padInfo.bottom,g=p.padInfo.left,y=p.dilationHeight,b=p.dilationWidth,x=p.strideHeight,w=p.strideWidth,I=p.inChannels,T=p.outChannels;if(p.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${p.dataFormat}'. Please use 'channelsLast'.`);let C=a.makeOutput(p.outShape,"float32"),E=a.dataIdMap.get(C.dataId).id;return HE(s,r.shape[0],r.shape[1],r.shape[2],d,c,h,m,f,g,y,b,x,w,I,T,E),C}var Woe={kernelName:Li,backendName:"wasm",setupFunc:Loe,kernelFunc:zoe},jE;function Boe(e){jE=e.wasm.cwrap(zi,null,["number, number, number"])}function Voe(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Ss(i,r,t),m=d;if(h){let w=t.dataIdMap.get(p.dataId).id;w!==o&&(u=p,l=w,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("mean",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),y=v.sizeFromShape(g),b=u;u.dtype!=="float32"&&(b=Hu({backend:t,inputs:{x:u},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(b.dataId).id);let x=t.makeOutput(f,"float32");if(v.sizeFromShape(u.shape)!==0){let w=t.dataIdMap.get(x.dataId).id;jE(l,y,w)}if(h&&t.disposeData(p.dataId),s){let w=N.expandShapeToKeepDim(x.shape,c);x.shape=w}return u.dtype!=="float32"&&t.disposeData(b.dataId),x}var Uoe={kernelName:zi,backendName:"wasm",setupFunc:Boe,kernelFunc:Voe},qE;function Goe(e){qE=e.wasm.cwrap(Wi,null,["number","number","number","number"])}function Hoe(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Ss(i,r,t);if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x)}let m=u.shape.length;N.assertAxesAreInnerMostDims("min",d,m);let[f,g]=N.computeOutAndReduceShapes(u.shape,d),y=v.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;qE(l,Et[i.dtype],y,x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(b.shape,c);b.shape=x}return b}var joe={kernelName:Wi,backendName:"wasm",setupFunc:Goe,kernelFunc:Hoe},qoe=!1,Koe=cn(Bi,qoe),fx;(function(e){e[e.reflect=0]="reflect",e[e.symmetric=1]="symmetric"})(fx||(fx={}));var KE;function Xoe(e){KE=e.wasm.cwrap(Vi,null,["number","array","number","number","array","array","number","number"])}function Yoe(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,mode:r}}=e,s=a.map((m,f)=>m[0]+t.shape[f]+m[1]),i=n.dataIdMap.get(t.dataId).id,o=n.makeOutput(s,t.dtype),l=n.dataIdMap.get(o.dataId).id,u=new Uint8Array(new Int32Array(t.shape).buffer),p=a.map(m=>m[0]),d=a.map(m=>m[1]),c=new Uint8Array(new Int32Array(p).buffer),h=new Uint8Array(new Int32Array(d).buffer);return KE(i,u,t.shape.length,Et[t.dtype],c,h,fx[r],l),o}var Zoe={kernelName:Vi,backendName:"wasm",kernelFunc:Yoe,setupFunc:Xoe},Joe=!0,Qoe=cn(Ui,Joe),ele=an(eu);function t1(e,t){let n=new Int32Array(e.wasm.HEAPU8.buffer,t,4),a=n[0],r=n[1],s=n[2],i=n[3];return e.wasm._free(t),{pSelectedIndices:a,selectedSize:r,pSelectedScores:s,pValidOutputs:i}}var XE;function tle(e){XE=e.wasm.cwrap(nu,"number",["number","number","number","number","number"])}function nle(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i}=a,{boxes:o,scores:l}=n,u=t.dataIdMap.get(o.dataId).id,p=t.dataIdMap.get(l.dataId).id,d=XE(u,p,s,r,i),{pSelectedIndices:c,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=t1(t,d);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",c)}var ale={kernelName:nu,backendName:"wasm",setupFunc:tle,kernelFunc:nle},YE;function rle(e){YE=e.wasm.cwrap(au,"number",["number","number","number","number","number","bool"])}function sle(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:o}=a,{boxes:l,scores:u}=n,p=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,c=YE(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=t1(t,c);t.wasm._free(f);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([],"int32",g);return[y,b]}var ile={kernelName:au,backendName:"wasm",setupFunc:rle,kernelFunc:sle},ZE;function ole(e){ZE=e.wasm.cwrap(ru,"number",["number","number","number","number","number","number"])}function lle(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,softNmsSigma:o}=a,{boxes:l,scores:u}=n,p=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,c=ZE(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=t1(t,c);t.wasm._free(g);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([m],"float32",f);return[y,b]}var ule={kernelName:ru,backendName:"wasm",setupFunc:ole,kernelFunc:lle},ple=!1,cle=cn(tu,ple,"bool"),JE;function dle(e){JE=e.wasm.cwrap(Gi,null,["number","number","number","number","number"])}function hle(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=n.makeOutput([...r.shape,i],s),p=n.dataIdMap.get(u.dataId).id,d=n.dataIdMap.get(r.dataId).id;return JE(d,i,o,l,p),u}var mle={kernelName:Gi,backendName:"wasm",setupFunc:dle,kernelFunc:hle};function fle(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var gle={kernelName:su,backendName:"wasm",kernelFunc:fle};function yle(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return mx({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(p=>{v.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),v.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=mx({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=_E({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeData(p.dataId)),u}var ble={kernelName:iu,backendName:"wasm",kernelFunc:yle},QE;function xle(e){QE=e.wasm.cwrap(Hi,null,["number","array","number","number","array","array","number","number"])}function vle(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,constantValue:r}}=e,s=a.map((m,f)=>m[0]+t.shape[f]+m[1]);if(v.sizeFromShape(t.shape)===0)return PE({backend:n,attrs:{shape:s,value:r,dtype:t.dtype}});let i=n.dataIdMap.get(t.dataId).id,o=n.makeOutput(s,t.dtype),l=n.dataIdMap.get(o.dataId).id,u=new Uint8Array(new Int32Array(t.shape).buffer),p=a.map(m=>m[0]),d=a.map(m=>m[1]),c=new Uint8Array(new Int32Array(p).buffer),h=new Uint8Array(new Int32Array(d).buffer);return QE(i,u,t.shape.length,Et[t.dtype],c,h,r,l),o}var eA={kernelName:Hi,backendName:"wasm",kernelFunc:vle,setupFunc:xle},wle=!1,kle=cn(ji,wle),tA;function Ile(e){tA=e.wasm.cwrap(qi,null,["number","number","number"])}function Sle(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,o=s,l=a,u=l;l.dtype!=="float32"&&(u=Hu({backend:n,inputs:{x:a},attrs:{dtype:"float32"}}),o=n.dataIdMap.get(u.dataId).id);let p=n.makeOutput(a.shape,"float32"),d=n.dataIdMap.get(p.dataId).id;return tA(o,i,d),l.dtype!=="float32"&&n.disposeData(u.dataId),p}var Tle={kernelName:qi,backendName:"wasm",setupFunc:Ile,kernelFunc:Sle},nA;function Nle(e){nA=e.wasm.cwrap(Ki,null,["number","number","number","number"])}function Cle(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Ss(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("prod",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),y=v.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;nA(l,y,Et[b.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(b.shape,c);b.shape=x}return b}var _le={kernelName:Ki,backendName:"wasm",setupFunc:Nle,kernelFunc:Cle},Ele=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=F0(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},Ale={kernelName:hc,backendName:"wasm",kernelFunc:Ele},$le=!0,Fle=cn(Ni,$le),Dle=an(Xi),Rle=an(Ji),aA;function Mle(e){aA=e.wasm.cwrap(Zi,null,["number","number","number","number","number","number","number","number","number","number"])}function Ple(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[p,d,c,h]=r.shape,m=[p,l,u,h],f=t.dataIdMap.get(r.dataId),g;f.dtype!=="float32"&&(g=Hu({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let y=f.id,b=t.makeOutput(m,"float32");if(v.sizeFromShape(r.shape)===0)return b;let x=t.dataIdMap.get(b.dataId).id;return aA(y,p,d,c,h,l,u,s?1:0,i?1:0,x),g!=null&&t.disposeData(g.dataId),b}var Ole={kernelName:Zi,backendName:"wasm",setupFunc:Mle,kernelFunc:Ple},rA;function Lle(e){rA=e.wasm.cwrap(Yi,null,["number","number","number","number","number","number","number","number","number","number"])}function zle(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[p,d,c,h]=r.shape,m=[p,l,u,h],f=t.makeOutput(m,"float32");if(v.sizeFromShape(r.shape)===0)return f;let g=t.dataIdMap.get(r.dataId),y;g.dtype!=="float32"&&(y=Hu({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(y.dataId));let b=g.id,x=t.dataIdMap.get(f.dataId).id;return rA(b,p,d,c,h,l,u,s?1:0,i?1:0,x),y!=null&&t.disposeData(y.dataId),f}var Wle={kernelName:Yi,backendName:"wasm",setupFunc:Lle,kernelFunc:zle},sA;function Ble(e){sA=e.wasm.cwrap(Qi,null,["number","array","number","array","number","number"])}function Vle(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=v.parseAxisParam(s,r.shape);if(r.shape.length===0)return Lf({inputs:{x:r},backend:n});let o=n.makeOutput(r.shape,r.dtype),l=n.dataIdMap.get(r.dataId).id,u=n.dataIdMap.get(o.dataId).id,p=new Uint8Array(new Int32Array(i).buffer),d=new Uint8Array(new Int32Array(r.shape).buffer);sA(l,p,i.length,d,r.shape.length,u);let c=Wn({inputs:{x:o},attrs:{shape:r.shape},backend:n});return n.disposeData(o.dataId),c}var Ule={kernelName:Qi,backendName:"wasm",kernelFunc:Vle,setupFunc:Ble},iA;function Gle(e){iA=e.wasm.cwrap(Su,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Hle(e){let{inputs:t,backend:n,attrs:a}=e,{image:r}=t,{radians:s,fillValue:i,center:o}=a,l=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(r.dataId).id,p=n.dataIdMap.get(l.dataId).id,[d,c,h,m]=r.shape,[f,g]=N.getImageCenter(o,c,h),y=i===0,b=255,x=typeof i=="number"?[i,i,i,y?0:b]:[...i,b],w=new Uint8Array(new Int32Array(x).buffer);return iA(u,d,c,h,m,s,f,g,w,x.length,p),l}var jle={kernelName:Su,backendName:"wasm",kernelFunc:Hle,setupFunc:Gle},qle=an(eo),Kle=an(to),oA;function Xle(e){oA=e.wasm.cwrap(uu,null,["number","number","number","number","number","number","array","number","number"])}function Yle(e){let{backend:t,inputs:n,attrs:a}=e,{indices:r,updates:s}=n,{shape:i}=a,o=t.makeOutput(i,s.dtype);if(v.sizeFromShape(i)===0)return o;let{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=Px.calculateShapes(s,r,i),h=t.dataIdMap.get(r.dataId).id,m=t.dataIdMap.get(s.dataId).id,f=new Uint8Array(new Int32Array(d).buffer),g=t.dataIdMap.get(o.dataId).id;return oA(h,m,Et[s.dtype],l,u,p,f,c,g),o}var Zle={kernelName:uu,backendName:"wasm",setupFunc:Xle,kernelFunc:Yle},lA;function Jle(e){lA=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function Qle(e){let{inputs:t,backend:n}=e,{condition:a,t:r,e:s}=t,i=n.dataIdMap.get(a.dataId).id,o=n.dataIdMap.get(r.dataId).id,l=n.dataIdMap.get(s.dataId).id,u=n.makeOutput(r.shape,r.dtype),p=n.dataIdMap.get(u.dataId).id,d=a.shape.length,c=r.shape.length,h=d===0||d>1||c===1?1:v.sizeFromShape(r.shape.slice(1));return lA(i,o,l,h,p),u}var eue={kernelName:pu,backendName:"wasm",kernelFunc:Qle,setupFunc:Jle},uA;function tue(e){uA=e.wasm.cwrap(ao,null,["number","number"])}function nue(e){let{backend:t,inputs:{x:n}}=e,a=t.dataIdMap.get(n.dataId).id,r=t.makeOutput(n.shape,n.dtype),s=t.dataIdMap.get(r.dataId).id;return v.sizeFromShape(r.shape)===0||uA(a,s),r}var aue={kernelName:"Sigmoid",backendName:"wasm",setupFunc:tue,kernelFunc:nue},rue=an(no),pA;function sue(e){pA=e.wasm.cwrap(io,null,["number","number","number","number"])}function iue(e){let{backend:t,inputs:{logits:n},attrs:{dim:a}}=e,r=t.dataIdMap.get(n.dataId).id,s=t.makeOutput(n.shape,n.dtype),i=t.dataIdMap.get(s.dataId).id,o=n.shape[a],l=v.sizeFromShape(n.shape)/o;return v.sizeFromShape(s.shape)===0||pA(r,i,o,l),s}var oue={kernelName:io,backendName:"wasm",setupFunc:sue,kernelFunc:iue};function lue(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a,o=v.sizeFromShape(s),l=[[0,0]];l.push(...i);for(let g=1+s.length;g{let $=w.shape[0],R=w.shape[1],F=N.segment_util.segOpComputeOptimalWindowSize(R,E),S={windowSize:F,inSize:R,batchSize:$,numSegments:E},M=new Nse(S,I),B=n.compileAndRun(M,[w,T],C);if(l.push(B),B.shape[1]===E)return B;let U=gE({backend:n,attrs:{start:0,stop:E,step:1,dtype:"float32"}}),G=bE({inputs:{x:U},backend:n,attrs:{reps:[R/F]}});return l.push(U),l.push(G),g(B,I,G,C,E)},y=g(m,"unsortedSegmentSum",s,f,i),b=de({inputs:{x:y},backend:n,attrs:{shape:c}}),x=b;if(p!=null){l.push(b);let w=N.getUndoAxesPermutation(p);x=In({inputs:{x},backend:n,attrs:{perm:w}})}return l.forEach(w=>n.disposeIntermediateTensorInfo(w)),x}var _se={kernelName:wc,backendName:"webgl",kernelFunc:Cse},Ese=[SJ,NJ,EJ,FJ,RJ,OJ,zJ,BJ,HJ,qJ,YJ,QJ,n9,i9,u9,c9,h9,y9,x9,w9,T9,F9,R9,P9,V9,G9,K9,oJ,Z9,nQ,iQ,dQ,mQ,gQ,bQ,vQ,IQ,NQ,EQ,AQ,DQ,MQ,LQ,WQ,GQ,jQ,XQ,JQ,eee,ree,lee,dee,fee,bee,xee,wee,Iee,Tee,Cee,Eee,Dee,Pee,zee,Bee,Gee,qee,Zee,tte,iJ,ate,eQ,ite,ute,dte,uJ,gte,vte,kte,Nte,Ete,Dte,Pte,Wte,Gte,qte,Xte,Qte,tne,ane,one,une,cne,hne,fne,xne,Ine,Cne,Mne,dJ,zne,Vne,Hne,Kne,L9,Zne,Qne,tae,rae,lae,cJ,pae,dae,mae,gae,yae,z9,Ane,vae,Sae,_ae,mJ,Fae,Mae,zae,Vae,jae,Kae,Zae,ere,nre,sre,lre,cre,fre,bre,wre,Sre,$9,Dne,Cre,Ere,Are,Dre,Mre,Ore,zre,Bre,Ure,jre,Kre,Yre,Qre,tse,ase,sse,Fne,wJ,lse,cse,mse,bse,wse,kJ,Ise,Tse,_se,Jne];for(let e of Ese)kc(e);var Et;(function(e){e[e.float32=0]="float32",e[e.int32=1]="int32",e[e.bool=2]="bool",e[e.string=3]="string",e[e.complex64=4]="complex64"})(Et||(Et={}));var ac;(function(e){e[e.linear=0]="linear",e[e.relu=1]="relu",e[e.relu6=2]="relu6",e[e.prelu=3]="prelu",e[e.leakyrelu=4]="leakyrelu",e[e.sigmoid=5]="sigmoid",e[e.elu=6]="elu"})(ac||(ac={}));var xE;function $se(e){xE=e.wasm.cwrap(Js,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function Ase(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:l,transposeB:u,activation:p,leakyreluAlpha:d}=a,c=n.dataIdMap.get(r.dataId).id,h=n.dataIdMap.get(s.dataId).id,m=0;if(i!=null){let E=n.dataIdMap.get(i.dataId);if(E.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${E.shape.length}.`);m=E.id}let f=o==null?0:n.dataIdMap.get(o.dataId).id,g=ac[p];if(g==null)throw new Error(`${p} activation not yet supported for FusedConv2D in the wasm backend.`);let y=l?r.shape[2]:r.shape[1],b=u?s.shape[1]:s.shape[2],x=Tu.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)),w=n.makeOutput([...x,y,b],r.dtype),I=n.dataIdMap.get(w.dataId).id,T=new Uint8Array(new Int32Array(r.shape).buffer),C=new Uint8Array(new Int32Array(s.shape).buffer);return xE(c,T,r.shape.length,h,C,s.shape.length,l,u,g,m,f,d||0,I),w}var Fse={kernelName:Js,backendName:"wasm",setupFunc:$se,kernelFunc:Ase};function an(e,t){let n;function a(s){n=s.wasm.cwrap(e,null,["number","number","number"])}function r(s){let{backend:i,inputs:{x:o}}=s,l=i.dataIdMap.get(o.dataId).id,u=i.makeOutput(o.shape,t||o.dtype),p=i.dataIdMap.get(u.dataId).id;return v.sizeFromShape(u.shape)===0||n(l,Et[o.dtype],p),u}return{kernelName:e,backendName:"wasm",setupFunc:a,kernelFunc:r}}var Dse=an(wl);function cn(e,t,n){let a;function r(i){a=i.wasm.cwrap(e,null,["number","array","number","number","array","number","number","number"])}function s(i){let{backend:o,inputs:l}=i,{a:u,b:p}=l,d=o.dataIdMap.get(u.dataId).id,c=o.dataIdMap.get(p.dataId).id,h=n!=null?n:u.dtype,m=N.assertAndGetBroadcastShape(u.shape,p.shape),f=o.makeOutput(m,h);if(v.sizeFromShape(m)===0)return f;let g=new Uint8Array(new Int32Array(u.shape).buffer),y=new Uint8Array(new Int32Array(p.shape).buffer),b=o.dataIdMap.get(f.dataId).id;return a(d,g,u.shape.length,c,y,p.shape.length,Et[u.dtype],b),f}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var Rse=!0,Mse=cn(cs,Rse),vE;function Pse(e){vE=e.wasm.cwrap(mi,null,["array","number","number","number"])}function Ose(e){let{inputs:t,backend:n}=e,a=n.makeOutput(t[0].shape,t[0].dtype);if(v.sizeFromShape(a.shape)===0)return a;let r=t.map(o=>n.dataIdMap.get(o.dataId).id),s=new Uint8Array(new Int32Array(r).buffer),i=n.dataIdMap.get(a.dataId).id;return vE(s,r.length,Et[a.dtype],i),a}var Lse={kernelName:mi,backendName:"wasm",setupFunc:Pse,kernelFunc:Ose};function Lf(e){let{inputs:{x:t},backend:n}=e;if(t.dtype==="string")return kn(n.readSync(t.dataId),t.shape,t.dtype);let a=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(a).set(r),a}var zse={kernelName:Di,backendName:"wasm",kernelFunc:Lf},wE;function Wse(e){wE=e.wasm.cwrap(Tr,null,["number","array","number","number","number","array","number"])}function ls(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=Vse(t.x.shape,a.perm),i=!0;for(let m=0;m=r&&(s===-1||a[s]>a[i])&&(s=i);a[s]=r}return[n,a]}var Use={kernelName:Tr,backendName:"wasm",kernelFunc:ls,setupFunc:Wse};function Ss(e,t,n){let a=e.shape,r=e.shape.length,s=v.parseAxisParam(t,a),i=s,o=N.getAxesPermutation(i,r),l=null,u=!1;if(o!=null){let p=new Array(r);for(let c=0;c`new shape: ${i}, old shape: ${a.shape}. New shape and old shape must have the same number of elements.`),e.backend.incRef(a.dataId),{dataId:a.dataId,shape:i,dtype:a.dtype}}var nie={kernelName:lu,backendName:"wasm",kernelFunc:Wn},NE;function aie(e){NE=e.wasm.cwrap(yi,null,["number","array","number","number","array","number","number","number","number"])}function rie(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let l=r.shape.length,u=s.shape.length,p=i?r.shape[l-2]:r.shape[l-1],d=o?s.shape[u-1]:s.shape[u-2],c=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[u-2]:s.shape[u-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=v.sizeFromShape(m),y=v.sizeFromShape(f),b=Tu.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);v.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,p,c]:[g,c,p],w=o?[y,h,d]:[y,d,h],I=Wn({inputs:{x:r},backend:n,attrs:{shape:x}}),T=Wn({inputs:{x:s},backend:n,attrs:{shape:w}}),C=n.dataIdMap.get(I.dataId).id,E=n.dataIdMap.get(T.dataId).id,$=i?I.shape[2]:I.shape[1],R=o?T.shape[1]:T.shape[2],F=Math.max(g,y),S=n.makeOutput([F,$,R],I.dtype),M=n.dataIdMap.get(S.dataId).id,B=new Uint8Array(new Int32Array(I.shape).buffer),U=new Uint8Array(new Int32Array(T.shape).buffer);return NE(C,B,I.shape.length,E,U,T.shape.length,i,o,M),n.disposeData(I.dataId),n.disposeData(T.dataId),S.shape=b,S}var sie={kernelName:yi,backendName:"wasm",setupFunc:aie,kernelFunc:rie};function di(e){let{inputs:{x:t},attrs:{begin:n,size:a},backend:r}=e,[s,i]=jt.parseSliceParams(t,n,a),o=jt.isSliceContinous(t.shape,s,i),l=r.readSync(t.dataId),u=r.makeOutput(i,t.dtype),p=v.computeStrides(t.shape),d=r.dataIdMap.get(u.dataId);if(o){let m=jt.computeFlatOffset(s,p);return t.dtype==="string"?d.stringBytes=l.slice(m,m+v.sizeFromShape(i)):r.typedArrayFromHeap(u).set(l.subarray(m,m+v.sizeFromShape(i))),u}if(t.dtype==="string"){let m=Oh(l,s,i,t.shape,t.dtype);return d.stringBytes=m,u}let c=r.typedArrayFromHeap(u),h=t.shape.length;if(h===2)iie(l,p[0],c,s,i);else if(h===3)oie(l,p[0],p[1],c,s,i);else if(h===4)lie(l,p[0],p[1],p[2],c,s,i);else{let m=Oh(l,s,i,t.shape,t.dtype);c.set(m)}return u}function iie(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let u=i;uy*b),l=N.getReshaped(r.shape,s,o),u=N.getPermuted(l.length,s.length),p=N.getReshapedPermuted(r.shape,s,o),d=N.getSliceBeginCoords(i,s.length),c=N.getSliceSize(p,i,s.length),h=Wn({inputs:{x:r},backend:n,attrs:{shape:l}}),m=ls({inputs:{x:h},backend:n,attrs:{perm:u}}),f=Wn({inputs:{x:m},backend:n,attrs:{shape:p}}),g=di({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeData(h.dataId),n.disposeData(m.dataId),n.disposeData(h.dataId),g}var cie={kernelName:Al,backendName:"wasm",kernelFunc:pie};function Hu(e){let{inputs:{x:t},attrs:{dtype:n},backend:a}=e,r=a.makeOutput(t.shape,n),s=a.typedArrayFromHeap(t);return a.typedArrayFromHeap(r).set(s),r}var die={kernelName:bi,backendName:"wasm",kernelFunc:Hu},hie=an(xi),CE;function mie(e){CE=e.wasm.cwrap(ds,null,["number","number","number","number"])}function fie(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o=n.dataIdMap.get(r.dataId).id,l=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(l.dataId).id;return CE(o,s,i,u),l}var gie={kernelName:ds,backendName:"wasm",setupFunc:mie,kernelFunc:fie};function _E(e){let{inputs:t,backend:n}=e,a=v.parseAxisParam(e.attrs.axis,t[0].shape)[0],r=t.map(h=>h.shape);N.assertParamsConsistent(r,a);let s=N.computeOutShape(t.map(h=>h.shape),a),i=t.filter(h=>v.sizeFromShape(h.shape)>0);if(i.length===1)return Lf({inputs:{x:i[0]},backend:n});let o=n.makeOutput(s,t[0].dtype);if(v.sizeFromShape(s)===0)return o;if(i[0].dtype==="string"){let h=i.map(x=>{let w=[-1,v.sizeFromShape(x.shape.slice(a))];return Wn({inputs:{x},backend:n,attrs:{shape:w}})}),m=h.map(x=>({vals:n.readSync(x.dataId),shape:x.shape}));s=N.computeOutShape(h.map(x=>x.shape),1);let f=h[0].shape[0]===1,g=E0(m,s,t[0].dtype,f),y=N.computeOutShape(i.map(x=>x.shape),a);o.shape=y;let b=n.dataIdMap.get(o.dataId);return b.stringBytes=N.fromStringArrayToUint8(g),h.forEach(x=>n.disposeData(x.dataId)),o}let l=v.sizeFromShape(i[0].shape.slice(0,a)),u=0,p=i.map(h=>{let m=v.sizeFromShape(h.shape.slice(a));return u+=m,m}),d=i.map(h=>n.typedArrayFromHeap(h)),c=n.typedArrayFromHeap(o);for(let h=0;h`cumprod does not support ${r.dtype} tensors in the WASM backend`);let u=N.getAxesPermutation([s],l),p=r;u!==null&&(p=ls({inputs:{x:r},attrs:{perm:u},backend:n}));let d=N.getInnerMostAxes(1,l)[0];N.assertAxesAreInnerMostDims("cumprod",[d],l);let c=n.makeOutput(p.shape,p.dtype),h=p.shape[d],m=n.dataIdMap.get(p.dataId).id,f=n.dataIdMap.get(c.dataId).id;FE(m,i?1:0,o?1:0,h,f,Et[r.dtype]);let g=c;if(u!==null){let y=N.getUndoAxesPermutation(u);g=ls({inputs:{x:c},attrs:{perm:y},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Aie={kernelName:Dl,backendName:"wasm",setupFunc:Eie,kernelFunc:$ie},DE;function Fie(e){DE=e.wasm.cwrap(Si,null,["number","number","number","number","number","number"])}function Die(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a,l=r.shape.length;v.assert(r.dtype==="float32"||r.dtype==="int32",()=>`cumsum does not support ${r.dtype} tensors in the WASM backend`);let u=N.getAxesPermutation([s],l),p=r;u!==null&&(p=ls({inputs:{x:r},attrs:{perm:u},backend:n}));let d=N.getInnerMostAxes(1,l)[0];N.assertAxesAreInnerMostDims("cumsum",[d],l);let c=n.makeOutput(p.shape,p.dtype),h=p.shape[d],m=n.dataIdMap.get(p.dataId).id,f=n.dataIdMap.get(c.dataId).id;DE(m,i?1:0,o?1:0,h,f,Et[r.dtype]);let g=c;if(u!==null){let y=N.getUndoAxesPermutation(u);g=ls({inputs:{x:c},attrs:{perm:y},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Rie={kernelName:Si,backendName:"wasm",setupFunc:Fie,kernelFunc:Die},RE;function Mie(e){RE=e.wasm.cwrap(Ml,null,["number","number","number","array","number","array","array","number","number"])}function Pie(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{blockSize:s,dataFormat:i}=a,o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],u=i==="NHWC"?r.shape[2]:r.shape[3],p=i==="NHWC"?r.shape[3]:r.shape[1],d=l*s,c=u*s,h=p/(s*s),m=i==="NHWC"?[o,d,c,h]:[o,h,d,c],f=t.makeOutput(m,"float32"),g=t.dataIdMap.get(r.dataId).id,y=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),b=new Uint8Array(new Int32Array(m).buffer),x=new Uint8Array(new Int32Array(v.computeStrides(m)).buffer),w=t.dataIdMap.get(f.dataId).id;return RE(g,s,i==="NHWC"?1:0,y,r.shape.length-1,b,x,m.length,w),f}var Oie={kernelName:Ml,backendName:"wasm",setupFunc:Mie,kernelFunc:Pie},ME;function Lie(e){ME=e.wasm.cwrap(Ti,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function zie(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s}=t,i=a.dataIdMap.get(r.dataId).id,o=a.dataIdMap.get(s.dataId).id,{strides:l,dilations:u,pad:p,dimRoundingMode:d}=n,c=u==null?[1,1]:u,h=N.computeConv2DInfo(r.shape,s.shape,l,c,p,d,!0),m=h.filterHeight,f=h.filterWidth,g=h.padInfo.top,y=h.padInfo.right,b=h.padInfo.bottom,x=h.padInfo.left,w=h.dilationHeight,I=h.dilationWidth,T=h.strideHeight,C=h.strideWidth,E=h.inChannels,$=h.outChannels,R=h.padInfo.type==="SAME"?1:0;if(h.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${h.dataFormat}'. Please use 'channelsLast'.`);let F=a.makeOutput(h.outShape,"float32"),S=a.dataIdMap.get(F.dataId).id;return ME(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,y,b,x,R,w,I,T,C,E,$,S),F}var Wie={kernelName:Ti,backendName:"wasm",setupFunc:Lie,kernelFunc:zie},Bie=an(Ci),Vie=!1,Uie=cn(Ol,Vie,"bool"),Gie=an(_i,"float32");function mx(e){let{inputs:t,attrs:n,backend:a}=e,{input:r}=t,{dim:s}=n,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(v.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),Wn({inputs:{x:r},backend:a,attrs:{shape:o}})}var Hie={kernelName:Ll,backendName:"wasm",kernelFunc:mx};function PE(e){let{attrs:{shape:t,value:n,dtype:a},backend:r}=e,s=r.makeOutput(t,a);return r.typedArrayFromHeap(s).fill(n),s}var jie={kernelName:pc,backendName:"wasm",kernelFunc:PE},OE;function qie(e){OE=e.wasm.cwrap(Wl,null,["number","number","number","number","number","number"])}function Kie(e){let{inputs:t,backend:n}=e,{image:a}=t,r=n.makeOutput(a.shape,a.dtype),s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,[o,l,u,p]=a.shape;return OE(s,o,l,u,p,i),r}var Xie={kernelName:Wl,backendName:"wasm",kernelFunc:Kie,setupFunc:qie},Yie=an(Ei),Zie=!1,Jie=cn($i,Zie),LE;function Qie(e){LE=e.wasm.cwrap(Ai,null,["number","number","number","number","number","number","number"])}function eoe(e){let{backend:t,inputs:n,attrs:a}=e,{varianceEpsilon:r}=a,{x:s,mean:i,variance:o,offset:l,scale:u}=n,p=t.dataIdMap.get(s.dataId).id,d=t.dataIdMap.get(i.dataId).id,c=t.dataIdMap.get(o.dataId).id,h=l!=null?t.dataIdMap.get(l.dataId).id:0,m=u!=null?t.dataIdMap.get(u.dataId).id:0,f=t.makeOutput(s.shape,s.dtype);if(v.sizeFromShape(s.shape)===0)return f;let g=t.dataIdMap.get(f.dataId).id;return LE(p,d,c,h,m,r,g),f}var toe={kernelName:Ai,backendName:"wasm",setupFunc:Qie,kernelFunc:eoe},zE;function noe(e){zE=e.wasm.cwrap(Qs,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function aoe(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dataFormat:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=n,f=N.computeConv2DInfo(r.shape,s.shape,l,p,u,c),g=ac[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,x=f.outChannels,w=0;if(i!=null){let te=a.dataIdMap.get(i.dataId);if(te.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${te.shape.length}.`);if(te.shape[0]!==x)throw new Error(`FusedConv2D bias shape (${te.shape}) does not match the number of output channels (${x})`);w=te.id}let I=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,E=f.padInfo.right,$=f.padInfo.bottom,R=f.padInfo.left,F=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,G=f.padInfo.type==="SAME"?1:0,q=f.batchSize,K=f.inHeight,Z=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let J=a.makeOutput(f.outShape,"float32"),ee=a.dataIdMap.get(J.dataId).id,ae=o==null?0:a.dataIdMap.get(o.dataId).id;return zE(y,q,K,Z,b,I,T,w,C,E,$,R,G,F,S,M,B,U,x,g,ae,m||0,ee),J}var roe={kernelName:Qs,backendName:"wasm",setupFunc:noe,kernelFunc:aoe},WE;function soe(e){WE=e.wasm.cwrap(ei,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function ioe(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dataFormat:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=n,f=N.computeConv2DInfo(r.shape,s.shape,l,p,u,c,!0),g=ac[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,x=f.outChannels,w=0;if(i!=null){let te=a.dataIdMap.get(i.dataId);if(te.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${te.shape.length}.`);if(te.shape[0]!==x)throw new Error(`FusedDepthwiseConv2D bias shape (${te.shape}) does not match the number of output channels (${x})`);w=te.id}let I=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,E=f.padInfo.right,$=f.padInfo.bottom,R=f.padInfo.left,F=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,G=f.padInfo.type==="SAME"?1:0,q=f.batchSize,K=f.inHeight,Z=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let J=a.makeOutput(f.outShape,"float32"),ee=a.dataIdMap.get(J.dataId).id,ae=o==null?0:a.dataIdMap.get(o.dataId).id;return WE(y,q,K,Z,b,I,T,w,C,E,$,R,G,F,S,M,B,U,x,g,ae,m||0,ee),J}var ooe={kernelName:ei,backendName:"wasm",setupFunc:soe,kernelFunc:ioe},BE;function loe(e){BE=e.wasm.cwrap(Vl,null,["number","number","number","number","number","number","array","number"])}function uoe(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=Mx.prepareAndValidate(a,r),u=t.makeOutput(s,a.dtype);if(i===0)return u;let p=r.shape,d=p[p.length-1],c=t.dataIdMap.get(a.dataId).id,h=t.dataIdMap.get(r.dataId).id,m=new Uint8Array(new Int32Array(l).buffer),f=t.dataIdMap.get(u.dataId).id;return BE(c,Et[a.dtype],h,i,d,o,m,f),u}var poe={kernelName:Vl,backendName:"wasm",setupFunc:loe,kernelFunc:uoe},VE;function coe(e){VE=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function doe(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,indices:s}=n,{axis:i,batchDims:o}=a,l=v.parseAxisParam(i,r.shape)[0],u=t.readSync(s.dataId),p=r.shape[l];for(let C=0;C=0,()=>`GatherV2: the index value ${E} is not in [0, ${p-1}]`)}let d=N.segment_util.collectGatherOpShapeInfo(r,s,l,o),c=Wn({inputs:{x:r},attrs:{shape:[d.batchSize,d.outerSize,d.dimSize,d.sliceSize]},backend:t}),h=v.sizeFromShape(s.shape),m=Wn({inputs:{x:s},attrs:{shape:[d.batchSize,h/d.batchSize]},backend:t}),f=[d.batchSize,d.outerSize,h/d.batchSize,d.sliceSize],g=t.makeOutput(f,r.dtype);if(v.sizeFromShape(r.shape)===0)return g;let y=c.shape.length-1,b=t.dataIdMap.get(c.dataId).id,x=t.dataIdMap.get(m.dataId).id,w=t.dataIdMap.get(g.dataId).id,I=new Uint8Array(new Int32Array(v.computeStrides(c.shape)).buffer),T=new Uint8Array(new Int32Array(v.computeStrides(f)).buffer);return VE(b,Et[r.dtype],I,y,x,d.batchSize,T,w),t.disposeData(c.dataId),t.disposeData(m.dataId),g.shape=d.outputShape,g}var hoe={kernelName:Bl,backendName:"wasm",setupFunc:coe,kernelFunc:doe},moe=!1,foe=cn(Ul,moe,"bool"),goe=!1,yoe=cn(Fi,goe,"bool"),UE;function boe(e){UE=e.wasm.cwrap(Ri,null,["number","number","number","number"])}function xoe(e){let{inputs:{x:t},attrs:{alpha:n},backend:a}=e,r=a.dataIdMap.get(t.dataId).id,s=a.makeOutput(t.shape,"float32");if(v.sizeFromShape(t.shape)!==0){let i=a.dataIdMap.get(s.dataId).id;UE(r,Et[t.dtype],n,i)}return s}var voe={kernelName:Ri,backendName:"wasm",setupFunc:boe,kernelFunc:xoe},woe=!1,koe=cn(ql,woe,"bool"),Ioe=!1,Soe=cn(Kl,Ioe,"bool"),Toe=an(Mi),Noe=!1,Coe=cn(Yl,Noe,"bool"),_oe=an(Zl),Eoe=!1,$oe=cn(Jl,Eoe,"bool"),Aoe=!1,Foe=cn(MI,Aoe,"bool"),GE;function Doe(e){GE=e.wasm.cwrap(Pi,null,["number","number","number","number"])}function Roe(e){let{backend:t,inputs:n,attrs:a}=e,{reductionIndices:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:c}=Ss(i,r,t);if(c){let b=t.dataIdMap.get(u.dataId).id;l=u,o=b}let h=l.shape.length;N.assertAxesAreInnerMostDims("max",p,h);let[m,f]=N.computeOutAndReduceShapes(l.shape,p),g=v.sizeFromShape(f),y=t.makeOutput(m,i.dtype);if(v.sizeFromShape(l.shape)!==0){let b=t.dataIdMap.get(y.dataId).id;GE(o,Et[i.dtype],g,b)}if(c&&t.disposeData(u.dataId),s){let b=N.expandShapeToKeepDim(y.shape,d);y.shape=b}return y}var Moe={kernelName:Pi,backendName:"wasm",setupFunc:Doe,kernelFunc:Roe},Poe=!1,Ooe=cn(Oi,Poe),HE;function Loe(e){HE=e.wasm.cwrap(Li,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function zoe(e){let{inputs:t,attrs:n,backend:a}=e,r=t.x,s=a.dataIdMap.get(r.dataId).id;v.assert(r.dtype==="float32",()=>`Error in MaxPool: only float32 input is supported. Got ${r.dtype}.`);let{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=n,p=N.computePool2DInfo(r.shape,i,o,1,l,u),d=p.filterHeight,c=p.filterWidth,h=p.padInfo.top,m=p.padInfo.right,f=p.padInfo.bottom,g=p.padInfo.left,y=p.dilationHeight,b=p.dilationWidth,x=p.strideHeight,w=p.strideWidth,I=p.inChannels,T=p.outChannels;if(p.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${p.dataFormat}'. Please use 'channelsLast'.`);let C=a.makeOutput(p.outShape,"float32"),E=a.dataIdMap.get(C.dataId).id;return HE(s,r.shape[0],r.shape[1],r.shape[2],d,c,h,m,f,g,y,b,x,w,I,T,E),C}var Woe={kernelName:Li,backendName:"wasm",setupFunc:Loe,kernelFunc:zoe},jE;function Boe(e){jE=e.wasm.cwrap(zi,null,["number, number, number"])}function Voe(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Ss(i,r,t),m=d;if(h){let w=t.dataIdMap.get(p.dataId).id;w!==o&&(u=p,l=w,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("mean",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),y=v.sizeFromShape(g),b=u;u.dtype!=="float32"&&(b=Hu({backend:t,inputs:{x:u},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(b.dataId).id);let x=t.makeOutput(f,"float32");if(v.sizeFromShape(u.shape)!==0){let w=t.dataIdMap.get(x.dataId).id;jE(l,y,w)}if(h&&t.disposeData(p.dataId),s){let w=N.expandShapeToKeepDim(x.shape,c);x.shape=w}return u.dtype!=="float32"&&t.disposeData(b.dataId),x}var Uoe={kernelName:zi,backendName:"wasm",setupFunc:Boe,kernelFunc:Voe},qE;function Goe(e){qE=e.wasm.cwrap(Wi,null,["number","number","number","number"])}function Hoe(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Ss(i,r,t);if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x)}let m=u.shape.length;N.assertAxesAreInnerMostDims("min",d,m);let[f,g]=N.computeOutAndReduceShapes(u.shape,d),y=v.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;qE(l,Et[i.dtype],y,x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(b.shape,c);b.shape=x}return b}var joe={kernelName:Wi,backendName:"wasm",setupFunc:Goe,kernelFunc:Hoe},qoe=!1,Koe=cn(Bi,qoe),fx;(function(e){e[e.reflect=0]="reflect",e[e.symmetric=1]="symmetric"})(fx||(fx={}));var KE;function Xoe(e){KE=e.wasm.cwrap(Vi,null,["number","array","number","number","array","array","number","number"])}function Yoe(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,mode:r}}=e,s=a.map((m,f)=>m[0]+t.shape[f]+m[1]),i=n.dataIdMap.get(t.dataId).id,o=n.makeOutput(s,t.dtype),l=n.dataIdMap.get(o.dataId).id,u=new Uint8Array(new Int32Array(t.shape).buffer),p=a.map(m=>m[0]),d=a.map(m=>m[1]),c=new Uint8Array(new Int32Array(p).buffer),h=new Uint8Array(new Int32Array(d).buffer);return KE(i,u,t.shape.length,Et[t.dtype],c,h,fx[r],l),o}var Zoe={kernelName:Vi,backendName:"wasm",kernelFunc:Yoe,setupFunc:Xoe},Joe=!0,Qoe=cn(Ui,Joe),ele=an(eu);function t1(e,t){let n=new Int32Array(e.wasm.HEAPU8.buffer,t,4),a=n[0],r=n[1],s=n[2],i=n[3];return e.wasm._free(t),{pSelectedIndices:a,selectedSize:r,pSelectedScores:s,pValidOutputs:i}}var XE;function tle(e){XE=e.wasm.cwrap(nu,"number",["number","number","number","number","number"])}function nle(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i}=a,{boxes:o,scores:l}=n,u=t.dataIdMap.get(o.dataId).id,p=t.dataIdMap.get(l.dataId).id,d=XE(u,p,s,r,i),{pSelectedIndices:c,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=t1(t,d);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",c)}var ale={kernelName:nu,backendName:"wasm",setupFunc:tle,kernelFunc:nle},YE;function rle(e){YE=e.wasm.cwrap(au,"number",["number","number","number","number","number","bool"])}function sle(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:o}=a,{boxes:l,scores:u}=n,p=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,c=YE(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=t1(t,c);t.wasm._free(f);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([],"int32",g);return[y,b]}var ile={kernelName:au,backendName:"wasm",setupFunc:rle,kernelFunc:sle},ZE;function ole(e){ZE=e.wasm.cwrap(ru,"number",["number","number","number","number","number","number"])}function lle(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,softNmsSigma:o}=a,{boxes:l,scores:u}=n,p=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,c=ZE(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=t1(t,c);t.wasm._free(g);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([m],"float32",f);return[y,b]}var ule={kernelName:ru,backendName:"wasm",setupFunc:ole,kernelFunc:lle},ple=!1,cle=cn(tu,ple,"bool"),JE;function dle(e){JE=e.wasm.cwrap(Gi,null,["number","number","number","number","number"])}function hle(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=n.makeOutput([...r.shape,i],s),p=n.dataIdMap.get(u.dataId).id,d=n.dataIdMap.get(r.dataId).id;return JE(d,i,o,l,p),u}var mle={kernelName:Gi,backendName:"wasm",setupFunc:dle,kernelFunc:hle};function fle(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var gle={kernelName:su,backendName:"wasm",kernelFunc:fle};function yle(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return mx({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(p=>{v.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),v.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=mx({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=_E({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeData(p.dataId)),u}var ble={kernelName:iu,backendName:"wasm",kernelFunc:yle},QE;function xle(e){QE=e.wasm.cwrap(Hi,null,["number","array","number","number","array","array","number","number"])}function vle(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,constantValue:r}}=e,s=a.map((m,f)=>m[0]+t.shape[f]+m[1]);if(v.sizeFromShape(t.shape)===0)return PE({backend:n,attrs:{shape:s,value:r,dtype:t.dtype}});let i=n.dataIdMap.get(t.dataId).id,o=n.makeOutput(s,t.dtype),l=n.dataIdMap.get(o.dataId).id,u=new Uint8Array(new Int32Array(t.shape).buffer),p=a.map(m=>m[0]),d=a.map(m=>m[1]),c=new Uint8Array(new Int32Array(p).buffer),h=new Uint8Array(new Int32Array(d).buffer);return QE(i,u,t.shape.length,Et[t.dtype],c,h,r,l),o}var e$={kernelName:Hi,backendName:"wasm",kernelFunc:vle,setupFunc:xle},wle=!1,kle=cn(ji,wle),t$;function Ile(e){t$=e.wasm.cwrap(qi,null,["number","number","number"])}function Sle(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,o=s,l=a,u=l;l.dtype!=="float32"&&(u=Hu({backend:n,inputs:{x:a},attrs:{dtype:"float32"}}),o=n.dataIdMap.get(u.dataId).id);let p=n.makeOutput(a.shape,"float32"),d=n.dataIdMap.get(p.dataId).id;return t$(o,i,d),l.dtype!=="float32"&&n.disposeData(u.dataId),p}var Tle={kernelName:qi,backendName:"wasm",setupFunc:Ile,kernelFunc:Sle},n$;function Nle(e){n$=e.wasm.cwrap(Ki,null,["number","number","number","number"])}function Cle(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Ss(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("prod",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),y=v.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;n$(l,y,Et[b.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(b.shape,c);b.shape=x}return b}var _le={kernelName:Ki,backendName:"wasm",setupFunc:Nle,kernelFunc:Cle},Ele=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=F0(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},$le={kernelName:hc,backendName:"wasm",kernelFunc:Ele},Ale=!0,Fle=cn(Ni,Ale),Dle=an(Xi),Rle=an(Ji),a$;function Mle(e){a$=e.wasm.cwrap(Zi,null,["number","number","number","number","number","number","number","number","number","number"])}function Ple(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[p,d,c,h]=r.shape,m=[p,l,u,h],f=t.dataIdMap.get(r.dataId),g;f.dtype!=="float32"&&(g=Hu({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let y=f.id,b=t.makeOutput(m,"float32");if(v.sizeFromShape(r.shape)===0)return b;let x=t.dataIdMap.get(b.dataId).id;return a$(y,p,d,c,h,l,u,s?1:0,i?1:0,x),g!=null&&t.disposeData(g.dataId),b}var Ole={kernelName:Zi,backendName:"wasm",setupFunc:Mle,kernelFunc:Ple},r$;function Lle(e){r$=e.wasm.cwrap(Yi,null,["number","number","number","number","number","number","number","number","number","number"])}function zle(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[p,d,c,h]=r.shape,m=[p,l,u,h],f=t.makeOutput(m,"float32");if(v.sizeFromShape(r.shape)===0)return f;let g=t.dataIdMap.get(r.dataId),y;g.dtype!=="float32"&&(y=Hu({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(y.dataId));let b=g.id,x=t.dataIdMap.get(f.dataId).id;return r$(b,p,d,c,h,l,u,s?1:0,i?1:0,x),y!=null&&t.disposeData(y.dataId),f}var Wle={kernelName:Yi,backendName:"wasm",setupFunc:Lle,kernelFunc:zle},s$;function Ble(e){s$=e.wasm.cwrap(Qi,null,["number","array","number","array","number","number"])}function Vle(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=v.parseAxisParam(s,r.shape);if(r.shape.length===0)return Lf({inputs:{x:r},backend:n});let o=n.makeOutput(r.shape,r.dtype),l=n.dataIdMap.get(r.dataId).id,u=n.dataIdMap.get(o.dataId).id,p=new Uint8Array(new Int32Array(i).buffer),d=new Uint8Array(new Int32Array(r.shape).buffer);s$(l,p,i.length,d,r.shape.length,u);let c=Wn({inputs:{x:o},attrs:{shape:r.shape},backend:n});return n.disposeData(o.dataId),c}var Ule={kernelName:Qi,backendName:"wasm",kernelFunc:Vle,setupFunc:Ble},i$;function Gle(e){i$=e.wasm.cwrap(Su,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Hle(e){let{inputs:t,backend:n,attrs:a}=e,{image:r}=t,{radians:s,fillValue:i,center:o}=a,l=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(r.dataId).id,p=n.dataIdMap.get(l.dataId).id,[d,c,h,m]=r.shape,[f,g]=N.getImageCenter(o,c,h),y=i===0,b=255,x=typeof i=="number"?[i,i,i,y?0:b]:[...i,b],w=new Uint8Array(new Int32Array(x).buffer);return i$(u,d,c,h,m,s,f,g,w,x.length,p),l}var jle={kernelName:Su,backendName:"wasm",kernelFunc:Hle,setupFunc:Gle},qle=an(eo),Kle=an(to),o$;function Xle(e){o$=e.wasm.cwrap(uu,null,["number","number","number","number","number","number","array","number","number"])}function Yle(e){let{backend:t,inputs:n,attrs:a}=e,{indices:r,updates:s}=n,{shape:i}=a,o=t.makeOutput(i,s.dtype);if(v.sizeFromShape(i)===0)return o;let{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=Px.calculateShapes(s,r,i),h=t.dataIdMap.get(r.dataId).id,m=t.dataIdMap.get(s.dataId).id,f=new Uint8Array(new Int32Array(d).buffer),g=t.dataIdMap.get(o.dataId).id;return o$(h,m,Et[s.dtype],l,u,p,f,c,g),o}var Zle={kernelName:uu,backendName:"wasm",setupFunc:Xle,kernelFunc:Yle},l$;function Jle(e){l$=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function Qle(e){let{inputs:t,backend:n}=e,{condition:a,t:r,e:s}=t,i=n.dataIdMap.get(a.dataId).id,o=n.dataIdMap.get(r.dataId).id,l=n.dataIdMap.get(s.dataId).id,u=n.makeOutput(r.shape,r.dtype),p=n.dataIdMap.get(u.dataId).id,d=a.shape.length,c=r.shape.length,h=d===0||d>1||c===1?1:v.sizeFromShape(r.shape.slice(1));return l$(i,o,l,h,p),u}var eue={kernelName:pu,backendName:"wasm",kernelFunc:Qle,setupFunc:Jle},u$;function tue(e){u$=e.wasm.cwrap(ao,null,["number","number"])}function nue(e){let{backend:t,inputs:{x:n}}=e,a=t.dataIdMap.get(n.dataId).id,r=t.makeOutput(n.shape,n.dtype),s=t.dataIdMap.get(r.dataId).id;return v.sizeFromShape(r.shape)===0||u$(a,s),r}var aue={kernelName:"Sigmoid",backendName:"wasm",setupFunc:tue,kernelFunc:nue},rue=an(no),p$;function sue(e){p$=e.wasm.cwrap(io,null,["number","number","number","number"])}function iue(e){let{backend:t,inputs:{logits:n},attrs:{dim:a}}=e,r=t.dataIdMap.get(n.dataId).id,s=t.makeOutput(n.shape,n.dtype),i=t.dataIdMap.get(s.dataId).id,o=n.shape[a],l=v.sizeFromShape(n.shape)/o;return v.sizeFromShape(s.shape)===0||p$(r,i,o,l),s}var oue={kernelName:io,backendName:"wasm",setupFunc:sue,kernelFunc:iue};function lue(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a,o=v.sizeFromShape(s),l=[[0,0]];l.push(...i);for(let g=1+s.length;g0?l+1:0;if(u<0)throw new Error(N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let p=r.shape.slice();p[0]=u;let d=n.dataIdMap.get(r.dataId).id,c=n.dataIdMap.get(s.dataId).id,h=n.dataIdMap.get(i.dataId).id,m=n.makeOutput(p,r.dtype),f=n.dataIdMap.get(m.dataId).id,g=n.makeOutput([4],"int32"),y=n.dataIdMap.get(g.dataId).id;hA(d,Et[r.dtype],r.shape[0],c,h,f,y,t,0);let b=n.readSync(g.dataId),x;switch(b[0]){case 0:{x=N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{x=N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:x=N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b[1],b[2]);break;case 3:x=N.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(b[1],b[2],b[3]);break;default:x=""}if(n.disposeData(g.dataId),x)throw n.disposeData(m.dataId),new Error(x);return m}function gue(e){return fA(e,!0)}var yue={kernelName:fc,backendName:"wasm",setupFunc:mA,kernelFunc:gue};function bue(e){return fA(e,!1)}var xue={kernelName:gc,backendName:"wasm",setupFunc:mA,kernelFunc:bue};function vue(e){let{inputs:t,attrs:n,backend:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=n,o=v.parseAxisParam(i,r.shape)[0],l=N.prepareSplitSize(r,s,o),u=new Array(r.shape.length).fill(0),p=r.shape.slice();return l.map(d=>{let c=[...p];c[o]=d;let h=di({inputs:{x:r},attrs:{begin:u,size:c},backend:a});return u[o]+=d,h})}var wue={kernelName:yu,backendName:"wasm",kernelFunc:vue},kue=an(ro),Iue=an(yc),Sue=!0,Tue=cn(oo,Sue),gA;function Nue(e){gA=e.wasm.cwrap(ms,null,["number","number","number","number"])}function Cue(e){let{backend:t,inputs:n,attrs:a}=e,{alpha:r}=a,{x:s}=n,i=t.dataIdMap.get(s.dataId).id,o=t.makeOutput(s.shape,s.dtype),l=t.dataIdMap.get(o.dataId).id;return gA(i,r,Et[s.dtype],l),o}var _ue={kernelName:ms,backendName:"wasm",setupFunc:Nue,kernelFunc:Cue},yA;function Eue(e){yA=e.wasm.cwrap(xu,null,["number","array","number","array","array","array","array","array","number","number"])}function Aue(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a,{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:y,begin:b,end:x,strides:w}=jt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=Wn({inputs:{x:r},backend:t,attrs:{shape:m}});else if(g||y){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=jt.computeOutShape(b,x,w),C=di({inputs:{x:r},backend:t,attrs:{begin:b,size:T}});I=Wn({inputs:{x:C},backend:t,attrs:{shape:m}}),t.disposeData(C.dataId)}else{let T=t.makeOutput(h,"float32"),C=t.dataIdMap.get(r.dataId).id,E=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),A=new Uint8Array(new Int32Array(b).buffer),R=new Uint8Array(new Int32Array(x).buffer),F=new Uint8Array(new Int32Array(w).buffer),S=new Uint8Array(new Int32Array(h).buffer),M=new Uint8Array(new Int32Array(v.computeStrides(h)).buffer),B=t.dataIdMap.get(T.dataId).id;yA(C,E,r.shape.length,A,R,F,S,M,h.length,B),I=Wn({inputs:{x:T},backend:t,attrs:{shape:m}}),t.disposeData(T.dataId)}return I}var $ue={kernelName:xu,backendName:"wasm",setupFunc:Eue,kernelFunc:Aue};function Fue(e){let{backend:t,inputs:n,attrs:a}=e,{data:r,dataSplits:s}=n,{separator:i,nGramWidths:o,leftPad:l,rightPad:u,padWidth:p,preserveShortSequences:d}=a,c=t.readSync(r.dataId),h=t.readSync(s.dataId),[m,f]=R0(c,h,i,o,l,u,p,d),g=t.makeOutput([m.length],"string"),y=t.dataIdMap.get(g.dataId);y.stringBytes=m;let b=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(b).set(f),[g,b]}var Due={kernelName:bc,backendName:"wasm",kernelFunc:Fue};function Rue(e){let{backend:t,inputs:n,attrs:a}=e,{input:r,delimiter:s}=n,{skipEmpty:i}=a,o=t.readSync(r.dataId),l=t.readSync(s.dataId),[u,p,d]=M0(o,l[0],i),c=p.length,h=t.makeOutput([c,2],"int32");t.typedArrayFromHeap(h).set(u);let m=t.makeOutput([c],"string"),f=t.dataIdMap.get(m.dataId);f.stringBytes=p;let g=t.makeOutput([2],"int32");return t.typedArrayFromHeap(g).set(d),[h,m,g]}var Mue={kernelName:xc,backendName:"wasm",kernelFunc:Rue};function Pue(e){let{backend:t,inputs:n,attrs:a}=e,{input:r}=n,{numBuckets:s}=a,i=t.readSync(r.dataId),o=P0(i,s),l=t.makeOutput(r.shape,"int32");return t.typedArrayFromHeap(l).set(o),l}var Oue={kernelName:vc,backendName:"wasm",kernelFunc:Pue},Lue=!0,zue=cn(lo,Lue),bA;function Wue(e){bA=e.wasm.cwrap(so,null,["number","number","number","number"])}function Bue(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Ss(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("sum",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),y=v.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;bA(l,y,Et[b.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(b.shape,c);b.shape=x}return b}var Vue={kernelName:so,backendName:"wasm",setupFunc:Wue,kernelFunc:Bue},Uue=an(uo),Gue=an(po),xA;function Hue(e){xA=e.wasm.cwrap(hs,null,["number","array","number","array","number","number"])}function jue(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,s=n.dataIdMap.get(r.dataId).id,{reps:i}=a,o=new Array(r.shape.length);for(let c=0;c{let{x:a}=e,{k:r,sorted:s}=n,i=t.dataIdMap.get(a.dataId).id,o=new Uint8Array(new Int32Array(a.shape).buffer),l=a.shape.slice();l[l.length-1]=r;let u=t.makeOutput(l,a.dtype),p=t.dataIdMap.get(u.dataId).id,d=t.makeOutput(l,"int32"),c=t.dataIdMap.get(d.dataId).id;return vA(i,o,a.shape.length,Et[a.dtype],r,s,p,c),[u,d]},Yue={kernelName:vu,backendName:"wasm",setupFunc:Kue,kernelFunc:Xue},wA;function Zue(e){wA=e.wasm.cwrap(wu,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function Jue(e){let{backend:t,inputs:n,attrs:a}=e,{image:r,transforms:s}=n,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],y=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),b=new Uint8Array(new Int32Array(v.computeStrides(g)).buffer),x=t.makeOutput(g,r.dtype),w=t.dataIdMap.get(x.dataId).id,I=t.dataIdMap.get(r.dataId).id,T=t.dataIdMap.get(s.dataId).id,C=i==="nearest"?1:2,E;switch(o){case"constant":E=1;break;case"reflect":E=2;break;case"wrap":E=3;break;case"nearest":E=4;break;default:E=1;break}return wA(I,T,s.shape[0]>1,p,m,f,h,c,d,y,r.shape.length-1,b,g.length-1,C,E,l,w),x}var Que={kernelName:wu,backendName:"wasm",setupFunc:Zue,kernelFunc:Jue};function epe(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r.shape[s],o=r.shape.length,l=new Array(o-1),u=0;for(let h=0;h({dataId:h,dtype:m,shape:l}))}var tpe={kernelName:ku,backendName:"wasm",kernelFunc:epe};function npe(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var ape={kernelName:Iu,backendName:"wasm",kernelFunc:npe},rpe=[Fse,Dse,Mse,Lse,jse,Xse,Jse,tie,sie,cie,die,hie,gie,yie,vie,Iie,Sie,Tie,_ie,$ie,Rie,Oie,Wie,Bie,Uie,Gie,Hie,jie,Xie,Yie,Jie,toe,roe,ooe,poe,hoe,foe,yoe,zse,voe,koe,Soe,Toe,Coe,_oe,Aoe,Foe,Moe,Ooe,Woe,Uoe,joe,Koe,Zoe,Qoe,ele,ale,ile,ule,cle,mle,gle,ble,eA,kle,Tle,_le,Ale,Fle,Dle,Rle,nie,Ole,Wle,Ule,jle,qle,Kle,Zle,eue,aue,rue,uie,oue,uue,due,fue,yue,xue,wue,kue,Iue,Tue,_ue,$ue,Due,Mue,Oue,zue,Vue,Uue,Gue,que,Yue,Que,Use,tpe,ape];for(let e of rpe)kc(e);var gx=H();gx.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]))}catch(e){return!1}});gx.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(gx.get("IS_NODE"))return!1;try{return new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch(e){return!1}});var fI=us(SF()),spe=us(TF()),gI=us(NF()),yI=fI.default||fI,ipe=gI.default||gI,kA=class extends rc{constructor(e){super(),this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(IA),yx=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new jh(this,Na())}write(e,t,n){let a={id:this.dataIdNextNumber++};return this.move(a,e,t,n,1),a}numDataIds(){return this.dataIdMap.numDataIds()}async time(e){let t=v.now();return e(),{kernelMs:v.now()-t}}move(e,t,n,a,r){let s=this.dataIdNextNumber++;if(a==="string"){let u=t;this.dataIdMap.set(e,{id:s,stringBytes:u,shape:n,dtype:a,memoryOffset:null,refCount:r});return}let i=v.sizeFromShape(n),o=i*v.bytesPerElement(a),l=this.wasm._malloc(o);this.dataIdMap.set(e,{id:s,memoryOffset:l,shape:n,dtype:a,refCount:r}),this.wasm.tfjs.registerTensor(s,i,l),t!=null&&this.wasm.HEAPU8.set(new Uint8Array(t.buffer,t.byteOffset,o),l)}async read(e){return this.readSync(e)}readSync(e,t,n){let{memoryOffset:a,dtype:r,shape:s,stringBytes:i}=this.dataIdMap.get(e);if(r==="string")return(t==null||t===0)&&(n==null||n>=i.length)?i:i.slice(t,n);t=t||0,n=n||v.sizeFromShape(s);let o=v.bytesPerElement(r),l=this.wasm.HEAPU8.slice(a+t*o,a+n*o);return upe(l.buffer,r)}disposeData(e,t=!1){if(this.dataIdMap.has(e)){let n=this.dataIdMap.get(e);if(n.refCount--,!t&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(e)}return!0}refCount(e){return this.dataIdMap.has(e)?this.dataIdMap.get(e).refCount:0}incRef(e){let t=this.dataIdMap.get(e);t!=null&&t.refCount++}floatPrecision(){return 32}getMemoryOffset(e){return this.dataIdMap.get(e).memoryOffset}dispose(){this.wasm.tfjs.dispose(),"PThread"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,n){let a;if(n==null)a=this.write(null,e,t);else{let r=this.dataIdNextNumber++;a={id:r},this.dataIdMap.set(a,{id:r,memoryOffset:n,shape:e,dtype:t,refCount:1});let s=v.sizeFromShape(e);this.wasm.tfjs.registerTensor(r,s,n)}return{dataId:a,shape:e,dtype:t}}typedArrayFromHeap({shape:e,dtype:t,dataId:n}){let a=this.wasm.HEAPU8.buffer,{memoryOffset:r}=this.dataIdMap.get(n),s=v.sizeFromShape(e);switch(t){case"float32":return new Float32Array(a,r,s);case"int32":return new Int32Array(a,r,s);case"bool":return new Uint8Array(a,r,s);default:throw new Error(`Unknown dtype ${t}`)}}};function ope(e){return(t,n)=>(v.fetch(e,{credentials:"same-origin"}).then(a=>{a.ok||t.env.a(`failed to load wasm binary file at '${e}'`),a.arrayBuffer().then(r=>{WebAssembly.instantiate(r,t).then(s=>{n(s.instance,s.module)})})}),{})}function bI(e,t,n){if(Gh!=null)return Gh;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),Wp!=null&&Wp[a]!=null?Wp[a]:n+a}async function lpe(){let[e,t]=await Promise.all([H().getAsync("WASM_HAS_SIMD_SUPPORT"),H().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(o,l)=>{if(o.endsWith(".worker.js")){let u=spe.wasmWorkerContents.replace(/\n/g,"\\n"),p=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(p)}return o.endsWith(".wasm")?bI(e,t,Op!=null?Op:l):l+o},n1&&(r.instantiateWasm=ope(bI(e,t,Op!=null?Op:"")));let s=!1;r.onAbort=()=>{s||Bp||(Bp=!0,a({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"}))};let i;t&&e&&Gh==null?(r.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+yI.toString()],{type:"text/javascript"}),i=yI(r)):i=ipe(r),i.then(o=>{s=!0,Bp=!1;let l=null;o.tfjs={init:o.cwrap("init",null,[]),initWithThreadsCount:o.cwrap("init_with_threads_count",null,["number"]),getThreadsCount:o.cwrap("get_threads_count","number",[]),registerTensor:o.cwrap("register_tensor",null,["number","number","number"]),disposeData:o.cwrap("dispose_data",l,["number"]),dispose:o.cwrap("dispose",l,[])},n({wasm:o})}).catch(a)})}function upe(e,t){switch(t){case"float32":return new Float32Array(e);case"int32":return new Int32Array(e);case"bool":return new Uint8Array(e);default:throw new Error(`Unknown dtype ${t}`)}}var ppe=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],Gh=null,Op=null,Wp={},Bp=!1,n1=!1;function cpe(e,t=!1){if(Rx("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),Bp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");Gh=e,n1=t}function dpe(e,t=!1){if(Bp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof e=="string")Op=e;else{Wp=e;let n=ppe.filter(a=>Wp[a]==null);if(n.length>0)throw new Error(`There were no entries found for the following binaries: ${n.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}n1=t}var IA=-1,yx=-1;function hpe(e){IA=e}function mpe(){if(yx===-1)throw new Error("WASM backend not initialized.");return yx}var fpe="4.0.0",gpe=2;Em("wasm",async()=>{let{wasm:e}=await lpe();return new kA(e)},gpe);var xI="4.0.0",ype="4.0.0",bpe="4.0.0",xpe="4.0.0",vpe="4.0.0",wpe={tfjs:xI,"tfjs-core":xI,"tfjs-converter":ype,"tfjs-backend-cpu":bpe,"tfjs-backend-webgl":xpe,"tfjs-backend-wasm":vpe};var GA={};ab(GA,{AnchorPosition:()=>c1,DrawBox:()=>ud,DrawBoxOptions:()=>Uf,DrawFaceLandmarks:()=>tg,DrawFaceLandmarksOptions:()=>eg,DrawTextField:()=>Or,DrawTextFieldOptions:()=>Ju,drawContour:()=>Dr,drawDetections:()=>_pe,drawFaceExpressions:()=>Epe,drawFaceLandmarks:()=>$pe});function Dr(e,t,n=!1){if(e.beginPath(),t.slice(1).forEach(({x:a,y:r},s)=>{let i=t[s];e.moveTo(i.x,i.y),e.lineTo(a,r)}),n){let a=t[t.length-1],r=t[0];if(!a||!r)return;e.moveTo(a.x,a.y),e.lineTo(r.x,r.y)}e.stroke()}var SA={};ab(SA,{computeReshapedDimensions:()=>s1,getCenterPoint:()=>To,isDimensions:()=>Wf,isEven:()=>zf,isFloat:()=>r1,isTensor:()=>Io,isTensor1D:()=>kpe,isTensor2D:()=>a1,isTensor3D:()=>Rr,isTensor4D:()=>xa,isValidNumber:()=>Ya,isValidProbablitiy:()=>ju,range:()=>hr,round:()=>So});var En=class{constructor(t,n){if(!Ya(t)||!Ya(n))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:n})}`);this._width=t,this._height=n}get width(){return this._width}get height(){return this._height}reverse(){return new En(1/this.width,1/this.height)}};function Io(e,t){return e instanceof Te&&e.shape.length===t}function kpe(e){return Io(e,1)}function a1(e){return Io(e,2)}function Rr(e){return Io(e,3)}function xa(e){return Io(e,4)}function r1(e){return e%1!==0}function zf(e){return e%2===0}function So(e,t=2){let n=10**t;return Math.floor(e*n)/n}function Wf(e){return e&&e.width&&e.height}function s1({width:e,height:t},n){let a=n/Math.max(t,e);return new En(Math.round(e*a),Math.round(t*a))}function To(e){return e.reduce((t,n)=>t.add(n),new Me(0,0)).div(new Me(e.length,e.length))}function hr(e,t,n){return Array(e).fill(0).map((a,r)=>t+r*n)}function Ya(e){return!!e&&e!==1/0&&e!==-1/0&&!Number.isNaN(e)||e===0}function ju(e){return Ya(e)&&e>=0&&e<=1}var Me=class{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new Me(this.x+t.x,this.y+t.y)}sub(t){return new Me(this.x-t.x,this.y-t.y)}mul(t){return new Me(this.x*t.x,this.y*t.y)}div(t){return new Me(this.x/t.x,this.y/t.y)}abs(){return new Me(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new Me(Math.floor(this.x),Math.floor(this.y))}};var ut=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(Ya)}static assertIsValidBox(t,n,a=!1){if(!ut.isRect(t))throw new Error(`${n} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!a&&(t.width<0||t.height<0))throw new Error(`${n} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,n=!0){let a=t||{},r=[a.left,a.top,a.right,a.bottom].every(Ya),s=[a.x,a.y,a.width,a.height].every(Ya);if(!s&&!r)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(a)}`);let[i,o,l,u]=s?[a.x,a.y,a.width,a.height]:[a.left,a.top,a.right-a.left,a.bottom-a.top];ut.assertIsValidBox({x:i,y:o,width:l,height:u},"Box.constructor",n),this._x=i,this._y=o,this._width=l,this._height=u}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new Me(this.left,this.top)}get topRight(){return new Me(this.right,this.top)}get bottomLeft(){return new Me(this.left,this.bottom)}get bottomRight(){return new Me(this.right,this.bottom)}round(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new ut({x:t,y:n,width:a,height:r})}floor(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new ut({x:t,y:n,width:a,height:r})}toSquare(){let{x:t,y:n,width:a,height:r}=this,s=Math.abs(a-r);return an&&(o=-d+n+a,d=n),c>t&&(l=-c+t+r,c=t),u<1&&(l=2-u,u=1),p<1&&(l=2-p,p=1),{dy:i,edy:l,dx:s,edx:o,y:p,ey:c,x:u,ex:d,w:a,h:r}}calibrate(t){return new ut({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var qu=class extends ut{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var Ts=class{constructor(t,n,a,r,s){this._imageDims=new En(s.width,s.height),this._score=t,this._classScore=n,this._className=a,this._box=new ut(r).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new ut(this._box).rescale(this.imageDims.reverse())}forSize(t,n){return new Ts(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var xt=class extends Ts{constructor(t,n,a){super(t,t,"",n,a)}forSize(t,n){let{score:a,relativeBox:r,imageDims:s}=super.forSize(t,n);return new xt(a,r,s)}};function TA(e,t,n=!0){let a=Math.max(0,Math.min(e.right,t.right)-Math.max(e.left,t.left)),r=Math.max(0,Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top)),s=a*r;return n?s/(e.area+t.area-s):s/Math.min(e.area,t.area)}function NA(e){let t=e.map(o=>o.x),n=e.map(o=>o.y),a=t.reduce((o,l)=>lloo({score:i,boxIndex:o})).sort((i,o)=>i.score-o.score).map(i=>i.boxIndex),s=[];for(;r.length>0;){let i=r.pop();s.push(i);let o=r,l=[];for(let u=0;ul[p]<=n)}return s}function mr(e,t){return P(()=>{let[n,a,r]=t,s=gn([...e.shape.slice(0,3),1],n,"float32"),i=gn([...e.shape.slice(0,3),1],a,"float32"),o=gn([...e.shape.slice(0,3),1],r,"float32"),l=Ze([s,i,o],3);return pe(e,l)})}function _A(e,t=!1){return P(()=>{let[n,a]=e.shape.slice(1);if(n===a)return e;let r=Math.abs(n-a),s=Math.round(r*(t?.5:1)),i=n>a?2:1,o=c=>{let h=e.shape.slice();return h[i]=c,gn(h,0,"float32")},l=o(s),u=r-l.shape[i],d=[t&&u?o(u):null,e,l].filter(c=>!!c).map(c=>oe(c,"float32"));return Ze(d,i)})}function Iye(e){let t=e.slice();for(let n=t.length-1;n>0;n--){let a=Math.floor(Math.random()*(n+1)),r=t[n];t[n]=t[a],t[a]=r}return t}function Bf(e){return 1/(1+Math.exp(-e))}function Tye(e){return Math.log(e/(1-e))}var Ku=class extends ut{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var Ipe=.5,Spe=.43,Tpe=.45,va=class{constructor(t,n,a=new Me(0,0)){let{width:r,height:s}=n;this._imgDims=new En(r,s),this._shift=a,this._positions=t.map(i=>i.mul(new Me(r,s)).add(a))}get shift(){return new Me(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new Me(this.imageWidth,this.imageHeight)))}forSize(t,n){return new this.constructor(this.relativePositions,{width:t,height:n})}shiftBy(t,n){return new this.constructor(this.relativePositions,this._imgDims,new Me(t,n))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,n={}){if(t){let s=t instanceof xt?t.box.floor():new ut(t);return this.shiftBy(s.x,s.y).align(null,n)}let{useDlibAlignment:a,minBoxPadding:r}={useDlibAlignment:!1,minBoxPadding:.2,...n};return a?this.alignDlib():this.alignMinBbox(r)}alignDlib(){let t=this.getRefPointsForAlignment(),[n,a,r]=t,s=d=>r.sub(d).magnitude(),i=(s(n)+s(a))/2,o=Math.floor(i/Tpe),l=To(t),u=Math.floor(Math.max(0,l.x-Ipe*o)),p=Math.floor(Math.max(0,l.y-Spe*o));return new Ku(u,p,Math.min(o,this.imageWidth+u),Math.min(o,this.imageHeight+p))}alignMinBbox(t){let n=NA(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var EA=class extends va{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],To([t[3],t[4]])]}};var Xu=class extends va{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(To)}};var id=class{constructor(t,n){this._label=t,this._distance=n}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${So(this.distance)})`:""}`}};var od=class extends ut{constructor(n,a){super(n);this._label=a}static assertIsValidLabeledBox(n,a){if(ut.assertIsValidBox(n,a),!Ya(n.label))throw new Error(`${a} - expected property label (${n.label}) to be a number`)}get label(){return this._label}};var Mr=class{constructor(t,n){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(n)||n.some(a=>!(a instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=n}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let n=t.descriptors.map(a=>new Float32Array(a));return new Mr(t.label,n)}};var AA=class extends od{constructor(n,a,r,s){super(n,a);this._score=r,this._classScore=s}static assertIsValidPredictedBox(n,a){if(od.assertIsValidLabeledBox(n,a),!ju(n.score)||!ju(n.classScore))throw new Error(`${a} - expected properties score (${n.score}) and (${n.classScore}) to be a number between [0, 1]`)}get score(){return this._score}get classScore(){return this._classScore}};function Pr(e){return e.detection instanceof xt}function Yu(e,t){return{...e,...{detection:t}}}function i1(){let e=window.fetch;if(!e)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),createVideoElement:()=>document.createElement("video"),fetch:e,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function ld(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function Vf(e){let t="";if(!e&&ld())try{e=Gr("fs")}catch(a){t=a.toString()}return{readFile:e?a=>new Promise((r,s)=>{e.readFile(a,(i,o)=>i?s(i):r(o))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function o1(){let e=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,n=global.Video||global.HTMLVideoElement,a=()=>{if(e)return new e;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},r=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},s=()=>{if(n)return new n;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},i=global.fetch,o=Vf();return{Canvas:e||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:a,createImageElement:r,createVideoElement:s,fetch:i,...o}}function l1(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var rn;function Npe(){if(!rn)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return rn}function u1(e){rn=e}function p1(){return l1()?u1(i1()):ld()?u1(o1()):null}function Cpe(e){if(rn||p1(),!rn)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=rn.Canvas,Image:n=rn.Image}=e;rn.Canvas=t,rn.Image=n,rn.createCanvasElement=e.createCanvasElement||(()=>new t),rn.createImageElement=e.createImageElement||(()=>new n),rn.ImageData=e.ImageData||rn.ImageData,rn.Video=e.Video||rn.Video,rn.fetch=e.fetch||rn.fetch,rn.readFile=e.readFile||rn.readFile}var et={getEnv:Npe,setEnv:u1,initialize:p1,createBrowserEnv:i1,createFileSystem:Vf,createNodejsEnv:o1,monkeyPatch:Cpe,isBrowser:l1,isNodejs:ld};p1();function Zu(e){return!et.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function aa(e){let{Canvas:t,CanvasRenderingContext2D:n}=et.getEnv();if(e instanceof n)return e;let a=Zu(e);if(!(a instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let r=a.getContext("2d");if(!r)throw new Error("resolveContext2d - canvas 2d context is null");return r}var c1=(r=>(r.TOP_LEFT="TOP_LEFT",r.TOP_RIGHT="TOP_RIGHT",r.BOTTOM_LEFT="BOTTOM_LEFT",r.BOTTOM_RIGHT="BOTTOM_RIGHT",r))(c1||{}),Ju=class{constructor(t={}){let{anchorPosition:n,backgroundColor:a,fontColor:r,fontSize:s,fontStyle:i,padding:o}=t;this.anchorPosition=n||"TOP_LEFT",this.backgroundColor=a||"rgba(0, 0, 0, 0.5)",this.fontColor=r||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=i||"Georgia",this.padding=o||4}},Or=class{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof Or?t.text:t,this.anchor=n,this.options=new Ju(a)}measureWidth(t){let{padding:n}=this.options;return this.text.map(a=>t.measureText(a).width).reduce((a,r)=>a{let m=l+d.x,f=l+d.y+(h+1)*i;a.fillText(c,m,f)})}};var Uf=class{constructor(t={}){let{boxColor:n,lineWidth:a,label:r,drawLabelOptions:s}=t;this.boxColor=n||"rgba(0, 0, 255, 1)",this.lineWidth=a||2,this.label=r;let i={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new Ju({...i,...s})}},ud=class{constructor(t,n={}){this.box=new ut(t),this.options=new Uf(n)}draw(t){let n=aa(t),{boxColor:a,lineWidth:r}=this.options,{x:s,y:i,width:o,height:l}=this.box;n.strokeStyle=a,n.lineWidth=r,n.strokeRect(s,i,o,l);let{label:u}=this.options;u&&new Or([u],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function _pe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof xt?a.score:Pr(a)?a.detection.score:void 0,s=a instanceof xt?a.box:Pr(a)?a.detection.box:new ut(a),i=r?`${So(r)}`:void 0;new ud(s,{label:i}).draw(e)})}function Gf(e){let{Image:t,Video:n}=et.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function $A(e){return new Promise((t,n)=>{(e instanceof et.getEnv().Canvas||Gf(e))&&t(null);function a(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),n(s))}function r(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),t(s))}e.addEventListener("load",r),e.addEventListener("error",a)})}function FA(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToImage - expected buf to be of type: Blob"));let a=new FileReader;a.onload=()=>{typeof a.result!="string"&&n(new Error("bufferToImage - expected reader.result to be a string, in onload"));let r=et.getEnv().createImageElement();r.onload=()=>t(r),r.onerror=n,r.src=a.result},a.onerror=n,a.readAsDataURL(e)})}function Qu(e){let{Image:t,Video:n}=et.getEnv();return e instanceof t?new En(e.naturalWidth,e.naturalHeight):e instanceof n?new En(e.videoWidth,e.videoHeight):new En(e.width,e.height)}function ep({width:e,height:t}){let{createCanvasElement:n}=et.getEnv(),a=n();return a.width=e,a.height=t,a}function Hf(e,t){let{ImageData:n}=et.getEnv();if(!(e instanceof n)&&!Gf(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||Qu(e),s=ep({width:a,height:r});return e instanceof n?aa(s).putImageData(e,0,0):aa(s).drawImage(e,0,0,a,r),s}async function DA(e,t){let n=t||et.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(xa(e)?1:0),i=P(()=>e.as3D(a,r,s).toInt());return await co.toPixels(i,n),i.dispose(),n}function d1(e){let{Image:t,Canvas:n,Video:a}=et.getEnv();return e instanceof t||e instanceof n||e instanceof a}function RA(e,t,n=!1){let{Image:a,Canvas:r}=et.getEnv();if(!(e instanceof a||e instanceof r))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return ep({width:1,height:1});let s=Qu(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,u=ep({width:t,height:t}),p=e instanceof r?e:Hf(e),d=Math.abs(o-l)/2,c=n&&o0&&p.height>0&&aa(u).drawImage(p,c,h,o,l),u}var Lr=class{constructor(t,n=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=n,this._batchSize=t.length,t.forEach((a,r)=>{if(Rr(a)){this._imageTensors[r]=a,this._inputDimensions[r]=a.shape;return}if(xa(a)){let i=a.shape[0];if(i!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${i} passed, but not supported in input array`);this._imageTensors[r]=a,this._inputDimensions[r]=a.shape.slice(1);return}let s=a instanceof et.getEnv().Canvas?a:Hf(a);this._canvases[r]=s,this._inputDimensions[r]=[s.height,s.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return hr(this.batchSize,0,1).map((t,n)=>this.getReshapedInputDimensions(n))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let n=this.getInputWidth(t),a=this.getInputHeight(t);return s1({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,P(()=>{let a=hr(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof Te){let o=xa(i)?i:Zt(i);return o=_A(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=za.resizeBilinear(o,[t,t],!1,!1)),o.as3D(t,t,3)}if(i instanceof et.getEnv().Canvas)return co.fromPixels(RA(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return Ft(a.map(s=>oe(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function vt(e){if(e instanceof Lr)return e;let t=Array.isArray(e)?e:[e];if(!t.length)throw new Error("toNetInput - empty array passed as input");let n=r=>Array.isArray(e)?` at input index ${r}:`:"",a=t.map(Zu);return a.forEach((r,s)=>{if(!d1(r)&&!Rr(r)&&!xa(r))throw typeof t[s]=="string"?new Error(`toNetInput -${n(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${n(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(xa(r)){let i=r.shape[0];if(i!==1)throw new Error(`toNetInput -${n(s)} tf.Tensor4D with batchSize ${i} passed, but not supported in input array`)}}),await Promise.all(a.map(r=>d1(r)&&$A(r))),new Lr(a,Array.isArray(e))}async function pd(e,t){let{Canvas:n}=et.getEnv(),a=e;if(!(e instanceof n)){let i=await vt(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await DA(o)}let r=aa(a);return t.map(i=>i instanceof xt?i.forSize(a.width,a.height).box.floor():i).map(i=>i.clipAtImageBorders(a.width,a.height)).map(({x:i,y:o,width:l,height:u})=>{let p=ep({width:l,height:u});return l>0&&u>0&&aa(p).putImageData(r.getImageData(i,o,l,u),0,0),p})}async function cd(e,t){if(!Rr(e)&&!xa(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(xa(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return P(()=>{let[n,a,r]=e.shape.slice(xa(e)?1:0);return t.map(o=>o instanceof xt?o.forSize(a,n).box:o).map(o=>o.clipAtImageBorders(a,n)).filter(o=>o.width>0&&o.height>0).map(({x:o,y:l,width:u,height:p})=>mo(e.as3D(n,a,r),[l,o,0],[p,u,r]))})}async function Ns(e,t){let{fetch:n}=et.getEnv(),a=await n(e,t);if(!(a.status<400))throw new Error(`failed to fetch: (${a.status}) ${a.statusText}, from url: ${a.url}`);return a}async function pve(e){let t=await Ns(e),n=await t.blob();if(!n.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${n.type}, for url: ${t.url}`);return FA(n)}async function MA(e){return(await Ns(e)).json()}async function fve(e){return new Float32Array(await(await Ns(e)).arrayBuffer())}function PA(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToVideo - expected buf to be of type: Blob"));let a=et.getEnv().createVideoElement();a.oncanplay=()=>t(a),a.onerror=n,a.playsInline=!0,a.muted=!0,a.src=URL.createObjectURL(e),a.play()})}async function wve(e){let t=await Ns(e),n=await t.blob();if(!n.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${n.type}, for url: ${t.url}`);return PA(n)}function jf(e,t){let n=`${t}-weights_manifest.json`;if(!e)return{modelBaseUri:"",manifestUri:n};if(e==="/")return{modelBaseUri:"/",manifestUri:`/${n}`};let a=e.startsWith("http://")?"http://":e.startsWith("https://")?"https://":"";e=e.replace(a,"");let r=e.split("/").filter(o=>o),s=e.endsWith(".json")?r[r.length-1]:n,i=a+(e.endsWith(".json")?r.slice(0,r.length-1):r).join("/");return i=e.startsWith("/")?`/${i}`:i,{modelBaseUri:i,manifestUri:i==="/"?`/${s}`:`${i}/${s}`}}async function OA(e,t){let{manifestUri:n,modelBaseUri:a}=jf(e,t),r=await MA(n);return Ut.loadWeights(r,a)}function _ve(e,t,n=!1){let{width:a,height:r}=n?Qu(t):t;return e.width=a,e.height=r,{width:a,height:r}}var dn=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:n,objProp:a}=this.traversePropertyPath(t);return n[a]}reassignParamFromPath(t,n){let{obj:a,objProp:r}=this.traversePropertyPath(t);a[r].dispose(),a[r]=n}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof ts)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof ts))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=kn(n.dataSync());n.dispose(),this.reassignParamFromPath(t,a)})}dispose(t=!0){this.getParamList().forEach(n=>{if(t&&n.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${n.path}`);n.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,n)=>t.concat(n)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let n=await OA(t,this.getDefaultModelName());this.loadFromWeightMap(n)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:n}=et.getEnv(),{manifestUri:a,modelBaseUri:r}=jf(t,this.getDefaultModelName()),s=u=>Promise.all(u.map(p=>n(p).then(d=>d.buffer))),i=Ut.weightsLoaderFactory(s),o=JSON.parse((await n(a)).toString()),l=await i(o,r);this.loadFromWeightMap(l)}loadFromWeightMap(t){let{paramMappings:n,params:a}=this.extractParamsFromWeightMap(t);this._paramMappings=n,this._params=a}extractWeights(t){let{paramMappings:n,params:a}=this.extractParams(t);this._paramMappings=n,this._params=a}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let n=t.split("/").reduce((s,i)=>{if(!s.nextObj.hasOwnProperty(i))throw new Error(`traversePropertyPath - object does not have property ${i}, for path ${t}`);return{obj:s.nextObj,objProp:i,nextObj:s.nextObj[i]}},{nextObj:this.params}),{obj:a,objProp:r}=n;if(!a||!r||!(a[r]instanceof Te))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:a,objProp:r}}};function Gn(e,t,n){return P(()=>{let a=vs(e,t.depthwise_filter,t.pointwise_filter,n,"same");return a=Y(a,t.bias),a})}function qf(e,t,n=!1){return P(()=>{let a=Xe(n?Y($t(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Gn(e,t.conv0,[2,2])),r=Gn(a,t.conv1,[1,1]),s=Xe(Y(a,r)),i=Gn(s,t.conv2,[1,1]);return Xe(Y(a,Y(r,i)))})}function dd(e,t,n=!1,a=!0){return P(()=>{let r=Xe(n?Y($t(e,t.conv0.filters,a?[2,2]:[1,1],"same"),t.conv0.bias):Gn(e,t.conv0,a?[2,2]:[1,1])),s=Gn(r,t.conv1,[1,1]),i=Xe(Y(r,s)),o=Gn(i,t.conv2,[1,1]),l=Xe(Y(r,Y(s,o))),u=Gn(l,t.conv3,[1,1]);return Xe(Y(r,Y(s,Y(o,u))))})}function No(e,t,n="same",a=!1){return P(()=>{let r=Y($t(e,t.filters,[1,1],n),t.bias);return a?Xe(r):r})}function An(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function tp(e,t){return(n,a,r,s)=>{let i=$a(e(n*a*r*r),[r,r,n,a]),o=Ke(e(a));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:o}}}function Kf(e,t){return(n,a,r)=>{let s=_a(e(n*a),[n,a]),i=Ke(e(a));return t.push({paramPath:`${r}/weights`},{paramPath:`${r}/bias`}),{weights:s,bias:i}}}var hd=class{constructor(t,n,a){this.depthwise_filter=t;this.pointwise_filter=n;this.bias=a}};function np(e,t){return(n,a,r)=>{let s=$a(e(9*n),[3,3,n,1]),i=$a(e(n*a),[1,1,n,a]),o=Ke(e(a));return t.push({paramPath:`${r}/depthwise_filter`},{paramPath:`${r}/pointwise_filter`},{paramPath:`${r}/bias`}),new hd(s,i,o)}}function ap(e){return t=>{let n=e(`${t}/depthwise_filter`,4),a=e(`${t}/pointwise_filter`,4),r=e(`${t}/bias`,1);return new hd(n,a,r)}}function ra(e,t){return(n,a,r)=>{let s=e[n];if(!Io(s,a))throw new Error(`expected weightMap[${n}] to be a Tensor${a}D, instead have ${s}`);return t.push({originalPath:n,paramPath:r||n}),s}}function $n(e){let t=e;function n(r){let s=t.slice(0,r);return t=t.slice(r),s}function a(){return t}return{extractWeights:n,getRemainingWeights:a}}function Xf(e,t){let n=tp(e,t),a=np(e,t);function r(i,o,l,u=!1){let p=u?n(i,o,3,`${l}/conv0`):a(i,o,`${l}/conv0`),d=a(o,o,`${l}/conv1`),c=a(o,o,`${l}/conv2`);return{conv0:p,conv1:d,conv2:c}}function s(i,o,l,u=!1){let{conv0:p,conv1:d,conv2:c}=r(i,o,l,u),h=a(o,o,`${l}/conv3`);return{conv0:p,conv1:d,conv2:c,conv3:h}}return{extractDenseBlock3Params:r,extractDenseBlock4Params:s}}function LA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=$n(e),{extractDenseBlock4Params:r}=Xf(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2"),l=r(128,256,"dense3");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o,dense3:l}}}function Yf(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function Zf(e,t){let n=ra(e,t),a=Yf(n),r=ap(n);function s(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),p=r(`${o}/conv1`),d=r(`${o}/conv2`);return{conv0:u,conv1:p,conv2:d}}function i(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),p=r(`${o}/conv1`),d=r(`${o}/conv2`),c=r(`${o}/conv3`);return{conv0:u,conv1:p,conv2:d,conv3:c}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:i}}function zA(e){let t=[],{extractDenseBlock4Params:n}=Zf(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return An(e,t),{params:a,paramMappings:t}}var rp=class extends dn{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return P(()=>{let a=oe(t.toBatchTensor(112,!0),"float32"),s=mr(a,[122.782,117.001,104.298]).div(255),i=dd(s,n.dense0,!0);return i=dd(i,n.dense1),i=dd(i,n.dense2),i=dd(i,n.dense3),i=ga(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await vt(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return zA(t)}extractParams(t){return LA(t)}};function md(e,t){return P(()=>Y(Fe(e,t.weights),t.bias))}function WA(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=$n(e),o=Kf(r,a)(t,n,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:a,params:{fc:o}}}function BA(e){let t=[],n=ra(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:a("fc")};return An(e,t),{params:r,paramMappings:t}}function Jf(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=a.startsWith("fc")?n:t;r[a]=e[a]}),{featureExtractorMap:t,classifierMap:n}}var sp=class extends dn{constructor(n,a){super(n);this._faceFeatureExtractor=a}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(n){let{params:a}=this;if(!a)throw new Error(`${this._name} - load model before inference`);return P(()=>{let r=n instanceof Lr?this.faceFeatureExtractor.forwardInput(n):n;return md(r.as2D(r.shape[0],-1),a.fc)})}dispose(n=!0){this.faceFeatureExtractor.dispose(n),super.dispose(n)}loadClassifierParams(n){let{params:a,paramMappings:r}=this.extractClassifierParams(n);this._params=a,this._paramMappings=r}extractClassifierParams(n){return WA(n,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=Jf(n);return this.faceFeatureExtractor.loadFromWeightMap(a),BA(r)}extractParams(n){let a=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),s=r*a+r,i=n.slice(0,n.length-s),o=n.slice(n.length-s);return this.faceFeatureExtractor.extractWeights(i),this.extractClassifierParams(o)}};var VA=["neutral","happy","sad","angry","fearful","disgusted","surprised"],Cs=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);VA.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return VA.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var Qf=class extends sp{constructor(t=new rp){super("FaceExpressionNet",t)}forwardInput(t){return P(()=>Ka(this.runNet(t)))}async forward(t){return this.forwardInput(await vt(t))}async predictExpressions(t){let n=await vt(t),a=await this.forwardInput(n),r=await Promise.all(ct(a).map(async i=>{let o=i.dataSync();return i.dispose(),o}));a.dispose();let s=r.map(i=>new Cs(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function UA(e){return e.expressions instanceof Cs}function h1(e,t){return{...e,...{expressions:t}}}function Epe(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof Cs?s:UA(s)?s.expressions:void 0;if(!i)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let l=i.asSortedArray().filter(d=>d.probability>n),u=Pr(s)?s.detection.box.bottomLeft:a||new Me(0,0);new Or(l.map(d=>`${d.expression} (${So(d.probability)})`),u).draw(e)})}function ip(e){return Pr(e)&&e.landmarks instanceof va&&e.unshiftedLandmarks instanceof va&&e.alignedRect instanceof xt}function Ape(e){let t=l=>l*180/Math.PI,n=(l,u)=>Math.sqrt((l._x-u._x)**2+(l._y-u._y)**2),a={roll:void 0,pitch:void 0,yaw:void 0},r=(l,u,p)=>{let d=Math.floor(l._x-u._x),c=Math.floor(u._x-p._x);return d-c},s=(l,u)=>{let p=Math.hypot(u._x-l._x,u._y-l._y),d=u._y-l._y,c=Math.asin(d/p),h=t(c),m=Math.floor(90-h),f=u._x-l._x<0?-1:1;return m*f},i=(l,u,p)=>{let d=n(l,p),c={_x:(l._x+p._x)/2,_y:(l._y+p._y)/2},h=n(u,c),m=Math.atan(h/d),f=Math.floor(t(m)),g=c._y-u._y<0?-1:1;return f*g};if(!e||!e._positions||e._positions.length!==68)return a;let o=e._positions;return a.roll=s(o[27],o[66]),a.pitch=i(o[14],o[30],o[2]),a.yaw=r(o[14],o[33],o[2]),a}function fd(e,t){let{box:n}=e.detection,a=t.shiftBy(n.x,n.y),r=a.align(),{imageDims:s}=e.detection,i=new xt(e.detection.score,r.rescale(s.reverse()),s),o=Ape(t);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i,angle:o}}}var eg=class{constructor(t={}){let{drawLines:n=!0,drawPoints:a=!0,lineWidth:r,lineColor:s,pointSize:i,pointColor:o}=t;this.drawLines=n,this.drawPoints=a,this.lineWidth=r||1,this.pointSize=i||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=o||"rgba(255, 0, 255, 1)"}},tg=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new eg(n)}draw(t){let n=aa(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof Xu&&(n.strokeStyle=i,n.lineWidth=s,Dr(n,this.faceLandmarks.getJawOutline()),Dr(n,this.faceLandmarks.getLeftEyeBrow()),Dr(n,this.faceLandmarks.getRightEyeBrow()),Dr(n,this.faceLandmarks.getNose()),Dr(n,this.faceLandmarks.getLeftEye(),!0),Dr(n,this.faceLandmarks.getRightEye(),!0),Dr(n,this.faceLandmarks.getMouth(),!0)),r){n.strokeStyle=l,n.fillStyle=l;let u=p=>{n.beginPath(),n.arc(p.x,p.y,o,0,2*Math.PI),n.fill()};this.faceLandmarks.positions.forEach(u)}}};function $pe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof va?a:ip(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new tg(r).draw(e)})}var HA="1.7.6";function Rpe(e,t){let n=tp(e,t),a=np(e,t);function r(i,o,l){let u=a(i,o,`${l}/separable_conv0`),p=a(o,o,`${l}/separable_conv1`),d=n(i,o,1,`${l}/expansion_conv`);return{separable_conv0:u,separable_conv1:p,expansion_conv:d}}function s(i,o){let l=a(i,i,`${o}/separable_conv0`),u=a(i,i,`${o}/separable_conv1`),p=a(i,i,`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:p}}return{extractConvParams:n,extractSeparableConvParams:a,extractReductionBlockParams:r,extractMainBlockParams:s}}function jA(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=$n(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=Rpe(a,n),u=s(3,32,3,"entry_flow/conv_in"),p=o(32,64,"entry_flow/reduction_block_0"),d=o(64,128,"entry_flow/reduction_block_1"),c={conv_in:u,reduction_block_0:p,reduction_block_1:d},h={};hr(t,0,1).forEach(y=>{h[`main_block_${y}`]=l(128,`middle_flow/main_block_${y}`)});let m=o(128,256,"exit_flow/reduction_block"),f=i(256,512,"exit_flow/separable_conv"),g={reduction_block:m,separable_conv:f};if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:n,params:{entry_flow:c,middle_flow:h,exit_flow:g}}}function Mpe(e,t){let n=ra(e,t),a=Yf(n),r=ap(n);function s(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),p=a(`${o}/expansion_conv`);return{separable_conv0:l,separable_conv1:u,expansion_conv:p}}function i(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),p=r(`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:p}}return{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}}function qA(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=Mpe(e,n),o=a("entry_flow/conv_in"),l=s("entry_flow/reduction_block_0"),u=s("entry_flow/reduction_block_1"),p={conv_in:o,reduction_block_0:l,reduction_block_1:u},d={};hr(t,0,1).forEach(f=>{d[`main_block_${f}`]=i(`middle_flow/main_block_${f}`)});let c=s("exit_flow/reduction_block"),h=r("exit_flow/separable_conv"),m={reduction_block:c,separable_conv:h};return An(e,n),{params:{entry_flow:p,middle_flow:d,exit_flow:m},paramMappings:n}}function KA(e,t,n){return Y($t(e,t.filters,n,"same"),t.bias)}function m1(e,t,n=!0){let a=n?Xe(e):e;return a=Gn(a,t.separable_conv0,[1,1]),a=Gn(Xe(a),t.separable_conv1,[1,1]),a=Dt(a,[3,3],[2,2],"same"),a=Y(a,KA(e,t.expansion_conv,[2,2])),a}function Ppe(e,t){let n=Gn(Xe(e),t.separable_conv0,[1,1]);return n=Gn(Xe(n),t.separable_conv1,[1,1]),n=Gn(Xe(n),t.separable_conv2,[1,1]),n=Y(n,e),n}var ng=class extends dn{constructor(n){super("TinyXception");this._numMainBlocks=n}forwardInput(n){let{params:a}=this;if(!a)throw new Error("TinyXception - load model before inference");return P(()=>{let r=oe(n.toBatchTensor(112,!0),"float32"),i=mr(r,[122.782,117.001,104.298]).div(255),o=Xe(KA(i,a.entry_flow.conv_in,[2,2]));return o=m1(o,a.entry_flow.reduction_block_0,!1),o=m1(o,a.entry_flow.reduction_block_1),hr(this._numMainBlocks,0,1).forEach(l=>{o=Ppe(o,a.middle_flow[`main_block_${l}`])}),o=m1(o,a.exit_flow.reduction_block),o=Xe(Gn(o,a.exit_flow.separable_conv,[1,1])),o})}async forward(n){return this.forwardInput(await vt(n))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(n){return qA(n,this._numMainBlocks)}extractParams(n){return jA(n,this._numMainBlocks)}};function XA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=$n(e),r=Kf(n,t),s=r(512,1,"fc/age"),i=r(512,2,"fc/gender");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{fc:{age:s,gender:i}}}}function YA(e){let t=[],n=ra(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:{age:a("fc/age"),gender:a("fc/gender")}};return An(e,t),{params:r,paramMappings:t}}var f1=(n=>(n.FEMALE="female",n.MALE="male",n))(f1||{});var ag=class extends dn{constructor(n=new ng(2)){super("AgeGenderNet");this._faceFeatureExtractor=n}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(n){let{params:a}=this;if(!a)throw new Error(`${this._name} - load model before inference`);return P(()=>{let r=n instanceof Lr?this.faceFeatureExtractor.forwardInput(n):n,s=ga(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),i=md(s,a.fc.age).as1D(),o=md(s,a.fc.gender);return{age:i,gender:o}})}forwardInput(n){return P(()=>{let{age:a,gender:r}=this.runNet(n);return{age:a,gender:Ka(r)}})}async forward(n){return this.forwardInput(await vt(n))}async predictAgeAndGender(n){let a=await vt(n),r=await this.forwardInput(a),s=ct(r.age),i=ct(r.gender),o=s.map((u,p)=>({ageTensor:u,genderTensor:i[p]})),l=await Promise.all(o.map(async({ageTensor:u,genderTensor:p})=>{let d=u.dataSync()[0],c=p.dataSync()[0],h=c>.5,m=h?"male":"female",f=h?c:1-c;return u.dispose(),p.dispose(),{age:d,gender:m,genderProbability:f}}));return r.age.dispose(),r.gender.dispose(),a.isBatchInput?l:l[0]}getDefaultModelName(){return"age_gender_model"}dispose(n=!0){this.faceFeatureExtractor.dispose(n),super.dispose(n)}loadClassifierParams(n){let{params:a,paramMappings:r}=this.extractClassifierParams(n);this._params=a,this._paramMappings=r}extractClassifierParams(n){return XA(n)}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=Jf(n);return this.faceFeatureExtractor.loadFromWeightMap(a),YA(r)}extractParams(n){let r=n.slice(0,n.length-1539),s=n.slice(n.length-1539);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(s)}};var op=class extends sp{postProcess(t,n,a){let r=a.map(({width:i,height:o})=>{let l=n/Math.max(o,i);return{width:i*l,height:o*l}}),s=r.length;return P(()=>{let i=(d,c)=>Ft([gn([68],d,"float32"),gn([68],c,"float32")],1).as2D(1,136).as1D(),o=(d,c)=>{let{width:h,height:m}=r[d];return c(h,m)?Math.abs(h-m)/2:0},l=d=>o(d,(c,h)=>co(d,(c,h)=>hi(l(c),u(c))))).div(Ft(Array.from(Array(s),(d,c)=>i(r[c].width,r[c].height))))})}forwardInput(t){return P(()=>{let n=this.runNet(t);return this.postProcess(n,t.inputSize,t.inputDimensions.map(([a,r])=>({height:a,width:r})))})}async forward(t){return this.forwardInput(await vt(t))}async detectLandmarks(t){let n=await vt(t),a=P(()=>ct(this.forwardInput(n))),r=await Promise.all(a.map(async(s,i)=>{let o=Array.from(s.dataSync()),l=o.filter((p,d)=>zf(d)),u=o.filter((p,d)=>!zf(d));return new Xu(Array(68).fill(0).map((p,d)=>new Me(l[d],u[d])),{height:n.getInputHeight(i),width:n.getInputWidth(i)})}));return a.forEach(s=>s.dispose()),n.isBatchInput?r:r[0]}getClassifierChannelsOut(){return 136}};var lp=class extends op{constructor(t=new rp){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function ZA(e){let t=[],{extractDenseBlock3Params:n}=Zf(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return An(e,t),{params:a,paramMappings:t}}function JA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=$n(e),{extractDenseBlock3Params:r}=Xf(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o}}}var rg=class extends dn{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return P(()=>{let a=oe(t.toBatchTensor(112,!0),"float32"),s=mr(a,[122.782,117.001,104.298]).div(255),i=qf(s,n.dense0,!0);return i=qf(i,n.dense1),i=qf(i,n.dense2),i=ga(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await vt(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return ZA(t)}extractParams(t){return JA(t)}};var sg=class extends op{constructor(t=new rg){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var QA=class extends lp{};function e$(e,t){return Y(z(e,t.weights),t.biases)}function g1(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=$t(e,s,n,r);return o=Y(o,i),o=e$(o,t.scale),a?Xe(o):o}function t$(e,t){return g1(e,t,[1,1],!0)}function y1(e,t){return g1(e,t,[1,1],!1)}function ig(e,t){return g1(e,t,[2,2],!0,"valid")}function Ope(e,t){function n(o,l,u){let p=e(o),d=p.length/(l*u*u);if(r1(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${l}, filterSize: ${u}`);return P(()=>Ee($a(p,[l,d,u,u]),[2,3,1,0]))}function a(o,l,u,p){let d=n(o,l,u),c=Ke(e(l));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:c}}function r(o,l){let u=Ke(e(o)),p=Ke(e(o));return t.push({paramPath:`${l}/weights`},{paramPath:`${l}/biases`}),{weights:u,biases:p}}function s(o,l,u,p){let d=a(o,l,u,`${p}/conv`),c=r(l,`${p}/scale`);return{conv:d,scale:c}}function i(o,l,u,p,d=!1){let c=s((d?.5:1)*o,l,u,`${p}/conv1`),h=s(o,l,u,`${p}/conv2`);return{conv1:c,conv2:h}}return{extractConvLayerParams:s,extractResidualLayerParams:i}}function n$(e){let{extractWeights:t,getRemainingWeights:n}=$n(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=Ope(t,a),i=r(4704,32,7,"conv32_down"),o=s(9216,32,3,"conv32_1"),l=s(9216,32,3,"conv32_2"),u=s(9216,32,3,"conv32_3"),p=s(36864,64,3,"conv64_down",!0),d=s(36864,64,3,"conv64_1"),c=s(36864,64,3,"conv64_2"),h=s(36864,64,3,"conv64_3"),m=s(147456,128,3,"conv128_down",!0),f=s(147456,128,3,"conv128_1"),g=s(147456,128,3,"conv128_2"),y=s(589824,256,3,"conv256_down",!0),b=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),w=s(589824,256,3,"conv256_down_out"),I=P(()=>Ee(_a(t(256*128),[128,256]),[1,0]));if(a.push({paramPath:"fc"}),n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{params:{conv32_down:i,conv32_1:o,conv32_2:l,conv32_3:u,conv64_down:p,conv64_1:d,conv64_2:c,conv64_3:h,conv128_down:m,conv128_1:f,conv128_2:g,conv256_down:y,conv256_1:b,conv256_2:x,conv256_down_out:w,fc:I},paramMappings:a}}function Lpe(e,t){let n=ra(e,t);function a(i){let o=n(`${i}/scale/weights`,1),l=n(`${i}/scale/biases`,1);return{weights:o,biases:l}}function r(i){let o=n(`${i}/conv/filters`,4),l=n(`${i}/conv/bias`,1),u=a(i);return{conv:{filters:o,bias:l},scale:u}}function s(i){return{conv1:r(`${i}/conv1`),conv2:r(`${i}/conv2`)}}return{extractConvLayerParams:r,extractResidualLayerParams:s}}function a$(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Lpe(e,t),r=n("conv32_down"),s=a("conv32_1"),i=a("conv32_2"),o=a("conv32_3"),l=a("conv64_down"),u=a("conv64_1"),p=a("conv64_2"),d=a("conv64_3"),c=a("conv128_down"),h=a("conv128_1"),m=a("conv128_2"),f=a("conv256_down"),g=a("conv256_1"),y=a("conv256_2"),b=a("conv256_down_out"),{fc:x}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!a1(x))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${x}`);let w={conv32_down:r,conv32_1:s,conv32_2:i,conv32_3:o,conv64_down:l,conv64_1:u,conv64_2:p,conv64_3:d,conv128_down:c,conv128_1:h,conv128_2:m,conv256_down:f,conv256_1:g,conv256_2:y,conv256_down_out:b,fc:x};return An(e,t),{params:w,paramMappings:t}}function Za(e,t){let n=t$(e,t.conv1);return n=y1(n,t.conv2),n=Y(n,e),n=Xe(n),n}function gd(e,t){let n=ig(e,t.conv1);n=y1(n,t.conv2);let a=ga(e,2,2,"valid"),r=It(a.shape),s=a.shape[3]!==n.shape[3];if(a.shape[1]!==n.shape[1]||a.shape[2]!==n.shape[2]){let o=[...n.shape];o[1]=1;let l=It(o);n=Ze([n,l],1);let u=[...n.shape];u[2]=1;let p=It(u);n=Ze([n,p],2)}return a=s?Ze([a,r],3):a,n=Y(a,n),n=Xe(n),n}var up=class extends dn{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return P(()=>{let a=oe(t.toBatchTensor(150,!0),"float32"),s=mr(a,[122.782,117.001,104.298]).div(255),i=ig(s,n.conv32_down);i=Dt(i,3,2,"valid"),i=Za(i,n.conv32_1),i=Za(i,n.conv32_2),i=Za(i,n.conv32_3),i=gd(i,n.conv64_down),i=Za(i,n.conv64_1),i=Za(i,n.conv64_2),i=Za(i,n.conv64_3),i=gd(i,n.conv128_down),i=Za(i,n.conv128_1),i=Za(i,n.conv128_2),i=gd(i,n.conv256_down),i=Za(i,n.conv256_1),i=Za(i,n.conv256_2),i=gd(i,n.conv256_down_out);let o=i.mean([1,2]);return Fe(o,n.fc)})}async forward(t){return this.forwardInput(await vt(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)!=null&&s.some(i=>i<=0))return new Float32Array(128);let n=await vt(t),a=P(()=>ct(this.forwardInput(n))),r=await Promise.all(a.map(i=>i.data()));return a.forEach(i=>i.dispose()),n.isBatchInput?r:r[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return a$(t)}extractParams(t){return n$(t)}};function eIe(e){let t=new up;return t.extractWeights(e),t}function b1(e,t){return{...e,...{descriptor:t}}}function rIe(e){return typeof e.age=="number"}function x1(e,t){return{...e,...{age:t}}}function lIe(e){return(e.gender==="male"||e.gender==="female")&&ju(e.genderProbability)}function v1(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function zpe(e,t){function n(l,u){let p=$a(e(9*l),[3,3,l,1]),d=Ke(e(l)),c=Ke(e(l)),h=Ke(e(l)),m=Ke(e(l));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/batch_norm_scale`},{paramPath:`${u}/batch_norm_offset`},{paramPath:`${u}/batch_norm_mean`},{paramPath:`${u}/batch_norm_variance`}),{filters:p,batch_norm_scale:d,batch_norm_offset:c,batch_norm_mean:h,batch_norm_variance:m}}function a(l,u,p,d,c){let h=$a(e(l*u*p*p),[p,p,l,u]),m=Ke(e(u));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${c?"batch_norm_offset":"bias"}`}),{filters:h,bias:m}}function r(l,u,p,d){let{filters:c,bias:h}=a(l,u,p,d,!0);return{filters:c,batch_norm_offset:h}}function s(l,u,p){let d=n(l,`${p}/depthwise_conv`),c=r(l,u,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:c}}function i(){let l=r(3,32,3,"mobilenetv1/conv_0"),u=s(32,64,"mobilenetv1/conv_1"),p=s(64,128,"mobilenetv1/conv_2"),d=s(128,128,"mobilenetv1/conv_3"),c=s(128,256,"mobilenetv1/conv_4"),h=s(256,256,"mobilenetv1/conv_5"),m=s(256,512,"mobilenetv1/conv_6"),f=s(512,512,"mobilenetv1/conv_7"),g=s(512,512,"mobilenetv1/conv_8"),y=s(512,512,"mobilenetv1/conv_9"),b=s(512,512,"mobilenetv1/conv_10"),x=s(512,512,"mobilenetv1/conv_11"),w=s(512,1024,"mobilenetv1/conv_12"),I=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:l,conv_1:u,conv_2:p,conv_3:d,conv_4:c,conv_5:h,conv_6:m,conv_7:f,conv_8:g,conv_9:y,conv_10:b,conv_11:x,conv_12:w,conv_13:I}}function o(){let l=r(1024,256,1,"prediction_layer/conv_0"),u=r(256,512,3,"prediction_layer/conv_1"),p=r(512,128,1,"prediction_layer/conv_2"),d=r(128,256,3,"prediction_layer/conv_3"),c=r(256,128,1,"prediction_layer/conv_4"),h=r(128,256,3,"prediction_layer/conv_5"),m=r(256,64,1,"prediction_layer/conv_6"),f=r(64,128,3,"prediction_layer/conv_7"),g=a(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),b=a(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),x=a(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),w=a(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),I=a(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),T=a(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),C=a(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),E=a(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),A=a(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),R=a(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),F=a(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:l,conv_1:u,conv_2:p,conv_3:d,conv_4:c,conv_5:h,conv_6:m,conv_7:f,box_predictor_0:{box_encoding_predictor:g,class_predictor:y},box_predictor_1:{box_encoding_predictor:b,class_predictor:x},box_predictor_2:{box_encoding_predictor:w,class_predictor:I},box_predictor_3:{box_encoding_predictor:T,class_predictor:C},box_predictor_4:{box_encoding_predictor:E,class_predictor:A},box_predictor_5:{box_encoding_predictor:R,class_predictor:F}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function r$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=$n(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=zpe(n,t),i=r(),o=s(),u={extra_dim:_c(n(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:{mobilenetv1:i,prediction_layer:o,output_layer:u},paramMappings:t}}function Wpe(e,t){let n=ra(e,t);function a(u,p,d){let c=n(`${u}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),h=n(`${u}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:c,batch_norm_offset:h}}function r(u){let p=`mobilenetv1/conv_${u}`,d=`MobilenetV1/Conv2d_${u}_depthwise`,c=`${p}/depthwise_conv`,h=`${p}/pointwise_conv`,m=n(`${d}/depthwise_weights`,4,`${c}/filters`),f=n(`${d}/BatchNorm/gamma`,1,`${c}/batch_norm_scale`),g=n(`${d}/BatchNorm/beta`,1,`${c}/batch_norm_offset`),y=n(`${d}/BatchNorm/moving_mean`,1,`${c}/batch_norm_mean`),b=n(`${d}/BatchNorm/moving_variance`,1,`${c}/batch_norm_variance`);return{depthwise_conv:{filters:m,batch_norm_scale:f,batch_norm_offset:g,batch_norm_mean:y,batch_norm_variance:b},pointwise_conv:a("MobilenetV1",u,h)}}function s(){return{conv_0:a("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:r(1),conv_2:r(2),conv_3:r(3),conv_4:r(4),conv_5:r(5),conv_6:r(6),conv_7:r(7),conv_8:r(8),conv_9:r(9),conv_10:r(10),conv_11:r(11),conv_12:r(12),conv_13:r(13)}}function i(u,p){let d=n(`${u}/weights`,4,`${p}/filters`),c=n(`${u}/biases`,1,`${p}/bias`);return{filters:d,bias:c}}function o(u){let p=i(`Prediction/BoxPredictor_${u}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${u}/box_encoding_predictor`),d=i(`Prediction/BoxPredictor_${u}/ClassPredictor`,`prediction_layer/box_predictor_${u}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}function l(){return{conv_0:a("Prediction",0,"prediction_layer/conv_0"),conv_1:a("Prediction",1,"prediction_layer/conv_1"),conv_2:a("Prediction",2,"prediction_layer/conv_2"),conv_3:a("Prediction",3,"prediction_layer/conv_3"),conv_4:a("Prediction",4,"prediction_layer/conv_4"),conv_5:a("Prediction",5,"prediction_layer/conv_5"),conv_6:a("Prediction",6,"prediction_layer/conv_6"),conv_7:a("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:o(0),box_predictor_1:o(1),box_predictor_2:o(2),box_predictor_3:o(3),box_predictor_4:o(4),box_predictor_5:o(5)}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:l}}function s$(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=Wpe(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Rr(r))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${r}`);let s={mobilenetv1:n(),prediction_layer:a(),output_layer:{extra_dim:r}};return An(e,t),{params:s,paramMappings:t}}function Ra(e,t,n){return P(()=>{let a=$t(e,t.filters,n,"same");return a=Y(a,t.batch_norm_offset),en(a,0,6)})}var Bpe=.0010000000474974513;function Vpe(e,t,n){return P(()=>{let a=bs(e,t.filters,n,"same");return a=ys(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Bpe),en(a,0,6)})}function Upe(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function i$(e,t){return P(()=>{let n,a=Ra(e,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((s,i)=>{let o=i+1,l=Upe(o);a=Vpe(a,s.depthwise_conv,l),a=Ra(a,s.pointwise_conv,[1,1]),o===11&&(n=a)}),n===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:a,conv11:n}})}function Gpe(e,t,n){let a=e.arraySync(),r=Math.min(a[t][0],a[t][2]),s=Math.min(a[t][1],a[t][3]),i=Math.max(a[t][0],a[t][2]),o=Math.max(a[t][1],a[t][3]),l=Math.min(a[n][0],a[n][2]),u=Math.min(a[n][1],a[n][3]),p=Math.max(a[n][0],a[n][2]),d=Math.max(a[n][1],a[n][3]),c=(i-r)*(o-s),h=(p-l)*(d-u);if(c<=0||h<=0)return 0;let m=Math.max(r,l),f=Math.max(s,u),g=Math.min(i,p),y=Math.min(o,d),b=Math.max(g-m,0)*Math.max(y-f,0);return b/(c+h-b)}function o$(e,t,n,a,r){let s=e.shape[0],i=Math.min(n,s),o=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>r).sort((p,d)=>d.score-p.score),l=p=>p<=a?1:0,u=[];return o.forEach(p=>{if(u.length>=i)return;let d=p.score;for(let c=u.length-1;c>=0;--c){let h=Gpe(e,p.boxIndex,u[c]);if(h!==0&&(p.score*=l(h),p.score<=r))break}d===p.score&&u.push(p.boxIndex)}),u}function Hpe(e){let t=ct(Ee(e,[1,0])),n=[pe(t[2],t[0]),pe(t[3],t[1])],a=[Y(t[0],he(n[0],2)),Y(t[1],he(n[1],2))];return{sizes:n,centers:a}}function jpe(e,t){let{sizes:n,centers:a}=Hpe(e),r=ct(Ee(t,[1,0])),s=he(z(fn(he(r[2],5)),n[0]),2),i=Y(z(he(r[0],10),n[0]),a[0]),o=he(z(fn(he(r[3],5)),n[1]),2),l=Y(z(he(r[1],10),n[1]),a[1]);return Ee(Ft([pe(i,s),pe(l,o),Y(i,s),Y(l,o)]),[1,0])}function l$(e,t,n){return P(()=>{let a=e.shape[0],r=jpe(W(Ln(n.extra_dim,[a,1,1]),[-1,4]),W(e,[-1,4]));r=W(r,[a,r.shape[0]/a,4]);let s=da(Be(t,[0,0,1],[-1,-1,-1])),i=Be(s,[0,0,0],[-1,-1,1]);i=W(i,[a,i.shape[1]]);let o=ct(r),l=ct(i);return{boxes:o,scores:l}})}function Co(e,t){return P(()=>{let n=e.shape[0],a=W(No(e,t.box_encoding_predictor),[n,-1,1,4]),r=W(No(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function u$(e,t,n){return P(()=>{let a=Ra(e,n.conv_0,[1,1]),r=Ra(a,n.conv_1,[2,2]),s=Ra(r,n.conv_2,[1,1]),i=Ra(s,n.conv_3,[2,2]),o=Ra(i,n.conv_4,[1,1]),l=Ra(o,n.conv_5,[2,2]),u=Ra(l,n.conv_6,[1,1]),p=Ra(u,n.conv_7,[2,2]),d=Co(t,n.box_predictor_0),c=Co(e,n.box_predictor_1),h=Co(r,n.box_predictor_2),m=Co(i,n.box_predictor_3),f=Co(l,n.box_predictor_4),g=Co(p,n.box_predictor_5),y=Ze([d.boxPredictionEncoding,c.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),b=Ze([d.classPrediction,c.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:y,classPredictions:b}})}var Ma=class{constructor({minConfidence:t,maxResults:n}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=n||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var _o=class extends dn{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return P(()=>{let a=oe(t.toBatchTensor(512,!1),"float32"),r=pe(he(a,127.5),1),s=i$(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=u$(s.out,s.conv11,n.prediction_layer);return l$(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await vt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new Ma(n),s=await vt(t),{boxes:i,scores:o}=this.forwardInput(s),l=i[0],u=o[0];for(let x=1;x{let[w,I]=[Math.max(0,y[x][0]),Math.min(1,y[x][2])].map(E=>E*g),[T,C]=[Math.max(0,y[x][1]),Math.min(1,y[x][3])].map(E=>E*f);return new xt(p[x],new Ku(T,w,C-T,I-w),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),u.dispose(),b}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return s$(t)}extractParams(t){return r$(t)}};function qpe(e){let t=new _o;return t.extractWeights(e),t}function eSe(e){return qpe(e)}var p$=class extends _o{};var c$=.4,d$=[new Me(.738768,.874946),new Me(2.42204,2.65704),new Me(4.30971,7.04493),new Me(10.246,4.59428),new Me(12.6868,11.8741)],h$=[new Me(1.603231,2.094468),new Me(6.041143,7.080126),new Me(2.882459,3.518061),new Me(4.266906,5.178857),new Me(9.041765,10.66308)],m$=[117.001,114.697,97.404],f$="tiny_yolov2_model",g$="tiny_yolov2_separable_conv_model";var og=e=>typeof e=="number";function y$(e){if(!e)throw new Error(`invalid config: ${e}`);if(typeof e.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${e.withSeparableConvs}`);if(!og(e.iouThreshold)||e.iouThreshold<0||e.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${e.iouThreshold}`);if(!Array.isArray(e.classes)||!e.classes.length||!e.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(e.classes)}`);if(!Array.isArray(e.anchors)||!e.anchors.length||!e.anchors.map(t=>t||{}).every(t=>og(t.x)&&og(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(e.anchors)}`);if(e.meanRgb&&(!Array.isArray(e.meanRgb)||e.meanRgb.length!==3||!e.meanRgb.every(og)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function pp(e){return P(()=>{let t=z(e,be(.10000000149011612));return Y(Xe(pe(e,t)),t)})}function zr(e,t){return P(()=>{let n=ya(e,[[0,0],[1,1],[1,1],[0,0]]);return n=$t(n,t.conv.filters,[1,1],"valid"),n=pe(n,t.bn.sub),n=z(n,t.bn.truediv),n=Y(n,t.conv.bias),pp(n)})}function Wr(e,t){return P(()=>{let n=ya(e,[[0,0],[1,1],[1,1],[0,0]]);return n=vs(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=Y(n,t.bias),pp(n)})}function Kpe(e,t){let n=tp(e,t);function a(i,o){let l=Ke(e(i)),u=Ke(e(i));return t.push({paramPath:`${o}/sub`},{paramPath:`${o}/truediv`}),{sub:l,truediv:u}}function r(i,o,l){let u=n(i,o,3,`${l}/conv`),p=a(o,`${l}/bn`);return{conv:u,bn:p}}let s=np(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function b$(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=$n(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:u}=Kpe(r,i),p;if(t.withSeparableConvs){let[d,c,h,m,f,g,y,b,x]=a,w=t.isFirstLayerConv2d?o(d,c,3,"conv0"):u(d,c,"conv0"),I=u(c,h,"conv1"),T=u(h,m,"conv2"),C=u(m,f,"conv3"),E=u(f,g,"conv4"),A=u(g,y,"conv5"),R=b?u(y,b,"conv6"):void 0,F=x?u(b,x,"conv7"):void 0,S=o(x||b||y,5*n,1,"conv8");p={conv0:w,conv1:I,conv2:T,conv3:C,conv4:E,conv5:A,conv6:R,conv7:F,conv8:S}}else{let[d,c,h,m,f,g,y,b,x]=a,w=l(d,c,"conv0"),I=l(c,h,"conv1"),T=l(h,m,"conv2"),C=l(m,f,"conv3"),E=l(f,g,"conv4"),A=l(g,y,"conv5"),R=l(y,b,"conv6"),F=l(b,x,"conv7"),S=o(x,5*n,1,"conv8");p={conv0:w,conv1:I,conv2:T,conv3:C,conv4:E,conv5:A,conv6:R,conv7:F,conv8:S}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:p,paramMappings:i}}function Xpe(e,t){let n=ra(e,t);function a(o){let l=n(`${o}/sub`,1),u=n(`${o}/truediv`,1);return{sub:l,truediv:u}}function r(o){let l=n(`${o}/filters`,4),u=n(`${o}/bias`,1);return{filters:l,bias:u}}function s(o){let l=r(`${o}/conv`),u=a(`${o}/bn`);return{conv:l,bn:u}}let i=ap(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function x$(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=Xpe(e,n),i;if(t.withSeparableConvs){let o=t.filterSizes&&t.filterSizes.length||9;i={conv0:t.isFirstLayerConv2d?a("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:o>7?s("conv6"):void 0,conv7:o>8?s("conv7"):void 0,conv8:a("conv8")}}else i={conv0:r("conv0"),conv1:r("conv1"),conv2:r("conv2"),conv3:r("conv3"),conv4:r("conv4"),conv5:r("conv5"),conv6:r("conv6"),conv7:r("conv7"),conv8:a("conv8")};return An(e,n),{params:i,paramMappings:n}}var fr=class{constructor({inputSize:t,scoreThreshold:n}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=n||.5,typeof this._inputSize!="number"||this._inputSize%32!==0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var w1=class extends dn{constructor(n){super("TinyYolov2");y$(n),this._config=n}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(n,a){let r=zr(n,a.conv0);return r=Dt(r,[2,2],[2,2],"same"),r=zr(r,a.conv1),r=Dt(r,[2,2],[2,2],"same"),r=zr(r,a.conv2),r=Dt(r,[2,2],[2,2],"same"),r=zr(r,a.conv3),r=Dt(r,[2,2],[2,2],"same"),r=zr(r,a.conv4),r=Dt(r,[2,2],[2,2],"same"),r=zr(r,a.conv5),r=Dt(r,[2,2],[1,1],"same"),r=zr(r,a.conv6),r=zr(r,a.conv7),No(r,a.conv8,"valid",!1)}runMobilenet(n,a){let r=this.config.isFirstLayerConv2d?pp(No(n,a.conv0,"valid",!1)):Wr(n,a.conv0);return r=Dt(r,[2,2],[2,2],"same"),r=Wr(r,a.conv1),r=Dt(r,[2,2],[2,2],"same"),r=Wr(r,a.conv2),r=Dt(r,[2,2],[2,2],"same"),r=Wr(r,a.conv3),r=Dt(r,[2,2],[2,2],"same"),r=Wr(r,a.conv4),r=Dt(r,[2,2],[2,2],"same"),r=Wr(r,a.conv5),r=Dt(r,[2,2],[1,1],"same"),r=a.conv6?Wr(r,a.conv6):r,r=a.conv7?Wr(r,a.conv7):r,No(r,a.conv8,"valid",!1)}forwardInput(n,a){let{params:r}=this;if(!r)throw new Error("TinyYolov2 - load model before inference");return P(()=>{let s=oe(n.toBatchTensor(a,!1),"float32");return s=this.config.meanRgb?mr(s,this.config.meanRgb):s,s=s.div(255),this.config.withSeparableConvs?this.runMobilenet(s,r):this.runTinyYolov2(s,r)})}async forward(n,a){return this.forwardInput(await vt(n),a)}async detect(n,a={}){let{inputSize:r,scoreThreshold:s}=new fr(a),i=await vt(n),o=await this.forwardInput(i,r),l=P(()=>ct(o)[0].expandDims()),u={width:i.getInputWidth(0),height:i.getInputHeight(0)},p=await this.extractBoxes(l,i.getReshapedInputDimensions(0),s);o.dispose(),l.dispose();let d=p.map(y=>y.box),c=p.map(y=>y.score),h=p.map(y=>y.classScore),m=p.map(y=>this.config.classes[y.label]);return CA(d.map(y=>y.rescale(r)),c,this.config.iouThreshold,!0).map(y=>new Ts(c[y],h[y],m[y],d[y],u))}getDefaultModelName(){return""}extractParamsFromWeightMap(n){return x$(n,this.config)}extractParams(n){let a=this.config.filterSizes||w1.DEFAULT_FILTER_SIZES,r=a?a.length:void 0;if(r!==7&&r!==8&&r!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${r} filterSizes in config`);return b$(n,this.config,this.boxEncodingSize,a)}async extractBoxes(n,a,r){let{width:s,height:i}=a,o=Math.max(s,i),l=o/s,u=o/i,p=n.shape[1],d=this.config.anchors.length,[c,h,m]=P(()=>{let b=n.reshape([p,p,d,this.boxEncodingSize]),x=b.slice([0,0,0,0],[p,p,d,4]),w=b.slice([0,0,0,4],[p,p,d,1]),I=this.withClassScores?Ka(b.slice([0,0,0,5],[p,p,d,this.config.classes.length]),3):be(0);return[x,w,I]}),f=[],g=await h.array(),y=await c.array();for(let b=0;br){let T=(x+Bf(y[b][x][w][0]))/p*l,C=(b+Bf(y[b][x][w][1]))/p*u,E=Math.exp(y[b][x][w][2])*this.config.anchors[w].x/p*l,A=Math.exp(y[b][x][w][3])*this.config.anchors[w].y/p*u,R=T-E/2,F=C-A/2,S={row:b,col:x,anchor:w},{classScore:M,label:B}=this.withClassScores?await this.extractPredictedClass(m,S):{classScore:1,label:0};f.push({box:new qu(R,F,R+E,F+A),score:I,classScore:I*M,label:B,...S})}}return c.dispose(),h.dispose(),m.dispose(),f}async extractPredictedClass(n,a){let{row:r,col:s,anchor:i}=a,o=await n.array();return Array(this.config.classes.length).fill(0).map((l,u)=>o[r][s][i][u]).map((l,u)=>({classScore:l,label:u})).reduce((l,u)=>l.classScore>u.classScore?l:u)}},Eo=w1;Eo.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var cp=class extends Eo{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:c$,classes:["face"],...t?{anchors:h$,meanRgb:m$}:{anchors:d$,withClassScores:!0}};super(n)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new xt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?g$:f$}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function HSe(e,t=!0){let n=new cp(t);return n.extractWeights(e),n}var lg=class extends fr{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var Pa=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function Ao(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>ip(l)?r(l):l.detection),i=a||(t instanceof Te?await cd(t,s):await pd(t,s)),o=await n(i);return i.forEach(l=>l instanceof Te&&l.dispose()),o}async function dp(e,t,n,a,r){return Ao([e],t,async s=>n(s[0]),a,r)}var v$=.4,w$=[new Me(1.603231,2.094468),new Me(6.041143,7.080126),new Me(2.882459,3.518061),new Me(4.266906,5.178857),new Me(9.041765,10.66308)],k$=[117.001,114.697,97.404];var hp=class extends Eo{constructor(){let t={withSeparableConvs:!0,iouThreshold:v$,classes:["face"],anchors:w$,meanRgb:k$,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new xt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var tt={ssdMobilenetv1:new _o,tinyFaceDetector:new hp,tinyYolov2:new cp,faceLandmark68Net:new lp,faceLandmark68TinyNet:new sg,faceRecognitionNet:new up,faceExpressionNet:new Qf,ageGenderNet:new ag},Ype=(e,t)=>tt.ssdMobilenetv1.locateFaces(e,t),wTe=(e,t)=>tt.tinyFaceDetector.locateFaces(e,t),kTe=(e,t)=>tt.tinyYolov2.locateFaces(e,t),Zpe=e=>tt.faceLandmark68Net.detectLandmarks(e),ITe=e=>tt.faceLandmark68TinyNet.detectLandmarks(e),STe=e=>tt.faceRecognitionNet.computeFaceDescriptor(e),TTe=e=>tt.faceExpressionNet.predictExpressions(e),NTe=e=>tt.ageGenderNet.predictAgeAndGender(e),Jpe=e=>tt.ssdMobilenetv1.load(e),CTe=e=>tt.tinyFaceDetector.load(e),_Te=e=>tt.tinyYolov2.load(e),ETe=e=>tt.faceLandmark68Net.load(e),ATe=e=>tt.faceLandmark68TinyNet.load(e),$Te=e=>tt.faceRecognitionNet.load(e),FTe=e=>tt.faceExpressionNet.load(e),DTe=e=>tt.ageGenderNet.load(e),RTe=Jpe,MTe=Ype,PTe=Zpe;var ug=class extends Pa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},$o=class extends ug{async run(){let t=await this.parentTask,n=await Ao(t,this.input,async a=>Promise.all(a.map(r=>tt.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>h1(a,n[r]))}withAgeAndGender(){return new Do(this,this.input)}},Fo=class extends ug{async run(){let t=await this.parentTask;if(!t)return;let n=await dp(t,this.input,a=>tt.faceExpressionNet.predictExpressions(a),this.extractedFaces);return h1(t,n)}withAgeAndGender(){return new Ro(this,this.input)}},_s=class extends $o{withAgeAndGender(){return new As(this,this.input)}withFaceDescriptors(){return new Fs(this,this.input)}},Es=class extends Fo{withAgeAndGender(){return new $s(this,this.input)}withFaceDescriptor(){return new Ds(this,this.input)}};var pg=class extends Pa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Do=class extends pg{async run(){let t=await this.parentTask,n=await Ao(t,this.input,async a=>Promise.all(a.map(r=>tt.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return x1(v1(a,i,o),s)})}withFaceExpressions(){return new $o(this,this.input)}},Ro=class extends pg{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await dp(t,this.input,s=>tt.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return x1(v1(t,a,r),n)}withFaceExpressions(){return new Fo(this,this.input)}},As=class extends Do{withFaceExpressions(){return new _s(this,this.input)}withFaceDescriptors(){return new Fs(this,this.input)}},$s=class extends Ro{withFaceExpressions(){return new Es(this,this.input)}withFaceDescriptor(){return new Ds(this,this.input)}};var cg=class extends Pa{constructor(n,a){super();this.parentTask=n;this.input=a}},Fs=class extends cg{async run(){let t=await this.parentTask;return(await Ao(t,this.input,a=>Promise.all(a.map(r=>tt.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>b1(t[r],a))}withFaceExpressions(){return new _s(this,this.input)}withAgeAndGender(){return new As(this,this.input)}},Ds=class extends cg{async run(){let t=await this.parentTask;if(!t)return;let n=await dp(t,this.input,a=>tt.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return b1(t,n)}withFaceExpressions(){return new Es(this,this.input)}withAgeAndGender(){return new $s(this,this.input)}};var dg=class extends Pa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?tt.faceLandmark68TinyNet:tt.faceLandmark68Net}},hg=class extends dg{async run(){let t=await this.parentTask,n=t.map(i=>i.detection),a=this.input instanceof Te?await cd(this.input,n):await pd(this.input,n),r=await Promise.all(a.map(i=>this.landmarkNet.detectLandmarks(i)));return a.forEach(i=>i instanceof Te&&i.dispose()),t.filter((i,o)=>r[o]).map((i,o)=>fd(i,r[o]))}withFaceExpressions(){return new _s(this,this.input)}withAgeAndGender(){return new As(this,this.input)}withFaceDescriptors(){return new Fs(this,this.input)}},mg=class extends dg{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Te?await cd(this.input,[n]):await pd(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Te&&s.dispose()),fd(t,r)}withFaceExpressions(){return new Es(this,this.input)}withAgeAndGender(){return new $s(this,this.input)}withFaceDescriptor(){return new Ds(this,this.input)}};var fg=class extends Pa{constructor(n,a=new Ma){super();this.input=n;this.options=a}},yd=class extends fg{async run(){let{input:t,options:n}=this,a;if(n instanceof lg)a=tt.tinyFaceDetector.locateFaces(t,n);else if(n instanceof Ma)a=tt.ssdMobilenetv1.locateFaces(t,n);else if(n instanceof fr)a=tt.tinyYolov2.locateFaces(t,n);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return a}runAndExtendWithFaceDetections(){return new Promise((t,n)=>{this.run().then(a=>t(a.map(r=>Yu({},r)))).catch(a=>n(a))})}withFaceLandmarks(t=!1){return new hg(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new $o(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Do(this.runAndExtendWithFaceDetections(),this.input)}},gg=class extends fg{async run(){let t=await new yd(this.input,this.options),n=t[0];return t.forEach(a=>{a.score>n.score&&(n=a)}),n}runAndExtendWithFaceDetection(){return new Promise(async t=>{let n=await this.run();t(n?Yu({},n):void 0)})}withFaceLandmarks(t=!1){return new mg(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Fo(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Ro(this.runAndExtendWithFaceDetection(),this.input)}};function DNe(e,t=new Ma){return new gg(e,t)}function k1(e,t=new Ma){return new yd(e,t)}async function Qpe(e,t){return k1(e,new Ma(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function zNe(e,t={}){return k1(e,new fr(t)).withFaceLandmarks().withFaceDescriptors()}var WNe=Qpe;function I$(e,t){if(e.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let n=Array.from(e),a=Array.from(t);return Math.sqrt(n.map((r,s)=>r-a[s]).reduce((r,s)=>r+s*s,0))}var yg=class{constructor(t,n=.6){this._distanceThreshold=n;let a=Array.isArray(t)?t:[t];if(!a.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let r=1,s=()=>`person ${r++}`;this._labeledDescriptors=a.map(i=>{if(i instanceof Mr)return i;if(i instanceof Float32Array)return new Mr(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new Mr(s(),[i.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,n){return n.map(a=>I$(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new id(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>Mr.fromJSON(a));return new yg(n,t.distanceThreshold)}};function r2e(e){let t=new hp;return t.extractWeights(e),t}function ece(e,t){let{width:n,height:a}=new En(t.width,t.height);if(n<=0||a<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:n,height:a})}`);if(Array.isArray(e))return e.map(r=>ece(r,{width:n,height:a}));if(ip(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return fd(Yu(e,r),s)}return Pr(e)?Yu(e,e.detection.forSize(n,a)):e instanceof va||e instanceof xt?e.forSize(n,a):e}var f2e=HA;export{ag as AgeGenderNet,qu as BoundingBox,ut as Box,Pa as ComposableTask,Fs as ComputeAllFaceDescriptorsTask,cg as ComputeFaceDescriptorsTaskBase,Ds as ComputeSingleFaceDescriptorTask,hg as DetectAllFaceLandmarksTask,yd as DetectAllFacesTask,dg as DetectFaceLandmarksTaskBase,fg as DetectFacesTaskBase,mg as DetectSingleFaceLandmarksTask,gg as DetectSingleFaceTask,En as Dimensions,VA as FACE_EXPRESSION_LABELS,xt as FaceDetection,p$ as FaceDetectionNet,Qf as FaceExpressionNet,Cs as FaceExpressions,lp as FaceLandmark68Net,sg as FaceLandmark68TinyNet,QA as FaceLandmarkNet,va as FaceLandmarks,EA as FaceLandmarks5,Xu as FaceLandmarks68,id as FaceMatch,yg as FaceMatcher,up as FaceRecognitionNet,f1 as Gender,od as LabeledBox,Mr as LabeledFaceDescriptors,Lr as NetInput,dn as NeuralNetwork,Ts as ObjectDetection,Me as Point,AA as PredictedBox,Ku as Rect,_o as SsdMobilenetv1,Ma as SsdMobilenetv1Options,hp as TinyFaceDetector,lg as TinyFaceDetectorOptions,cp as TinyYolov2,fr as TinyYolov2Options,WNe as allFaces,Qpe as allFacesSsdMobilenetv1,zNe as allFacesTinyYolov2,$A as awaitMediaLoaded,FA as bufferToImage,STe as computeFaceDescriptor,ep as createCanvas,Hf as createCanvasFromMedia,eSe as createFaceDetectionNet,eIe as createFaceRecognitionNet,qpe as createSsdMobilenetv1,r2e as createTinyFaceDetector,HSe as createTinyYolov2,k1 as detectAllFaces,Zpe as detectFaceLandmarks,ITe as detectFaceLandmarksTiny,PTe as detectLandmarks,DNe as detectSingleFace,GA as draw,et as env,I$ as euclideanDistance,x1 as extendWithAge,b1 as extendWithFaceDescriptor,Yu as extendWithFaceDetection,h1 as extendWithFaceExpressions,fd as extendWithFaceLandmarks,v1 as extendWithGender,cd as extractFaceTensors,pd as extractFaces,pve as fetchImage,MA as fetchJson,fve as fetchNetWeights,Ns as fetchOrThrow,wve as fetchVideo,aa as getContext2dOrThrow,Qu as getMediaDimensions,DA as imageTensorToCanvas,RA as imageToSquare,Tye as inverseSigmoid,TA as iou,d1 as isMediaElement,Gf as isMediaLoaded,rIe as isWithAge,Pr as isWithFaceDetection,UA as isWithFaceExpressions,ip as isWithFaceLandmarks,lIe as isWithGender,DTe as loadAgeGenderModel,RTe as loadFaceDetectionModel,FTe as loadFaceExpressionModel,ETe as loadFaceLandmarkModel,ATe as loadFaceLandmarkTinyModel,$Te as loadFaceRecognitionModel,Jpe as loadSsdMobilenetv1Model,CTe as loadTinyFaceDetectorModel,_Te as loadTinyYolov2Model,OA as loadWeightMap,MTe as locateFaces,_ve as matchDimensions,NA as minBbox,tt as nets,CA as nonMaxSuppression,mr as normalize,_A as padToSquare,NTe as predictAgeAndGender,TTe as recognizeFaceExpressions,ece as resizeResults,Zu as resolveInput,Iye as shuffleArray,Bf as sigmoid,Ype as ssdMobilenetv1,Oe as tf,wTe as tinyFaceDetector,kTe as tinyYolov2,vt as toNetInput,SA as utils,y$ as validateConfig,f2e as version}; + ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=t.dataIdMap.get(a.dataId).id,o=t.dataIdMap.get(r.dataId).id,l=t.dataIdMap.get(s.dataId).id,u=a.shape[0],p=v.sizeFromShape(s.shape),d=t.makeOutput([u,p],a.dtype),c=t.dataIdMap.get(d.dataId).id,h=t.makeOutput([p],s.dtype),m=t.dataIdMap.get(h.dataId).id,f=t.makeOutput([3],"int32"),g=t.dataIdMap.get(f.dataId).id;d$(i,o,l,u,c,m,g);let y=t.readSync(f.dataId),b;switch(y[0]){case 0:{b=N.getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(y[1],y[2]);break}case 1:{b=N.getSparseReshapeNegativeOutputDimErrorMessage(y[1],y[2]);break}case 2:b=N.getSparseReshapeEmptyTensorZeroOutputDimErrorMessage();break;case 3:{let x=Array.from(t.readSync(r.dataId)),w=Array.from(t.readSync(h.dataId));b=N.getSparseReshapeInputOutputMultipleErrorMessage(x,w);break}case 4:{let x=Array.from(t.readSync(r.dataId)),w=Array.from(t.readSync(h.dataId));b=N.getSparseReshapeInputOutputMismatchErrorMessage(x,w);break}default:b=""}if(t.disposeData(f.dataId),b)throw t.disposeData(d.dataId),t.disposeData(h.dataId),new Error(b);return[d,h]}var fue={kernelName:bu,backendName:"wasm",setupFunc:hue,kernelFunc:mue},h$;function m$(e){h$=e.wasm.cwrap("SparseSegmentReduction",null,["number","number","number","number","number","number","number","number","number"])}function f$(e,t){let{backend:n,inputs:a}=e,{data:r,indices:s,segmentIds:i}=a,o=s.shape[0],l=n.readSync(i.dataId,o-1,o)[0],u=o>0?l+1:0;if(u<0)throw new Error(N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let p=r.shape.slice();p[0]=u;let d=n.dataIdMap.get(r.dataId).id,c=n.dataIdMap.get(s.dataId).id,h=n.dataIdMap.get(i.dataId).id,m=n.makeOutput(p,r.dtype),f=n.dataIdMap.get(m.dataId).id,g=n.makeOutput([4],"int32"),y=n.dataIdMap.get(g.dataId).id;h$(d,Et[r.dtype],r.shape[0],c,h,f,y,t,0);let b=n.readSync(g.dataId),x;switch(b[0]){case 0:{x=N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{x=N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:x=N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b[1],b[2]);break;case 3:x=N.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(b[1],b[2],b[3]);break;default:x=""}if(n.disposeData(g.dataId),x)throw n.disposeData(m.dataId),new Error(x);return m}function gue(e){return f$(e,!0)}var yue={kernelName:fc,backendName:"wasm",setupFunc:m$,kernelFunc:gue};function bue(e){return f$(e,!1)}var xue={kernelName:gc,backendName:"wasm",setupFunc:m$,kernelFunc:bue};function vue(e){let{inputs:t,attrs:n,backend:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=n,o=v.parseAxisParam(i,r.shape)[0],l=N.prepareSplitSize(r,s,o),u=new Array(r.shape.length).fill(0),p=r.shape.slice();return l.map(d=>{let c=[...p];c[o]=d;let h=di({inputs:{x:r},attrs:{begin:u,size:c},backend:a});return u[o]+=d,h})}var wue={kernelName:yu,backendName:"wasm",kernelFunc:vue},kue=an(ro),Iue=an(yc),Sue=!0,Tue=cn(oo,Sue),g$;function Nue(e){g$=e.wasm.cwrap(ms,null,["number","number","number","number"])}function Cue(e){let{backend:t,inputs:n,attrs:a}=e,{alpha:r}=a,{x:s}=n,i=t.dataIdMap.get(s.dataId).id,o=t.makeOutput(s.shape,s.dtype),l=t.dataIdMap.get(o.dataId).id;return g$(i,r,Et[s.dtype],l),o}var _ue={kernelName:ms,backendName:"wasm",setupFunc:Nue,kernelFunc:Cue},y$;function Eue(e){y$=e.wasm.cwrap(xu,null,["number","array","number","array","array","array","array","array","number","number"])}function $ue(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a,{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:y,begin:b,end:x,strides:w}=jt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=Wn({inputs:{x:r},backend:t,attrs:{shape:m}});else if(g||y){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=jt.computeOutShape(b,x,w),C=di({inputs:{x:r},backend:t,attrs:{begin:b,size:T}});I=Wn({inputs:{x:C},backend:t,attrs:{shape:m}}),t.disposeData(C.dataId)}else{let T=t.makeOutput(h,"float32"),C=t.dataIdMap.get(r.dataId).id,E=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),$=new Uint8Array(new Int32Array(b).buffer),R=new Uint8Array(new Int32Array(x).buffer),F=new Uint8Array(new Int32Array(w).buffer),S=new Uint8Array(new Int32Array(h).buffer),M=new Uint8Array(new Int32Array(v.computeStrides(h)).buffer),B=t.dataIdMap.get(T.dataId).id;y$(C,E,r.shape.length,$,R,F,S,M,h.length,B),I=Wn({inputs:{x:T},backend:t,attrs:{shape:m}}),t.disposeData(T.dataId)}return I}var Aue={kernelName:xu,backendName:"wasm",setupFunc:Eue,kernelFunc:$ue};function Fue(e){let{backend:t,inputs:n,attrs:a}=e,{data:r,dataSplits:s}=n,{separator:i,nGramWidths:o,leftPad:l,rightPad:u,padWidth:p,preserveShortSequences:d}=a,c=t.readSync(r.dataId),h=t.readSync(s.dataId),[m,f]=R0(c,h,i,o,l,u,p,d),g=t.makeOutput([m.length],"string"),y=t.dataIdMap.get(g.dataId);y.stringBytes=m;let b=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(b).set(f),[g,b]}var Due={kernelName:bc,backendName:"wasm",kernelFunc:Fue};function Rue(e){let{backend:t,inputs:n,attrs:a}=e,{input:r,delimiter:s}=n,{skipEmpty:i}=a,o=t.readSync(r.dataId),l=t.readSync(s.dataId),[u,p,d]=M0(o,l[0],i),c=p.length,h=t.makeOutput([c,2],"int32");t.typedArrayFromHeap(h).set(u);let m=t.makeOutput([c],"string"),f=t.dataIdMap.get(m.dataId);f.stringBytes=p;let g=t.makeOutput([2],"int32");return t.typedArrayFromHeap(g).set(d),[h,m,g]}var Mue={kernelName:xc,backendName:"wasm",kernelFunc:Rue};function Pue(e){let{backend:t,inputs:n,attrs:a}=e,{input:r}=n,{numBuckets:s}=a,i=t.readSync(r.dataId),o=P0(i,s),l=t.makeOutput(r.shape,"int32");return t.typedArrayFromHeap(l).set(o),l}var Oue={kernelName:vc,backendName:"wasm",kernelFunc:Pue},Lue=!0,zue=cn(lo,Lue),b$;function Wue(e){b$=e.wasm.cwrap(so,null,["number","number","number","number"])}function Bue(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Ss(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("sum",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),y=v.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;b$(l,y,Et[b.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(b.shape,c);b.shape=x}return b}var Vue={kernelName:so,backendName:"wasm",setupFunc:Wue,kernelFunc:Bue},Uue=an(uo),Gue=an(po),x$;function Hue(e){x$=e.wasm.cwrap(hs,null,["number","array","number","array","number","number"])}function jue(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,s=n.dataIdMap.get(r.dataId).id,{reps:i}=a,o=new Array(r.shape.length);for(let c=0;c{let{x:a}=e,{k:r,sorted:s}=n,i=t.dataIdMap.get(a.dataId).id,o=new Uint8Array(new Int32Array(a.shape).buffer),l=a.shape.slice();l[l.length-1]=r;let u=t.makeOutput(l,a.dtype),p=t.dataIdMap.get(u.dataId).id,d=t.makeOutput(l,"int32"),c=t.dataIdMap.get(d.dataId).id;return v$(i,o,a.shape.length,Et[a.dtype],r,s,p,c),[u,d]},Yue={kernelName:vu,backendName:"wasm",setupFunc:Kue,kernelFunc:Xue},w$;function Zue(e){w$=e.wasm.cwrap(wu,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function Jue(e){let{backend:t,inputs:n,attrs:a}=e,{image:r,transforms:s}=n,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],y=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),b=new Uint8Array(new Int32Array(v.computeStrides(g)).buffer),x=t.makeOutput(g,r.dtype),w=t.dataIdMap.get(x.dataId).id,I=t.dataIdMap.get(r.dataId).id,T=t.dataIdMap.get(s.dataId).id,C=i==="nearest"?1:2,E;switch(o){case"constant":E=1;break;case"reflect":E=2;break;case"wrap":E=3;break;case"nearest":E=4;break;default:E=1;break}return w$(I,T,s.shape[0]>1,p,m,f,h,c,d,y,r.shape.length-1,b,g.length-1,C,E,l,w),x}var Que={kernelName:wu,backendName:"wasm",setupFunc:Zue,kernelFunc:Jue};function epe(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r.shape[s],o=r.shape.length,l=new Array(o-1),u=0;for(let h=0;h({dataId:h,dtype:m,shape:l}))}var tpe={kernelName:ku,backendName:"wasm",kernelFunc:epe};function npe(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var ape={kernelName:Iu,backendName:"wasm",kernelFunc:npe},rpe=[Fse,Dse,Mse,Lse,jse,Xse,Jse,tie,sie,cie,die,hie,gie,yie,vie,Iie,Sie,Tie,_ie,Aie,Rie,Oie,Wie,Bie,Uie,Gie,Hie,jie,Xie,Yie,Jie,toe,roe,ooe,poe,hoe,foe,yoe,zse,voe,koe,Soe,Toe,Coe,_oe,$oe,Foe,Moe,Ooe,Woe,Uoe,joe,Koe,Zoe,Qoe,ele,ale,ile,ule,cle,mle,gle,ble,e$,kle,Tle,_le,$le,Fle,Dle,Rle,nie,Ole,Wle,Ule,jle,qle,Kle,Zle,eue,aue,rue,uie,oue,uue,due,fue,yue,xue,wue,kue,Iue,Tue,_ue,Aue,Due,Mue,Oue,zue,Vue,Uue,Gue,que,Yue,Que,Use,tpe,ape];for(let e of rpe)kc(e);var gx=H();gx.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]))}catch(e){return!1}});gx.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(gx.get("IS_NODE"))return!1;try{return new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch(e){return!1}});var fI=us(SF()),spe=us(TF()),gI=us(NF()),yI=fI.default||fI,ipe=gI.default||gI,k$=class extends rc{constructor(e){super(),this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(I$),yx=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new jh(this,Na())}write(e,t,n){let a={id:this.dataIdNextNumber++};return this.move(a,e,t,n,1),a}numDataIds(){return this.dataIdMap.numDataIds()}async time(e){let t=v.now();return e(),{kernelMs:v.now()-t}}move(e,t,n,a,r){let s=this.dataIdNextNumber++;if(a==="string"){let u=t;this.dataIdMap.set(e,{id:s,stringBytes:u,shape:n,dtype:a,memoryOffset:null,refCount:r});return}let i=v.sizeFromShape(n),o=i*v.bytesPerElement(a),l=this.wasm._malloc(o);this.dataIdMap.set(e,{id:s,memoryOffset:l,shape:n,dtype:a,refCount:r}),this.wasm.tfjs.registerTensor(s,i,l),t!=null&&this.wasm.HEAPU8.set(new Uint8Array(t.buffer,t.byteOffset,o),l)}async read(e){return this.readSync(e)}readSync(e,t,n){let{memoryOffset:a,dtype:r,shape:s,stringBytes:i}=this.dataIdMap.get(e);if(r==="string")return(t==null||t===0)&&(n==null||n>=i.length)?i:i.slice(t,n);t=t||0,n=n||v.sizeFromShape(s);let o=v.bytesPerElement(r),l=this.wasm.HEAPU8.slice(a+t*o,a+n*o);return upe(l.buffer,r)}disposeData(e,t=!1){if(this.dataIdMap.has(e)){let n=this.dataIdMap.get(e);if(n.refCount--,!t&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(e)}return!0}refCount(e){return this.dataIdMap.has(e)?this.dataIdMap.get(e).refCount:0}incRef(e){let t=this.dataIdMap.get(e);t!=null&&t.refCount++}floatPrecision(){return 32}getMemoryOffset(e){return this.dataIdMap.get(e).memoryOffset}dispose(){this.wasm.tfjs.dispose(),"PThread"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,n){let a;if(n==null)a=this.write(null,e,t);else{let r=this.dataIdNextNumber++;a={id:r},this.dataIdMap.set(a,{id:r,memoryOffset:n,shape:e,dtype:t,refCount:1});let s=v.sizeFromShape(e);this.wasm.tfjs.registerTensor(r,s,n)}return{dataId:a,shape:e,dtype:t}}typedArrayFromHeap({shape:e,dtype:t,dataId:n}){let a=this.wasm.HEAPU8.buffer,{memoryOffset:r}=this.dataIdMap.get(n),s=v.sizeFromShape(e);switch(t){case"float32":return new Float32Array(a,r,s);case"int32":return new Int32Array(a,r,s);case"bool":return new Uint8Array(a,r,s);default:throw new Error(`Unknown dtype ${t}`)}}};function ope(e){return(t,n)=>(v.fetch(e,{credentials:"same-origin"}).then(a=>{a.ok||t.env.a(`failed to load wasm binary file at '${e}'`),a.arrayBuffer().then(r=>{WebAssembly.instantiate(r,t).then(s=>{n(s.instance,s.module)})})}),{})}function bI(e,t,n){if(Gh!=null)return Gh;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),Wp!=null&&Wp[a]!=null?Wp[a]:n+a}async function lpe(){let[e,t]=await Promise.all([H().getAsync("WASM_HAS_SIMD_SUPPORT"),H().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(o,l)=>{if(o.endsWith(".worker.js")){let u=spe.wasmWorkerContents.replace(/\n/g,"\\n"),p=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(p)}return o.endsWith(".wasm")?bI(e,t,Op!=null?Op:l):l+o},n1&&(r.instantiateWasm=ope(bI(e,t,Op!=null?Op:"")));let s=!1;r.onAbort=()=>{s||Bp||(Bp=!0,a({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"}))};let i;t&&e&&Gh==null?(r.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+yI.toString()],{type:"text/javascript"}),i=yI(r)):i=ipe(r),i.then(o=>{s=!0,Bp=!1;let l=null;o.tfjs={init:o.cwrap("init",null,[]),initWithThreadsCount:o.cwrap("init_with_threads_count",null,["number"]),getThreadsCount:o.cwrap("get_threads_count","number",[]),registerTensor:o.cwrap("register_tensor",null,["number","number","number"]),disposeData:o.cwrap("dispose_data",l,["number"]),dispose:o.cwrap("dispose",l,[])},n({wasm:o})}).catch(a)})}function upe(e,t){switch(t){case"float32":return new Float32Array(e);case"int32":return new Int32Array(e);case"bool":return new Uint8Array(e);default:throw new Error(`Unknown dtype ${t}`)}}var ppe=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],Gh=null,Op=null,Wp={},Bp=!1,n1=!1;function cpe(e,t=!1){if(Rx("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),Bp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");Gh=e,n1=t}function dpe(e,t=!1){if(Bp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof e=="string")Op=e;else{Wp=e;let n=ppe.filter(a=>Wp[a]==null);if(n.length>0)throw new Error(`There were no entries found for the following binaries: ${n.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}n1=t}var I$=-1,yx=-1;function hpe(e){I$=e}function mpe(){if(yx===-1)throw new Error("WASM backend not initialized.");return yx}var fpe="4.0.0",gpe=2;Em("wasm",async()=>{let{wasm:e}=await lpe();return new k$(e)},gpe);var xI="4.0.0",ype="4.0.0",bpe="4.0.0",xpe="4.0.0",vpe="4.0.0",wpe={tfjs:xI,"tfjs-core":xI,"tfjs-converter":ype,"tfjs-backend-cpu":bpe,"tfjs-backend-webgl":xpe,"tfjs-backend-wasm":vpe};var G$={};ab(G$,{AnchorPosition:()=>c1,DrawBox:()=>ud,DrawBoxOptions:()=>Uf,DrawFaceLandmarks:()=>tg,DrawFaceLandmarksOptions:()=>eg,DrawTextField:()=>Or,DrawTextFieldOptions:()=>Ju,drawContour:()=>Dr,drawDetections:()=>_pe,drawFaceExpressions:()=>Epe,drawFaceLandmarks:()=>Ape});function Dr(e,t,n=!1){if(e.beginPath(),t.slice(1).forEach(({x:a,y:r},s)=>{let i=t[s];e.moveTo(i.x,i.y),e.lineTo(a,r)}),n){let a=t[t.length-1],r=t[0];if(!a||!r)return;e.moveTo(a.x,a.y),e.lineTo(r.x,r.y)}e.stroke()}var S$={};ab(S$,{computeReshapedDimensions:()=>s1,getCenterPoint:()=>To,isDimensions:()=>Wf,isEven:()=>zf,isFloat:()=>r1,isTensor:()=>Io,isTensor1D:()=>kpe,isTensor2D:()=>a1,isTensor3D:()=>Rr,isTensor4D:()=>xa,isValidNumber:()=>Ya,isValidProbablitiy:()=>ju,range:()=>hr,round:()=>So});var En=class{constructor(t,n){if(!Ya(t)||!Ya(n))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:n})}`);this._width=t,this._height=n}get width(){return this._width}get height(){return this._height}reverse(){return new En(1/this.width,1/this.height)}};function Io(e,t){return e instanceof Te&&e.shape.length===t}function kpe(e){return Io(e,1)}function a1(e){return Io(e,2)}function Rr(e){return Io(e,3)}function xa(e){return Io(e,4)}function r1(e){return e%1!==0}function zf(e){return e%2===0}function So(e,t=2){let n=10**t;return Math.floor(e*n)/n}function Wf(e){return e&&e.width&&e.height}function s1({width:e,height:t},n){let a=n/Math.max(t,e);return new En(Math.round(e*a),Math.round(t*a))}function To(e){return e.reduce((t,n)=>t.add(n),new Me(0,0)).div(new Me(e.length,e.length))}function hr(e,t,n){return Array(e).fill(0).map((a,r)=>t+r*n)}function Ya(e){return!!e&&e!==1/0&&e!==-1/0&&!Number.isNaN(e)||e===0}function ju(e){return Ya(e)&&e>=0&&e<=1}var Me=class{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new Me(this.x+t.x,this.y+t.y)}sub(t){return new Me(this.x-t.x,this.y-t.y)}mul(t){return new Me(this.x*t.x,this.y*t.y)}div(t){return new Me(this.x/t.x,this.y/t.y)}abs(){return new Me(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new Me(Math.floor(this.x),Math.floor(this.y))}};var ut=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(Ya)}static assertIsValidBox(t,n,a=!1){if(!ut.isRect(t))throw new Error(`${n} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!a&&(t.width<0||t.height<0))throw new Error(`${n} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,n=!0){let a=t||{},r=[a.left,a.top,a.right,a.bottom].every(Ya),s=[a.x,a.y,a.width,a.height].every(Ya);if(!s&&!r)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(a)}`);let[i,o,l,u]=s?[a.x,a.y,a.width,a.height]:[a.left,a.top,a.right-a.left,a.bottom-a.top];ut.assertIsValidBox({x:i,y:o,width:l,height:u},"Box.constructor",n),this._x=i,this._y=o,this._width=l,this._height=u}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new Me(this.left,this.top)}get topRight(){return new Me(this.right,this.top)}get bottomLeft(){return new Me(this.left,this.bottom)}get bottomRight(){return new Me(this.right,this.bottom)}round(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new ut({x:t,y:n,width:a,height:r})}floor(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new ut({x:t,y:n,width:a,height:r})}toSquare(){let{x:t,y:n,width:a,height:r}=this,s=Math.abs(a-r);return an&&(o=-d+n+a,d=n),c>t&&(l=-c+t+r,c=t),u<1&&(l=2-u,u=1),p<1&&(l=2-p,p=1),{dy:i,edy:l,dx:s,edx:o,y:p,ey:c,x:u,ex:d,w:a,h:r}}calibrate(t){return new ut({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var qu=class extends ut{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var Ts=class{constructor(t,n,a,r,s){this._imageDims=new En(s.width,s.height),this._score=t,this._classScore=n,this._className=a,this._box=new ut(r).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new ut(this._box).rescale(this.imageDims.reverse())}forSize(t,n){return new Ts(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var xt=class extends Ts{constructor(t,n,a){super(t,t,"",n,a)}forSize(t,n){let{score:a,relativeBox:r,imageDims:s}=super.forSize(t,n);return new xt(a,r,s)}};function T$(e,t,n=!0){let a=Math.max(0,Math.min(e.right,t.right)-Math.max(e.left,t.left)),r=Math.max(0,Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top)),s=a*r;return n?s/(e.area+t.area-s):s/Math.min(e.area,t.area)}function N$(e){let t=e.map(o=>o.x),n=e.map(o=>o.y),a=t.reduce((o,l)=>lloo({score:i,boxIndex:o})).sort((i,o)=>i.score-o.score).map(i=>i.boxIndex),s=[];for(;r.length>0;){let i=r.pop();s.push(i);let o=r,l=[];for(let u=0;ul[p]<=n)}return s}function mr(e,t){return P(()=>{let[n,a,r]=t,s=gn([...e.shape.slice(0,3),1],n,"float32"),i=gn([...e.shape.slice(0,3),1],a,"float32"),o=gn([...e.shape.slice(0,3),1],r,"float32"),l=Ze([s,i,o],3);return pe(e,l)})}function _$(e,t=!1){return P(()=>{let[n,a]=e.shape.slice(1);if(n===a)return e;let r=Math.abs(n-a),s=Math.round(r*(t?.5:1)),i=n>a?2:1,o=c=>{let h=e.shape.slice();return h[i]=c,gn(h,0,"float32")},l=o(s),u=r-l.shape[i],d=[t&&u?o(u):null,e,l].filter(c=>!!c).map(c=>le(c,"float32"));return Ze(d,i)})}function Iye(e){let t=e.slice();for(let n=t.length-1;n>0;n--){let a=Math.floor(Math.random()*(n+1)),r=t[n];t[n]=t[a],t[a]=r}return t}function Bf(e){return 1/(1+Math.exp(-e))}function Tye(e){return Math.log(e/(1-e))}var Ku=class extends ut{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var Ipe=.5,Spe=.43,Tpe=.45,va=class{constructor(t,n,a=new Me(0,0)){let{width:r,height:s}=n;this._imgDims=new En(r,s),this._shift=a,this._positions=t.map(i=>i.mul(new Me(r,s)).add(a))}get shift(){return new Me(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new Me(this.imageWidth,this.imageHeight)))}forSize(t,n){return new this.constructor(this.relativePositions,{width:t,height:n})}shiftBy(t,n){return new this.constructor(this.relativePositions,this._imgDims,new Me(t,n))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,n={}){if(t){let s=t instanceof xt?t.box.floor():new ut(t);return this.shiftBy(s.x,s.y).align(null,n)}let{useDlibAlignment:a,minBoxPadding:r}={useDlibAlignment:!1,minBoxPadding:.2,...n};return a?this.alignDlib():this.alignMinBbox(r)}alignDlib(){let t=this.getRefPointsForAlignment(),[n,a,r]=t,s=d=>r.sub(d).magnitude(),i=(s(n)+s(a))/2,o=Math.floor(i/Tpe),l=To(t),u=Math.floor(Math.max(0,l.x-Ipe*o)),p=Math.floor(Math.max(0,l.y-Spe*o));return new Ku(u,p,Math.min(o,this.imageWidth+u),Math.min(o,this.imageHeight+p))}alignMinBbox(t){let n=N$(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var E$=class extends va{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],To([t[3],t[4]])]}};var Xu=class extends va{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(To)}};var id=class{constructor(t,n){this._label=t,this._distance=n}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${So(this.distance)})`:""}`}};var od=class extends ut{constructor(n,a){super(n);this._label=a}static assertIsValidLabeledBox(n,a){if(ut.assertIsValidBox(n,a),!Ya(n.label))throw new Error(`${a} - expected property label (${n.label}) to be a number`)}get label(){return this._label}};var Mr=class{constructor(t,n){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(n)||n.some(a=>!(a instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=n}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let n=t.descriptors.map(a=>new Float32Array(a));return new Mr(t.label,n)}};var $$=class extends od{constructor(n,a,r,s){super(n,a);this._score=r,this._classScore=s}static assertIsValidPredictedBox(n,a){if(od.assertIsValidLabeledBox(n,a),!ju(n.score)||!ju(n.classScore))throw new Error(`${a} - expected properties score (${n.score}) and (${n.classScore}) to be a number between [0, 1]`)}get score(){return this._score}get classScore(){return this._classScore}};function Pr(e){return e.detection instanceof xt}function Yu(e,t){return{...e,...{detection:t}}}function i1(){let e=window.fetch;if(!e)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),createVideoElement:()=>document.createElement("video"),fetch:e,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function ld(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function Vf(e){let t="";if(!e&&ld())try{e=Gr("fs")}catch(a){t=a.toString()}return{readFile:e?a=>new Promise((r,s)=>{e.readFile(a,(i,o)=>i?s(i):r(o))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function o1(){let e=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,n=global.Video||global.HTMLVideoElement,a=()=>{if(e)return new e;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},r=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},s=()=>{if(n)return new n;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},i=global.fetch,o=Vf();return{Canvas:e||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:a,createImageElement:r,createVideoElement:s,fetch:i,...o}}function l1(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var rn;function Npe(){if(!rn)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return rn}function u1(e){rn=e}function p1(){return l1()?u1(i1()):ld()?u1(o1()):null}function Cpe(e){if(rn||p1(),!rn)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=rn.Canvas,Image:n=rn.Image}=e;rn.Canvas=t,rn.Image=n,rn.createCanvasElement=e.createCanvasElement||(()=>new t),rn.createImageElement=e.createImageElement||(()=>new n),rn.ImageData=e.ImageData||rn.ImageData,rn.Video=e.Video||rn.Video,rn.fetch=e.fetch||rn.fetch,rn.readFile=e.readFile||rn.readFile}var et={getEnv:Npe,setEnv:u1,initialize:p1,createBrowserEnv:i1,createFileSystem:Vf,createNodejsEnv:o1,monkeyPatch:Cpe,isBrowser:l1,isNodejs:ld};p1();function Zu(e){return!et.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function aa(e){let{Canvas:t,CanvasRenderingContext2D:n}=et.getEnv();if(e instanceof n)return e;let a=Zu(e);if(!(a instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let r=a.getContext("2d");if(!r)throw new Error("resolveContext2d - canvas 2d context is null");return r}var c1=(r=>(r.TOP_LEFT="TOP_LEFT",r.TOP_RIGHT="TOP_RIGHT",r.BOTTOM_LEFT="BOTTOM_LEFT",r.BOTTOM_RIGHT="BOTTOM_RIGHT",r))(c1||{}),Ju=class{constructor(t={}){let{anchorPosition:n,backgroundColor:a,fontColor:r,fontSize:s,fontStyle:i,padding:o}=t;this.anchorPosition=n||"TOP_LEFT",this.backgroundColor=a||"rgba(0, 0, 0, 0.5)",this.fontColor=r||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=i||"Georgia",this.padding=o||4}},Or=class{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof Or?t.text:t,this.anchor=n,this.options=new Ju(a)}measureWidth(t){let{padding:n}=this.options;return this.text.map(a=>t.measureText(a).width).reduce((a,r)=>a{let m=l+d.x,f=l+d.y+(h+1)*i;a.fillText(c,m,f)})}};var Uf=class{constructor(t={}){let{boxColor:n,lineWidth:a,label:r,drawLabelOptions:s}=t;this.boxColor=n||"rgba(0, 0, 255, 1)",this.lineWidth=a||2,this.label=r;let i={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new Ju({...i,...s})}},ud=class{constructor(t,n={}){this.box=new ut(t),this.options=new Uf(n)}draw(t){let n=aa(t),{boxColor:a,lineWidth:r}=this.options,{x:s,y:i,width:o,height:l}=this.box;n.strokeStyle=a,n.lineWidth=r,n.strokeRect(s,i,o,l);let{label:u}=this.options;u&&new Or([u],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function _pe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof xt?a.score:Pr(a)?a.detection.score:void 0,s=a instanceof xt?a.box:Pr(a)?a.detection.box:new ut(a),i=r?`${So(r)}`:void 0;new ud(s,{label:i}).draw(e)})}function Gf(e){let{Image:t,Video:n}=et.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function A$(e){return new Promise((t,n)=>{(e instanceof et.getEnv().Canvas||Gf(e))&&t(null);function a(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),n(s))}function r(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),t(s))}e.addEventListener("load",r),e.addEventListener("error",a)})}function F$(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToImage - expected buf to be of type: Blob"));let a=new FileReader;a.onload=()=>{typeof a.result!="string"&&n(new Error("bufferToImage - expected reader.result to be a string, in onload"));let r=et.getEnv().createImageElement();r.onload=()=>t(r),r.onerror=n,r.src=a.result},a.onerror=n,a.readAsDataURL(e)})}function Qu(e){let{Image:t,Video:n}=et.getEnv();return e instanceof t?new En(e.naturalWidth,e.naturalHeight):e instanceof n?new En(e.videoWidth,e.videoHeight):new En(e.width,e.height)}function ep({width:e,height:t}){let{createCanvasElement:n}=et.getEnv(),a=n();return a.width=e,a.height=t,a}function Hf(e,t){let{ImageData:n}=et.getEnv();if(!(e instanceof n)&&!Gf(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||Qu(e),s=ep({width:a,height:r});return e instanceof n?aa(s).putImageData(e,0,0):aa(s).drawImage(e,0,0,a,r),s}async function D$(e,t){let n=t||et.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(xa(e)?1:0),i=P(()=>e.as3D(a,r,s).toInt());return await co.toPixels(i,n),i.dispose(),n}function d1(e){let{Image:t,Canvas:n,Video:a}=et.getEnv();return e instanceof t||e instanceof n||e instanceof a}function R$(e,t,n=!1){let{Image:a,Canvas:r}=et.getEnv();if(!(e instanceof a||e instanceof r))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return ep({width:1,height:1});let s=Qu(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,u=ep({width:t,height:t}),p=e instanceof r?e:Hf(e),d=Math.abs(o-l)/2,c=n&&o0&&p.height>0&&aa(u).drawImage(p,c,h,o,l),u}var Lr=class{constructor(t,n=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=n,this._batchSize=t.length,t.forEach((a,r)=>{if(Rr(a)){this._imageTensors[r]=a,this._inputDimensions[r]=a.shape;return}if(xa(a)){let i=a.shape[0];if(i!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${i} passed, but not supported in input array`);this._imageTensors[r]=a,this._inputDimensions[r]=a.shape.slice(1);return}let s=a instanceof et.getEnv().Canvas?a:Hf(a);this._canvases[r]=s,this._inputDimensions[r]=[s.height,s.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return hr(this.batchSize,0,1).map((t,n)=>this.getReshapedInputDimensions(n))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let n=this.getInputWidth(t),a=this.getInputHeight(t);return s1({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,P(()=>{let a=hr(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof Te){let o=xa(i)?i:Zt(i);return o=_$(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=za.resizeBilinear(o,[t,t],!1,!1)),o.as3D(t,t,3)}if(i instanceof et.getEnv().Canvas)return co.fromPixels(R$(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return Ft(a.map(s=>le(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function vt(e){if(e instanceof Lr)return e;let t=Array.isArray(e)?e:[e];if(!t.length)throw new Error("toNetInput - empty array passed as input");let n=r=>Array.isArray(e)?` at input index ${r}:`:"",a=t.map(Zu);return a.forEach((r,s)=>{if(!d1(r)&&!Rr(r)&&!xa(r))throw typeof t[s]=="string"?new Error(`toNetInput -${n(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${n(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(xa(r)){let i=r.shape[0];if(i!==1)throw new Error(`toNetInput -${n(s)} tf.Tensor4D with batchSize ${i} passed, but not supported in input array`)}}),await Promise.all(a.map(r=>d1(r)&&A$(r))),new Lr(a,Array.isArray(e))}async function pd(e,t){let{Canvas:n}=et.getEnv(),a=e;if(!(e instanceof n)){let i=await vt(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await D$(o)}let r=aa(a);return t.map(i=>i instanceof xt?i.forSize(a.width,a.height).box.floor():i).map(i=>i.clipAtImageBorders(a.width,a.height)).map(({x:i,y:o,width:l,height:u})=>{let p=ep({width:l,height:u});return l>0&&u>0&&aa(p).putImageData(r.getImageData(i,o,l,u),0,0),p})}async function cd(e,t){if(!Rr(e)&&!xa(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(xa(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return P(()=>{let[n,a,r]=e.shape.slice(xa(e)?1:0);return t.map(o=>o instanceof xt?o.forSize(a,n).box:o).map(o=>o.clipAtImageBorders(a,n)).filter(o=>o.width>0&&o.height>0).map(({x:o,y:l,width:u,height:p})=>mo(e.as3D(n,a,r),[l,o,0],[p,u,r]))})}async function Ns(e,t){let{fetch:n}=et.getEnv(),a=await n(e,t);if(!(a.status<400))throw new Error(`failed to fetch: (${a.status}) ${a.statusText}, from url: ${a.url}`);return a}async function pve(e){let t=await Ns(e),n=await t.blob();if(!n.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${n.type}, for url: ${t.url}`);return F$(n)}async function M$(e){return(await Ns(e)).json()}async function fve(e){return new Float32Array(await(await Ns(e)).arrayBuffer())}function P$(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToVideo - expected buf to be of type: Blob"));let a=et.getEnv().createVideoElement();a.oncanplay=()=>t(a),a.onerror=n,a.playsInline=!0,a.muted=!0,a.src=URL.createObjectURL(e),a.play()})}async function wve(e){let t=await Ns(e),n=await t.blob();if(!n.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${n.type}, for url: ${t.url}`);return P$(n)}function jf(e,t){let n=`${t}-weights_manifest.json`;if(!e)return{modelBaseUri:"",manifestUri:n};if(e==="/")return{modelBaseUri:"/",manifestUri:`/${n}`};let a=e.startsWith("http://")?"http://":e.startsWith("https://")?"https://":"";e=e.replace(a,"");let r=e.split("/").filter(o=>o),s=e.endsWith(".json")?r[r.length-1]:n,i=a+(e.endsWith(".json")?r.slice(0,r.length-1):r).join("/");return i=e.startsWith("/")?`/${i}`:i,{modelBaseUri:i,manifestUri:i==="/"?`/${s}`:`${i}/${s}`}}async function O$(e,t){let{manifestUri:n,modelBaseUri:a}=jf(e,t),r=await M$(n);return Ut.loadWeights(r,a)}function _ve(e,t,n=!1){let{width:a,height:r}=n?Qu(t):t;return e.width=a,e.height=r,{width:a,height:r}}var dn=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:n,objProp:a}=this.traversePropertyPath(t);return n[a]}reassignParamFromPath(t,n){let{obj:a,objProp:r}=this.traversePropertyPath(t);a[r].dispose(),a[r]=n}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof ts)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof ts))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=kn(n.dataSync());n.dispose(),this.reassignParamFromPath(t,a)})}dispose(t=!0){this.getParamList().forEach(n=>{if(t&&n.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${n.path}`);n.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,n)=>t.concat(n)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let n=await O$(t,this.getDefaultModelName());this.loadFromWeightMap(n)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:n}=et.getEnv(),{manifestUri:a,modelBaseUri:r}=jf(t,this.getDefaultModelName()),s=u=>Promise.all(u.map(p=>n(p).then(d=>d.buffer))),i=Ut.weightsLoaderFactory(s),o=JSON.parse((await n(a)).toString()),l=await i(o,r);this.loadFromWeightMap(l)}loadFromWeightMap(t){let{paramMappings:n,params:a}=this.extractParamsFromWeightMap(t);this._paramMappings=n,this._params=a}extractWeights(t){let{paramMappings:n,params:a}=this.extractParams(t);this._paramMappings=n,this._params=a}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let n=t.split("/").reduce((s,i)=>{if(!s.nextObj.hasOwnProperty(i))throw new Error(`traversePropertyPath - object does not have property ${i}, for path ${t}`);return{obj:s.nextObj,objProp:i,nextObj:s.nextObj[i]}},{nextObj:this.params}),{obj:a,objProp:r}=n;if(!a||!r||!(a[r]instanceof Te))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:a,objProp:r}}};function Gn(e,t,n){return P(()=>{let a=vs(e,t.depthwise_filter,t.pointwise_filter,n,"same");return a=Y(a,t.bias),a})}function qf(e,t,n=!1){return P(()=>{let a=Xe(n?Y(At(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Gn(e,t.conv0,[2,2])),r=Gn(a,t.conv1,[1,1]),s=Xe(Y(a,r)),i=Gn(s,t.conv2,[1,1]);return Xe(Y(a,Y(r,i)))})}function dd(e,t,n=!1,a=!0){return P(()=>{let r=Xe(n?Y(At(e,t.conv0.filters,a?[2,2]:[1,1],"same"),t.conv0.bias):Gn(e,t.conv0,a?[2,2]:[1,1])),s=Gn(r,t.conv1,[1,1]),i=Xe(Y(r,s)),o=Gn(i,t.conv2,[1,1]),l=Xe(Y(r,Y(s,o))),u=Gn(l,t.conv3,[1,1]);return Xe(Y(r,Y(s,Y(o,u))))})}function No(e,t,n="same",a=!1){return P(()=>{let r=Y(At(e,t.filters,[1,1],n),t.bias);return a?Xe(r):r})}function $n(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function tp(e,t){return(n,a,r,s)=>{let i=Aa(e(n*a*r*r),[r,r,n,a]),o=Ke(e(a));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:o}}}function Kf(e,t){return(n,a,r)=>{let s=_a(e(n*a),[n,a]),i=Ke(e(a));return t.push({paramPath:`${r}/weights`},{paramPath:`${r}/bias`}),{weights:s,bias:i}}}var hd=class{constructor(t,n,a){this.depthwise_filter=t;this.pointwise_filter=n;this.bias=a}};function np(e,t){return(n,a,r)=>{let s=Aa(e(9*n),[3,3,n,1]),i=Aa(e(n*a),[1,1,n,a]),o=Ke(e(a));return t.push({paramPath:`${r}/depthwise_filter`},{paramPath:`${r}/pointwise_filter`},{paramPath:`${r}/bias`}),new hd(s,i,o)}}function ap(e){return t=>{let n=e(`${t}/depthwise_filter`,4),a=e(`${t}/pointwise_filter`,4),r=e(`${t}/bias`,1);return new hd(n,a,r)}}function ra(e,t){return(n,a,r)=>{let s=e[n];if(!Io(s,a))throw new Error(`expected weightMap[${n}] to be a Tensor${a}D, instead have ${s}`);return t.push({originalPath:n,paramPath:r||n}),s}}function An(e){let t=e;function n(r){let s=t.slice(0,r);return t=t.slice(r),s}function a(){return t}return{extractWeights:n,getRemainingWeights:a}}function Xf(e,t){let n=tp(e,t),a=np(e,t);function r(i,o,l,u=!1){let p=u?n(i,o,3,`${l}/conv0`):a(i,o,`${l}/conv0`),d=a(o,o,`${l}/conv1`),c=a(o,o,`${l}/conv2`);return{conv0:p,conv1:d,conv2:c}}function s(i,o,l,u=!1){let{conv0:p,conv1:d,conv2:c}=r(i,o,l,u),h=a(o,o,`${l}/conv3`);return{conv0:p,conv1:d,conv2:c,conv3:h}}return{extractDenseBlock3Params:r,extractDenseBlock4Params:s}}function L$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=An(e),{extractDenseBlock4Params:r}=Xf(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2"),l=r(128,256,"dense3");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o,dense3:l}}}function Yf(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function Zf(e,t){let n=ra(e,t),a=Yf(n),r=ap(n);function s(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),p=r(`${o}/conv1`),d=r(`${o}/conv2`);return{conv0:u,conv1:p,conv2:d}}function i(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),p=r(`${o}/conv1`),d=r(`${o}/conv2`),c=r(`${o}/conv3`);return{conv0:u,conv1:p,conv2:d,conv3:c}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:i}}function z$(e){let t=[],{extractDenseBlock4Params:n}=Zf(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return $n(e,t),{params:a,paramMappings:t}}var rp=class extends dn{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return P(()=>{let a=le(t.toBatchTensor(112,!0),"float32"),s=mr(a,[122.782,117.001,104.298]).div(255),i=dd(s,n.dense0,!0);return i=dd(i,n.dense1),i=dd(i,n.dense2),i=dd(i,n.dense3),i=ga(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await vt(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return z$(t)}extractParams(t){return L$(t)}};function md(e,t){return P(()=>Y(Fe(e,t.weights),t.bias))}function W$(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=An(e),o=Kf(r,a)(t,n,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:a,params:{fc:o}}}function B$(e){let t=[],n=ra(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:a("fc")};return $n(e,t),{params:r,paramMappings:t}}function Jf(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=a.startsWith("fc")?n:t;r[a]=e[a]}),{featureExtractorMap:t,classifierMap:n}}var sp=class extends dn{constructor(n,a){super(n);this._faceFeatureExtractor=a}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(n){let{params:a}=this;if(!a)throw new Error(`${this._name} - load model before inference`);return P(()=>{let r=n instanceof Lr?this.faceFeatureExtractor.forwardInput(n):n;return md(r.as2D(r.shape[0],-1),a.fc)})}dispose(n=!0){this.faceFeatureExtractor.dispose(n),super.dispose(n)}loadClassifierParams(n){let{params:a,paramMappings:r}=this.extractClassifierParams(n);this._params=a,this._paramMappings=r}extractClassifierParams(n){return W$(n,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=Jf(n);return this.faceFeatureExtractor.loadFromWeightMap(a),B$(r)}extractParams(n){let a=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),s=r*a+r,i=n.slice(0,n.length-s),o=n.slice(n.length-s);return this.faceFeatureExtractor.extractWeights(i),this.extractClassifierParams(o)}};var V$=["neutral","happy","sad","angry","fearful","disgusted","surprised"],Cs=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);V$.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return V$.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var Qf=class extends sp{constructor(t=new rp){super("FaceExpressionNet",t)}forwardInput(t){return P(()=>Ka(this.runNet(t)))}async forward(t){return this.forwardInput(await vt(t))}async predictExpressions(t){let n=await vt(t),a=await this.forwardInput(n),r=await Promise.all(ct(a).map(async i=>{let o=i.dataSync();return i.dispose(),o}));a.dispose();let s=r.map(i=>new Cs(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function U$(e){return e.expressions instanceof Cs}function h1(e,t){return{...e,...{expressions:t}}}function Epe(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof Cs?s:U$(s)?s.expressions:void 0;if(!i)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let l=i.asSortedArray().filter(d=>d.probability>n),u=Pr(s)?s.detection.box.bottomLeft:a||new Me(0,0);new Or(l.map(d=>`${d.expression} (${So(d.probability)})`),u).draw(e)})}function ip(e){return Pr(e)&&e.landmarks instanceof va&&e.unshiftedLandmarks instanceof va&&e.alignedRect instanceof xt}function $pe(e){let t=l=>l*180/Math.PI,n=(l,u)=>Math.sqrt((l._x-u._x)**2+(l._y-u._y)**2),a={roll:void 0,pitch:void 0,yaw:void 0},r=(l,u,p)=>{let d=Math.floor(l._x-u._x),c=Math.floor(u._x-p._x);return d-c},s=(l,u)=>{let p=Math.hypot(u._x-l._x,u._y-l._y),d=u._y-l._y,c=Math.asin(d/p),h=t(c),m=Math.floor(90-h),f=u._x-l._x<0?-1:1;return m*f},i=(l,u,p)=>{let d=n(l,p),c={_x:(l._x+p._x)/2,_y:(l._y+p._y)/2},h=n(u,c),m=Math.atan(h/d),f=Math.floor(t(m)),g=c._y-u._y<0?-1:1;return f*g};if(!e||!e._positions||e._positions.length!==68)return a;let o=e._positions;return a.roll=s(o[27],o[66]),a.pitch=i(o[14],o[30],o[2]),a.yaw=r(o[14],o[33],o[2]),a}function fd(e,t){let{box:n}=e.detection,a=t.shiftBy(n.x,n.y),r=a.align(),{imageDims:s}=e.detection,i=new xt(e.detection.score,r.rescale(s.reverse()),s),o=$pe(t);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i,angle:o}}}var eg=class{constructor(t={}){let{drawLines:n=!0,drawPoints:a=!0,lineWidth:r,lineColor:s,pointSize:i,pointColor:o}=t;this.drawLines=n,this.drawPoints=a,this.lineWidth=r||1,this.pointSize=i||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=o||"rgba(255, 0, 255, 1)"}},tg=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new eg(n)}draw(t){let n=aa(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof Xu&&(n.strokeStyle=i,n.lineWidth=s,Dr(n,this.faceLandmarks.getJawOutline()),Dr(n,this.faceLandmarks.getLeftEyeBrow()),Dr(n,this.faceLandmarks.getRightEyeBrow()),Dr(n,this.faceLandmarks.getNose()),Dr(n,this.faceLandmarks.getLeftEye(),!0),Dr(n,this.faceLandmarks.getRightEye(),!0),Dr(n,this.faceLandmarks.getMouth(),!0)),r){n.strokeStyle=l,n.fillStyle=l;let u=p=>{n.beginPath(),n.arc(p.x,p.y,o,0,2*Math.PI),n.fill()};this.faceLandmarks.positions.forEach(u)}}};function Ape(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof va?a:ip(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new tg(r).draw(e)})}var H$="1.7.6";function Rpe(e,t){let n=tp(e,t),a=np(e,t);function r(i,o,l){let u=a(i,o,`${l}/separable_conv0`),p=a(o,o,`${l}/separable_conv1`),d=n(i,o,1,`${l}/expansion_conv`);return{separable_conv0:u,separable_conv1:p,expansion_conv:d}}function s(i,o){let l=a(i,i,`${o}/separable_conv0`),u=a(i,i,`${o}/separable_conv1`),p=a(i,i,`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:p}}return{extractConvParams:n,extractSeparableConvParams:a,extractReductionBlockParams:r,extractMainBlockParams:s}}function j$(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=An(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=Rpe(a,n),u=s(3,32,3,"entry_flow/conv_in"),p=o(32,64,"entry_flow/reduction_block_0"),d=o(64,128,"entry_flow/reduction_block_1"),c={conv_in:u,reduction_block_0:p,reduction_block_1:d},h={};hr(t,0,1).forEach(y=>{h[`main_block_${y}`]=l(128,`middle_flow/main_block_${y}`)});let m=o(128,256,"exit_flow/reduction_block"),f=i(256,512,"exit_flow/separable_conv"),g={reduction_block:m,separable_conv:f};if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:n,params:{entry_flow:c,middle_flow:h,exit_flow:g}}}function Mpe(e,t){let n=ra(e,t),a=Yf(n),r=ap(n);function s(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),p=a(`${o}/expansion_conv`);return{separable_conv0:l,separable_conv1:u,expansion_conv:p}}function i(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),p=r(`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:p}}return{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}}function q$(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=Mpe(e,n),o=a("entry_flow/conv_in"),l=s("entry_flow/reduction_block_0"),u=s("entry_flow/reduction_block_1"),p={conv_in:o,reduction_block_0:l,reduction_block_1:u},d={};hr(t,0,1).forEach(f=>{d[`main_block_${f}`]=i(`middle_flow/main_block_${f}`)});let c=s("exit_flow/reduction_block"),h=r("exit_flow/separable_conv"),m={reduction_block:c,separable_conv:h};return $n(e,n),{params:{entry_flow:p,middle_flow:d,exit_flow:m},paramMappings:n}}function K$(e,t,n){return Y(At(e,t.filters,n,"same"),t.bias)}function m1(e,t,n=!0){let a=n?Xe(e):e;return a=Gn(a,t.separable_conv0,[1,1]),a=Gn(Xe(a),t.separable_conv1,[1,1]),a=Dt(a,[3,3],[2,2],"same"),a=Y(a,K$(e,t.expansion_conv,[2,2])),a}function Ppe(e,t){let n=Gn(Xe(e),t.separable_conv0,[1,1]);return n=Gn(Xe(n),t.separable_conv1,[1,1]),n=Gn(Xe(n),t.separable_conv2,[1,1]),n=Y(n,e),n}var ng=class extends dn{constructor(n){super("TinyXception");this._numMainBlocks=n}forwardInput(n){let{params:a}=this;if(!a)throw new Error("TinyXception - load model before inference");return P(()=>{let r=le(n.toBatchTensor(112,!0),"float32"),i=mr(r,[122.782,117.001,104.298]).div(255),o=Xe(K$(i,a.entry_flow.conv_in,[2,2]));return o=m1(o,a.entry_flow.reduction_block_0,!1),o=m1(o,a.entry_flow.reduction_block_1),hr(this._numMainBlocks,0,1).forEach(l=>{o=Ppe(o,a.middle_flow[`main_block_${l}`])}),o=m1(o,a.exit_flow.reduction_block),o=Xe(Gn(o,a.exit_flow.separable_conv,[1,1])),o})}async forward(n){return this.forwardInput(await vt(n))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(n){return q$(n,this._numMainBlocks)}extractParams(n){return j$(n,this._numMainBlocks)}};function X$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=An(e),r=Kf(n,t),s=r(512,1,"fc/age"),i=r(512,2,"fc/gender");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{fc:{age:s,gender:i}}}}function Y$(e){let t=[],n=ra(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:{age:a("fc/age"),gender:a("fc/gender")}};return $n(e,t),{params:r,paramMappings:t}}var f1=(n=>(n.FEMALE="female",n.MALE="male",n))(f1||{});var ag=class extends dn{constructor(n=new ng(2)){super("AgeGenderNet");this._faceFeatureExtractor=n}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(n){let{params:a}=this;if(!a)throw new Error(`${this._name} - load model before inference`);return P(()=>{let r=n instanceof Lr?this.faceFeatureExtractor.forwardInput(n):n,s=ga(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),i=md(s,a.fc.age).as1D(),o=md(s,a.fc.gender);return{age:i,gender:o}})}forwardInput(n){return P(()=>{let{age:a,gender:r}=this.runNet(n);return{age:a,gender:Ka(r)}})}async forward(n){return this.forwardInput(await vt(n))}async predictAgeAndGender(n){let a=await vt(n),r=await this.forwardInput(a),s=ct(r.age),i=ct(r.gender),o=s.map((u,p)=>({ageTensor:u,genderTensor:i[p]})),l=await Promise.all(o.map(async({ageTensor:u,genderTensor:p})=>{let d=u.dataSync()[0],c=p.dataSync()[0],h=c>.5,m=h?"male":"female",f=h?c:1-c;return u.dispose(),p.dispose(),{age:d,gender:m,genderProbability:f}}));return r.age.dispose(),r.gender.dispose(),a.isBatchInput?l:l[0]}getDefaultModelName(){return"age_gender_model"}dispose(n=!0){this.faceFeatureExtractor.dispose(n),super.dispose(n)}loadClassifierParams(n){let{params:a,paramMappings:r}=this.extractClassifierParams(n);this._params=a,this._paramMappings=r}extractClassifierParams(n){return X$(n)}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=Jf(n);return this.faceFeatureExtractor.loadFromWeightMap(a),Y$(r)}extractParams(n){let r=n.slice(0,n.length-1539),s=n.slice(n.length-1539);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(s)}};var op=class extends sp{postProcess(t,n,a){let r=a.map(({width:i,height:o})=>{let l=n/Math.max(o,i);return{width:i*l,height:o*l}}),s=r.length;return P(()=>{let i=(d,c)=>Ft([gn([68],d,"float32"),gn([68],c,"float32")],1).as2D(1,136).as1D(),o=(d,c)=>{let{width:h,height:m}=r[d];return c(h,m)?Math.abs(h-m)/2:0},l=d=>o(d,(c,h)=>co(d,(c,h)=>hi(l(c),u(c))))).div(Ft(Array.from(Array(s),(d,c)=>i(r[c].width,r[c].height))))})}forwardInput(t){return P(()=>{let n=this.runNet(t);return this.postProcess(n,t.inputSize,t.inputDimensions.map(([a,r])=>({height:a,width:r})))})}async forward(t){return this.forwardInput(await vt(t))}async detectLandmarks(t){let n=await vt(t),a=P(()=>ct(this.forwardInput(n))),r=await Promise.all(a.map(async(s,i)=>{let o=Array.from(s.dataSync()),l=o.filter((p,d)=>zf(d)),u=o.filter((p,d)=>!zf(d));return new Xu(Array(68).fill(0).map((p,d)=>new Me(l[d],u[d])),{height:n.getInputHeight(i),width:n.getInputWidth(i)})}));return a.forEach(s=>s.dispose()),n.isBatchInput?r:r[0]}getClassifierChannelsOut(){return 136}};var lp=class extends op{constructor(t=new rp){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function Z$(e){let t=[],{extractDenseBlock3Params:n}=Zf(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return $n(e,t),{params:a,paramMappings:t}}function J$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=An(e),{extractDenseBlock3Params:r}=Xf(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o}}}var rg=class extends dn{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return P(()=>{let a=le(t.toBatchTensor(112,!0),"float32"),s=mr(a,[122.782,117.001,104.298]).div(255),i=qf(s,n.dense0,!0);return i=qf(i,n.dense1),i=qf(i,n.dense2),i=ga(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await vt(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Z$(t)}extractParams(t){return J$(t)}};var sg=class extends op{constructor(t=new rg){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Q$=class extends lp{};function eA(e,t){return Y(z(e,t.weights),t.biases)}function g1(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=At(e,s,n,r);return o=Y(o,i),o=eA(o,t.scale),a?Xe(o):o}function tA(e,t){return g1(e,t,[1,1],!0)}function y1(e,t){return g1(e,t,[1,1],!1)}function ig(e,t){return g1(e,t,[2,2],!0,"valid")}function Ope(e,t){function n(o,l,u){let p=e(o),d=p.length/(l*u*u);if(r1(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${l}, filterSize: ${u}`);return P(()=>Ee(Aa(p,[l,d,u,u]),[2,3,1,0]))}function a(o,l,u,p){let d=n(o,l,u),c=Ke(e(l));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:c}}function r(o,l){let u=Ke(e(o)),p=Ke(e(o));return t.push({paramPath:`${l}/weights`},{paramPath:`${l}/biases`}),{weights:u,biases:p}}function s(o,l,u,p){let d=a(o,l,u,`${p}/conv`),c=r(l,`${p}/scale`);return{conv:d,scale:c}}function i(o,l,u,p,d=!1){let c=s((d?.5:1)*o,l,u,`${p}/conv1`),h=s(o,l,u,`${p}/conv2`);return{conv1:c,conv2:h}}return{extractConvLayerParams:s,extractResidualLayerParams:i}}function nA(e){let{extractWeights:t,getRemainingWeights:n}=An(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=Ope(t,a),i=r(4704,32,7,"conv32_down"),o=s(9216,32,3,"conv32_1"),l=s(9216,32,3,"conv32_2"),u=s(9216,32,3,"conv32_3"),p=s(36864,64,3,"conv64_down",!0),d=s(36864,64,3,"conv64_1"),c=s(36864,64,3,"conv64_2"),h=s(36864,64,3,"conv64_3"),m=s(147456,128,3,"conv128_down",!0),f=s(147456,128,3,"conv128_1"),g=s(147456,128,3,"conv128_2"),y=s(589824,256,3,"conv256_down",!0),b=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),w=s(589824,256,3,"conv256_down_out"),I=P(()=>Ee(_a(t(256*128),[128,256]),[1,0]));if(a.push({paramPath:"fc"}),n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{params:{conv32_down:i,conv32_1:o,conv32_2:l,conv32_3:u,conv64_down:p,conv64_1:d,conv64_2:c,conv64_3:h,conv128_down:m,conv128_1:f,conv128_2:g,conv256_down:y,conv256_1:b,conv256_2:x,conv256_down_out:w,fc:I},paramMappings:a}}function Lpe(e,t){let n=ra(e,t);function a(i){let o=n(`${i}/scale/weights`,1),l=n(`${i}/scale/biases`,1);return{weights:o,biases:l}}function r(i){let o=n(`${i}/conv/filters`,4),l=n(`${i}/conv/bias`,1),u=a(i);return{conv:{filters:o,bias:l},scale:u}}function s(i){return{conv1:r(`${i}/conv1`),conv2:r(`${i}/conv2`)}}return{extractConvLayerParams:r,extractResidualLayerParams:s}}function aA(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Lpe(e,t),r=n("conv32_down"),s=a("conv32_1"),i=a("conv32_2"),o=a("conv32_3"),l=a("conv64_down"),u=a("conv64_1"),p=a("conv64_2"),d=a("conv64_3"),c=a("conv128_down"),h=a("conv128_1"),m=a("conv128_2"),f=a("conv256_down"),g=a("conv256_1"),y=a("conv256_2"),b=a("conv256_down_out"),{fc:x}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!a1(x))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${x}`);let w={conv32_down:r,conv32_1:s,conv32_2:i,conv32_3:o,conv64_down:l,conv64_1:u,conv64_2:p,conv64_3:d,conv128_down:c,conv128_1:h,conv128_2:m,conv256_down:f,conv256_1:g,conv256_2:y,conv256_down_out:b,fc:x};return $n(e,t),{params:w,paramMappings:t}}function Za(e,t){let n=tA(e,t.conv1);return n=y1(n,t.conv2),n=Y(n,e),n=Xe(n),n}function gd(e,t){let n=ig(e,t.conv1);n=y1(n,t.conv2);let a=ga(e,2,2,"valid"),r=It(a.shape),s=a.shape[3]!==n.shape[3];if(a.shape[1]!==n.shape[1]||a.shape[2]!==n.shape[2]){let o=[...n.shape];o[1]=1;let l=It(o);n=Ze([n,l],1);let u=[...n.shape];u[2]=1;let p=It(u);n=Ze([n,p],2)}return a=s?Ze([a,r],3):a,n=Y(a,n),n=Xe(n),n}var up=class extends dn{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return P(()=>{let a=le(t.toBatchTensor(150,!0),"float32"),s=mr(a,[122.782,117.001,104.298]).div(255),i=ig(s,n.conv32_down);i=Dt(i,3,2,"valid"),i=Za(i,n.conv32_1),i=Za(i,n.conv32_2),i=Za(i,n.conv32_3),i=gd(i,n.conv64_down),i=Za(i,n.conv64_1),i=Za(i,n.conv64_2),i=Za(i,n.conv64_3),i=gd(i,n.conv128_down),i=Za(i,n.conv128_1),i=Za(i,n.conv128_2),i=gd(i,n.conv256_down),i=Za(i,n.conv256_1),i=Za(i,n.conv256_2),i=gd(i,n.conv256_down_out);let o=i.mean([1,2]);return Fe(o,n.fc)})}async forward(t){return this.forwardInput(await vt(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)!=null&&s.some(i=>i<=0))return new Float32Array(128);let n=await vt(t),a=P(()=>ct(this.forwardInput(n))),r=await Promise.all(a.map(i=>i.data()));return a.forEach(i=>i.dispose()),n.isBatchInput?r:r[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return aA(t)}extractParams(t){return nA(t)}};function eIe(e){let t=new up;return t.extractWeights(e),t}function b1(e,t){return{...e,...{descriptor:t}}}function rIe(e){return typeof e.age=="number"}function x1(e,t){return{...e,...{age:t}}}function lIe(e){return(e.gender==="male"||e.gender==="female")&&ju(e.genderProbability)}function v1(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function zpe(e,t){function n(l,u){let p=Aa(e(9*l),[3,3,l,1]),d=Ke(e(l)),c=Ke(e(l)),h=Ke(e(l)),m=Ke(e(l));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/batch_norm_scale`},{paramPath:`${u}/batch_norm_offset`},{paramPath:`${u}/batch_norm_mean`},{paramPath:`${u}/batch_norm_variance`}),{filters:p,batch_norm_scale:d,batch_norm_offset:c,batch_norm_mean:h,batch_norm_variance:m}}function a(l,u,p,d,c){let h=Aa(e(l*u*p*p),[p,p,l,u]),m=Ke(e(u));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${c?"batch_norm_offset":"bias"}`}),{filters:h,bias:m}}function r(l,u,p,d){let{filters:c,bias:h}=a(l,u,p,d,!0);return{filters:c,batch_norm_offset:h}}function s(l,u,p){let d=n(l,`${p}/depthwise_conv`),c=r(l,u,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:c}}function i(){let l=r(3,32,3,"mobilenetv1/conv_0"),u=s(32,64,"mobilenetv1/conv_1"),p=s(64,128,"mobilenetv1/conv_2"),d=s(128,128,"mobilenetv1/conv_3"),c=s(128,256,"mobilenetv1/conv_4"),h=s(256,256,"mobilenetv1/conv_5"),m=s(256,512,"mobilenetv1/conv_6"),f=s(512,512,"mobilenetv1/conv_7"),g=s(512,512,"mobilenetv1/conv_8"),y=s(512,512,"mobilenetv1/conv_9"),b=s(512,512,"mobilenetv1/conv_10"),x=s(512,512,"mobilenetv1/conv_11"),w=s(512,1024,"mobilenetv1/conv_12"),I=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:l,conv_1:u,conv_2:p,conv_3:d,conv_4:c,conv_5:h,conv_6:m,conv_7:f,conv_8:g,conv_9:y,conv_10:b,conv_11:x,conv_12:w,conv_13:I}}function o(){let l=r(1024,256,1,"prediction_layer/conv_0"),u=r(256,512,3,"prediction_layer/conv_1"),p=r(512,128,1,"prediction_layer/conv_2"),d=r(128,256,3,"prediction_layer/conv_3"),c=r(256,128,1,"prediction_layer/conv_4"),h=r(128,256,3,"prediction_layer/conv_5"),m=r(256,64,1,"prediction_layer/conv_6"),f=r(64,128,3,"prediction_layer/conv_7"),g=a(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),b=a(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),x=a(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),w=a(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),I=a(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),T=a(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),C=a(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),E=a(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),$=a(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),R=a(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),F=a(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:l,conv_1:u,conv_2:p,conv_3:d,conv_4:c,conv_5:h,conv_6:m,conv_7:f,box_predictor_0:{box_encoding_predictor:g,class_predictor:y},box_predictor_1:{box_encoding_predictor:b,class_predictor:x},box_predictor_2:{box_encoding_predictor:w,class_predictor:I},box_predictor_3:{box_encoding_predictor:T,class_predictor:C},box_predictor_4:{box_encoding_predictor:E,class_predictor:$},box_predictor_5:{box_encoding_predictor:R,class_predictor:F}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function rA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=An(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=zpe(n,t),i=r(),o=s(),u={extra_dim:_c(n(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:{mobilenetv1:i,prediction_layer:o,output_layer:u},paramMappings:t}}function Wpe(e,t){let n=ra(e,t);function a(u,p,d){let c=n(`${u}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),h=n(`${u}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:c,batch_norm_offset:h}}function r(u){let p=`mobilenetv1/conv_${u}`,d=`MobilenetV1/Conv2d_${u}_depthwise`,c=`${p}/depthwise_conv`,h=`${p}/pointwise_conv`,m=n(`${d}/depthwise_weights`,4,`${c}/filters`),f=n(`${d}/BatchNorm/gamma`,1,`${c}/batch_norm_scale`),g=n(`${d}/BatchNorm/beta`,1,`${c}/batch_norm_offset`),y=n(`${d}/BatchNorm/moving_mean`,1,`${c}/batch_norm_mean`),b=n(`${d}/BatchNorm/moving_variance`,1,`${c}/batch_norm_variance`);return{depthwise_conv:{filters:m,batch_norm_scale:f,batch_norm_offset:g,batch_norm_mean:y,batch_norm_variance:b},pointwise_conv:a("MobilenetV1",u,h)}}function s(){return{conv_0:a("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:r(1),conv_2:r(2),conv_3:r(3),conv_4:r(4),conv_5:r(5),conv_6:r(6),conv_7:r(7),conv_8:r(8),conv_9:r(9),conv_10:r(10),conv_11:r(11),conv_12:r(12),conv_13:r(13)}}function i(u,p){let d=n(`${u}/weights`,4,`${p}/filters`),c=n(`${u}/biases`,1,`${p}/bias`);return{filters:d,bias:c}}function o(u){let p=i(`Prediction/BoxPredictor_${u}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${u}/box_encoding_predictor`),d=i(`Prediction/BoxPredictor_${u}/ClassPredictor`,`prediction_layer/box_predictor_${u}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}function l(){return{conv_0:a("Prediction",0,"prediction_layer/conv_0"),conv_1:a("Prediction",1,"prediction_layer/conv_1"),conv_2:a("Prediction",2,"prediction_layer/conv_2"),conv_3:a("Prediction",3,"prediction_layer/conv_3"),conv_4:a("Prediction",4,"prediction_layer/conv_4"),conv_5:a("Prediction",5,"prediction_layer/conv_5"),conv_6:a("Prediction",6,"prediction_layer/conv_6"),conv_7:a("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:o(0),box_predictor_1:o(1),box_predictor_2:o(2),box_predictor_3:o(3),box_predictor_4:o(4),box_predictor_5:o(5)}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:l}}function sA(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=Wpe(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Rr(r))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${r}`);let s={mobilenetv1:n(),prediction_layer:a(),output_layer:{extra_dim:r}};return $n(e,t),{params:s,paramMappings:t}}function Ra(e,t,n){return P(()=>{let a=At(e,t.filters,n,"same");return a=Y(a,t.batch_norm_offset),en(a,0,6)})}var Bpe=.0010000000474974513;function Vpe(e,t,n){return P(()=>{let a=bs(e,t.filters,n,"same");return a=ys(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Bpe),en(a,0,6)})}function Upe(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function iA(e,t){return P(()=>{let n,a=Ra(e,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((s,i)=>{let o=i+1,l=Upe(o);a=Vpe(a,s.depthwise_conv,l),a=Ra(a,s.pointwise_conv,[1,1]),o===11&&(n=a)}),n===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:a,conv11:n}})}function Gpe(e,t,n){let a=e.arraySync(),r=Math.min(a[t][0],a[t][2]),s=Math.min(a[t][1],a[t][3]),i=Math.max(a[t][0],a[t][2]),o=Math.max(a[t][1],a[t][3]),l=Math.min(a[n][0],a[n][2]),u=Math.min(a[n][1],a[n][3]),p=Math.max(a[n][0],a[n][2]),d=Math.max(a[n][1],a[n][3]),c=(i-r)*(o-s),h=(p-l)*(d-u);if(c<=0||h<=0)return 0;let m=Math.max(r,l),f=Math.max(s,u),g=Math.min(i,p),y=Math.min(o,d),b=Math.max(g-m,0)*Math.max(y-f,0);return b/(c+h-b)}function oA(e,t,n,a,r){let s=e.shape[0],i=Math.min(n,s),o=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>r).sort((p,d)=>d.score-p.score),l=p=>p<=a?1:0,u=[];return o.forEach(p=>{if(u.length>=i)return;let d=p.score;for(let c=u.length-1;c>=0;--c){let h=Gpe(e,p.boxIndex,u[c]);if(h!==0&&(p.score*=l(h),p.score<=r))break}d===p.score&&u.push(p.boxIndex)}),u}function Hpe(e){let t=ct(Ee(e,[1,0])),n=[pe(t[2],t[0]),pe(t[3],t[1])],a=[Y(t[0],he(n[0],2)),Y(t[1],he(n[1],2))];return{sizes:n,centers:a}}function jpe(e,t){let{sizes:n,centers:a}=Hpe(e),r=ct(Ee(t,[1,0])),s=he(z(fn(he(r[2],5)),n[0]),2),i=Y(z(he(r[0],10),n[0]),a[0]),o=he(z(fn(he(r[3],5)),n[1]),2),l=Y(z(he(r[1],10),n[1]),a[1]);return Ee(Ft([pe(i,s),pe(l,o),Y(i,s),Y(l,o)]),[1,0])}function lA(e,t,n){return P(()=>{let a=e.shape[0],r=jpe(W(Ln(n.extra_dim,[a,1,1]),[-1,4]),W(e,[-1,4]));r=W(r,[a,r.shape[0]/a,4]);let s=da(Be(t,[0,0,1],[-1,-1,-1])),i=Be(s,[0,0,0],[-1,-1,1]);i=W(i,[a,i.shape[1]]);let o=ct(r),l=ct(i);return{boxes:o,scores:l}})}function Co(e,t){return P(()=>{let n=e.shape[0],a=W(No(e,t.box_encoding_predictor),[n,-1,1,4]),r=W(No(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function uA(e,t,n){return P(()=>{let a=Ra(e,n.conv_0,[1,1]),r=Ra(a,n.conv_1,[2,2]),s=Ra(r,n.conv_2,[1,1]),i=Ra(s,n.conv_3,[2,2]),o=Ra(i,n.conv_4,[1,1]),l=Ra(o,n.conv_5,[2,2]),u=Ra(l,n.conv_6,[1,1]),p=Ra(u,n.conv_7,[2,2]),d=Co(t,n.box_predictor_0),c=Co(e,n.box_predictor_1),h=Co(r,n.box_predictor_2),m=Co(i,n.box_predictor_3),f=Co(l,n.box_predictor_4),g=Co(p,n.box_predictor_5),y=Ze([d.boxPredictionEncoding,c.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),b=Ze([d.classPrediction,c.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:y,classPredictions:b}})}var Ma=class{constructor({minConfidence:t,maxResults:n}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=n||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var _o=class extends dn{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return P(()=>{let a=le(t.toBatchTensor(512,!1),"float32"),r=pe(he(a,127.5),1),s=iA(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=uA(s.out,s.conv11,n.prediction_layer);return lA(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await vt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new Ma(n),s=await vt(t),{boxes:i,scores:o}=this.forwardInput(s),l=i[0],u=o[0];for(let x=1;x{let[w,I]=[Math.max(0,y[x][0]),Math.min(1,y[x][2])].map(E=>E*g),[T,C]=[Math.max(0,y[x][1]),Math.min(1,y[x][3])].map(E=>E*f);return new xt(p[x],new Ku(T,w,C-T,I-w),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),u.dispose(),b}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return sA(t)}extractParams(t){return rA(t)}};function qpe(e){let t=new _o;return t.extractWeights(e),t}function eSe(e){return qpe(e)}var pA=class extends _o{};var cA=.4,dA=[new Me(.738768,.874946),new Me(2.42204,2.65704),new Me(4.30971,7.04493),new Me(10.246,4.59428),new Me(12.6868,11.8741)],hA=[new Me(1.603231,2.094468),new Me(6.041143,7.080126),new Me(2.882459,3.518061),new Me(4.266906,5.178857),new Me(9.041765,10.66308)],mA=[117.001,114.697,97.404],fA="tiny_yolov2_model",gA="tiny_yolov2_separable_conv_model";var og=e=>typeof e=="number";function yA(e){if(!e)throw new Error(`invalid config: ${e}`);if(typeof e.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${e.withSeparableConvs}`);if(!og(e.iouThreshold)||e.iouThreshold<0||e.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${e.iouThreshold}`);if(!Array.isArray(e.classes)||!e.classes.length||!e.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(e.classes)}`);if(!Array.isArray(e.anchors)||!e.anchors.length||!e.anchors.map(t=>t||{}).every(t=>og(t.x)&&og(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(e.anchors)}`);if(e.meanRgb&&(!Array.isArray(e.meanRgb)||e.meanRgb.length!==3||!e.meanRgb.every(og)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function pp(e){return P(()=>{let t=z(e,xe(.10000000149011612));return Y(Xe(pe(e,t)),t)})}function zr(e,t){return P(()=>{let n=ya(e,[[0,0],[1,1],[1,1],[0,0]]);return n=At(n,t.conv.filters,[1,1],"valid"),n=pe(n,t.bn.sub),n=z(n,t.bn.truediv),n=Y(n,t.conv.bias),pp(n)})}function Wr(e,t){return P(()=>{let n=ya(e,[[0,0],[1,1],[1,1],[0,0]]);return n=vs(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=Y(n,t.bias),pp(n)})}function Kpe(e,t){let n=tp(e,t);function a(i,o){let l=Ke(e(i)),u=Ke(e(i));return t.push({paramPath:`${o}/sub`},{paramPath:`${o}/truediv`}),{sub:l,truediv:u}}function r(i,o,l){let u=n(i,o,3,`${l}/conv`),p=a(o,`${l}/bn`);return{conv:u,bn:p}}let s=np(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function bA(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=An(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:u}=Kpe(r,i),p;if(t.withSeparableConvs){let[d,c,h,m,f,g,y,b,x]=a,w=t.isFirstLayerConv2d?o(d,c,3,"conv0"):u(d,c,"conv0"),I=u(c,h,"conv1"),T=u(h,m,"conv2"),C=u(m,f,"conv3"),E=u(f,g,"conv4"),$=u(g,y,"conv5"),R=b?u(y,b,"conv6"):void 0,F=x?u(b,x,"conv7"):void 0,S=o(x||b||y,5*n,1,"conv8");p={conv0:w,conv1:I,conv2:T,conv3:C,conv4:E,conv5:$,conv6:R,conv7:F,conv8:S}}else{let[d,c,h,m,f,g,y,b,x]=a,w=l(d,c,"conv0"),I=l(c,h,"conv1"),T=l(h,m,"conv2"),C=l(m,f,"conv3"),E=l(f,g,"conv4"),$=l(g,y,"conv5"),R=l(y,b,"conv6"),F=l(b,x,"conv7"),S=o(x,5*n,1,"conv8");p={conv0:w,conv1:I,conv2:T,conv3:C,conv4:E,conv5:$,conv6:R,conv7:F,conv8:S}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:p,paramMappings:i}}function Xpe(e,t){let n=ra(e,t);function a(o){let l=n(`${o}/sub`,1),u=n(`${o}/truediv`,1);return{sub:l,truediv:u}}function r(o){let l=n(`${o}/filters`,4),u=n(`${o}/bias`,1);return{filters:l,bias:u}}function s(o){let l=r(`${o}/conv`),u=a(`${o}/bn`);return{conv:l,bn:u}}let i=ap(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function xA(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=Xpe(e,n),i;if(t.withSeparableConvs){let o=t.filterSizes&&t.filterSizes.length||9;i={conv0:t.isFirstLayerConv2d?a("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:o>7?s("conv6"):void 0,conv7:o>8?s("conv7"):void 0,conv8:a("conv8")}}else i={conv0:r("conv0"),conv1:r("conv1"),conv2:r("conv2"),conv3:r("conv3"),conv4:r("conv4"),conv5:r("conv5"),conv6:r("conv6"),conv7:r("conv7"),conv8:a("conv8")};return $n(e,n),{params:i,paramMappings:n}}var fr=class{constructor({inputSize:t,scoreThreshold:n}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=n||.5,typeof this._inputSize!="number"||this._inputSize%32!==0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var w1=class extends dn{constructor(n){super("TinyYolov2");yA(n),this._config=n}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(n,a){let r=zr(n,a.conv0);return r=Dt(r,[2,2],[2,2],"same"),r=zr(r,a.conv1),r=Dt(r,[2,2],[2,2],"same"),r=zr(r,a.conv2),r=Dt(r,[2,2],[2,2],"same"),r=zr(r,a.conv3),r=Dt(r,[2,2],[2,2],"same"),r=zr(r,a.conv4),r=Dt(r,[2,2],[2,2],"same"),r=zr(r,a.conv5),r=Dt(r,[2,2],[1,1],"same"),r=zr(r,a.conv6),r=zr(r,a.conv7),No(r,a.conv8,"valid",!1)}runMobilenet(n,a){let r=this.config.isFirstLayerConv2d?pp(No(n,a.conv0,"valid",!1)):Wr(n,a.conv0);return r=Dt(r,[2,2],[2,2],"same"),r=Wr(r,a.conv1),r=Dt(r,[2,2],[2,2],"same"),r=Wr(r,a.conv2),r=Dt(r,[2,2],[2,2],"same"),r=Wr(r,a.conv3),r=Dt(r,[2,2],[2,2],"same"),r=Wr(r,a.conv4),r=Dt(r,[2,2],[2,2],"same"),r=Wr(r,a.conv5),r=Dt(r,[2,2],[1,1],"same"),r=a.conv6?Wr(r,a.conv6):r,r=a.conv7?Wr(r,a.conv7):r,No(r,a.conv8,"valid",!1)}forwardInput(n,a){let{params:r}=this;if(!r)throw new Error("TinyYolov2 - load model before inference");return P(()=>{let s=le(n.toBatchTensor(a,!1),"float32");return s=this.config.meanRgb?mr(s,this.config.meanRgb):s,s=s.div(255),this.config.withSeparableConvs?this.runMobilenet(s,r):this.runTinyYolov2(s,r)})}async forward(n,a){return this.forwardInput(await vt(n),a)}async detect(n,a={}){let{inputSize:r,scoreThreshold:s}=new fr(a),i=await vt(n),o=await this.forwardInput(i,r),l=P(()=>ct(o)[0].expandDims()),u={width:i.getInputWidth(0),height:i.getInputHeight(0)},p=await this.extractBoxes(l,i.getReshapedInputDimensions(0),s);o.dispose(),l.dispose();let d=p.map(y=>y.box),c=p.map(y=>y.score),h=p.map(y=>y.classScore),m=p.map(y=>this.config.classes[y.label]);return C$(d.map(y=>y.rescale(r)),c,this.config.iouThreshold,!0).map(y=>new Ts(c[y],h[y],m[y],d[y],u))}getDefaultModelName(){return""}extractParamsFromWeightMap(n){return xA(n,this.config)}extractParams(n){let a=this.config.filterSizes||w1.DEFAULT_FILTER_SIZES,r=a?a.length:void 0;if(r!==7&&r!==8&&r!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${r} filterSizes in config`);return bA(n,this.config,this.boxEncodingSize,a)}async extractBoxes(n,a,r){let{width:s,height:i}=a,o=Math.max(s,i),l=o/s,u=o/i,p=n.shape[1],d=this.config.anchors.length,[c,h,m]=P(()=>{let b=n.reshape([p,p,d,this.boxEncodingSize]),x=b.slice([0,0,0,0],[p,p,d,4]),w=b.slice([0,0,0,4],[p,p,d,1]),I=this.withClassScores?Ka(b.slice([0,0,0,5],[p,p,d,this.config.classes.length]),3):xe(0);return[x,w,I]}),f=[],g=await h.array(),y=await c.array();for(let b=0;br){let T=(x+Bf(y[b][x][w][0]))/p*l,C=(b+Bf(y[b][x][w][1]))/p*u,E=Math.exp(y[b][x][w][2])*this.config.anchors[w].x/p*l,$=Math.exp(y[b][x][w][3])*this.config.anchors[w].y/p*u,R=T-E/2,F=C-$/2,S={row:b,col:x,anchor:w},{classScore:M,label:B}=this.withClassScores?await this.extractPredictedClass(m,S):{classScore:1,label:0};f.push({box:new qu(R,F,R+E,F+$),score:I,classScore:I*M,label:B,...S})}}return c.dispose(),h.dispose(),m.dispose(),f}async extractPredictedClass(n,a){let{row:r,col:s,anchor:i}=a,o=await n.array();return Array(this.config.classes.length).fill(0).map((l,u)=>o[r][s][i][u]).map((l,u)=>({classScore:l,label:u})).reduce((l,u)=>l.classScore>u.classScore?l:u)}},Eo=w1;Eo.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var cp=class extends Eo{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:cA,classes:["face"],...t?{anchors:hA,meanRgb:mA}:{anchors:dA,withClassScores:!0}};super(n)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new xt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?gA:fA}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function HSe(e,t=!0){let n=new cp(t);return n.extractWeights(e),n}var lg=class extends fr{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var Pa=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function $o(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>ip(l)?r(l):l.detection),i=a||(t instanceof Te?await cd(t,s):await pd(t,s)),o=await n(i);return i.forEach(l=>l instanceof Te&&l.dispose()),o}async function dp(e,t,n,a,r){return $o([e],t,async s=>n(s[0]),a,r)}var vA=.4,wA=[new Me(1.603231,2.094468),new Me(6.041143,7.080126),new Me(2.882459,3.518061),new Me(4.266906,5.178857),new Me(9.041765,10.66308)],kA=[117.001,114.697,97.404];var hp=class extends Eo{constructor(){let t={withSeparableConvs:!0,iouThreshold:vA,classes:["face"],anchors:wA,meanRgb:kA,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new xt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var tt={ssdMobilenetv1:new _o,tinyFaceDetector:new hp,tinyYolov2:new cp,faceLandmark68Net:new lp,faceLandmark68TinyNet:new sg,faceRecognitionNet:new up,faceExpressionNet:new Qf,ageGenderNet:new ag},Ype=(e,t)=>tt.ssdMobilenetv1.locateFaces(e,t),wTe=(e,t)=>tt.tinyFaceDetector.locateFaces(e,t),kTe=(e,t)=>tt.tinyYolov2.locateFaces(e,t),Zpe=e=>tt.faceLandmark68Net.detectLandmarks(e),ITe=e=>tt.faceLandmark68TinyNet.detectLandmarks(e),STe=e=>tt.faceRecognitionNet.computeFaceDescriptor(e),TTe=e=>tt.faceExpressionNet.predictExpressions(e),NTe=e=>tt.ageGenderNet.predictAgeAndGender(e),Jpe=e=>tt.ssdMobilenetv1.load(e),CTe=e=>tt.tinyFaceDetector.load(e),_Te=e=>tt.tinyYolov2.load(e),ETe=e=>tt.faceLandmark68Net.load(e),$Te=e=>tt.faceLandmark68TinyNet.load(e),ATe=e=>tt.faceRecognitionNet.load(e),FTe=e=>tt.faceExpressionNet.load(e),DTe=e=>tt.ageGenderNet.load(e),RTe=Jpe,MTe=Ype,PTe=Zpe;var ug=class extends Pa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Ao=class extends ug{async run(){let t=await this.parentTask,n=await $o(t,this.input,async a=>Promise.all(a.map(r=>tt.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>h1(a,n[r]))}withAgeAndGender(){return new Do(this,this.input)}},Fo=class extends ug{async run(){let t=await this.parentTask;if(!t)return;let n=await dp(t,this.input,a=>tt.faceExpressionNet.predictExpressions(a),this.extractedFaces);return h1(t,n)}withAgeAndGender(){return new Ro(this,this.input)}},_s=class extends Ao{withAgeAndGender(){return new $s(this,this.input)}withFaceDescriptors(){return new Fs(this,this.input)}},Es=class extends Fo{withAgeAndGender(){return new As(this,this.input)}withFaceDescriptor(){return new Ds(this,this.input)}};var pg=class extends Pa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Do=class extends pg{async run(){let t=await this.parentTask,n=await $o(t,this.input,async a=>Promise.all(a.map(r=>tt.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return x1(v1(a,i,o),s)})}withFaceExpressions(){return new Ao(this,this.input)}},Ro=class extends pg{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await dp(t,this.input,s=>tt.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return x1(v1(t,a,r),n)}withFaceExpressions(){return new Fo(this,this.input)}},$s=class extends Do{withFaceExpressions(){return new _s(this,this.input)}withFaceDescriptors(){return new Fs(this,this.input)}},As=class extends Ro{withFaceExpressions(){return new Es(this,this.input)}withFaceDescriptor(){return new Ds(this,this.input)}};var cg=class extends Pa{constructor(n,a){super();this.parentTask=n;this.input=a}},Fs=class extends cg{async run(){let t=await this.parentTask;return(await $o(t,this.input,a=>Promise.all(a.map(r=>tt.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>b1(t[r],a))}withFaceExpressions(){return new _s(this,this.input)}withAgeAndGender(){return new $s(this,this.input)}},Ds=class extends cg{async run(){let t=await this.parentTask;if(!t)return;let n=await dp(t,this.input,a=>tt.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return b1(t,n)}withFaceExpressions(){return new Es(this,this.input)}withAgeAndGender(){return new As(this,this.input)}};var dg=class extends Pa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?tt.faceLandmark68TinyNet:tt.faceLandmark68Net}},hg=class extends dg{async run(){let t=await this.parentTask,n=t.map(i=>i.detection),a=this.input instanceof Te?await cd(this.input,n):await pd(this.input,n),r=await Promise.all(a.map(i=>this.landmarkNet.detectLandmarks(i)));return a.forEach(i=>i instanceof Te&&i.dispose()),t.filter((i,o)=>r[o]).map((i,o)=>fd(i,r[o]))}withFaceExpressions(){return new _s(this,this.input)}withAgeAndGender(){return new $s(this,this.input)}withFaceDescriptors(){return new Fs(this,this.input)}},mg=class extends dg{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Te?await cd(this.input,[n]):await pd(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Te&&s.dispose()),fd(t,r)}withFaceExpressions(){return new Es(this,this.input)}withAgeAndGender(){return new As(this,this.input)}withFaceDescriptor(){return new Ds(this,this.input)}};var fg=class extends Pa{constructor(n,a=new Ma){super();this.input=n;this.options=a}},yd=class extends fg{async run(){let{input:t,options:n}=this,a;if(n instanceof lg)a=tt.tinyFaceDetector.locateFaces(t,n);else if(n instanceof Ma)a=tt.ssdMobilenetv1.locateFaces(t,n);else if(n instanceof fr)a=tt.tinyYolov2.locateFaces(t,n);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return a}runAndExtendWithFaceDetections(){return new Promise((t,n)=>{this.run().then(a=>t(a.map(r=>Yu({},r)))).catch(a=>n(a))})}withFaceLandmarks(t=!1){return new hg(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new Ao(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Do(this.runAndExtendWithFaceDetections(),this.input)}},gg=class extends fg{async run(){let t=await new yd(this.input,this.options),n=t[0];return t.forEach(a=>{a.score>n.score&&(n=a)}),n}runAndExtendWithFaceDetection(){return new Promise(async t=>{let n=await this.run();t(n?Yu({},n):void 0)})}withFaceLandmarks(t=!1){return new mg(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Fo(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Ro(this.runAndExtendWithFaceDetection(),this.input)}};function DNe(e,t=new Ma){return new gg(e,t)}function k1(e,t=new Ma){return new yd(e,t)}async function Qpe(e,t){return k1(e,new Ma(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function zNe(e,t={}){return k1(e,new fr(t)).withFaceLandmarks().withFaceDescriptors()}var WNe=Qpe;function IA(e,t){if(e.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let n=Array.from(e),a=Array.from(t);return Math.sqrt(n.map((r,s)=>r-a[s]).reduce((r,s)=>r+s*s,0))}var yg=class{constructor(t,n=.6){this._distanceThreshold=n;let a=Array.isArray(t)?t:[t];if(!a.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let r=1,s=()=>`person ${r++}`;this._labeledDescriptors=a.map(i=>{if(i instanceof Mr)return i;if(i instanceof Float32Array)return new Mr(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new Mr(s(),[i.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,n){return n.map(a=>IA(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new id(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>Mr.fromJSON(a));return new yg(n,t.distanceThreshold)}};function r2e(e){let t=new hp;return t.extractWeights(e),t}function ece(e,t){let{width:n,height:a}=new En(t.width,t.height);if(n<=0||a<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:n,height:a})}`);if(Array.isArray(e))return e.map(r=>ece(r,{width:n,height:a}));if(ip(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return fd(Yu(e,r),s)}return Pr(e)?Yu(e,e.detection.forSize(n,a)):e instanceof va||e instanceof xt?e.forSize(n,a):e}var f2e=H$;export{ag as AgeGenderNet,qu as BoundingBox,ut as Box,Pa as ComposableTask,Fs as ComputeAllFaceDescriptorsTask,cg as ComputeFaceDescriptorsTaskBase,Ds as ComputeSingleFaceDescriptorTask,hg as DetectAllFaceLandmarksTask,yd as DetectAllFacesTask,dg as DetectFaceLandmarksTaskBase,fg as DetectFacesTaskBase,mg as DetectSingleFaceLandmarksTask,gg as DetectSingleFaceTask,En as Dimensions,V$ as FACE_EXPRESSION_LABELS,xt as FaceDetection,pA as FaceDetectionNet,Qf as FaceExpressionNet,Cs as FaceExpressions,lp as FaceLandmark68Net,sg as FaceLandmark68TinyNet,Q$ as FaceLandmarkNet,va as FaceLandmarks,E$ as FaceLandmarks5,Xu as FaceLandmarks68,id as FaceMatch,yg as FaceMatcher,up as FaceRecognitionNet,f1 as Gender,od as LabeledBox,Mr as LabeledFaceDescriptors,Lr as NetInput,dn as NeuralNetwork,Ts as ObjectDetection,Me as Point,$$ as PredictedBox,Ku as Rect,_o as SsdMobilenetv1,Ma as SsdMobilenetv1Options,hp as TinyFaceDetector,lg as TinyFaceDetectorOptions,cp as TinyYolov2,fr as TinyYolov2Options,WNe as allFaces,Qpe as allFacesSsdMobilenetv1,zNe as allFacesTinyYolov2,A$ as awaitMediaLoaded,F$ as bufferToImage,STe as computeFaceDescriptor,ep as createCanvas,Hf as createCanvasFromMedia,eSe as createFaceDetectionNet,eIe as createFaceRecognitionNet,qpe as createSsdMobilenetv1,r2e as createTinyFaceDetector,HSe as createTinyYolov2,k1 as detectAllFaces,Zpe as detectFaceLandmarks,ITe as detectFaceLandmarksTiny,PTe as detectLandmarks,DNe as detectSingleFace,G$ as draw,et as env,IA as euclideanDistance,x1 as extendWithAge,b1 as extendWithFaceDescriptor,Yu as extendWithFaceDetection,h1 as extendWithFaceExpressions,fd as extendWithFaceLandmarks,v1 as extendWithGender,cd as extractFaceTensors,pd as extractFaces,pve as fetchImage,M$ as fetchJson,fve as fetchNetWeights,Ns as fetchOrThrow,wve as fetchVideo,aa as getContext2dOrThrow,Qu as getMediaDimensions,D$ as imageTensorToCanvas,R$ as imageToSquare,Tye as inverseSigmoid,T$ as iou,d1 as isMediaElement,Gf as isMediaLoaded,rIe as isWithAge,Pr as isWithFaceDetection,U$ as isWithFaceExpressions,ip as isWithFaceLandmarks,lIe as isWithGender,DTe as loadAgeGenderModel,RTe as loadFaceDetectionModel,FTe as loadFaceExpressionModel,ETe as loadFaceLandmarkModel,$Te as loadFaceLandmarkTinyModel,ATe as loadFaceRecognitionModel,Jpe as loadSsdMobilenetv1Model,CTe as loadTinyFaceDetectorModel,_Te as loadTinyYolov2Model,O$ as loadWeightMap,MTe as locateFaces,_ve as matchDimensions,N$ as minBbox,tt as nets,C$ as nonMaxSuppression,mr as normalize,_$ as padToSquare,NTe as predictAgeAndGender,TTe as recognizeFaceExpressions,ece as resizeResults,Zu as resolveInput,Iye as shuffleArray,Bf as sigmoid,Ype as ssdMobilenetv1,Oe as tf,wTe as tinyFaceDetector,kTe as tinyYolov2,vt as toNetInput,S$ as utils,yA as validateConfig,f2e as version}; //# sourceMappingURL=face-api.esm.js.map diff --git a/dist/face-api.esm.js.map b/dist/face-api.esm.js.map index ae66c161..85294ab3 100644 --- a/dist/face-api.esm.js.map +++ b/dist/face-api.esm.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["tfjs.esm.js", "../src/draw/index.ts", "../src/draw/drawContour.ts", "../src/utils/index.ts", "../src/classes/Dimensions.ts", "../src/classes/Point.ts", "../src/classes/Box.ts", "../src/classes/BoundingBox.ts", "../src/classes/ObjectDetection.ts", "../src/classes/FaceDetection.ts", "../src/ops/iou.ts", "../src/ops/minBbox.ts", "../src/ops/nonMaxSuppression.ts", "../src/ops/normalize.ts", "../src/ops/padToSquare.ts", "../src/ops/shuffleArray.ts", "../src/ops/index.ts", "../src/classes/Rect.ts", "../src/classes/FaceLandmarks.ts", "../src/classes/FaceLandmarks5.ts", "../src/classes/FaceLandmarks68.ts", "../src/classes/FaceMatch.ts", "../src/classes/LabeledBox.ts", "../src/classes/LabeledFaceDescriptors.ts", "../src/classes/PredictedBox.ts", "../src/factories/WithFaceDetection.ts", "../src/env/createBrowserEnv.ts", "../src/env/isNodejs.ts", "../src/env/createFileSystem.ts", "../src/env/createNodejsEnv.ts", "../src/env/isBrowser.ts", "../src/env/index.ts", "../src/dom/resolveInput.ts", "../src/dom/getContext2dOrThrow.ts", "../src/draw/DrawTextField.ts", "../src/draw/DrawBox.ts", "../src/draw/drawDetections.ts", "../src/dom/isMediaLoaded.ts", "../src/dom/awaitMediaLoaded.ts", "../src/dom/bufferToImage.ts", "../src/dom/getMediaDimensions.ts", "../src/dom/createCanvas.ts", "../src/dom/imageTensorToCanvas.ts", "../src/dom/isMediaElement.ts", "../src/dom/imageToSquare.ts", "../src/dom/NetInput.ts", "../src/dom/toNetInput.ts", "../src/dom/extractFaces.ts", "../src/dom/extractFaceTensors.ts", "../src/dom/fetchOrThrow.ts", "../src/dom/fetchImage.ts", "../src/dom/fetchJson.ts", "../src/dom/fetchNetWeights.ts", "../src/dom/bufferToVideo.ts", "../src/dom/fetchVideo.ts", "../src/common/getModelUris.ts", "../src/dom/loadWeightMap.ts", "../src/dom/matchDimensions.ts", "../src/NeuralNetwork.ts", "../src/common/depthwiseSeparableConv.ts", "../src/faceFeatureExtractor/denseBlock.ts", "../src/common/convLayer.ts", "../src/common/disposeUnusedWeightTensors.ts", "../src/common/extractConvParamsFactory.ts", "../src/common/extractFCParamsFactory.ts", "../src/common/types.ts", "../src/common/extractSeparableConvParamsFactory.ts", "../src/common/extractWeightEntryFactory.ts", "../src/common/extractWeightsFactory.ts", "../src/faceFeatureExtractor/extractorsFactory.ts", "../src/faceFeatureExtractor/extractParams.ts", "../src/common/loadConvParamsFactory.ts", "../src/faceFeatureExtractor/loadParamsFactory.ts", "../src/faceFeatureExtractor/extractParamsFromWeightMap.ts", "../src/faceFeatureExtractor/FaceFeatureExtractor.ts", "../src/common/fullyConnectedLayer.ts", "../src/faceProcessor/extractParams.ts", "../src/faceProcessor/extractParamsFromWeightMap.ts", "../src/faceProcessor/util.ts", "../src/faceProcessor/FaceProcessor.ts", "../src/faceExpressionNet/FaceExpressions.ts", "../src/faceExpressionNet/FaceExpressionNet.ts", "../src/factories/WithFaceExpressions.ts", "../src/draw/drawFaceExpressions.ts", "../src/factories/WithFaceLandmarks.ts", "../src/draw/DrawFaceLandmarks.ts", "../src/xception/extractParams.ts", "../src/xception/extractParamsFromWeightMap.ts", "../src/xception/TinyXception.ts", "../src/ageGenderNet/extractParams.ts", "../src/ageGenderNet/extractParamsFromWeightMap.ts", "../src/ageGenderNet/types.ts", "../src/ageGenderNet/AgeGenderNet.ts", "../src/faceLandmarkNet/FaceLandmark68NetBase.ts", "../src/faceLandmarkNet/FaceLandmark68Net.ts", "../src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts", "../src/faceFeatureExtractor/extractParamsTiny.ts", "../src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts", "../src/faceLandmarkNet/FaceLandmark68TinyNet.ts", "../src/faceLandmarkNet/index.ts", "../src/faceRecognitionNet/scaleLayer.ts", "../src/faceRecognitionNet/convLayer.ts", "../src/faceRecognitionNet/extractParams.ts", "../src/faceRecognitionNet/extractParamsFromWeightMap.ts", "../src/faceRecognitionNet/residualLayer.ts", "../src/faceRecognitionNet/FaceRecognitionNet.ts", "../src/faceRecognitionNet/index.ts", "../src/factories/WithFaceDescriptor.ts", "../src/factories/WithAge.ts", "../src/factories/WithGender.ts", "../src/ssdMobilenetv1/extractParams.ts", "../src/ssdMobilenetv1/extractParamsFromWeightMap.ts", "../src/ssdMobilenetv1/pointwiseConvLayer.ts", "../src/ssdMobilenetv1/mobileNetV1.ts", "../src/ssdMobilenetv1/nonMaxSuppression.ts", "../src/ssdMobilenetv1/outputLayer.ts", "../src/ssdMobilenetv1/boxPredictionLayer.ts", "../src/ssdMobilenetv1/predictionLayer.ts", "../src/ssdMobilenetv1/SsdMobilenetv1Options.ts", "../src/ssdMobilenetv1/SsdMobilenetv1.ts", "../src/ssdMobilenetv1/index.ts", "../src/tinyYolov2/const.ts", "../src/tinyYolov2/config.ts", "../src/tinyYolov2/leaky.ts", "../src/tinyYolov2/convWithBatchNorm.ts", "../src/tinyYolov2/depthwiseSeparableConv.ts", "../src/tinyYolov2/extractParams.ts", "../src/tinyYolov2/extractParamsFromWeightMap.ts", "../src/tinyYolov2/TinyYolov2Options.ts", "../src/tinyYolov2/TinyYolov2Base.ts", "../src/tinyYolov2/TinyYolov2.ts", "../src/tinyYolov2/index.ts", "../src/tinyFaceDetector/TinyFaceDetectorOptions.ts", "../src/globalApi/ComposableTask.ts", "../src/globalApi/extractFacesAndComputeResults.ts", "../src/tinyFaceDetector/const.ts", "../src/tinyFaceDetector/TinyFaceDetector.ts", "../src/globalApi/nets.ts", "../src/globalApi/PredictFaceExpressionsTask.ts", "../src/globalApi/PredictAgeAndGenderTask.ts", "../src/globalApi/ComputeFaceDescriptorsTasks.ts", "../src/globalApi/DetectFaceLandmarksTasks.ts", "../src/globalApi/DetectFacesTasks.ts", "../src/globalApi/detectFaces.ts", "../src/globalApi/allFaces.ts", "../src/euclideanDistance.ts", "../src/globalApi/FaceMatcher.ts", "../src/tinyFaceDetector/index.ts", "../src/resizeResults.ts", "../src/index.ts"], - "sourcesContent": ["/*\n Face-API\n homepage: \n author: '\n*/\n\nvar DU=Object.create;var QS=Object.defineProperty;var RU=Object.getOwnPropertyDescriptor;var FU=Object.getOwnPropertyNames;var OU=Object.getPrototypeOf,PU=Object.prototype.hasOwnProperty;var Pg=(r=>typeof require!=\"undefined\"?require:typeof Proxy!=\"undefined\"?new Proxy(r,{get:(t,e)=>(typeof require!=\"undefined\"?require:t)[e]}):r)(function(r){if(typeof require!=\"undefined\")return require.apply(this,arguments);throw new Error('Dynamic require of \"'+r+'\" is not supported')});var gr=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),Wt=(r,t)=>{for(var e in t)QS(r,e,{get:t[e],enumerable:!0})},LU=(r,t,e,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let o of FU(t))!PU.call(r,o)&&o!==e&&QS(r,o,{get:()=>t[o],enumerable:!(n=RU(t,o))||n.enumerable});return r};var Tl=(r,t,e)=>(e=r!=null?DU(OU(r)):{},LU(t||!r||!r.__esModule?QS(e,\"default\",{value:r,enumerable:!0}):e,r));var T1=gr((Elt,N1)=>{N1.exports=Ue;var mo=null;try{mo=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(r){}function Ue(r,t,e){this.low=r|0,this.high=t|0,this.unsigned=!!e}Ue.prototype.__isLong__;Object.defineProperty(Ue.prototype,\"__isLong__\",{value:!0});function Fn(r){return(r&&r.__isLong__)===!0}Ue.isLong=Fn;var g1={},x1={};function zu(r,t){var e,n,o;return t?(r>>>=0,(o=0<=r&&r<256)&&(n=x1[r],n)?n:(e=He(r,(r|0)<0?-1:0,!0),o&&(x1[r]=e),e)):(r|=0,(o=-128<=r&&r<128)&&(n=g1[r],n)?n:(e=He(r,r<0?-1:0,!1),o&&(g1[r]=e),e))}Ue.fromInt=zu;function fo(r,t){if(isNaN(r))return t?Mu:ho;if(t){if(r<0)return Mu;if(r>=C1)return v1}else{if(r<=-b1)return Rn;if(r+1>=b1)return S1}return r<0?fo(-r,t).neg():He(r%Vp|0,r/Vp|0,t)}Ue.fromNumber=fo;function He(r,t,e){return new Ue(r,t,e)}Ue.fromBits=He;var Bg=Math.pow;function m0(r,t,e){if(r.length===0)throw Error(\"empty string\");if(r===\"NaN\"||r===\"Infinity\"||r===\"+Infinity\"||r===\"-Infinity\")return ho;if(typeof t==\"number\"?(e=t,t=!1):t=!!t,e=e||10,e<2||360)throw Error(\"interior hyphen\");if(n===0)return m0(r.substring(1),t,e).neg();for(var o=fo(Bg(e,8)),s=ho,i=0;i>>0:this.low};gt.toNumber=function(){return this.unsigned?(this.high>>>0)*Vp+(this.low>>>0):this.high*Vp+(this.low>>>0)};gt.toString=function(t){if(t=t||10,t<2||36>>0,c=l.toString(t);if(i=u,i.isZero())return c+a;for(;c.length<6;)c=\"0\"+c;a=\"\"+c+a}};gt.getHighBits=function(){return this.high};gt.getHighBitsUnsigned=function(){return this.high>>>0};gt.getLowBits=function(){return this.low};gt.getLowBitsUnsigned=function(){return this.low>>>0};gt.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Rn)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,e=31;e>0&&(t&1<=0};gt.isOdd=function(){return(this.low&1)===1};gt.isEven=function(){return(this.low&1)===0};gt.equals=function(t){return Fn(t)||(t=Ls(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low};gt.eq=gt.equals;gt.notEquals=function(t){return!this.eq(t)};gt.neq=gt.notEquals;gt.ne=gt.notEquals;gt.lessThan=function(t){return this.comp(t)<0};gt.lt=gt.lessThan;gt.lessThanOrEqual=function(t){return this.comp(t)<=0};gt.lte=gt.lessThanOrEqual;gt.le=gt.lessThanOrEqual;gt.greaterThan=function(t){return this.comp(t)>0};gt.gt=gt.greaterThan;gt.greaterThanOrEqual=function(t){return this.comp(t)>=0};gt.gte=gt.greaterThanOrEqual;gt.ge=gt.greaterThanOrEqual;gt.compare=function(t){if(Fn(t)||(t=Ls(t)),this.eq(t))return 0;var e=this.isNegative(),n=t.isNegative();return e&&!n?-1:!e&&n?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1};gt.comp=gt.compare;gt.negate=function(){return!this.unsigned&&this.eq(Rn)?Rn:this.not().add(Bp)};gt.neg=gt.negate;gt.add=function(t){Fn(t)||(t=Ls(t));var e=this.high>>>16,n=this.high&65535,o=this.low>>>16,s=this.low&65535,i=t.high>>>16,a=t.high&65535,u=t.low>>>16,l=t.low&65535,c=0,p=0,m=0,f=0;return f+=s+l,m+=f>>>16,f&=65535,m+=o+u,p+=m>>>16,m&=65535,p+=n+a,c+=p>>>16,p&=65535,c+=e+i,c&=65535,He(m<<16|f,c<<16|p,this.unsigned)};gt.subtract=function(t){return Fn(t)||(t=Ls(t)),this.add(t.neg())};gt.sub=gt.subtract;gt.multiply=function(t){if(this.isZero())return ho;if(Fn(t)||(t=Ls(t)),mo){var e=mo.mul(this.low,this.high,t.low,t.high);return He(e,mo.get_high(),this.unsigned)}if(t.isZero())return ho;if(this.eq(Rn))return t.isOdd()?Rn:ho;if(t.eq(Rn))return this.isOdd()?Rn:ho;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(w1)&&t.lt(w1))return fo(this.toNumber()*t.toNumber(),this.unsigned);var n=this.high>>>16,o=this.high&65535,s=this.low>>>16,i=this.low&65535,a=t.high>>>16,u=t.high&65535,l=t.low>>>16,c=t.low&65535,p=0,m=0,f=0,d=0;return d+=i*c,f+=d>>>16,d&=65535,f+=s*c,m+=f>>>16,f&=65535,f+=i*l,m+=f>>>16,f&=65535,m+=o*c,p+=m>>>16,m&=65535,m+=s*l,p+=m>>>16,m&=65535,m+=i*u,p+=m>>>16,m&=65535,p+=n*c+o*l+s*u+i*a,p&=65535,He(f<<16|d,p<<16|m,this.unsigned)};gt.mul=gt.multiply;gt.divide=function(t){if(Fn(t)||(t=Ls(t)),t.isZero())throw Error(\"division by zero\");if(mo){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var e=(this.unsigned?mo.div_u:mo.div_s)(this.low,this.high,t.low,t.high);return He(e,mo.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Mu:ho;var n,o,s;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return Mu;if(t.gt(this.shru(1)))return I1;s=Mu}else{if(this.eq(Rn)){if(t.eq(Bp)||t.eq(p0))return Rn;if(t.eq(Rn))return Bp;var i=this.shr(1);return n=i.div(t).shl(1),n.eq(ho)?t.isNegative()?Bp:p0:(o=this.sub(t.mul(n)),s=n.add(o.div(t)),s)}else if(t.eq(Rn))return this.unsigned?Mu:ho;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();s=ho}for(o=this;o.gte(t);){n=Math.max(1,Math.floor(o.toNumber()/t.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),u=a<=48?1:Bg(2,a-48),l=fo(n),c=l.mul(t);c.isNegative()||c.gt(o);)n-=u,l=fo(n,this.unsigned),c=l.mul(t);l.isZero()&&(l=Bp),s=s.add(l),o=o.sub(c)}return s};gt.div=gt.divide;gt.modulo=function(t){if(Fn(t)||(t=Ls(t)),mo){var e=(this.unsigned?mo.rem_u:mo.rem_s)(this.low,this.high,t.low,t.high);return He(e,mo.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))};gt.mod=gt.modulo;gt.rem=gt.modulo;gt.not=function(){return He(~this.low,~this.high,this.unsigned)};gt.and=function(t){return Fn(t)||(t=Ls(t)),He(this.low&t.low,this.high&t.high,this.unsigned)};gt.or=function(t){return Fn(t)||(t=Ls(t)),He(this.low|t.low,this.high|t.high,this.unsigned)};gt.xor=function(t){return Fn(t)||(t=Ls(t)),He(this.low^t.low,this.high^t.high,this.unsigned)};gt.shiftLeft=function(t){return Fn(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?He(this.low<>>32-t,this.unsigned):He(0,this.low<>>t|this.high<<32-t,this.high>>t,this.unsigned):He(this.high>>t-32,this.high>=0?0:-1,this.unsigned)};gt.shr=gt.shiftRight;gt.shiftRightUnsigned=function(t){if(Fn(t)&&(t=t.toInt()),t&=63,t===0)return this;var e=this.high;if(t<32){var n=this.low;return He(n>>>t|e<<32-t,e>>>t,this.unsigned)}else return t===32?He(e,0,this.unsigned):He(e>>>t-32,0,this.unsigned)};gt.shru=gt.shiftRightUnsigned;gt.shr_u=gt.shiftRightUnsigned;gt.toSigned=function(){return this.unsigned?He(this.low,this.high,!1):this};gt.toUnsigned=function(){return this.unsigned?this:He(this.low,this.high,!0)};gt.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()};gt.toBytesLE=function(){var t=this.high,e=this.low;return[e&255,e>>>8&255,e>>>16&255,e>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]};gt.toBytesBE=function(){var t=this.high,e=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,e>>>24,e>>>16&255,e>>>8&255,e&255]};Ue.fromBytes=function(t,e,n){return n?Ue.fromBytesLE(t,e):Ue.fromBytesBE(t,e)};Ue.fromBytesLE=function(t,e){return new Ue(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,e)};Ue.fromBytesBE=function(t,e){return new Ue(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],e)}});var iE=gr(()=>{});var aE=gr(()=>{});var u_=gr((l_,rv)=>{(function(r,t,e){function n(a){var u=this,l=i();u.next=function(){var c=2091639*u.s0+u.c*23283064365386963e-26;return u.s0=u.s1,u.s1=u.s2,u.s2=c-(u.c=c|0)},u.c=1,u.s0=l(\" \"),u.s1=l(\" \"),u.s2=l(\" \"),u.s0-=l(a),u.s0<0&&(u.s0+=1),u.s1-=l(a),u.s1<0&&(u.s1+=1),u.s2-=l(a),u.s2<0&&(u.s2+=1),l=null}function o(a,u){return u.c=a.c,u.s0=a.s0,u.s1=a.s1,u.s2=a.s2,u}function s(a,u){var l=new n(a),c=u&&u.state,p=l.next;return p.int32=function(){return l.next()*4294967296|0},p.double=function(){return p()+(p()*2097152|0)*11102230246251565e-32},p.quick=p,c&&(typeof c==\"object\"&&o(c,l),p.state=function(){return o(l,{})}),p}function i(){var a=4022871197,u=function(l){l=String(l);for(var c=0;c>>0,p-=a,p*=a,a=p>>>0,p-=a,a+=p*4294967296}return(a>>>0)*23283064365386963e-26};return u}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.alea=s})(l_,typeof rv==\"object\"&&rv,typeof define==\"function\"&&define)});var p_=gr((c_,nv)=>{(function(r,t,e){function n(i){var a=this,u=\"\";a.x=0,a.y=0,a.z=0,a.w=0,a.next=function(){var c=a.x^a.x<<11;return a.x=a.y,a.y=a.z,a.z=a.w,a.w^=a.w>>>19^c^c>>>8},i===(i|0)?a.x=i:u+=i;for(var l=0;l>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l==\"object\"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xor128=s})(c_,typeof nv==\"object\"&&nv,typeof define==\"function\"&&define)});var f_=gr((m_,ov)=>{(function(r,t,e){function n(i){var a=this,u=\"\";a.next=function(){var c=a.x^a.x>>>2;return a.x=a.y,a.y=a.z,a.z=a.w,a.w=a.v,(a.d=a.d+362437|0)+(a.v=a.v^a.v<<4^(c^c<<1))|0},a.x=0,a.y=0,a.z=0,a.w=0,a.v=0,i===(i|0)?a.x=i:u+=i;for(var l=0;l>>4),a.next()}function o(i,a){return a.x=i.x,a.y=i.y,a.z=i.z,a.w=i.w,a.v=i.v,a.d=i.d,a}function s(i,a){var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l==\"object\"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xorwow=s})(m_,typeof ov==\"object\"&&ov,typeof define==\"function\"&&define)});var h_=gr((d_,sv)=>{(function(r,t,e){function n(i){var a=this;a.next=function(){var l=a.x,c=a.i,p,m,f;return p=l[c],p^=p>>>7,m=p^p<<24,p=l[c+1&7],m^=p^p>>>10,p=l[c+3&7],m^=p^p>>>3,p=l[c+4&7],m^=p^p<<7,p=l[c+7&7],p=p^p<<13,m^=p^p<<9,l[c]=m,a.i=c+1&7,m};function u(l,c){var p,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=\"\"+c,p=0;p0;--p)l.next()}u(a,i)}function o(i,a){return a.x=i.x.slice(),a.i=i.i,a}function s(i,a){i==null&&(i=+new Date);var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(l.x&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xorshift7=s})(d_,typeof sv==\"object\"&&sv,typeof define==\"function\"&&define)});var x_=gr((g_,iv)=>{(function(r,t,e){function n(i){var a=this;a.next=function(){var l=a.w,c=a.X,p=a.i,m,f;return a.w=l=l+1640531527|0,f=c[p+34&127],m=c[p=p+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[p]=f^m,a.i=p,f+(l^l>>>16)|0};function u(l,c){var p,m,f,d,h,g=[],x=128;for(c===(c|0)?(m=c,c=null):(c=c+\"\\0\",m=0,x=Math.max(x,c.length)),f=0,d=-32;d>>15,m^=m<<4,m^=m>>>13,d>=0&&(h=h+1640531527|0,p=g[d&127]^=m+h,f=p==0?f+1:0);for(f>=128&&(g[(c&&c.length||0)&127]=-1),f=127,d=4*128;d>0;--d)m=g[f+34&127],p=g[f=f+1&127],m^=m<<13,p^=p<<17,m^=m>>>15,p^=p>>>12,g[f]=m^p;l.w=h,l.X=g,l.i=f}u(a,i)}function o(i,a){return a.i=i.i,a.w=i.w,a.X=i.X.slice(),a}function s(i,a){i==null&&(i=+new Date);var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(l.X&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xor4096=s})(g_,typeof iv==\"object\"&&iv,typeof define==\"function\"&&define)});var b_=gr((y_,av)=>{(function(r,t,e){function n(i){var a=this,u=\"\";a.next=function(){var c=a.b,p=a.c,m=a.d,f=a.a;return c=c<<25^c>>>7^p,p=p-m|0,m=m<<24^m>>>8^f,f=f-c|0,a.b=c=c<<20^c>>>12^p,a.c=p=p-m|0,a.d=m<<16^p>>>16^f,a.a=f-c|0},a.a=0,a.b=0,a.c=-1640531527,a.d=1367130551,i===Math.floor(i)?(a.a=i/4294967296|0,a.b=i|0):u+=i;for(var l=0;l>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l==\"object\"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.tychei=s})(y_,typeof av==\"object\"&&av,typeof define==\"function\"&&define)});var w_=gr(()=>{});var I_=gr((C_,Yx)=>{(function(r,t,e){var n=256,o=6,s=52,i=\"random\",a=e.pow(n,o),u=e.pow(2,s),l=u*2,c=n-1,p;function m(w,C,N){var _=[];C=C==!0?{entropy:!0}:C||{};var A=g(h(C.entropy?[w,b(t)]:w==null?x():w,3),_),$=new f(_),F=function(){for(var P=$.g(o),V=a,G=0;P=l;)P/=2,V/=2,G>>>=1;return(P+G)/V};return F.int32=function(){return $.g(4)|0},F.quick=function(){return $.g(4)/4294967296},F.double=F,g(b($.S),t),(C.pass||N||function(P,V,G,W){return W&&(W.S&&d(W,$),P.state=function(){return d($,{})}),G?(e[i]=P,V):P})(F,A,\"global\"in C?C.global:this==e,C.state)}function f(w){var C,N=w.length,_=this,A=0,$=_.i=_.j=0,F=_.S=[];for(N||(w=[N++]);A{var lj=u_(),uj=p_(),cj=f_(),pj=h_(),mj=x_(),fj=b_(),Ju=I_();Ju.alea=lj;Ju.xor128=uj;Ju.xorwow=cj;Ju.xorshift7=pj;Ju.xor4096=mj;Ju.tychei=fj;S_.exports=Ju});var gN=gr(()=>{});var Zb=gr(()=>{});var ig=gr(()=>{});var BW=gr(()=>{});var VW=gr(()=>{});var GW=gr(()=>{});var WW=gr((fI,Ok)=>{var Fk=(()=>{var r=typeof document!=\"undefined\"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!=\"undefined\"&&(r=r||__filename),function(t){t=t||{};function e(){return it.buffer!=jt&&qe(it.buffer),ke}function n(){return it.buffer!=jt&&qe(it.buffer),fe}function o(){return it.buffer!=jt&&qe(it.buffer),Ae}function s(){return it.buffer!=jt&&qe(it.buffer),_n}function i(){return it.buffer!=jt&&qe(it.buffer),or}function a(){return it.buffer!=jt&&qe(it.buffer),Hn}function u(){return it.buffer!=jt&&qe(it.buffer),Lr}var l=typeof t!=\"undefined\"?t:{},c,p;l.ready=new Promise(function(L,U){c=L,p=U});var m;typeof process!=\"undefined\"&&process.listeners&&(m={uncaughtException:process.listeners(\"uncaughtException\"),unhandledRejection:process.listeners(\"unhandledRejection\")});var f=Object.assign({},l),d=[],h=\"./this.program\",g=(L,U)=>{throw U},x=typeof window==\"object\",b=typeof importScripts==\"function\",w=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\",C=l.ENVIRONMENT_IS_PTHREAD||!1,N=\"\";function _(L){return l.locateFile?l.locateFile(L,N):N+L}var A,$,F,P;function V(L){if(L instanceof Ru)return;Y(\"exiting due to exception: \"+L)}if(w){b?N=ig().dirname(N)+\"/\":N=__dirname+\"/\";var G,W;typeof Pg==\"function\"&&(G=Zb(),W=ig()),A=(U,ut)=>(U=W.normalize(U),G.readFileSync(U,ut?void 0:\"utf8\")),F=U=>{var ut=A(U,!0);return ut.buffer||(ut=new Uint8Array(ut)),ut},$=(U,ut,xt)=>{U=W.normalize(U),G.readFile(U,function(Dt,ie){Dt?xt(Dt):ut(ie.buffer)})},process.argv.length>1&&(h=process.argv[1].replace(/\\\\/g,\"/\")),d=process.argv.slice(2),process.on(\"uncaughtException\",function(U){if(!(U instanceof Ru))throw U}),process.on(\"unhandledRejection\",function(U){throw U}),g=(U,ut)=>{if(Mo())throw process.exitCode=U,ut;V(ut),process.exit(U)},l.inspect=function(){return\"[Emscripten Module object]\"};let L;try{L=BW()}catch(U){throw console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?'),U}global.Worker=L.Worker}else(x||b)&&(b?N=self.location.href:typeof document!=\"undefined\"&&document.currentScript&&(N=document.currentScript.src),typeof r!=\"undefined\"&&r&&(N=r),N.indexOf(\"blob:\")!==0?N=N.substr(0,N.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):N=\"\",w||(A=L=>{var U=new XMLHttpRequest;return U.open(\"GET\",L,!1),U.send(null),U.responseText},b&&(F=L=>{var U=new XMLHttpRequest;return U.open(\"GET\",L,!1),U.responseType=\"arraybuffer\",U.send(null),new Uint8Array(U.response)}),$=(L,U,ut)=>{var xt=new XMLHttpRequest;xt.open(\"GET\",L,!0),xt.responseType=\"arraybuffer\",xt.onload=()=>{if(xt.status==200||xt.status==0&&xt.response){U(xt.response);return}ut()},xt.onerror=ut,xt.send(null)}),P=L=>document.title=L);w&&typeof performance==\"undefined\"&&(global.performance=VW().performance);var q=console.log.bind(console),H=console.warn.bind(console);w&&(q=L=>G.writeSync(1,L+`\n`),H=L=>G.writeSync(2,L+`\n`));var j=l.print||q,Y=l.printErr||H;Object.assign(l,f),f=null,l.arguments&&(d=l.arguments),l.thisProgram&&(h=l.thisProgram),l.quit&&(g=l.quit);var Z=4,et=Atomics.load,rt=Atomics.store,ot=Atomics.compareExchange,at;l.wasmBinary&&(at=l.wasmBinary);var nt=l.noExitRuntime||!0;typeof WebAssembly!=\"object\"&&Yc(\"no native wasm support detected\");var it,dt,ht=!1,bt;function Et(L,U){L||Yc(U)}var At=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):void 0;function Vt(L,U,ut){for(var xt=U+ut,Dt=U;L[Dt]&&!(Dt>=xt);)++Dt;if(Dt-U>16&&L.buffer&&At)return At.decode(L.buffer instanceof SharedArrayBuffer?L.slice(U,Dt):L.subarray(U,Dt));for(var ie=\"\";U>10,56320|Xn&1023)}}return ie}function Zt(L,U){return L?Vt(n(),L,U):\"\"}function ce(L,U,ut,xt){if(!(xt>0))return 0;for(var Dt=ut,ie=ut+xt-1,Gt=0;Gt=55296&&Xt<=57343){var hr=L.charCodeAt(++Gt);Xt=65536+((Xt&1023)<<10)|hr&1023}if(Xt<=127){if(ut>=ie)break;U[ut++]=Xt}else if(Xt<=2047){if(ut+1>=ie)break;U[ut++]=192|Xt>>6,U[ut++]=128|Xt&63}else if(Xt<=65535){if(ut+2>=ie)break;U[ut++]=224|Xt>>12,U[ut++]=128|Xt>>6&63,U[ut++]=128|Xt&63}else{if(ut+3>=ie)break;U[ut++]=240|Xt>>18,U[ut++]=128|Xt>>12&63,U[ut++]=128|Xt>>6&63,U[ut++]=128|Xt&63}}return U[ut]=0,ut-Dt}function he(L,U,ut){return ce(L,n(),U,ut)}var jt,ke,fe,Ae,We,_n,or,Hn,Lr;C&&(jt=l.buffer);function qe(L){jt=L,l.HEAP8=ke=new Int8Array(L),l.HEAP16=Ae=new Int16Array(L),l.HEAP32=_n=new Int32Array(L),l.HEAPU8=fe=new Uint8Array(L),l.HEAPU16=We=new Uint16Array(L),l.HEAPU32=or=new Uint32Array(L),l.HEAPF32=Hn=new Float32Array(L),l.HEAPF64=Lr=new Float64Array(L)}var Mr=l.INITIAL_MEMORY||16777216;if(C)it=l.wasmMemory,jt=l.buffer;else if(l.wasmMemory)it=l.wasmMemory;else if(it=new WebAssembly.Memory({initial:Mr/65536,maximum:32768,shared:!0}),!(it.buffer instanceof SharedArrayBuffer))throw Y(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\"),w&&console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\"),Error(\"bad memory\");it&&(jt=it.buffer),Mr=jt.byteLength,qe(jt);var zr,qn=[],Kn=[],Xr=[],Zi=!1;function Mo(){return nt}function Il(){if(l.preRun)for(typeof l.preRun==\"function\"&&(l.preRun=[l.preRun]);l.preRun.length;)Rd(l.preRun.shift());Md(qn)}function Tr(){Zi=!0,!C&&Md(Kn)}function Ji(){if(!C){if(l.postRun)for(typeof l.postRun==\"function\"&&(l.postRun=[l.postRun]);l.postRun.length;)Gk(l.postRun.shift());Md(Xr)}}function Rd(L){qn.unshift(L)}function Fd(L){Kn.unshift(L)}function Gk(L){Xr.unshift(L)}var Sl=0,Xc=null,Qi=null;function Wk(L){Sl++,l.monitorRunDependencies&&l.monitorRunDependencies(Sl)}function Uk(L){if(Sl--,l.monitorRunDependencies&&l.monitorRunDependencies(Sl),Sl==0&&(Xc!==null&&(clearInterval(Xc),Xc=null),Qi)){var U=Qi;Qi=null,U()}}function Yc(L){C?postMessage({cmd:\"onAbort\",arg:L}):l.onAbort&&l.onAbort(L),L=\"Aborted(\"+L+\")\",Y(L),ht=!0,bt=1,L+=\". Build with -sASSERTIONS for more info.\";var U=new WebAssembly.RuntimeError(L);throw p(U),U}var gI=\"data:application/octet-stream;base64,\";function pg(L){return L.startsWith(gI)}function Od(L){return L.startsWith(\"file://\")}var en;en=\"tfjs-backend-wasm-threaded-simd.wasm\",pg(en)||(en=_(en));function mg(L){try{if(L==en&&at)return new Uint8Array(at);if(F)return F(L);throw\"both async and sync fetching of the wasm failed\"}catch(U){Yc(U)}}function xI(){if(!at&&(x||b)){if(typeof fetch==\"function\"&&!Od(en))return fetch(en,{credentials:\"same-origin\"}).then(function(L){if(!L.ok)throw\"failed to load wasm binary file at '\"+en+\"'\";return L.arrayBuffer()}).catch(function(){return mg(en)});if($)return new Promise(function(L,U){$(en,function(ut){L(new Uint8Array(ut))},U)})}return Promise.resolve().then(function(){return mg(en)})}function yI(){var L={env:vg,wasi_snapshot_preview1:vg};function U(Gt,Xt){var hr=Gt.exports;if(l.asm=hr,EI(l.asm._emscripten_tls_init),zr=l.asm.__indirect_function_table,Fd(l.asm.__wasm_call_ctors),dt=Xt,!C){var Xn=Kt.unusedWorkers.length;Kt.unusedWorkers.forEach(function(ea){Kt.loadWasmModuleToWorker(ea,function(){--Xn||Uk(\"wasm-instantiate\")})})}}C||Wk(\"wasm-instantiate\");function ut(Gt){U(Gt.instance,Gt.module)}function xt(Gt){return xI().then(function(Xt){return WebAssembly.instantiate(Xt,L)}).then(function(Xt){return Xt}).then(Gt,function(Xt){Y(\"failed to asynchronously prepare wasm: \"+Xt),Yc(Xt)})}function Dt(){return!at&&typeof WebAssembly.instantiateStreaming==\"function\"&&!pg(en)&&!Od(en)&&!w&&typeof fetch==\"function\"?fetch(en,{credentials:\"same-origin\"}).then(function(Gt){var Xt=WebAssembly.instantiateStreaming(Gt,L);return Xt.then(ut,function(hr){return Y(\"wasm streaming compile failed: \"+hr),Y(\"falling back to ArrayBuffer instantiation\"),xt(ut)})}):xt(ut)}if(l.instantiateWasm)try{var ie=l.instantiateWasm(L,U);return ie}catch(Gt){Y(\"Module.instantiateWasm callback failed with error: \"+Gt),p(Gt)}return Dt().catch(p),{}}var bI,Hk,wI={};function Ru(L){this.name=\"ExitStatus\",this.message=\"Program terminated with exit(\"+L+\")\",this.status=L}function CI(L){var U=Kt.pthreads[L];delete Kt.pthreads[L],U.terminate(),YS(L),Kt.runningWorkers.splice(Kt.runningWorkers.indexOf(U),1),U.pthread_ptr=0}function II(L){var U=Kt.pthreads[L];U.postMessage({cmd:\"cancel\"})}function Pd(L){var U=Kt.pthreads[L];Et(U),Kt.returnWorkerToPool(U)}function fg(L){var U=Kt.getNewWorker();if(!U)return 6;Kt.runningWorkers.push(U),Kt.pthreads[L.pthread_ptr]=U,U.pthread_ptr=L.pthread_ptr;var ut={cmd:\"run\",start_routine:L.startRoutine,arg:L.arg,pthread_ptr:L.pthread_ptr};return U.runPthread=()=>{ut.time=performance.now(),U.postMessage(ut,L.transferList)},U.loaded&&(U.runPthread(),delete U.runPthread),0}var dg={varargs:void 0,get:function(){dg.varargs+=4;var L=s()[dg.varargs-4>>2];return L},getStr:function(L){var U=Zt(L);return U}};function Ld(L){if(C)return vl(1,1,L);bt=L,Mo()||(Kt.terminateAllThreads(),l.onExit&&l.onExit(L),ht=!0),g(L,new Ru(L))}function qk(L,U){if(bt=L,!U&&C)throw gg(L),\"unwind\";Ld(L)}var hg=qk;function SI(L){if(L instanceof Ru||L==\"unwind\")return bt;g(1,L)}var Kt={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?Kt.initWorker():Kt.initMainThread()},initMainThread:function(){for(var L=8;L--;)Kt.allocateUnusedWorker()},initWorker:function(){nt=!1},setExitStatus:function(L){bt=L},terminateAllThreads:function(){for(var L of Object.values(Kt.pthreads))Kt.returnWorkerToPool(L);for(var L of Kt.unusedWorkers)L.terminate();Kt.unusedWorkers=[]},returnWorkerToPool:function(L){var U=L.pthread_ptr;delete Kt.pthreads[U],Kt.unusedWorkers.push(L),Kt.runningWorkers.splice(Kt.runningWorkers.indexOf(L),1),L.pthread_ptr=0,YS(U)},receiveObjectTransfer:function(L){},threadInitTLS:function(){Kt.tlsInitFunctions.forEach(L=>L())},loadWasmModuleToWorker:function(L,U){L.onmessage=ut=>{var xt=ut.data,Dt=xt.cmd;if(L.pthread_ptr&&(Kt.currentProxiedOperationCallerThread=L.pthread_ptr),xt.targetThread&&xt.targetThread!=Ag()){var ie=Kt.pthreads[xt.targetThread];ie?ie.postMessage(xt,xt.transferList):Y('Internal error! Worker sent a message \"'+Dt+'\" to target pthread '+xt.targetThread+\", but that thread no longer exists!\"),Kt.currentProxiedOperationCallerThread=void 0;return}Dt===\"processProxyingQueue\"?zd(xt.queue):Dt===\"spawnThread\"?fg(xt):Dt===\"cleanupThread\"?Pd(xt.thread):Dt===\"killThread\"?CI(xt.thread):Dt===\"cancelThread\"?II(xt.thread):Dt===\"loaded\"?(L.loaded=!0,U&&U(L),L.runPthread&&(L.runPthread(),delete L.runPthread)):Dt===\"print\"?j(\"Thread \"+xt.threadId+\": \"+xt.text):Dt===\"printErr\"?Y(\"Thread \"+xt.threadId+\": \"+xt.text):Dt===\"alert\"?alert(\"Thread \"+xt.threadId+\": \"+xt.text):xt.target===\"setimmediate\"?L.postMessage(xt):Dt===\"onAbort\"?l.onAbort&&l.onAbort(xt.arg):Dt&&Y(\"worker sent an unknown command \"+Dt),Kt.currentProxiedOperationCallerThread=void 0},L.onerror=ut=>{var xt=\"worker sent an error!\";throw Y(xt+\" \"+ut.filename+\":\"+ut.lineno+\": \"+ut.message),ut},w&&(L.on(\"message\",function(ut){L.onmessage({data:ut})}),L.on(\"error\",function(ut){L.onerror(ut)}),L.on(\"detachedExit\",function(){})),L.postMessage({cmd:\"load\",urlOrBlob:l.mainScriptUrlOrBlob||r,wasmMemory:it,wasmModule:dt})},allocateUnusedWorker:function(){var L=_(\"tfjs-backend-wasm-threaded-simd.worker.js\");Kt.unusedWorkers.push(new Worker(L))},getNewWorker:function(){return Kt.unusedWorkers.length==0&&(Kt.allocateUnusedWorker(),Kt.loadWasmModuleToWorker(Kt.unusedWorkers[0])),Kt.unusedWorkers.pop()}};l.PThread=Kt;function Md(L){for(;L.length>0;)L.shift()(l)}function vI(L){var U=ZS(),ut=L();return $g(U),ut}function Kk(L){return L}function jk(L){var U=/\\b_Z[\\w\\d_]+/g;return L.replace(U,function(ut){var xt=ut;return ut===xt?ut:xt+\" [\"+ut+\"]\"})}function NI(){var L=Ag(),U=s()[L+44>>2],ut=s()[L+48>>2],xt=U-ut;e1(U,xt),$g(U)}l.establishStackSpace=NI;function gg(L){if(C)return vl(2,0,L);try{hg(L)}catch(U){SI(U)}}var Zc=[];function TI(L){var U=Zc[L];return U||(L>=Zc.length&&(Zc.length=L+1),Zc[L]=U=zr.get(L)),U}function kI(L,U){var ut=TI(L)(U);Mo()?Kt.setExitStatus(ut):t1(ut)}l.invokeEntryPoint=kI;function Xk(){var L=new Error;if(!L.stack){try{throw new Error}catch(U){L=U}if(!L.stack)return\"(no stack trace available)\"}return L.stack.toString()}function EI(L){Kt.tlsInitFunctions.push(L)}function _I(L,U){e().set(L,U)}function AI(L){Zk(L,!b,1,!x),Kt.threadInitTLS()}function $I(L){C?postMessage({cmd:\"cleanupThread\",thread:L}):Pd(L)}function xg(L,U,ut,xt){return C?vl(3,1,L,U,ut,xt):yg(L,U,ut,xt)}function yg(L,U,ut,xt){if(typeof SharedArrayBuffer==\"undefined\")return Y(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\"),6;var Dt=[],ie=0;if(C&&(Dt.length===0||ie))return xg(L,U,ut,xt);if(ie)return ie;var Gt={startRoutine:ut,pthread_ptr:L,arg:xt,transferList:Dt};return C?(Gt.cmd=\"spawnThread\",postMessage(Gt,Dt),0):fg(Gt)}function DI(){return 2097152}var RI=!0;function FI(){return RI}function zd(L){Atomics.store(s(),L>>2,1),Ag()&&Qk(L),Atomics.compareExchange(s(),L>>2,1,0)}l.executeNotifiedProxyingQueue=zd;function OI(L,U,ut,xt){if(L==U)setTimeout(()=>zd(xt));else if(C)postMessage({targetThread:L,cmd:\"processProxyingQueue\",queue:xt});else{var Dt=Kt.pthreads[L];if(!Dt)return;Dt.postMessage({cmd:\"processProxyingQueue\",queue:xt})}return 1}function PI(L,U,ut){return-1}function LI(){Yc(\"\")}function Fu(L){Fu.shown||(Fu.shown={}),Fu.shown[L]||(Fu.shown[L]=1,w&&(L=\"warning: \"+L),Y(L))}function MI(){w||b||Fu(\"Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread\")}function zI(){return Date.now()}function bg(){return 2147483648}function BI(){return bg()}var Jc;w?Jc=()=>{var L=process.hrtime();return L[0]*1e3+L[1]/1e6}:C?Jc=()=>performance.now()-l.__performance_now_clock_drift:Jc=()=>performance.now();function VI(L,U,ut){n().copyWithin(L,U,U+ut)}function GI(){return w?GW().cpus().length:navigator.hardwareConcurrency}function vl(L,U){var ut=arguments.length-2,xt=arguments;return vI(()=>{for(var Dt=ut,ie=Dg(Dt*8),Gt=ie>>3,Xt=0;Xt>3,Dt=0;Dt>>16),qe(it.buffer),1}catch(U){}}function HI(L){var U=n().length;if(L=L>>>0,L<=U)return!1;var ut=bg();if(L>ut)return!1;let xt=(hr,Xn)=>hr+(Xn-hr%Xn)%Xn;for(var Dt=1;Dt<=4;Dt*=2){var ie=U*(1+.2/Dt);ie=Math.min(ie,L+100663296);var Gt=Math.min(ut,xt(Math.max(L,ie),65536)),Xt=UI(Gt);if(Xt)return!0}return!1}function qI(){throw\"unwind\"}function wg(L){return C?vl(4,1,L):52}function Cg(L,U,ut,xt,Dt){return C?vl(5,1,L,U,ut,xt,Dt):70}var KI=[null,[],[]];function jI(L,U){var ut=KI[L];U===0||U===10?((L===1?j:Y)(Vt(ut,0)),ut.length=0):ut.push(U)}function Ig(L,U,ut,xt){if(C)return vl(6,1,L,U,ut,xt);for(var Dt=0,ie=0;ie>2],Xt=i()[U+4>>2];U+=8;for(var hr=0;hr>2]=Dt,0}function Sg(L){var U=l[\"_\"+L];return U}function XI(L,U,ut,xt,Dt){var ie={string:An=>{var rp=0;if(An!=null&&An!==0){var o1=(An.length<<2)+1;rp=Dg(o1),he(An,rp,o1)}return rp},array:An=>{var rp=Dg(An.length);return _I(An,rp),rp}};function Gt(An){return U===\"string\"?Zt(An):U===\"boolean\"?Boolean(An):An}var Xt=Sg(L),hr=[],Xn=0;if(xt)for(var ea=0;eaGt===\"number\"||Gt===\"boolean\"),ie=U!==\"string\";return ie&&Dt&&!xt?Sg(L):function(){return XI(L,U,ut,arguments,xt)}}Kt.init();var ZI=[null,Ld,gg,xg,wg,Cg,Ig],vg={__emscripten_init_main_thread_js:AI,__emscripten_thread_cleanup:$I,__pthread_create_js:yg,_emscripten_default_pthread_stack_size:DI,_emscripten_get_now_is_monotonic:FI,_emscripten_notify_task_queue:OI,_emscripten_set_offscreencanvas_size:PI,abort:LI,emscripten_check_blocking_allowed:MI,emscripten_date_now:zI,emscripten_get_heap_max:BI,emscripten_get_now:Jc,emscripten_memcpy_big:VI,emscripten_num_logical_cores:GI,emscripten_receive_on_main_thread_js:WI,emscripten_resize_heap:HI,emscripten_unwind_to_js_event_loop:qI,exit:hg,fd_close:wg,fd_seek:Cg,fd_write:Ig,memory:it||l.wasmMemory},Yk=yI(),JI=l.___wasm_call_ctors=function(){return(JI=l.___wasm_call_ctors=l.asm.__wasm_call_ctors).apply(null,arguments)},QI=l._init=function(){return(QI=l._init=l.asm.init).apply(null,arguments)},tS=l._init_with_threads_count=function(){return(tS=l._init_with_threads_count=l.asm.init_with_threads_count).apply(null,arguments)},eS=l._get_threads_count=function(){return(eS=l._get_threads_count=l.asm.get_threads_count).apply(null,arguments)},rS=l._register_tensor=function(){return(rS=l._register_tensor=l.asm.register_tensor).apply(null,arguments)},nS=l._dispose_data=function(){return(nS=l._dispose_data=l.asm.dispose_data).apply(null,arguments)},oS=l._dispose=function(){return(oS=l._dispose=l.asm.dispose).apply(null,arguments)},sS=l._Abs=function(){return(sS=l._Abs=l.asm.Abs).apply(null,arguments)},iS=l._Add=function(){return(iS=l._Add=l.asm.Add).apply(null,arguments)},aS=l._AddN=function(){return(aS=l._AddN=l.asm.AddN).apply(null,arguments)},lS=l._All=function(){return(lS=l._All=l.asm.All).apply(null,arguments)},uS=l._Any=function(){return(uS=l._Any=l.asm.Any).apply(null,arguments)},cS=l._ArgMax=function(){return(cS=l._ArgMax=l.asm.ArgMax).apply(null,arguments)},pS=l._AvgPool=function(){return(pS=l._AvgPool=l.asm.AvgPool).apply(null,arguments)},mS=l._BatchMatMul=function(){return(mS=l._BatchMatMul=l.asm.BatchMatMul).apply(null,arguments)},fS=l._Ceil=function(){return(fS=l._Ceil=l.asm.Ceil).apply(null,arguments)},dS=l._ClipByValue=function(){return(dS=l._ClipByValue=l.asm.ClipByValue).apply(null,arguments)},hS=l._Conv2D=function(){return(hS=l._Conv2D=l.asm.Conv2D).apply(null,arguments)},gS=l._Conv2DBackpropInput=function(){return(gS=l._Conv2DBackpropInput=l.asm.Conv2DBackpropInput).apply(null,arguments)},xS=l._Cos=function(){return(xS=l._Cos=l.asm.Cos).apply(null,arguments)},yS=l._Cosh=function(){return(yS=l._Cosh=l.asm.Cosh).apply(null,arguments)},bS=l._CropAndResize=function(){return(bS=l._CropAndResize=l.asm.CropAndResize).apply(null,arguments)},wS=l._Cumprod=function(){return(wS=l._Cumprod=l.asm.Cumprod).apply(null,arguments)},CS=l._Cumsum=function(){return(CS=l._Cumsum=l.asm.Cumsum).apply(null,arguments)},IS=l._DepthToSpace=function(){return(IS=l._DepthToSpace=l.asm.DepthToSpace).apply(null,arguments)},SS=l._DepthwiseConv2dNative=function(){return(SS=l._DepthwiseConv2dNative=l.asm.DepthwiseConv2dNative).apply(null,arguments)},vS=l._Elu=function(){return(vS=l._Elu=l.asm.Elu).apply(null,arguments)},NS=l._Equal=function(){return(NS=l._Equal=l.asm.Equal).apply(null,arguments)},TS=l._Exp=function(){return(TS=l._Exp=l.asm.Exp).apply(null,arguments)},kS=l._FlipLeftRight=function(){return(kS=l._FlipLeftRight=l.asm.FlipLeftRight).apply(null,arguments)},ES=l._Floor=function(){return(ES=l._Floor=l.asm.Floor).apply(null,arguments)},_S=l._FloorDiv=function(){return(_S=l._FloorDiv=l.asm.FloorDiv).apply(null,arguments)},AS=l._FusedBatchNorm=function(){return(AS=l._FusedBatchNorm=l.asm.FusedBatchNorm).apply(null,arguments)},$S=l._FusedConv2D=function(){return($S=l._FusedConv2D=l.asm.FusedConv2D).apply(null,arguments)},DS=l._FusedDepthwiseConv2D=function(){return(DS=l._FusedDepthwiseConv2D=l.asm.FusedDepthwiseConv2D).apply(null,arguments)},RS=l._Gather=function(){return(RS=l._Gather=l.asm.Gather).apply(null,arguments)},FS=l._GatherNd=function(){return(FS=l._GatherNd=l.asm.GatherNd).apply(null,arguments)},OS=l._Greater=function(){return(OS=l._Greater=l.asm.Greater).apply(null,arguments)},PS=l._GreaterEqual=function(){return(PS=l._GreaterEqual=l.asm.GreaterEqual).apply(null,arguments)},LS=l._LeakyRelu=function(){return(LS=l._LeakyRelu=l.asm.LeakyRelu).apply(null,arguments)},MS=l._Less=function(){return(MS=l._Less=l.asm.Less).apply(null,arguments)},zS=l._LessEqual=function(){return(zS=l._LessEqual=l.asm.LessEqual).apply(null,arguments)},BS=l._Log=function(){return(BS=l._Log=l.asm.Log).apply(null,arguments)},VS=l._LogicalAnd=function(){return(VS=l._LogicalAnd=l.asm.LogicalAnd).apply(null,arguments)},GS=l._LogicalNot=function(){return(GS=l._LogicalNot=l.asm.LogicalNot).apply(null,arguments)},WS=l._LogicalOr=function(){return(WS=l._LogicalOr=l.asm.LogicalOr).apply(null,arguments)},US=l._LogicalXor=function(){return(US=l._LogicalXor=l.asm.LogicalXor).apply(null,arguments)},HS=l._Max=function(){return(HS=l._Max=l.asm.Max).apply(null,arguments)},Ng=l._MaxPool=function(){return(Ng=l._MaxPool=l.asm.MaxPool).apply(null,arguments)},Tg=l._Maximum=function(){return(Tg=l._Maximum=l.asm.Maximum).apply(null,arguments)},Vd=l._Mean=function(){return(Vd=l._Mean=l.asm.Mean).apply(null,arguments)},qS=l._Min=function(){return(qS=l._Min=l.asm.Min).apply(null,arguments)},KS=l._Minimum=function(){return(KS=l._Minimum=l.asm.Minimum).apply(null,arguments)},Qc=l._MirrorPad=function(){return(Qc=l._MirrorPad=l.asm.MirrorPad).apply(null,arguments)},kg=l._Multiply=function(){return(kg=l._Multiply=l.asm.Multiply).apply(null,arguments)},tp=l._Neg=function(){return(tp=l._Neg=l.asm.Neg).apply(null,arguments)},ep=l._NonMaxSuppressionV3=function(){return(ep=l._NonMaxSuppressionV3=l.asm.NonMaxSuppressionV3).apply(null,arguments)},jS=l._NonMaxSuppressionV4=function(){return(jS=l._NonMaxSuppressionV4=l.asm.NonMaxSuppressionV4).apply(null,arguments)},K=l._NonMaxSuppressionV5=function(){return(K=l._NonMaxSuppressionV5=l.asm.NonMaxSuppressionV5).apply(null,arguments)},lt=l._NotEqual=function(){return(lt=l._NotEqual=l.asm.NotEqual).apply(null,arguments)},_t=l._OneHot=function(){return(_t=l._OneHot=l.asm.OneHot).apply(null,arguments)},re=l._PadV2=function(){return(re=l._PadV2=l.asm.PadV2).apply(null,arguments)},Ke=l._Pow=function(){return(Ke=l._Pow=l.asm.Pow).apply(null,arguments)},je=l._Prelu=function(){return(je=l._Prelu=l.asm.Prelu).apply(null,arguments)},ee=l._Prod=function(){return(ee=l._Prod=l.asm.Prod).apply(null,arguments)},te=l._RealDiv=function(){return(te=l._RealDiv=l.asm.RealDiv).apply(null,arguments)},dr=l._Relu=function(){return(dr=l._Relu=l.asm.Relu).apply(null,arguments)},jn=l._Relu6=function(){return(jn=l._Relu6=l.asm.Relu6).apply(null,arguments)},ta=l._ResizeBilinear=function(){return(ta=l._ResizeBilinear=l.asm.ResizeBilinear).apply(null,arguments)},Eg=l._ResizeNearestNeighbor=function(){return(Eg=l._ResizeNearestNeighbor=l.asm.ResizeNearestNeighbor).apply(null,arguments)},Gd=l._Reverse=function(){return(Gd=l._Reverse=l.asm.Reverse).apply(null,arguments)},XS=l._RotateWithOffset=function(){return(XS=l._RotateWithOffset=l.asm.RotateWithOffset).apply(null,arguments)},rn=l._Round=function(){return(rn=l._Round=l.asm.Round).apply(null,arguments)},Nl=l._Rsqrt=function(){return(Nl=l._Rsqrt=l.asm.Rsqrt).apply(null,arguments)},_g=l._ScatterNd=function(){return(_g=l._ScatterNd=l.asm.ScatterNd).apply(null,arguments)},QW=l._SelectV2=function(){return(QW=l._SelectV2=l.asm.SelectV2).apply(null,arguments)},tU=l._Sigmoid=function(){return(tU=l._Sigmoid=l.asm.Sigmoid).apply(null,arguments)},eU=l._Sin=function(){return(eU=l._Sin=l.asm.Sin).apply(null,arguments)},rU=l._Softmax=function(){return(rU=l._Softmax=l.asm.Softmax).apply(null,arguments)},nU=l._SparseFillEmptyRows=function(){return(nU=l._SparseFillEmptyRows=l.asm.SparseFillEmptyRows).apply(null,arguments)},oU=l._SparseReshape=function(){return(oU=l._SparseReshape=l.asm.SparseReshape).apply(null,arguments)},sU=l._SparseSegmentReduction=function(){return(sU=l._SparseSegmentReduction=l.asm.SparseSegmentReduction).apply(null,arguments)},iU=l._Sqrt=function(){return(iU=l._Sqrt=l.asm.Sqrt).apply(null,arguments)},aU=l._Square=function(){return(aU=l._Square=l.asm.Square).apply(null,arguments)},lU=l._SquaredDifference=function(){return(lU=l._SquaredDifference=l.asm.SquaredDifference).apply(null,arguments)},uU=l._Step=function(){return(uU=l._Step=l.asm.Step).apply(null,arguments)},cU=l._StridedSlice=function(){return(cU=l._StridedSlice=l.asm.StridedSlice).apply(null,arguments)},pU=l._Sub=function(){return(pU=l._Sub=l.asm.Sub).apply(null,arguments)},mU=l._Sum=function(){return(mU=l._Sum=l.asm.Sum).apply(null,arguments)},fU=l._Tan=function(){return(fU=l._Tan=l.asm.Tan).apply(null,arguments)},dU=l._Tanh=function(){return(dU=l._Tanh=l.asm.Tanh).apply(null,arguments)},hU=l._Tile=function(){return(hU=l._Tile=l.asm.Tile).apply(null,arguments)},gU=l._TopK=function(){return(gU=l._TopK=l.asm.TopK).apply(null,arguments)},xU=l._Transform=function(){return(xU=l._Transform=l.asm.Transform).apply(null,arguments)},yU=l._Transpose=function(){return(yU=l._Transpose=l.asm.Transpose).apply(null,arguments)},bU=l.__FusedMatMul=function(){return(bU=l.__FusedMatMul=l.asm._FusedMatMul).apply(null,arguments)},wU=l._malloc=function(){return(wU=l._malloc=l.asm.malloc).apply(null,arguments)},CU=l._free=function(){return(CU=l._free=l.asm.free).apply(null,arguments)},IU=l.__emscripten_tls_init=function(){return(IU=l.__emscripten_tls_init=l.asm._emscripten_tls_init).apply(null,arguments)},Ag=l._pthread_self=function(){return(Ag=l._pthread_self=l.asm.pthread_self).apply(null,arguments)},SU=l.___errno_location=function(){return(SU=l.___errno_location=l.asm.__errno_location).apply(null,arguments)},Zk=l.__emscripten_thread_init=function(){return(Zk=l.__emscripten_thread_init=l.asm._emscripten_thread_init).apply(null,arguments)},vU=l.__emscripten_thread_crashed=function(){return(vU=l.__emscripten_thread_crashed=l.asm._emscripten_thread_crashed).apply(null,arguments)},NU=l._emscripten_main_thread_process_queued_calls=function(){return(NU=l._emscripten_main_thread_process_queued_calls=l.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},TU=l._emscripten_main_browser_thread_id=function(){return(TU=l._emscripten_main_browser_thread_id=l.asm.emscripten_main_browser_thread_id).apply(null,arguments)},Jk=l._emscripten_run_in_main_runtime_thread_js=function(){return(Jk=l._emscripten_run_in_main_runtime_thread_js=l.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},kU=l._emscripten_dispatch_to_thread_=function(){return(kU=l._emscripten_dispatch_to_thread_=l.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},Qk=l.__emscripten_proxy_execute_task_queue=function(){return(Qk=l.__emscripten_proxy_execute_task_queue=l.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},YS=l.__emscripten_thread_free_data=function(){return(YS=l.__emscripten_thread_free_data=l.asm._emscripten_thread_free_data).apply(null,arguments)},t1=l.__emscripten_thread_exit=function(){return(t1=l.__emscripten_thread_exit=l.asm._emscripten_thread_exit).apply(null,arguments)},e1=l._emscripten_stack_set_limits=function(){return(e1=l._emscripten_stack_set_limits=l.asm.emscripten_stack_set_limits).apply(null,arguments)},ZS=l.stackSave=function(){return(ZS=l.stackSave=l.asm.stackSave).apply(null,arguments)},$g=l.stackRestore=function(){return($g=l.stackRestore=l.asm.stackRestore).apply(null,arguments)},Dg=l.stackAlloc=function(){return(Dg=l.stackAlloc=l.asm.stackAlloc).apply(null,arguments)},EU=l.dynCall_iijjiiii=function(){return(EU=l.dynCall_iijjiiii=l.asm.dynCall_iijjiiii).apply(null,arguments)},_U=l.dynCall_jiji=function(){return(_U=l.dynCall_jiji=l.asm.dynCall_jiji).apply(null,arguments)};l.keepRuntimeAlive=Mo,l.wasmMemory=it,l.cwrap=YI,l.ExitStatus=Ru,l.PThread=Kt;var Rg;Qi=function L(){Rg||r1(),Rg||(Qi=L)};function r1(L){if(L=L||d,Sl>0)return;if(C){c(l),Tr(),postMessage({cmd:\"loaded\"});return}if(Il(),Sl>0)return;function U(){Rg||(Rg=!0,l.calledRun=!0,!ht&&(Tr(),c(l),l.onRuntimeInitialized&&l.onRuntimeInitialized(),Ji()))}l.setStatus?(l.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){l.setStatus(\"\")},1),U()},1)):U()}if(l.preInit)for(typeof l.preInit==\"function\"&&(l.preInit=[l.preInit]);l.preInit.length>0;)l.preInit.pop()();r1();var Fg;m&&(Fg={uncaughtException:process.listeners(\"uncaughtException\").filter(function(L){return!m.uncaughtException.indexOf(L)>-1}),unhandledRejection:process.listeners(\"unhandledRejection\").filter(function(L){return!m.unhandledRejection.indexOf(L)>-1})});var Og;if(typeof WasmBackendModule!=\"undefined\")Og=WasmBackendModule;else if(typeof t!=\"undefined\")Og=t;else throw new Error(\"Could not find wasm module in post.js\");if(Fg){var AU=Og._dispose;Og._dispose=function(){AU(),Fg.uncaughtException.forEach(function(L){process.removeListener(\"uncaughtException\",L)}),Fg.unhandledRejection.forEach(function(L){process.removeListener(\"unhandledRejection\",L)})}}return t.ready}})();typeof fI==\"object\"&&typeof Ok==\"object\"?Ok.exports=Fk:typeof define==\"function\"&&define.amd?define([],function(){return Fk}):typeof fI==\"object\"&&(fI.WasmBackendModuleThreadedSimd=Fk)});var HW=gr((G5e,UW)=>{UW.exports.wasmWorkerContents=`\"use strict\";var Module={};var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require(\"worker_threads\");var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",data=>onmessage({data:data}));var fs=require(\"fs\");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,\"utf8\"))},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+\"\n\");return}console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:Module[\"_pthread_self\"]()})}var err=threadPrintErr;self.alert=threadAlert;Module[\"instantiateWasm\"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);receiveInstance(instance);Module[\"wasmModule\"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.onmessage=e=>{try{if(e.data.cmd===\"load\"){Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob==\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance})}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;Module[\"__emscripten_thread_init\"](e.data.pthread_ptr,0,0,1);Module[\"establishStackSpace\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module[\"executeNotifiedProxyingQueue\"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module[\"invokeEntryPoint\"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!=\"unwind\"){if(ex instanceof Module[\"ExitStatus\"]){if(Module[\"keepRuntimeAlive\"]()){}else{Module[\"__emscripten_thread_exit\"](ex.status)}}else{throw ex}}}}else if(e.data.cmd===\"cancel\"){if(Module[\"_pthread_self\"]()){Module[\"__emscripten_thread_exit\"](-1)}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processProxyingQueue\"){if(initializedJS){Module[\"executeNotifiedProxyingQueue\"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){if(Module[\"__emscripten_thread_crashed\"]){Module[\"__emscripten_thread_crashed\"]()}throw ex}};`});var qW=gr((dI,Lk)=>{var Pk=(()=>{var r=typeof document!=\"undefined\"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!=\"undefined\"&&(r=r||__filename),function(t){t=t||{};var e=typeof t!=\"undefined\"?t:{},n,o;e.ready=new Promise(function(K,lt){n=K,o=lt});var s;typeof process!=\"undefined\"&&process.listeners&&(s={uncaughtException:process.listeners(\"uncaughtException\"),unhandledRejection:process.listeners(\"unhandledRejection\")});var i=Object.assign({},e),a=[],u=\"./this.program\",l=(K,lt)=>{throw lt},c=typeof window==\"object\",p=typeof importScripts==\"function\",m=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\",f=\"\";function d(K){return e.locateFile?e.locateFile(K,f):f+K}var h,g,x,b;function w(K){if(K instanceof Xc)return;A(\"exiting due to exception: \"+K)}if(m){p?f=ig().dirname(f)+\"/\":f=__dirname+\"/\";var C,N;typeof Pg==\"function\"&&(C=Zb(),N=ig()),h=(K,lt)=>(K=N.normalize(K),C.readFileSync(K,lt?void 0:\"utf8\")),x=K=>{var lt=h(K,!0);return lt.buffer||(lt=new Uint8Array(lt)),lt},g=(K,lt,_t)=>{K=N.normalize(K),C.readFile(K,function(re,Ke){re?_t(re):lt(Ke.buffer)})},process.argv.length>1&&(u=process.argv[1].replace(/\\\\/g,\"/\")),a=process.argv.slice(2),process.on(\"uncaughtException\",function(K){if(!(K instanceof Xc))throw K}),process.on(\"unhandledRejection\",function(K){throw K}),l=(K,lt)=>{if(fe())throw process.exitCode=K,lt;w(lt),process.exit(K)},e.inspect=function(){return\"[Emscripten Module object]\"}}else(c||p)&&(p?f=self.location.href:typeof document!=\"undefined\"&&document.currentScript&&(f=document.currentScript.src),r&&(f=r),f.indexOf(\"blob:\")!==0?f=f.substr(0,f.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):f=\"\",h=K=>{var lt=new XMLHttpRequest;return lt.open(\"GET\",K,!1),lt.send(null),lt.responseText},p&&(x=K=>{var lt=new XMLHttpRequest;return lt.open(\"GET\",K,!1),lt.responseType=\"arraybuffer\",lt.send(null),new Uint8Array(lt.response)}),g=(K,lt,_t)=>{var re=new XMLHttpRequest;re.open(\"GET\",K,!0),re.responseType=\"arraybuffer\",re.onload=()=>{if(re.status==200||re.status==0&&re.response){lt(re.response);return}_t()},re.onerror=_t,re.send(null)},b=K=>document.title=K);var _=e.print||console.log.bind(console),A=e.printErr||console.warn.bind(console);Object.assign(e,i),i=null,e.arguments&&(a=e.arguments),e.thisProgram&&(u=e.thisProgram),e.quit&&(l=e.quit);var $=4,F;e.wasmBinary&&(F=e.wasmBinary);var P=e.noExitRuntime||!0;typeof WebAssembly!=\"object\"&&Xr(\"no native wasm support detected\");var V,G=!1,W;function q(K,lt){K||Xr(lt)}var H=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):void 0;function j(K,lt,_t){for(var re=lt+_t,Ke=lt;K[Ke]&&!(Ke>=re);)++Ke;if(Ke-lt>16&&K.buffer&&H)return H.decode(K.subarray(lt,Ke));for(var je=\"\";lt>10,56320|jn&1023)}}return je}function Y(K,lt){return K?j(at,K,lt):\"\"}function Z(K,lt,_t,re){if(!(re>0))return 0;for(var Ke=_t,je=_t+re-1,ee=0;ee=55296&&te<=57343){var dr=K.charCodeAt(++ee);te=65536+((te&1023)<<10)|dr&1023}if(te<=127){if(_t>=je)break;lt[_t++]=te}else if(te<=2047){if(_t+1>=je)break;lt[_t++]=192|te>>6,lt[_t++]=128|te&63}else if(te<=65535){if(_t+2>=je)break;lt[_t++]=224|te>>12,lt[_t++]=128|te>>6&63,lt[_t++]=128|te&63}else{if(_t+3>=je)break;lt[_t++]=240|te>>18,lt[_t++]=128|te>>12&63,lt[_t++]=128|te>>6&63,lt[_t++]=128|te&63}}return lt[_t]=0,_t-Ke}function et(K,lt,_t){return Z(K,at,lt,_t)}var rt,ot,at,nt,it,dt,ht,bt,Et;function At(K){rt=K,e.HEAP8=ot=new Int8Array(K),e.HEAP16=nt=new Int16Array(K),e.HEAP32=dt=new Int32Array(K),e.HEAPU8=at=new Uint8Array(K),e.HEAPU16=it=new Uint16Array(K),e.HEAPU32=ht=new Uint32Array(K),e.HEAPF32=bt=new Float32Array(K),e.HEAPF64=Et=new Float64Array(K)}var Vt=e.INITIAL_MEMORY||16777216,Zt,ce=[],he=[],jt=[],ke=!1;function fe(){return P}function Ae(){if(e.preRun)for(typeof e.preRun==\"function\"&&(e.preRun=[e.preRun]);e.preRun.length;)or(e.preRun.shift());Qi(ce)}function We(){ke=!0,Qi(he)}function _n(){if(e.postRun)for(typeof e.postRun==\"function\"&&(e.postRun=[e.postRun]);e.postRun.length;)Lr(e.postRun.shift());Qi(jt)}function or(K){ce.unshift(K)}function Hn(K){he.unshift(K)}function Lr(K){jt.unshift(K)}var qe=0,Mr=null,zr=null;function qn(K){qe++,e.monitorRunDependencies&&e.monitorRunDependencies(qe)}function Kn(K){if(qe--,e.monitorRunDependencies&&e.monitorRunDependencies(qe),qe==0&&(Mr!==null&&(clearInterval(Mr),Mr=null),zr)){var lt=zr;zr=null,lt()}}function Xr(K){e.onAbort&&e.onAbort(K),K=\"Aborted(\"+K+\")\",A(K),G=!0,W=1,K+=\". Build with -sASSERTIONS for more info.\";var lt=new WebAssembly.RuntimeError(K);throw o(lt),lt}var Zi=\"data:application/octet-stream;base64,\";function Mo(K){return K.startsWith(Zi)}function Il(K){return K.startsWith(\"file://\")}var Tr;Tr=\"tfjs-backend-wasm.wasm\",Mo(Tr)||(Tr=d(Tr));function Ji(K){try{if(K==Tr&&F)return new Uint8Array(F);if(x)return x(K);throw\"both async and sync fetching of the wasm failed\"}catch(lt){Xr(lt)}}function Rd(){if(!F&&(c||p)){if(typeof fetch==\"function\"&&!Il(Tr))return fetch(Tr,{credentials:\"same-origin\"}).then(function(K){if(!K.ok)throw\"failed to load wasm binary file at '\"+Tr+\"'\";return K.arrayBuffer()}).catch(function(){return Ji(Tr)});if(g)return new Promise(function(K,lt){g(Tr,function(_t){K(new Uint8Array(_t))},lt)})}return Promise.resolve().then(function(){return Ji(Tr)})}function Fd(){var K={env:Ld,wasi_snapshot_preview1:Ld};function lt(ee,te){var dr=ee.exports;e.asm=dr,V=e.asm.memory,At(V.buffer),Zt=e.asm.__indirect_function_table,Hn(e.asm.__wasm_call_ctors),Kn(\"wasm-instantiate\")}qn(\"wasm-instantiate\");function _t(ee){lt(ee.instance)}function re(ee){return Rd().then(function(te){return WebAssembly.instantiate(te,K)}).then(function(te){return te}).then(ee,function(te){A(\"failed to asynchronously prepare wasm: \"+te),Xr(te)})}function Ke(){return!F&&typeof WebAssembly.instantiateStreaming==\"function\"&&!Mo(Tr)&&!Il(Tr)&&!m&&typeof fetch==\"function\"?fetch(Tr,{credentials:\"same-origin\"}).then(function(ee){var te=WebAssembly.instantiateStreaming(ee,K);return te.then(_t,function(dr){return A(\"wasm streaming compile failed: \"+dr),A(\"falling back to ArrayBuffer instantiation\"),re(_t)})}):re(_t)}if(e.instantiateWasm)try{var je=e.instantiateWasm(K,lt);return je}catch(ee){A(\"Module.instantiateWasm callback failed with error: \"+ee),o(ee)}return Ke().catch(o),{}}var Gk,Sl;function Xc(K){this.name=\"ExitStatus\",this.message=\"Program terminated with exit(\"+K+\")\",this.status=K}function Qi(K){for(;K.length>0;)K.shift()(e)}function Wk(K){return K}function Uk(K){var lt=/\\b_Z[\\w\\d_]+/g;return K.replace(lt,function(_t){var re=_t;return _t===re?_t:re+\" [\"+_t+\"]\"})}function Yc(){var K=new Error;if(!K.stack){try{throw new Error}catch(lt){K=lt}if(!K.stack)return\"(no stack trace available)\"}return K.stack.toString()}function gI(K,lt){ot.set(K,lt)}function pg(){Xr(\"\")}function Od(){return 2147483648}function en(){return Od()}function mg(K,lt,_t){at.copyWithin(K,lt,lt+_t)}function xI(K){try{return V.grow(K-rt.byteLength+65535>>>16),At(V.buffer),1}catch(lt){}}function yI(K){var lt=at.length;K=K>>>0;var _t=Od();if(K>_t)return!1;let re=(dr,jn)=>dr+(jn-dr%jn)%jn;for(var Ke=1;Ke<=4;Ke*=2){var je=lt*(1+.2/Ke);je=Math.min(je,K+100663296);var ee=Math.min(_t,re(Math.max(K,je),65536)),te=xI(ee);if(te)return!0}return!1}var bI={varargs:void 0,get:function(){bI.varargs+=4;var K=dt[bI.varargs-4>>2];return K},getStr:function(K){var lt=Y(K);return lt}};function Hk(K){return 52}function wI(K,lt,_t,re,Ke){return 70}var Ru=[null,[],[]];function CI(K,lt){var _t=Ru[K];lt===0||lt===10?((K===1?_:A)(j(_t,0)),_t.length=0):_t.push(lt)}function II(K,lt,_t,re){for(var Ke=0,je=0;je<_t;je++){var ee=ht[lt>>2],te=ht[lt+4>>2];lt+=8;for(var dr=0;dr>2]=Ke,0}function Pd(K){var lt=e[\"_\"+K];return lt}function fg(K,lt,_t,re,Ke){var je={string:rn=>{var Nl=0;if(rn!=null&&rn!==0){var _g=(rn.length<<2)+1;Nl=Vd(_g),et(rn,Nl,_g)}return Nl},array:rn=>{var Nl=Vd(rn.length);return gI(rn,Nl),Nl}};function ee(rn){return lt===\"string\"?Y(rn):lt===\"boolean\"?Boolean(rn):rn}var te=Pd(K),dr=[],jn=0;if(re)for(var ta=0;taee===\"number\"||ee===\"boolean\"),je=lt!==\"string\";return je&&Ke&&!re?Pd(K):function(){return fg(K,lt,_t,arguments,re)}}var Ld={abort:pg,emscripten_get_heap_max:en,emscripten_memcpy_big:mg,emscripten_resize_heap:yI,fd_close:Hk,fd_seek:wI,fd_write:II},qk=Fd(),hg=e.___wasm_call_ctors=function(){return(hg=e.___wasm_call_ctors=e.asm.__wasm_call_ctors).apply(null,arguments)},SI=e._init=function(){return(SI=e._init=e.asm.init).apply(null,arguments)},Kt=e._init_with_threads_count=function(){return(Kt=e._init_with_threads_count=e.asm.init_with_threads_count).apply(null,arguments)},Md=e._get_threads_count=function(){return(Md=e._get_threads_count=e.asm.get_threads_count).apply(null,arguments)},vI=e._register_tensor=function(){return(vI=e._register_tensor=e.asm.register_tensor).apply(null,arguments)},Kk=e._dispose_data=function(){return(Kk=e._dispose_data=e.asm.dispose_data).apply(null,arguments)},jk=e._dispose=function(){return(jk=e._dispose=e.asm.dispose).apply(null,arguments)},NI=e._Abs=function(){return(NI=e._Abs=e.asm.Abs).apply(null,arguments)},gg=e._Add=function(){return(gg=e._Add=e.asm.Add).apply(null,arguments)},Zc=e._AddN=function(){return(Zc=e._AddN=e.asm.AddN).apply(null,arguments)},TI=e._All=function(){return(TI=e._All=e.asm.All).apply(null,arguments)},kI=e._Any=function(){return(kI=e._Any=e.asm.Any).apply(null,arguments)},Xk=e._ArgMax=function(){return(Xk=e._ArgMax=e.asm.ArgMax).apply(null,arguments)},EI=e._AvgPool=function(){return(EI=e._AvgPool=e.asm.AvgPool).apply(null,arguments)},_I=e._BatchMatMul=function(){return(_I=e._BatchMatMul=e.asm.BatchMatMul).apply(null,arguments)},AI=e._Ceil=function(){return(AI=e._Ceil=e.asm.Ceil).apply(null,arguments)},$I=e._ClipByValue=function(){return($I=e._ClipByValue=e.asm.ClipByValue).apply(null,arguments)},xg=e._Conv2D=function(){return(xg=e._Conv2D=e.asm.Conv2D).apply(null,arguments)},yg=e._Conv2DBackpropInput=function(){return(yg=e._Conv2DBackpropInput=e.asm.Conv2DBackpropInput).apply(null,arguments)},DI=e._Cos=function(){return(DI=e._Cos=e.asm.Cos).apply(null,arguments)},RI=e._Cosh=function(){return(RI=e._Cosh=e.asm.Cosh).apply(null,arguments)},FI=e._CropAndResize=function(){return(FI=e._CropAndResize=e.asm.CropAndResize).apply(null,arguments)},zd=e._Cumprod=function(){return(zd=e._Cumprod=e.asm.Cumprod).apply(null,arguments)},OI=e._Cumsum=function(){return(OI=e._Cumsum=e.asm.Cumsum).apply(null,arguments)},PI=e._DepthToSpace=function(){return(PI=e._DepthToSpace=e.asm.DepthToSpace).apply(null,arguments)},LI=e._DepthwiseConv2dNative=function(){return(LI=e._DepthwiseConv2dNative=e.asm.DepthwiseConv2dNative).apply(null,arguments)},Fu=e._Elu=function(){return(Fu=e._Elu=e.asm.Elu).apply(null,arguments)},MI=e._Equal=function(){return(MI=e._Equal=e.asm.Equal).apply(null,arguments)},zI=e._Exp=function(){return(zI=e._Exp=e.asm.Exp).apply(null,arguments)},bg=e._FlipLeftRight=function(){return(bg=e._FlipLeftRight=e.asm.FlipLeftRight).apply(null,arguments)},BI=e._Floor=function(){return(BI=e._Floor=e.asm.Floor).apply(null,arguments)},Jc=e._FloorDiv=function(){return(Jc=e._FloorDiv=e.asm.FloorDiv).apply(null,arguments)},VI=e._FusedBatchNorm=function(){return(VI=e._FusedBatchNorm=e.asm.FusedBatchNorm).apply(null,arguments)},GI=e._FusedConv2D=function(){return(GI=e._FusedConv2D=e.asm.FusedConv2D).apply(null,arguments)},vl=e._FusedDepthwiseConv2D=function(){return(vl=e._FusedDepthwiseConv2D=e.asm.FusedDepthwiseConv2D).apply(null,arguments)},Bd=e._Gather=function(){return(Bd=e._Gather=e.asm.Gather).apply(null,arguments)},WI=e._GatherNd=function(){return(WI=e._GatherNd=e.asm.GatherNd).apply(null,arguments)},UI=e._Greater=function(){return(UI=e._Greater=e.asm.Greater).apply(null,arguments)},HI=e._GreaterEqual=function(){return(HI=e._GreaterEqual=e.asm.GreaterEqual).apply(null,arguments)},qI=e._LeakyRelu=function(){return(qI=e._LeakyRelu=e.asm.LeakyRelu).apply(null,arguments)},wg=e._Less=function(){return(wg=e._Less=e.asm.Less).apply(null,arguments)},Cg=e._LessEqual=function(){return(Cg=e._LessEqual=e.asm.LessEqual).apply(null,arguments)},KI=e._Log=function(){return(KI=e._Log=e.asm.Log).apply(null,arguments)},jI=e._LogicalAnd=function(){return(jI=e._LogicalAnd=e.asm.LogicalAnd).apply(null,arguments)},Ig=e._LogicalNot=function(){return(Ig=e._LogicalNot=e.asm.LogicalNot).apply(null,arguments)},Sg=e._LogicalOr=function(){return(Sg=e._LogicalOr=e.asm.LogicalOr).apply(null,arguments)},XI=e._LogicalXor=function(){return(XI=e._LogicalXor=e.asm.LogicalXor).apply(null,arguments)},YI=e._Max=function(){return(YI=e._Max=e.asm.Max).apply(null,arguments)},ZI=e._MaxPool=function(){return(ZI=e._MaxPool=e.asm.MaxPool).apply(null,arguments)},vg=e._Maximum=function(){return(vg=e._Maximum=e.asm.Maximum).apply(null,arguments)},Yk=e._Mean=function(){return(Yk=e._Mean=e.asm.Mean).apply(null,arguments)},JI=e._Min=function(){return(JI=e._Min=e.asm.Min).apply(null,arguments)},QI=e._Minimum=function(){return(QI=e._Minimum=e.asm.Minimum).apply(null,arguments)},tS=e._MirrorPad=function(){return(tS=e._MirrorPad=e.asm.MirrorPad).apply(null,arguments)},eS=e._Multiply=function(){return(eS=e._Multiply=e.asm.Multiply).apply(null,arguments)},rS=e._Neg=function(){return(rS=e._Neg=e.asm.Neg).apply(null,arguments)},nS=e._NonMaxSuppressionV3=function(){return(nS=e._NonMaxSuppressionV3=e.asm.NonMaxSuppressionV3).apply(null,arguments)},oS=e._NonMaxSuppressionV4=function(){return(oS=e._NonMaxSuppressionV4=e.asm.NonMaxSuppressionV4).apply(null,arguments)},sS=e._NonMaxSuppressionV5=function(){return(sS=e._NonMaxSuppressionV5=e.asm.NonMaxSuppressionV5).apply(null,arguments)},iS=e._NotEqual=function(){return(iS=e._NotEqual=e.asm.NotEqual).apply(null,arguments)},aS=e._OneHot=function(){return(aS=e._OneHot=e.asm.OneHot).apply(null,arguments)},lS=e._PadV2=function(){return(lS=e._PadV2=e.asm.PadV2).apply(null,arguments)},uS=e._Pow=function(){return(uS=e._Pow=e.asm.Pow).apply(null,arguments)},cS=e._Prelu=function(){return(cS=e._Prelu=e.asm.Prelu).apply(null,arguments)},pS=e._Prod=function(){return(pS=e._Prod=e.asm.Prod).apply(null,arguments)},mS=e._RealDiv=function(){return(mS=e._RealDiv=e.asm.RealDiv).apply(null,arguments)},fS=e._Relu=function(){return(fS=e._Relu=e.asm.Relu).apply(null,arguments)},dS=e._Relu6=function(){return(dS=e._Relu6=e.asm.Relu6).apply(null,arguments)},hS=e._ResizeBilinear=function(){return(hS=e._ResizeBilinear=e.asm.ResizeBilinear).apply(null,arguments)},gS=e._ResizeNearestNeighbor=function(){return(gS=e._ResizeNearestNeighbor=e.asm.ResizeNearestNeighbor).apply(null,arguments)},xS=e._Reverse=function(){return(xS=e._Reverse=e.asm.Reverse).apply(null,arguments)},yS=e._RotateWithOffset=function(){return(yS=e._RotateWithOffset=e.asm.RotateWithOffset).apply(null,arguments)},bS=e._Round=function(){return(bS=e._Round=e.asm.Round).apply(null,arguments)},wS=e._Rsqrt=function(){return(wS=e._Rsqrt=e.asm.Rsqrt).apply(null,arguments)},CS=e._ScatterNd=function(){return(CS=e._ScatterNd=e.asm.ScatterNd).apply(null,arguments)},IS=e._SelectV2=function(){return(IS=e._SelectV2=e.asm.SelectV2).apply(null,arguments)},SS=e._Sigmoid=function(){return(SS=e._Sigmoid=e.asm.Sigmoid).apply(null,arguments)},vS=e._Sin=function(){return(vS=e._Sin=e.asm.Sin).apply(null,arguments)},NS=e._Softmax=function(){return(NS=e._Softmax=e.asm.Softmax).apply(null,arguments)},TS=e._SparseFillEmptyRows=function(){return(TS=e._SparseFillEmptyRows=e.asm.SparseFillEmptyRows).apply(null,arguments)},kS=e._SparseReshape=function(){return(kS=e._SparseReshape=e.asm.SparseReshape).apply(null,arguments)},ES=e._SparseSegmentReduction=function(){return(ES=e._SparseSegmentReduction=e.asm.SparseSegmentReduction).apply(null,arguments)},_S=e._Sqrt=function(){return(_S=e._Sqrt=e.asm.Sqrt).apply(null,arguments)},AS=e._Square=function(){return(AS=e._Square=e.asm.Square).apply(null,arguments)},$S=e._SquaredDifference=function(){return($S=e._SquaredDifference=e.asm.SquaredDifference).apply(null,arguments)},DS=e._Step=function(){return(DS=e._Step=e.asm.Step).apply(null,arguments)},RS=e._StridedSlice=function(){return(RS=e._StridedSlice=e.asm.StridedSlice).apply(null,arguments)},FS=e._Sub=function(){return(FS=e._Sub=e.asm.Sub).apply(null,arguments)},OS=e._Sum=function(){return(OS=e._Sum=e.asm.Sum).apply(null,arguments)},PS=e._Tan=function(){return(PS=e._Tan=e.asm.Tan).apply(null,arguments)},LS=e._Tanh=function(){return(LS=e._Tanh=e.asm.Tanh).apply(null,arguments)},MS=e._Tile=function(){return(MS=e._Tile=e.asm.Tile).apply(null,arguments)},zS=e._TopK=function(){return(zS=e._TopK=e.asm.TopK).apply(null,arguments)},BS=e._Transform=function(){return(BS=e._Transform=e.asm.Transform).apply(null,arguments)},VS=e._Transpose=function(){return(VS=e._Transpose=e.asm.Transpose).apply(null,arguments)},GS=e.__FusedMatMul=function(){return(GS=e.__FusedMatMul=e.asm._FusedMatMul).apply(null,arguments)},WS=e._malloc=function(){return(WS=e._malloc=e.asm.malloc).apply(null,arguments)},US=e._free=function(){return(US=e._free=e.asm.free).apply(null,arguments)},HS=e.___errno_location=function(){return(HS=e.___errno_location=e.asm.__errno_location).apply(null,arguments)},Ng=e.stackSave=function(){return(Ng=e.stackSave=e.asm.stackSave).apply(null,arguments)},Tg=e.stackRestore=function(){return(Tg=e.stackRestore=e.asm.stackRestore).apply(null,arguments)},Vd=e.stackAlloc=function(){return(Vd=e.stackAlloc=e.asm.stackAlloc).apply(null,arguments)},qS=e.dynCall_iijjiiii=function(){return(qS=e.dynCall_iijjiiii=e.asm.dynCall_iijjiiii).apply(null,arguments)},KS=e.dynCall_jiji=function(){return(KS=e.dynCall_jiji=e.asm.dynCall_jiji).apply(null,arguments)};e.cwrap=dg;var Qc;zr=function K(){Qc||kg(),Qc||(zr=K)};function kg(K){if(K=K||a,qe>0||(Ae(),qe>0))return;function lt(){Qc||(Qc=!0,e.calledRun=!0,!G&&(We(),n(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),_n()))}e.setStatus?(e.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){e.setStatus(\"\")},1),lt()},1)):lt()}if(e.preInit)for(typeof e.preInit==\"function\"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();kg();var tp;s&&(tp={uncaughtException:process.listeners(\"uncaughtException\").filter(function(K){return!s.uncaughtException.indexOf(K)>-1}),unhandledRejection:process.listeners(\"unhandledRejection\").filter(function(K){return!s.unhandledRejection.indexOf(K)>-1})});var ep;if(typeof t!=\"undefined\")ep=t;else if(typeof WasmBackendModuleThreadedSimd!=\"undefined\")ep=WasmBackendModuleThreadedSimd;else throw new Error(\"Could not find wasm module in post.js\");if(tp){var jS=ep._dispose;ep._dispose=function(){jS(),tp.uncaughtException.forEach(function(K){process.removeListener(\"uncaughtException\",K)}),tp.unhandledRejection.forEach(function(K){process.removeListener(\"unhandledRejection\",K)})}}return t.ready}})();typeof dI==\"object\"&&typeof Lk==\"object\"?Lk.exports=Pk:typeof define==\"function\"&&define.amd?define([],function(){return Pk}):typeof dI==\"object\"&&(dI.WasmBackendModule=Pk)});var ra=class{constructor(t,e){this.backend=t,this.dataMover=e,this.data=new WeakMap,this.dataIdsCount=0}get(t){return this.data.has(t)||this.dataMover.moveData(this.backend,t),this.data.get(t)}set(t,e){this.dataIdsCount++,this.data.set(t,e)}has(t){return this.data.has(t)}delete(t){return this.dataIdsCount--,this.data.delete(t)}numDataIds(){return this.dataIdsCount}},zo=class{refCount(t){return $n(\"refCount\")}incRef(t){return $n(\"incRef\")}timerAvailable(){return!0}time(t){return $n(\"time\")}read(t){return $n(\"read\")}readSync(t){return $n(\"readSync\")}readToGPU(t,e){return $n(\"readToGPU\")}numDataIds(){return $n(\"numDataIds\")}disposeData(t,e){return $n(\"disposeData\")}write(t,e,n){return $n(\"write\")}move(t,e,n,o,s){return $n(\"move\")}createTensorFromTexture(t,e,n){return $n(\"createTensorFromTexture\")}memory(){return $n(\"memory\")}floatPrecision(){return $n(\"floatPrecision\")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return $n(\"dispose\")}};function $n(r){throw new Error(`'${r}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function s1(r){let t=r.length,e=0;for(;t>0;)e=Math.random()*t|0,t--,Lg(r,t,e)}function MU(r,t){if(r.length!==t.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${r.length}Second array length was ${t.length}`);let e=r.length,n=0;for(;e>0;)n=Math.random()*e|0,e--,Lg(r,e,n),Lg(t,e,n)}function np(r,t,e){return Math.max(r,Math.min(t,e))}function zU(r){return r%2===0?r:r+1}function Lg(r,t,e){let n=r[t];r[t]=r[e],r[e]=n}function BU(r){let t=0;for(let e=0;ee+` Shapes ${r} and ${t} must match`)}function Yn(r){E(r!=null,()=>\"The input to the tensor constructor must be a non-null value.\")}function Bo(r,t=[],e=!1){if(t==null&&(t=[]),Array.isArray(r)||xr(r)&&!e)for(let n=0;n0,e,n){return new Promise((o,s)=>{let i=0,a=()=>{if(r()){o();return}i++;let u=t(i);if(e!=null&&i>=e){s();return}n!=null?n(a,u):setTimeout(a,u)};a()})}function jU(r,t){let e=1,n=-1;for(let s=0;s=0)e*=r[s];else if(r[s]===-1){if(n!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${n} and dim ${s}`);n=s}else if(r[s]<0)throw Error(`Shapes can not be < 0. Found ${r[s]} at dim ${s}`);if(n===-1){if(t>0&&t!==e)throw Error(`Size(${t}) must match the product of shape ${r}`);return r}if(e===0)throw Error(`Cannot infer the missing size in [${r}] when there are 0 elements`);if(t%e!==0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${e}`);let o=r.slice();return o[n]=t/e,o}function lr(r,t){let e=t.length;return r=r==null?t.map((n,o)=>o):[].concat(r),E(r.every(n=>n>=-e&&n`All values in axis param must be in range [-${e}, ${e}) but got axis ${r}`),E(r.every(n=>na(n)),()=>`All values in axis param must be integers but got axis ${r}`),r.map(n=>n<0?e+n:n)}function t0(r,t){let e=[],n=[],o=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||o?null:lr(t,r).sort(),i=0;for(let a=0;aa)&&r[a]===1&&(e.push(r[a]),n.push(a)),s[i]<=a&&i++}r[a]!==1&&(e.push(r[a]),n.push(a))}return{newShape:e,keptDims:n}}function e0(r,t){let e=null;if(r==null||r===\"float32\")e=new Float32Array(t);else if(r===\"int32\")e=new Int32Array(t);else if(r===\"bool\")e=new Uint8Array(t);else throw new Error(`Unknown data type ${r}`);return e}function r0(r,t){let e=null;if(r==null||r===\"float32\")e=new Float32Array(t);else if(r===\"int32\")e=new Int32Array(t);else if(r===\"bool\")e=new Uint8Array(t);else if(r===\"string\")e=new Array(t);else throw new Error(`Unknown data type ${r}`);return e}function n0(r,t){for(let e=0;et+=e.length),t}function Vo(r){return typeof r==\"string\"||r instanceof String}function i1(r){return typeof r==\"boolean\"}function a1(r){return typeof r==\"number\"}function op(r){return Array.isArray(r)?op(r[0]):r instanceof Float32Array?\"float32\":r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray?\"int32\":a1(r)?\"float32\":Vo(r)?\"string\":i1(r)?\"bool\":\"float32\"}function oi(r){return!!(r&&r.constructor&&r.call&&r.apply)}function sp(r,t){for(let e=t;e=0;--n)e[n]=e[n+1]*r[n+1];return e}function l1(r,t,e,n=!1){let o=new Array;if(t.length===1){let s=t[0]*(n?2:1);for(let i=0;iu*l)*(n?2:1);for(let u=0;uo*s)*(e?2:1);if(n===0)return[];if(n!==t.length)throw new Error(`[${r}] does not match the input size ${t.length}${e?\" for a complex tensor\":\"\"}.`);return l1(0,r,t,e)}function Wd(r,t){let e=ip(r,t);for(let n=0;nn*o,1);if(t==null||t===\"float32\")return Ou(r,new Float32Array(e));if(t===\"int32\")return Ou(r,new Int32Array(e));if(t===\"bool\")return Ou(r,new Uint8Array(e));throw new Error(`Unknown data type ${t}`)}function Ud(r){r.forEach(t=>{E(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${r}].`)})}function ZU(r,t,e){if(t===0)return 0;if(t===1)return r[0];let n=r[r.length-1];for(let o=0;o{let[o,s]=n.split(\":\");this.urlFlags[o]=r4(o,s)})}};function t4(r){let t={};return r.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(e,...n)=>(e4(t,n[0],n[1]),n.join(\"=\"))),t}function e4(r,t,e){r[decodeURIComponent(t)]=decodeURIComponent(e||\"\")}function r4(r,t){if(t=t.toLowerCase(),t===\"true\"||t===\"false\")return t===\"true\";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${r}.`)}function z(){return i0}var i0=null;function c1(r){i0=r}var a0;function l0(){if(a0==null){let r;if(typeof window!=\"undefined\")r=window;else if(typeof global!=\"undefined\")r=global;else if(typeof process!=\"undefined\")r=process;else if(typeof self!=\"undefined\")r=self;else throw new Error(\"Could not find a global object\");a0=r}return a0}function n4(){let r=l0();return r._tfGlobals==null&&(r._tfGlobals=new Map),r._tfGlobals}function Kd(r,t){let e=n4();if(e.has(r))return e.get(r);{let n=t();return e.set(r,n),e.get(r)}}var ii=\"Abs\",oa=\"Acos\",sa=\"Acosh\",Zn=\"Add\",Go=\"AddN\",ia=\"All\",aa=\"Any\",Wo=\"ArgMax\",kl=\"ArgMin\",la=\"Asin\",ua=\"Asinh\",ca=\"Atan\",pa=\"Atanh\",ma=\"Atan2\",Uo=\"AvgPool\",ap=\"AvgPoolGrad\",El=\"AvgPool3D\",lp=\"AvgPool3DGrad\",Ho=\"BatchMatMul\",ai=\"BatchToSpaceND\",up=\"Bincount\",p1=\"BroadcastTo\",cp=\"BroadcastArgs\",lo=\"Cast\",qo=\"Ceil\",uo=\"ClipByValue\",pp=\"Complex\",_l=\"ComplexAbs\",li=\"Concat\",Ko=\"Conv2D\",mp=\"Conv2DBackpropFilter\",jo=\"Conv2DBackpropInput\",Al=\"Conv3D\",fp=\"Conv3DBackpropFilterV2\",dp=\"Conv3DBackpropInputV2\",Xo=\"Cos\",Yo=\"Cosh\",fa=\"Cumprod\",Zo=\"Cumsum\",da=\"CropAndResize\",hp=\"DenseBincount\",ha=\"DepthToSpace\",Jo=\"DepthwiseConv2dNative\",gp=\"DepthwiseConv2dNativeBackpropFilter\",xp=\"DepthwiseConv2dNativeBackpropInput\",yp=\"Diag\",$l=\"Dilation2D\",jd=\"Dilation2DBackpropInput\",Xd=\"Dilation2DBackpropFilter\",Qo=\"RealDiv\",bp=\"Einsum\",ts=\"Elu\",wp=\"EluGrad\",ga=\"Erf\",xa=\"Equal\",es=\"Exp\",ui=\"ExpandDims\",ya=\"Expm1\",Cp=\"FFT\",Dl=\"Fill\",ba=\"FlipLeftRight\",rs=\"Floor\",ns=\"FloorDiv\",os=\"FusedBatchNorm\",ci=\"GatherV2\",wa=\"GatherNd\",Ca=\"Greater\",ss=\"GreaterEqual\",co=\"Identity\",Ip=\"IFFT\",Sp=\"Imag\",Ia=\"IsFinite\",Sa=\"IsInf\",va=\"IsNan\",is=\"LeakyRelu\",Na=\"Less\",Ta=\"LessEqual\",vp=\"LinSpace\",as=\"Log\",ka=\"Log1p\",Ea=\"LogicalAnd\",_a=\"LogicalNot\",Aa=\"LogicalOr\",m1=\"LogicalXor\",f1=\"LogSoftmax\",xlt=\"LowerBound\",Rl=\"LRN\",Np=\"LRNGrad\",ls=\"Max\",us=\"Maximum\",cs=\"MaxPool\",Tp=\"MaxPoolGrad\",Fl=\"MaxPool3D\",kp=\"MaxPool3DGrad\",Ep=\"MaxPoolWithArgmax\",ps=\"Mean\",ms=\"Min\",fs=\"Minimum\",ds=\"MirrorPad\",$a=\"Mod\",_p=\"Multinomial\",hs=\"Multiply\",pi=\"Neg\",Da=\"NotEqual\",Ra=\"NonMaxSuppressionV3\",Fa=\"NonMaxSuppressionV4\",Oa=\"NonMaxSuppressionV5\",mi=\"OnesLike\",gs=\"OneHot\",fi=\"Pack\",xs=\"PadV2\",ylt=\"Pool\",ys=\"Pow\",bs=\"Prelu\",ws=\"Prod\",Ap=\"RaggedGather\",$p=\"RaggedRange\",Dp=\"RaggedTensorToTensor\",Ol=\"Range\",Rp=\"Real\",Pa=\"Reciprocal\",Cs=\"Relu\",di=\"Reshape\",Is=\"ResizeNearestNeighbor\",Fp=\"ResizeNearestNeighborGrad\",Ss=\"ResizeBilinear\",Op=\"ResizeBilinearGrad\",vs=\"Relu6\",Ns=\"Reverse\",Ts=\"Round\",ks=\"Rsqrt\",La=\"ScatterNd\",Pp=\"SearchSorted\",hi=\"Select\",Ma=\"Selu\",gi=\"Slice\",Es=\"Sin\",za=\"Sinh\",Ba=\"Sign\",_s=\"Sigmoid\",Va=\"Softplus\",As=\"Sqrt\",$s=\"Sum\",xi=\"SpaceToBatchND\",yi=\"SplitV\",Ds=\"Softmax\",Pl=\"SparseFillEmptyRows\",Ga=\"SparseReshape\",Ll=\"SparseSegmentMean\",Ml=\"SparseSegmentSum\",Lp=\"SparseToDense\",Rs=\"SquaredDifference\",zl=\"Square\",Wa=\"StridedSlice\",Bl=\"StringNGrams\",Vl=\"StringSplit\",Gl=\"StringToHashBucketFast\",Fs=\"Sub\",Os=\"Tan\",Ps=\"Tanh\",Jn=\"Tile\",Ua=\"TopK\",Ha=\"Transform\",Qn=\"Transpose\",Mp=\"Unique\",bi=\"Unpack\",Wl=\"UnsortedSegmentSum\",blt=\"UpperBound\",wi=\"ZerosLike\",po=\"Step\",Yd=\"FromPixels\",qa=\"RotateWithOffset\",Ci=\"_FusedMatMul\",Ii=\"FusedConv2D\",Si=\"FusedDepthwiseConv2D\";function vi(...r){z().getBool(\"IS_TEST\")||z().getBool(\"PROD\")||console.warn(...r)}function o4(...r){z().getBool(\"IS_TEST\")||z().getBool(\"PROD\")||console.log(...r)}var zp=Kd(\"kernelRegistry\",()=>new Map),Zd=Kd(\"gradRegistry\",()=>new Map);function Jd(r,t){let e=c0(r,t);return zp.get(e)}function u0(r){return Zd.get(r)}function zg(r){let t=zp.entries(),e=[];for(;;){let{done:n,value:o}=t.next();if(n)break;let[s,i]=o,[a]=s.split(\"_\");a===r&&e.push(i)}return e}function Lu(r){let{kernelName:t,backendName:e}=r,n=c0(t,e);zp.has(n)&&vi(`The kernel '${t}' for backend '${e}' is already registered`),zp.set(n,r)}function h1(r){let{kernelName:t}=r;Zd.has(t)&&z().getBool(\"DEBUG\")&&vi(`Overriding the gradient for '${t}'`),Zd.set(t,r)}function vlt(r,t){let e=c0(r,t);if(!zp.has(e))throw new Error(`The kernel '${r}' for backend '${t}' is not registered`);zp.delete(e)}function Nlt(r){if(!Zd.has(r))throw new Error(`The gradient '${r}' for backend is not registered`);Zd.delete(r)}function Tlt(r,t){zg(r).forEach(n=>{let o=Object.assign({},n,{backendName:t});Lu(o)})}function c0(r,t){return`${t}_${r}`}var y={};Wt(y,{arraysEqual:()=>Dn,assert:()=>E,assertNonNegativeIntegerDimensions:()=>Ud,assertNonNull:()=>Yn,assertShapesMatch:()=>$e,bytesFromStringArray:()=>s0,bytesPerElement:()=>Mg,checkConversionForErrors:()=>n0,clamp:()=>np,computeStrides:()=>si,createScalarValue:()=>p4,createShuffledIndices:()=>qU,decodeString:()=>Wp,distSquared:()=>GU,encodeString:()=>Hl,fetch:()=>f4,fingerPrint64:()=>c4,flatten:()=>Bo,getArrayFromDType:()=>r0,getTypedArrayFromDType:()=>e0,hasEncodingLoss:()=>XU,hexToLong:()=>Qd,indexToLoc:()=>JU,inferDtype:()=>op,inferFromImplicitShape:()=>jU,isBoolean:()=>i1,isFunction:()=>oi,isInt:()=>na,isNumber:()=>a1,isPromise:()=>Hd,isScalarShape:()=>WU,isString:()=>Vo,isTypedArray:()=>xr,isValidDtype:()=>o0,locToIndex:()=>ZU,makeOnesTypedArray:()=>Wd,makeZerosNestedTypedArray:()=>YU,makeZerosTypedArray:()=>ip,nearestDivisor:()=>sp,nearestLargerEven:()=>zU,now:()=>Gu,parseAxisParam:()=>lr,randUniform:()=>VU,repeatedTry:()=>KU,rightPad:()=>Pu,shuffle:()=>s1,shuffleCombo:()=>MU,sizeFromShape:()=>Jt,sizeToSquarishShape:()=>HU,squeezeShape:()=>t0,sum:()=>BU,swap:()=>Lg,tanh:()=>UU,toNestedArray:()=>Ou,toTypedArray:()=>Gp});var d0=Tl(T1());var Vu=d0.default||d0;function Qd(r){return Vu.fromString(r,!0,16)}var E1=Qd(\"c3a5c85c97cb3127\"),Bu=Qd(\"b492b66fbe98f273\"),nn=Qd(\"9ae16a3b2f90404f\");function f0(r){return r.xor(r.shru(47))}function _1(r,t,e){let n=r.slice(t,t+e);return Vu.fromBytes(Array.from(n),!0,!0)}function Pe(r,t){return _1(r,t,8)}function k1(r,t){return _1(r,t,4)}function kr(r,t){return t===0?r:r.shru(t).or(r.shl(64-t))}function Ul(r,t,e=Qd(\"9ddfea08eb382d69\")){let n=r.xor(t).mul(e);n=n.xor(n.shru(47));let o=t.xor(n).mul(e);return o=o.xor(o.shru(47)),o=o.mul(e),o}function i4(r,t,e,n,o,s){o=o.add(r),s=kr(s.add(o).add(n),21);let i=o;return o=o.add(t),o=o.add(e),s=s.add(kr(o,44)),[o.add(n),s.add(i)]}function Vg(r,t,e,n){return i4(Pe(r,t),Pe(r,t+8),Pe(r,t+16),Pe(r,t+24),e,n)}function a4(r,t=r.length){if(t>=8){let e=nn.add(t*2),n=Pe(r,0).add(nn),o=Pe(r,t-8),s=kr(o,37).mul(e).add(n),i=kr(n,25).add(o).mul(e);return Ul(s,i,e)}if(t>=4){let e=nn.add(t*2),n=k1(r,0);return Ul(n.shl(3).add(t),k1(r,t-4),e)}if(t>0){let e=r[0],n=r[t>>1],o=r[t-1],s=e+(n<<8),i=t+(o<<2);return f0(nn.mul(s).xor(E1.mul(i))).mul(nn)}return nn}function l4(r,t=r.length){let e=nn.add(t*2),n=Pe(r,0).mul(Bu),o=Pe(r,8),s=Pe(r,t-8).mul(e),i=Pe(r,t-16).mul(nn);return Ul(kr(n.add(o),43).add(kr(s,30)).add(i),n.add(kr(o.add(nn),18)).add(s),e)}function u4(r,t=r.length){let e=nn.add(t*2),n=Pe(r,0).mul(nn),o=Pe(r,8),s=Pe(r,t-8).mul(e),i=Pe(r,t-16).mul(nn),a=kr(n.add(o),43).add(kr(s,30)).add(i),u=Ul(a,n.add(kr(o.add(nn),18)).add(s),e),l=Pe(r,16).mul(e),c=Pe(r,24),p=a.add(Pe(r,t-32)).mul(e),m=u.add(Pe(r,t-24)).mul(e);return Ul(kr(l.add(c),43).add(kr(p,30)).add(m),l.add(kr(c.add(n),18)).add(p),e)}function c4(r,t=r.length){let e=Vu.fromNumber(81,!0);if(t<=32)return t<=16?a4(r,t):l4(r,t);if(t<=64)return u4(r,t);let n=e,o=e.mul(Bu).add(113),s=f0(o.mul(nn).add(113)).mul(nn),i=[Vu.UZERO,Vu.UZERO],a=[Vu.UZERO,Vu.UZERO];n=n.mul(nn).add(Pe(r,0));let u=0,l=(t-1>>6)*64,c=l+(t-1&63)-63;do n=kr(n.add(o).add(i[0]).add(Pe(r,u+8)),37).mul(Bu),o=kr(o.add(i[1]).add(Pe(r,u+48)),42).mul(Bu),n=n.xor(a[1]),o=o.add(i[0]).add(Pe(r,u+40)),s=kr(s.add(a[0]),33).mul(Bu),i=Vg(r,u,i[1].mul(Bu),n.add(a[0])),a=Vg(r,u+32,s.add(a[1]),o.add(Pe(r,u+16))),[s,n]=[n,s],u+=64;while(u!==l);let p=Bu.add(s.and(255).shl(1));return u=c,a[0]=a[0].add(t-1&63),i[0]=i[0].add(a[0]),a[0]=a[0].add(i[0]),n=kr(n.add(o).add(i[0]).add(Pe(r,u+8)),37).mul(p),o=kr(o.add(i[1]).add(Pe(r,u+48)),42).mul(p),n=n.xor(a[1].mul(9)),o=o.add(i[0].mul(9).add(Pe(r,u+40))),s=kr(s.add(a[0]),33).mul(p),i=Vg(r,u,i[1].mul(p),n.add(a[0])),a=Vg(r,u+32,s.add(a[1]),o.add(Pe(r,u+16))),[s,n]=[n,s],Ul(Ul(i[0],a[0],p).add(f0(o).mul(E1)).add(s),Ul(i[1],a[1],p).add(n),p)}function p4(r,t){return t===\"string\"?Hl(r):Gp([r],t)}function m4(r,t){return r instanceof Float32Array&&t===\"float32\"||r instanceof Int32Array&&t===\"int32\"||r instanceof Uint8Array&&t===\"bool\"}function Gp(r,t){if(t===\"string\")throw new Error(\"Cannot convert a string[] to a TypedArray\");if(Array.isArray(r)&&(r=Bo(r)),z().getBool(\"DEBUG\")&&n0(r,t),m4(r,t))return r;if(t==null||t===\"float32\"||t===\"complex64\")return new Float32Array(r);if(t===\"int32\")return new Int32Array(r);if(t===\"bool\"){let e=new Uint8Array(r.length);for(let n=0;n{o=n()},i,a=Gu();if(this.backendTimer.timerAvailable())i=this.backendTimer.time(s);else{s();for(let l of o)l.dataSync();i=Promise.resolve({kernelMs:Gu()-a})}if(z().getBool(\"CHECK_COMPUTATION_FOR_ERRORS\"))for(let l=0;l{d4(p,c.dtype,t)})}return{kernelName:t,outputs:o,inputs:e,timeMs:i.then(l=>l.kernelMs),extraInfo:i.then(l=>l.getExtraProfileInfo!=null?l.getExtraProfileInfo():\"\")}}logKernelProfile(t){let{kernelName:e,outputs:n,timeMs:o,inputs:s,extraInfo:i}=t;n.forEach(a=>{Promise.all([a.data(),o,i]).then(u=>{this.logger.logKernelProfile(e,a,u[0],u[1],s,u[2])})})}};function d4(r,t,e){if(t!==\"float32\")return!1;for(let n=0;n0?h:\"\"} `}}console.log(`%c${u}\t%c${a}\t%c${l}D ${p}\t%c${c}\t%c${m}\t%c${i}`,\"font-weight:bold\",\"color:red\",\"color:blue\",\"color: orange\",\"color: green\",\"color: steelblue\")}};function A1(r,t,e){let n={},o={};for(let u=0;un[h.id]=!0),f=!0,o[l.id]=!0;break}if(f)break}}let s={};s[e.id]=!0;let i={};for(let u=r.length-1;u>=0;u--){let l=r[u],c=l.inputs;for(let p=0;p=0;o--){let s=t[o],i=[];if(s.outputs.forEach(u=>{let l=r[u.id];l!=null?i.push(l):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let a=s.gradient(i);for(let u in s.inputs){if(!(u in a))throw new Error(`Cannot backprop through input ${u}. Available gradients found: ${Object.keys(a)}.`);let l=e(()=>a[u]());if(l.dtype!==\"float32\")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${u} must have 'float32' dtype, but has '${l.dtype}'`);let c=s.inputs[u];if(!Dn(l.shape,c.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${u}' has shape '${l.shape}', which does not match the shape of the input '${c.shape}'`);if(r[c.id]==null)r[c.id]=l;else{let p=r[c.id];r[c.id]=n(p,l),p.dispose()}}}}var D1=20,th=3,g0=7;function R1(r,t,e,n){let o=si(t),s=h4(r,t,e,o),i=t.length,a=Wg(r,t,e,o,s),u=[\"Tensor\"];return n&&(u.push(` dtype: ${e}`),u.push(` rank: ${i}`),u.push(` shape: [${t}]`),u.push(\" values:\")),u.push(a.map(l=>\" \"+l).join(`\n`)),u.join(`\n`)}function h4(r,t,e,n){let o=Jt(t),s=n[n.length-1],i=new Array(s).fill(0),a=t.length,u=e===\"complex64\"?rh(r):r;if(a>1)for(let l=0;lD1){let g=th*i,x=Array.from(r.slice(0,g)),b=Array.from(r.slice((a-th)*i,a*i));return e===\"complex64\"&&(x=rh(x),b=rh(b)),[\"[\"+x.map((w,C)=>eh(w,o[C],e)).join(\", \")+\", ..., \"+b.map((w,C)=>eh(w,o[a-th+C],e)).join(\", \")+\"]\"]}let h=e===\"complex64\"?rh(r):Array.from(r);return[\"[\"+h.map((g,x)=>eh(g,o[x],e)).join(\", \")+\"]\"]}let l=t.slice(1),c=n.slice(1),p=n[0]*i,m=[];if(a>D1){for(let h=0;h`Length of values '${o}' does not match the size inferred by the shape '${this.size}'.`)}if(e===\"complex64\")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||r0(e,this.size),this.strides=si(t)}set(t,...e){e.length===0&&(e=[0]),E(e.length===this.rank,()=>`The number of provided coordinates (${e.length}) must match the rank (${this.rank})`);let n=this.locToIndex(e);this.values[n]=t}get(...t){t.length===0&&(t=[0]);let e=0;for(let o of t){if(o<0||o>=this.shape[e]){let s=`Requested out of range element at ${t}. Buffer shape=${this.shape}`;throw new Error(s)}e++}let n=t[t.length-1];for(let o=0;oWp(n))}catch(n){throw new Error(\"Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().\")}}return t}dataToGPU(t){return this.throwIfDisposed(),Ms().readToGPU(this.dataId,t)}dataSync(){this.throwIfDisposed();let t=Ms().readSync(this.dataId);if(this.dtype===\"string\")try{return t.map(e=>Wp(e))}catch(e){throw new Error(\"Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().\")}return t}async bytes(){this.throwIfDisposed();let t=await Ms().read(this.dataId);return this.dtype===\"string\"?t:new Uint8Array(t.buffer)}dispose(){this.isDisposed||(Ms().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error(\"Tensor is disposed.\")}print(t=!1){return Up.print(this,t)}clone(){return this.throwIfDisposed(),Up.clone(this)}toString(t=!1){let e=this.dataSync();return R1(e,this.shape,this.dtype,t)}cast(t){return this.throwIfDisposed(),Up.cast(this,t)}variable(t=!0,e,n){return this.throwIfDisposed(),Ms().makeVariable(this,t,e,n)}};Object.defineProperty(Ft,Symbol.hasInstance,{value:r=>!!r&&r.data!=null&&r.dataSync!=null&&r.throwIfDisposed!=null});function O(){return Kd(\"Tensor\",()=>Ft)}O();var Ka=class extends Ft{constructor(t,e,n,o){super(t.shape,t.dtype,t.dataId,o),this.trainable=e,this.name=n}assign(t){if(t.dtype!==this.dtype)throw new Error(`dtype of the new value (${t.dtype}) and previous value (${this.dtype}) must match`);if(!Dn(t.shape,this.shape))throw new Error(`shape of the new value (${t.shape}) and previous value (${this.shape}) must match`);Ms().disposeTensor(this),this.dataId=t.dataId,Ms().incRef(this,null)}dispose(){Ms().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(Ka,Symbol.hasInstance,{value:r=>r instanceof Ft&&r.assign!=null&&r.assign instanceof Function});var go={};Wt(go,{assertTypesMatch:()=>I0,getTensorsInContainer:()=>nh,isTensorInList:()=>y4,makeTypesMatch:()=>Ut});var x0;(function(r){r.R0=\"R0\",r.R1=\"R1\",r.R2=\"R2\",r.R3=\"R3\",r.R4=\"R4\",r.R5=\"R5\",r.R6=\"R6\"})(x0||(x0={}));var y0;(function(r){r.float32=\"float32\",r.int32=\"int32\",r.bool=\"int32\",r.complex64=\"complex64\"})(y0||(y0={}));var b0;(function(r){r.float32=\"float32\",r.int32=\"int32\",r.bool=\"bool\",r.complex64=\"complex64\"})(b0||(b0={}));var w0;(function(r){r.float32=\"float32\",r.int32=\"float32\",r.bool=\"float32\",r.complex64=\"complex64\"})(w0||(w0={}));var C0;(function(r){r.float32=\"complex64\",r.int32=\"complex64\",r.bool=\"complex64\",r.complex64=\"complex64\"})(C0||(C0={}));var x4={float32:w0,int32:y0,bool:b0,complex64:C0};function sr(r,t){if(r===\"string\"||t===\"string\"){if(r===\"string\"&&t===\"string\")return\"string\";throw new Error(`Can not upcast ${r} with ${t}`)}return x4[r][t]}function Wu(r){return sr(r,\"int32\")}function Ut(r,t){if(r.dtype===t.dtype)return[r,t];let e=sr(r.dtype,t.dtype);return[r.cast(e),t.cast(e)]}function I0(r,t){E(r.dtype===t.dtype,()=>`The dtypes of the first(${r.dtype}) and second(${t.dtype}) input must match`)}function y4(r,t){return t.some(e=>e.id===r.id)}function nh(r){let t=[];return M1(r,t,new Set),t}function M1(r,t,e){if(r==null)return;if(r instanceof Ft){t.push(r);return}if(!b4(r))return;let n=r;for(let o in n){let s=n[o];e.has(s)||(e.add(s),M1(s,t,e))}}function b4(r){return Array.isArray(r)||typeof r==\"object\"}function S0(r){return r.kernelName!=null}var Ug=class{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(t=>t.name)))}}}dispose(){for(let t in this.registeredVariables)this.registeredVariables[t].dispose()}},ql=class{constructor(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Ug}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let t=this.getSortedBackends();for(let e=0;e{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(t){zg(t).forEach(n=>{n.disposeFunc!=null&&n.disposeFunc(this.registry[t])})}initializeBackend(t){let e=this.registryFactory[t];if(e==null)throw new Error(`Cannot initialize backend ${t}, no registration found.`);try{let n=e.factory();if(n&&!(n instanceof zo)&&typeof n.then==\"function\"){let o=++this.pendingBackendInitId,s=n.then(i=>o(othis.registryFactory[e].priority-this.registryFactory[t].priority)}initializeBackendsAndReturnBest(){let t=this.getSortedBackends();for(let e=0;ethis.startScope(n),()=>this.endScope(o),()=>(o=e(),o instanceof Promise&&console.error(\"Cannot return a Promise inside of tidy.\"),o))}scopedRun(t,e,n){t();try{let o=n();return e(),o}catch(o){throw e(),o}}nextTensorId(){return ql.nextTensorId++}nextVariableId(){return ql.nextVariableId++}clone(t){let e=k.runKernel(co,{x:t}),n={x:t},o=i=>({x:()=>{let a=\"float32\",u={x:i},l={dtype:a};return k.runKernel(lo,u,l)}}),s=[];return this.addTapeNode(this.state.activeScope.name,n,[e],o,s,{}),e}runKernel(t,e,n){if(this.backendName==null&&this.backend,!(Jd(t,this.backendName)!=null))throw new Error(`Kernel '${t}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:t,inputs:e,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool(\"IS_TEST\")}checkKernelForMemLeak(t,e,n){let o=this.backend.numDataIds(),s=0;n.forEach(u=>{s+=u.dtype===\"complex64\"?3:1});let i=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],a=o-e-s-i;if(a>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${a} data ids) after running '${t}'`)}runKernelFunc(t){let e,n=[],o=this.isTapeOn(),s=this.state.numBytes,i=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let a;this.backendName==null&&this.backend;let u,l=S0(t)?t.kernelName:this.state.activeScope!=null?this.state.activeScope.name:\"\";if(S0(t)){let{kernelName:d,inputs:h,attrs:g}=t;this.backendName==null&&this.backend;let x=Jd(d,this.backendName);E(x!=null,()=>`Cannot find registered kernel '${d}' for backend '${this.backendName}'`),a=()=>{let b=this.backend.numDataIds();u=x.kernelFunc({inputs:h,attrs:g,backend:this.backend});let w=Array.isArray(u)?u:[u];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(d,b,w);let C=w.map(N=>N.rank!=null?N:this.makeTensorFromTensorInfo(N));if(o){let N=this.getTensorsForGradient(d,h,C);n=this.saveTensorsForBackwardMode(N)}return C}}else{let{forwardFunc:d}=t,h=g=>{!o||(n=g.map(x=>this.keep(this.clone(x))))};a=()=>{let g=this.backend.numDataIds();u=this.tidy(()=>d(this.backend,h));let x=Array.isArray(u)?u:[u];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,g,x),x}}let{inputs:c,attrs:p}=t,m=S0(t)?null:t.backwardsFunc,f;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool(\"DEBUG\")&&!this.state.profiling?e=a():(f=this.profiler.profileKernel(l,c,()=>a()),this.ENV.getBool(\"DEBUG\")&&this.profiler.logKernelProfile(f),e=f.outputs)}),o&&this.addTapeNode(l,c,e,m,n,p),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-s,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-i,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(d=>c[d]!=null?c[d].shape:null),outputShapes:e.map(d=>d.shape),kernelTimeMs:f.timeMs,extraInfo:f.extraInfo}),Array.isArray(u)?e:e[0]}saveTensorsForBackwardMode(t){return t.map(n=>this.keep(this.clone(n)))}getTensorsForGradient(t,e,n){let o=u0(t);if(o!=null){let s=o.inputsToSave||[],i=o.outputsToSave||[],a;o.saveAllInputs?(E(Array.isArray(e),()=>\"saveAllInputs is true, expected inputs to be an array.\"),a=Object.keys(e).map(l=>e[l])):a=s.map(l=>e[l]);let u=n.filter((l,c)=>i[c]);return a.concat(u)}return[]}makeTensor(t,e,n,o){if(t==null)throw new Error(\"Values passed to engine.makeTensor() are null\");n=n||\"float32\",o=o||this.backend;let s=t;n===\"string\"&&Vo(t[0])&&(s=t.map(u=>Hl(u)));let i=o.write(s,e,n),a=new Ft(e,n,i,this.nextTensorId());if(this.trackTensor(a,o),n===\"string\"){let u=this.state.tensorInfo.get(i),l=s0(s);this.state.numBytes+=l-u.bytes,u.bytes=l}return a}makeTensorFromDataId(t,e,n,o){n=n||\"float32\";let s={dataId:t,shape:e,dtype:n};return this.makeTensorFromTensorInfo(s,o)}makeTensorFromTensorInfo(t,e){let{dataId:n,shape:o,dtype:s}=t,i=new Ft(o,s,n,this.nextTensorId());return this.trackTensor(i,e),i}makeVariable(t,e=!0,n,o){n=n||this.nextVariableId().toString(),o!=null&&o!==t.dtype&&(t=t.cast(o));let s=new Ka(t,e,n,this.nextTensorId());if(this.state.registeredVariables[s.name]!=null)throw new Error(`Variable with name ${s.name} was already registered`);return this.state.registeredVariables[s.name]=s,this.incRef(s,this.backend),s}trackTensor(t,e){this.state.numTensors++,t.dtype===\"string\"&&this.state.numStringTensors++;let n=0;t.dtype!==\"complex64\"&&t.dtype!==\"string\"&&(n=t.size*Mg(t.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(t.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(t.dataId,{backend:e||this.backend,dtype:t.dtype,shape:t.shape,bytes:n})),t instanceof Ka||this.track(t)}incRef(t,e){this.trackTensor(t,e),this.backend.incRef(t.dataId)}removeDataId(t,e){this.state.tensorInfo.has(t)&&this.state.tensorInfo.get(t).backend===e&&(this.state.tensorInfo.delete(t),this.state.numDataBuffers--)}disposeTensor(t){if(!this.state.tensorInfo.has(t.dataId))return;let e=this.state.tensorInfo.get(t.dataId);if(this.state.numTensors--,t.dtype===\"string\"&&(this.state.numStringTensors--,this.state.numBytes-=e.bytes),t.dtype!==\"complex64\"&&t.dtype!==\"string\"){let n=t.size*Mg(t.dtype);this.state.numBytes-=n}e.backend.disposeData(t.dataId)&&this.removeDataId(t.dataId,e.backend)}disposeVariables(){for(let t in this.state.registeredVariables){let e=this.state.registeredVariables[t];this.disposeVariable(e)}}disposeVariable(t){this.disposeTensor(t),this.state.registeredVariables[t.name]!=null&&delete this.state.registeredVariables[t.name]}memory(){let t=this.backend.memory();return t.numTensors=this.state.numTensors,t.numDataBuffers=this.state.numDataBuffers,t.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(t.unreliable=!0,t.reasons==null&&(t.reasons=[]),t.reasons.push(\"Memory usage by string tensors is approximate (2 bytes per character)\")),t}async profile(t){this.state.profiling=!0;let e=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await t(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(o=>o.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-e,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let o of this.state.activeProfile.kernels)o.kernelTimeMs=await o.kernelTimeMs,o.extraInfo=await o.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(t,e,n,o,s,i){let a={id:this.state.nextTapeNodeId++,kernelName:t,inputs:e,outputs:n,saved:s},u=u0(t);u!=null&&(o=u.gradFunc),o!=null&&(a.gradient=l=>(l=l.map((c,p)=>{if(c==null){let m=n[p],f=ip(m.size,m.dtype);return this.makeTensor(f,m.shape,m.dtype)}return c}),o(l.length>1?l:l[0],s,i))),this.state.activeTape.push(a)}keep(t){return t.kept=!0,t}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(t){let e={track:[],name:\"unnamed scope\",id:this.state.nextScopeId++};t&&(e.name=t),this.state.scopeStack.push(e),this.state.activeScope=e}endScope(t){let e=nh(t),n=new Set(e.map(s=>s.id));for(let s=0;s{!s.kept&&s.scopeId===o.id&&this.track(s)})}gradients(t,e,n,o=!1){if(E(e.length>0,()=>\"gradients() received an empty list of xs.\"),n!=null&&n.dtype!==\"float32\")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);let s=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy(\"forward\",t));E(s instanceof Ft,()=>\"The result y returned by f() must be a tensor.\");let i=A1(this.state.activeTape,e,s);if(!o&&i.length===0&&e.length>0)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\",()=>{let a={};a[s.id]=n==null?w4(s.shape):n,$1(a,i,l=>this.tidy(l),C4);let u=e.map(l=>a[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let c of l.saved)c.dispose()}),this.state.activeTape=null),{value:s,grads:u}})}customGrad(t){return E(oi(t),()=>\"The f passed in customGrad(f) must be a function.\"),(...e)=>{E(e.every(a=>a instanceof Ft),()=>\"The args passed in customGrad(f)(x1, x2,...) must all be tensors\");let n,o={};e.forEach((a,u)=>{o[u]=a});let s=(a,u)=>(n=t(...e,u),E(n.value instanceof Ft,()=>\"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor\"),E(oi(n.gradFunc),()=>\"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function.\"),n.value),i=(a,u)=>{let l=n.gradFunc(a,u),c=Array.isArray(l)?l:[l];E(c.length===e.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(...).\"),E(c.every(m=>m instanceof Ft),()=>\"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.\");let p={};return c.forEach((m,f)=>{p[f]=()=>m}),p};return this.runKernelFunc({forwardFunc:s,backwardsFunc:i,inputs:o})}}readSync(t){return this.state.tensorInfo.get(t).backend.readSync(t)}read(t){return this.state.tensorInfo.get(t).backend.read(t)}readToGPU(t,e){return this.state.tensorInfo.get(t).backend.readToGPU(t,e)}async time(t){let e=Gu(),n=await this.backend.time(t);return n.wallMs=Gu()-e,n}track(t){return this.state.activeScope!=null&&(t.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(t)),t}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new Ug;for(let t in this.registry)this.disposeRegisteredKernels(t),this.registry[t].dispose(),delete this.registry[t];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};ql.nextTensorId=0;ql.nextVariableId=0;function w4(r){let t=Wd(Jt(r),\"float32\");return k.makeTensor(t,r,\"float32\")}function v0(){let r=l0();if(r._tfengine==null){let t=new qd(r);r._tfengine=new ql(t)}return c1(r._tfengine.ENV),O1(()=>r._tfengine),r._tfengine}var k=v0();function C4(r,t){let e={a:r,b:t};return k.runKernel(Zn,e)}var Kl={};Wt(Kl,{isBrowser:()=>T0,isMobile:()=>v4,mockIsMobile:()=>S4});function I4(){return typeof navigator!=\"undefined\"&&navigator!=null}var N0;function S4(r){N0=r}function v4(r){if(N0!==void 0)return N0;if(r||I4()){if(r||(r=navigator),r.product===\"ReactNative\")return!0;let t=r.userAgent||r.vendor||(typeof window!=\"undefined\"?window.opera:\"\");if(!t){let e=r;return e.userAgentData&&e.userAgentData.mobile}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(t)||/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(t.substr(0,4))}return!1}function T0(){return typeof window!=\"undefined\"&&window.document!=null||typeof WorkerGlobalScope!=\"undefined\"}var On=z();On.registerFlag(\"DEBUG\",()=>!1,r=>{r&&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.\")});On.registerFlag(\"IS_BROWSER\",()=>T0());On.registerFlag(\"IS_NODE\",()=>typeof process!=\"undefined\"&&typeof process.versions!=\"undefined\"&&typeof process.versions.node!=\"undefined\");On.registerFlag(\"IS_CHROME\",()=>typeof navigator!=\"undefined\"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));On.registerFlag(\"PROD\",()=>!1);On.registerFlag(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\",()=>On.getBool(\"DEBUG\"));On.registerFlag(\"DEPRECATION_WARNINGS_ENABLED\",()=>!0);On.registerFlag(\"IS_TEST\",()=>!1);On.registerFlag(\"CHECK_COMPUTATION_FOR_ERRORS\",()=>!0);On.registerFlag(\"WRAP_TO_IMAGEBITMAP\",()=>!1);On.registerFlag(\"ENGINE_COMPILE_ONLY\",()=>!1);On.registerFlag(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\",()=>!1);On.registerFlag(\"USE_SETTIMEOUTCUSTOM\",()=>!1);function Br(r,t){let e=r;if(xr(r))return t===\"string\"?[]:[r.length];if(typeof r==\"object\"&&\"texture\"in r){let o=r.channels||\"RGBA\";return[r.height,r.width*o.length]}if(!Array.isArray(r))return[];let n=[];for(;Array.isArray(e)||xr(e)&&t!==\"string\";)n.push(e.length),e=e[0];return Array.isArray(r)&&z().getBool(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\")&&B1(r,n,[]),n}function B1(r,t,e){if(e=e||[],!Array.isArray(r)&&!xr(r)){E(t.length===0,()=>`Element arr[${e.join(\"][\")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}E(t.length>0,()=>`Element arr[${e.join(\"][\")}] should be a primitive, but is an array of ${r.length} elements`),E(r.length===t[0],()=>`Element arr[${e.join(\"][\")}] should have ${t[0]} elements, but has ${r.length} elements`);let n=t.slice(1);for(let o=0;o=0&&(o=n),z1(n,o,t,e),r==null||!xr(r)&&!Array.isArray(r)&&typeof r!=\"number\"&&typeof r!=\"boolean\"&&typeof r!=\"string\"){let u=r==null?\"null\":r.constructor.name;throw new Error(`Argument '${t}' passed to '${e}' must be a Tensor or TensorLike, but got '${u}'`)}let s=Br(r,o);!xr(r)&&!Array.isArray(r)&&(r=[r]);let a=o!==\"string\"?Gp(r,o):Bo(r,[],!0);return k.makeTensor(a,s,o)}function ja(r,t,e,n=\"numeric\"){if(!Array.isArray(r))throw new Error(`Argument ${t} passed to ${e} must be a \\`Tensor[]\\` or \\`TensorLike[]\\``);return r.map((s,i)=>I(s,`${t}[${i}]`,e,n))}var k0=\"__op\";function T(r){let t=Object.keys(r);if(t.length!==1)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 e=t[0],n=r[e];e.endsWith(\"_\")&&(e=e.substring(0,e.length-1)),e=e+k0;let o=(...s)=>{k.startScope(e);try{let i=n(...s);return Hd(i)&&console.error(\"Cannot return a Promise inside of tidy.\"),k.endScope(i),i}catch(i){throw k.endScope(null),i}};return Object.defineProperty(o,\"name\",{value:e,configurable:!0}),o}function N4(r,t){let e=I(r,\"real\",\"complex\"),n=I(t,\"imag\",\"complex\");$e(e.shape,n.shape,`real and imag shapes, ${e.shape} and ${n.shape}, must match in call to tf.complex().`);let o={real:e,imag:n};return k.runKernel(pp,o)}var wn=T({complex_:N4});function on(r,t,e,n){if(n==null&&(n=op(r)),n===\"complex64\")throw new Error(\"Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).\");if(typeof r==\"object\"&&\"texture\"in r){if(n!==\"float32\"&&n!==\"int32\")throw new Error(`Creating tensor from texture only supports 'float32'|'int32' dtype, while the dtype is ${n}.`);return r.channels=r.channels||\"RGBA\",k.backend.createTensorFromTexture(r,t||e,n)}if(!xr(r)&&!Array.isArray(r)&&typeof r!=\"number\"&&typeof r!=\"boolean\"&&typeof r!=\"string\")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(t!=null){Ud(t);let o=Jt(t),s=Jt(e);E(o===s,()=>`Based on the provided shape, [${t}], the tensor should have ${o} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${e}) does not match the provided shape (${t}). `)}}return!xr(r)&&!Array.isArray(r)&&(r=[r]),t=t||e,r=n!==\"string\"?Gp(r,n):Bo(r,[],!0),k.makeTensor(r,t,n)}function ur(r,t,e){let n=Br(r,e);return on(r,t,n,e)}var oh={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};var Hg=4;async function G1(r,t){let e=[],n=[],o=Array.isArray(r)?r.map(i=>i.name):Object.keys(r);for(let i=0;i{let m=await u.bytes(),f=m.reduce((g,x)=>g+x.length,0)+Hg*m.length,d=new Uint8Array(f),h=0;for(let g=0;g{if(t+=s.byteLength,e.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let n=new Uint8Array(t),o=0;return e.forEach(s=>{n.set(new Uint8Array(s.buffer),o),o+=s.byteLength}),n.buffer}var E0=typeof Buffer!=\"undefined\"&&(typeof Blob==\"undefined\"||typeof atob==\"undefined\"||typeof btoa==\"undefined\");function V1(r){return E0?Buffer.byteLength(r):new Blob([r]).size}function W1(r){if(E0)return Buffer.from(r).toString(\"base64\");let t=new Uint8Array(r),e=\"\";for(let n=0,o=t.length;n{t+=o.byteLength});let e=new Uint8Array(t),n=0;return r.forEach(o=>{e.set(new Uint8Array(o),n),n+=o.byteLength}),e.buffer}function _0(r){let t=\"/\";for(r=r.trim();r.endsWith(t);)r=r.slice(0,r.length-1);let e=r.split(t);return e[e.length-1]}function Kg(r,t){let e={modelTopology:r.modelTopology,format:r.format,generatedBy:r.generatedBy,convertedBy:r.convertedBy,weightsManifest:t};return r.signature!=null&&(e.signature=r.signature),r.userDefinedMetadata!=null&&(e.userDefinedMetadata=r.userDefinedMetadata),r.modelInitializer!=null&&(e.modelInitializer=r.modelInitializer),r.initializerSignature!=null&&(e.initializerSignature=r.initializerSignature),r.trainingConfig!=null&&(e.trainingConfig=r.trainingConfig),e}function A0(r,t,e){let n={modelTopology:r.modelTopology,format:r.format,generatedBy:r.generatedBy,convertedBy:r.convertedBy};if(r.trainingConfig!=null&&(n.trainingConfig=r.trainingConfig),r.weightsManifest!=null){if(!t)throw new Error(\"modelJSON has weightsManifest but weightSpecs is null\");if(!e)throw new Error(\"modelJSON has weightsManifest but weightData is null\");n.weightSpecs=t,n.weightData=e}return r.signature!=null&&(n.signature=r.signature),r.userDefinedMetadata!=null&&(n.userDefinedMetadata=r.userDefinedMetadata),r.modelInitializer!=null&&(n.modelInitializer=r.modelInitializer),r.initializerSignature!=null&&(n.initializerSignature=r.initializerSignature),n}async function qp(r,t){let e,n;return r.weightsManifest!=null&&([e,n]=await t(r.weightsManifest)),A0(r,e,n)}function Ni(r){if(r.modelTopology instanceof ArrayBuffer)throw new Error(\"Expected JSON model topology, received ArrayBuffer.\");return{dateSaved:new Date,modelTopologyType:\"JSON\",modelTopologyBytes:r.modelTopology==null?0:V1(JSON.stringify(r.modelTopology)),weightSpecsBytes:r.weightSpecs==null?0:V1(JSON.stringify(r.weightSpecs)),weightDataBytes:r.weightData==null?0:r.weightData.byteLength}}function jg(r){let t=[];for(let e of r)t.push(...e.weights);return t}function k4(){let r=e=>{let n=e<<13,o=0;for(;(n&8388608)===0;)o-=8388608,n<<=1;return n&=-8388609,o+=947912704,n|o},t=new Uint32Array(2048);t[0]=0;for(let e=1;e<1024;e++)t[e]=r(e);for(let e=1024;e<2048;e++)t[e]=939524096+(e-1024<<13);return t}function E4(){let r=new Uint32Array(64);r[0]=0,r[31]=1199570944,r[32]=2147483648,r[63]=3347054592;for(let t=1;t<31;t++)r[t]=t<<23;for(let t=33;t<63;t++)r[t]=2147483648+(t-32<<23);return r}function _4(){let r=new Uint32Array(64);for(let t=0;t<64;t++)r[t]=1024;return r[0]=r[32]=0,r}function A4(){let r=k4(),t=E4(),e=_4();return n=>{let o=new ArrayBuffer(4*n.length),s=new Uint32Array(o);for(let i=0;i>10]+(a&1023)]+t[a>>10];s[i]=u}return new Float32Array(o)}}var Ce=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Ce.instance==null&&(Ce.instance=new Ce),Ce.instance}static registerSaveRouter(t){Ce.getInstance().saveRouters.push(t)}static registerLoadRouter(t){Ce.getInstance().loadRouters.push(t)}static getSaveHandlers(t){return Ce.getHandlers(t,\"save\")}static getLoadHandlers(t,e){return Ce.getHandlers(t,\"load\",e)}static getHandlers(t,e,n){let o=[];return(e===\"load\"?Ce.getInstance().loadRouters:Ce.getInstance().saveRouters).forEach(i=>{let a=i(t,n);a!==null&&o.push(a)}),o}},H1=r=>Ce.registerSaveRouter(r),q1=r=>Ce.registerLoadRouter(r),K1=r=>Ce.getSaveHandlers(r),j1=(r,t)=>Ce.getLoadHandlers(r,t);var $0=\"tensorflowjs\",D0=1,Uu=\"models_store\",jl=\"model_info_store\";function X1(){if(!z().getBool(\"IS_BROWSER\"))throw new Error(\"Failed to obtain IndexedDB factory because the current environmentis not a web browser.\");let r=typeof window==\"undefined\"?self:window,t=r.indexedDB||r.mozIndexedDB||r.webkitIndexedDB||r.msIndexedDB||r.shimIndexedDB;if(t==null)throw new Error(\"The current browser does not appear to support IndexedDB.\");return t}function R0(r){let t=r.result;t.createObjectStore(Uu,{keyPath:\"modelPath\"}),t.createObjectStore(jl,{keyPath:\"modelPath\"})}var Ti=class{constructor(t){if(this.indexedDB=X1(),t==null||!t)throw new Error(\"For IndexedDB, modelPath must not be null, undefined or empty.\");this.modelPath=t}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserLocalStorage.save() does not support saving model topology in binary formats yet.\");return this.databaseAction(this.modelPath,t)}async load(){return this.databaseAction(this.modelPath)}databaseAction(t,e){return new Promise((n,o)=>{let s=this.indexedDB.open($0,D0);s.onupgradeneeded=()=>R0(s),s.onsuccess=()=>{let i=s.result;if(e==null){let a=i.transaction(Uu,\"readonly\"),l=a.objectStore(Uu).get(this.modelPath);l.onsuccess=()=>{if(l.result==null)return i.close(),o(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(l.result.modelArtifacts)},l.onerror=c=>(i.close(),o(l.error)),a.oncomplete=()=>i.close()}else{let a=Ni(e),u=i.transaction(jl,\"readwrite\"),l=u.objectStore(jl),c=l.put({modelPath:this.modelPath,modelArtifactsInfo:a}),p;c.onsuccess=()=>{p=i.transaction(Uu,\"readwrite\");let f=p.objectStore(Uu).put({modelPath:this.modelPath,modelArtifacts:e,modelArtifactsInfo:a});f.onsuccess=()=>n({modelArtifactsInfo:a}),f.onerror=d=>{l=u.objectStore(jl);let h=l.delete(this.modelPath);h.onsuccess=()=>(i.close(),o(f.error)),h.onerror=g=>(i.close(),o(f.error))}},c.onerror=m=>(i.close(),o(c.error)),u.oncomplete=()=>{p==null?i.close():p.oncomplete=()=>i.close()}}},s.onerror=i=>o(s.error)})}};Ti.URL_SCHEME=\"indexeddb://\";var Y1=r=>z().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(Ti.URL_SCHEME)?$4(r.slice(Ti.URL_SCHEME.length)):null;Ce.registerSaveRouter(Y1);Ce.registerLoadRouter(Y1);function $4(r){return new Ti(r)}function D4(r){return r.startsWith(Ti.URL_SCHEME)?r.slice(Ti.URL_SCHEME.length):r}var Xg=class{constructor(){this.indexedDB=X1()}async listModels(){return new Promise((t,e)=>{let n=this.indexedDB.open($0,D0);n.onupgradeneeded=()=>R0(n),n.onsuccess=()=>{let o=n.result,s=o.transaction(jl,\"readonly\"),a=s.objectStore(jl).getAll();a.onsuccess=()=>{let u={};for(let l of a.result)u[l.modelPath]=l.modelArtifactsInfo;t(u)},a.onerror=u=>(o.close(),e(a.error)),s.oncomplete=()=>o.close()},n.onerror=o=>e(n.error)})}async removeModel(t){return t=D4(t),new Promise((e,n)=>{let o=this.indexedDB.open($0,D0);o.onupgradeneeded=()=>R0(o),o.onsuccess=()=>{let s=o.result,i=s.transaction(jl,\"readwrite\"),a=i.objectStore(jl),u=a.get(t),l;u.onsuccess=()=>{if(u.result==null)return s.close(),n(new Error(`Cannot find model with path '${t}' in IndexedDB.`));{let c=a.delete(t),p=()=>{l=s.transaction(Uu,\"readwrite\");let f=l.objectStore(Uu).delete(t);f.onsuccess=()=>e(u.result.modelArtifactsInfo),f.onerror=d=>n(u.error)};c.onsuccess=p,c.onerror=m=>(p(),s.close(),n(u.error))}},u.onerror=c=>(s.close(),n(u.error)),i.oncomplete=()=>{l==null?s.close():l.oncomplete=()=>s.close()}},o.onerror=s=>n(o.error)})}};var Xa=\"/\",Kp=\"tensorflowjs_models\",Z1=\"info\",R4=\"model_topology\",F4=\"weight_specs\",O4=\"weight_data\",P4=\"model_metadata\";function J1(r){return{info:[Kp,r,Z1].join(Xa),topology:[Kp,r,R4].join(Xa),weightSpecs:[Kp,r,F4].join(Xa),weightData:[Kp,r,O4].join(Xa),modelMetadata:[Kp,r,P4].join(Xa)}}function Q1(r){for(let t of Object.values(r))window.localStorage.removeItem(t)}function L4(r){let t=r.split(Xa);if(t.length<3)throw new Error(`Invalid key format: ${r}`);return t.slice(1,t.length-1).join(Xa)}function M4(r){return r.startsWith(ki.URL_SCHEME)?r.slice(ki.URL_SCHEME.length):r}var ki=class{constructor(t){if(!z().getBool(\"IS_BROWSER\")||typeof window==\"undefined\"||typeof window.localStorage==\"undefined\")throw new Error(\"The current environment does not support local storage.\");if(this.LS=window.localStorage,t==null||!t)throw new Error(\"For local storage, modelPath must not be null, undefined or empty.\");this.modelPath=t,this.keys=J1(this.modelPath)}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserLocalStorage.save() does not support saving model topology in binary formats yet.\");{let e=JSON.stringify(t.modelTopology),n=JSON.stringify(t.weightSpecs),o=Ni(t);try{this.LS.setItem(this.keys.info,JSON.stringify(o)),this.LS.setItem(this.keys.topology,e),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,W1(t.weightData));let s={format:t.format,generatedBy:t.generatedBy,convertedBy:t.convertedBy,signature:t.signature!=null?t.signature:void 0,userDefinedMetadata:t.userDefinedMetadata!=null?t.userDefinedMetadata:void 0,modelInitializer:t.modelInitializer!=null?t.modelInitializer:void 0,initializerSignature:t.initializerSignature!=null?t.initializerSignature:void 0,trainingConfig:t.trainingConfig!=null?t.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(s)),{modelArtifactsInfo:o}}catch(s){throw Q1(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${o.modelTopologyBytes}, weightSpecsBytes=${o.weightSpecsBytes}, weightDataBytes=${o.weightDataBytes}.`)}}}async load(){let t=JSON.parse(this.LS.getItem(this.keys.info));if(t==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(t.modelTopologyType!==\"JSON\")throw new Error(\"BrowserLocalStorage does not support loading non-JSON model topology yet.\");let e={},n=JSON.parse(this.LS.getItem(this.keys.topology));if(n==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);e.modelTopology=n;let o=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(o==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);e.weightSpecs=o;let s=this.LS.getItem(this.keys.modelMetadata);if(s!=null){let a=JSON.parse(s);e.format=a.format,e.generatedBy=a.generatedBy,e.convertedBy=a.convertedBy,a.signature!=null&&(e.signature=a.signature),a.userDefinedMetadata!=null&&(e.userDefinedMetadata=a.userDefinedMetadata),a.modelInitializer!=null&&(e.modelInitializer=a.modelInitializer),a.initializerSignature!=null&&(e.initializerSignature=a.initializerSignature),a.trainingConfig!=null&&(e.trainingConfig=a.trainingConfig)}let i=this.LS.getItem(this.keys.weightData);if(i==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return e.weightData=U1(i),e}};ki.URL_SCHEME=\"localstorage://\";var tE=r=>z().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(ki.URL_SCHEME)?z4(r.slice(ki.URL_SCHEME.length)):null;Ce.registerSaveRouter(tE);Ce.registerLoadRouter(tE);function z4(r){return new ki(r)}var Yg=class{constructor(){E(z().getBool(\"IS_BROWSER\"),()=>\"Current environment is not a web browser\"),E(typeof window==\"undefined\"||typeof window.localStorage!=\"undefined\",()=>\"Current browser does not appear to support localStorage\"),this.LS=window.localStorage}async listModels(){let t={},e=Kp+Xa,n=Xa+Z1;for(let o=0;o\"scheme must not be undefined or null.\"),t.endsWith(jp)&&(t=t.slice(0,t.indexOf(jp))),E(t.length>0,()=>\"scheme must not be an empty string.\");let n=Er.getInstance();E(n.managers[t]==null,()=>`A model store manager is already registered for scheme '${t}'.`),n.managers[t]=e}static getManager(t){let e=Er.getInstance().managers[t];if(e==null)throw new Error(`Cannot find model manager for scheme '${t}'`);return e}static getSchemes(){return Object.keys(Er.getInstance().managers)}};function Zg(r){if(r.indexOf(jp)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Er.getSchemes().join(\",\")}`);return{scheme:r.split(jp)[0],path:r.split(jp)[1]}}async function eE(r,t,e=!1){E(r!==t,()=>`Old path and new path are the same: '${r}'`);let n=Ce.getLoadHandlers(r);E(n.length>0,()=>`Copying failed because no load handler is found for source URL ${r}.`),E(n.length<2,()=>`Copying failed because more than one (${n.length}) load handlers for source URL ${r}.`);let o=n[0],s=Ce.getSaveHandlers(t);E(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),E(s.length<2,()=>`Copying failed because more than one (${n.length}) save handlers for destination URL ${t}.`);let i=s[0],a=Zg(r).scheme,u=Zg(r).path,l=a===Zg(r).scheme,c=await o.load();e&&l&&await Er.getManager(a).removeModel(u);let p=await i.save(c);return e&&!l&&await Er.getManager(a).removeModel(u),p.modelArtifactsInfo}async function rE(){let r=Er.getSchemes(),t={};for(let e of r){let n=await Er.getManager(e).listModels();for(let o in n){let s=e+jp+o;t[s]=n[o]}}return t}async function nE(r){let t=Zg(r);return Er.getManager(t.scheme).removeModel(t.path)}async function oE(r,t){return eE(r,t,!1)}async function sE(r,t){return eE(r,t,!0)}var F0=class{constructor(){this.messageName=\"setTimeoutCustom\",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(t,e){return fetch(t,e)}now(){return performance.now()}encode(t,e){if(e!==\"utf-8\"&&e!==\"utf8\")throw new Error(`Browser's encoder only supports utf-8, but got ${e}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(t)}decode(t,e){return new TextDecoder(e).decode(t)}setTimeoutCustom(t,e){if(typeof window==\"undefined\"||!z().getBool(\"USE_SETTIMEOUTCUSTOM\")){setTimeout(t,e);return}this.functionRefs.push(t),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},\"*\")},e),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener(\"message\",n=>{if(n.source===window&&n.data.name===this.messageName){n.stopPropagation();let o=this.functionRefs[n.data.index];o(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}},!0))}};if(z().get(\"IS_BROWSER\")){z().setPlatform(\"browser\",new F0);try{Er.registerManager(ki.URL_SCHEME,new Yg)}catch(r){}try{Er.registerManager(Ti.URL_SCHEME,new Xg)}catch(r){}}var B4={importFetch:()=>iE()},O0;var P0=class{constructor(){this.util=aE(),this.textEncoder=new this.util.TextEncoder}fetch(t,e){return z().global.fetch!=null?z().global.fetch(t,e):(O0==null&&(O0=B4.importFetch()),O0(t,e))}now(){let t=process.hrtime();return t[0]*1e3+t[1]/1e6}encode(t,e){if(e!==\"utf-8\"&&e!==\"utf8\")throw new Error(`Node built-in encoder only supports utf-8, but got ${e}`);return this.textEncoder.encode(t)}decode(t,e){return t.length===0?\"\":new this.util.TextDecoder(e).decode(t)}};z().get(\"IS_NODE\")&&!z().get(\"IS_BROWSER\")&&z().setPlatform(\"node\",new P0);function wt(r,t=\"float32\",e){return t=t||\"float32\",Ud(r),new pe(r,t,e)}function V4(r,t){let e=I(r,\"x\",\"cast\");if(!o0(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t===\"string\"&&e.dtype!==\"string\"||t!==\"string\"&&e.dtype===\"string\")throw new Error(\"Only strings can be casted to strings\");let n={x:e},o={dtype:t};return k.runKernel(lo,n,o)}var J=T({cast_:V4});function G4(r){let e={x:I(r,\"x\",\"clone\",\"string_or_numeric\")};return k.runKernel(co,e)}var sn=T({clone_:G4});function Jg(r,t=!1){console.log(r.toString(t))}v0();var W4={buffer:wt,cast:J,clone:sn,print:Jg};P1(W4);var _r={};Wt(_r,{browserFiles:()=>uE,browserHTTPRequest:()=>mE,concatenateArrayBuffers:()=>Hp,copyModel:()=>oE,decodeWeights:()=>qg,encodeWeights:()=>G1,fromMemory:()=>fE,fromMemorySync:()=>G0,getLoadHandlers:()=>j1,getModelArtifactsForJSON:()=>qp,getModelArtifactsForJSONSync:()=>A0,getModelArtifactsInfoForJSON:()=>Ni,getSaveHandlers:()=>K1,getWeightSpecs:()=>jg,http:()=>tx,isHTTPScheme:()=>Qg,listModels:()=>rE,loadWeights:()=>cE,moveModel:()=>sE,registerLoadRouter:()=>q1,registerSaveRouter:()=>H1,removeModel:()=>nE,weightsLoaderFactory:()=>B0,withSaveHandler:()=>dE,withSaveHandlerSync:()=>hE});var U4=\"model\",H4=\".json\",q4=\".weights.bin\";function lE(r){return new Promise(t=>setTimeout(t)).then(r)}var Ya=class{constructor(t){if(!z().getBool(\"IS_BROWSER\"))throw new Error(\"browserDownloads() cannot proceed because the current environment is not a browser.\");t.startsWith(Ya.URL_SCHEME)&&(t=t.slice(Ya.URL_SCHEME.length)),(t==null||t.length===0)&&(t=U4),this.modelJsonFileName=t+H4,this.weightDataFileName=t+q4}async save(t){if(typeof document==\"undefined\")throw new Error(\"Browser downloads are not supported in this environment since `document` is not present\");let e=window.URL.createObjectURL(new Blob([t.weightData],{type:\"application/octet-stream\"}));if(t.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserDownloads.save() does not support saving model topology in binary formats yet.\");{let n=[{paths:[\"./\"+this.weightDataFileName],weights:t.weightSpecs}],o=Kg(t,n),s=window.URL.createObjectURL(new Blob([JSON.stringify(o)],{type:\"application/json\"})),i=this.modelJsonAnchor==null?document.createElement(\"a\"):this.modelJsonAnchor;if(i.download=this.modelJsonFileName,i.href=s,await lE(()=>i.dispatchEvent(new MouseEvent(\"click\"))),t.weightData!=null){let a=this.weightDataAnchor==null?document.createElement(\"a\"):this.weightDataAnchor;a.download=this.weightDataFileName,a.href=e,await lE(()=>a.dispatchEvent(new MouseEvent(\"click\")))}return{modelArtifactsInfo:Ni(t)}}}};Ya.URL_SCHEME=\"downloads://\";var L0=class{constructor(t){if(t==null||t.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${t}`);this.jsonFile=t[0],this.weightsFiles=t.slice(1)}async load(){return new Promise((t,e)=>{let n=new FileReader;n.onload=o=>{let s=JSON.parse(o.target.result),i=s.modelTopology;if(i==null){e(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(s.weightsManifest==null){e(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){t({modelTopology:i});return}let u=qp(s,l=>this.loadWeights(l));t(u)},n.onerror=o=>e(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)})}loadWeights(t){let e=[],n=[];for(let i of t)e.push(...i.weights),n.push(...i.paths);let o=this.checkManifestAndWeightFiles(t),s=n.map(i=>this.loadWeightsFile(i,o[i]));return Promise.all(s).then(i=>[e,Hp(i)])}loadWeightsFile(t,e){return new Promise((n,o)=>{let s=new FileReader;s.onload=i=>{let a=i.target.result;n(a)},s.onerror=i=>o(`Failed to weights data from file of path '${t}'.`),s.readAsArrayBuffer(e)})}checkManifestAndWeightFiles(t){let e=[],n=this.weightsFiles.map(s=>_0(s.name)),o={};for(let s of t)s.paths.forEach(i=>{let a=_0(i);if(e.indexOf(a)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${a}'`);if(e.push(a),n.indexOf(a)===-1)throw new Error(`Weight file with basename '${a}' is not provided.`);o[i]=this.weightsFiles[n.indexOf(a)]});if(e.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${e.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return o}},K4=r=>z().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(Ya.URL_SCHEME)?j4(r.slice(Ya.URL_SCHEME.length)):null;Ce.registerSaveRouter(K4);function j4(r=\"model\"){return new Ya(r)}function uE(r){return new L0(r)}function M0(r,t,e,n){i(r),e=e==null?0:e,n=n==null?1:n,a(e,n);let o=0,s=u=>(u.then(l=>{let c=e+ ++o/r.length*(n-e);return t(c),l}),u);function i(u){E(u!=null&&Array.isArray(u)&&u.length>0,()=>\"promises must be a none empty array\")}function a(u,l){E(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${u}`),E(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${l}`),E(l>=u,()=>`startFraction must be no more than endFraction, but got startFraction ${u} and endFraction ${l}`)}return Promise.all(r.map(s))}async function z0(r,t){t==null&&(t={});let e=t.fetchFunc==null?z().platform.fetch:t.fetchFunc,n=r.map(p=>e(p,t.requestInit,{isBinary:!0})),o=0,s=.5,a=(t.onProgress==null?await Promise.all(n):await M0(n,t.onProgress,o,s)).map(p=>p.arrayBuffer()),u=.5,l=1;return t.onProgress==null?await Promise.all(a):await M0(a,t.onProgress,u,l)}async function cE(r,t=\"\",e,n){return B0(i=>z0(i,{requestInit:n}))(r,t,e)}function B0(r){return async(t,e=\"\",n)=>{let o=t.map(()=>!1),s={},i=n!=null?n.map(()=>!1):[],a=[];if(t.forEach((f,d)=>{let h=0;f.weights.forEach(g=>{let x=\"quantization\"in g?g.quantization.dtype:g.dtype,b=oh[x]*Jt(g.shape),w=()=>{o[d]=!0,s[d]==null&&(s[d]=[]),s[d].push({manifestEntry:g,groupOffset:h,sizeBytes:b})};n!=null?n.forEach((C,N)=>{C===g.name&&(w(),i[N]=!0)}):w(),a.push(g.name),h+=b})}),!i.every(f=>f)){let f=n.filter((d,h)=>!i[h]);throw new Error(`Could not find weights in manifest with names: ${f.join(\", \")}. \nManifest JSON has weights with names: ${a.join(\", \")}.`)}let u=o.reduce((f,d,h)=>(d&&f.push(h),f),[]),l=[];u.forEach(f=>{t[f].paths.forEach(d=>{let h=e+(e.endsWith(\"/\")?\"\":\"/\")+d;l.push(h)})});let c=await r(l),p={},m=0;return u.forEach(f=>{let d=t[f].paths.length,h=0;for(let C=0;C{let N=g.slice(C.groupOffset,C.groupOffset+C.sizeBytes),_=qg(N,[C.manifestEntry]);for(let A in _)p[A]=_[A]}),m+=d}),p}}var X4=\"application/octet-stream\",Y4=\"application/json\",sh=class{constructor(t,e){if(this.DEFAULT_METHOD=\"POST\",e==null&&(e={}),this.weightPathPrefix=e.weightPathPrefix,this.onProgress=e.onProgress,this.weightUrlConverter=e.weightUrlConverter,e.fetchFunc!=null?(E(typeof e.fetchFunc==\"function\",()=>\"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)\"),this.fetch=e.fetchFunc):this.fetch=z().platform.fetch,E(t!=null&&t.length>0,()=>\"URL path for http must not be null, undefined or empty.\"),Array.isArray(t)&&E(t.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${t.length}).`),this.path=t,e.requestInit!=null&&e.requestInit.body!=null)throw new Error(\"requestInit is expected to have no pre-existing body, but has one.\");this.requestInit=e.requestInit||{}}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.\");let e=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);e.body=new FormData;let n=[{paths:[\"./model.weights.bin\"],weights:t.weightSpecs}],o=Kg(t,n);e.body.append(\"model.json\",new Blob([JSON.stringify(o)],{type:Y4}),\"model.json\"),t.weightData!=null&&e.body.append(\"model.weights.bin\",new Blob([t.weightData],{type:X4}),\"model.weights.bin\");let s=await this.fetch(this.path,e);if(s.ok)return{modelArtifactsInfo:Ni(t),responses:[s]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${s.status}.`)}async load(){let t=await this.fetch(this.path,this.requestInit);if(!t.ok)throw new Error(`Request to ${this.path} failed with status code ${t.status}. Please verify this URL points to the model JSON of the model to load.`);let e;try{e=await t.json()}catch(s){let i=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(\".pb\")?i+=\" 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.\":i+=\" Please make sure the server is serving valid JSON for this request.\",new Error(i)}let n=e.modelTopology,o=e.weightsManifest;if(n==null&&o==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return qp(e,s=>this.loadWeights(s))}async loadWeights(t){let e=Array.isArray(this.path)?this.path[1]:this.path,[n,o]=Z4(e),s=this.weightPathPrefix||n,i=jg(t),a=[],u=[];for(let c of t)for(let p of c.paths)this.weightUrlConverter!=null?u.push(this.weightUrlConverter(p)):a.push(s+p+o);this.weightUrlConverter&&a.push(...await Promise.all(u));let l=await z0(a,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[i,Hp(l)]}};sh.URL_SCHEME_REGEX=/^https?:\\/\\//;function Z4(r){let t=r.lastIndexOf(\"/\"),e=r.lastIndexOf(\"?\"),n=r.substring(0,t),o=e>t?r.substring(e):\"\";return[n+\"/\",o]}function Qg(r){return r.match(sh.URL_SCHEME_REGEX)!=null}var pE=(r,t)=>{if(typeof fetch==\"undefined\"&&(t==null||t.fetchFunc==null))return null;{let e=!0;if(Array.isArray(r)?e=r.every(n=>Qg(n)):e=Qg(r),e)return tx(r,t)}return null};Ce.registerSaveRouter(pE);Ce.registerLoadRouter(pE);function tx(r,t){return new sh(r,t)}function mE(r,t){return tx(r,t)}var ih=class{constructor(t){this.modelArtifacts=t}load(){return this.modelArtifacts}},ex=class{constructor(t){this.saveHandler=t}save(t){return this.saveHandler(t)}},V0=class{constructor(t){t.load&&(this.load=()=>Promise.resolve(t.load())),t.save&&(this.save=e=>Promise.resolve(t.save(e)))}};function fE(r,t,e,n){let o=arguments;return new V0(G0(...o))}function G0(r,t,e,n){return arguments.length===1?r.modelTopology!=null||r.weightSpecs!=null?new ih(r):(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 ih({modelTopology:r})):(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 ih({modelTopology:r,weightSpecs:t,weightData:e,trainingConfig:n}))}function dE(r){return new ex(r)}function hE(r){return new ex(r)}var yE={};Wt(yE,{confusionMatrix:()=>xE});function J4(r,t,e=!1,n=!1){let o=I(r,\"a\",\"matMul\"),s=I(t,\"b\",\"matMul\");[o,s]=Ut(o,s);let i={a:o,b:s},a={transposeA:e,transposeB:n};return k.runKernel(Ho,i,a)}var Lt=T({matMul_:J4});function Q4(r,t,e=1,n=0,o=\"int32\"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let i={indices:I(r,\"indices\",\"oneHot\",\"int32\")},a={dtype:o,depth:t,onValue:e,offValue:n};return k.runKernel(gs,i,a)}var Ei=T({oneHot_:Q4});function dpt(){z().set(\"PROD\",!0)}function hpt(){z().set(\"DEBUG\",!0)}function gpt(){z().set(\"DEPRECATION_WARNINGS_ENABLED\",!1),console.warn(\"TensorFlow.js deprecation warnings have been disabled.\")}function W0(r){z().getBool(\"DEPRECATION_WARNINGS_ENABLED\")&&console.warn(r+\" You can disable deprecation warnings with tf.disableDeprecationWarnings().\")}L1(W0);function xpt(){k.disposeVariables()}function Pn(){return k}function ah(){return k.memory()}function ypt(r){return k.profile(r)}function B(r,t){return k.tidy(r,t)}function vt(r){nh(r).forEach(e=>e.dispose())}function De(r){return k.keep(r)}function bpt(r){return k.time(r)}function tH(r){return k.setBackend(r)}function wpt(){return k.ready()}function Cpt(){return k.backendName}function Ipt(r){k.removeBackend(r)}function Spt(r){return k.findBackend(r)}function vpt(r){return k.findBackendFactory(r)}function Xp(r,t,e=1){return k.registerBackend(r,t,e)}function gE(){return k.backend}function Npt(r,t){z().setPlatform(r,t)}function eH(r){let e={input:I(r,\"input\",\"imag\")};return k.runKernel(Sp,e)}var Xl=T({imag_:eH});function rH(r){let e={x:I(r,\"x\",\"neg\")};return k.runKernel(pi,e)}var Ht=T({neg_:rH});function nH(r){let e={input:I(r,\"input\",\"real\")};return k.runKernel(Rp,e)}var Za=T({real_:nH});function oH(r,t,e){let n=I(r,\"x\",\"transpose\");if(t==null&&(t=n.shape.map((i,a)=>a).reverse()),E(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(i=>{E(i>=0&&i`All entries in 'perm' must be between 0 and ${n.rank-1} but got ${t}`)}),n.rank<=1)return n.clone();let o={x:n},s={perm:t};return n.dtype===\"complex64\"?B(()=>{let i=Za(n),a=Xl(n);return i=k.runKernel(Qn,{x:i},s),a=k.runKernel(Qn,{x:a},s),e&&(a=Ht(a)),wn(i,a)}):k.runKernel(Qn,o,s)}var Ot=T({transpose_:oH});function sH(r,t,e){let n=I(r,\"labels\",\"confusionMatrix\"),o=I(t,\"predictions\",\"confusionMatrix\");E(e==null||e>0&&Number.isInteger(e),()=>`If provided, numClasses must be a positive integer, but got ${e}`),E(n.rank===1,()=>`Expected the rank of labels to be 1, but got ${n.rank}`),E(o.rank===1,()=>`Expected the rank of predictions to be 1, but got ${o.rank}`),E(n.shape[0]===o.shape[0],()=>`Mismatch in the number of examples: ${n.shape[0]} vs. ${o.shape[0]}. Labels and predictions should have the same number of elements.`),E(e>0&&Number.isInteger(e),()=>`numClasses is required to be a positive integer, but got ${e}`);let s=Ei(J(n,\"int32\"),e),i=Ei(J(o,\"int32\"),e),a=Ot(s),u=Lt(a,i);return J(u,\"int32\")}var xE=T({confusionMatrix_:sH});var Vr={};Wt(Vr,{assertAndGetBroadcastShape:()=>Pt,getBroadcastDims:()=>bE,getReductionAxes:()=>ge});function bE(r,t){let e=r.length,n=[];for(let o=0;o1&&i===1&&n.unshift(s)}return n}function ge(r,t){let e=[];for(let n=0;n1)&&e.unshift(s)}return e}function Pt(r,t){let e=[],n=Math.max(r.length,t.length);for(let o=0;omH,fromPixelsAsync:()=>cH,toPixels:()=>pH});function rx(r,t,e){if(Yn(r),t!=null&&t.length!==3)throw new Error(\"tensor3d() requires shape to have three numbers\");let n=Br(r,e);if(n.length!==3&&n.length!==1)throw new Error(\"tensor3d() requires values to be number[][][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor3d() requires shape to be provided when `values` are a flat array\");return on(r,t,n,e)}var Hu;function wE(r,t=3){if(t>4)throw new Error(\"Cannot construct Tensor with more than 4 channels from pixels.\");if(r==null)throw new Error(\"pixels passed to tf.browser.fromPixels() can not be null\");let e=!1,n=!1,o=!1,s=!1,i=!1,a=!1;if(r.data instanceof Uint8Array)e=!0;else if(typeof ImageData!=\"undefined\"&&r instanceof ImageData)n=!0;else if(typeof HTMLVideoElement!=\"undefined\"&&r instanceof HTMLVideoElement)o=!0;else if(typeof HTMLImageElement!=\"undefined\"&&r instanceof HTMLImageElement)s=!0;else if(r.getContext!=null)i=!0;else if(typeof ImageBitmap!=\"undefined\"&&r instanceof ImageBitmap)a=!0;else 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 ${r.constructor.name}`);if(Jd(Yd,k.backendName)!=null){let d={pixels:r},h={numChannels:t};return k.runKernel(Yd,d,h)}let[l,c]=o?[r.videoWidth,r.videoHeight]:[r.width,r.height],p;if(i)p=r.getContext(\"2d\").getImageData(0,0,l,c).data;else if(n||e)p=r.data;else if(s||o||a){if(Hu==null)if(typeof document==\"undefined\")if(typeof OffscreenCanvas!=\"undefined\"&&typeof OffscreenCanvasRenderingContext2D!=\"undefined\")Hu=new OffscreenCanvas(1,1).getContext(\"2d\");else throw new Error(\"Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.\");else Hu=document.createElement(\"canvas\").getContext(\"2d\",{willReadFrequently:!0});Hu.canvas.width=l,Hu.canvas.height=c,Hu.drawImage(r,0,0,l,c),p=Hu.getImageData(0,0,l,c).data}let m;if(t===4)m=new Int32Array(p);else{let d=l*c;m=new Int32Array(d*t);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(e.dtype!==\"float32\"&&e.dtype!==\"int32\")throw new Error(`Unsupported type for toPixels: ${e.dtype}. Please use float32 or int32 tensors.`);let i=await e.data(),a=e.dtype===\"float32\"?255:1,u=new Uint8ClampedArray(o*n*4);for(let l=0;l1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${f}.`)}else if(e.dtype===\"int32\"&&(f<0||f>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${f}.`);s===1?(c[0]=f*a,c[1]=f*a,c[2]=f*a):c[m]=f*a}let p=l*4;u[p+0]=Math.round(c[0]),u[p+1]=Math.round(c[1]),u[p+2]=Math.round(c[2]),u[p+3]=Math.round(c[3])}if(t!=null){t.width=o,t.height=n;let l=t.getContext(\"2d\"),c=new ImageData(u,o,n);l.putImageData(c,0,0)}return e!==r&&e.dispose(),u}var mH=T({fromPixels_:wE});var ox={};Wt(ox,{prepareAndValidate:()=>CE});function CE(r,t){let e=r.shape.length,n=t.shape.length;if(e<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${e}.`);if(n<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${n}.`);if(t.dtype!==\"int32\")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[n-1]>e)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[n-1]} vs. ${e}`);if(Jt(r.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${r.shape}.`);let o=t.shape,s=o[o.length-1],i=1;for(let p=0;pp/l),1].slice(0,s);return[u,i,l,c]}var lh={};Wt(lh,{calculateShapes:()=>IE,validateInput:()=>sx,validateUpdateShape:()=>U0});function U0(r,t,e){let n=t.rank>1?t.shape[t.rank-1]:1,o=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${e.shape}, indices.shape: ${t.shape}, shape: ${r}, sliceDim: ${n}, and batchDim: ${o}.`;if(e.rank1?t.shape[n-1]:1,s=e.length,i=1;for(let p=o;pdH,computeFlatOffset:()=>bH,computeOutShape:()=>gH,getNormalizedAxes:()=>xH,isSliceContinous:()=>yH,maskToAxes:()=>hH,parseSliceParams:()=>q0,sliceInfo:()=>wH,startForAxis:()=>AE,startIndicesWithElidedDims:()=>kE,stopForAxis:()=>$E,stopIndicesWithElidedDims:()=>EE,stridesForAxis:()=>_E,stridesWithElidedDims:()=>vE});var H0=-2,fH=-1;function dH(r,t,e){let n=r.shape.length;E(n===t.length,()=>`Error in slice${n}D: Length of begin ${t} must match the rank of the array (${n}).`),E(n===e.length,()=>`Error in slice${n}D: Length of size ${e} must match the rank of the array (${n}).`);for(let o=0;o`Error in slice${n}D: begin[${o}] + size[${o}] (${t[o]+e[o]}) would overflow input.shape[${o}] (${r.shape[o]})`)}function hH(r){let t=[],e=0;for(;r>0;)r&1&&t.push(e),r/=2,e++;return t}function gH(r,t,e){let n=[];for(let o=0;o0){let f=t[0],d=e+1;c=kE(i,f,d,n,r),p=EE(a,f,d,o,r),m=vE(s,f,d,r)}else for(let f=0;f-1)s[a]=0;else{let u=NE(t,e,a),l=n[u];r&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{let u=NE(t,e,a),l=n[u];r&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let u=n[o];return i<0&&(i+=u),i=np(0,i,u-1),i}function $E(r,t,e,n,o,s){let i=t[o],a=e[o]||1;(r&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let u=n[o];return i<0&&(i+=u),a>0?i=np(0,i,u):i=np(-1,i,u-1),i}function yH(r,t,e){let n=e.length;for(let o=0;o1){n=o;break}for(let o=n+1;o0||e[o]!==r[o])return!1;return!0}function bH(r,t){let e=r.length>0?r[r.length-1]:1;for(let n=0;n{E(i!==-1,()=>\"slice() does not support negative begin indexing.\")});let s;return e==null?s=new Array(o).fill(-1):typeof e==\"number\"?s=[e,...new Array(o-1).fill(-1)]:e.lengthi>=0?i:(E(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${a}.`),r.shape[a]-n[a])),[n,s]}function wH(r,t,e,n,o,s,i,a,u){let l;if(n==null?(l=new Array(t.length),l.fill(1)):l=n,i!=null&&(i&i-1)!==0)throw new Error(\"Multiple ellipses in slice is not allowed.\");let c=!1,p={dims:l.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:e.slice(),strides:l.slice(),beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};for(let w=0;w0?0:-1,m.strides[w]>0?N:N-1];if(C&&m.strides[w]<=0)throw Error(\"only stride 1 allowed on non-range indexing.\");h=h&&m.strides[w]===1;let $=!!(m.beginMask&1<=N)throw Error(`slice index ${m.begin[w]} of dimension ${w} out of bounds.`)}else m.begin[w]=SE(m.begin[w],0,m.strides[w],N,_,A),m.end[w]=SE(m.end[w],1,m.strides[w],N,_,A);let V=m.strides[w]===1&&m.begin[w]===0&&m.end[w]===N;f=f&&V,d=d&&(w===0&&m.strides[w]===1||V)}else f=f&&m.strides[w]===1&&$,d=d&&(w===0&&m.strides[w]===1||$);let F,P=!1;if(m.beginValid&&m.endValid?(F=m.end[w]-m.begin[w],P=!0):C?(F=1,P=!0):$&&N>=0&&(m.strides[w]<0?F=-N:F=N,P=!0),P){let V;F===0||F<0!=m.strides[w]<0?V=0:V=Math.trunc(F/m.strides[w])+(F%m.strides[w]!==0?1:0),g.push(V)}else g.push(-1)}for(let w=0;w=0?x.push(g[C]):C===H0&&x.push(1)}return{finalShapeSparse:x.filter((w,C)=>m.finalShapeGatherIndices[C]!==H0),finalShape:x,isIdentity:f,sliceDim0:d,isSimpleSlice:h,begin:m.begin,end:m.end,strides:m.strides}}function CH(r,t){t.beginMask=0,t.endMask=0,t.shrinkAxisMask=0;let e=0;t.beginValid=r.begin!=null,t.endValid=r.end!=null,t.begin=new Array(t.dims),t.end=new Array(t.dims),t.strides=new Array(t.dims),t.finalShapeGatherIndices=[],t.finalShapeGatherIndicesSparse=[],t.inputShapeGatherIndicesSparse=new Array(t.dims);for(let n=0;n0?s[t]:s[t+1&1];{let i=r<0?n+r:r;return is[1]?s[1]:i}}var Q={};Wt(Q,{Serializable:()=>uh,SerializationMap:()=>_i,registerClass:()=>Cn});var uh=class{getClassName(){return this.constructor.className}static fromConfig(t,e){return new t(e)}},_i=class{constructor(){this.classNameMap={}}static getMap(){return _i.instance==null&&(_i.instance=new _i),_i.instance}static register(t){_i.getMap().classNameMap[t.className]=[t,t.fromConfig]}};function Cn(r){E(r.className!=null,()=>\"Class being registered does not have the static className property defined.\"),E(typeof r.className==\"string\",()=>\"className is required to be a string, but got type \"+typeof r.className),E(r.className.length>0,()=>\"Class being registered has an empty-string as its className, which is disallowed.\"),_i.register(r)}var OE={};Wt(OE,{TEST_EPSILON_FLOAT16:()=>DE,createVideoElement:()=>EH,encodeStrings:()=>FE,expectArrayBuffersEqual:()=>kH,expectArraysClose:()=>SH,expectArraysEqual:()=>NH,expectNumbersClose:()=>RE,expectPromiseToFail:()=>vH,expectValuesInRange:()=>TH,play:()=>_H,testEpsilon:()=>ix});var IH=.001,DE=.1;function SH(r,t,e){return e==null&&(e=ix()),K0(r,t,(n,o)=>j0(n,o,e))}function ix(){return k.backend.floatPrecision()===32?IH:DE}function K0(r,t,e){let n=!0;if((xr(r)||xr(t))&&(n=!1),xr(r)&&xr(t)&&(n=!0),n){let i=r.constructor.name,a=t.constructor.name;if(i!==a)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${a}`)}if(Array.isArray(r)&&Array.isArray(t)){let i=Br(r),a=Br(t);if(!Dn(i,a))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${a}]`)}let o=xr(r)?r:Bo(r),s=xr(t)?t:Bo(t);if(o.length!==s.length)throw new Error(`Arrays have different lengths actual: ${o.length} vs expected: ${s.length}.\nActual: ${o}.\nExpected: ${s}.`);for(let i=0;it.fail(),()=>t()),typeof expect!=\"undefined\"&&expect().nothing()}function NH(r,t){let e=typeof t==\"string\"||typeof t==\"number\"||typeof t==\"boolean\"?[t]:t;return Vo(r)||Vo(r[0])||Vo(t)||Vo(t[0])?K0(r,e,(n,o)=>n==o):K0(r,t,(n,o)=>j0(n,o,0))}function RE(r,t,e){if(e==null&&(e=ix()),!j0(r,t,e))throw new Error(`Numbers differ: actual === ${r}, expected === ${t}`);typeof expect!=\"undefined\"&&expect().nothing()}function j0(r,t,e){return!isFinite(r)&&!isFinite(t)?!0:!(isNaN(r)||isNaN(t)||Math.abs(r-t)>e)}function TH(r,t,e){for(let n=0;ne)throw new Error(`Value out of range:${r[n]} low: ${t}, high: ${e}`)}function kH(r,t){let e=new Float32Array(r),n=new Float32Array(t);if(e.length!==n.length)throw new Error(`Expected ArrayBuffer to be of length ${n.length}, but it was ${e.length}`);for(let o=0;o{t.addEventListener(\"loadeddata\",n=>e(t)),t.load()})}async function _H(r){await r.play(),\"requestVideoFrameCallback\"in r&&await new Promise(t=>{r.requestVideoFrameCallback(t)})}var PE=\"4.0.0\";function AH(r,t){let e=I(r,\"a\",\"add\"),n=I(t,\"b\",\"add\");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(Zn,o)}var X=T({add_:AH});function $H(r,t){let e=I(r,\"a\",\"floorDiv\"),n=I(t,\"b\",\"floorDiv\");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(ns,o)}var Yp=T({floorDiv_:$H});function DH(r,t){let e=I(r,\"a\",\"div\"),n=I(t,\"b\",\"div\");if([e,n]=Ut(e,n),e.dtype===\"int32\"&&n.dtype===\"int32\")return Yp(e,n);let o={a:e,b:n},s={};return k.runKernel(Qo,o,s)}var pt=T({div_:DH});function RH(r,t){let e=I(r,\"a\",\"mul\"),n=I(t,\"b\",\"mul\");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(hs,o)}var D=T({mul_:RH});function FH(r){let t=I(r,\"x\",\"abs\");if(t.dtype===\"complex64\"){let e={x:t};return k.runKernel(_l,e)}else{let e={x:t};return k.runKernel(ii,e)}}var Ee=T({abs_:FH});function OH(r){let e={x:I(r,\"x\",\"acos\")};return k.runKernel(oa,e)}var ax=T({acos_:OH});function PH(r){let e={x:I(r,\"x\",\"acosh\")};return k.runKernel(sa,e)}var lx=T({acosh_:PH});function LH(r){E(Array.isArray(r),()=>\"The argument passed to tf.addN() must be a list of tensors\"),E(r.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${r.length}`);let t=r.map((o,s)=>I(o,`tensors${s}`,\"addN\")),e=t[0];t.forEach(o=>{if(o.dtype!==e.dtype)throw new Error(\"All tensors passed to tf.addN() must have the same dtype\")}),t.forEach(o=>{if(!Dn(o.shape,e.shape))throw new Error(\"All tensors passed to tf.addN() must have the same shape\")});let n=t;return k.runKernel(Go,n)}var LE=T({addN_:LH});function MH(r,t=null,e=!1){let o={x:I(r,\"x\",\"all\",\"bool\")},s={axis:t,keepDims:e};return k.runKernel(ia,o,s)}var Zp=T({all_:MH});function zH(r,t=null,e=!1){let o={x:I(r,\"x\",\"any\",\"bool\")},s={axis:t,keepDims:e};return k.runKernel(aa,o,s)}var qu=T({any_:zH});function BH(r,t=0){let n={x:I(r,\"x\",\"argMax\")},o={axis:t};return k.runKernel(Wo,n,o)}var Ai=T({argMax_:BH});function VH(r,t=0){let n={x:I(r,\"x\",\"argMin\")},o={axis:t};return k.runKernel(kl,n,o)}var ux=T({argMin_:VH});function GH(r){let e={x:I(r,\"x\",\"asin\")};return k.runKernel(la,e)}var cx=T({asin_:GH});function WH(r){let e={x:I(r,\"x\",\"asinh\")};return k.runKernel(ua,e)}var px=T({asinh_:WH});function UH(r){let e={x:I(r,\"x\",\"atan\")};return k.runKernel(ca,e)}var mx=T({atan_:UH});function HH(r,t){let e=I(r,\"a\",\"atan2\"),n=I(t,\"b\",\"atan2\");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(ma,o)}var fx=T({atan2_:HH});function qH(r){let e={x:I(r,\"x\",\"atanh\")};return k.runKernel(pa,e)}var dx=T({atanh_:qH});function KH(r,t,e,n,o=\"NHWC\",s){let i=r[3],a=[...t,i],u=zE(o);return ju(r,a,e,s,n,null,null,u)}function Y0(r,t,e,n,o,s,i=\"channelsLast\"){let[a,u]=hx(t),l;if(i===\"channelsLast\")l=[a,u,r[3],r[3]];else if(i===\"channelsFirst\")l=[a,u,r[1],r[1]];else throw new Error(`Unknown dataFormat ${i}`);return ju(r,l,e,n,o,s,!1,i)}function jH(r,t,e,n,o,s,i=\"NDHWC\"){let[a,u,l]=X0(t),c,p;if(i===\"NDHWC\")p=\"channelsLast\",c=[a,u,l,r[4],r[4]];else if(i===\"NCDHW\")p=\"channelsFirst\",c=[a,u,l,r[1],r[1]];else throw new Error(`Unknown dataFormat ${i}`);return ME(r,c,e,n,o,!1,p,s)}function ju(r,t,e,n,o,s,i=!1,a=\"channelsLast\"){let[u,l,c,p]=[-1,-1,-1,-1];if(a===\"channelsLast\")[u,l,c,p]=r;else if(a===\"channelsFirst\")[u,p,l,c]=r;else throw new Error(`Unknown dataFormat ${a}`);let[m,f,,d]=t,[h,g]=hx(e),[x,b]=hx(n),w=Jp(m,x),C=Jp(f,b),{padInfo:N,outHeight:_,outWidth:A}=ZH(o,l,c,h,g,w,C,s,a),$=i?d*p:d,F;return a===\"channelsFirst\"?F=[u,$,_,A]:a===\"channelsLast\"&&(F=[u,_,A,$]),{batchSize:u,dataFormat:a,inHeight:l,inWidth:c,inChannels:p,outHeight:_,outWidth:A,outChannels:$,padInfo:N,strideHeight:h,strideWidth:g,filterHeight:m,filterWidth:f,effectiveFilterHeight:w,effectiveFilterWidth:C,dilationHeight:x,dilationWidth:b,inShape:r,outShape:F,filterShape:t}}function ME(r,t,e,n,o,s=!1,i=\"channelsLast\",a){let[u,l,c,p,m]=[-1,-1,-1,-1,-1];if(i===\"channelsLast\")[u,l,c,p,m]=r;else if(i===\"channelsFirst\")[u,m,l,c,p]=r;else throw new Error(`Unknown dataFormat ${i}`);let[f,d,h,,g]=t,[x,b,w]=X0(e),[C,N,_]=X0(n),A=Jp(f,C),$=Jp(d,N),F=Jp(h,_),{padInfo:P,outDepth:V,outHeight:G,outWidth:W}=JH(o,l,c,p,x,b,w,A,$,F,a),q=s?g*m:g,H;return i===\"channelsFirst\"?H=[u,q,V,G,W]:i===\"channelsLast\"&&(H=[u,V,G,W,q]),{batchSize:u,dataFormat:i,inDepth:l,inHeight:c,inWidth:p,inChannels:m,outDepth:V,outHeight:G,outWidth:W,outChannels:q,padInfo:P,strideDepth:x,strideHeight:b,strideWidth:w,filterDepth:f,filterHeight:d,filterWidth:h,effectiveFilterDepth:A,effectiveFilterHeight:$,effectiveFilterWidth:F,dilationDepth:C,dilationHeight:N,dilationWidth:_,inShape:r,outShape:H,filterShape:t}}function XH(r,t,e,n,o){n==null&&(n=Z0(r,t,e));let s=r[0],i=r[1],a=Ku((s-t+2*n)/e+1,o),u=Ku((i-t+2*n)/e+1,o);return[a,u]}function YH(r,t,e,n,o,s){o==null&&(o=Z0(r,t,n));let i=r[0],a=r[1],u=r[2],l=Ku((i-t+2*o)/n+1,s),c=Ku((a-t+2*o)/n+1,s),p=Ku((u-t+2*o)/n+1,s);return[l,c,p,e]}function Z0(r,t,e,n=1){let o=Jp(t,n);return Math.floor((r[0]*(e-1)-e+o)/2)}function hx(r){return typeof r==\"number\"?[r,r,r]:r.length===2?[r[0],r[1],1]:r}function X0(r){return typeof r==\"number\"?[r,r,r]:r}function Jp(r,t){return t<=1?r:r+(r-1)*(t-1)}function ZH(r,t,e,n,o,s,i,a,u){let l,c,p;if(typeof r==\"number\"){l={top:r,bottom:r,left:r,right:r,type:r===0?\"VALID\":\"NUMBER\"};let f=XH([t,e],s,n,r,a);c=f[0],p=f[1]}else if(r===\"same\"){c=Math.ceil(t/n),p=Math.ceil(e/o);let m=Math.max(0,(c-1)*n+s-t),f=Math.max(0,(p-1)*o+i-e),d=Math.floor(m/2),h=m-d,g=Math.floor(f/2),x=f-g;l={top:d,bottom:h,left:g,right:x,type:\"SAME\"}}else if(r===\"valid\")l={top:0,bottom:0,left:0,right:0,type:\"VALID\"},c=Math.ceil((t-s+1)/n),p=Math.ceil((e-i+1)/o);else if(typeof r==\"object\"){let m=u===\"channelsLast\"?r[1][0]:r[2][0],f=u===\"channelsLast\"?r[1][1]:r[2][1],d=u===\"channelsLast\"?r[2][0]:r[3][0],h=u===\"channelsLast\"?r[2][1]:r[3][1];l={top:m,bottom:f,left:d,right:h,type:m===0&&f===0&&d===0&&h===0?\"VALID\":\"EXPLICIT\"},c=Ku((t-s+m+f)/n+1,a),p=Ku((e-i+d+h)/o+1,a)}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:l,outHeight:c,outWidth:p}}function JH(r,t,e,n,o,s,i,a,u,l,c){let p,m,f,d;if(typeof r==\"number\"){p={top:r,bottom:r,left:r,right:r,front:r,back:r,type:r===0?\"VALID\":\"NUMBER\"};let g=YH([t,e,n,1],a,1,o,r,c);m=g[0],f=g[1],d=g[2]}else if(r===\"same\"){m=Math.ceil(t/o),f=Math.ceil(e/s),d=Math.ceil(n/i);let h=(m-1)*o+a-t,g=(f-1)*s+u-e,x=(d-1)*i+l-n,b=Math.floor(h/2),w=h-b,C=Math.floor(g/2),N=g-C,_=Math.floor(x/2),A=x-_;p={top:C,bottom:N,left:_,right:A,front:b,back:w,type:\"SAME\"}}else if(r===\"valid\")p={top:0,bottom:0,left:0,right:0,front:0,back:0,type:\"VALID\"},m=Math.ceil((t-a+1)/o),f=Math.ceil((e-u+1)/s),d=Math.ceil((n-l+1)/i);else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:p,outDepth:m,outHeight:f,outWidth:d}}function Ku(r,t){if(!t)return Math.trunc(r);switch(t){case\"round\":return Math.round(r);case\"ceil\":return Math.ceil(r);case\"floor\":return Math.floor(r);default:throw new Error(`Unknown roundingMode ${t}`)}}function to(r){let[t,e,n]=hx(r);return t===1&&e===1&&n===1}function Ar(r,t){return to(r)||to(t)}function zE(r){if(r===\"NHWC\")return\"channelsLast\";if(r===\"NCHW\")return\"channelsFirst\";throw new Error(`Unknown dataFormat ${r}`)}function Ie(r,t,e){if(e!=null){if(typeof t==\"string\")throw Error(`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t}.`);if(typeof t==\"number\")E(na(t),()=>`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t}.`);else if(typeof t==\"object\")t.forEach(n=>{n.forEach(o=>{E(na(o),()=>`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${o}.`)})});else throw Error(`Error in ${r}: Unknown padding parameter: ${t}`)}}function QH(r,t){let n={x:I(r,\"x\",\"reshape\",\"string_or_numeric\")},o={shape:t};return k.runKernel(di,n,o)}var R=T({reshape_:QH});function tq(r,t,e,n,o){let s=I(r,\"x\",\"avgPool\",\"float32\"),i=1;E(Ar(e,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`);let a=s,u=!1;s.rank===3&&(u=!0,a=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),E(a.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${a.rank}.`),Ie(\"avgPool\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=k.runKernel(Uo,l,c);return p=J(p,s.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Yl=T({avgPool_:tq});function eq(r,t,e,n,o,s=\"NDHWC\"){let i=I(r,\"x\",\"avgPool3d\",\"float32\"),a=i,u=!1;i.rank===4&&(u=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),E(a.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${a.rank}.`),E(s===\"NDHWC\",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Ie(\"avgPool3d\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=k.runKernel(El,l,c);return p=J(p,a.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var gx=T({avgPool3d_:eq});function rq(r,t=0){E(r.length>=1,()=>\"Pass at least one tensor to concat\");let e=ja(r,\"tensors\",\"concat\",\"string_or_numeric\");if(e[0].dtype===\"complex64\"&&e.forEach(s=>{if(s.dtype!==\"complex64\")throw new Error(`Cannot concatenate complex64 tensors with a tensor\n with dtype ${s.dtype}. `)}),e.length===1)return sn(e[0]);let n=e,o={axis:t};return k.runKernel(li,n,o)}var ne=T({concat_:rq});function nq(r){let e={x:I(r,\"x\",\"sigmoid\",\"float32\")};return k.runKernel(_s,e)}var Yr=T({sigmoid_:nq});function oq(r,t,e){let n=I(r,\"x\",\"slice\",\"string_or_numeric\");if(n.rank===0)throw new Error(\"Slicing scalar is not possible\");let o={x:n},s={begin:t,size:e};return k.runKernel(gi,o,s)}var Rt=T({slice_:oq});function sq(r){let e={x:I(r,\"x\",\"tanh\",\"float32\")};return k.runKernel(Ps,e)}var $i=T({tanh_:sq});function iq(r,t,e,n,o,s){let i=I(r,\"forgetBias\",\"basicLSTMCell\"),a=I(t,\"lstmKernel\",\"basicLSTMCell\"),u=I(e,\"lstmBias\",\"basicLSTMCell\"),l=I(n,\"data\",\"basicLSTMCell\"),c=I(o,\"c\",\"basicLSTMCell\"),p=I(s,\"h\",\"basicLSTMCell\"),m=ne([l,p],1),f=Lt(m,a),d=X(f,u),h=d.shape[0],g=d.shape[1]/4,x=[h,g],b=Rt(d,[0,0],x),w=Rt(d,[0,g],x),C=Rt(d,[0,g*2],x),N=Rt(d,[0,g*3],x),_=X(D(Yr(b),$i(w)),D(c,Yr(X(i,C)))),A=D($i(_),Yr(N));return[_,A]}var BE=T({basicLSTMCell_:iq});function aq(r,t,e){let n=I(r,\"x\",\"batchToSpaceND\"),o=t.reduce((a,u)=>a*u);E(n.rank>=1+t.length,()=>`input rank is ${n.rank} but should be > than blockShape.length ${t.length}`),E(e.length===t.length,()=>`crops.length is ${e.length} but should be equal to blockShape.length ${t.length}`),E(n.shape[0]%o===0,()=>`input tensor batch is ${n.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(\" * \")} === ${o}`);let s={x:n},i={blockShape:t,crops:e};return k.runKernel(ai,s,i)}var Zl=T({batchToSpaceND_:aq});function VE(r){let t;return r.rank===0||r.rank===1?t=R(r,[1,1,1,r.size]):r.rank===2?t=R(r,[1,1,r.shape[0],r.shape[1]]):r.rank===3?t=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]):t=r,t}function lq(r,t,e,n,o,s){s==null&&(s=.001);let i=I(r,\"x\",\"batchNorm\"),a=I(t,\"mean\",\"batchNorm\"),u=I(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=I(o,\"scale\",\"batchNorm\"));let c;n!=null&&(c=I(n,\"offset\",\"batchNorm\")),E(a.rank===u.rank,()=>\"Batch normalization gradient requires mean and variance to have equal ranks.\"),E(c==null||a.rank===c.rank,()=>\"Batch normalization gradient requires mean and offset to have equal ranks.\"),E(l==null||a.rank===l.rank,()=>\"Batch normalization gradient requires mean and scale to have equal ranks.\");let m={x:VE(i),scale:l,offset:c,mean:a,variance:u},f={varianceEpsilon:s},d=k.runKernel(os,m,f);return R(d,i.shape)}var Di=T({batchNorm_:lq});function uq(r,t,e,n,o,s){let i=I(r,\"x\",\"batchNorm\"),a=I(t,\"mean\",\"batchNorm\"),u=I(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=I(o,\"scale\",\"batchNorm\"));let c;return n!=null&&(c=I(n,\"offset\",\"batchNorm\")),E(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),E(a.rank===2||a.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${a.rank}.`),E(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${u.rank}.`),l!=null&&E(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${l.rank}.`),c!=null&&E(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${c.rank}.`),Di(i,a,u,c,l,s)}var xx=T({batchNorm2d_:uq});function cq(r,t,e,n,o,s){let i=I(r,\"x\",\"batchNorm\"),a=I(t,\"mean\",\"batchNorm\"),u=I(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=I(o,\"scale\",\"batchNorm\"));let c;return n!=null&&(c=I(n,\"offset\",\"batchNorm\")),E(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),E(a.rank===3||a.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${a.rank}.`),E(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${u.rank}.`),l!=null&&E(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${l.rank}.`),c!=null&&E(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${c.rank}.`),Di(i,a,u,c,l,s)}var yx=T({batchNorm3d_:cq});function pq(r,t,e,n,o,s){let i=I(r,\"x\",\"batchNorm\"),a=I(t,\"mean\",\"batchNorm\"),u=I(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=I(o,\"scale\",\"batchNorm\"));let c;return n!=null&&(c=I(n,\"offset\",\"batchNorm\")),E(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),E(a.rank===4||a.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${a.rank}.`),E(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${u.rank}.`),l!=null&&E(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${l.rank}.`),c!=null&&E(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${c.rank}.`),Di(i,a,u,c,l,s)}var bx=T({batchNorm4d_:pq});function mq(r,t,e){let n=I(r,\"x\",\"bincount\"),o=I(t,\"weights\",\"bincount\");E(n.dtype===\"int32\",()=>`Error in bincount: input dtype must be int32, but got ${n.dtype}`),E(e>=0,()=>`size must be non-negative, but got ${e}.`),E(o.size===n.size||o.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${n.shape}, weights shape: ${o.shape}.`);let s={x:n,weights:o},i={size:e};return k.runKernel(up,s,i)}var wx=T({bincount_:mq});function fq(r,t){let e=I(r,\"s0\",\"broadcastArgs\",\"int32\"),n=I(t,\"s1\",\"broadcastArgs\",\"int32\");if(e.rank!==1)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${e.rank}`);if(n.rank!==1)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${n.rank}`);let o={s0:e,s1:n};return k.runKernel(cp,o)}var GE=T({broadcastArgs_:fq});function dq(r,t){let e=I(r,\"broadcastTo\",\"x\"),n=e.shape;if(t.some(l=>!(l>0)||l%1!==0))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengthe.rank){let l=e.shape.slice();for(;l.length=0;l--)if(o[l]===t[l])s[l]=1;else if(e.shape[l]!==1)throw new Error(`broadcastTo(): [${n}] cannot be broadcast to [${t}].`);if(s.map((l,c)=>l>1?c:-1).filter(l=>l>=0).length===0)return sn(e);let a={x:e},u={reps:s};return k.runKernel(Jn,a,u)}var Ri=T({broadcastTo_:dq});function hq(r){let e={x:I(r,\"x\",\"ceil\",\"float32\")};return k.runKernel(qo,e)}var Cx=T({ceil_:hq});function xo(r,t,e){let n={shape:r,value:t,dtype:e};return k.runKernel(Dl,{},n)}function gq(r,t,e){let n=I(r,\"x\",\"clipByValue\");if(E(t<=e,()=>`Error in clip: min (${t}) must be less than or equal to max (${e}).`),t===e)return xo(n.shape,t,n.dtype);let o={x:n},s={clipValueMin:t,clipValueMax:e};return k.runKernel(uo,o,s)}var Cr=T({clipByValue_:gq});function xq(r){return ne(r,0)}var Ix=T({concat1d_:xq});function yq(r,t){return ne(r,t)}var Sx=T({concat2d_:yq});function bq(r,t){return ne(r,t)}var vx=T({concat3d_:bq});function wq(r,t){return ne(r,t)}var Nx=T({concat4d_:wq});function Cq(r,t,e,n,o=\"NHWC\",s=[1,1],i){let a=I(r,\"x\",\"conv2d\",\"float32\"),u=I(t,\"filter\",\"conv2d\",\"float32\"),l=a,c=!1;a.rank===3&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),E(l.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${l.rank}.`),E(u.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${u.rank}.`),Ie(\"conv2d\",n,i);let p=o===\"NHWC\"?l.shape[3]:l.shape[1];E(p===u.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${u.shape[2]}.`),E(Ar(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=k.runKernel(Ko,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var In=T({conv2d_:Cq});function Iq(r,t,e,n,o=\"NWC\",s=1,i){let a=I(r,\"x\",\"conv1d\"),u=I(t,\"filter\",\"conv1d\"),l=a,c=!1;a.rank===2&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1]])),E(l.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${l.rank}.`),E(u.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${u.rank}.`),Ie(\"conv1d\",n,i),E(l.shape[2]===u.shape[1],()=>`Error in conv1d: depth of input (${l.shape[2]}) must match input depth for filter ${u.shape[1]}.`),E(Ar(e,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${e} and dilation '${s}'`),E(o===\"NWC\",()=>`Error in conv1d: got dataFormat of ${o} but only NWC is currently supported.`);let p=R(u,[1,u.shape[0],u.shape[1],u.shape[2]]),m=R(l,[l.shape[0],1,l.shape[1],l.shape[2]]),g=In(m,p,[1,e],n,\"NHWC\",[1,s],i);return c?R(g,[g.shape[2],g.shape[3]]):R(g,[g.shape[0],g.shape[2],g.shape[3]])}var Qp=T({conv1d_:Iq});function Sq(r,t,e,n,o,s=\"NHWC\",i){E(r.length===t.rank,()=>`Length of inShape (${r.length}) and rank of dy (${t.rank}) must match`);let a=r,u=t,l=!1;t.rank===3&&(l=!0,u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]),a=[1,r[0],r[1],r[2]]),E(a.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${a.length}.`),E(u.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${u.rank}`),E(e.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${e.rank}`);let c=s===\"NHWC\"?a[3]:a[1],p=s===\"NHWC\"?u.shape[3]:u.shape[1];E(c===e.shape[2],()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${e.shape[2]}.`),E(p===e.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${e.shape[3]}.`),Ie(\"conv2dDerInput\",o,i);let m={dy:u,filter:e},f={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,inputShape:a},d=k.runKernel(jo,m,f);return l?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var tm=T({conv2DBackpropInput_:Sq});function vq(r,t,e,n,o,s){let i=I(r,\"x\",\"conv2dTranspose\"),a=I(t,\"filter\",\"conv2dTranspose\");return tm(e,i,a,n,o,\"NHWC\",s)}var em=T({conv2dTranspose_:vq});function Nq(r,t,e,n,o=\"NDHWC\",s=[1,1,1]){let i=I(r,\"x\",\"conv3d\"),a=I(t,\"filter\",\"conv3d\"),u=i,l=!1;i.rank===4&&(l=!0,u=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),E(u.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${u.rank}.`),E(a.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${a.rank}.`),E(u.shape[4]===a.shape[3],()=>`Error in conv3d: depth of input (${u.shape[4]}) must match input depth for filter ${a.shape[3]}.`),E(Ar(e,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),E(o===\"NDHWC\",()=>`Error in conv3d: got dataFormat of ${o} but only NDHWC is currently supported.`);let c={x:u,filter:a},p={strides:e,pad:n,dataFormat:o,dilations:s},m=k.runKernel(Al,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Tx=T({conv3d_:Nq});function Tq(r,t,e,n,o){E(r.length===t.rank,()=>`Length of inShape (${r.length}) and rank of dy (${t.rank}) must match`);let s=r,i=t,a=!1;t.rank===4&&(a=!0,i=R(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,r[0],r[1],r[2],r[3]]);let u=s[4],l=i.shape[4];E(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),E(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),E(e.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${e.rank}`),E(u===e.shape[3],()=>`Error in conv3dDerInput: depth of input (${u}) must match input depth for filter ${e.shape[3]}.`),E(l===e.shape[4],()=>`Error in conv3dDerInput: depth of output (${l}) must match output depth for filter ${e.shape[4]}.`);let c={dy:i,filter:e},p={pad:o,strides:n,inputShape:s},m=k.runKernel(dp,c,p);return a?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var kx=T({conv3DBackpropInput_:Tq});function kq(r,t,e,n,o){let s=I(r,\"x\",\"conv3dTranspose\"),i=I(t,\"filter\",\"conv3dTranspose\");return kx(e,s,i,n,o)}var Ex=T({conv3dTranspose_:kq});function Eq(r){let e={x:I(r,\"x\",\"cos\",\"float32\")};return k.runKernel(Xo,e)}var Jl=T({cos_:Eq});function _q(r){let e={x:I(r,\"x\",\"cosh\",\"float32\")};return k.runKernel(Yo,e)}var rm=T({cosh_:_q});function Aq(r,t=0,e=!1,n=!1){let s={x:I(r,\"x\",\"cumprod\")},i={axis:t,exclusive:e,reverse:n};return k.runKernel(fa,s,i)}var Xu=T({cumprod_:Aq});function $q(r,t=0,e=!1,n=!1){let s={x:I(r,\"x\",\"cumsum\")},i={axis:t,exclusive:e,reverse:n};return k.runKernel(Zo,s,i)}var nm=T({cumsum_:$q});function Dq(r,t,e,n=!1){let o=I(r,\"x\",\"denseBincount\"),s=I(t,\"weights\",\"denseBincount\");E(o.dtype===\"int32\",()=>`Error in denseBincount: input dtype must be int32, but got ${o.dtype}`),E(o.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${o.rank}.`),E(e>=0,()=>`size must be non-negative, but got ${e}.`),E(s.size===o.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${o.shape}, weights shape: ${s.shape}.`);let i={x:o,weights:s},a={size:e,binaryOutput:n};return k.runKernel(hp,i,a)}var ch=T({denseBincount_:Dq});function Rq(r,t,e=\"NHWC\"){let n=I(r,\"x\",\"depthToSpace\",\"float32\"),o=e===\"NHWC\"?n.shape[1]:n.shape[2],s=e===\"NHWC\"?n.shape[2]:n.shape[3],i=e===\"NHWC\"?n.shape[3]:n.shape[1];E(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),E(o*t>=0,()=>`Negative dimension size caused by overflow when multiplying\n ${o} and ${t} for depthToSpace with input shape\n ${n.shape}`),E(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying\n ${s} and ${t} for depthToSpace with input shape\n ${n.shape}`),E(i%(t*t)===0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${n.shape}`);let a={x:n},u={blockSize:t,dataFormat:e};return k.runKernel(ha,a,u)}var _x=T({depthToSpace_:Rq});function Fq(r,t,e,n,o=\"NHWC\",s=[1,1],i){let a=I(r,\"x\",\"depthwiseConv2d\",\"float32\"),u=I(t,\"filter\",\"depthwiseConv2d\",\"float32\"),l=a,c=!1;a.rank===3&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),E(l.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${l.rank}.`),E(u.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${u.rank}.`);let p=o===\"NHWC\"?l.shape[3]:l.shape[1];E(p===u.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${p}) must match the inChannels dimension in filter ${u.shape[2]}.`),Ie(\"depthwiseConv2d\",n,i);let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=k.runKernel(Jo,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Fi=T({depthwiseConv2d_:Fq});function Oq(r){let e={x:I(r,\"x\",\"diag\")};return k.runKernel(yp,e)}var WE=T({diag_:Oq});function Pq(r,t,e,n,o=[1,1],s=\"NHWC\"){let i=I(r,\"x\",\"dilation2d\"),a=I(t,\"filter\",\"dilation2d\");E(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),E(a.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${a.rank}.`),E(s===\"NHWC\",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let u=i,l=!1;i.rank===3&&(u=R(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=!0);let c={x:u,filter:a},p={strides:e,pad:n,dilations:o},m=k.runKernel($l,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Ax=T({dilation2d_:Pq});function Lq(r,t){let e=I(r,\"a\",\"equal\",\"string_or_numeric\"),n=I(t,\"b\",\"equal\",\"string_or_numeric\");[e,n]=Ut(e,n),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(xa,o)}var $r=T({equal_:Lq});function Mq(r,t,e){let n=I(t,\"a\",\"where\"),o=I(e,\"b\",\"where\"),s=I(r,\"condition\",\"where\",\"bool\"),i=Pt(Pt(s.shape,n.shape),o.shape),a=Ri(s,i),u=Ri(n,i),l=Ri(o,i),c={condition:a,t:u,e:l};return k.runKernel(hi,c)}var _e=T({where_:Mq});function zq(r){let e={x:I(r,\"x\",\"zerosLike\")};return k.runKernel(wi,e)}var It=T({zerosLike_:zq});function Bq(r,t){let e=I(r,\"a\",\"div\"),n=I(t,\"b\",\"div\");[e,n]=Ut(e,n);let o=pt(e,n),s=It(o),i=$r(n,s);return _e(i,s,o)}var $x=T({divNoNan_:Bq});function Vq(r,t){let e=I(r,\"t1\",\"dot\"),n=I(t,\"t2\",\"dot\");E((e.rank===1||e.rank===2)&&(n.rank===1||n.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${e.rank} and ${n.rank}.`);let o=e.rank===1?e.size:e.shape[1],s=n.rank===1?n.size:n.shape[0];if(E(o===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${o} and ${s}.`),e.rank===1&&n.rank===1){let i=R(e,[1,-1]),a=R(n,[-1,1]),u=Lt(i,a);return R(u,[])}else if(e.rank===1&&n.rank===2){let i=R(e,[1,-1]),a=R(n,[n.shape[0],n.shape[1]]),u=Lt(i,a);return R(u,[u.size])}else if(e.rank===2&&n.rank===1){let i=R(n,[-1,1]),a=Lt(e,i);return R(a,[a.size])}else{let i=R(n,[n.shape[0],n.shape[1]]);return Lt(e,i)}}var Dx=T({dot_:Vq});function Gq(r,...t){let e=t.map((o,s)=>I(o,`tensors${s}`,\"einsum\")),n={equation:r};return k.runKernel(bp,e,n)}var UE=T({einsum_:Gq});function Wq(r){let e={x:I(r,\"x\",\"elu\",\"float32\")};return k.runKernel(ts,e)}var Oi=T({elu_:Wq});function Uq(r){let t=I(r,\"x\",\"erf\");E(t.dtype===\"int32\"||t.dtype===\"float32\",()=>\"Input dtype must be `int32` or `float32`.\"),t.dtype===\"int32\"&&(t=J(t,\"float32\"));let e={x:t};return k.runKernel(ga,e)}var Rx=T({erf_:Uq});function J0(r,t){for(let e=0;er[s]);return[e,o]}function yo(r,t){let e=t.map(n=>1);return HE(r,e,t)}function Hq(r,t,e){E(J0(t,e),()=>`${r} supports only inner-most axes for now. Got axes ${t} and rank-${e} input.`)}function tv(r,t){if(J0(r,t))return null;let e=[];for(let n=0;ne.push(n)),e}function ph(r){return r.map((t,e)=>[e,t]).sort((t,e)=>t[1]-e[1]).map(t=>t[0])}function qq(r,t){let e=[];for(let n=t-r;n\"Axis must be <= rank of the tensor\");let n={input:e},o={dim:t};return k.runKernel(ui,n,o)}var rr=T({expandDims_:rK});function nK(r){let e={x:I(r,\"x\",\"expm1\")};return k.runKernel(ya,e)}var Ox=T({expm1_:nK});function oK(r,t){let e=I(r,\"x\",\"tile\",\"string_or_numeric\");E(e.rank===t.length,()=>`Error in transpose: rank of input ${e.rank} must match length of reps ${t}.`);let n={x:e},o={reps:t};return k.runKernel(Jn,n,o)}var Dr=T({tile_:oK});function sK(r,t,e,n=\"float32\"){t==null&&(t=r);let o=wt([r,t],n),s=r<=t?r:t;for(let a=0;a`Error in localResponseNormalization: x must be rank 3 or 4 but got\n rank ${s.rank}.`),E(na(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,a=!1;s.rank===3&&(a=!0,i=R(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let u={x:i},l={depthRadius:t,bias:e,alpha:n,beta:o},c=k.runKernel(Rl,u,l);return a?R(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var zx=T({localResponseNormalization_:gK});function xK(r){let e={x:I(r,\"x\",\"log\",\"float32\")};return k.runKernel(as,e)}var Sr=T({log_:xK});function yK(r){let e={x:I(r,\"x\",\"log1p\")};return k.runKernel(ka,e)}var tu=T({log1p_:yK});function bK(r){return E(oi(r),()=>\"The f passed in grad(f) must be a function\"),(t,e)=>{let n=I(t,\"x\",\"tf.grad\",\"string_or_numeric\"),o=e!=null?I(e,\"dy\",\"tf.grad\"):null;return k.tidy(()=>{let{value:s,grads:i}=k.gradients(()=>r(n),[n],o);return o!=null&&$e(s.shape,o.shape,\"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)\"),Vx(i),i[0]})}}function wK(r){return E(oi(r),()=>\"The f passed in grads(f) must be a function\"),(t,e)=>{E(Array.isArray(t),()=>\"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s\");let n=ja(t,\"args\",\"tf.grads\",\"string_or_numeric\"),o=e!=null?I(e,\"dy\",\"tf.grads\"):null;return k.tidy(()=>{let{value:s,grads:i}=k.gradients(()=>r(...n),n,o);return o!=null&&$e(s.shape,o.shape,\"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])\"),Vx(i),i})}}function CK(r){return E(oi(r),()=>\"The f passed in valueAndGrad(f) must be a function\"),(t,e)=>{E(t instanceof Ft,()=>\"The x passed in valueAndGrad(f)(x) must be a tensor\"),E(e==null||e instanceof Ft,()=>\"The dy passed in valueAndGrad(f)(x, dy) must be a tensor\");let{grads:n,value:o}=k.gradients(()=>r(t),[t],e);return Vx(n),{grad:n[0],value:o}}}function IK(r){return E(oi(r),()=>\"The f passed in valueAndGrads(f) must be a function\"),(t,e)=>{E(Array.isArray(t)&&t.every(o=>o instanceof Ft),()=>\"The args passed in valueAndGrads(f)(args) must be array of tensors\"),E(e==null||e instanceof Ft,()=>\"The dy passed in valueAndGrads(f)(args, dy) must be a tensor\");let n=k.gradients(()=>r(...t),t,e);return e!=null&&$e(n.value.shape,e.shape,\"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])\"),Vx(n.grads),n}}function Bx(r,t){E(oi(r),()=>\"The f passed in variableGrads(f) must be a function\"),E(t==null||Array.isArray(t)&&t.every(l=>l instanceof Ka),()=>\"The varList passed in variableGrads(f, varList) must be an array of variables\");let e=t!=null;if(!e){t=[];for(let l in k.registeredVariables)t.push(k.registeredVariables[l])}let n=e?t.filter(l=>!l.trainable):null,o=t.length;t=t.filter(l=>l.trainable),E(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${o} variables is trainable.`);let s=!0,{value:i,grads:a}=k.gradients(r,t,null,s);E(a.some(l=>l!=null),()=>\"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().\"),E(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let u={};return t.forEach((l,c)=>{a[c]!=null&&(u[l.name]=a[c])}),n!=null&&n.forEach(l=>u[l.name]=null),{value:i,grads:u}}function un(r){return k.customGrad(r)}function Vx(r){if(r.filter(e=>e==null).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 SK(r){let e={x:I(r,\"x\",\"softplus\")};return k.runKernel(Va,e)}var zs=T({softplus_:SK});function vK(r){let t=I(r,\"x\",\"logSigmoid\");return un(n=>({value:Ht(zs(Ht(n))),gradFunc:i=>D(i,Yr(Ht(n)))}))(t)}var Gx=T({logSigmoid_:vK});function NK(r,t){let e=I(r,\"a\",\"sub\"),n=I(t,\"b\",\"sub\");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(Fs,o)}var ct=T({sub_:NK});function TK(r,t=-1){let e=I(r,\"logits\",\"logSoftmax\");if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and axis was ${t}`);return un((o,s)=>{let a=Ir(o,t,!0),u=ct(o,a),l=ct(J(u,\"float32\"),Sr(ft(er(u),t,!0)));return s([l]),{value:l,gradFunc:(p,m)=>{let[f]=m,d=!0,h=er(f);return ct(p,D(ft(p,t,d),h))}}})(e)}var sm=T({logSoftmax_:TK});function kK(r,t=null,e=!1){let n=I(r,\"x\",\"logSumExp\"),o=lr(t,n.shape),s=Ir(n,o,!0),i=ct(n,s),a=er(i),u=ft(a,o),l=Sr(u),c=X(R(s,l.shape),l);if(e){let p=yo(c.shape,o);return R(c,p)}return c}var im=T({logSumExp_:kK});function EK(r,t){let e=I(r,\"a\",\"logicalAnd\",\"bool\"),n=I(t,\"b\",\"logicalAnd\",\"bool\");Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Ea,o)}var Rr=T({logicalAnd_:EK});function _K(r){let e={x:I(r,\"x\",\"logicalNot\",\"bool\")};return k.runKernel(_a,e)}var eu=T({logicalNot_:_K});function AK(r,t){let e=I(r,\"a\",\"logicalOr\",\"bool\"),n=I(t,\"b\",\"logicalOr\",\"bool\");Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Aa,o)}var am=T({logicalOr_:AK});function $K(r,t){let e=I(r,\"a\",\"logicalXor\",\"bool\"),n=I(t,\"b\",\"logicalXor\",\"bool\");return Pt(e.shape,n.shape),Rr(am(r,t),eu(Rr(r,t)))}var Wx=T({logicalXor_:$K});var Ux=2147483648;function DK(r,t,e=\"left\"){let n=I(r,\"sortedSequence\",\"searchSorted\"),o=I(t,\"values\",\"searchSorted\"),s=n.shape[n.shape.length-1],i=o.shape[o.shape.length-1],a=R(n,[-1,s]),u=R(o,[-1,i]);if(a.rank<2)throw new Error(\"Sorted input argument must be at least 2-dimensional\");if(a.shape[0]!==u.shape[0])throw new Error(\"Leading dimension of 'sortedSequence' and 'values' must match.\");if(Jt(u.shape)>=Ux)throw new Error(`values tensor size must less than ${Ux}`);if(a.shape[1]>=Ux)throw new Error(`trailing dim_size must less than ${Ux} for int32 output type, was ${a.shape[1]}`);let l={sortedSequence:a,values:u},c={side:e};return k.runKernel(Pp,l,c)}var mh=T({searchSorted_:DK});function jE(r,t){return mh(r,t,\"left\")}function RK(r,t,e,n,o){let s=I(r,\"x\",\"maxPool\"),i=1,a=s,u=!1;s.rank===3&&(u=!0,a=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),E(a.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.rank}.`),E(Ar(e,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`),Ie(\"maxPool\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=k.runKernel(cs,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var ru=T({maxPool_:RK});function FK(r,t=[1,1,1],e,n,o,s=\"NDHWC\"){let i=I(r,\"x\",\"maxPool3d\"),a=i,u=!1;i.rank===4&&(u=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),E(a.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${a.rank}.`),E(s===\"NDHWC\",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Ie(\"maxPool3d\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=k.runKernel(Fl,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Hx=T({maxPool3d_:FK});function OK(r,t,e,n,o=!1){let i={x:I(r,\"x\",\"maxPoolWithArgmax\")},a={filterSize:t,strides:e,pad:n,includeBatchInIndex:o},u=k.runKernel(Ep,i,a);return{result:u[0],indexes:u[1]}}var XE=T({maxPoolWithArgmax_:OK});function PK(r,t){let e=I(r,\"a\",\"maximum\"),n=I(t,\"b\",\"maximum\");[e,n]=Ut(e,n),e.dtype===\"bool\"&&(e=J(e,\"int32\"),n=J(n,\"int32\")),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(us,o)}var Sn=T({maximum_:PK});function LK(r,t=null,e=!1){let o={x:I(r,\"x\",\"mean\")},s={axis:t,keepDims:e};return k.runKernel(ps,o,s)}var ve=T({mean_:LK});function Ne(r,t=\"float32\"){if(t===\"complex64\"){let n=Ne(r,\"float32\"),o=Ne(r,\"float32\");return wn(n,o)}let e=ip(Jt(r),t);return k.makeTensor(e,r,t)}function cr(r,t=\"float32\"){if(t===\"complex64\"){let n=cr(r,\"float32\"),o=Ne(r,\"float32\");return wn(n,o)}let e=Wd(Jt(r),t);return k.makeTensor(e,r,t)}function YE(r,t,{indexing:e=\"xy\"}={}){if(e!==\"xy\"&&e!==\"ij\")throw new TypeError(`${e} is not a valid third argument to meshgrid`);if(r===void 0)return[];let n=I(r,\"x\",\"meshgrid\",r instanceof Ft?r.dtype:\"float32\");if(t===void 0)return[n];let o=I(t,\"y\",\"meshgrid\",t instanceof Ft?t.dtype:\"float32\"),s=Jt(n.shape),i=Jt(o.shape);return e===\"xy\"?(n=R(n,[1,-1]),o=R(o,[-1,1]),[Lt(cr([i,1],n.dtype),n),Lt(o,cr([1,s],o.dtype))]):(n=R(n,[-1,1]),o=R(o,[1,-1]),[Lt(n,cr([1,i],n.dtype)),Lt(cr([s,1],o.dtype),o)])}function MK(r,t){let e=I(r,\"a\",\"minimum\"),n=I(t,\"b\",\"minimum\");[e,n]=Ut(e,n),e.dtype===\"bool\"&&(e=J(e,\"int32\"),n=J(n,\"int32\")),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(fs,o)}var Mi=T({minimum_:MK});function zK(r,t,e){E(e===\"reflect\"||e===\"symmetric\",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${e}.`);let n=I(r,\"x\",\"mirrorPad\");if(n.rank===0)throw new Error(\"mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad\");E(t.length===n.rank,()=>`Padding doesn't match input. Must be ${n.rank}. Got ${t.length}.`);let o=e===\"reflect\"?1:0;for(let a=0;a\"Invalid number of paddings. Must be length of 2 each.\"),E(t[a][0]>=0&&t[a][0]<=n.shape[a]-o&&t[a][1]>=0&&t[a][1]<=n.shape[a]-o,()=>`Padding in dimension ${a} cannot be greater than or equal to ${n.shape[a]-o} or less than 0 for input of shape ${n.shape}`);let s={paddings:t,mode:e},i={x:n};return k.runKernel(ds,i,s)}var qx=T({mirrorPad_:zK});function BK(r,t){let e=I(r,\"a\",\"mod\"),n=I(t,\"b\",\"mod\");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel($a,o)}var Kx=T({mod_:BK});function VK(r,t=null,e=!1){r=I(r,\"x\",\"moments\");let n=lr(t,r.shape),o=ve(r,n,e),s=o.shape;e||(s=yo(o.shape,n));let i=Mt(ct(J(r,\"float32\"),R(o,s))),a=ve(i,n,e);return{mean:o,variance:a}}var Zu=T({moments_:VK});function GK(r,t,e,n){let o=I(t,\"data\",\"multiRNNCell\"),s=ja(e,\"c\",\"multiRNNCell\"),i=ja(n,\"h\",\"multiRNNCell\"),a=o,u=[];for(let p=0;p2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);e=e||Math.random();let u={logits:i===1?R(o,[1,-1]):o},l={numSamples:t,seed:e,normalized:n},c=k.runKernel(_p,u,l);return i===1?R(c,[c.size]):c}var JE=T({multinomial_:WK});function UK(r,t){let e=I(r,\"a\",\"notEqual\",\"string_or_numeric\"),n=I(t,\"b\",\"notEqual\",\"string_or_numeric\");[e,n]=Ut(e,n),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Da,o)}var Bs=T({notEqual_:UK});function HK(r){let e={x:I(r,\"x\",\"onesLike\")};return k.runKernel(mi,e)}var yr=T({onesLike_:HK});function qK(r,t){let e=I(r,\"v1\",\"outerProduct\"),n=I(t,\"v2\",\"outerProduct\");E(e.rank===1&&n.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${e.rank} and ${n.rank}.`);let o=R(e,[-1,1]),s=R(n,[1,-1]);return Lt(o,s)}var QE=T({outerProduct_:qK});function KK(r,t,e=0){let n=I(r,\"x\",\"pad\");if(n.rank===0)throw new Error(\"pad(scalar) is not defined. Pass non-scalar to pad\");let o={paddings:t,constantValue:e},s={x:n};return k.runKernel(xs,s,o)}var cn=T({pad_:KK});function jK(r,t,e=0){return E(t.length===2,()=>\"Invalid number of paddings. Must be length of 2.\"),cn(r,[t],e)}var t_=T({pad1d_:jK});function XK(r,t,e=0){return E(t.length===2&&t[0].length===2&&t[1].length===2,()=>\"Invalid number of paddings. Must be length of 2 each.\"),cn(r,t,e)}var e_=T({pad2d_:XK});function YK(r,t,e=0){return E(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>\"Invalid number of paddings. Must be length of 2 each.\"),cn(r,t,e)}var r_=T({pad3d_:YK});function ZK(r,t,e=0){return E(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>\"Invalid number of paddings. Must be length of 2 each.\"),cn(r,t,e)}var n_=T({pad4d_:ZK});function JK(r,t,e){let n=I(r,\"x\",\"spaceToBatchND\");E(n.rank>=1+t.length,()=>`input rank ${n.rank} should be > than [blockShape] ${t.length}`),E(e.length===t.length,()=>`paddings.shape[0] ${e.length} must be equal to [blockShape] ${t.length}`),E(n.shape.reduce((i,a,u)=>u>0&&u<=t.length?i&&(a+e[u-1][0]+e[u-1][1])%t[u-1]===0:i,!0),()=>`input spatial dimensions ${n.shape.slice(1)} with paddings ${e.toString()} must be divisible by blockShapes ${t.toString()}`);let o={x:n},s={blockShape:t,paddings:e};return k.runKernel(xi,o,s)}var nu=T({spaceToBatchND_:JK});function QK(r,t,e,n,o,s,i){o==null&&(o=[1,1]),s==null&&(s=1),n===0&&(n=\"valid\");let a=I(r,\"x\",\"maxPool\"),u=a,l=!1;a.rank===3&&(l=!0,u=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),E(Ar(s,o),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`);let c=Y0(u.shape,t,s,o,n),p=[c.dilationHeight,c.dilationWidth],m;n===\"same\"?m=ej([c.filterHeight,c.filterWidth],p):m=[[0,0],[0,0]];let f=p[0]===1&&p[1]===1,[d,h]=tj([c.inHeight,c.inWidth],p,m),g=f?n:\"valid\",x=f?u:nu(u,p,d),w=(e===\"avg\"?()=>Yl(x,t,s,g,i):()=>ru(x,t,s,g,i))(),C=f?w:Zl(w,p,h);return l?R(C,[C.shape[1],C.shape[2],C.shape[3]]):C}function tj(r,t,e){let n=e.map(c=>c[0]),o=e.map(c=>c[1]),s=r.concat(n,o),i=t.map((c,p)=>(c-s[p]%c)%c),a=o.map((c,p)=>c+i[p]),u=t.map((c,p)=>[n[p],a[p]]),l=t.map((c,p)=>[0,i[p]]);return[u,l]}function ej(r,t){let n=r.map((i,a)=>i+(i-1)*(t[a]-1)).map(i=>i-1),o=n.map(i=>Math.floor(i/2)),s=n.map((i,a)=>i-o[a]);return n.map((i,a)=>[o[a],s[a]])}var jx=T({pool_:QK});function rj(r,t){let e=I(r,\"x\",\"prelu\"),n=I(t,\"alpha\",\"prelu\"),o={x:e,alpha:n};return k.runKernel(bs,o)}var ou=T({prelu_:rj});function nj(r,t=null,e=!1){let n=I(r,\"x\",\"prod\");n.dtype===\"bool\"&&(n=J(n,\"int32\"));let o={x:n},s={axis:t,keepDims:e};return k.runKernel(ws,o,s)}var Xx=T({prod_:nj});function oj(r,t,e,n){let o=r.map((c,p)=>I(c,`tensors${p}`,\"raggedGather\",\"int32\")),s=I(t,\"paramsDenseValues\",\"raggedGather\"),i=I(e,\"indices\",\"raggedGather\",\"int32\"),a={paramsNestedSplits:o,paramsDenseValues:s,indices:i},u={outputRaggedRank:n},l=k.runKernel(Ap,a,u);return{outputNestedSplits:l.slice(0,l.length-1),outputDenseValues:l[l.length-1]}}var o_=T({raggedGather_:oj});function sj(r,t,e){let n=I(r,\"starts\",\"raggedRange\"),o=I(t,\"limits\",\"raggedRange\",n.dtype),s=I(e,\"deltas\",\"raggedRange\",n.dtype),i={starts:n,limits:o,deltas:s},a=k.runKernel($p,i);return{rtNestedSplits:a[0],rtDenseValues:a[1]}}var s_=T({raggedRange_:sj});function ij(r,t,e,n,o){let s=I(r,\"shape\",\"raggedTensorToTensor\",\"int32\"),i=I(t,\"values\",\"raggedTensorToTensor\"),a=I(e,\"defaultValue\",\"raggedTensorToTensor\",i.dtype),u=n.map((p,m)=>I(p,`tensors${m}`,\"raggedTensorToTensor\",\"int32\")),l={shape:s,values:i,defaultValue:a,rowPartitionTensors:u},c={rowPartitionTypes:o};return k.runKernel(Dp,l,c)}var i_=T({raggedTensorToTensor_:ij});function aj(r,t,e){let n=Jt(r),o=null;if(e==null||e===\"float32\")o=new Float32Array(n);else if(e===\"int32\")o=new Int32Array(n);else if(e===\"bool\")o=new Uint8Array(n);else throw new Error(`Unknown data type ${e}`);for(let s=0;s=1||i===0);let a=Math.sqrt(-2*Math.log(i)/i);t=this.mean+this.stdDev*o*a,e=this.mean+this.stdDev*s*a,(!this.truncated||this.isValidTruncated(t))&&(n=!0)}return(!this.truncated||this.isValidTruncated(e))&&(this.nextVal=this.convertValue(e)),this.convertValue(t)}convertValue(t){return this.dtype==null||this.dtype===\"float32\"?t:Math.round(t)}isValidTruncated(t){return t<=this.upper&&t>=this.lower}},Zx=class{constructor(t,e,n,o){this.alpha=t,this.beta=1/e,this.dtype=n;let s=o||Math.random();this.randu=Qx.alea(s.toString()),this.randn=new Qu(0,1,n,!1,this.randu()),t<1?this.d=t+2/3:this.d=t-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let t,e,n,o,s,i;for(;;){do o=this.randn.nextValue(),i=1+this.c*o;while(i<=0);if(i*=i*i,t=o*o,e=1-.331*t*t,n=.5*t+this.d*(1-i+Math.log(i)),s=this.randu(),sthis.dtype==null||this.dtype===\"float32\",this.min=t,this.range=e-t,this.dtype=n,o==null&&(o=Math.random()),typeof o==\"number\"&&(o=o.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${t} - ${e} <= 1 and dtype is not float`);this.random=Qx.alea(o)}convertValue(t){return this.canReturnFloat()?t:Math.round(t)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function dj(r,t,e=1,n=\"float32\",o){if(e==null&&(e=1),n==null&&(n=\"float32\"),n!==\"float32\"&&n!==\"int32\")throw new Error(`Unsupported data type ${n}`);let s=new Zx(t,e,n,o),i=wt(r,n);for(let a=0;a`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),pr(t,0)}var T_=T({reverse1d_:Ij});function Sj(r,t){let e=I(r,\"x\",\"reverse\");return E(e.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${e.rank}.`),pr(e,t)}var k_=T({reverse2d_:Sj});function vj(r,t){let e=I(r,\"x\",\"reverse\");return E(e.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${e.rank}.`),pr(e,t)}var E_=T({reverse3d_:vj});function Nj(r,t){let e=I(r,\"x\",\"reverse\");return E(e.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${e.rank}.`),pr(e,t)}var __=T({reverse4d_:Nj});function Tj(r){let e={x:I(r,\"x\",\"round\")};return k.runKernel(Ts,e)}var um=T({round_:Tj});function kj(r){let e={x:I(r,\"x\",\"rsqrt\",\"float32\")};return k.runKernel(ks,e)}var cm=T({rsqrt_:kj});function Ej(r){let e={x:I(r,\"x\",\"selu\")};return k.runKernel(Ma,e)}var pm=T({selu_:Ej});function _j(r,t,e,n,o,s=[1,1],i=\"NHWC\"){let a=I(r,\"x\",\"separableConv2d\"),u=I(t,\"depthwiseFilter\",\"separableConv2d\"),l=I(e,\"pointwiseFilter\",\"separableConv2d\"),c=a,p=!1;if(a.rank===3&&(p=!0,c=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),i===\"NCHW\")throw new Error(\"separableConv2d currently does not support dataFormat NCHW; only NHWC is supported\");E(c.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${c.rank}.`),E(u.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${u.rank}.`),E(l.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${u.rank}.`),E(l.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${l.shape[0]}.`),E(l.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${l.shape[1]}.`);let m=u.shape[2],f=u.shape[3];E(l.shape[2]===m*f,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${m*f}, but got ${l.shape[2]}.`);let d=Fi(c,u,n,o,i,s),g=In(d,l,1,\"valid\",i);return p?R(g,[g.shape[1],g.shape[2],g.shape[3]]):g}var mm=T({separableConv2d_:_j});async function Aj(r,t){let e=I(r,\"x\",\"setdiff1d\"),n=I(t,\"y\",\"setdiff1d\");E(e.dtype===n.dtype,()=>`x and y should have the same dtype, but got x (${e.dtype}) and y (${n.dtype}).`),E(e.rank===1,()=>`x should be 1D tensor, but got x (${e.shape}).`),E(n.rank===1,()=>`y should be 1D tensor, but got y (${n.shape}).`);let o=await e.data(),s=await n.data(),i=new Set(s),a=0;for(let c=0;c`slice1d expects a rank-1 tensor, but got a rank-${n.rank} tensor`),Rt(n,[t],[e])}var hm=T({slice1d_:Fj});function Oj(r,t,e){let n=I(r,\"x\",\"slice2d\");return E(n.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`),Rt(n,t,e)}var dh=T({slice2d_:Oj});function Pj(r,t,e){let n=I(r,\"x\",\"slice3d\");return E(n.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`),Rt(n,t,e)}var gm=T({slice3d_:Pj});function Lj(r,t,e){let n=I(r,\"x\",\"slice4d\");return E(n.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`),Rt(n,t,e)}var ec=T({slice4d_:Lj});function Mj(r,t=-1){let e=I(r,\"logits\",\"softmax\",\"float32\");if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and dim was ${t}`);let n={logits:e},o={dim:t};return k.runKernel(Ds,n,o)}var iu=T({softmax_:Mj});function zj(r){E(r.dtype===\"complex64\",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${r.dtype}.`);let t={input:r};return k.runKernel(Cp,t)}var au=T({fft_:zj});function Bj(r){E(r.dtype===\"complex64\",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${r.dtype}.`);let t={input:r};return k.runKernel(Ip,t)}var tl=T({ifft_:Bj});function Vj(r){let t=r.shape[r.shape.length-1],e=r.size/t,n;if(t<=2){let o=R(r,[e,t]);n=tl(o)}else{let o=[e,2*(t-1)],s=R(Za(r),[e,t]),i=R(Xl(r),[e,t]),a=pr(Rt(s,[0,1],[e,t-2]),1),u=D(pr(Rt(i,[0,1],[e,t-2]),1),mt(-1)),l=ne([s,a],1),c=ne([i,u],1),p=R(wn(l,c),[o[0],o[1]]);n=tl(p)}if(n=Za(n),r.rank===3&&r.shape[0]!==0){let o=n,s=r.shape[0];n=R(n,[s,n.shape[0]/s,n.shape[1]]),o.dispose()}return n}var xm=T({irfft_:Vj});function Gj(r,t,e=0){let o={x:I(r,\"x\",\"split\")},s={numOrSizeSplits:t,axis:e};return k.runKernel(yi,o,s)}var mr=T({split_:Gj});function Wj(r,t){E(r.dtype===\"float32\",()=>`The dtype for rfft() must be real value but got ${r.dtype}`);let e=r.shape[r.shape.length-1],n=r.size/e,o;if(t!=null&&t0),h=r.shape.map(g=>g);h[r.shape.length-1]=t,o=Rt(r,d,h),e=t}else if(t!=null&&t>e){let d=r.shape.map(h=>h);d[r.shape.length-1]=t-e,o=ne([r,Ne(d)],r.shape.length-1),e=t}else o=r;let s=It(o),i=R(wn(o,s),[n,e]),a=au(i),u=Math.floor(e/2)+1,l=Za(a),c=Xl(a),p=mr(l,[u,e-u],l.shape.length-1),m=mr(c,[u,e-u],c.shape.length-1),f=o.shape.slice();return f[o.shape.length-1]=u,R(wn(p[0],m[0]),f)}var lu=T({rfft_:Wj});function Uj(r,t){let e=I(r,\"a\",\"squaredDifference\"),n=I(t,\"b\",\"squaredDifference\");[e,n]=Ut(e,n),Pt(e.shape,n.shape);let o={a:e,b:n},s={};return k.runKernel(Rs,o,s)}var ym=T({squaredDifference_:Uj});function Hj(r,t){let e=I(r,\"x\",\"squeeze\",\"string_or_numeric\");return R(e,t0(e.shape,t).newShape)}var Mn=T({squeeze_:Hj});function qj(r,t=0){let e=ja(r,\"tensors\",\"stack\",\"string_or_numeric\");E(e.length>=1,()=>\"Pass at least one tensor to tf.stack\"),e.length>0&&E(t<=e[0].rank,()=>\"Axis must be <= rank of the tensor\");let n=e,o={axis:t};return k.runKernel(fi,n,o)}var nr=T({stack_:qj});function Kj(r,t=0){let n={x:I(r,\"x\",\"step\")},o={alpha:t};return k.runKernel(po,n,o)}var bo=T({step_:Kj});function jj(r,t,e,n,o=0,s=0,i=0,a=0,u=0){let c={x:I(r,\"x\",\"stridedSlice\",\"string_or_numeric\")},p={begin:t,end:e,strides:n,beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};return k.runKernel(Wa,c,p)}var ry=T({stridedSlice_:jj});function Xj(r){let e={x:I(r,\"x\",\"tan\",\"float32\")};return k.runKernel(Os,e)}var ny=T({tan_:Xj});function Me(r,t){Yn(r);let e=Br(r,t);if(e.length!==1)throw new Error(\"tensor1d() requires values to be a flat/TypedArray\");return on(r,null,e,t)}function Vs(r,t,e){if(Yn(r),t!=null&&t.length!==2)throw new Error(\"tensor2d() requires shape to have two numbers\");let n=Br(r,e);if(n.length!==2&&n.length!==1)throw new Error(\"tensor2d() requires values to be number[][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor2d() requires shape to be provided when `values` are a flat/TypedArray\");return on(r,t,n,e)}function $_(r,t,e){if(Yn(r),t!=null&&t.length!==4)throw new Error(\"tensor4d() requires shape to have four numbers\");let n=Br(r,e);if(n.length!==4&&n.length!==1)throw new Error(\"tensor4d() requires values to be number[][][][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor4d() requires shape to be provided when `values` are a flat array\");return on(r,t,n,e)}function D_(r,t,e){if(Yn(r),t!=null&&t.length!==5)throw new Error(\"tensor5d() requires shape to have five numbers\");let n=Br(r,e);if(n.length!==5&&n.length!==1)throw new Error(\"tensor5d() requires values to be number[][][][][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor5d() requires shape to be provided when `values` are a flat array\");return on(r,t,n,e)}function R_(r,t,e){if(Yn(r),t!=null&&t.length!==6)throw new Error(\"tensor6d() requires shape to have six numbers\");let n=Br(r,e);if(n.length!==6&&n.length!==1)throw new Error(\"tensor6d() requires values to be number[][][][][][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor6d() requires shape to be provided when `values` are a flat array\");return t=t||n,on(r,t,n,e)}function Yj(r,t=1,e=!0){let n=I(r,\"x\",\"topk\");if(n.rank===0)throw new Error(\"topk() expects the input to be of rank 1 or higher\");let o=n.shape[n.shape.length-1];if(t<0)throw new Error(`'k' passed to topk() must be >= 0 but got ${t}`);if(t>o)throw new Error(`'k' passed to topk() must be <= the last dimension (${o}) but got ${t}`);let s={x:n},i={k:t,sorted:e},[a,u]=k.runKernel(Ua,s,i);return{values:a,indices:u}}var oy=T({topk_:Yj});function Zj(r,t=0,e=1,n,o){if(n!=null&&n===\"bool\")throw new Error(\"Unsupported data type $ { dtype }\");let s=new Qu(t,e,n,!0,o),i=wt(r,n);for(let a=0;a0,()=>\"The input tensor must be at least 1D\");let n={x:e},o={axis:t},[s,i]=k.runKernel(Mp,n,o);return{values:s,indices:i}}var sy=T({unique_:Jj});function Qj(r,t,e){let n=I(r,\"x\",\"unsortedSegmentSum\"),o=I(t,\"segmentIds\",\"unsortedSegmentSum\",\"int32\");E(na(e),()=>\"numSegments must be of dtype int\");let s={x:n,segmentIds:o},i={numSegments:e};return k.runKernel(Wl,s,i)}var wm=T({unsortedSegmentSum_:Qj});function t6(r,t=0){let e=I(r,\"x\",\"unstack\",\"string_or_numeric\");E(t>=-e.shape.length&&t`Axis = ${t} is not in [-${e.shape.length}, ${e.shape.length})`);let n={value:e},o={axis:t};return k.runKernel(bi,n,o)}var vr=T({unstack_:t6});function F_(r,t){return mh(r,t,\"right\")}function iy(r,t=!0,e,n){return k.makeVariable(r,t,e,n)}function ay(r,t){let e=[];for(let s=0;s0,()=>\"mask cannot be scalar\"),$e(a.slice(s,s+i),o.shape,\"mask's shape must match the first K dimensions of tensor's shape,\");let u=1;for(let h=s;h\"Shape mismatch in v and x\");let u=mt(1),l=ct(u,a),c=D(ct(i,s),l);if(o){E(n!=null,()=>\"When using zeroDebias: true, step is required.\");let p=I(n,\"step\",\"movingAverage\");c=pt(c,ct(u,an(a,p)))}return X(s,c)}var s6=T({movingAverage_:o6});function i6(r,t,e){let n=I(r,\"indices\",\"scatterND\",\"int32\"),o=I(t,\"updates\",\"scatterND\");sx(o,n,e);let s={indices:n,updates:o},i={shape:e};return k.runKernel(La,s,i)}var a6=T({scatterND_:i6});function O_(r,t,e,n){if(r.dtype!==\"int32\")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${r.dtype}.`);if(r.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${r.shape}.`);let o=r.rank>0?r.shape[0]:1,s=r.rank>1?r.shape[1]:1;if(e.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${e.length}, should be: ${s}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===o))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${o}]`);if(t.dtype!==n.dtype)throw new Error(\"sparseValues.dtype must match defaultValues.dtype\")}function u6(r,t,e,n=0){let o=I(r,\"sparseIndices\",\"sparseToDense\",\"int32\"),s=I(t,\"sparseValues\",\"sparseToDense\",\"string_or_numeric\"),i=I(n,\"defaultValue\",\"sparseToDense\",s.dtype);O_(o,s,e,i);let a={sparseIndices:o,sparseValues:s,defaultValue:i},u={outputShape:e};return k.runKernel(Lp,a,u)}var c6=T({sparseToDense_:u6});function p6(r,t){let e=I(t,\"indices\",\"gatherND\",\"int32\"),o={params:I(r,\"x\",\"gatherND\",\"string_or_numeric\"),indices:e};return k.runKernel(wa,o)}var m6=T({gatherND_:p6});function P_(r,t){if(t==null)return r.shape.slice();if(Dn(r.shape,t))return t;if(r.shape.length===t.length){let e=[];for(let n=0;n`x has to be a floating point tensor since it's going to be scaled, but got a ${o.dtype} tensor instead.`),E(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return r instanceof Ft?o.clone():o;let s=P_(o,e),i=1-t,a=pt(Pi(X(zi(s,0,1,\"float32\",n),i)),i);return D(o,a)}var lv=T({dropout_:f6});function uv(r){return Math.floor(Math.pow(2,Math.ceil(Math.log(r)/Math.log(2))))}function hh(r,t,e){let n=1-r%2,o=new Float32Array(r);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${n.rank}`),E(n.rank-1===o.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${n.rank} and targets rank ${o.rank}`),$e(n.shape.slice(0,n.shape.length-1),o.shape,\"predictions's shape should be align with the targets' shape, except the last dimension.\");let s=n.shape[n.shape.length-1];E(e>0&&e<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${e}`);let i=await n.data(),a=await o.data(),[u,l]=[i.length/s,s],c=e0(\"bool\",u);for(let p=0;pg.value-h.value),c[p]=0;for(let h=0;hL_,depthwiseConv2d:()=>M_,matMul:()=>z_});function g6(r,t,e,n,o,s=\"NHWC\",i){let a=r;r.rank===3&&(a=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]])),E(a.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${a.shape}.`),E(u.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${u.shape}.`),E(e.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${e}.`);let l=s===\"NHWC\"?a.shape[3]:a.shape[1],c=s===\"NHWC\"?u.shape[3]:u.shape[1];E(l===e[2],()=>`Error in conv2dDerFilter: depth of input ${l}) must match input depth in filter (${e[2]}.`),E(c===e[3],()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${e[3]}).`),Ie(\"conv2dDerFilter\",o,i);let p={x:a,dy:u},m={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,filterShape:e};return k.runKernel(mp,p,m)}var Cm=T({conv2DBackpropFilter_:g6});function rc(r,t,e){if(e==null||e===\"linear\")return r;if(e===\"relu\")return D(r,bo(t));throw new Error(`Cannot compute gradient for fused activation ${e}.`)}function nc(r,t){let e=t,n=ge(r.shape,t.shape);return n.length>0&&(e=ft(e,n)),R(e,r.shape)}function oc(r,t,e,n){if(t===\"linear\")return r;if(t===\"relu\")return Fr(r);if(t===\"elu\")return Oi(r);if(t===\"relu6\")return lm(r);if(t===\"prelu\")return ou(r,e);if(t===\"leakyrelu\")return Ql(r,n);if(t===\"sigmoid\")return Yr(r);throw new Error(`Unknown fused activation ${t}.`)}var sc=(r,t)=>!(r>0)||t===\"linear\";function x6({x:r,filter:t,strides:e,pad:n,dataFormat:o=\"NHWC\",dilations:s=[1,1],dimRoundingMode:i,bias:a,activation:u=\"linear\",preluActivationWeights:l,leakyreluAlpha:c}){if(u=u||\"linear\",sc(k.state.gradientDepth,u)===!1){E(o===\"NHWC\",()=>`Error in fused conv2d: got dataFormat of ${o} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let _=In(r,t,e,n,o,s,i);return a!=null&&(_=X(_,a)),oc(_,u,l,c)}let p=I(r,\"x\",\"conv2d\",\"float32\"),m=I(t,\"filter\",\"conv2d\",\"float32\"),f=p,d=!1;p.rank===3&&(d=!0,f=R(p,[1,p.shape[0],p.shape[1],p.shape[2]])),E(f.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${f.rank}.`),E(m.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${m.rank}.`),Ie(\"fused conv2d\",n,i);let h=o===\"NHWC\"?f.shape[3]:f.shape[1];E(m.shape[2]===h,()=>`Error in conv2d: depth of input (${h}) must match input depth for filter ${m.shape[2]}.`),E(Ar(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let g=ju(f.shape,m.shape,e,s,n,i),x;a!=null&&(x=I(a,\"bias\",\"fused conv2d\"),[x]=Ut(x,p),o===\"NHWC\"?Pt(g.outShape,x.shape):(E(x.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${x.shape.length}.`),E(x.shape.length===0||x.shape[0]===g.outChannels||x.shape[0]===1,()=>`Error in fused conv2d: bias shape (${x.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let b;if(l!=null){let _=l.shape;if(E(_.length<=1||_.length===3,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${_.length}.`),_.length===1)E(_[0]===1||_[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${_}) is not compatible with the number of output channels (${g.outChannels}).`);else if(_.length===3)try{Pt(_,g.outShape)}catch(A){let $=`Error in fused conv2d: PReLU activation weights (${_}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error($)}b=I(l,\"prelu weights\",\"fused conv2d\")}let w=(_,A)=>{E(o===\"NHWC\",()=>`Error in gradient of fused conv2D: got dataFormat of ${o} but only NHWC is currently supported.`);let[$,F,P,V]=A,G=rc(_,P,u);E(to(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let W=tm(F.shape,G,$,e,n),q=Cm(F,G,$.shape,e,n),H=[W,q];if(V!=null){let j=nc(V,G);H.push(j)}return H},C={x:f,filter:m,bias:x,preluActivationWeights:b},N={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?un((A,$,F)=>{let P=k.runKernel(Ii,C,N);return F([$,A,P]),d&&(P=R(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:w}})(f,m):un((A,$,F,P)=>{let V=k.runKernel(Ii,C,N);return P([$,A,V,F]),d&&(V=R(V,[V.shape[1],V.shape[2],V.shape[3]])),{value:V,gradFunc:w}})(f,m,x)}var L_=T({fusedConv2d_:x6});function y6(r,t,e,n,o,s=[1,1],i){let a=r;r.rank===3&&(a=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let l={x:a,dy:u},c={strides:n,pad:o,dimRoundingMode:i,dilations:s,filterShape:e};return k.runKernel(gp,l,c)}var uy=T({depthwiseConv2dNativeBackpropFilter_:y6});function b6(r,t,e,n,o,s=[1,1],i){let a=t,u=!1;t.rank===3&&(u=!0,a=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let l={dy:a,filter:e},c={strides:n,pad:o,dimRoundingMode:i,dilations:s,inputShape:r},p=k.runKernel(xp,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var cy=T({depthwiseConv2dNativeBackpropInput_:b6});function w6({x:r,filter:t,strides:e,pad:n,dataFormat:o=\"NHWC\",dilations:s=[1,1],dimRoundingMode:i,bias:a,activation:u=\"linear\",preluActivationWeights:l,leakyreluAlpha:c}){if(sc(k.state.gradientDepth,u)===!1){let N=Fi(r,t,e,n,o,s,i);return a!=null&&(N=X(N,a)),oc(N,u,l,c)}let p=I(r,\"x\",\"depthwiseConv2d\",\"float32\"),m=I(t,\"filter\",\"depthwiseConv2d\",\"float32\"),f=p,d=!1;p.rank===3&&(d=!0,f=R(p,[1,p.shape[0],p.shape[1],p.shape[2]])),E(f.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${f.rank}.`),E(m.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${m.rank}.`),E(f.shape[3]===m.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${f.shape[3]}) must match the inChannels dimension in filter ${m.shape[2]}.`),s==null&&(s=[1,1]),E(Ar(e,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),Ie(\"fused depthwiseConv2d\",n,i);let h=ju(f.shape,m.shape,e,s,n,i,!0),g;a!=null&&(g=I(a,\"bias\",\"fused conv2d\"),[g]=Ut(g,p),Pt(h.outShape,g.shape));let x;l!=null&&(x=I(l,\"prelu weights\",\"fused depthwiseConv2d\"));let b=(N,_)=>{E(to(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[A,$,F,P]=_,V=rc(N,F,u),G=cy($.shape,V,A,e,n,s,i),W=uy($,V,A.shape,e,n,s,i);if(P!=null){let q=nc(g,V);return[G,W,q]}return[G,W]},w={x:f,filter:m,bias:g,preluActivationWeights:x},C={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?un((_,A,$)=>{let F=k.runKernel(Si,w,C);return $([A,_,F]),d&&(F=R(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(f,m):un((_,A,$,F)=>{let P=k.runKernel(Si,w,C);return F([A,_,P,$]),d&&(P=R(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:b}})(f,m,g)}var M_=T({fusedDepthwiseConv2d_:w6});function C6({a:r,b:t,transposeA:e=!1,transposeB:n=!1,bias:o,activation:s=\"linear\",preluActivationWeights:i,leakyreluAlpha:a=.2}){if(sc(k.state.gradientDepth,s)===!1){let V=Lt(r,t,e,n);return o!=null&&(V=X(V,o)),oc(V,s,i,a)}let u=I(r,\"a\",\"fused matMul\"),l=I(t,\"b\",\"fused matMul\");[u,l]=Ut(u,l);let c=e?u.shape[u.rank-2]:u.shape[u.rank-1],p=n?l.shape[l.rank-1]:l.shape[l.rank-2],m=e?u.shape[u.rank-1]:u.shape[u.rank-2],f=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=u.shape.slice(0,-2),h=l.shape.slice(0,-2),g=Jt(d),x=Jt(h);E(c===p,()=>`Error in fused matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${u.shape} and ${l.shape} and transposeA=${e} and transposeB=${n} must match.`);let w=Pt(u.shape.slice(0,-2),l.shape.slice(0,-2)).concat([m,f]),C=e?R(u,[g,c,m]):R(u,[g,m,c]),N=n?R(l,[x,f,p]):R(l,[x,p,f]),_;o!=null&&(_=I(o,\"bias\",\"fused matMul\"),[_]=Ut(_,u),Pt(w,_.shape));let A;i!=null&&(A=I(i,\"prelu weights\",\"fused matMul\"));let $=(V,G)=>{let[W,q,H,j]=G,Y=rc(R(V,H.shape),H,s),Z,et;if(!e&&!n?(Z=Lt(Y,q,!1,!0),et=Lt(W,Y,!0,!1)):!e&&n?(Z=Lt(Y,q,!1,!1),et=Lt(Y,W,!0,!1)):e&&!n?(Z=Lt(q,Y,!1,!0),et=Lt(W,Y,!1,!1)):(Z=Lt(q,Y,!0,!0),et=Lt(Y,W,!0,!0)),o!=null){let rt=nc(j,Y);return[Z,et,rt]}else return[Z,et]},F={a:C,b:N,bias:_,preluActivationWeights:A},P={transposeA:e,transposeB:n,activation:s,leakyreluAlpha:a};return o==null?un((G,W,q)=>{let H=k.runKernel(Ci,F,P);return q([G,W,H]),{value:R(H,w),gradFunc:$}})(C,N):un((G,W,q,H)=>{let j=k.runKernel(Ci,F,P);return H([G,W,j,q]),{value:R(j,w),gradFunc:$}})(C,N,_)}var z_=T({fusedMatMul_:C6});function I6(r){return hh(r,.54,.46)}var B_=T({hammingWindow_:I6});function S6(r){return hh(r,.5,.5)}var py=T({hannWindow_:S6});function v6(r,t,e,n=!1,o=0){let s=0,i=[];for(;s+t<=r.size;)i.push(Rt(r,s,t)),s+=e;if(n)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),E(a.rank===2&&a.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${l},4] but had shape ${a.shape}.`),E(u.rank===1&&u.shape[0]===l,()=>`Error in cropAndResize: boxInd must be have size [${l}] but had shape ${a.shape}.`),E(n.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${n.length}.`),E(n[0]>=1&&n[1]>=1,()=>`cropSize must be atleast [1,1], but was ${n}`),E(o===\"bilinear\"||o===\"nearest\",()=>`method must be bilinear or nearest, but was ${o}`);let c={image:i,boxes:a,boxInd:u},p={method:o,extrapolationValue:s,cropSize:n};return k.runKernel(da,c,p)}var G_=T({cropAndResize_:T6});function k6(r){let t=I(r,\"image\",\"flipLeftRight\",\"float32\");E(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let e={image:t};return k.runKernel(ba,e,{})}var W_=T({flipLeftRight_:k6});function E6(r){let t=I(r,\"image\",\"grayscaleToRGB\"),e=t.rank-1,n=t.shape[e];E(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),E(n===1,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${n}.`);let o=new Array(t.rank);return o.fill(1,0,e),o[e]=3,Dr(t,o)}var U_=T({grayscaleToRGB_:E6});function _6(r,t,e=0,n=.5){let o=I(r,\"image\",\"rotateWithOffset\",\"float32\");E(o.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${o.rank}.`);let s={image:o},i={radians:t,fillValue:e,center:n};return k.runKernel(qa,s,i)}var H_=T({rotateWithOffset_:_6});function wo(r,t,e,n,o,s){n==null&&(n=.5),o==null&&(o=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=r.shape[0];return e=Math.min(e,i),E(0<=n&&n<=1,()=>`iouThreshold must be in [0, 1], but was '${n}'`),E(r.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${r.rank}'`),E(r.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${r.shape[1]}`),E(t.rank===1,()=>\"scores must be a 1D tensor\"),E(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),E(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s}}function A6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=I(r,\"boxes\",\"nonMaxSuppression\",\"float32\"),i=I(t,\"scores\",\"nonMaxSuppression\",\"float32\"),a=wo(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u={maxOutputSize:e,iouThreshold:n,scoreThreshold:o};return k.runKernel(Ra,{boxes:s,scores:i},u)}var q_=T({nonMaxSuppression_:A6});function K_(r,t,e){let n=$6(r,t,e),o=n<0?-(n+1):n;r.splice(o,0,t)}function $6(r,t,e){return R6(r,t,e||D6)}function D6(r,t){return r>t?1:r>>1);let a=e(t,r[s]);a>0?n=s+1:(o=s,i=!a)}return i?n:-n-1}function fy(r,t,e,n,o){return cv(r,t,e,n,o,0)}function dy(r,t,e,n,o,s){return cv(r,t,e,n,o,0,!1,s,!0)}function hy(r,t,e,n,o,s){return cv(r,t,e,n,o,s,!0)}function cv(r,t,e,n,o,s,i=!1,a=!1,u=!1){let l=[];for(let g=0;go&&l.push({score:t[g],boxIndex:g,suppressBeginIndex:0});l.sort(j_);let c=s>0?-.5/s:0,p=[],m=[];for(;p.length0;){let g=l.pop(),{score:x,boxIndex:b,suppressBeginIndex:w}=g;if(x=w;--N){let _=F6(r,b,p[N]);if(_>=n){C=!0;break}if(g.score=g.score*O6(n,c,_),g.score<=o)break}g.suppressBeginIndex=p.length,C||(g.score===x?(p.push(b),m.push(g.score)):g.score>o&&K_(l,g,j_))}let f=p.length,d=e-f;a&&d>0&&(p.push(...new Array(d).fill(0)),m.push(...new Array(d).fill(0)));let h={selectedIndices:p};return i&&(h.selectedScores=m),u&&(h.validOutputs=f),h}function F6(r,t,e){let n=r.subarray(t*4,t*4+4),o=r.subarray(e*4,e*4+4),s=Math.min(n[0],n[2]),i=Math.min(n[1],n[3]),a=Math.max(n[0],n[2]),u=Math.max(n[1],n[3]),l=Math.min(o[0],o[2]),c=Math.min(o[1],o[3]),p=Math.max(o[0],o[2]),m=Math.max(o[1],o[3]),f=(a-s)*(u-i),d=(p-l)*(m-c);if(f<=0||d<=0)return 0;let h=Math.max(s,l),g=Math.max(i,c),x=Math.min(a,p),b=Math.min(u,m),w=Math.max(x-h,0)*Math.max(b-g,0);return w/(f+d-w)}function O6(r,t,e){let n=Math.exp(t*e*e);return e<=r?n:0}function j_(r,t){return r.score-t.score||r.score===t.score&&t.boxIndex-r.boxIndex}async function P6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=I(r,\"boxes\",\"nonMaxSuppressionAsync\"),i=I(t,\"scores\",\"nonMaxSuppressionAsync\"),a=wo(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u=await Promise.all([s.data(),i.data()]),l=u[0],c=u[1],{selectedIndices:p}=fy(l,c,e,n,o);return s!==r&&s.dispose(),i!==t&&i.dispose(),Me(p,\"int32\")}var X_=P6;function L6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=I(r,\"boxes\",\"nonMaxSuppression\"),a=I(t,\"scores\",\"nonMaxSuppression\"),u=wo(i,a,e,n,o,s);e=u.maxOutputSize,n=u.iouThreshold,o=u.scoreThreshold,s=u.softNmsSigma;let l={boxes:i,scores:a},c={maxOutputSize:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s},p=k.runKernel(Oa,l,c);return{selectedIndices:p[0],selectedScores:p[1]}}var Y_=T({nonMaxSuppressionWithScore_:L6});async function M6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=I(r,\"boxes\",\"nonMaxSuppressionAsync\"),a=I(t,\"scores\",\"nonMaxSuppressionAsync\"),u=wo(i,a,e,n,o,s);e=u.maxOutputSize,n=u.iouThreshold,o=u.scoreThreshold,s=u.softNmsSigma;let l=await Promise.all([i.data(),a.data()]),c=l[0],p=l[1],{selectedIndices:m,selectedScores:f}=hy(c,p,e,n,o,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Me(m,\"int32\"),selectedScores:Me(f)}}var Z_=M6;function z6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=I(r,\"boxes\",\"nonMaxSuppression\"),a=I(t,\"scores\",\"nonMaxSuppression\"),u=wo(i,a,e,n,o,null),l=u.maxOutputSize,c=u.iouThreshold,p=u.scoreThreshold,m={boxes:i,scores:a},f={maxOutputSize:l,iouThreshold:c,scoreThreshold:p,padToMaxOutputSize:s},d=k.runKernel(Fa,m,f);return{selectedIndices:d[0],validOutputs:d[1]}}var J_=T({nonMaxSuppressionPadded_:z6});async function B6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=I(r,\"boxes\",\"nonMaxSuppressionAsync\"),a=I(t,\"scores\",\"nonMaxSuppressionAsync\"),u=wo(i,a,e,n,o,null),l=u.maxOutputSize,c=u.iouThreshold,p=u.scoreThreshold,[m,f]=await Promise.all([i.data(),a.data()]),{selectedIndices:d,validOutputs:h}=dy(m,f,l,c,p,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Me(d,\"int32\"),validOutputs:mt(h,\"int32\")}}var Q_=B6;function V6(r,t,e=!1,n=!1){let o=I(r,\"images\",\"resizeBilinear\");E(o.rank===3||o.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${o.rank}.`),E(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),E(n===!1||e===!1,()=>\"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.\");let s=o,i=!1;o.rank===3&&(i=!0,s=R(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=k.runKernel(Ss,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var gy=T({resizeBilinear_:V6});function G6(r,t,e=!1,n=!1){let o=I(r,\"images\",\"resizeNearestNeighbor\");E(o.rank===3||o.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${o.rank}.`),E(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),E(o.dtype===\"float32\"||o.dtype===\"int32\",()=>\"`images` must have `int32` or `float32` as dtype\"),E(n===!1||e===!1,()=>\"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.\");let s=o,i=!1;o.rank===3&&(i=!0,s=R(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=k.runKernel(Is,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var xy=T({resizeNearestNeighbor_:G6});function W6(r,t=\"binary\",e=!1,n=.5){let o=I(r,\"image\",\"threshold\"),s=.2989,i=.587,a=.114,u=o.shape[0]*o.shape[1],l=D(Me([n]),255),c,p,m,f;if(E(o.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${o.rank}.`),E(o.shape[2]===3||o.shape[2]===1,()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${o.shape[2]}.`),E(o.dtype===\"int32\"||o.dtype===\"float32\",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${o.dtype}.`),E(t===\"otsu\"||t===\"binary\",()=>`Method must be binary or otsu, but was ${t}`),o.shape[2]===3){[c,p,m]=mr(o,[1,1,1],-1);let g=D(c,s),x=D(p,i),b=D(m,a);f=X(X(g,x),b)}else f=r;if(t===\"otsu\"){let g=wx(J(um(f),\"int32\"),ur([]),256);l=U6(g,u)}let d=e?Ln(f,l):Re(f,l);return J(D(d,255),\"int32\")}function U6(r,t){let e=Me([-1]),n=Me([0]),o=Me([0]),s,i,a,u,l,c;for(let p=0;p`Error in transform: image must be rank 4,but got rank ${i.rank}.`),E(a.rank===2&&(a.shape[0]===i.shape[0]||a.shape[0]===1)&&a.shape[1]===8,()=>\"Error in transform: Input transform should be batch x 8 or 1 x 8\"),E(s==null||s.length===2,()=>`Error in transform: outputShape must be [height, width] or null, but got ${s}.`);let u={image:i,transforms:a},l={interpolation:e,fillMode:n,fillValue:o,outputShape:s};return k.runKernel(Ha,u,l)}var eA=T({transform_:H6});function q6(r,t,e){E(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),E(e%1===0,()=>`bandPart(): numUpper must be an integer, got ${e}.`);let n=I(r,\"a\",\"bandPart\");E(n.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${n.rank}.`);let o=n.shape,[s,i]=n.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(e<=i))throw new Error(`bandPart(): numUpper (${e}) must not be greater than the number of columns (${i}).`);t<0&&(t=s),e<0&&(e=i);let a=R(su(0,s,1,\"int32\"),[-1,1]),u=su(0,i,1,\"int32\"),l=ct(a,u),c=Rr(Ln(l,mt(+t,\"int32\")),ln(l,mt(-e,\"int32\"))),p=Ne([s,i],n.dtype);return R(nr(vr(R(n,[-1,s,i])).map(m=>_e(c,m,p))),o)}var rA=T({bandPart_:q6});function K6(r){let t;if(Array.isArray(r)){t=!1,E(r!=null&&r.length>0,()=>\"Gram-Schmidt process: input must not be null, undefined, or empty\");let o=r[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${r[s].shape[0]} vs. ${o})`)}else t=!0,r=mr(r,r.shape[0],0).map(o=>Mn(o,[0]));E(r.length<=r[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${r.length}) exceeds number of dimensions (${r[0].shape[0]}).`);let e=[],n=r;for(let o=0;o{let s=n[o];if(o>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${r.rank}`),r.rank===2)return oA(r,t);{let e=r.shape.slice(0,r.shape.length-2).reduce((u,l)=>u*l),n=vr(R(r,[e,r.shape[r.shape.length-2],r.shape[r.shape.length-1]]),0),o=[],s=[];n.forEach(u=>{let[l,c]=oA(u,t);o.push(l),s.push(c)});let i=R(nr(o,0),r.shape),a=R(nr(s,0),r.shape);return[i,a]}}function oA(r,t=!1){return k.tidy(()=>{E(r.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${r.shape.length}D Tensor.`);let e=r.shape[0],n=r.shape[1],o=Yu(e),s=sn(r),i=Vs([[1]],[1,1]),a=sn(i),u=e>=n?n:e;for(let l=0;l{let f=Rt(s,[l,l],[e-l,1]),d=Qa(f),h=Rt(s,[l,l],[1,1]),g=_e(Re(h,0),Vs([[-1]]),Vs([[1]])),x=ct(h,D(g,d)),b=pt(f,x);b.shape[0]===1?a=sn(i):a=ne([i,Rt(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let w=Ht(pt(Lt(g,x),d)),C=Rt(s,[l,0],[e-l,n]),N=D(w,a),_=Ot(a);if(l===0)s=ct(C,Lt(N,Lt(_,C)));else{let F=ct(C,Lt(N,Lt(_,C)));s=ne([Rt(s,[0,0],[l,n]),F],0)}let A=Ot(N),$=Rt(o,[0,l],[e,o.shape[1]-l]);if(l===0)o=ct($,Lt(Lt($,a),A));else{let F=ct($,Lt(Lt($,a),A));o=ne([Rt(o,[0,0],[e,l]),F],1)}return[a,s,o]}),vt([c,p,m])}return!t&&e>n&&(o=Rt(o,[0,0],[e,n]),s=Rt(s,[0,0],[n,n])),[o,s]})}var sA=T({qr_:j6});var Xe;(function(r){r[r.NONE=0]=\"NONE\",r[r.MEAN=1]=\"MEAN\",r[r.SUM=2]=\"SUM\",r[r.SUM_BY_NONZERO_WEIGHTS=3]=\"SUM_BY_NONZERO_WEIGHTS\"})(Xe||(Xe={}));function X6(r,t,e=Xe.SUM_BY_NONZERO_WEIGHTS){let n=I(r,\"losses\",\"computeWeightedLoss\"),o=null;t!=null&&(o=I(t,\"weights\",\"computeWeightedLoss\"));let s=o==null?n:D(n,o);if(e===Xe.NONE)return s;if(e===Xe.SUM)return ft(s);if(e===Xe.MEAN){if(o==null)return ve(s);{let i=n.size/o.size,a=pt(ft(s),ft(o));return i>1?pt(a,mt(i)):a}}if(e===Xe.SUM_BY_NONZERO_WEIGHTS){if(o==null)return pt(ft(s),mt(n.size));{let i=D(o,cr(n.shape)),a=J(ft(Bs(i,mt(0))),\"float32\");return pt(ft(s),a)}}throw Error(`Unknown reduction: ${e}`)}var Gr=T({computeWeightedLoss_:X6});function Y6(r,t,e,n=Xe.SUM_BY_NONZERO_WEIGHTS){let o=I(r,\"labels\",\"absoluteDifference\"),s=I(t,\"predictions\",\"absoluteDifference\"),i=null;e!=null&&(i=I(e,\"weights\",\"absoluteDifference\")),$e(o.shape,s.shape,\"Error in absoluteDifference: \");let a=Ee(ct(o,s));return Gr(a,i,n)}var iA=T({absoluteDifference_:Y6});function Z6(r,t,e,n,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,\"labels\",\"cosineDistance\"),i=I(t,\"predictions\",\"cosineDistance\"),a=null;n!=null&&(a=I(n,\"weights\",\"cosineDistance\")),$e(s.shape,i.shape,\"Error in cosineDistance: \");let u=mt(1),l=ct(u,ft(D(s,i),e,!0));return Gr(l,a,o)}var aA=T({cosineDistance_:Z6});function J6(r,t,e,n=Xe.SUM_BY_NONZERO_WEIGHTS){let o=I(r,\"labels\",\"hingeLoss\"),s=I(t,\"predictions\",\"hingeLoss\"),i=null;e!=null&&(i=I(e,\"weights\",\"hingeLoss\")),$e(o.shape,s.shape,\"Error in hingeLoss: \");let a=mt(1);o=ct(D(mt(2),o),a);let u=Fr(ct(a,D(o,s)));return Gr(u,i,n)}var lA=T({hingeLoss_:J6});function Q6(r,t,e,n=1,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,\"labels\",\"huberLoss\"),i=I(t,\"predictions\",\"huberLoss\"),a=null;e!=null&&(a=I(e,\"weights\",\"huberLoss\")),$e(s.shape,i.shape,\"Error in huberLoss: \");let u=mt(n),l=Ee(ct(i,s)),c=Mi(l,u),p=ct(l,c),m=X(D(mt(.5),Mt(c)),D(u,p));return Gr(m,a,o)}var uA=T({huberLoss_:Q6});function tX(r,t,e,n=1e-7,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,\"labels\",\"logLoss\"),i=I(t,\"predictions\",\"logLoss\"),a=null;e!=null&&(a=I(e,\"weights\",\"logLoss\")),$e(s.shape,i.shape,\"Error in logLoss: \");let u=mt(1),l=mt(n),c=Ht(D(s,Sr(X(i,l)))),p=D(ct(u,s),Sr(X(ct(u,i),l))),m=ct(c,p);return Gr(m,a,o)}var cA=T({logLoss_:tX});function eX(r,t,e,n=Xe.SUM_BY_NONZERO_WEIGHTS){let o=I(r,\"labels\",\"meanSquaredError\"),s=I(t,\"predictions\",\"meanSquaredError\"),i=null;e!=null&&(i=I(e,\"weights\",\"meanSquaredError\")),$e(o.shape,s.shape,\"Error in meanSquaredError: \");let a=ym(o,s);return Gr(a,i,n)}var pA=T({meanSquaredError_:eX});function rX(r,t){let e=I(r,\"labels\",\"sigmoidCrossEntropyWithLogits\"),n=I(t,\"logits\",\"sigmoidCrossEntropyWithLogits\");$e(e.shape,n.shape,\"Error in sigmoidCrossEntropyWithLogits: \");let o=Fr(n),s=D(n,e),i=tu(er(Ht(Ee(n))));return X(ct(o,s),i)}function nX(r,t,e,n=0,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,\"multiClassLabels\",\"sigmoidCrossEntropy\"),i=I(t,\"logits\",\"sigmoidCrossEntropy\"),a=null;if(e!=null&&(a=I(e,\"weights\",\"sigmoidCrossEntropy\")),$e(s.shape,i.shape,\"Error in sigmoidCrossEntropy: \"),n>0){let l=mt(n),c=mt(1),p=mt(.5);s=X(D(s,ct(c,l)),D(p,l))}let u=rX(s,i);return Gr(u,a,o)}var mA=T({sigmoidCrossEntropy_:nX});function oX(r,t,e=-1){if(e===-1&&(e=t.rank-1),e!==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 ${e}`);return un((o,s,i)=>{let u=im(s,[e],!0),l=ct(J(s,\"float32\"),u);i([o,l]);let c=Ht(D(l,o));return{value:ft(c,[e]),gradFunc:(f,d)=>{let[h,g]=d,x=yo(f.shape,[e]);return[D(R(f,x),ct(J(h,\"float32\"),er(g))),D(R(f,x),ct(er(g),J(h,\"float32\")))]}}})(r,t)}function sX(r,t,e,n=0,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,\"onehotLabels\",\"softmaxCrossEntropy\"),i=I(t,\"logits\",\"softmaxCrossEntropy\"),a=null;if(e!=null&&(a=I(e,\"weights\",\"softmaxCrossEntropy\")),$e(s.shape,i.shape,\"Error in softmaxCrossEntropy: \"),n>0){let l=mt(n),c=mt(1),p=mt(s.shape[1]);s=X(D(s,ct(c,l)),pt(l,p))}let u=oX(s,i);return Gr(u,a,o)}var fA=T({softmaxCrossEntropy_:sX});function iX(r,t,e,n){let o=I(r,\"indices\",\"sparseFillEmptyRows\",\"int32\"),s=I(t,\"values\",\"sparseFillEmptyRows\"),i=I(e,\"denseShape\",\"sparseFillEmptyRows\",\"int32\"),a=I(n,\"defaultValue\",\"sparseFillEmptyRows\",s.dtype);if(o.rank!==2)throw new Error(`Indices should be Tensor2D but received shape\n ${o.shape}`);if(s.rank!==1)throw new Error(`Values should be Tensor1D but received shape ${s.shape}`);if(i.rank!==1)throw new Error(`Dense shape should be Tensor1D but received shape ${i.shape}`);if(a.rank!==0)throw new Error(`Default value should be a scalar but received shape ${a.shape}`);let u={indices:o,values:s,denseShape:i,defaultValue:a},l=k.runKernel(Pl,u);return{outputIndices:l[0],outputValues:l[1],emptyRowIndicator:l[2],reverseIndexMap:l[3]}}var dA=T({sparseFillEmptyRows_:iX});function aX(r,t,e){let n=I(r,\"inputIndices\",\"sparseReshape\",\"int32\"),o=I(t,\"inputShape\",\"sparseReshape\",\"int32\"),s=I(e,\"newShape\",\"sparseReshape\",\"int32\");if(n.rank!==2)throw new Error(`Input indices should be Tensor2D but received shape\n ${n.shape}`);if(o.rank!==1)throw new Error(`Input shape should be Tensor1D but received shape ${o.shape}`);if(s.rank!==1)throw new Error(`New shape should be Tensor1D but received shape ${s.shape}`);let i={inputIndices:n,inputShape:o,newShape:s},a=k.runKernel(Ga,i);return{outputIndices:a[0],outputShape:a[1]}}var hA=T({sparseReshape_:aX});function lX(r,t,e){let n=I(r,\"data\",\"sparseSegmentMean\"),o=I(t,\"indices\",\"sparseSegmentMean\",\"int32\"),s=I(e,\"segmentIds\",\"sparseSegmentMean\",\"int32\");if(n.rank<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.rank!==1)throw new Error(`Indices should be Tensor1D but received shape\n ${o.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape\n ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return k.runKernel(Ll,i)}var gA=T({sparseSegmentMean_:lX});function uX(r,t,e){let n=I(r,\"data\",\"sparseSegmentSum\"),o=I(t,\"indices\",\"sparseSegmentSum\",\"int32\"),s=I(e,\"segmentIds\",\"sparseSegmentSum\",\"int32\");if(n.rank<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.rank!==1)throw new Error(`Indices should be Tensor1D but received shape\n ${o.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape\n ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return k.runKernel(Ml,i)}var xA=T({sparseSegmentSum_:uX});function cX(r,t,e,n,o,s,i,a){let u=I(r,\"data\",\"stringNGrams\",\"string\");if(u.dtype!==\"string\")throw new Error(\"Data must be of datatype string\");if(u.shape.length!==1)throw new Error(`Data must be a vector, saw: ${u.shape}`);let l=I(t,\"dataSplits\",\"stringNGrams\");if(l.dtype!==\"int32\")throw new Error(\"Data splits must be of datatype int32\");let c={separator:e,nGramWidths:n,leftPad:o,rightPad:s,padWidth:i,preserveShortSequences:a},p={data:u,dataSplits:l},m=k.runKernel(Bl,p,c);return{nGrams:m[0],nGramsSplits:m[1]}}var yA=T({stringNGrams_:cX});function pX(r,t,e=!0){let n=I(r,\"input\",\"stringSplit\",\"string\"),o=I(t,\"delimiter\",\"stringSplit\",\"string\");if(n.rank!==1)throw new Error(`Input should be Tensor1D but received shape ${n.shape}`);if(o.rank!==0)throw new Error(`Delimiter should be a scalar but received shape ${o.shape}`);let s={skipEmpty:e},i={input:n,delimiter:o},a=k.runKernel(Vl,i,s);return{indices:a[0],values:a[1],shape:a[2]}}var bA=T({stringSplit_:pX});function mX(r,t){let e=I(r,\"input\",\"stringToHashBucketFast\",\"string\"),n={numBuckets:t};if(t<=0)throw new Error(\"Number of buckets must be at least 1\");let o={input:e};return k.runKernel(Gl,o,n)}var wA=T({stringToHashBucketFast_:mX});var fX={fft:au,ifft:tl,rfft:lu,irfft:xm},dX={hammingWindow:B_,hannWindow:py,frame:my,stft:V_},Gs={flipLeftRight:W_,grayscaleToRGB:U_,resizeNearestNeighbor:xy,resizeBilinear:gy,rotateWithOffset:H_,cropAndResize:G_,nonMaxSuppression:q_,nonMaxSuppressionAsync:X_,nonMaxSuppressionWithScore:Y_,nonMaxSuppressionWithScoreAsync:Z_,nonMaxSuppressionPadded:J_,nonMaxSuppressionPaddedAsync:Q_,threshold:tA,transform:eA},pv={bandPart:rA,gramSchmidt:nA,qr:sA},hX={absoluteDifference:iA,computeWeightedLoss:Gr,cosineDistance:aA,hingeLoss:lA,huberLoss:uA,logLoss:cA,meanSquaredError:pA,sigmoidCrossEntropy:mA,softmaxCrossEntropy:fA},gX={sparseFillEmptyRows:dA,sparseReshape:hA,sparseSegmentMean:gA,sparseSegmentSum:xA},xX={stringNGrams:yA,stringSplit:bA,stringToHashBucketFast:wA};var Wr=class extends uh{minimize(t,e=!1,n){let{value:o,grads:s}=this.computeGradients(t,n);if(n!=null){let i=n.map(a=>({name:a.name,tensor:s[a.name]}));this.applyGradients(i)}else this.applyGradients(s);return vt(s),e?o:(o.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(t,e){return Bx(t,e)}dispose(){this.iterations_!=null&&vt(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:\"iter\",tensor:mt(this.iterations_,\"int32\")}}async getWeights(){throw new Error(\"getWeights() is not implemented for this optimizer yet.\")}async setWeights(t){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(t){return this.iterations_=(await t[0].tensor.data())[0],t.slice(1)}};Object.defineProperty(Wr,Symbol.hasInstance,{value:r=>r.minimize!=null&&r.computeGradients!=null&&r.applyGradients!=null});var cu=class extends Wr{constructor(t,e,n=null){super(),this.learningRate=t,this.rho=e,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=k.backend.epsilon())}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n],i=!1;this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accum_grad`,variable:B(()=>It(s).variable(i))}),this.accumulatedUpdates[o]==null&&(this.accumulatedUpdates[o]={originalName:`${n}/accum_var`,variable:B(()=>It(s).variable(i))});let a=Array.isArray(t)?t[o].tensor:t[n];if(a==null)return;let u=this.accumulatedGrads[o].variable,l=this.accumulatedUpdates[o].variable;B(()=>{let c=X(D(u,this.rho),D(Mt(a),1-this.rho)),p=D(pt(Se(X(l,this.epsilon)),Se(X(u,this.epsilon))),a),m=X(D(l,this.rho),D(Mt(p),1-this.rho));u.assign(c),l.assign(m);let f=X(D(p,-this.learningRate),s);s.assign(f)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(vt(this.accumulatedGrads.map(t=>t.variable)),vt(this.accumulatedUpdates.map(t=>t.variable)))}async getWeights(){let t=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=t.length/2,n=!1;this.accumulatedGrads=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedUpdates=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(t,e){return new t(e.learningRate,e.rho,e.epsilon)}};cu.className=\"Adadelta\";Cn(cu);var pu=class extends Wr{constructor(t,e=.1){super(),this.learningRate=t,this.initialAccumulatorValue=e,this.accumulatedGrads=[]}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n];this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accumulator`,variable:B(()=>xo(s.shape,this.initialAccumulatorValue).variable(!1))});let i=Array.isArray(t)?t[o].tensor:t[n];if(i==null)return;let a=this.accumulatedGrads[o].variable;B(()=>{let u=X(a,Mt(i));a.assign(u);let l=X(D(pt(i,Se(X(u,k.backend.epsilon()))),-this.learningRate),s);s.assign(l)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&vt(this.accumulatedGrads.map(t=>t.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=!1;this.accumulatedGrads=t.map(n=>({originalName:n.name,variable:n.tensor.variable(e)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(t,e){return new t(e.learningRate,e.initialAccumulatorValue)}};pu.className=\"Adagrad\";Cn(pu);var mu=class extends Wr{constructor(t,e,n,o=null){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],B(()=>{this.accBeta1=mt(e).variable(),this.accBeta2=mt(n).variable()}),o==null&&(this.epsilon=k.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=ct(1,this.accBeta1),o=ct(1,this.accBeta2);e.forEach((s,i)=>{let a=k.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:B(()=>It(a).variable(u))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${s}/v`,variable:B(()=>It(a).variable(u))});let l=Array.isArray(t)?t[i].tensor:t[s];if(l==null)return;let c=this.accumulatedFirstMoment[i].variable,p=this.accumulatedSecondMoment[i].variable,m=X(D(c,this.beta1),D(l,1-this.beta1)),f=X(D(p,this.beta2),D(Mt(l),1-this.beta2)),d=pt(m,n),h=pt(f,o);c.assign(m),p.assign(f);let g=X(D(pt(d,X(Se(h),this.epsilon)),-this.learningRate),a);a.assign(g)}),this.accBeta1.assign(D(this.accBeta1,this.beta1)),this.accBeta2.assign(D(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&vt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedSecondMoment!=null&&vt(this.accumulatedSecondMoment.map(t=>t.variable))}async getWeights(){let t=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t),B(()=>{this.accBeta1.assign(an(this.beta1,this.iterations_+1)),this.accBeta2.assign(an(this.beta2,this.iterations_+1))});let e=t.length/2,n=!1;this.accumulatedFirstMoment=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedSecondMoment=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon)}};mu.className=\"Adam\";Cn(mu);var fu=class extends Wr{constructor(t,e,n,o=null,s=0){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.decay=s,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],B(()=>{this.iteration=mt(0).variable(),this.accBeta1=mt(e).variable()}),o==null&&(this.epsilon=k.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=ct(1,this.accBeta1),o=pt(-this.learningRate,X(D(this.iteration,this.decay),1));e.forEach((s,i)=>{let a=k.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:It(a).variable(u)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${s}/v`,variable:It(a).variable(u)});let l=Array.isArray(t)?t[i].tensor:t[s];if(l==null)return;let c=this.accumulatedFirstMoment[i].variable,p=this.accumulatedWeightedInfNorm[i].variable,m=X(D(c,this.beta1),D(l,1-this.beta1)),f=D(p,this.beta2),d=Ee(l),h=Sn(f,d);c.assign(m),p.assign(h);let g=X(D(pt(o,n),pt(m,X(h,this.epsilon))),a);a.assign(g)}),this.iteration.assign(X(this.iteration,1)),this.accBeta1.assign(D(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&vt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedWeightedInfNorm!=null&&vt(this.accumulatedWeightedInfNorm.map(t=>t.variable))}async getWeights(){throw new Error(\"getWeights() is not implemented for Adamax yet.\")}async setWeights(t){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(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon,e.decay)}};fu.className=\"Adamax\";Cn(fu);var Bi=class extends Wr{constructor(t){super(),this.learningRate=t,this.setLearningRate(t)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=Array.isArray(t)?t[o].tensor:t[n];if(s==null)return;let i=k.registeredVariables[n];B(()=>{let a=X(D(this.c,s),i);i.assign(a)})}),this.incrementIterations()}setLearningRate(t){this.learningRate=t,this.c!=null&&this.c.dispose(),this.c=De(mt(-t))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(t){if(t=await this.extractIterations(t),t.length!==0)throw new Error(\"SGD optimizer does not have settable weights.\")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(t,e){return new t(e.learningRate)}};Bi.className=\"SGD\";Cn(Bi);var du=class extends Bi{constructor(t,e,n=!1){super(t),this.learningRate=t,this.momentum=e,this.useNesterov=n,this.accumulations=[],this.m=mt(this.momentum)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n];this.accumulations[o]==null&&(this.accumulations[o]={originalName:`${n}/momentum`,variable:B(()=>It(s).variable(!1))});let i=this.accumulations[o].variable,a=Array.isArray(t)?t[o].tensor:t[n];a!=null&&B(()=>{let u,l=X(D(this.m,i),a);this.useNesterov?u=X(D(this.c,X(a,D(l,this.m))),s):u=X(D(this.c,l),s),i.assign(l),s.assign(u)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&vt(this.accumulations.map(t=>t.variable))}setMomentum(t){this.momentum=t}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=!1;this.accumulations=t.map(n=>({originalName:n.name,variable:n.tensor.variable(e)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(t,e){return new t(e.learningRate,e.momentum,e.useNesterov)}};du.className=\"Momentum\";Cn(du);var hu=class extends Wr{constructor(t,e=.9,n=0,o=null,s=!1){if(super(),this.learningRate=t,this.decay=e,this.momentum=n,this.epsilon=o,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=s,o==null&&(this.epsilon=k.backend.epsilon()),t==null)throw new Error(\"learningRate for RMSPropOptimizer must be defined.\")}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n],i=!1;this.accumulatedMeanSquares[o]==null&&(this.accumulatedMeanSquares[o]={originalName:`${n}/rms`,variable:B(()=>It(s).variable(i))}),this.accumulatedMoments[o]==null&&(this.accumulatedMoments[o]={originalName:`${n}/momentum`,variable:B(()=>It(s).variable(i))}),this.accumulatedMeanGrads[o]==null&&this.centered&&(this.accumulatedMeanGrads[o]={originalName:`${n}/mg`,variable:B(()=>It(s).variable(i))});let a=Array.isArray(t)?t[o].tensor:t[n];if(a==null)return;let u=this.accumulatedMeanSquares[o].variable,l=this.accumulatedMoments[o].variable;B(()=>{let c=X(D(u,this.decay),D(Mt(a),1-this.decay));if(this.centered){let p=this.accumulatedMeanGrads[o].variable,m=X(D(p,this.decay),D(a,1-this.decay)),f=pt(D(a,this.learningRate),Se(ct(c,X(Mt(m),this.epsilon)))),d=X(D(l,this.momentum),f);u.assign(c),p.assign(m),l.assign(d);let h=ct(s,d);s.assign(h)}else{let p=X(D(u,this.decay),D(Mt(a),1-this.decay)),m=X(D(l,this.momentum),pt(D(a,this.learningRate),Se(X(p,this.epsilon))));u.assign(p),l.assign(m);let f=ct(s,m);s.assign(f)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&vt(this.accumulatedMeanSquares.map(t=>t.variable)),this.accumulatedMeanGrads!=null&&this.centered&&vt(this.accumulatedMeanGrads.map(t=>t.variable)),this.accumulatedMoments!=null&&vt(this.accumulatedMoments.map(t=>t.variable))}async getWeights(){let t=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&t.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=this.centered?t.length/3:t.length/2,n=!1;this.accumulatedMeanSquares=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedMoments=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=t.slice(e*2,e*3).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(t,e){return new t(e.learningRate,e.decay,e.momentum,e.epsilon,e.centered)}};hu.className=\"RMSProp\";Cn(hu);var Ws=class{static sgd(t){return new Bi(t)}static momentum(t,e,n=!1){return new du(t,e,n)}static rmsprop(t,e=.9,n=0,o=null,s=!1){return new hu(t,e,n,o,s)}static adam(t=.001,e=.9,n=.999,o=null){return new mu(t,e,n,o)}static adadelta(t=.001,e=.95,n=null){return new cu(t,e,n)}static adamax(t=.002,e=.9,n=.999,o=null,s=0){return new fu(t,e,n,o,s)}static adagrad(t,e=.1){return new pu(t,e)}};var ic={sgd:Ws.sgd,momentum:Ws.momentum,adadelta:Ws.adadelta,adagrad:Ws.adagrad,rmsprop:Ws.rmsprop,adamax:Ws.adamax,adam:Ws.adam};var yX=(()=>typeof requestAnimationFrame!=\"undefined\"?requestAnimationFrame:typeof setImmediate!=\"undefined\"?setImmediate:r=>r())();function gh(){return new Promise(r=>yX(()=>r()))}var v={};Wt(v,{ERF_A1:()=>RX,ERF_A2:()=>FX,ERF_A3:()=>OX,ERF_A4:()=>PX,ERF_A5:()=>LX,ERF_P:()=>DX,PARALLELIZE_THRESHOLD:()=>yy,RowPartitionType:()=>Vi,SELU_SCALE:()=>fv,SELU_SCALEALPHA:()=>mv,applyActivation:()=>oc,assertAndGetBroadcastShape:()=>Pt,assertAxesAreInnerMostDims:()=>Hq,assertParamsConsistent:()=>bX,assignToTypedArray:()=>WX,axesAreInnerMostDims:()=>J0,calculateShapes:()=>IE,checkEinsumDimSizes:()=>XX,checkPadOnDimRoundingMode:()=>Ie,combineLocations:()=>HE,combineRaggedTensorToTensorShapes:()=>CX,complexWithEvenIndex:()=>BX,complexWithOddIndex:()=>VX,computeConv2DInfo:()=>ju,computeConv3DInfo:()=>ME,computeDefaultPad:()=>Z0,computeDilation2DInfo:()=>KH,computeOptimalWindowSize:()=>NX,computeOutAndReduceShapes:()=>Q0,computeOutShape:()=>wX,computePool2DInfo:()=>Y0,computePool3DInfo:()=>jH,convertConv2DDataFormat:()=>zE,decodeEinsumEquation:()=>KX,eitherStridesOrDilationsAreOne:()=>Ar,expandShapeToKeepDim:()=>yo,exponent:()=>HX,exponents:()=>UX,fromStringArrayToUint8:()=>g5,fromUint8ToStringArray:()=>h5,getAxesPermutation:()=>tv,getBroadcastDims:()=>bE,getComplexWithIndex:()=>GX,getEinsumComputePath:()=>YX,getEinsumPermutation:()=>jX,getFusedBiasGradient:()=>nc,getFusedDyActivation:()=>rc,getImageCenter:()=>TX,getInnerMostAxes:()=>qq,getPermuted:()=>EX,getRaggedRank:()=>SX,getReductionAxes:()=>ge,getReshaped:()=>kX,getReshapedPermuted:()=>_X,getRowPartitionTypesHelper:()=>IX,getSliceBeginCoords:()=>AX,getSliceSize:()=>$X,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>t5,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>e5,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>r5,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>s5,getSparseReshapeInputOutputMismatchErrorMessage:()=>a5,getSparseReshapeInputOutputMultipleErrorMessage:()=>i5,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>n5,getSparseReshapeNegativeOutputDimErrorMessage:()=>o5,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>p5,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>l5,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>u5,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>c5,getUndoAxesPermutation:()=>ph,isIdentityPermutation:()=>ZX,log:()=>o4,mergeRealAndImagArrays:()=>MX,prepareAndValidate:()=>CE,prepareSplitSize:()=>QX,segment_util:()=>hv,shouldFuse:()=>sc,slice_util:()=>Le,splitRealAndImagArrays:()=>zX,tupleValuesAreOne:()=>to,upcastType:()=>sr,validateDefaultValueShape:()=>vX,validateInput:()=>sx,validateUpdateShape:()=>U0,warn:()=>vi});function bX(r,t){let e=r[0].length;r.forEach((o,s)=>{E(o.length===e,()=>`Error in concat${e}D: rank of tensors[${s}] must be the same as the rank of the rest (${e})`)}),E(t>=0&&t`Error in concat${e}D: axis must be between 0 and ${e-1}.`);let n=r[0];r.forEach((o,s)=>{for(let i=0;i`Error in concat${e}D: Shape of tensors[${s}] (${o}) does not match the shape of the rest (${n}) along the non-concatenated axis ${s}.`)})}function wX(r,t){let e=r[0].slice();for(let n=1;n=0)if(a>=0){if(a!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${o+r}] = ${s} but shape[${o+r}] = ${a}`)}else n[i]=s}return n}function IX(r){let t={FIRST_DIM_SIZE:Vi.FIRST_DIM_SIZE,VALUE_ROWIDS:Vi.VALUE_ROWIDS,ROW_LENGTHS:Vi.ROW_LENGTHS,ROW_SPLITS:Vi.ROW_SPLITS,ROW_LIMITS:Vi.ROW_LIMITS,ROW_STARTS:Vi.ROW_STARTS},e=[];for(let n of r)if(n in t)e.push(t[n]);else break;return e}function SX(r){return r.length===0?0:r[0]===Vi.FIRST_DIM_SIZE?r.length-1:r.length}function vX(r,t){if(r==null||t==null)return;let e=r.length,n=t.length;if(e>=n)throw new Error(`defaultValue.shape=${r} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${e} must be less than ragged tensor input flatValues.rank = ${n})`);for(let o=0;o=0&&i>=0&&s!==1&&s!==i)throw new Error(`defaultValue.shape=${r}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${o-r.length}] = ${s} but ragged tensor input.flatValues.shape[${o-r.length}] = ${i}`)}}var yy=30;function NX(r){return r<=yy?r:sp(r,Math.floor(Math.sqrt(r)))}function TX(r,t,e){let n=e*(typeof r==\"number\"?r:r[0]),o=t*(typeof r==\"number\"?r:r[1]);return[n,o]}function kX(r,t,e,n=!0){let o=[];if(n)o=o.concat(t.slice(0)),o.push(r[0]/e),o=o.concat(r.slice(1));else{o=o.concat(r[0]);let s=t.length;for(let i=0;i=t*2+1||i%2===1?s.push(i):o.push(i);n.push(...o),n.push(0),n.push(...s)}return n}function _X(r,t,e,n=!0){let o=[];n?o.push(r[0]/e):o.push(r[0]*e);for(let s=1;s\",qX=/->/g,CA=\",\",IA=\"...\";function KX(r,t){r=r.replace(/\\s/g,\"\");let e=(r.length-r.replace(qX,\"\").length)/dv.length;if(e<1)throw new Error(\"Equations without an arrow are not supported.\");if(e>1)throw new Error(`Equation must contain exactly one arrow (\"${dv}\").`);let[n,o]=r.split(dv);E(n.indexOf(IA)===-1,()=>`The ellipsis notation (\"${IA}\") is not supported yet.`);let s=n.split(CA),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error(\"Support for more than 2 input tensors is not implemented yet.\");let a=[];for(let m=0;md.indexOf(f)!==-1))throw new Error(`Output subscripts contain the label ${f} not present in the input subscripts.`);a.indexOf(f)===-1&&a.push(f)}for(let m=0;mo!==-1),{permutationIndices:e,expandDims:n}}function XX(r,t,e){let n=new Array(r);for(let o=0;o`Expected dimension ${n[t[o][i]]} at axis ${i} of input shaped ${JSON.stringify(s)}, but got dimension ${s[i]}`)}}function YX(r,t){let e=r,n=[],o=0;r.length===0&&e.push(-1),o=r.length+1;for(let i=0;it===e)}function JX(r,t){let e=[];for(let n=0;n\"Number of splits must evenly divide the axis.\"),n=new Array(t).fill(r.shape[e]/t);else{let o=t.reduce((i,a)=>(a===-1&&(i+=1),i),0);E(o<=1,()=>\"There should be only one negative value in split array.\");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((a,u)=>u>0?a+u:a);t[s]=r.shape[e]-i}E(r.shape[e]===t.reduce((i,a)=>i+a),()=>\"The sum of sizes must match the size of the axis dimension.\"),n=t}return n}function t5(r){return`Received SparseTensor with denseShape[0] = 0 but\n indices.shape[0] = ${r}`}function e5(r,t){return`indices(${r}, 0) is invalid: ${t} < 0`}function r5(r,t,e){return`indices(${r}, 0) is invalid: ${t} >= ${e}`}function n5(r,t){return`only one output dimension may be -1, not both ${r} and ${t}`}function o5(r,t){return`size ${r} must be non-negative, not ${t}`}function s5(){return\"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero\"}function i5(r,t){let e=Jt(r),n=Jt(t);return`Input to reshape is a SparseTensor with ${e}\n dense values, but the requested shape requires a multiple of ${n}. inputShape=${r} outputShape= ${t}`}function a5(r,t){let e=Jt(r),n=Jt(t);return`Input to reshape is a tensor with ${e} dense values, but the requested shape has ${n}. inputShape=${r} outputShape=${t}`}function l5(){return\"segment ids must be >= 0\"}function u5(){return\"segment ids are not increasing\"}function c5(r,t){return`Segment id ${r} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function p5(r,t,e){return`Bad: indices[${r}] == ${t} out of range [0, ${e})`}var hv={};Wt(hv,{collectGatherOpShapeInfo:()=>d5,computeOutShape:()=>f5,segOpComputeOptimalWindowSize:()=>m5});function m5(r,t){let e=!1,n;for(r<=yy?(n=r,e=!0):n=sp(r,Math.floor(Math.sqrt(r)));!e;)n>t||n===r?e=!0:n=sp(r,n+1);return n}function f5(r,t,e){let n=[],o=r.length;for(let s=0;so))throw new Error(`Expect batchDims in the range of [-${o}, ${o}], but got ${n}`);if(n<0&&(n+=o),n>s)throw new Error(`batchDims (${n}) must be less than rank(x) (\n ${s}).`);if(eWp(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function g5(r){return r.map(t=>Hl(t))}var Ur={};Wt(Ur,{nonMaxSuppressionV3Impl:()=>fy,nonMaxSuppressionV4Impl:()=>dy,nonMaxSuppressionV5Impl:()=>hy,whereImpl:()=>ay});var by={kernelName:ii,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,bo(J(e,\"float32\"),-1))}}};var SA={kernelName:oa,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Mt(J(e,\"float32\")),o=Se(ct(mt(1),n));return Ht(pt(r,o))}}}};var vA={kernelName:sa,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Se(ct(Mt(J(e,\"float32\")),1));return pt(r,n)}}}};var NA={kernelName:Zn,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=r,u=ge(e.shape,o);return u.length>0&&(a=ft(a,u)),R(a,e.shape)},b:()=>{let a=r,u=ge(n.shape,o);return u.length>0&&(a=ft(a,u)),R(a,n.shape)}}}};var TA={kernelName:Go,saveAllInputs:!0,gradFunc:(r,t)=>{let e={};return t.forEach((n,o)=>{e[o]=()=>r.clone()}),e}};var kA={kernelName:Wo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>It(e)}}};var EA={kernelName:kl,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>It(e)}}};var _A={kernelName:la,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Se(ct(mt(1),Mt(J(e,\"float32\")))))}}};var AA={kernelName:ua,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Se(X(mt(1),Mt(J(e,\"float32\"))));return pt(r,n)}}}};var $A={kernelName:ma,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=X(Mt(e),Mt(n)),u=D(r,pt(n,a)),l=ge(e.shape,o);return l.length>0&&(u=ft(u,l)),R(u,e.shape)},b:()=>{let a=X(Mt(e),Mt(n)),u=Ht(D(r,pt(e,a))),l=ge(n.shape,o);return l.length>0&&(u=ft(u,l)),R(u,n.shape)}}}};var DA={kernelName:ca,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,X(Mt(J(e,\"float32\")),1))}}};var RA={kernelName:pa,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,ct(mt(1),Mt(J(e,\"float32\"))))}}};function x5(r,t,e,n,o,s){let i=I(r,\"dy\",\"avgPool3dGrad\"),a=I(t,\"input\",\"avgPool3dGrad\"),u=i,l=a,c=!1;a.rank===4&&(c=!0,u=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),l=R(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),E(u.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${u.rank}.`),E(l.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${l.rank}.`),Ie(\"avgPool3dGrad\",o,s);let p={dy:u,input:l},m={filterSize:e,strides:n,pad:o,dimRoundingMode:s},f=k.runKernel(lp,p,m);return c?R(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}var FA=T({avgPool3dGrad_:x5});var OA={kernelName:El,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i,dimRoundingMode:a}=e;return{x:()=>FA(r,n,o,s,i,a)}}};function y5(r,t,e,n,o){let s=I(r,\"dy\",\"avgPoolGrad\"),i=I(t,\"input\",\"avgPoolGrad\");E(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let a=i,u=s,l=!1;i.rank===3&&(l=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),E(u.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${u.rank}.`),E(a.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${a.rank}.`);let c={dy:u,input:a},p={filterSize:e,strides:n,pad:o},m=k.runKernel(ap,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var PA=T({avgPoolGrad_:y5});var LA={kernelName:Uo,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i}=e;return{x:()=>PA(r,n,o,s,i)}}};var MA={kernelName:Ho,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t,e)=>{let[n,o]=t,{transposeA:s,transposeB:i}=e;return!s&&!i?{a:()=>Lt(r,o,!1,!0),b:()=>Lt(n,r,!0,!1)}:!s&&i?{a:()=>Lt(r,o,!1,!1),b:()=>Lt(r,n,!0,!1)}:s&&!i?{a:()=>Lt(o,r,!1,!0),b:()=>Lt(n,r,!1,!1)}:{a:()=>Lt(o,r,!0,!0),b:()=>Lt(r,n,!0,!0)}}};var zA={kernelName:ai,gradFunc:(r,t,e)=>{let{blockShape:n,crops:o}=e;return{x:()=>nu(r,n,o)}}};var BA={kernelName:p1,gradFunc:(r,t,e)=>{let n=e,o=n.inputShape,s=n.shape,i=Array.from(s);for(let u=o.length-1;u>=0;u--)if(o[u]===s[u])i[u]=1;else if(o[u]!==1)throw new Error(`broadcastTo(): [${o}] cannot be broadcast to [${s}].`);let a=[];for(let u=0;u1&&a.push(u);return{x:()=>ft(r,a,!0)}}};var VA={kernelName:lo,gradFunc:r=>({x:()=>r.clone()})};var GA={kernelName:qo,gradFunc:r=>({x:()=>It(r)})};var WA={kernelName:uo,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{clipValueMin:o,clipValueMax:s}=e;return{x:()=>_e(Rr(ln(n,o),Ln(n,s)),r,It(r))}}};var UA={kernelName:_l,inputsToSave:[\"x\"],gradFunc:by.gradFunc};var HA={kernelName:li,saveAllInputs:!0,gradFunc:(r,t,e)=>{let n=t.map(u=>u.shape),{axis:o}=e,s=lr(o,t[0].shape)[0],i=n.map(u=>u[s]);return mr(r,i,s).map(u=>()=>u)}};var qA={kernelName:Ko,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,{dilations:s,strides:i,pad:a,dataFormat:u}=e;return E(to(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>tm(n.shape,r,o,i,a,u),filter:()=>Cm(n,r,o.shape,i,a,u)}}};var KA={kernelName:jo,inputsToSave:[\"dy\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,{strides:s,pad:i,dataFormat:a,dimRoundingMode:u}=e;return{dy:()=>In(r,o,s,i,a,1,u),filter:()=>Cm(r,n,o.shape,s,i,a,u)}}};function b5(r,t,e,n,o){let s=r;r.rank===4&&(s=R(r,[1,r.shape[0],r.shape[1],r.shape[2],r.shape[3]]));let i=t;i.rank===4&&(i=R(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),E(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),E(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),E(e.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${e}.`),E(s.shape[4]===e[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${e[3]}.`),E(i.shape[4]===e[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${e[4]}).`);let a={x:s,dy:i},u={strides:n,pad:o,filterShape:e};return k.runKernel(fp,a,u)}var jA=T({conv3DBackpropFilter_:b5});var XA={kernelName:Al,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s}=e;E(to(n),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${n}'`);let[i,a]=t;return{x:()=>kx(i.shape,r,a,o,s),filter:()=>jA(i,r,a.shape,o,s)}}};var YA={kernelName:Xo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(Ht(fm(J(e,\"float32\"))),r)}}};var ZA={kernelName:Yo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(dm(J(e,\"float32\")),r)}}};var JA={kernelName:Zo,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o,exclusive:s,reverse:i}=e;return{x:()=>{let a=tv([o],n.rank),u=nm(r,o,s,!i);return a!=null&&(u=Ot(u,a)),u}}}};var QA={kernelName:Jo,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s,dimRoundingMode:i}=e,a=n==null?[1,1]:n;E(to(a),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${a}'`);let[u,l]=t;return E(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${u.rank}.`),E(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${l.rank}.`),E(u.shape[3]===l.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${u.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),E(Ar(o,a),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${o} and dilations '${a}'.`),Ie(\"depthwiseConv2d\",s,i),{x:()=>cy(u.shape,r,l,o,s,a,i),filter:()=>uy(u,r,l.shape,o,s,a,i)}}};var t2={kernelName:$l,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,s={x:n,filter:o,dy:r},i={x:n,filter:o,dy:r};return{x:()=>k.runKernel(jd,s,e),filter:()=>k.runKernel(Xd,i,e)}}};var e2={kernelName:ts,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t,n={dy:r,y:e};return{x:()=>k.runKernel(wp,n)}}};var r2={kernelName:ga,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t,n=D(er(Ht(Mt(e))),2/Math.sqrt(Math.PI));return{x:()=>D(r,n)}}};var n2={kernelName:es,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,e)}}};var o2={kernelName:ui,inputsToSave:[\"input\"],gradFunc:(r,t)=>{let[e]=t;return{input:()=>R(r,e.shape)}}};var s2={kernelName:ya,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,er(e))}}};var i2={kernelName:rs,gradFunc:r=>({x:()=>It(r)})};var a2={kernelName:ns,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=pt(r,J(n,\"float32\")),u=ge(e.shape,o);return u.length>0?R(ft(a,u),e.shape):a},b:()=>{let a=D(r,J(e,\"float32\")),u=ge(n.shape,o);u.length>0&&(a=R(ft(a,u),n.shape));let l=Mt(n);return Ht(pt(a,J(l,\"float32\")))}}}};var l2={kernelName:os,inputsToSave:[\"x\",\"mean\",\"variance\",\"scale\"],gradFunc:(r,t,e)=>{let{varianceEpsilon:n}=e,[o,s,i,a]=t,u=a==null?mt(1):a,l=ge(s.shape,o.shape),c=[];if(s.rank===1){for(let C=0;Cs.rank===1?R(D(D(r,Dr(R(f,[1,1,1,s.shape[0]]),c)),u),o.shape):R(D(D(r,f),u),o.shape),mean:()=>{let C=D(D(f,mt(-1)),m);return s.rank===1&&(C=ft(C,l)),R(C,s.shape)},variance:()=>{let C=D(D(d,p),m);return s.rank===1&&(C=ft(C,l)),R(C,s.shape)},scale:()=>{let C=D(p,f),N=D(r,C);return s.rank===1&&(N=ft(N,l)),R(N,s.shape)},offset:()=>{let C=r;return s.rank===1&&(C=ft(C,l)),R(C,s.shape)}}}};var p2={kernelName:ci,inputsToSave:[\"x\",\"indices\"],gradFunc:(r,t,e)=>{let[n,o]=t,{axis:s}=e,i=lr(s,n.shape)[0];return{x:()=>{let u=n.shape,l=o.size,c=u.slice(0,i),p=c.length,m=u.slice(s,u.length).slice(1),f=m.length,d=u2(0,p),h=u2(p+1,p+1+f),g=c2([c,[l],m]),x=R(r,g),b=R(o,[l]),w=c2([[p],d,h]),C=Ot(x,w),N=wm(C,b,n.shape[i]),_=ph(w);return N=Ot(N,_),N},indices:()=>o}}};function u2(r,t){let e=[];for(let n=r;n{let[e,n]=t;return{a:()=>It(e),b:()=>It(n)}}};var f2={kernelName:co,gradFunc:r=>({x:()=>J(r,\"float32\")})};var d2={kernelName:Ia,gradFunc:r=>({x:()=>It(r)})};var h2={kernelName:Sa,gradFunc:r=>({x:()=>It(r)})};var g2={kernelName:va,gradFunc:r=>({x:()=>It(r)})};var x2={kernelName:is,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{alpha:o}=e,s=Re(n,0);return{x:()=>_e(s,r,D(r,o))}}};var y2={kernelName:ka,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,X(e,1))}}};var b2={kernelName:as,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,J(e,\"float32\"))}}};var w2={kernelName:f1,inputsToSave:[],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e;return{logits:()=>{let i=er(n);return ct(r,D(ft(r,o,!0),i))}}}};function w5(r,t,e,n=5,o=1,s=1,i=.5){let a={x:r,y:t,dy:e},u={depthRadius:n,bias:o,alpha:s,beta:i};return k.runKernel(Np,a,u)}var C2=T({localResponseNormalizationBackprop_:w5});var I2={kernelName:Rl,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{depthRadius:s,bias:i,alpha:a,beta:u}=e;return{x:()=>C2(n,o,r,s,i,a,u)}}};function wy(r,t,e,n){return t.rankD(r,J($r(e,t),r.dtype))}}var gv={kernelName:ls,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{reductionIndices:o}=n,s=t[0],i=t[1],a=lr(o,s.shape),u=wy(r,i,s,a);return{x:()=>u.x()}}};var S2={kernelName:us,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>D(r,J(ln(e,n),\"float32\")),b:()=>D(r,J(om(e,n),\"float32\"))}}};function C5(r,t,e,n,o,s,i){let a=I(r,\"dy\",\"maxPool3dGrad\"),u=I(t,\"input\",\"maxPool3dGrad\"),l=I(e,\"output\",\"maxPool3dGrad\"),c=a,p=u,m=l,f=!1;u.rank===4&&(f=!0,c=R(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),p=R(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]]),m=R(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]])),E(c.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${c.rank}.`),E(p.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${p.rank}.`),E(m.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${m.rank}.`),Ie(\"maxPool3dGrad\",s,i);let d={dy:c,input:p,output:m},h={filterSize:n,strides:o,pad:s,dimRoundingMode:i},g=k.runKernel(kp,d,h);return f?R(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var v2=T({maxPool3dGrad_:C5});var N2={kernelName:Fl,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=e;return{x:()=>v2(r,n,o,s,i,a,u)}}};function I5(r,t,e,n,o,s,i){let a=I(r,\"dy\",\"maxPoolGrad\"),u=I(t,\"input\",\"maxPoolGrad\"),l=I(e,\"output\",\"maxPoolGrad\");E(u.rank===a.rank,()=>`Rank of input (${u.rank}) does not match rank of dy (${a.rank})`),E(a.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${a.rank}.`),E(u.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${u.rank}.`),Ie(\"maxPoolGrad\",s,i);let c={dy:a,input:u,output:l},p={filterSize:n,strides:o,pad:s,dimRoundingMode:i};return k.runKernel(Tp,c,p)}var T2=T({maxPoolGrad_:I5});var k2={kernelName:cs,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a}=e;return{x:()=>T2(r,n,o,s,i,a)}}};var E2={kernelName:ps,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=lr(o,n.shape),a=Q0(n.shape,s)[1],u=Jt(a);return{x:()=>{let c=n.shape.slice();s.forEach(f=>{c[f]=1});let p=R(r,c);return pt(D(p,cr(n.shape,\"float32\")),u)}}}};var _2={kernelName:ms,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{axis:o}=n,[s,i]=t,a=lr(o,s.shape),u=wy(r,i,s,a);return{x:()=>u.x()}}};var A2={kernelName:fs,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>D(r,J(Ln(e,n),\"float32\")),b:()=>D(r,J(Re(e,n),\"float32\"))}}};var $2={kernelName:ds,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Rt(r,s,n.shape)}}};var D2={kernelName:$a,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=ge(e.shape,o);return a.length>0?R(ft(r,a),e.shape):r},b:()=>{let a=D(r,Ht(Pi(pt(e,n)))),u=ge(n.shape,o);return u.length>0?R(ft(a,u),n.shape):a}}}};var R2={kernelName:hs,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=D(r,J(n,\"float32\")),u=ge(e.shape,o);return u.length>0?R(ft(a,u),e.shape):a},b:()=>{let a=D(r,J(e,\"float32\")),u=ge(n.shape,o);return u.length>0?R(ft(a,u),n.shape):a}}}};var F2={kernelName:pi,gradFunc:r=>({x:()=>Ht(r)})};var O2={kernelName:gs,inputsToSave:[\"indices\"],gradFunc:(r,t)=>{let e=t[0];return{indices:()=>Ne(e.shape,\"float32\")}}};var P2={kernelName:mi,gradFunc:r=>({x:()=>It(r)})};var L2={kernelName:fi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let{axis:n}=e;return vr(r,n).map(s=>()=>s)}};var xv={kernelName:xs,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Rt(r,s,n.shape)}}};var M2={kernelName:ys,inputsToSave:[\"a\",\"b\"],outputsToSave:[!0],gradFunc:(r,t)=>{let[e,n,o]=t,s=e,i=n,a=Pt(s.shape,i.shape);return{a:()=>{let c=J(i,\"float32\"),p=D(r,D(c,an(s,ct(c,mt(1))))),m=ge(s.shape,a);return m.length>0&&(p=ft(p,m)),R(p,s.shape)},b:()=>{let c=Re(s,0),p=_e(c,Sr(s),It(s)),m=D(r,D(o,p)),f=ge(i.shape,a);return f.length>0&&(m=ft(m,f)),R(m,i.shape)}}}};var z2={kernelName:bs,inputsToSave:[\"x\",\"alpha\"],gradFunc:(r,t)=>{let[e,n]=t,o=Re(e,0);return{x:()=>_e(o,r,D(r,n)),alpha:()=>{let s=_e(o,It(r),D(r,e)),i=ge(n.shape,r.shape);return i.length>0&&(s=ft(s,i)),R(s,n.shape)}}}};function S5(r,t,e){let n=r.shape.slice();n[e]=1;let o=R(t,n),s=Xu(r,e,!0,!1),i=Xu(r,e,!0,!0),a=D(s,i);return D(o,a)}function v5(r,t,e){let n=r.shape.length,o=n-e.length,s=v.getAxesPermutation(e,n),i=r;s!=null&&(i=Ot(r,s));let a=i.shape.slice(),l=a.splice(n-e.length,e.length).reduce((m,f)=>m*f,1);a.push(l);let c=i.reshape(a),p=S5(c,t,o);if(p=p.reshape(i.shape),s!=null){let m=v.getUndoAxesPermutation(s);p=Ot(p,m)}return p}var B2={kernelName:ws,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=[];return o==null?s=n.shape.map((i,a)=>a):typeof o==\"number\"?s=[o]:s=o,{x:()=>v5(n,r,s)}}};var V2={kernelName:Qo,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=pt(r,J(n,\"float32\")),u=ge(e.shape,o);return u.length>0?R(ft(a,u),e.shape):a},b:()=>{let a=D(r,J(e,\"float32\")),u=ge(n.shape,o);u.length>0&&(a=R(ft(a,u),n.shape));let l=Mt(n);return Ht(pt(a,J(l,\"float32\")))}}}};var G2={kernelName:Pa,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Ht(Mt(e)))}}};var W2={kernelName:vs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t,n=D(Ln(e,6),bo(e));return{x:()=>D(r,J(n,\"float32\"))}}};var U2={kernelName:Cs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,J(bo(e),\"float32\"))}}};var H2={kernelName:di,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,e.shape)}}};var q2={kernelName:Ss,inputsToSave:[\"images\"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>k.runKernel(Op,o,e)}}};var K2={kernelName:Is,inputsToSave:[\"images\"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>k.runKernel(Fp,o,e)}}};var j2={kernelName:Ns,gradFunc:(r,t,e)=>{let{dims:n}=e,o=lr(n,r.shape);return{x:()=>pr(r,o)}}};var X2={kernelName:Ts,gradFunc:r=>({x:()=>It(r)})};var Y2={kernelName:ks,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>Ht(pt(r,D(an(e,1.5),2)))}}};var Z2={kernelName:hi,inputsToSave:[\"condition\"],gradFunc:(r,t)=>{let[e]=t;return{condition:()=>J(It(e),\"float32\"),t:()=>D(r,J(e,r.dtype)),e:()=>D(r,J(eu(e),r.dtype))}}};var J2={kernelName:Ma,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Re(e,mt(0)),o=mt(mv),s=mt(fv),i=D(r,s),a=D(D(r,o),er(J(e,\"float32\")));return _e(n,i,a)}}}};var Q2={kernelName:_s,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,D(e,ct(mt(1),e)))}}};var t$={kernelName:Ba,gradFunc:r=>({x:()=>It(r)})};var e$={kernelName:Es,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(Jl(J(e,\"float32\")),r)}}};var r$={kernelName:za,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(rm(J(e,\"float32\")),r)}}};var n$={kernelName:gi,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{begin:o,size:s}=e,i=n.shape,[a,u]=q0(n,o,s),l=[];for(let c=0;ccn(r,l)}}};var o$={kernelName:Ds,outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{dim:o}=e,s=!0,i=D(r,n);return{logits:()=>ct(i,D(ft(i,[o],s),n))}}};var s$={kernelName:Va,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,Yr(e))}}};var yv={kernelName:xi,gradFunc:(r,t,e)=>{let{blockShape:n,paddings:o}=e;return{x:()=>Zl(r,n,o)}}};var bv={kernelName:yi,gradFunc:(r,t,e)=>{let{axis:n}=e;return{x:()=>ne(r,n)}}};var i$={kernelName:As,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,D(Se(J(e,\"float32\")),2))}}};var a$={kernelName:zl,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,D(J(e,\"float32\"),2))}}};var l$={kernelName:Rs,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=mt(2);return{a:()=>D(r,D(o,ct(e,n))),b:()=>D(r,D(o,ct(n,e)))}}};var u$={kernelName:po,gradFunc:r=>({x:()=>It(r)})};var c$={kernelName:Fs,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=r,u=ge(e.shape,o);return u.length>0&&(a=ft(a,u)),R(a,e.shape)},b:()=>{let a=r,u=ge(n.shape,o);return u.length>0&&(a=ft(a,u)),R(Ht(a),n.shape)}}}};var p$={kernelName:$s,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,o=n.shape.slice(),{axis:s}=e;lr(s,n.shape).forEach(l=>{o[l]=1});let a=R(r,o),u=D(a,cr(n.shape,\"float32\"));return{x:()=>u}}};var m$={kernelName:Os,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Mt(Jl(e)))}}};var f$={kernelName:Ps,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(ct(mt(1),Mt(e)),r)}}};var d$={kernelName:Jn,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{reps:o}=e;return{x:()=>{let i=It(n);if(n.rank===1)for(let a=0;a{let n=e,{perm:o}=n,s=ph(o);return{x:()=>Ot(r,s)}}};var g$={kernelName:bi,gradFunc:(r,t,e)=>{let n=e,{axis:o}=n;return{value:()=>nr(r,o)}}};var x$={kernelName:Wl,inputsToSave:[\"segmentIds\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>N5(r,e)}}};function N5(r,t){let e=Sn(t,It(t)),n=Li(r,e),o=ln(t,mt(0,\"int32\")),s=n.rank-o.rank;for(let a=0;a({x:()=>It(r)})};var T5=[by,SA,vA,NA,TA,kA,EA,_A,AA,$A,DA,RA,OA,LA,MA,zA,BA,VA,GA,WA,UA,HA,KA,qA,XA,YA,ZA,JA,QA,t2,V2,e2,r2,n2,o2,s2,a2,i2,l2,p2,m2,f2,d2,h2,g2,x2,y2,b2,w2,I2,gv,gv,S2,N2,k2,E2,_2,A2,$2,D2,R2,F2,O2,P2,L2,xv,xv,M2,z2,B2,G2,W2,U2,H2,q2,K2,j2,X2,Y2,Z2,J2,Q2,t$,e$,r$,n$,o$,s$,yv,yv,bv,bv,i$,l$,a$,u$,c$,p$,m$,f$,d$,h$,g$,x$,y$];for(let r of T5)h1(r);O().prototype.abs=function(){return this.throwIfDisposed(),Ee(this)};O().prototype.acos=function(){return this.throwIfDisposed(),ax(this)};O().prototype.acosh=function(){return this.throwIfDisposed(),lx(this)};O().prototype.add=function(r){return this.throwIfDisposed(),X(this,r)};O().prototype.all=function(r,t){return this.throwIfDisposed(),Zp(this,r,t)};O().prototype.any=function(r,t){return this.throwIfDisposed(),qu(this,r,t)};O().prototype.argMax=function(r){return this.throwIfDisposed(),Ai(this,r)};O().prototype.argMin=function(r){return this.throwIfDisposed(),ux(this,r)};O().prototype.asScalar=function(){return this.throwIfDisposed(),E(this.size===1,()=>\"The array must have only 1 element.\"),R(this,[])};O().prototype.asType=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.as1D=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.as2D=function(r,t){return this.throwIfDisposed(),R(this,[r,t])};O().prototype.as3D=function(r,t,e){return this.throwIfDisposed(),R(this,[r,t,e])};O().prototype.as4D=function(r,t,e,n){return this.throwIfDisposed(),R(this,[r,t,e,n])};O().prototype.as5D=function(r,t,e,n,o){return this.throwIfDisposed(),R(this,[r,t,e,n,o])};O().prototype.asin=function(){return this.throwIfDisposed(),cx(this)};O().prototype.asinh=function(){return this.throwIfDisposed(),px(this)};O().prototype.atan=function(){return this.throwIfDisposed(),mx(this)};O().prototype.atan2=function(r){return this.throwIfDisposed(),fx(this,r)};O().prototype.atanh=function(){return this.throwIfDisposed(),dx(this)};O().prototype.avgPool=function(r,t,e,n){return this.throwIfDisposed(),Yl(this,r,t,e,n)};O().prototype.batchToSpaceND=function(r,t){return this.throwIfDisposed(),Zl(this,r,t)};O().prototype.batchNorm=function(r,t,e,n,o){return this.throwIfDisposed(),Di(this,r,t,e,n,o)};O().prototype.broadcastTo=function(r){return this.throwIfDisposed(),Ri(this,r)};O().prototype.cast=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.ceil=function(){return this.throwIfDisposed(),Cx(this)};O().prototype.clipByValue=function(r,t){return this.throwIfDisposed(),Cr(this,r,t)};O().prototype.concat=function(r,t){return this.throwIfDisposed(),r instanceof Ft&&(r=[r]),ne([this,...r],t)};O().prototype.conv1d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Qp(this,r,t,e,n,o,s)};O().prototype.conv2dTranspose=function(r,t,e,n,o){return this.throwIfDisposed(),em(this,r,t,e,n,o)};O().prototype.conv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),In(this,r,t,e,n,o,s)};O().prototype.cos=function(){return this.throwIfDisposed(),Jl(this)};O().prototype.cosh=function(){return this.throwIfDisposed(),rm(this)};O().prototype.cumprod=function(r,t,e){return this.throwIfDisposed(),Xu(this,r,t,e)};O().prototype.cumsum=function(r,t,e){return this.throwIfDisposed(),nm(this,r,t,e)};O().prototype.depthToSpace=function(r,t){return this.throwIfDisposed(),_x(this,r,t)};O().prototype.depthwiseConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Fi(this,r,t,e,n,o,s)};O().prototype.dilation2d=function(r,t,e,n,o){return this.throwIfDisposed(),Ax(this,r,t,e,n,o)};O().prototype.divNoNan=function(r){return this.throwIfDisposed(),$x(this,r)};O().prototype.div=function(r){return this.throwIfDisposed(),pt(this,r)};O().prototype.dot=function(r){return this.throwIfDisposed(),Dx(this,r)};O().prototype.elu=function(){return this.throwIfDisposed(),Oi(this)};O().prototype.equal=function(r){return this.throwIfDisposed(),$r(this,r)};O().prototype.erf=function(){return this.throwIfDisposed(),Rx(this)};O().prototype.euclideanNorm=function(r,t){return this.throwIfDisposed(),Fx(this,r,t)};O().prototype.exp=function(){return this.throwIfDisposed(),er(this)};O().prototype.expandDims=function(r){return this.throwIfDisposed(),rr(this,r)};O().prototype.expm1=function(){return this.throwIfDisposed(),Ox(this)};O().prototype.fft=function(){return this.throwIfDisposed(),au(this)};O().prototype.flatten=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.floor=function(){return this.throwIfDisposed(),Pi(this)};O().prototype.floorDiv=function(r){return this.throwIfDisposed(),Yp(this,r)};O().prototype.gather=function(r,t){return this.throwIfDisposed(),Li(this,r,t)};O().prototype.greaterEqual=function(r){return this.throwIfDisposed(),ln(this,r)};O().prototype.greater=function(r){return this.throwIfDisposed(),Re(this,r)};O().prototype.ifft=function(){return this.throwIfDisposed(),tl(this)};O().prototype.irfft=function(){return this.throwIfDisposed(),xm(this)};O().prototype.isFinite=function(){return this.throwIfDisposed(),Px(this)};O().prototype.isInf=function(){return this.throwIfDisposed(),Lx(this)};O().prototype.isNaN=function(){return this.throwIfDisposed(),Mx(this)};O().prototype.leakyRelu=function(r){return this.throwIfDisposed(),Ql(this,r)};O().prototype.lessEqual=function(r){return this.throwIfDisposed(),Ln(this,r)};O().prototype.less=function(r){return this.throwIfDisposed(),om(this,r)};O().prototype.localResponseNormalization=function(r,t,e,n){return this.throwIfDisposed(),zx(this,r,t,e,n)};O().prototype.logSigmoid=function(){return this.throwIfDisposed(),Gx(this)};O().prototype.logSoftmax=function(r){return this.throwIfDisposed(),sm(this,r)};O().prototype.logSumExp=function(r,t){return this.throwIfDisposed(),im(this,r,t)};O().prototype.log=function(){return this.throwIfDisposed(),Sr(this)};O().prototype.log1p=function(){return this.throwIfDisposed(),tu(this)};O().prototype.logicalAnd=function(r){return this.throwIfDisposed(),Rr(this,r)};O().prototype.logicalNot=function(){return this.throwIfDisposed(),eu(this)};O().prototype.logicalOr=function(r){return this.throwIfDisposed(),am(this,r)};O().prototype.logicalXor=function(r){return this.throwIfDisposed(),Wx(this,r)};O().prototype.matMul=function(r,t,e){return this.throwIfDisposed(),Lt(this,r,t,e)};O().prototype.maxPool=function(r,t,e,n){return this.throwIfDisposed(),ru(this,r,t,e,n)};O().prototype.max=function(r,t){return this.throwIfDisposed(),Ir(this,r,t)};O().prototype.maximum=function(r){return this.throwIfDisposed(),Sn(this,r)};O().prototype.mean=function(r,t){return this.throwIfDisposed(),ve(this,r,t)};O().prototype.min=function(r,t){return this.throwIfDisposed(),Ja(this,r,t)};O().prototype.minimum=function(r){return this.throwIfDisposed(),Mi(this,r)};O().prototype.mirrorPad=function(r,t){return this.throwIfDisposed(),qx(this,r,t)};O().prototype.mod=function(r){return this.throwIfDisposed(),Kx(this,r)};O().prototype.mul=function(r){return this.throwIfDisposed(),D(this,r)};O().prototype.neg=function(){return this.throwIfDisposed(),Ht(this)};O().prototype.norm=function(r,t,e){return this.throwIfDisposed(),Qa(this,r,t,e)};O().prototype.notEqual=function(r){return this.throwIfDisposed(),Bs(this,r)};O().prototype.oneHot=function(r,t=1,e=0){return this.throwIfDisposed(),Ei(this,r,t,e)};O().prototype.onesLike=function(){return this.throwIfDisposed(),yr(this)};O().prototype.pad=function(r,t){return this.throwIfDisposed(),cn(this,r,t)};O().prototype.pool=function(r,t,e,n,o,s){return this.throwIfDisposed(),jx(this,r,t,e,n,o,s)};O().prototype.pow=function(r){return this.throwIfDisposed(),an(this,r)};O().prototype.prelu=function(r){return this.throwIfDisposed(),ou(this,r)};O().prototype.prod=function(r,t){return this.throwIfDisposed(),Xx(this,r,t)};O().prototype.reciprocal=function(){return this.throwIfDisposed(),ty(this)};O().prototype.relu=function(){return this.throwIfDisposed(),Fr(this)};O().prototype.relu6=function(){return this.throwIfDisposed(),lm(this)};O().prototype.reshapeAs=function(r){return this.throwIfDisposed(),R(this,r.shape)};O().prototype.reshape=function(r){return this.throwIfDisposed(),R(this,r)};O().prototype.resizeBilinear=function(r,t,e){return this.throwIfDisposed(),gy(this,r,t,e)};O().prototype.resizeNearestNeighbor=function(r,t,e){return this.throwIfDisposed(),xy(this,r,t,e)};O().prototype.reverse=function(r){return this.throwIfDisposed(),pr(this,r)};O().prototype.rfft=function(){return this.throwIfDisposed(),lu(this)};O().prototype.round=function(){return this.throwIfDisposed(),um(this)};O().prototype.rsqrt=function(){return this.throwIfDisposed(),cm(this)};O().prototype.selu=function(){return this.throwIfDisposed(),pm(this)};O().prototype.separableConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),mm(this,r,t,e,n,o,s)};O().prototype.sigmoid=function(){return this.throwIfDisposed(),Yr(this)};O().prototype.sign=function(){return this.throwIfDisposed(),ey(this)};O().prototype.sin=function(){return this.throwIfDisposed(),fm(this)};O().prototype.sinh=function(){return this.throwIfDisposed(),dm(this)};O().prototype.slice=function(r,t){return this.throwIfDisposed(),Rt(this,r,t)};O().prototype.softmax=function(r){return this.throwIfDisposed(),iu(this,r)};O().prototype.softplus=function(){return this.throwIfDisposed(),zs(this)};O().prototype.spaceToBatchND=function(r,t){return this.throwIfDisposed(),nu(this,r,t)};O().prototype.split=function(r,t){return this.throwIfDisposed(),mr(this,r,t)};O().prototype.sqrt=function(){return this.throwIfDisposed(),Se(this)};O().prototype.square=function(){return this.throwIfDisposed(),Mt(this)};O().prototype.squaredDifference=function(r){return this.throwIfDisposed(),ym(this,r)};O().prototype.squeeze=function(r){return this.throwIfDisposed(),Mn(this,r)};O().prototype.stack=function(r,t){this.throwIfDisposed();let e=r instanceof Ft?[this,r]:[this,...r];return nr(e,t)};O().prototype.step=function(r){return this.throwIfDisposed(),bo(this,r)};O().prototype.stridedSlice=function(r,t,e,n,o,s,i,a){return this.throwIfDisposed(),ry(this,r,t,e,n,o,s,i,a)};O().prototype.sub=function(r){return this.throwIfDisposed(),ct(this,r)};O().prototype.sum=function(r,t){return this.throwIfDisposed(),ft(this,r,t)};O().prototype.tan=function(){return this.throwIfDisposed(),ny(this)};O().prototype.tanh=function(){return this.throwIfDisposed(),$i(this)};O().prototype.tile=function(r){return this.throwIfDisposed(),Dr(this,r)};O().prototype.toBool=function(){return this.throwIfDisposed(),J(this,\"bool\")};O().prototype.toFloat=function(){return this.throwIfDisposed(),J(this,\"float32\")};O().prototype.toInt=function(){return this.throwIfDisposed(),J(this,\"int32\")};O().prototype.topk=function(r,t){return this.throwIfDisposed(),oy(this,r,t)};O().prototype.transpose=function(r){return this.throwIfDisposed(),Ot(this,r)};O().prototype.unique=function(r){return this.throwIfDisposed(),sy(this,r)};O().prototype.unsortedSegmentSum=function(r,t){return this.throwIfDisposed(),wm(this,r,t)};O().prototype.unstack=function(r){return this.throwIfDisposed(),vr(this,r)};O().prototype.where=function(r,t){return this.throwIfDisposed(),_e(r,this,t)};O().prototype.zerosLike=function(){return this.throwIfDisposed(),It(this)};var vn=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,vn.prototype)}},Hr=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Hr.prototype)}},M=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,M.prototype)}},St=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,St.prototype)}},Im=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Im.prototype)}};var xh=class{constructor(t){this.maxEntries=t||100,this.cache=new Map}get(t){let e;return this.cache.has(t)&&(e=this.cache.get(t),this.cache.delete(t),this.cache.set(t,e)),e}put(t,e){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxEntries){let n=this.cache.keys().next().value;this.cache.delete(n)}this.cache.set(t,e)}getMaxEntries(){return this.maxEntries}setMaxEntries(t){if(t<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${t}.`);if(this.maxEntries>t)for(let e=0;ee.toUpperCase())}var Co={};function Sm(r){if(r==null)return null;let t={};return t.className=r.getClassName(),t.config=r.getConfig(),t}function wv(r){if(!(r==null||typeof r!=\"object\"))if(Array.isArray(r))r.forEach(t=>wv(t));else{let t=Object.keys(r);for(let e of t){let n=r[e];n!=null&&typeof n==\"object\"&&(!Array.isArray(n)&&n.type===\"ndarray\"&&typeof n.value==\"number\"?r[e]=n.value:wv(n))}}}function Gi(r,t={},e={},n=\"object\",o=!1){if(typeof r==\"string\"){let s=r,i;if(s in e)i=e[s];else if(s in Co)i=Co[s];else if(i=t[s],i==null)throw new M(`Unknown ${n}: ${r}. This may be due to one of the following reasons:\n1. The ${n} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return i}else{let s=r;if(s.className==null||s.config==null)throw new M(`${n}: Improper config format: ${JSON.stringify(s)}.\n'className' and 'config' must set.`);let i=s.className,a,u;if(i in e?[a,u]=e[i]:i in Co?[a,u]=Co.className:i in t&&([a,u]=t[i]),a==null)throw new M(`Unknown ${n}: ${i}. This may be due to one of the following reasons:\n1. The ${n} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(u!=null){let l={};for(let f of Object.keys(Co))l[f]=Co[f];for(let f of Object.keys(e))l[f]=e[f];let c=s.config;c.customObjects=l;let p=Object.assign({},Co);for(let f of Object.keys(e))Co[f]=e[f];wv(s.config);let m=u(a,s.config,e,o);return Co=Object.assign({},p),m}else{let l=Object.assign({},Co);for(let p of Object.keys(e))Co[p]=e[p];let c=new a(s.config);return Co=Object.assign({},l),c}}}function k5(r,t){return rt?1:0}function yh(r,t){return-1*k5(r,t)}function vo(r){if(r==null)return r;let t=[];for(let e of r)t.indexOf(e)===-1&&t.push(e);return t}function b$(r){if(r==null)throw new M(`Invalid value in obj: ${JSON.stringify(r)}`);for(let t in r)if(r.hasOwnProperty(t))return!1;return!0}function Wi(r,t,e){if(e!=null&&r.indexOf(e)<0)throw new M(`${e} is not a valid ${t}. Valid values are ${r} or null/undefined.`)}function Cy(r,t,e=0,n=1/0){return ro(e>=0),ro(n>=e),Array.isArray(r)&&r.length>=e&&r.length<=n&&r.every(o=>typeof o===t)}function Ze(r,t){Array.isArray(r)?(y.assert(r.length>0,()=>`${t} is unexpectedly an empty array.`),r.forEach((e,n)=>Ze(e,`element ${n+1} of ${t}`))):y.assert(Number.isInteger(r)&&r>0,()=>`Expected ${t} to be a positive integer, but got ${w$(r)}.`)}function w$(r){return r===null?\"null\":Array.isArray(r)?\"[\"+r.map(t=>w$(t)).join(\",\")+\"]\":typeof r==\"string\"?`\"${r}\"`:`${r}`}function C$(r,t,e){let n=e!=null?e():y.now(),o;return(...i)=>{let a=e!=null?e():y.now();return a-n0){let e=`${r}_${t}`;return vm.set(e,1),e}else return r}var A5=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\\._\\/]*$/);function _$(r){return!!r.match(A5)}function A$(r){return r===parseInt(r.toString(),10)}function No(r,t,e){t==null&&(t=0),e==null&&(e=r.length);let n=1;for(let o=t;ot&&(t=n)}return t}function Zr(r,t){if(t{if(r.shape.length!==2)throw new M(`repeat() expects a rank-2 tensor, but received a rank-${r.shape.length} tensor.`);let e=nl(r,1);return Ey(e,[1,t,1])})}function D$(r){let t=[No(r.shape)];return R(r,t)}function R$(r){if(r.rank<=1)throw new M(`batchFlatten requires a minimum rank of 2. Got rank: ${r.rank}.`);let t=[r.shape[0],No(r.shape,1)];return R(r,t)}function rl(r,t,e){return B(()=>{switch(r.rank){case 1:return hm(r,t,e);case 2:return dh(r,[t,0],[e,r.shape[1]]);case 3:return gm(r,[t,0,0],[e,r.shape[1],r.shape[2]]);case 4:return ec(r,[t,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3]]);case 5:return Rt(r,[t,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4]]);case 6:return Rt(r,[t,0,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4],r.shape[5]]);default:throw new M(`sliceAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}})}function vv(r,t,e){return B(()=>{switch(r.rank){case 1:return hm(r,t,e);case 2:return dh(r,[0,t],[r.shape[0],e]);case 3:return gm(r,[0,0,t],[r.shape[0],r.shape[1],e]);case 4:return ec(r,[0,0,0,t],[r.shape[0],r.shape[1],r.shape[2],e]);default:throw new M(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function wh(r,t,e,n){return B(()=>{switch(r.rank){case 1:return hm(r,t,e);case 2:switch(n){case 1:return rl(r,t,e);case 2:return vv(r,t,e);default:throw new M(`The axis is not within the rank of the tensor ${n}`)}case 3:switch(n){case 1:return rl(r,t,e);case 2:return gm(r,[0,t,0],[r.shape[0],e,r.shape[2]]);case 3:return vv(r,t,e);default:throw new M(`The axis is not within the rank of the tensor ${n}`)}case 4:switch(n){case 1:return rl(r,t,e);case 2:return ec(r,[0,t,0,0],[r.shape[0],e,r.shape[2],r.shape[3]]);case 3:return ec(r,[0,0,t,0],[r.shape[0],r.shape[1],e,r.shape[3]]);case 4:return vv(r,t,e);default:throw new M(`The axis is not within the rank of the tensor ${n}`)}default:throw new M(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function Nm(r,t=-1){let e;return t<0&&(e=r[0].rank,e!==0?t=e:t=0),t===r[0].rank&&(t=-1),ne(r,t)}function Tv(r,t){switch(r.rank){case 1:return Ix([r,t]);case 2:return Sx([r,t],0);case 3:return vx([r,t],0);case 4:return Nx([r,t],0);default:throw new M(`concatAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}}function Ey(r,t){if(Array.isArray(t)||(t=[t]),r.rank!==t.length)throw new M(`The length of input n (${t.length}) does not match the number of dimensions in input x (${r.rank})`);return Dr(r,t)}function Tm(r,t=0,e=1,n,o){return tc(r,t,e,n,o)}function To(r,t,e,n){if(r.rank<2||t.rank<2)throw new St(`dot requires both inputs to be rank >= 2 but got x shape = ${r.shape} and y shape = ${t.shape}`);if(t.rank>=3){let o=r.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(o!==s)throw new St(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${r.shape} and y shape = ${t.shape}`)}if(r.rank===2&&t.rank===2)return uu.matMul({a:r,b:t,transposeA:!1,transposeB:!1,bias:n?Nv(r.rank,n,mn()):null,activation:e});{let o=r.shape.slice(),s=o.pop();r=R(r,[-1,s]);let i=t.shape.slice(),a=i.pop(),u=i.pop(),l=[...i,a],c=Array.from({length:t.rank},(d,h)=>h===0?t.rank-2:h<=t.rank-2?h-1:h);t=R(Ot(t,c),[u,-1]);let p=[...o,...l],m=!1,f=!1;return R(uu.matMul({a:r,b:t,transposeA:m,transposeB:f,bias:n?Nv(r.rank,n,mn()):null,activation:e}),p)}}function _y(r,t,e){return B(()=>(Array.isArray(t)?t=Me(t,\"int32\"):t=J(t,\"int32\"),Li(r,t,e)))}function lc(r){return D(r,r)}function Nv(r,t,e){let n=t.shape;if(t.rank!==1&&t.rank!==r)throw new M(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${r}`);if(r===5){if(e===\"channelsFirst\")return n.length===1?R(t,[1,n[0],1,1,1]):R(t,[1,n[3],n[0],n[1],n[2]]);if(e===\"channelsLast\")return n.length===1?R(t,[1,1,1,1,n[0]]):R(t,[1].concat(n))}else if(r===4){if(e===\"channelsFirst\")return n.length===1?R(t,[1,n[0],1,1]):R(t,[1,n[2],n[0],n[1]]);if(e===\"channelsLast\")return n.length===1?R(t,[1,1,1,n[0]]):R(t,[1].concat(n))}else if(r===3){if(e===\"channelsFirst\")return n.length===1?R(t,[1,n[0],1]):R(t,[1,n[1],n[0]]);if(e===\"channelsLast\")return n.length===1?R(t,[1,1,n[0]]):R(t,[1].concat(n))}else if(r<3)return t;throw new M(`Unsupported input rank by biasAdd: ${t.rank}`)}function fn(r,t,e){return B(()=>(e==null&&(e=mn()),Fe(e),X(r,Nv(r.rank,t,e))))}function F$(r,t=1){if(t!==1)throw new St(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Oi(r)}function O$(r){return B(()=>pt(r,X(Ee(r),1)))}function Ay(r,t,e,n){return B(()=>lv(r,t,e,n))}function P$(r){return B(()=>{let t=X(.5,D(.2,r));return Cr(t,0,1)})}function xu(r,t,e=!1){return e?r():t()}var L$=[\"fanIn\",\"fanOut\",\"fanAvg\"],M$=[\"normal\",\"uniform\",\"truncatedNormal\"];function $5(r){Wi(L$,\"FanMode\",r)}function D5(r){Wi(M$,\"Distribution\",r)}var dn=class extends Q.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},km=class extends dn{apply(t,e){return Ne(t,e)}};km.className=\"Zeros\";Q.registerClass(km);var yu=class extends dn{apply(t,e){return cr(t,e)}};yu.className=\"Ones\";Q.registerClass(yu);var Em=class extends dn{constructor(t){if(super(),typeof t!=\"object\")throw new M(`Expected argument of type ConstantConfig but got ${t}`);if(t.value===void 0)throw new M(`config must have value set but got ${t}`);this.value=t.value}apply(t,e){return B(()=>D(mt(this.value),cr(t,e)))}getConfig(){return{value:this.value}}};Em.className=\"Constant\";Q.registerClass(Em);var _m=class extends dn{constructor(t){super(),this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=t.minval||this.DEFAULT_MINVAL,this.maxval=t.maxval||this.DEFAULT_MAXVAL,this.seed=t.seed}apply(t,e){return zi(t,this.minval,this.maxval,e)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};_m.className=\"RandomUniform\";Q.registerClass(_m);var Am=class extends dn{constructor(t){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=t.mean||this.DEFAULT_MEAN,this.stddev=t.stddev||this.DEFAULT_STDDEV,this.seed=t.seed}apply(t,e){if(e=e||\"float32\",e!==\"float32\"&&e!==\"int32\")throw new St(`randomNormal does not support dType ${e}.`);return Tm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Am.className=\"RandomNormal\";Q.registerClass(Am);var $m=class extends dn{constructor(t){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=t.mean||this.DEFAULT_MEAN,this.stddev=t.stddev||this.DEFAULT_STDDEV,this.seed=t.seed}apply(t,e){if(e=e||\"float32\",e!==\"float32\"&&e!==\"int32\")throw new St(`truncatedNormal does not support dType ${e}.`);return bm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};$m.className=\"TruncatedNormal\";Q.registerClass($m);var Dm=class extends dn{constructor(t){super(),this.gain=t.gain!=null?t.gain:1}apply(t,e){return B(()=>{if(t.length!==2||t[0]!==t[1])throw new M(\"Identity matrix initializer can only be used for 2D square matrices.\");return D(this.gain,Yu(t[0]))})}getConfig(){return{gain:this.gain}}};Dm.className=\"Identity\";Q.registerClass(Dm);function R5(r,t=\"channelsLast\"){let e,n;if(Fe(t),r.length===2)e=r[0],n=r[1];else if([3,4,5].indexOf(r.length)!==-1){if(t===\"channelsFirst\"){let o=No(r,2);e=r[1]*o,n=r[0]*o}else if(t===\"channelsLast\"){let o=No(r,0,r.length-2);e=r[r.length-2]*o,n=r[r.length-1]*o}}else{let o=No(r);e=Math.sqrt(o),n=Math.sqrt(o)}return[e,n]}var qr=class extends dn{constructor(t){if(super(),t.scale<0)throw new M(`scale must be a positive float. Got: ${t.scale}`);this.scale=t.scale==null?1:t.scale,this.mode=t.mode==null?\"fanIn\":t.mode,$5(this.mode),this.distribution=t.distribution==null?\"normal\":t.distribution,D5(this.distribution),this.seed=t.seed}apply(t,e){let n=R5(t),o=n[0],s=n[1],i=this.scale;if(this.mode===\"fanIn\"?i/=Math.max(1,o):this.mode===\"fanOut\"?i/=Math.max(1,s):i/=Math.max(1,(o+s)/2),this.distribution===\"normal\"){let a=Math.sqrt(i);if(e=e||\"float32\",e!==\"float32\"&&e!==\"int32\")throw new St(`${this.getClassName()} does not support dType ${e}.`);return bm(t,0,a,e,this.seed)}else{let a=Math.sqrt(3*i);return zi(t,-a,a,e)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};qr.className=\"VarianceScaling\";Q.registerClass(qr);var uc=class extends qr{constructor(t){super({scale:1,mode:\"fanAvg\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return qr.className}};uc.className=\"GlorotUniform\";Q.registerClass(uc);var cc=class extends qr{constructor(t){super({scale:1,mode:\"fanAvg\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return qr.className}};cc.className=\"GlorotNormal\";Q.registerClass(cc);var pc=class extends qr{constructor(t){super({scale:2,mode:\"fanIn\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return qr.className}};pc.className=\"HeNormal\";Q.registerClass(pc);var mc=class extends qr{constructor(t){super({scale:2,mode:\"fanIn\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return qr.className}};mc.className=\"HeUniform\";Q.registerClass(mc);var fc=class extends qr{constructor(t){super({scale:1,mode:\"fanIn\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return qr.className}};fc.className=\"LeCunNormal\";Q.registerClass(fc);var dc=class extends qr{constructor(t){super({scale:1,mode:\"fanIn\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return qr.className}};dc.className=\"LeCunNormal\";Q.registerClass(dc);var Rm=class extends dn{constructor(t){if(super(),this.DEFAULT_GAIN=1,this.gain=t.gain==null?this.DEFAULT_GAIN:t.gain,this.seed=t.seed,this.seed!=null)throw new St(\"Random seed is not implemented for Orthogonal Initializer yet.\")}apply(t,e){return B(()=>{if(t.length<2)throw new St(\"Shape must be at least 2D.\");t[0]*t[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${t[0]*t[1]}) elements: Slowness may result.`);let n=t[0]>t[1]?[t[1],t[0]]:t,o=Tm(n,0,1,\"float32\"),s=pv.gramSchmidt(o);return t[0]>t[1]&&(s=Ot(s)),D(this.gain,s)})}getConfig(){return{gain:this.gain,seed:this.seed}}};Rm.className=\"Orthogonal\";Q.registerClass(Rm);var z$={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 B$(r,t={}){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,\"initializer\")}function Te(r){return Sm(r)}function de(r){if(typeof r==\"string\"){let t=r in z$?z$[r]:r;if(t===\"GlorotNormal\")return new cc;if(t===\"GlorotUniform\")return new uc;if(t===\"HeNormal\")return new pc;if(t===\"HeUniform\")return new mc;if(t===\"LeCunNormal\")return new fc;if(t===\"LeCunUniform\")return new dc;{let e={};return e.className=t,e.config={},B$(e)}}else return r instanceof dn?r:B$(r)}function $y(r){return Array.isArray(r)&&Array.isArray(r[0])}function Fm(r){return r.length===0?[]:Array.isArray(r[0])?r:[r]}function Nt(r){let t;if(Array.isArray(r)){if(r.length!==1)throw new M(`Expected Tensor length to be 1; got ${r.length}`);t=r[0]}else t=r;return t}function Bt(r){if(Array.isArray(r)&&Array.isArray(r[0])){if(r.length===1)return r=r,r[0];throw new M(`Expected exactly 1 Shape; got ${r.length}`)}else return r}function Om(r){let t=0;for(let e of r)e.shape.length===0?t+=1:t+=e.shape.reduce((n,o)=>n*o);return t}var G$=\"Variable\",Ch=class{constructor(t,e=\"float32\",n=G$,o=!0,s=null){this.dtype=e==null?\"float32\":e,this.shape=t.shape,this.id=vy(),n=n==null?G$:n,this.originalName=Ny(n),this.name=Ty(this.originalName),this.trainable_=o,this.constraint=s,this.val=iy(t,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(t){return this.assertNotDisposed(),O5(this.val,t),this.val.id!==t.id&&(this.val.assign(t),this.constraint!=null&&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(t){this.trainable_=t,this.val.trainable=t}};function O5(r,t){if(r.shape.toString()!==t.shape.toString())throw new Error(\"Shape mismatch: \"+JSON.stringify(r.shape)+\" vs. \"+JSON.stringify(t.shape))}function Ih(r){return r.map(t=>t.read())}function Pm(r){r.forEach(t=>{t[0].write(t[1])})}var ye=class{constructor(t){this.dtype=t.dtype,this.shape=t.shape,t.shape!=null?this.ndim=t.shape.length:this.ndim=t.ndim,this.maxNDim=t.maxNDim,this.minNDim=t.minNDim,this.axes=t.axes||{}}},Jr=class{constructor(t,e,n,o,s,i,a){this.dtype=t,this.shape=e,this.sourceLayer=n,this.inputs=o,this.callArgs=s,this.outputTensorIndex=a,this.id=vy(),i!=null&&(this.originalName=Ny(i),this.name=Ty(this.originalName)),this.rank=e.length}},P5=0,ol=class{constructor(t,e){this.callArgs=e,this.id=P5++,this.outboundLayer=t.outboundLayer,this.inboundLayers=t.inboundLayers,this.nodeIndices=t.nodeIndices,this.tensorIndices=t.tensorIndices,this.inputTensors=t.inputTensors,this.outputTensors=t.outputTensors,this.inputMasks=t.inputMasks,this.outputMasks=t.outputMasks,this.inputShapes=t.inputShapes,this.outputShapes=t.outputShapes;for(let n of t.inboundLayers)n!=null&&n.outboundNodes.push(this);t.outboundLayer.inboundNodes.push(this)}getConfig(){let t=[];for(let e of this.inboundLayers)e!=null?t.push(e.name):t.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:t,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},L5=0,$t=class extends Q.Serializable{constructor(t={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=L5++,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 e=t.name;if(!e){let n=this.getClassName();e=So(n)+\"_\"+gu(n)}if(this.name=e,this.trainable_=t.trainable==null?!0:t.trainable,t.inputShape!=null||t.batchInputShape!=null){let n;if(t.batchInputShape!=null)n=t.batchInputShape;else if(t.inputShape!=null){let s=null;t.batchSize!=null&&(s=t.batchSize),n=[s].concat(t.inputShape)}this.batchInputShape=n;let o=t.dtype;o==null&&(o=t.inputDType),o==null&&(o=\"float32\"),this.dtype=o}t.weights!=null?this.initialWeights=t.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(t,e){return t.name+\"_ib-\"+e.toString()}getNodeAtIndex(t,e){if(this.inboundNodes.length===0)throw new Hr(`The layer has never been called and thus has no defined ${e}.`);if(this.inboundNodes.length<=t)throw new M(`Asked to get ${e} at node ${t}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[t]}getInputAt(t){return Nr(this.getNodeAtIndex(t,\"input\").inputTensors)}getOutputAt(t){return Nr(this.getNodeAtIndex(t,\"output\").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new vn(`Layer ${this.name} has multiple inbound nodes, hence the notion of \"layer input\" is ill-defined. Use \\`getInputAt(nodeIndex)\\` instead.`);if(this.inboundNodes.length===0)throw new vn(`Layer ${this.name} is not connected, no input to return.`);return Nr(this.getNodeAtIndex(0,\"input\").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new vn(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new vn(`Layer ${this.name} has multiple inbound nodes, hence the notion of \"layer output\" is ill-defined. Use \\`getOutputAt(nodeIndex)\\` instead.`);return Nr(this.getNodeAtIndex(0,\"output\").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(t=>t())}get updates(){return this._updates}get built(){return this._built}set built(t){this._built=t}get trainable(){return this.trainable_}set trainable(t){this._trainableWeights.forEach(e=>e.trainable=t),this.trainable_=t}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(t=>t.trainable):[]}set trainableWeights(t){this._trainableWeights=t}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(t=>!t.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(t){this._nonTrainableWeights=t}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(t){if(t=xe(t),this.inputSpec==null||this.inputSpec.length===0)return;let e=xe(this.inputSpec);if(t.length!==e.length)throw new M(`Layer ${this.name} expects ${e.length} inputs, but it received ${t.length} input tensors. Input received: ${t}`);for(let n=0;ns.maxNDim)throw new M(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${s.maxNDim}, found ndim=${i}`);if(s.minNDim!=null&&i=0?a[l]:a[a.length+l];if(c!=null&&[c,null].indexOf(p)===-1)throw new M(`Input ${n} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${c} but got shape ${a}.`)}}if(s.shape!=null)for(let a=0;a{if(!this.built){this.assertInputCompatibility(t);let i=[];for(let a of xe(t))i.push(a.shape);this.build(Nr(i)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&s&&(this._refCount=1)}if(this.assertInputCompatibility(t),s){let i=this.call(t,e),a=xe(i),u=[];for(let l of a)n.indexOf(l)!==-1&&(l=l.clone()),u.push(l);if(i=Nr(u),this.activityRegularizer!=null)throw new St(\"Layer invocation in the presence of activity regularizer(s) is not supported yet.\");return i}else{let i=M5(t),a=this.computeOutputShape(i),u,l=z5(t);if(this.warnOnIncompatibleInputShape(Array.isArray(t)?i[0]:i),a!=null&&a.length>0&&Array.isArray(a[0])?u=a.map((c,p)=>new Jr(l,c,this,xe(t),e,this.name,p)):u=new Jr(l,a,this,xe(t),e,this.name),this.addInboundNode(t,u,null,null,i,a,e),this._refCount++,this.activityRegularizer!=null)throw new St(\"Layer invocation in the presence of activity regularizer(s) is not supported yet.\");return u}})}warnOnIncompatibleInputShape(t){if(this.batchInputShape!=null)if(t.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(t)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let e=!1;this.batchInputShape.forEach((n,o)=>{n!=null&&t[o]!=null&&t[o]!==n&&(e=!0)}),e&&console.warn(`The shape of the input tensor (${JSON.stringify(t)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new vn(`The layer ${this.name} has never been called and thus has no defined output shape.`);let t=[];for(let e of this.inboundNodes){let n=JSON.stringify(e.outputShapes);t.indexOf(n)===-1&&t.push(n)}if(t.length===1){let e=this.inboundNodes[0].outputShapes;return Array.isArray(e)&&Array.isArray(e[0])&&e.length===1?e[0]:e}else throw new vn(`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 Hr(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Om(this.weights)}build(t){this.built=!0}getWeights(t=!1){return Ih(t?this.trainableWeights:this.weights)}setWeights(t){B(()=>{let e=this.weights;if(e.length!==t.length)throw new M(`You called setWeights(weights) on layer \"${this.name}\" with a weight list of length ${t.length}, but the layer was expecting ${e.length} weights. Provided weights: ${t}...`);if(e.length===0)return;let n=[],o=Ih(e);for(let s=0;ss.apply(c.read())),i==null&&(i=!0),i?this._trainableWeights.push(c):this._nonTrainableWeights.push(c),c}setFastWeightInitDuringBuild(t){this.fastWeightInitDuringBuild=t}addLoss(t){t==null||Array.isArray(t)&&t.length===0||(t=xe(t),this._losses!==void 0&&this._losses!==null&&this.losses.push(...t))}computeOutputShape(t){return t}computeMask(t,e){if(!this.supportsMasking){if(e!=null)if(Array.isArray(e))e.forEach(n=>{if(n!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return e}addInboundNode(t,e,n,o,s,i,a=null){let u=xe(t);e=xe(e),n=xe(n),o=xe(o),s=Fm(s),i=Fm(i);let l=[],c=[],p=[];for(let m of u)l.push(m.sourceLayer),c.push(m.nodeIndex),p.push(m.tensorIndex);new ol({outboundLayer:this,inboundLayers:l,nodeIndices:c,tensorIndices:p,inputTensors:u,outputTensors:e,inputMasks:n,outputMasks:o,inputShapes:s,outputShapes:i},a);for(let m=0;mt.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)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(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let t=0;return--this._refCount===0&&(t=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:t}}};function M5(r){r=xe(r);let t=[];for(let e of r)t.push(e.shape);return Nr(t)}function z5(r){return\"float32\"}function kv(r,t,e){if((t==null||e!=null&&e>0)&&(t=r.sourceLayer,e=r.nodeIndex),t.inboundNodes.length===0)return[r];{let n=t.inboundNodes[e];if(n.inboundLayers.length===0)return n.inputTensors;{let o=[];for(let s=0;sd.name),u=[],l=t.names();for(let d of a)l.indexOf(d)!==-1?u.push(t.getValue(d)):u.push(null);n!=null&&(n.maxNumTensors=-1/0,n.minNumTensors=1/0);let c=a.join(\",\")+\"|\"+t.names().sort().join(\",\"),p=Ry.get(c),m;if(p==null){let d=V5(i,t);p=d.sorted,m=d.recipientCounts,Ry.put(c,p),Fy.put(c,m)}m={},o||Object.assign(m,Fy.get(c));let f=new ko(t);for(let d=0;dn.maxNumTensors&&(n.maxNumTensors=F),F0,()=>\"Expected at least one fetch, got none\");let e=[],n={};if(r.length===1){let o=W$(r[0],t);e=o.sorted,n=o.recipientMap}else{let o=new Set;for(let s of r){let{sorted:i,recipientMap:a}=W$(s,t);for(let u of i)o.has(u.name)||(e.push(u),o.add(u.name));for(let u in a)n[u]==null&&(n[u]=new Set),a[u].forEach(l=>n[u].add(l))}}return{sorted:e,recipientCounts:G5(n)}}function G5(r){let t={};for(let e in r)t[e]=r[e].size;return t}function W$(r,t){let e=new Set,n=[],o={};for(let a of t.names())e.add(a);let s=[],i=[];for(s.push(r);s.length>0;){let a=s[s.length-1];if(e.has(a.name)){s.pop();continue}let u=i[i.length-1]===s.length-1;if(a.inputs.length===0||u)s.pop(),n.push(a),e.add(a.name),u&&i.pop();else{i.push(s.length-1);for(let l of a.inputs)o[l.name]==null&&(o[l.name]=new Set),o[l.name].add(a.name),!e.has(l.name)&&s.push(l)}}return{sorted:n,recipientMap:o}}function W5(r){let t;if(r.sourceLayer.inboundNodes.length===1)t=r.sourceLayer.output;else{let e=null;for(let n=0;n100,U$);var K$={};Wt(K$,{maxNorm:()=>H5,minMaxNorm:()=>j5,nonNeg:()=>K5,unitNorm:()=>q5});function Ev(r,t){return B(()=>Se(ft(D(r,r),t,!0)))}var gc=class extends Q.Serializable{getConfig(){return{}}},Lm=class extends gc{constructor(t){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=t.maxValue!=null?t.maxValue:this.defaultMaxValue,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>{let e=Ev(t,this.axis),n=Cr(e,0,this.maxValue);return D(t,pt(n,X(ir(),e)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};Lm.className=\"MaxNorm\";Q.registerClass(Lm);var Mm=class extends gc{constructor(t){super(),this.defaultAxis=0,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>pt(t,X(ir(),Ev(t,this.axis))))}getConfig(){return{axis:this.axis}}};Mm.className=\"UnitNorm\";Q.registerClass(Mm);var zm=class extends gc{apply(t){return Fr(t)}};zm.className=\"NonNeg\";Q.registerClass(zm);var Bm=class extends gc{constructor(t){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=t.minValue!=null?t.minValue:this.defaultMinValue,this.maxValue=t.maxValue!=null?t.maxValue:this.defaultMaxValue,this.rate=t.rate!=null?t.rate:this.defaultRate,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>{let e=Ev(t,this.axis),n=X(D(this.rate,Cr(e,this.minValue,this.maxValue)),D(1-this.rate,e));return D(t,pt(n,X(ir(),e)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};Bm.className=\"MinMaxNorm\";Q.registerClass(Bm);var H$={maxNorm:\"MaxNorm\",minMaxNorm:\"MinMaxNorm\",nonNeg:\"NonNeg\",unitNorm:\"UnitNorm\"};function ze(r){return Sm(r)}function q$(r,t={}){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,\"constraint\")}function Be(r){if(r==null)return null;if(typeof r==\"string\"){let e={className:r in H$?H$[r]:r,config:{}};return q$(e)}else return r instanceof gc?r:q$(r)}function H5(r){return new Lm(r)}function q5(r){return new Mm(r)}function K5(){return new zm}function j5(r){return new Bm(r)}var j$={};Wt(j$,{constant:()=>Z5,glorotNormal:()=>o8,glorotUniform:()=>n8,heNormal:()=>s8,heUniform:()=>i8,identity:()=>e8,leCunNormal:()=>a8,leCunUniform:()=>l8,ones:()=>Y5,orthogonal:()=>u8,randomNormal:()=>Q5,randomUniform:()=>J5,truncatedNormal:()=>t8,varianceScaling:()=>r8,zeros:()=>X5});function X5(){return new km}function Y5(){return new yu}function Z5(r){return new Em(r)}function J5(r){return new _m(r)}function Q5(r){return new Am(r)}function t8(r){return new $m(r)}function e8(r){return new Dm(r)}function r8(r){return new qr(r)}function n8(r){return new uc(r)}function o8(r){return new cc(r)}function s8(r){return new pc(r)}function i8(r){return new mc(r)}function a8(r){return new fc(r)}function l8(r){return new dc(r)}function u8(r){return new Rm(r)}var ED={};Wt(ED,{Layer:()=>$t,RNN:()=>Tn,RNNCell:()=>ll,activation:()=>NY,add:()=>FY,alphaDropout:()=>xZ,average:()=>OY,averagePooling1d:()=>Gv,averagePooling2d:()=>Wv,averagePooling3d:()=>Uv,avgPool1d:()=>UY,avgPool2d:()=>qY,avgPool3d:()=>jY,avgPooling1d:()=>HY,avgPooling2d:()=>KY,avgPooling3d:()=>XY,batchNormalization:()=>VY,bidirectional:()=>uZ,categoryEncoding:()=>CZ,concatenate:()=>PY,conv1d:()=>gY,conv2d:()=>xY,conv2dTranspose:()=>yY,conv3d:()=>bY,conv3dTranspose:()=>wY,convLstm2d:()=>sZ,convLstm2dCell:()=>iZ,cropping2D:()=>IY,dense:()=>TY,depthwiseConv2d:()=>vY,dot:()=>BY,dropout:()=>kY,elu:()=>cY,embedding:()=>RY,flatten:()=>_Y,gaussianDropout:()=>gZ,gaussianNoise:()=>hZ,globalAveragePooling1d:()=>YY,globalAveragePooling2d:()=>ZY,globalMaxPool1d:()=>pZ,globalMaxPool2d:()=>mZ,globalMaxPooling1d:()=>vD,globalMaxPooling2d:()=>ND,gru:()=>QY,gruCell:()=>tZ,input:()=>Pv,inputLayer:()=>uY,layerNormalization:()=>GY,leakyReLU:()=>mY,lstm:()=>eZ,lstmCell:()=>rZ,masking:()=>yZ,maxPool1d:()=>fZ,maxPool2d:()=>dZ,maxPooling1d:()=>TD,maxPooling2d:()=>kD,maxPooling3d:()=>JY,maximum:()=>LY,minimum:()=>MY,multiply:()=>zY,permute:()=>DY,prelu:()=>fY,reLU:()=>pY,repeatVector:()=>AY,rescaling:()=>bZ,reshape:()=>$Y,resizing:()=>wZ,rnn:()=>aZ,separableConv2d:()=>CY,simpleRNN:()=>nZ,simpleRNNCell:()=>oZ,softmax:()=>dY,spatialDropout1d:()=>EY,stackedRNNCells:()=>lZ,thresholdedReLU:()=>hY,timeDistributed:()=>cZ,upSampling2d:()=>SY,zeroPadding2d:()=>WY});async function Ui(r){if(r==null)return;let t=[],e=[],n=[];for(let o in r){let s=r[o];if(typeof s!=\"number\"){let i=s;t.push(i.data()),e.push(o),n.push(i)}}if(t.length>0){let o=await Promise.all(t);for(let s=0;sX(this.totals[o],D(s,n)));this.totals[o]=a,i!=null&&i.dispose()}}}async onEpochEnd(t,e){if(e!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]==\"number\"?e[n]=this.totals[n]/this.seen:B(()=>{let o=D(pt(1,this.seen),this.totals[n]);e[n]=o,this.totals[n].dispose(),De(e[n])}))}},Ly=class extends sl{async onTrainBegin(t){this.epoch=[],this.history={}}async onEpochEnd(t,e){e==null&&(e={}),this.epoch.push(t);for(let n in e)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(e[n])}async syncData(){let t=[],e=[],n=[];for(let s in this.history){let i=this.history[s];for(let a=0;anew My(n,t))}var hn=class{constructor(){}static registerCallbackConstructor(t,e){y.assert(t>=0&&Number.isInteger(t),()=>`Verbosity level is expected to be an integer >= 0, but got ${t}`),hn.checkForDuplicate(e),hn.constructors[t]==null&&(hn.constructors[t]=[]),hn.constructors[t].push(e)}static checkForDuplicate(t){for(let e in hn.constructors)hn.constructors[+e].forEach(o=>{if(o===t)throw new M(\"Duplicate callback constructor.\")})}static clear(){hn.constructors={}}static createCallbacks(t){let e=[];for(let n in hn.constructors){let o=+n;t>=o&&e.push(...hn.constructors[o])}return e.map(n=>new n)}};hn.constructors={};function By(r,t,e,n,o,s,i,a,u){let l=new Ly,c=[new _v,...hn.createCallbacks(t)];r!=null&&c.push(...r),c.push(l);let p=new Py(c);return p.setParams({epochs:e,initialEpoch:n,samples:o,steps:s,batchSize:i,verbose:t,doValidation:a,metrics:u}),{callbackList:p,history:l}}function gn(r,t={},e=!1){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,\"layer\",e)}function Sh(r,t){return B(()=>{r.dtype!==\"float32\"&&(r=J(r,\"float32\"));let e=ft(lc(r),t,!0),n=xo(e.shape,ir()),o=Se(Sn(e,n));return pt(r,o)})}function Hi(r,t){return B(()=>ve(lc(ct(t,r)),-1))}function Vm(r,t){return B(()=>ve(Ee(ct(t,r)),-1))}function bu(r,t){return B(()=>{let e=ct(r,t),n=Cr(Ee(r),ir(),Number.MAX_VALUE),o=Ee(pt(e,n));return D(100,ve(o,-1))})}function p8(r,t){return B(()=>{let e=Cr(t,ir(),Number.MAX_VALUE),n=Sr(X(1,e)),o=Cr(r,ir(),Number.MAX_VALUE),s=Sr(X(1,o));return ve(lc(ct(n,s)),-1)})}function m8(r,t){return B(()=>{let e=Sn(0,ct(1,D(r,t)));return ve(lc(e),-1)})}function f8(r,t){return B(()=>{let e=Sn(0,ct(1,D(r,t)));return ve(e,-1)})}function d8(r,t){return B(()=>{let e=ft(D(r,t),-1),n=Ir(D(ct(1,r),t),-1);return Sn(0,X(1,ct(n,e)))})}function h8(r,t){return B(()=>{let e=Math.log(2),n=ct(t,r),o=ct(X(n,zs(D(-2,n))),e);return ve(o,-1)})}function xc(r,t,e=!1){return B(()=>{if(e)t=iu(t);else{let n=ft(t,t.shape.length-1,!0);t=pt(t,n)}return t=Cr(t,ir(),1-ir()),Ht(ft(D(J(r,\"float32\"),Sr(t)),t.shape.length-1))})}function Gm(r,t,e=!1){return B(()=>{let n=J(Pi(D$(r)),\"int32\");t=Cr(t,ir(),1-ir());let o=t.shape,s=R(Ei(n,o[o.length-1]),o);return xc(s,t,e)})}function g8(r,t){if(!y.arraysEqual(r.shape,t.shape))throw new M(`logits and labels must have the same shape, but got shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);return B(()=>{let e=Fr(t),n=Ht(Ee(t));return X(ct(e,D(t,r)),tu(er(n)))})}function Wm(r,t){return B(()=>{let e;return e=Cr(t,ir(),1-ir()),e=Sr(pt(e,ct(1,e))),ve(g8(r,e),-1)})}function x8(r,t){return B(()=>{let e=Cr(r,ir(),1),n=Cr(t,ir(),1);return ft(D(r,Sr(pt(e,n))),-1)})}function y8(r,t){return B(()=>{let e=Sr(X(ir(),t));return ve(ct(t,D(r,e)),-1)})}function Nh(r,t){return B(()=>{let e=Sh(r,-1),n=Sh(t,-1),o=D(e,n);return Ht(ft(o,-1))})}var vh={meanSquaredError:Hi,meanAbsoluteError:Vm,meanAbsolutePercentageError:bu,meanSquaredLogarithmicError:p8,squaredHinge:m8,hinge:f8,categoricalHinge:d8,logcosh:h8,categoricalCrossentropy:xc,sparseCategoricalCrossentropy:Gm,binaryCrossentropy:Wm,kullbackLeiblerDivergence:x8,poisson:y8,cosineProximity:Nh};function Vy(r){if(typeof r==\"string\"){if(r in vh)return vh[r];let t=`Unknown loss ${r}`;throw r.toLowerCase().includes(\"softmaxcrossentropy\")&&(t=`Unknown loss ${r}. Use \"categoricalCrossentropy\" as the string name for tf.losses.softmaxCrossEntropy`),new M(t)}else return r}function Th(r,t){return B(()=>{let e=D(.5,yr(t)),n=no(Re(t,e),r.dtype);return ve($r(r,n),-1)})}function kh(r,t){return B(()=>no($r(Ai(r,-1),Ai(t,-1)),\"float32\"))}function Z$(r,t){return B(()=>J(ft(Rr($r(r,1),$r(t,1))),\"float32\"))}function b8(r,t){return B(()=>J(ft(Rr($r(r,1),$r(t,0))),\"float32\"))}function w8(r,t){return B(()=>J(ft(Rr($r(r,0),$r(t,1))),\"float32\"))}function Av(r,t){return B(()=>{let e=Z$(r,t),n=w8(r,t),o=X(e,n);return J(_e(Re(o,0),pt(e,o),0),\"float32\")})}function J$(r,t){return B(()=>{let e=Z$(r,t),n=b8(r,t),o=X(e,n);return J(_e(Re(o,0),pt(e,o),0),\"float32\")})}function Wy(r,t){return Wm(r,t)}function Uy(r,t){return r.rank===t.rank&&(r=Mn(r,[r.rank-1])),t=Ai(t,-1),t.dtype!==r.dtype&&(t=J(t,r.dtype)),J($r(r,t),\"float32\")}var C8=Hi,I8=Hi,S8=Vm,v8=Vm,N8=bu,T8=bu,Eh=xc,k8=Nh,$v=Gm,Gy={binaryAccuracy:Th,categoricalAccuracy:kh,precision:Av,categoricalCrossentropy:Eh,sparseCategoricalCrossentropy:$v,mse:C8,MSE:I8,mae:S8,MAE:v8,mape:N8,MAPE:T8,cosine:k8};function Q$(r){if(typeof r==\"string\"&&r in Gy)return Gy[r];if(typeof r!=\"string\"&&r!=null)return r;throw new M(`Unknown metric ${r}`)}function _h(r){if(ro(r!==null,`Unknown LossOrMetricFn ${r}`),typeof r==\"string\")return r;{let t;for(let e of Object.keys(vh))if(vh[e]===r){t=e;break}if(t!==void 0)return t;for(let e of Object.keys(Gy))if(Gy[e]===r){t=e;break}return t!==void 0?t:r.name}}function eD(r){let t={Adagrad:()=>ic.adagrad(.01),Adadelta:()=>ic.adadelta(1,.95,ir()),Adam:()=>ic.adam(.001,.9,.999,ir()),Adamax:()=>ic.adamax(.002,.9,.999,ir(),0),RMSProp:()=>ic.rmsprop(.001,.9,0,ir()),SGD:()=>ic.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,r in t)return t[r]();throw new M(`Unknown Optimizer ${r}`)}function Rv(r,t,e=!1){if(r==null||typeof r!=\"object\"||Object.getPrototypeOf(r)!==Object.prototype||!Dv(r))throw new Error(\"User-defined metadata is expected to be a JSON object, but is not.\");if(e){let n=JSON.stringify(r);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 Dv(r){if(r===null)return!0;if(typeof r==\"object\")if(Object.getPrototypeOf(r)===Object.prototype){let t=Object.keys(r);for(let e of t)if(typeof e!=\"string\"||!Dv(r[e]))return!1;return!0}else if(Array.isArray(r)){for(let t of r)if(!Dv(t))return!1;return!0}else return!1;else{let t=typeof r;return t===\"string\"||t===\"number\"||t===\"boolean\"}}function rD(r,t,e,n=console.log){let o=A8(r),s=[\"Layer (type)\",\"Input Shape\",\"Output shape\",\"Param #\"];o?(t=t||90,e=e||[.32,.61,.89,1]):(t=t||115,e=e||[.24,.48,.7,.8,1]),e[e.length-1]<=1&&(e=e.map(c=>Math.floor(t*c)));let i;if(!o){s.push(\"Receives inputs\"),i=[];for(let c in r.nodesByDepth)i.push(...r.nodesByDepth[c])}n(\"_\".repeat(t)),Hy(s,e,n),n(\"=\".repeat(t));let a=r.layers;for(let c=0;c1||o.length===1&&o[0].inboundLayers.length>1){t=!1;break}n.push(...o)}if(t)for(let o of r.layers){let s=!1;for(let i of o.inboundNodes)if(n.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function Hy(r,t,e=console.log){let n=\"\";for(let o=0;o0&&(n=n.slice(0,n.length-1)+\" \"),n+=r[o],n=n.slice(0,t[o]),n+=\" \".repeat(t[o]-n.length);e(n)}function $8(r,t,e){let n,o;try{o=r.inboundNodes.map(u=>JSON.stringify(u.inputShapes)).join(\",\")}catch(u){o=\"multiple\"}try{n=JSON.stringify(r.outputShape)}catch(u){n=\"multiple\"}let s=r.name,i=r.getClassName(),a=[`${s} (${i})`,o,n,r.countParams().toString()];Hy(a,t,e)}function D8(r,t,e,n){let o,s;try{s=r.inboundNodes.map(p=>JSON.stringify(p.inputShapes)).join(\",\")}catch(p){s=\"multiple\"}try{o=JSON.stringify(r.outputShape)}catch(p){o=\"multiple\"}let i=[];for(let p of r.inboundNodes)if(!(e!=null&&e.length>0&&e.indexOf(p)===-1))for(let m=0;mb.name)}`);vo(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(b=>b.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let b of this.outputs){let w=b.sourceLayer,C=b.nodeIndex,N=b.tensorIndex;this.outputLayers.push(w),this.outputLayersNodeIndices.push(C),this.outputLayersTensorIndices.push(N)}for(let b of this.inputs){let w=b.sourceLayer,C=b.nodeIndex,N=b.tensorIndex;ro(C===0,\"input layer has >1 nodes\"),ro(N===0,\"input layer has >1 tensors\"),this.inputLayers.push(w),this.inputLayersNodeIndices.push(C),this.inputLayersTensorIndices.push(N)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let b=0;bb.shape),this.internalOutputShapes=this.outputs.map(b=>b.shape);let e={},n={},o={},s={},i={},a=[],u=(b,w,C,N,_,A)=>{(N==null||_==null||A==null)&&(N=b.sourceLayer,_=b.nodeIndex,A=b.tensorIndex);let $=N.inboundNodes[_];if(C.indexOf($)!==-1)throw new Hr(`The tensor ${b.name} at layer \"${N.name}\" is part of a cycle.`);if(w.indexOf($)!==-1)return;this.containerNodes.add(zn.nodeKey(N,_)),N.id in i||(i[N.id]=Object.keys(i).length),C.indexOf($)===-1&&C.push($);let F=$.inboundLayers.length;for(let P=0;P=0;)C.splice(C.indexOf($),1);a.push($)},l=[],c=[];for(let b of this.outputs)u(b,l,c);let p=a.slice().reverse();for(let b of p){n[b.id]=b,b.id in e||(e[b.id]=0);let w=e[b.id],C=o[b.outboundLayer.id]==null?0:o[b.outboundLayer.id];w=Math.max(w,C),o[b.outboundLayer.id]=w,s[b.outboundLayer.id]=b.outboundLayer,e[b.id]=w;for(let N=0;NparseInt(b,10)).sort(yh);this.layers=[];for(let b of d){let w=f[b];w.sort((C,N)=>{let _=i[C.id],A=i[N.id];return _A?1:0});for(let C of w)C instanceof zn&&this.internalContainerRefs.push(C),this.layers.push(C)}this.layersByDepth=f,d=Object.keys(m).map(b=>parseInt(b,10)).sort(yh);let h=this.inputs.slice(),g=[];for(let b of d)for(let w of m[b]){let C=w.outboundLayer;if(C!=null){for(let N of w.inputTensors)if(h.indexOf(N)===-1)throw new Hr(`Graph disconnected: cannot obtain value for tensor ${N} at layer \"${C.name}\". The following previous layers were accessed without issue: ${g}`);for(let N of w.outputTensors)h.push(N);g.push(C.name)}}this.nodesByDepth=m;let x=this.layers.map(b=>b.name);for(let b of x){let w=x.filter(C=>C===b).length;if(w!==1)throw new Hr(`The name \"${b}\" is used ${w} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(x))}this.outboundNodes=[],this.inboundNodes=[],new ol({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(b=>null),outputMasks:this.outputs.map(b=>null),inputShapes:this.inputs.map(b=>b.shape),outputShapes:this.outputs.map(b=>b.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let t={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(let e of this.layers)t.numDisposedVariables+=e.dispose().numDisposedVariables;for(let e of this.internalContainerRefs)t.numDisposedVariables+=e.dispose().numDisposedVariables}return t.refCountAfterDispose=this._refCount,t}get trainable(){return this.trainable_}set trainable(t){this.layers.forEach(e=>{e._trainableWeights.forEach(n=>n.trainable=t)}),this.trainable_=t}get trainableWeights(){if(this._trainableWeights.length>0)throw new M(\"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 t=[];for(let e of this.layers)t=t.concat(e.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let e of this.layers)t.push(...e.nonTrainableWeights);if(!this.trainable){let e=[];for(let n of this.layers)e.push(...n.trainableWeights);return e.concat(t)}return t}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(t,e=!0){let n={},o=0;for(let i of this.layers)for(let a of i.weights){if(n[a.originalName]!=null)throw new M(`Duplicate weight name: ${a.originalName}`);n[a.originalName]=a,o++}let s=[];for(let i in t){let a=i;if(n[i]==null){let u=i.split(\"/\");a=u.slice(0,-2).concat([u[u.length-1]]).join(\"/\")}if(n[a]!=null)s.push([n[a],t[i]]);else if(e)throw new M(`Provided weight data has no target variable: ${i}`);delete n[a]}if(e){let i=[];for(let a in n)i.push(a);if(i.length>0)throw new M(`${i.length} of ${o} weights are not set: ${i}`)}Pm(s)}updatedConfig(){let t=this.getConfig(),e={};return e.className=this.getClassName(),e.config=t,e.kerasVersion=`tfjs-layers ${Um}`,e.backend=\"TensorFlow.js\",e}toJSON(t,e=!0){let n=qy(this.updatedConfig());return e?JSON.stringify(n):n}call(t,e){return B(()=>{t=xe(t);let n=new ko;for(let o=0;o{t=xe(t);let n;return e==null?n=Io(null,t.length):n=xe(e),this.runInternalGraph(t,n)[1]})}computeOutputShape(t){let e=Fm(t);if(e.length!==this.inputLayers.length)throw new M(`Invalid inputShape argument ${t}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let a=0;aparseInt(a,10)).sort(yh);if(o.length>1)for(let a of o){let u=this.nodesByDepth[a];for(let l of u){let c=l.outboundLayer;if(this.inputLayers.map(h=>h.id).indexOf(c.id)!==-1)continue;let p=[];for(let h=0;hparseInt(u,10)).sort(yh);for(let u of o){let l=this.nodesByDepth[u];for(let c of l){let p=c.outboundLayer,m=c.inputTensors,f=c.outputTensors,d=new Array;for(let h of m)h.id in n&&d.push(n[h.id]);if(d.length===m.length){let h={},g,x,b,w;if(c.callArgs!=null&&(h=c.callArgs),d.length===1){let[C,N]=d[0];h.mask==null&&(h.mask=N),b=xe(p.call(C,h)),w=xe(p.computeMask(C,N)),g=[C],x=[N]}else g=d.map(C=>C[0]),x=d.map(C=>C[1]),h.mask==null&&(h.mask=x),b=xe(p.call(g,h)),w=xe(p.computeMask(g,x));if(p.activityRegularizer)throw new St(\"LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.\");for(let C=0;C{let t=[];for(let e of this.layers)for(let n=0;n0){let h=[];for(let g=0;g0&&g.apply(Nr(b),w)}function l(g){let x=g.name,b=gn(g,e.customObjects!=null?e.customObjects:{});b.setFastWeightInitDuringBuild(o),s[x]=b,g.inboundNodes.forEach(C=>{if(!(C instanceof Array))throw new M(`Corrupted configuration, expected array for nodeData: ${C}`);a(b,C)})}let c=e.name,p=e.layers;for(let g of p)l(g);for(;!b$(i);)for(let g of p){let x=s[g.name];if(x.name in i){let b=i[x.name];delete i[x.name];for(let w of b)u(x,w)}}let m=[],f=[],d=e.inputLayers;for(let g of d){let x=g[0],b=g[1],w=g[2];ro(x in s);let N=s[x].inboundNodes[b].outputTensors;m.push(N[w])}let h=e.outputLayers;for(let g of h){let x=g[0],b=g[1],w=g[2];ro(x in s);let N=s[x].inboundNodes[b].outputTensors;f.push(N[w])}return new t({inputs:m,outputs:f,name:c})}get stateful(){if(this._stateful)throw new M(\"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(let t of this.layers)if(t.stateful)return!0;return!1}resetStates(){B(()=>{this.layers.forEach(t=>{t.stateful&&t.resetStates()})})}};function R8(r,t,e){let n=t.length;if(r==null||Array.isArray(r)&&r.length===0)return t.map(o=>null);if(n===1)return Array.isArray(r)&&r.length===1?r:typeof r==\"object\"&&t[0]in r?[r[t[0]]]:[r];if(Array.isArray(r)){if(r.length!==n)throw new Error(`Provided ${e} is an array of ${r.length} element(s), but the model has ${n} outputs. Make sure a set of weights is provided for each model output.`);return r}else if(typeof r==\"object\"&&Object.keys(r).length>0&&typeof r[Object.keys(r)[0]]==\"object\"){let o=[];return t.forEach(s=>{s in r?o.push(r[s]):o.push(null)}),o}else throw new Error(`The model has multiple (${n}) outputs, so ${e} must be either an array with ${n} elements or an object with ${t} keys. Provided ${e} not understood: ${JSON.stringify(r)}`)}function Ky(r,t){return R8(r,t,\"classWeight\")}async function jy(r,t,e,n){if(t!=null||n!=null)throw new Error(\"Support sampleWeight is not implemented yet\");if(e!=null){let o=B(()=>{if(r.shape.length===1)return sn(r);if(r.shape.length===2){if(r.shape[1]>1)return Ai(r,1);if(r.shape[1]===1)return R(r,[r.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${r.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${r.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),s=Array.from(await o.data());vt(o);let i=[];return s.forEach(a=>{if(e[a]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${a} exists in the data but not in classWeight`);i.push(e[a])}),Me(i,\"float32\")}else return null}function oD(r,t){return D(r,t)}var F8=32;function aD(r,t){let e,n,o=t;e=o.xs,n=o.ys,y.assert(e!=null&&n!=null,()=>`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}`);let s=sD(\"input\",r.inputNames,e),i=sD(\"output\",r.outputNames,n),a=s[0].shape[0];y.assert(s.length===r.inputs.length,()=>`LayersModel has ${r.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(r.inputNames)})`),y.assert(i.length===r.outputs.length,()=>`LayersModel has ${r.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(r.outputNames)})`);for(let u=0;u`Batch size mismatch: input ${r.inputNames[u]} has ${s[u].shape[0]}; expected ${a} based on input ${r.inputNames[0]}.`);for(let u=0;u`Batch size mismatch: output ${r.outputNames[u]} has ${i[u].shape[0]}; expected ${a} based on input ${r.inputNames[0]}.`);return{xs:s,ys:i}}function sD(r,t,e){if(e instanceof Ft)return[e];if(Array.isArray(e))return y.assert(e.length===t.length,()=>`Received an array of ${e.length} Tensors, but expected ${t.length} to match the ${r} keys ${t}.`),e;{let n=[];for(let o of t){if(e[o]==null)throw new M(`The feature data generated by the dataset lacks the required ${r} key '${o}'.`);n.push(e[o])}return n}}function O8(r){if(r.length===3)throw new St(\"Validation with sample weights is not implemented yet.\");return{xs:r[0],ys:r[1]}}async function lD(r,t,e){let n=e.batchesPerEpoch!=null;if(y.assert(r.optimizer!=null,()=>\"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig).\"),y.assert(e!=null,()=>\"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call.\"),y.assert(e.epochs!=null&&e.epochs>0&&Number.isInteger(e.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${e.epochs}`),y.assert(!n||e.batchesPerEpoch>0&&Number.isInteger(e.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${e.batchesPerEpoch}`),y.assert(e.validationSplit==null,()=>\"`validationSplit` is not supported by `fitDataset()`. Use validationData instead.\"),r.isTraining)throw new Error(\"Cannot start training because another fit() call is ongoing.\");r.isTraining=!0;try{let o=e.validationData!=null,s,i;if(o)if(iD(e.validationData))y.assert(e.validationBatches==null||e.validationBatches>0&&Number.isInteger(e.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${e.validationBatches}`);else{let g=O8(e.validationData);s=g.xs,i=g.ys}let a=r.makeTrainFunction(),u=r.getDedupedMetricsNames(),l;o?l=u.slice().concat(u.map(g=>\"val_\"+g)):l=u.slice();let c=zy(e.callbacks,e.yieldEvery),p=e.verbose==null?1:e.verbose,{callbackList:m,history:f}=By(c,p,e.epochs,null,null,P8(t,e),null,o,l);m.setModel(r),r.history=f,await m.onTrainBegin(),r.stopTraining_=!1;let d=e.initialEpoch==null?0:e.initialEpoch,h=await t.iterator();for(;d=e.batchesPerEpoch:w.done){if(o){let C;iD(e.validationData)?C=xe(await r.evaluateDataset(e.validationData,{batches:e.validationBatches})):C=xe(r.evaluate(s,i,{batchSize:e.validationBatchSize==null?F8:e.validationBatchSize,verbose:0}));for(let N=0;N0)throw new St(\"Verbose mode is not implemented yet.\");y.assert(!n||e.batches>0&&Number.isInteger(e.batches),()=>`Test loop expects \\`batches\\` to be a positive integer, but received ${JSON.stringify(e.batches)}`);let i=L8(t)?t:await t.iterator(),a=0,u=0;for(;!n||u{if(l.value){let{xs:c,ys:p}=aD(r,l.value),m=c.concat(p),f=B(()=>o(m));if(vt(m),u===0)for(let h=0;hX(s[h],D(d,g))),u>0&&vt(x)}vt(f),a+=d,++u}return s}),l.done){n&&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, ${e.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let l=0;l0&&Number.isInteger(r),()=>`batchSize is required to be a positive integer, but got ${r}`)}function Hm(r,t,e){return r==null?[null]:Array.isArray(r)?r.map(n=>rl(n,t,e-t)):rl(r,t,e-t)}function Yy(r,t){return B(()=>r==null?null:Array.isArray(r)?r.map(e=>Yy(e,t)):_y(r,t.dtype===\"int32\"?t:J(t,\"int32\")))}function Zy(r,t){let e=[],n=0,o=null;for(;n=r&&(o=r),e.push([n,o]),n=o;return e}async function M8(r,t,e,n,o,s,i,a,u,l,c,p,m,f,d){o==null&&(o=32),s==null&&(s=1),c==null&&(c=!0),m==null&&(m=0);let h=!1;if(u!=null&&l!=null&&(h=!0),d!=null&&(h=!0,f==null))throw new M(\"Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.\");let g=r.checkNumSamples(e,o,f,\"steps_per_epoch\"),x;g!=null&&(x=Zr(0,g)),i==null&&(i=1);let{callbackList:b,history:w}=By(a,i,s,m,g,f,o,h,p);b.setModel(r),r.history=w,await b.onTrainBegin(),r.stopTraining_=!1;for(let C=m;C{let P=A[$][0],V=A[$][1],G=rl(_,P,V-P);F.batch=$,F.size=V-P;let W=Yy(e,G),q=t(W);for(let H=0;H0){if(g=!0,n.validationData.length===2)u=n.validationData[0],l=n.validationData[1];else throw n.validationData.length===3?new St(\"validationData including sample weights is not supported yet.\"):new M(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${n.validationData} is invalid.`);let F=!0,P=await r.standardizeUserData(u,l,null,null,F,f);c=P[0],p=P[1],x=c.concat(p)}else if(n.validationSplit!=null&&n.validationSplit>0&&n.validationSplit<1){g=!0;let F=Math.floor(o[0].shape[0]*(1-n.validationSplit)),P=o[0].shape[0];c=Hm(o,F,P),i=o,o=Hm(o,0,F),p=Hm(s,F,P),a=s,s=Hm(s,0,F),x=c.concat(p)}else n.validationSteps!=null&&(g=!0);let b=o.concat(s).concat(m);r.checkTrainableWeightsConsistency();let w=r.makeTrainFunction(),C=r.getDedupedMetricsNames(),N,_;g?(r.makeTestFunction(),N=r.testFunction,_=C.slice().concat(C.map(F=>\"val_\"+F))):(N=null,x=[],_=C.slice());let A=zy(n.callbacks,n.yieldEvery);return await M8(r,w,b,C,f,n.epochs,n.verbose,A,N,x,n.shuffle,_,n.initialEpoch,null,null)}finally{r.isTraining=!1,Eo(o,t),Eo(s,e),Eo(i,t),Eo(a,e),Eo(c,u),Eo(p,l),m!=null&&vt(m)}}function Fv(r){let t=[];r instanceof Ft&&(r=[r]);for(let e=0;ee.push(o.id));else if(t!=null)for(let o in t){let s=t[o];e.push(s.id)}let n=[];if(r instanceof Ft)e.indexOf(r.id)===-1&&n.push(r);else if(Array.isArray(r))r.forEach(o=>{e.indexOf(o.id)===-1&&n.push(o)});else if(r!=null)for(let o in r){let s=r[o];e.indexOf(s.id)===-1&&n.push(s)}n.forEach(o=>{o.isDisposed||o.dispose()})}function z8(r){return r instanceof Ft}function Ov(r){return Array.isArray(r)}function pD(r){return!z8(r)&&!Ov(r)}function mD(r,t,e,n=!0,o=\"\"){if(t==null||t.length===0){if(r!=null){let i=!1;if(Ov(r)&&r.length>0)i=!0;else if(pD(r)){for(let a in r)if(r.hasOwnProperty(a)){i=!0;break}}else i=!0;if(i)throw new M(`Error when checking model ${o} expected no data, but got ${r}`)}return[]}if(r==null)return t.map(i=>null);let s;if(pD(r)){r=r,s=[];for(let i of t){if(r[i]==null)throw new M(`No data provided for \"${i}\". Need data for each key in: ${t}`);s.push(r[i])}}else if(Ov(r)){if(r=r,r.length!==t.length)throw new M(`Error when checking model ${o}: 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): ${r}`);s=r}else{if(r=r,t.length>1)throw new M(`The model ${o} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${r.shape}`);s=[r]}if(s=Fv(s),e!=null)for(let i=0;i=0&&l!==c)throw new M(`${o} expected a batch of elements where each example has shape [${e[i].slice(1,e[i].length)}] (i.e.,tensor shape [*,${e[i].slice(1,e[i].length)}]) but the ${o} received an input with ${a.shape[0]} examples, each with shape [${a.shape.slice(1,a.shape.length)}] (tensor shape [${a.shape}])`)}}return s}function B8(r,t,e){let n=vo(r.map(s=>s.shape[0]));n.sort();let o=vo(t.map(s=>s.shape[0]));if(o.sort(),n.length>1)throw new M(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(r.map(s=>s.shape))}`);if(o.length>1)throw new M(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(s=>s.shape))}`);if(n.length>0&&o.length>0&&!y.arraysEqual(n,o))throw new M(`Input Tensors should have the same number of samples as target Tensors. Found ${n[0]} input sample(s) and ${o[0]} target sample(s).`)}function V8(r,t,e){let n=[Hi,Wm,xc];for(let o=0;o1)throw new M(`The model expects ${t.length} ${o} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(r.shape)}.`);s=[r]}if(e!=null)for(let i=0;i[]);let e;if(typeof r==\"string\"||typeof r==\"function\")e=[r];else if(Array.isArray(r)||typeof r==\"object\")e=r;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${r}`);if(Array.isArray(e))return t.map(n=>e);{let n=[];for(let o of t){let s=e.hasOwnProperty(o)?e[o]:[];Array.isArray(s)||(s=[s]),n.push(s)}return n}}var W8=\"layers-model\",Bn=class extends zn{constructor(t){super(t),this.isTraining=!1}summary(t,e,n=console.log){if(!this.built)throw new M(\"This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).\");rD(this,t,e,n)}compile(t){if(t.loss==null&&(t.loss=[]),this.loss=t.loss,typeof t.optimizer==\"string\")this.optimizer_=eD(t.optimizer),this.isOptimizerOwned=!0;else{if(!(t.optimizer instanceof Wr))throw new M(\"User-defined optimizer must be an instance of tf.Optimizer.\");this.optimizer_=t.optimizer,this.isOptimizerOwned=!1}let e=[];if(!Array.isArray(t.loss)&&typeof t.loss!=\"string\"&&typeof t.loss!=\"function\"){t.loss=t.loss;for(let i in t.loss)if(this.outputNames.indexOf(i)===-1)throw new M(`Unknown entry in loss dictionary: \"${i}\". Only expected the following keys: ${this.outputNames}`);for(let i of this.outputNames)t.loss[i]==null&&console.warn(`Output \"${i}\" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${i} during training`),e.push(Vy(t.loss[i]))}else if(Array.isArray(t.loss)){if(t.loss.length!==this.outputs.length)throw new M(`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=${t.loss}.`);e=t.loss.map(a=>Vy(a))}else{let i=Vy(t.loss);this.outputs.forEach(a=>{e.push(i)})}this.lossFunctions=e,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let i=0;i{for(let i=0;i1&&(this.metricsTensors.push([a,i]),this.metricsNames.push(this.outputNames[i]+\"_loss\"))}});let o=G8(t.metrics,this.outputNames),s=(i,a,u)=>{this.outputNames.length>1&&(a=this.outputNames[i]+\"_\"+a),this.metricsNames.push(a),this.metricsTensors.push([u,i])};Hs(\"metric\",()=>{for(let i=0;i{let c=\"\",p,m,f;for(let d of l){if(typeof d==\"string\"&&[\"accuracy\",\"acc\",\"crossentropy\",\"ce\"].indexOf(d)!==-1){let g=this.internalOutputShapes[i];g[g.length-1]===1||this.lossFunctions[i]===Wm?[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=Th:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=Wy):this.lossFunctions[i]===Gm?[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=Uy:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=$v):[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=kh:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=Eh);let x;[\"accuracy\",\"acc\"].indexOf(d)!==-1?x=\"acc\":[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(x=\"ce\"),f=m,p=c+x}else f=Q$(d),p=c+_h(d);let h;Hs(p,()=>{h=f}),s(i,p,h)}})(a)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&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(t,e,n={}){let o=n.batchSize==null?32:n.batchSize;Xy(o);let s=!0,i=this.standardizeUserDataXY(t,e,s,o);try{let a=i[0].concat(i[1]);this.makeTestFunction();let u=this.testFunction,l=this.testLoop(u,a,o,n.verbose,n.steps);return Nr(l)}finally{Eo(i[0],t),Eo(i[1],e)}}async evaluateDataset(t,e){return this.makeTestFunction(),uD(this,t,e)}checkNumSamples(t,e,n,o=\"steps\"){let s;if(n!=null){if(s=null,e!=null)throw new M(`If ${o} is set, batchSize must be null or undefined.Got batchSize = ${e}`)}else if(t!=null)Array.isArray(t)?s=t[0].shape[0]:s=t.shape[0];else throw new M(`Either the input data should have a defined shape, or ${o} shoud be specified.`);return s}execute(t,e){if(Array.isArray(e)&&e.length===0)throw new M(\"`outputs` is an empty Array, which is not allowed.\");let n=Array.isArray(e),o=n?e:[e],s=this.retrieveSymbolicTensors(o),i=new ko;if(t instanceof Ft&&(t=[t]),Array.isArray(t)){if(t.length!==this.inputs.length)throw new M(`The number of inputs provided (${t.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let u=0;ua.name);for(let a=0;a0){let o=[];throw e.forEach((s,i)=>{s==null&&o.push(t[i])}),new M(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(o)}`)}return e}predictLoop(t,e=32,n=!1){return B(()=>{let o=this.checkNumSamples(t);if(n)throw new St(\"Verbose predictLoop() is not implemented yet.\");let s=Zy(o,e),i=this.outputs.map(a=>[]);for(let a=0;a{let l=s[a][0],c=s[a][1],p=Hm(t,l,c),m=[];if(Array.isArray(p))for(let d=0;di[c].push(l));return Nr(i.map(a=>ne(a,0)))})}predict(t,e={}){let n=Fv(t);fD(n,this.inputNames,this.feedInputShapes,!1);try{let o=e.batchSize==null?32:e.batchSize;return Xy(o),this.predictLoop(n,o)}finally{Eo(n,t)}}predictOnBatch(t){fD(t,this.inputNames,this.feedInputShapes,!0);let e=(Array.isArray(t)?t[0]:t).shape[0];return this.predictLoop(t,e)}standardizeUserDataXY(t,e,n=!0,o){if(this.optimizer_==null)throw new Hr(\"You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).\");let s=[];for(let i=0;i0&&t[0].shape[0]%o!==0)throw new M(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${o}. Found: ${t[0].shape[0]} sample(s).`);return[t,e]}async standardizeUserData(t,e,n,o,s=!0,i){let[a,u]=this.standardizeUserDataXY(t,e,s,i);if(n!=null)throw new Error(\"sample weight is not supported yet.\");let l=null;if(o!=null){let c=Ky(o,this.outputNames);l=[];for(let p=0;p{let i=this.checkNumSamples(e,n,s,\"steps\"),a=[];if(o>0)throw new St(\"Verbose mode is not implemented yet.\");if(s!=null)throw new St(\"steps mode in testLoop() is not implemented yet\");{let u=Zy(i,n),l=Me(Zr(0,i));for(let c=0;c1&&(s+=`_${Cv(t.slice(0,n),o)}`),e.push(s)}return e}makeTrainFunction(){return t=>{let e=[],n=t.slice(0,this.inputs.length),o=t.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=t.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),i=[],a=()=>{let p=[];for(let h=0;h1&&h{d=X(d,h)}),d},u=this.collectedTrainableWeights.map(p=>p.read()),l=!0;return[this.optimizer_.minimize(a,l,u)].concat(i)}}makeTestFunction(){this.testFunction=t=>B(()=>{let e=[],n,o=t.slice(0,this.inputs.length),s=t.slice(this.inputs.length,this.inputs.length+this.outputs.length),i=[];for(let l=0;lSo(e))}else{let e=Object.keys(this.loss);t={};let n=this.loss;for(let o of e)if(typeof n[o]==\"string\")t[o]=So(n[o]);else throw new Error(\"Serialization of non-string loss is not supported.\")}return t}getMetricIdentifiers(){if(typeof this.metrics==\"string\"||typeof this.metrics==\"function\")return[So(_h(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(t=>So(_h(t)));{let t={};for(let e in this.metrics)t[e]=So(_h(this.metrics[e]));return t}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(t){if(t.weighted_metrics!=null)throw new Error(\"Loading weight_metrics is not supported yet.\");if(t.loss_weights!=null)throw new Error(\"Loading loss_weights is not supported yet.\");if(t.sample_weight_mode!=null)throw new Error(\"Loading sample_weight_mode is not supported yet.\");let e=yc(t.optimizer_config),n=gn(e),o;if(typeof t.loss==\"string\")o=el(t.loss);else if(Array.isArray(t.loss))o=t.loss.map(i=>el(i));else if(t.loss!=null){o={};for(let i in t.loss)o[i]=el(t.loss[i])}let s;if(Array.isArray(t.metrics))s=t.metrics.map(i=>el(i));else if(t.metrics!=null){s={};for(let i in t.metrics)s[i]=el(t.metrics[i])}this.compile({loss:o,metrics:s,optimizer:n})}async save(t,e){if(typeof t==\"string\"){let l=_r.getSaveHandlers(t);if(l.length===0)throw new M(`Cannot find any save handlers for URL '${t}'`);if(l.length>1)throw new M(`Found more than one (${l.length}) save handlers for URL '${t}'`);t=l[0]}if(t.save==null)throw new M(\"LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.\");let n=await _r.encodeWeights(this.getNamedWeights(e)),o=!1,s=null,a={modelTopology:this.toJSON(s,o),format:W8,generatedBy:`TensorFlow.js tfjs-layers v${Um}`,convertedBy:null};if((e==null?!1:e.includeOptimizer)&&this.optimizer!=null){a.trainingConfig=this.getTrainingConfig();let l=\"optimizer\",{data:c,specs:p}=await _r.encodeWeights(await this.optimizer.getWeights(),l);n.specs.push(...p),n.data=_r.concatenateArrayBuffers([n.data,c])}return this.userDefinedMetadata!=null&&(Rv(this.userDefinedMetadata,this.name,!0),a.userDefinedMetadata=this.userDefinedMetadata),a.weightData=n.data,a.weightSpecs=n.specs,t.save(a)}setUserDefinedMetadata(t){Rv(t,this.name),this.userDefinedMetadata=t}getUserDefinedMetadata(){return this.userDefinedMetadata}};Bn.className=\"Model\";Q.registerClass(Bn);var Jy=class extends Bn{};Jy.className=\"Functional\";Q.registerClass(Jy);async function dD(r,t){\"modelTopology\"in r||(r={modelTopology:r}),r=r;let e=r.modelTopology;e.model_config!=null&&(e=e.model_config);let n=yc(e),o=gn(n,t);if(r.weightsManifest!=null){let s=await _r.loadWeights(r.weightsManifest,r.pathPrefix,o.weights.map(a=>a.originalName)),i={};for(let a of o.weights)i[a.originalName]=s[a.originalName];o.loadWeights(i),vt(s)}return o}async function hD(r,t){if(t==null&&(t={}),typeof r==\"string\"){let e=_r.getLoadHandlers(r,t);if(e.length===0)e.push(_r.browserHTTPRequest(r,t));else if(e.length>1)throw new M(`Found more than one (${e.length}) load handlers for URL '${r}'`);r=e[0]}return U8(r,void 0,t)}async function U8(r,t,e){if(e==null&&(e={}),r.load==null)throw new M(\"Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.\");let n=await r.load(),o=n.modelTopology;o.model_config!=null&&(o=o.model_config);let s=e.strict==null?!0:e.strict,i=n.weightData!=null&&n.weightSpecs!=null&&s,a=gn(yc(o),t,i),u=n.trainingConfig;if(u!=null&&a.loadTrainingConfig(u),n.userDefinedMetadata!=null&&a.setUserDefinedMetadata(n.userDefinedMetadata),n.weightData!=null){if(n.weightSpecs==null)throw new M(\"LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.\");let{modelWeights:l,optimizerWeights:c}=H8(n.weightData,n.weightSpecs);a.loadWeights(l,s),a.optimizer!=null&&c.length>0&&await a.optimizer.setWeights(c),vt(l),vt(c.map(p=>p.tensor))}return a}function H8(r,t){let e=_r.decodeWeights(r,t),n={},o=[];return t.forEach(s=>{s.group===\"optimizer\"?o.push({name:s.name,tensor:e[s.name]}):n[s.name]=e[s.name]}),{modelWeights:n,optimizerWeights:o}}var qi=class extends Bn{constructor(t){if(super({inputs:[],outputs:[]}),t=t||{},this.trainable=!0,this.built=!1,this.name=t.name!=null?t.name:gu(\"sequential_\"),t.layers!=null)for(let e of t.layers)this.add(e)}checkShape(t){if(t.inboundNodes[0].outputTensors[0].shape.some(n=>n<0))throw new M(`Negative dimension size caused by adding layer ${t.name} with input shape [${t.inboundNodes[0].inputTensors[0].shape}]`)}add(t){let e=t instanceof qi||t instanceof Bn,n;if(e){if(n=t,n.outputs.length!==1)throw new M(\"All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.\");if(n.inputs.length!==1)throw new M(\"All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.\")}if(this.outputs.length===0){if(t.inboundNodes.length===0){if(t.batchInputShape==null)throw new M(\"The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.\");let o=Dy({batchShape:t.batchInputShape,dtype:t.dtype,name:t.name+\"_input\"});t.apply(o)}if(e)this.outputs=n.outputs,this.inputs=n.inputs;else{if(t.inboundNodes.length!==1)throw new M(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${t.name} which has ${t.inboundNodes.length} pre-existing inbound connections.`);if(t.inboundNodes[0].outputTensors.length!==1)throw new M(\"All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.\");this.checkShape(t),this.outputs=[t.inboundNodes[0].outputTensors[0]],this.inputs=kv(this.outputs[0])}this.inboundNodes=[],new ol({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:Io(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(o=>o.shape),outputShapes:this.outputs[0].shape})}else{let o=t.apply(this.outputs[0]);if(Array.isArray(o))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(t),this.outputs=[o],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(t),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError(\"There are no layers in the model.\");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let t=this.layers.length-1;this.layers[t].outboundNodes=[],this.outputs=[this.layers[t].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(t,e){return this.model==null&&this.build(),this.model.call(t,e)}build(t){if(Bt(t),this.inputs.length===0||this.outputs.length===0)throw new TypeError(\"Sequential model cannot be built: model is empty. Add some layers first.\");this.model=new Bn({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(t,e,n=console.log){this.built||this.build(),super.summary(t,e,n)}setWeights(t){this.model==null&&this.build(),this.model.setWeights(t)}evaluate(t,e,n={}){if(!this.built)throw new Hr(\"The model needs to be compiled before being used.\");return this.model.evaluate(t,e,n)}async evaluateDataset(t,e){if(!this.built)throw new Hr(\"The model needs to be compiled before being used.\");return this.model.evaluateDataset(t,e)}predict(t,e={}){return this.model==null&&this.build(),this.model.predict(t,e)}predictOnBatch(t){return this.model==null&&this.build(),this.model.predictOnBatch(t)}compile(t){this.build(),this.model.compile(t),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 this.model==null?void 0:this.model.optimizer}set optimizer(t){this.model.optimizer=t}async fit(t,e,n={}){if(!this.built)throw new Hr(\"The model needs to be compiled before being used.\");return this.model.fit(t,e,n)}async fitDataset(t,e){if(!this.built)throw new Hr(\"The model needs to be compiled before being used.\");return this.model.fitDataset(t,e)}async trainOnBatch(t,e){return this.model.trainOnBatch(t,e)}static fromConfig(t,e,n={},o=!1){let s,i={};if(e instanceof Array){if(e[0].className==null||e[0].className===\"Merge\")throw new M(\"Legacy serialization format not supported yet.\");s=e}else y.assert(e.layers!=null,()=>\"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field.\"),s=e.layers,delete e.layers,i=e;let a=new t(i);if(!(a instanceof qi))throw new St(`Sequential.fromConfig called on non-Sequential input: ${a}`);for(let u of s){let c=gn(u,void 0,o);o&&c.setFastWeightInitDuringBuild(!0),a.add(c)}return a}set stopTraining(t){if(this.model==null)throw new M(\"Cannot set the stopTraining property of a sequential model before it is compiled.\");this.model.stopTraining=t}get stopTraining(){if(this.model==null)throw new M(\"Cannot get the stopTraining property of a sequential model before it is compiled.\");return this.model.stopTraining}getConfig(){let t=[];for(let e of this.layers){let n={};n.className=e.getClassName(),n.config=e.getConfig(),t.push(n)}return{name:this.name,layers:t}}};qi.className=\"Sequential\";Q.registerClass(qi);function q8(r){return new Bn(r)}function K8(r){return new qi(r)}function Pv(r){return Dy(r)}function j8(r,t){hn.registerCallbackConstructor(r,t)}var Qr=class extends Q.Serializable{getConfig(){return{}}},Qy=class extends Qr{apply(t,e=1){return F$(t,e)}};Qy.className=\"elu\";Q.registerClass(Qy);var tb=class extends Qr{apply(t){return pm(t)}};tb.className=\"selu\";Q.registerClass(tb);var eb=class extends Qr{apply(t){return Fr(t)}};eb.className=\"relu\";Q.registerClass(eb);var rb=class extends Qr{apply(t){return B(()=>Mi(6,Fr(t)))}};rb.className=\"relu6\";Q.registerClass(rb);var nb=class extends Qr{apply(t){return t}};nb.className=\"linear\";Q.registerClass(nb);var ob=class extends Qr{apply(t){return Yr(t)}};ob.className=\"sigmoid\";Q.registerClass(ob);var sb=class extends Qr{apply(t){return P$(t)}};sb.className=\"hardSigmoid\";Q.registerClass(sb);var ib=class extends Qr{apply(t){return zs(t)}};ib.className=\"softplus\";Q.registerClass(ib);var ab=class extends Qr{apply(t){return O$(t)}};ab.className=\"softsign\";Q.registerClass(ab);var lb=class extends Qr{apply(t){return $i(t)}};lb.className=\"tanh\";Q.registerClass(lb);var qm=class extends Qr{apply(t,e=-1){return iu(t,e)}};qm.className=\"softmax\";Q.registerClass(qm);var ub=class extends Qr{apply(t,e=-1){return sm(t,e)}};ub.className=\"logSoftmax\";Q.registerClass(ub);var cb=class extends Qr{apply(t,e=1){return B(()=>D(Yr(D(t,e)),t))}};cb.className=\"swish\";Q.registerClass(cb);var pb=class extends Qr{apply(t){return B(()=>D(t,$i(zs(t))))}};pb.className=\"mish\";Q.registerClass(pb);function js(r){return r.getClassName()}function Lv(r,t={}){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,\"activation\")}function Xs(r){if(r==null){let t={};return t.className=\"linear\",t.config={},Lv(t)}if(typeof r==\"string\"){let t={};return t.className=r,t.config={},Lv(t)}else return r instanceof Qr?r:Lv(r)}function Mv(r){if(r!=null&&typeof r!=\"object\")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${r}`)}var mb=class extends Q.Serializable{},wu=class extends mb{constructor(t){super(),Mv(t),this.l1=t==null||t.l1==null?.01:t.l1,this.l2=t==null||t.l2==null?.01:t.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(t){return B(()=>{let e=Ne([1]);return this.hasL1&&(e=X(e,ft(D(this.l1,Ee(t))))),this.hasL2&&(e=X(e,ft(D(this.l2,lc(t))))),R(e,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(t,e){return new t({l1:e.l1,l2:e.l2})}};wu.className=\"L1L2\";Q.registerClass(wu);function yD(r){return Mv(r),new wu({l1:r!=null?r.l1:null,l2:0})}function bD(r){return Mv(r),new wu({l2:r!=null?r.l2:null,l1:0})}var gD={l1l2:\"L1L2\"};function me(r){return Sm(r)}function xD(r,t={}){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,\"regularizer\")}function be(r){if(r==null)return null;if(typeof r==\"string\"){let e={className:r in gD?gD[r]:r,config:{}};return xD(e)}else return r instanceof mb?r:xD(r)}var Km=class extends $t{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null&&(this.maxValue=t.maxValue)}call(t,e){t=Nt(t);let n=Fr(t);return this.maxValue!=null&&(n=Cr(n,0,this.maxValue)),n}computeOutputShape(t){return t}getConfig(){let t={maxValue:this.maxValue},e=super.getConfig();return Object.assign(t,e),t}};Km.className=\"ReLU\";Q.registerClass(Km);var jm=class extends $t{constructor(t){super(t==null?{}:t),this.DEFAULT_ALPHA=.3,t==null&&(t={}),this.alpha=t.alpha==null?this.DEFAULT_ALPHA:t.alpha}call(t,e){let n=Nt(t);return Ql(n,this.alpha)}computeOutputShape(t){return t}getConfig(){let t={alpha:this.alpha},e=super.getConfig();return Object.assign(t,e),t}};jm.className=\"LeakyReLU\";Q.registerClass(jm);var Xm=class extends $t{constructor(t){if(super(t==null?{}:t),this.DEFAULT_ALPHA_INITIALIZER=\"zeros\",t==null&&(t={}),this.supportsMasking=!0,this.alphaInitializer=de(t.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=be(t.alphaRegularizer),this.alphaConstraint=Be(t.alphaConstraint),t.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(t.sharedAxes))this.sharedAxes=t.sharedAxes;else if(typeof t.sharedAxes==\"number\")this.sharedAxes=[t.sharedAxes];else throw new M(`Expected sharedAxes to be a number or an array of numbers, but got ${t.sharedAxes}`)}build(t){t=Bt(t);let e=t.slice(1);if(this.sharedAxes!=null)for(let o of this.sharedAxes)e[o-1]=1;this.alpha=this.addWeight(\"alpha\",e,\"float32\",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let o=1;o(Fe(t),t===\"channelsFirst\"?Ot(r,[0,2,3,1]):r))}function zv(r,t){return B(()=>(Fe(t),t===\"channelsFirst\"?Ot(r,[0,2,3,4,1]):r))}function Y8(r,t,e,n=1,o=\"valid\",s,i=1){return B(()=>{if(s==null&&(s=mn()),Fe(s),r.shape.length!==3)throw new M(`The input of a conv1dWithBias operation should be 3, but is ${r.shape.length} instead.`);if(t.shape.length!==3)throw new M(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(e!=null&&e.shape.length!==1)throw new M(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s===\"channelsFirst\"&&(r=Ot(r,[0,2,1])),o===\"causal\")throw new St(\"The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.\");let a=Qp(r,t,n,o===\"same\"?\"same\":\"valid\",\"NWC\",i);return e!=null&&(a=fn(a,e)),a})}function wD(r,t,e,n=[1,1],o=\"valid\",s,i,a=null){return B(()=>{if(s==null&&(s=mn()),Fe(s),r.rank!==3&&r.rank!==4)throw new M(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${r.rank}.`);if(t.rank!==3&&t.rank!==4)throw new M(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${r.rank}.`);let u=Ah(r,s);if(o===\"causal\")throw new St(\"The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.\");return u=uu.conv2d({x:u,filter:t,strides:n,pad:o===\"same\"?\"same\":\"valid\",dilations:i,dataFormat:\"NHWC\",bias:e,activation:a}),s===\"channelsFirst\"&&(u=Ot(u,[0,3,1,2])),u})}function Z8(r,t,e,n=[1,1,1],o=\"valid\",s,i){return B(()=>{if(s==null&&(s=mn()),Fe(s),r.rank!==4&&r.rank!==5)throw new M(`conv3dWithBias expects input to be of rank 4 or 5, but received ${r.rank}.`);if(t.rank!==4&&t.rank!==5)throw new M(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${r.rank}.`);let a=zv(r,s);if(o===\"causal\")throw new St(\"The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.\");return a=Tx(a,t,n,o===\"same\"?\"same\":\"valid\",\"NDHWC\",i),e!=null&&(a=fn(a,e)),s===\"channelsFirst\"&&(a=Ot(a,[0,4,1,2,3])),a})}var bc=class extends $t{constructor(t,e){if(super(e),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",bc.verifyArgs(e),this.rank=t,Ze(this.rank,\"rank\"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new St(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=Cu(e.kernelSize,t,\"kernelSize\"),this.strides=Cu(e.strides==null?1:e.strides,t,\"strides\"),this.padding=e.padding==null?\"valid\":e.padding,pn(this.padding),this.dataFormat=e.dataFormat==null?\"channelsLast\":e.dataFormat,Fe(this.dataFormat),this.activation=Xs(e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.biasInitializer=de(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Be(e.biasConstraint),this.biasRegularizer=be(e.biasRegularizer),this.activityRegularizer=be(e.activityRegularizer),this.dilationRate=Cu(e.dilationRate==null?1:e.dilationRate,t,\"dilationRate\"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new M(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate==\"number\")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new M(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate==\"number\")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new M(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(t){if(ro(\"kernelSize\"in t,\"required key 'kernelSize' not in config\"),typeof t.kernelSize!=\"number\"&&!Cy(t.kernelSize,\"number\",1,3))throw new M(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(t.kernelSize)}.`)}getConfig(){let t={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:js(this.activation),useBias:this.useBias,biasInitializer:Te(this.biasInitializer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),biasConstraint:ze(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}},Iu=class extends bc{constructor(t,e){super(t,e),this.kernel=null,Iu.verifyArgs(e),this.filters=e.filters,Ze(this.filters,\"filters\"),this.kernelInitializer=de(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Be(e.kernelConstraint),this.kernelRegularizer=be(e.kernelRegularizer)}build(t){t=Bt(t);let e=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[e]==null)throw new M(`The channel dimension of the input should be defined. Found ${t[e]}`);let n=t[e],o=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight(\"kernel\",o,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:{[e]:n}}],this.built=!0}call(t,e){return B(()=>{t=Nt(t);let n,o=this.bias==null?null:this.bias.read(),s=Iy(this.activation.getClassName());if(s!=null&&this.rank===2)n=wD(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)n=Y8(t,this.kernel.read(),o,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=wD(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=Z8(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new St(\"convolutions greater than 3D are not implemented yet.\");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(t){t=Bt(t);let e=[],n=this.dataFormat===\"channelsLast\"?t.slice(1,t.length-1):t.slice(2);for(let s=0;s 0 but got ${JSON.stringify(t.filters)}`)}},il=class extends Iu{constructor(t){super(2,t),il.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!=\"number\"&&!Cy(t.kernelSize,\"number\",1,2))throw new M(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(t.kernelSize)}.`)}};il.className=\"Conv2D\";Q.registerClass(il);var al=class extends Iu{constructor(t){super(3,t),al.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!=\"number\"&&!(Array.isArray(t.kernelSize)&&(t.kernelSize.length===1||t.kernelSize.length===3)))throw new M(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(t.kernelSize)}.`)}};al.className=\"Conv3D\";Q.registerClass(al);var Qm=class extends il{constructor(t){if(super(t),this.inputSpec=[new ye({ndim:4})],this.padding!==\"same\"&&this.padding!==\"valid\")throw new M(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=Bt(t),t.length!==4)throw new M(\"Input should have rank 4; Received input shape: \"+JSON.stringify(t));let e=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[e]==null)throw new M(\"The channel dimension of the inputs should be defined. Found `None`.\");let n=t[e],o=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight(\"kernel\",o,\"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 ye({ndim:4,axes:{[e]:n}})],this.built=!0}call(t,e){return B(()=>{let n=Nt(t);if(n.shape.length!==4)throw new M(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let o=n.shape,s=o[0],i,a;this.dataFormat===\"channelsFirst\"?(i=2,a=3):(i=1,a=2);let u=o[i],l=o[a],c=this.kernelSize[0],p=this.kernelSize[1],m=this.strides[0],f=this.strides[1],d=Ys(u,m,c,this.padding),h=Ys(l,f,p,this.padding),g=[s,d,h,this.filters];this.dataFormat!==\"channelsLast\"&&(n=Ot(n,[0,2,3,1]));let x=em(n,this.kernel.read(),g,this.strides,this.padding);return this.dataFormat!==\"channelsLast\"&&(x=Ot(x,[0,3,1,2])),this.bias!=null&&(x=fn(x,this.bias.read(),this.dataFormat)),this.activation!=null&&(x=this.activation.apply(x)),x})}computeOutputShape(t){t=Bt(t);let e=t.slice(),n,o,s;this.dataFormat===\"channelsFirst\"?(n=1,o=2,s=3):(n=3,o=1,s=2);let i=this.kernelSize[0],a=this.kernelSize[1],u=this.strides[0],l=this.strides[1];return e[n]=this.filters,e[o]=Ys(e[o],u,i,this.padding),e[s]=Ys(e[s],l,a,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};Qm.className=\"Conv2DTranspose\";Q.registerClass(Qm);var tf=class extends al{constructor(t){if(super(t),this.inputSpec=[new ye({ndim:5})],this.padding!==\"same\"&&this.padding!==\"valid\")throw new M(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=Bt(t),t.length!==5)throw new M(\"Input should have rank 5; Received input shape: \"+JSON.stringify(t));let e=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[e]==null)throw new M(\"The channel dimension of the inputs should be defined. Found `None`.\");let n=t[e],o=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight(\"kernel\",o,\"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 ye({ndim:5,axes:{[e]:n}})],this.built=!0}call(t,e){return B(()=>{let n=Nt(t);if(n.shape.length!==5)throw new M(`Conv3DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let o=n.shape,s=o[0],i,a,u;this.dataFormat===\"channelsFirst\"?(u=2,i=3,a=4):(u=1,i=2,a=3);let l=o[u],c=o[i],p=o[a],m=this.kernelSize[0],f=this.kernelSize[1],d=this.kernelSize[2],h=this.strides[0],g=this.strides[1],x=this.strides[2],b=Ys(l,h,m,this.padding),w=Ys(c,g,f,this.padding),C=Ys(p,x,d,this.padding),N=[s,b,w,C,this.filters];this.dataFormat!==\"channelsLast\"&&(n=Ot(n,[0,2,3,4,1]));let _=Ex(n,this.kernel.read(),N,this.strides,this.padding);return this.dataFormat!==\"channelsLast\"&&(_=Ot(_,[0,4,1,2,3])),this.bias!==null&&(_=fn(_,this.bias.read(),this.dataFormat)),this.activation!==null&&(_=this.activation.apply(_)),_})}computeOutputShape(t){t=Bt(t);let e=t.slice(),n,o,s,i;this.dataFormat===\"channelsFirst\"?(n=1,o=2,s=3,i=4):(n=4,o=1,s=2,i=3);let a=this.kernelSize[0],u=this.kernelSize[1],l=this.kernelSize[2],c=this.strides[0],p=this.strides[1],m=this.strides[2];return e[n]=this.filters,e[o]=Ys(e[o],c,a,this.padding),e[s]=Ys(e[s],p,u,this.padding),e[i]=Ys(e[i],m,l,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};tf.className=\"Conv3DTranspose\";Q.registerClass(tf);var fb=class extends Iu{constructor(t,e){if(super(t,e),this.DEFAULT_DEPTHWISE_INITIALIZER=\"glorotUniform\",this.DEFAULT_POINTWISE_INITIALIZER=\"glorotUniform\",this.depthwiseKernel=null,this.pointwiseKernel=null,e.filters==null)throw new M(\"The `filters` configuration field is required by SeparableConv, but is unspecified.\");if(e.kernelInitializer!=null||e.kernelRegularizer!=null||e.kernelConstraint!=null)throw new M(\"Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.\");if(e.padding!=null&&e.padding!==\"same\"&&e.padding!==\"valid\")throw new M(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(e.padding)}`);this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=de(e.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=be(e.depthwiseRegularizer),this.depthwiseConstraint=Be(e.depthwiseConstraint),this.pointwiseInitializer=de(e.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=be(e.pointwiseRegularizer),this.pointwiseConstraint=Be(e.pointwiseConstraint)}build(t){if(t=Bt(t),t.length{t=Nt(t);let n;if(this.rank===1)throw new St(\"1D separable convolution is not implemented yet.\");return this.rank===2&&(this.dataFormat===\"channelsFirst\"&&(t=Ot(t,[0,2,3,1])),n=mm(t,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,\"NHWC\")),this.useBias&&(n=fn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat===\"channelsFirst\"&&(n=Ot(n,[0,3,1,2])),n})}getConfig(){let t=super.getConfig();return delete t.rank,delete t.kernelInitializer,delete t.kernelRegularizer,delete t.kernelConstraint,t.depthwiseInitializer=Te(this.depthwiseInitializer),t.pointwiseInitializer=Te(this.pointwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.pointwiseRegularizer=me(this.pointwiseRegularizer),t.depthwiseConstraint=ze(this.depthwiseConstraint),t.pointwiseConstraint=ze(this.pointwiseConstraint),t}};fb.className=\"SeparableConv\";var ef=class extends fb{constructor(t){super(2,t)}};ef.className=\"SeparableConv2D\";Q.registerClass(ef);var Su=class extends Iu{constructor(t){super(1,t),Su.verifyArgs(t),this.inputSpec=[{ndim:3}]}getConfig(){let t=super.getConfig();return delete t.rank,delete t.dataFormat,t}static verifyArgs(t){if(typeof t.kernelSize!=\"number\"&&!Cy(t.kernelSize,\"number\",1,1))throw new M(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(t.kernelSize)}.`)}};Su.className=\"Conv1D\";Q.registerClass(Su);var rf=class extends $t{constructor(t){super(t),typeof t.cropping==\"number\"?this.cropping=[[t.cropping,t.cropping],[t.cropping,t.cropping]]:typeof t.cropping[0]==\"number\"?this.cropping=[[t.cropping[0],t.cropping[0]],[t.cropping[1],t.cropping[1]]]:this.cropping=t.cropping,this.dataFormat=t.dataFormat===void 0?\"channelsLast\":t.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(t){return this.dataFormat===\"channelsFirst\"?[t[0],t[1],t[2]-this.cropping[0][0]-this.cropping[0][1],t[3]-this.cropping[1][0]-this.cropping[1][1]]:[t[0],t[1]-this.cropping[0][0]-this.cropping[0][1],t[2]-this.cropping[1][0]-this.cropping[1][1],t[3]]}call(t,e){return B(()=>{if(t=Nt(t),this.dataFormat===\"channelsLast\"){let n=wh(t,this.cropping[0][0],t.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return wh(n,this.cropping[1][0],t.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=wh(t,this.cropping[0][0],t.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return wh(n,this.cropping[1][0],t.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let t={cropping:this.cropping,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};rf.className=\"Cropping2D\";Q.registerClass(rf);var nf=class extends $t{constructor(t){super(t),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=t.size==null?this.DEFAULT_SIZE:t.size,this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Fe(this.dataFormat),this.interpolation=t.interpolation==null?\"nearest\":t.interpolation,E$(this.interpolation)}computeOutputShape(t){if(this.dataFormat===\"channelsFirst\"){let e=t[2]==null?null:this.size[0]*t[2],n=t[3]==null?null:this.size[1]*t[3];return[t[0],t[1],e,n]}else{let e=t[1]==null?null:this.size[0]*t[1],n=t[2]==null?null:this.size[1]*t[2];return[t[0],e,n,t[3]]}}call(t,e){return B(()=>{let n=Nt(t),o=n.shape;if(this.dataFormat===\"channelsFirst\"){n=Ot(n,[0,2,3,1]);let s=this.size[0]*o[2],i=this.size[1]*o[3],a=this.interpolation===\"nearest\"?Gs.resizeNearestNeighbor(n,[s,i]):Gs.resizeBilinear(n,[s,i]);return Ot(a,[0,3,1,2])}else{let s=this.size[0]*o[1],i=this.size[1]*o[2];return this.interpolation===\"nearest\"?Gs.resizeNearestNeighbor(n,[s,i]):Gs.resizeBilinear(n,[s,i])}})}getConfig(){let t={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},e=super.getConfig();return Object.assign(t,e),t}};nf.className=\"UpSampling2D\";Q.registerClass(nf);function J8(r,t,e=[1,1],n=\"valid\",o,s){return B(()=>{o==null&&(o=mn()),Fe(o);let i=Ah(r,o);if(r.rank!==4)throw new M(`Input for depthwiseConv2d is required to be 4-D, but is instead ${r.rank}-D`);if(t.rank!==4)throw new M(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=Fi(i,t,e,n===\"same\"?\"same\":\"valid\",\"NHWC\",s),o===\"channelsFirst\"&&(i=Ot(i,[0,3,1,2])),i})}var of=class extends bc{constructor(t){super(2,t),this.depthwiseKernel=null,this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=de(t.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Be(t.depthwiseConstraint),this.depthwiseRegularizer=be(t.depthwiseRegularizer)}build(t){if(t=Bt(t),t.length<4)throw new M(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(t)}.`);let e=this.dataFormat===\"channelsFirst\"?1:3;if(t[e]==null||t[e]<0)throw new M(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${t[e]}).`);let n=t[e],o=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight(\"depthwise_kernel\",o,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(t,e){return B(()=>{t=Nt(t);let n=J8(t,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=fn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(t){t=Bt(t);let e=this.dataFormat===\"channelsFirst\"?t[2]:t[1],n=this.dataFormat===\"channelsFirst\"?t[3]:t[2],o=this.dataFormat===\"channelsFirst\"?t[1]*this.depthMultiplier:t[3]*this.depthMultiplier,s=Nn(e,this.kernelSize[0],this.padding,this.strides[0]),i=Nn(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat===\"channelsFirst\"?[t[0],o,s,i]:[t[0],s,i,o]}getConfig(){let t=super.getConfig();return t.depthMultiplier=this.depthMultiplier,t.depthwiseInitializer=Te(this.depthwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.depthwiseConstraint=ze(this.depthwiseRegularizer),t}};of.className=\"DepthwiseConv2D\";Q.registerClass(of);function Bv(r,t,e,n){if(Array.isArray(r)){if(t!=null||e!=null)throw new M(\"When inputs is an array, neither initialState or constants should be provided\");n!=null&&(e=r.slice(r.length-n,r.length),r=r.slice(0,r.length-n)),r.length>1&&(t=r.slice(1,r.length)),r=r[0]}function o(s){return s==null||Array.isArray(s)?s:[s]}return t=o(t),e=o(e),{inputs:r,initialState:t,constants:e}}function Vv(r,t,e,n=!1,o,s,i=!1,a=!1){return B(()=>{let u=t.shape.length;if(u<3)throw new M(`Input should be at least 3D, but is ${u}D.`);let l=[1,0].concat(Zr(2,u));if(t=Ot(t,l),s!=null)throw new St(\"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.\"),o!=null&&(o=J(J(o,\"bool\"),\"float32\"),o.rank===u-1&&(o=rr(o,-1)),o=Ot(o,l)),n&&(t=pr(t,0),o!=null&&(o=pr(o,0)));let c=[],p,m=e,f=t.shape[0],d=vr(t),h;o!=null&&(h=vr(o));for(let x=0;xr(b,m));if(o==null)p=w[0],m=w[1];else{let C=B(()=>{let N=h[x],_=ct(yr(N),N),A=X(D(w[0],N),D(m[0],_)),$=m.map((F,P)=>X(D(w[1][P],N),D(F,_)));return{output:A,newStates:$}});p=C.output,m=C.newStates}a&&c.push(p)}let g;return a&&(g=nr(c,1)),[p,g,m]})}var Tn=class extends $t{constructor(t){super(t);let e;if(t.cell==null)throw new M(\"cell property is missing for the constructor of RNN.\");if(Array.isArray(t.cell)?e=new Ic({cells:t.cell}):e=t.cell,e.stateSize==null)throw new M(\"The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).\");this.cell=e,this.returnSequences=t.returnSequences==null?!1:t.returnSequences,this.returnState=t.returnState==null?!1:t.returnState,this.goBackwards=t.goBackwards==null?!1:t.goBackwards,this._stateful=t.stateful==null?!1:t.stateful,this.unroll=t.unroll==null?!1:t.unroll,this.supportsMasking=!0,this.inputSpec=[new ye({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Zr(0,t).map(e=>null)}else return this.states_}setStates(t){this.states_=t}computeOutputShape(t){$y(t)&&(t=t[0]),t=t;let e=this.cell.stateSize;Array.isArray(e)||(e=[e]);let n=e[0],o;if(this.returnSequences?o=[t[0],t[1],n]:o=[t[0],n],this.returnState){let s=[];for(let i of e)s.push([t[0],i]);return[o].concat(s)}else return o}computeMask(t,e){return B(()=>{Array.isArray(e)&&(e=e[0]);let n=this.returnSequences?e:null;if(this.returnState){let o=this.states.map(s=>null);return[n].concat(o)}else return n})}get states(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,e=[];for(let n=0;na.shape[a.shape.length-1]),i))throw new M(`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=i.map(a=>new ye({shape:[null,a]}));this.stateful&&this.resetStates()}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new vn(\"Cannot call resetStates() on an RNN Layer that is not stateful.\");let n=this.inputSpec[0].shape[0];if(n==null)throw new M(\"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(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>Ne([n,o])):this.states_=[Ne([n,this.cell.stateSize])];else if(t==null)vt(this.states_),this.keptStates!=null&&(vt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>Ne([n,o])):this.states_[0]=Ne([n,this.cell.stateSize]);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new M(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);e===!0?this.keptStates.push(this.states_.slice()):vt(this.states_);for(let o=0;oDe(o.clone()))})}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=Bv(t,n,o,this.numConstants);t=s.inputs,n=s.initialState,o=s.constants;let i=[],a=[];if(n!=null){e.initialState=n,i=i.concat(n),this.stateSpec=[];for(let l of n)this.stateSpec.push(new ye({shape:l.shape}));a=a.concat(this.stateSpec)}if(o!=null&&(e.constants=o,i=i.concat(o),this.numConstants=o.length),i[0]instanceof Jr){let l=[t].concat(i),c=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=c;let m=super.apply(l,e);return this.inputSpec=p,m}else return super.apply(t,e)}call(t,e){return B(()=>{let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;t=Nt(t),s==null&&(this.stateful?s=this.states_:s=this.getInitialState(t));let i=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(s.length!==i)throw new M(`RNN Layer has ${i} state(s) but was passed ${s.length} initial state(s).`);this.unroll&&console.warn(\"Ignoring unroll = true for RNN layer, due to imperative backend.\");let a={training:o},l=Vv((d,h)=>{let g=this.cell.call([d].concat(h),a);return[g[0],g.slice(1)]},t,s,this.goBackwards,n,null,this.unroll,this.returnSequences),c=l[0],p=l[1],m=l[2];this.stateful&&this.resetStates(m,o);let f=this.returnSequences?p:c;return this.returnState?[f].concat(m):f})}getInitialState(t){return B(()=>{let e=Ne(t.shape);return e=ft(e,[1,2]),e=nl(e),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Ey(e,[1,n]):e):this.cell.stateSize>1?[Ey(e,[1,this.cell.stateSize])]:[e]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(t)}getConfig(){let t=super.getConfig(),e={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(e.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===Tn.className&&(e.cell={className:this.cell.getClassName(),config:n}),Object.assign(Object.assign(Object.assign({},n),t),e)}static fromConfig(t,e,n={}){let o=e.cell,s=gn(o,n);return new t(Object.assign(e,{cell:s}))}};Tn.className=\"RNN\";Q.registerClass(Tn);var ll=class extends $t{},wc=class extends ll{constructor(t){super(t),this.DEFAULT_ACTIVATION=\"tanh\",this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_RECURRENT_INITIALIZER=\"orthogonal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",this.units=t.units,Ze(this.units,\"units\"),this.activation=Xs(t.activation==null?this.DEFAULT_ACTIVATION:t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=de(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=be(t.kernelRegularizer),this.recurrentRegularizer=be(t.recurrentRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.kernelConstraint=Be(t.kernelConstraint),this.recurrentConstraint=Be(t.recurrentConstraint),this.biasConstraint=Be(t.biasConstraint),this.dropout=ac([1,qs([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=ac([1,qs([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Bt(t),this.kernel=this.addWeight(\"kernel\",[t[t.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(t,e){return B(()=>{if(t=t,t.length!==2)throw new M(`SimpleRNNCell expects 2 input Tensors, got ${t.length}.`);let n=t[1];t=t[0];let o=e.training==null?!1:e.training;0yr(t),rate:this.dropout,training:o,dropoutFunc:this.dropoutFunc})),0yr(n),rate:this.recurrentDropout,training:o,dropoutFunc:this.dropoutFunc}));let s,i=this.dropoutMask,a=this.recurrentDropoutMask;i!=null?s=To(D(t,i),this.kernel.read()):s=To(t,this.kernel.read()),this.bias!=null&&(s=fn(s,this.bias.read())),a!=null&&(n=D(n,a));let u=X(s,To(n,this.recurrentKernel.read()));return this.activation!=null&&(u=this.activation.apply(u)),[u,u]})}getConfig(){let t=super.getConfig(),e={units:this.units,activation:js(this.activation),useBias:this.useBias,kernelInitializer:Te(this.kernelInitializer),recurrentInitializer:Te(this.recurrentInitializer),biasInitializer:Te(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),recurrentRegularizer:me(this.recurrentRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:ze(this.kernelConstraint),recurrentConstraint:ze(this.recurrentConstraint),biasConstraint:ze(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},t),e)}};wc.className=\"SimpleRNNCell\";Q.registerClass(wc);var sf=class extends Tn{constructor(t){t.cell=new wc(t),super(t)}call(t,e){return B(()=>{this.cell.dropoutMask!=null&&(vt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(vt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return new t(e)}};sf.className=\"SimpleRNN\";Q.registerClass(sf);var Cc=class extends ll{constructor(t){if(super(t),this.DEFAULT_ACTIVATION=\"tanh\",this.DEFAULT_RECURRENT_ACTIVATION=\"hardSigmoid\",this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_RECURRENT_INITIALIZER=\"orthogonal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",t.resetAfter)throw new M(\"GRUCell does not support reset_after parameter set to true.\");this.units=t.units,Ze(this.units,\"units\"),this.activation=Xs(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=Xs(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=de(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=be(t.kernelRegularizer),this.recurrentRegularizer=be(t.recurrentRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.kernelConstraint=Be(t.kernelConstraint),this.recurrentConstraint=Be(t.recurrentConstraint),this.biasConstraint=Be(t.biasConstraint),this.dropout=ac([1,qs([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=ac([1,qs([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Bt(t);let e=t[t.length-1];this.kernel=this.addWeight(\"kernel\",[e,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight(\"recurrent_kernel\",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight(\"bias\",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(t,e){return B(()=>{if(t=t,t.length!==2)throw new M(`GRUCell expects 2 input Tensors (inputs, h, c), got ${t.length}.`);let n=e.training==null?!1:e.training,o=t[1];t=t[0],0yr(t),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0yr(o),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));let s=this.dropoutMask,i=this.recurrentDropoutMask,a,u,l;0{this.cell.dropoutMask!=null&&(vt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(vt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return e.implmentation===0&&(e.implementation=1),new t(e)}};af.className=\"GRU\";Q.registerClass(af);var ul=class extends ll{constructor(t){super(t),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=t.units,Ze(this.units,\"units\"),this.activation=Xs(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=Xs(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=de(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=t.unitForgetBias,this.kernelRegularizer=be(t.kernelRegularizer),this.recurrentRegularizer=be(t.recurrentRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.kernelConstraint=Be(t.kernelConstraint),this.recurrentConstraint=Be(t.recurrentConstraint),this.biasConstraint=Be(t.biasConstraint),this.dropout=ac([1,qs([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=ac([1,qs([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){var e;t=Bt(t);let n=t[t.length-1];this.kernel=this.addWeight(\"kernel\",[n,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight(\"recurrent_kernel\",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let o;if(this.useBias){if(this.unitForgetBias){let s=this.biasInitializer,i=this.units;o=new(e=class extends dn{apply(u,l){let c=s.apply([i]),p=new yu().apply([i]),m=s.apply([i*2]);return Tv(Tv(c,p),m)}},e.className=\"CustomInit\",e)}else o=this.biasInitializer;this.bias=this.addWeight(\"bias\",[this.units*4],null,o,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(t,e){return B(()=>{let n=e.training==null?!1:e.training;if(t=t,t.length!==3)throw new M(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let o=t[1],s=t[2];t=t[0],0yr(t),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0yr(o),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));let i=this.dropoutMask,a=this.recurrentDropoutMask,u,l,c,p;0{this.cell.dropoutMask!=null&&(vt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(vt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return e.implmentation===0&&(e.implementation=1),new t(e)}};lf.className=\"LSTM\";Q.registerClass(lf);var Ic=class extends ll{constructor(t){super(t),this.cells=t.cells}get stateSize(){let t=[];for(let e of this.cells.slice().reverse())Array.isArray(e.stateSize)?t.push(...e.stateSize):t.push(e.stateSize);return t}call(t,e){return B(()=>{t=t;let n=t.slice(1),o=[];for(let a of this.cells.slice().reverse())Array.isArray(a.stateSize)?o.push(n.splice(0,a.stateSize.length)):o.push(n.splice(0,1));o.reverse();let s=[],i;for(let a=0;a{Hs(`RNNCell_${o}`,()=>{n.build(t),Array.isArray(n.stateSize)?e=n.stateSize[0]:e=n.stateSize,t=[t[0],e]})}),this.built=!0}getConfig(){let t=super.getConfig(),e=s=>({className:s.getClassName(),config:s.getConfig()}),o={cells:this.cells.map(e)};return Object.assign(Object.assign({},t),o)}static fromConfig(t,e,n={}){let o=[];for(let s of e.cells)o.push(gn(s,n));return new t({cells:o})}get trainableWeights(){if(!this.trainable)return[];let t=[];for(let e of this.cells)t.push(...e.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let e of this.cells)t.push(...e.nonTrainableWeights);if(!this.trainable){let e=[];for(let n of this.cells)e.push(...n.trainableWeights);return e.concat(t)}return t}getWeights(){let t=[];for(let e of this.cells)t.push(...e.weights);return Ih(t)}setWeights(t){let e=[];for(let n of this.cells){let o=n.weights.length,s=t.splice(o);for(let i=0;is!=null?s(t(),e):Ay(t(),e),a=()=>xu(i,t,n);return!o||o<=1?De(a().clone()):Array(o).fill(void 0).map(a).map(l=>De(l.clone()))}var Q8=function(r,t){var e={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&t.indexOf(n)<0&&(e[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var o=0,n=Object.getOwnPropertySymbols(r);o{if(this.cell.dropoutMask!=null&&(vt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(vt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),e&&e.constants)throw new M(\"ConvRNN2D cell does not support constants\");let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}computeOutputShape(t){let e=this.computeSingleOutputShape(t);return this.returnSequences||(e=[e[0],...e.slice(2)]),this.returnState&&(e=[e,...Array(2).fill([t[0],...e.slice(-3)])]),e}getInitialState(t){return B(()=>{let{stateSize:e}=this.cell,n=t.shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.slice(2)],i=Ne(s);return Array.isArray(e)?Array(e.length).fill(i):[i]})}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new vn(\"Cannot call resetStates() on an RNN Layer that is not stateful.\");let n=this.inputSpec[0].shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.slice(2)];if(n[0]==null)throw new M(\"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(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>Ne(s)):this.states_=[Ne(s)];else if(t==null)vt(this.states_),this.keptStates!=null&&(vt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>Ne(s)):this.states_[0]=Ne(s);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new M(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);e?this.keptStates.push(this.states_.slice()):vt(this.states_);for(let a=0;aDe(a.clone()))})}computeSingleOutputShape(t){let{dataFormat:e,filters:n,kernelSize:o,padding:s,strides:i,dilationRate:a}=this.cell,u=e===\"channelsFirst\",l=t[u?3:2],c=t[u?4:3],p=Nn(l,o[0],s,i[0],a[0]),m=Nn(c,o[1],s,i[1],a[1]);return[...t.slice(0,2),...u?[n,p,m]:[p,m,n]]}};db.className=\"ConvRNN2D\";var Sc=class extends ul{constructor(t){let{filters:e,kernelSize:n,strides:o,padding:s,dataFormat:i,dilationRate:a}=t;super(Object.assign(Object.assign({},t),{units:e})),this.filters=e,Ze(this.filters,\"filters\"),this.kernelSize=Cu(n,2,\"kernelSize\"),this.kernelSize.forEach(u=>Ze(u,\"kernelSize\")),this.strides=Cu(o||1,2,\"strides\"),this.strides.forEach(u=>Ze(u,\"strides\")),this.padding=s||\"valid\",pn(this.padding),this.dataFormat=i||\"channelsLast\",Fe(this.dataFormat),this.dilationRate=Cu(a||1,2,\"dilationRate\"),this.dilationRate.forEach(u=>Ze(u,\"dilationRate\"))}build(t){var e;t=Bt(t);let n=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[n]==null)throw new M(`The channel dimension of the input should be defined. Found ${t[n]}`);let o=t[n],s=4,i=this.kernelSize.concat([o,this.filters*s]);this.kernel=this.addWeight(\"kernel\",i,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let a=this.kernelSize.concat([this.filters,this.filters*s]);if(this.recurrentKernel=this.addWeight(\"recurrent_kernel\",a,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let u;if(this.unitForgetBias){let l=this.biasInitializer,c=this.filters;u=new(e=class extends dn{apply(m,f){let d=l.apply([c]),h=cr([c]),g=l.apply([c*2]);return Nm([d,h,g])}},e.className=\"CustomInit\",e)}else u=this.biasInitializer;this.bias=this.addWeight(\"bias\",[this.filters*s],null,u,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(t,e){return B(()=>{if(t.length!==3)throw new M(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let n=e.training||!1,o=t[0],s=t[1],i=t[2],a=4;0yr(o),rate:this.dropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let u=this.dropoutMask,l=(rt,ot,at)=>!ot||!ot[at]?rt:D(ot[at],rt),c=l(o,u,0),p=l(o,u,1),m=l(o,u,2),f=l(o,u,3);0yr(s),rate:this.recurrentDropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let d=this.recurrentDropoutMask,h=l(s,d,0),g=l(s,d,1),x=l(s,d,2),b=l(s,d,3),w=3,[C,N,_,A]=mr(this.kernel.read(),a,w),[$,F,P,V]=this.useBias?mr(this.bias.read(),a):[null,null,null,null];c=this.inputConv(c,C,$,this.padding),p=this.inputConv(p,N,F,this.padding),m=this.inputConv(m,_,P,this.padding),f=this.inputConv(f,A,V,this.padding);let[G,W,q,H]=mr(this.recurrentKernel.read(),a,w);h=this.recurrentConv(h,G),g=this.recurrentConv(g,W),x=this.recurrentConv(x,q),b=this.recurrentConv(b,H);let j=this.recurrentActivation.apply(X(c,h)),Y=this.recurrentActivation.apply(X(p,g)),Z=X(D(Y,i),D(j,this.activation.apply(X(m,x)))),et=D(this.recurrentActivation.apply(X(f,b)),this.activation.apply(Z));return[et,et,Z]})}getConfig(){let t=super.getConfig(),{units:e}=t,n=Q8(t,[\"units\"]),o={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),o)}inputConv(t,e,n,o){let s=In(t,e,this.strides,o||\"valid\",this.dataFormat===\"channelsFirst\"?\"NCHW\":\"NHWC\",this.dilationRate);return n?fn(s,n,this.dataFormat):s}recurrentConv(t,e){return In(t,e,1,\"same\",this.dataFormat===\"channelsFirst\"?\"NCHW\":\"NHWC\")}};Sc.className=\"ConvLSTM2DCell\";Q.registerClass(Sc);var uf=class extends db{constructor(t){let e=new Sc(t);super(Object.assign(Object.assign({},t),{cell:e}))}static fromConfig(t,e){return new t(e)}};uf.className=\"ConvLSTM2D\";Q.registerClass(uf);var vc=class extends $t{constructor(t){super(t),this.rate=Math.max(Math.min(t.rate,1),0),this.noiseShape=t.noiseShape,this.seed=t.seed,this.supportsMasking=!0}getNoiseShape(t){if(this.noiseShape==null)return this.noiseShape;let e=t.shape,n=[];for(let o=0;o{this.invokeCallHook(t,e);let n=Nt(t);if(0Ay(n,this.rate,s,this.seed),()=>n,o)}return t})}getConfig(){let t={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},e=super.getConfig();return Object.assign(t,e),t}dispose(){return super.dispose()}};vc.className=\"Dropout\";Q.registerClass(vc);var cf=class extends vc{constructor(t){super(t),this.inputSpec=[{ndim:3}]}getNoiseShape(t){let e=t.shape;return[e[0],1,e[2]]}};cf.className=\"SpatialDropout1D\";Q.registerClass(cf);var pf=class extends $t{constructor(t){if(super(t),this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",t.batchInputShape==null&&t.inputShape==null&&t.inputDim!=null){let e=null;t.batchSize!=null&&(e=t.batchSize),this.batchInputShape=[e,t.inputDim]}this.units=t.units,Ze(this.units,\"units\"),this.activation=Xs(t.activation),t.useBias!=null&&(this.useBias=t.useBias),this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Be(t.kernelConstraint),this.biasConstraint=Be(t.biasConstraint),this.kernelRegularizer=be(t.kernelRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.activityRegularizer=be(t.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(t){t=Bt(t);let e=t[t.length-1];this.kernel==null&&(this.kernel=this.addWeight(\"kernel\",[e,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]:e}}],this.built=!0}computeOutputShape(t){t=Bt(t);let e=t.slice();return e[e.length-1]=this.units,e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t),o=Iy(this.activation.getClassName()),s;return o!=null?s=To(n,this.kernel.read(),o,this.bias?this.bias.read():null):(s=To(n,this.kernel.read()),this.bias!=null&&(s=fn(s,this.bias.read())),this.activation!=null&&(s=this.activation.apply(s))),s})}getConfig(){let t={units:this.units,activation:js(this.activation),useBias:this.useBias,kernelInitializer:Te(this.kernelInitializer),biasInitializer:Te(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:ze(this.kernelConstraint),biasConstraint:ze(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}};pf.className=\"Dense\";Q.registerClass(pf);var mf=class extends $t{constructor(t){t=t||{},super(t),this.inputSpec=[{minNDim:3}],this.dataFormat=t.dataFormat}computeOutputShape(t){t=Bt(t);for(let e of t.slice(1))if(e==null)throw new M(`The shape of the input to \"Flatten\" is not fully defined (got ${t.slice(1)}). Make sure to pass a complete \"input_shape\" or \"batch_input_shape\" argument to the first layer in your model.`);return[t[0],No(t,1)]}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t);if(this.dataFormat===\"channelsFirst\"&&n.rank>1){let o=[0];for(let s=2;s{this.invokeCallHook(t,e);let n=Nt(t);return this.activation.apply(n)})}getConfig(){let t={activation:js(this.activation)},e=super.getConfig();return Object.assign(t,e),t}};ff.className=\"Activation\";Q.registerClass(ff);var df=class extends $t{constructor(t){super(t),this.n=t.n,this.inputSpec=[{ndim:2}]}computeOutputShape(t){return[t[0],this.n,t[1]]}call(t,e){return B(()=>(t=Nt(t),$$(t,this.n)))}getConfig(){let t={n:this.n},e=super.getConfig();return Object.assign(t,e),t}};df.className=\"RepeatVector\";Q.registerClass(df);var hf=class extends $t{constructor(t){super(t),this.targetShape=t.targetShape;for(let e=0;e{this.invokeCallHook(t,e);let n=Nt(t),o=n.shape,s=o.slice(0,1).concat(this.fixUnknownDimension(o.slice(1),this.targetShape));return R(n,s)})}getConfig(){let t={targetShape:this.targetShape},e=super.getConfig();return Object.assign(t,e),t}};hf.className=\"Reshape\";Q.registerClass(hf);var gf=class extends $t{constructor(t){if(super(t),t.dims==null)throw new Error(\"Required configuration field `dims` is missing during Permute constructor call.\");if(!Array.isArray(t.dims))throw new Error(`Permute constructor requires \\`dims\\` to be an Array, but received ${t.dims} instead.`);let e=Zr(1,t.dims.length+1);if(!y.arraysEqual(t.dims.slice().sort(),e))throw new Error(\"Invalid permutation `dims`: \"+JSON.stringify(t.dims)+\" `dims` must contain consecutive integers starting from 1.\");this.dims=t.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new ye({ndim:this.dims.length+1})]}computeOutputShape(t){t=Bt(t);let e=t.slice();return this.dims.forEach((n,o)=>{e[o+1]=t[n]}),e}call(t,e){return Ot(Nt(t),this.dimsIncludingBatch)}getConfig(){let t={dims:this.dims},e=super.getConfig();return Object.assign(t,e),t}};gf.className=\"Permute\";Q.registerClass(gf);var xf=class extends $t{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null?this.maskValue=t.maskValue==null?0:t.maskValue:this.maskValue=0}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={maskValue:this.maskValue};return Object.assign(e,t),e}computeMask(t,e){let n=Nt(t),o=-1;return qu(Bs(n,this.maskValue),o)}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t),o=-1,s=!0,i=qu(Bs(n,this.maskValue),o,s);return D(n,J(i,n.dtype))})}};xf.className=\"Masking\";Q.registerClass(xf);var yf=class extends $t{constructor(t){if(super(t),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER=\"randomUniform\",t.batchInputShape==null&&t.inputShape==null){let e=null;t.batchSize!=null&&(e=t.batchSize),t.inputLength==null?this.batchInputShape=[e,null]:this.batchInputShape=[e].concat(xe(t.inputLength))}this.inputDim=t.inputDim,Ze(this.inputDim,\"inputDim\"),this.outputDim=t.outputDim,Ze(this.outputDim,\"outputDim\"),this.embeddingsInitializer=de(t.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=be(t.embeddingsRegularizer),this.activityRegularizer=be(t.activityRegularizer),this.embeddingsConstraint=Be(t.embeddingsConstraint),this.maskZero=t.maskZero,this.supportsMasking=t.maskZero,this.inputLength=t.inputLength}build(t){this.embeddings=this.addWeight(\"embeddings\",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(t){}computeMask(t,e){return B(()=>this.maskZero?(t=Nt(t),Bs(t,It(t))):null)}computeOutputShape(t){if(t=Bt(t),this.inputLength==null)return[...t,this.outputDim];let e=xe(this.inputLength);if(e.length!==t.length-1)throw new M(`\"inputLength\" is ${this.inputLength}, but received input shape has shape ${t}`);{let n=0;for(let o=0;o{this.invokeCallHook(t,e);let n=Nt(t);n.dtype!==\"int32\"&&(n=no(n,\"int32\"));let o=_y(this.embeddings.read(),R(n,[n.size]));return R(o,Bt(this.computeOutputShape(n.shape)))})}getConfig(){let t={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Te(this.embeddingsInitializer),embeddingsRegularizer:me(this.embeddingsRegularizer),activityRegularizer:me(this.activityRegularizer),embeddingsConstraint:ze(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},e=super.getConfig();return Object.assign(t,e),t}};yf.className=\"Embedding\";Q.registerClass(yf);var pl=class extends $t{constructor(t){super(t||{}),this.supportsMasking=!0}mergeFunction(t){throw new St}computeElementwiseOpOutputShape(t,e){if(t==null||e==null)return null;if(t.length1)throw new M(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(t)}.`);let n=t[0]==null?null:t[0].slice(1);for(let s=1;ss.length);t.indexOf(null)===-1&&vo(o).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(t,e){return B(()=>{if(t=t,this.reshapeRequired){let n=[],o=t.map(s=>s.rank);if(o.indexOf(null)===-1){let s=qs(o);for(let i of t){let a=i.rank;for(let u=0;u1){let c=Zr(1,l).concat([0]);n.push(Ot(u,c)),s=!0}else n.push(u)}let i=this.mergeFunction(n),a=i.rank;if(s){if(a==null){let u=i.shape,l=u.length,c=u[l-1],p=[c].concat(u.slice(0,u.length-1));i=R(Ot(R(i,[-1,c]),[1,0]),p)}else if(a>1){let u=[a-1].concat(Zr(0,a-1));i=Ot(i,u)}}return i}}else return this.mergeFunction(t)})}computeOutputShape(t){t=t;let e;t[0]==null?e=null:e=t[0].slice(1);for(let o=1;o{if(e==null)return null;if(!Array.isArray(e))throw new M(\"`mask` should be an Array\");if(!Array.isArray(t))throw new M(\"`inputs` should be an Array\");if(e.length!==t.length)throw new M(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${t.length} vs ${e.length})`);if(e.every(o=>o==null))return null;e=e.map(o=>o==null?o:rr(o,0));let n=e[0];for(let o=1;o{let e=t[0].clone();for(let n=1;n{let e=t[0].clone();for(let n=1;n{let e=t[0].clone();for(let n=1;n{let e=t[0];for(let n=1;n{let e=t[0];for(let n=1;n1)throw new M(\"A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: \"+JSON.stringify(t))}mergeFunction(t){return B(()=>Nm(t,this.axis))}computeOutputShape(t){if(!(Array.isArray(t)&&Array.isArray(t[0])))throw new M(\"A `Concatenate` layer should be called on a list of inputs.\");let e=t,n=e[0].slice(),o=this.axis<0?n.length+this.axis:this.axis;for(let s of e.slice(1)){if(n[o]==null||s[o]==null){n[o]=null;break}n[o]+=s[o]}return n}computeMask(t,e){if(e==null)return null;if(!Array.isArray(e))throw new M(\"`mask` should be an array for Concatenate\");if(!Array.isArray(t))throw new M(\"`inputs` should be an array for Concatenate\");if(e.length!==t.length)throw new M(`Mismatch in the length of mask (${e.length}) and the legnth of inputs (${t.length})`);return B(()=>{let n=!0;if(e.forEach(i=>{if(i!=null){n=!1;return}}),n)return null;let o=[];for(let i=0;i3||t.shape.length>3)throw new St(\"batchDot is not implemented for tensors of 4D or higher rank yet\");if(y.assert(r.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${r.shape.length}`),y.assert(r.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof e==\"number\"&&(e=[e,e]),r.dtype===\"complex64\"||t.dtype===\"complex64\")throw new St(\"batchDot is not implemented for complex64-type Tensors yet.\");let n=r.shape.length,o=t.shape.length;e==null&&(e=[n-1,o-2]);let s=e;return B(()=>{let i;if(n>o){i=n-o;let u=[];for(let l=0;ln){i=o-n;let u=[];for(let l=0;l0){let u;n>o?u=n+o-3:u=n-1;let l=[];for(let c=u;c\"A `Dot` layer should be called on a list of exactly 2 inputs.\");let e=t[0],n=t[1];if(e.length>3||n.length>3)throw new St(\"Dot layer does not support tensors of 4D or higher rank yet.\");let o=this.interpretAxes(e,n);if(e[o[0]]!==n[o[1]])throw new M(`Dimension incompatibility: ${e[o[0]]} !== ${n[o[1]]}`)}mergeFunction(t){if(t.length!==2)throw new M(`A \\`Dot\\` layer must be called on exactly 2 inputs, but received ${t.length} input(s).`);let e=t[0],n=t[1],o;return Array.isArray(this.axes)?o=this.axes.map((s,i)=>$h(s,t[i].shape.length)):o=[$h(this.axes,e.shape.length),$h(this.axes,n.shape.length)],this.normalize&&(e=Sh(e,o[0]),n=Sh(n,o[1])),tY(e,n,o)}interpretAxes(t,e){let n;return Array.isArray(this.axes)?n=this.axes:n=[$h(this.axes,t.length),$h(this.axes,e.length)],n}computeOutputShape(t){y.assert(Array.isArray(t)&&t.length===2&&Array.isArray(t[0])&&Array.isArray(t[1]),()=>\"A `Dot` layer should be called on a list of exactly 2 inputs.\");let e=t[0].slice(),n=t[1].slice();if(e.length>3||n.length>3)throw new St(\"Dot layer does not support tensors of 4D or higher rank yet.\");let o=this.interpretAxes(e,n);e.splice(o[0],1),n.splice(o[1],1),n.splice(0,1);let s=e.concat(n);return s.length===1&&s.push(1),s}computeMask(t,e){return null}getConfig(){let t={axes:this.axes,normalize:this.normalize},e=super.getConfig();return Object.assign(t,e),t}};Nf.className=\"Dot\";Q.registerClass(Nf);var Tf=class extends $t{constructor(t){super(t),this.supportsMasking=!0,this.stddev=t.stddev}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={stddev:this.stddev};return Object.assign(e,t),e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t);return xu(()=>X(Tm(n.shape,0,this.stddev),n),()=>n,e.training||!1)})}};Tf.className=\"GaussianNoise\";Q.registerClass(Tf);var kf=class extends $t{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={rate:this.rate};return Object.assign(e,t),e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t);return this.rate>0&&this.rate<1?xu(()=>{let s=Math.sqrt(this.rate/(1-this.rate));return D(n,Tm(n.shape,1,s))},()=>n,e.training||!1):n})}};kf.className=\"GaussianDropout\";Q.registerClass(kf);var Ef=class extends $t{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate,this.noiseShape=t.noiseShape}_getNoiseShape(t){return this.noiseShape||Nt(t).shape}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={rate:this.rate};return Object.assign(e,t),e}call(t,e){return B(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(t);return xu(()=>{let s=Nt(t),i=1.6732632423543772,a=1.0507009873554805,u=-i*a,l=ln(zi(n),this.rate);l=no(l,\"float32\");let c=((1-this.rate)*(1+this.rate*u**2))**-.5,p=-c*u*this.rate,m=X(D(s,l),D(X(l,-1),u));return X(D(m,c),p)},()=>Nt(t),e.training||!1)}return t})}};Ef.className=\"AlphaDropout\";Q.registerClass(Ef);function Dh(r,t,e,n,o,s=.001){let i;if(r.rank===2)i=xx(r,t,e,n,o,s);else if(r.rank===3)i=yx(r,t,e,n,o,s);else if(r.rank===4)i=bx(r,t,e,n,o,s);else throw new St(`batchNormalization is not implemented for array of rank ${r.rank} yet`);return i}function eY(r,t,e,n,o=.001){return B(()=>{let s=Zu(r,n),i=s.mean,a=s.variance;return[Dh(r,i,a,e,t,o),i,a]})}function rY(r,t,e,n,o=.001){return B(()=>{let s=Zu(r,n),i=s.mean,a=s.variance,u=[];for(let d of Zr(0,r.rank))n.indexOf(d)!==-1?u.push(1):u.push(r.shape[d]);let l=R(i,u),c=R(a,u),p=t==null?null:R(t,u),m=e==null?null:R(e,u);return[Dh(r,l,c,m,p,o),i,a]})}function nY(r,t,e,n,o=.001){return y.arraysEqual(n.slice().sort(),Zr(0,r.rank-1))?eY(r,t,e,n,o):rY(r,t,e,n,o)}var _f=class extends $t{constructor(t){t==null&&(t={}),super(t),this.supportsMasking=!0,this.axis=t.axis==null?-1:t.axis,this.momentum=t.momentum==null?.99:t.momentum,this.epsilon=t.epsilon==null?.001:t.epsilon,this.center=t.center==null?!0:t.center,this.scale=t.scale==null?!0:t.scale,this.betaInitializer=de(t.betaInitializer||\"zeros\"),this.gammaInitializer=de(t.gammaInitializer||\"ones\"),this.movingMeanInitializer=de(t.movingMeanInitializer||\"zeros\"),this.movingVarianceInitializer=de(t.movingVarianceInitializer||\"ones\"),this.betaConstraint=Be(t.betaConstraint),this.gammaConstraint=Be(t.gammaConstraint),this.betaRegularizer=be(t.betaRegularizer),this.gammaRegularizer=be(t.gammaRegularizer)}build(t){t=Bt(t);let e=this.axis>=0?this.axis:this.axis+t.length,n=t[e];if(n==null)throw new M(`Axis ${e} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(t)}.`);this.inputSpec=[new ye({ndim:t.length,axes:{[e]:n}})];let o=[n];this.scale&&(this.gamma=this.addWeight(\"gamma\",o,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight(\"beta\",o,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight(\"moving_mean\",o,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight(\"moving_variance\",o,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(t,e){return B(()=>{let n=e.training==null?!1:e.training,o=Nt(t),s=o.shape,i=s.length,a=Zr(0,i),u=this.axis>=0?this.axis:this.axis+i;a.splice(u,1);let l=Io(1,i);l[u]=s[u];let c=a.slice();c.sort();let p=!y.arraysEqual(c,Zr(0,i).slice(0,i-1)),m=()=>{if(p){let b=R(this.movingMean.read(),l),w=R(this.movingVariance.read(),l),C=this.center?R(this.beta.read(),l):null,N=this.scale?R(this.gamma.read(),l):null;return Dh(o,b,w,C,N,this.epsilon)}else return Dh(o,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!n)return m();let[f,d,h]=nY(o,this.gamma.read(),this.beta.read(),a,this.epsilon),g=(b,w,C)=>{B(()=>{let N=1-C,_=b.read(),A=D(ct(_,w),N);b.write(ct(_,A))})};return(()=>{g(this.movingMean,d,this.momentum),g(this.movingVariance,h,this.momentum)})(),f})}getConfig(){let t={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Te(this.betaInitializer),gammaInitializer:Te(this.gammaInitializer),movingMeanInitializer:Te(this.movingMeanInitializer),movingVarianceInitializer:Te(this.movingVarianceInitializer),betaRegularizer:me(this.betaRegularizer),gammaRegularizer:me(this.gammaRegularizer),betaConstraint:ze(this.betaConstraint),gammaConstraint:ze(this.gammaConstraint)},e=super.getConfig();return Object.assign(t,e),t}};_f.className=\"BatchNormalization\";Q.registerClass(_f);var Af=class extends $t{constructor(t){if(t==null&&(t={}),super(t),this.axis=t.axis==null?-1:t.axis,typeof this.axis==\"number\"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let 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)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=t.epsilon==null?.001:t.epsilon,this.center=t.center==null?!0:t.center,this.scale=t.scale==null?!0:t.scale,this.betaInitializer=de(t.betaInitializer||\"zeros\"),this.gammaInitializer=de(t.gammaInitializer||\"ones\"),this.betaRegularizer=be(t.betaRegularizer),this.gammaRegularizer=be(t.gammaRegularizer),this.supportsMasking=!0}build(t){t=Bt(t);let e=t.length;typeof this.axis==\"number\"&&(this.axis=[this.axis]);for(let s=0;s=e)throw new Error(`Invalid axis: ${s}`);if(this.axis.length!==vo(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(s=>t[s]),o=!0;this.scale?this.gamma=this.addWeight(\"gamma\",n,\"float32\",this.gammaInitializer,this.gammaRegularizer,o):this.gamma=null,this.center?this.beta=this.addWeight(\"beta\",n,\"float32\",this.betaInitializer,this.betaRegularizer,o):this.beta=null,this.built=!0}call(t,e){let n=Nt(t),o=n.shape,s=o.length;return B(()=>{let{mean:a,variance:u}=Zu(n,this.axis,!0),l=Io(1,s);for(let h of this.axis)l[h]=o[h];let c=h=>h!=null&&h.shape.length!==s?R(h,l):h,p=this.scale?c(this.gamma.read()):null,m=this.center?c(this.beta.read()):null,f=[],d=[];for(let h=0;h{if(r.rank!==4)throw new M(`temporalPadding expects input tensor to be 4-D, but received a ${r.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new M(\"spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.\");if(e==null&&(e=mn()),e!==\"channelsLast\"&&e!==\"channelsFirst\")throw new M(`Unknown data format: ${e}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let n;return e===\"channelsFirst\"?n=[[0,0],[0,0],t[0],t[1]]:n=[[0,0],t[0],t[1],[0,0]],cn(r,n)})}var $f=class extends $t{constructor(t){if(t==null&&(t={}),super(t),this.dataFormat=t.dataFormat==null?mn():t.dataFormat,t.padding==null)this.padding=[[1,1],[1,1]];else if(typeof t.padding==\"number\")this.padding=[[t.padding,t.padding],[t.padding,t.padding]];else{if(t.padding=t.padding,t.padding.length!==2)throw new M(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${t.padding.length} array.`);let e,n;if(typeof t.padding[0]==\"number\")e=[t.padding[0],t.padding[0]],n=[t.padding[1],t.padding[1]];else{if(t.padding=t.padding,t.padding[0].length!==2)throw new M(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${t.padding[0].length} array.`);if(e=t.padding[0],t.padding[1].length!==2)throw new M(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${t.padding[1].length} array.`);n=t.padding[1]}this.padding=[e,n]}this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){t=Bt(t);let e,n;return this.dataFormat===\"channelsFirst\"?(t[2]!=null&&t[2]>=0?e=t[2]+this.padding[0][0]+this.padding[0][1]:e=null,t[3]!=null&&t[3]>=0?n=t[3]+this.padding[1][0]+this.padding[1][1]:n=null,[t[0],t[1],e,n]):(t[1]!=null&&t[1]>=0?e=t[1]+this.padding[0][0]+this.padding[0][1]:e=null,t[2]!=null&&t[2]>=0?n=t[2]+this.padding[1][0]+this.padding[1][1]:n=null,[t[0],e,n,t[3]])}call(t,e){return B(()=>oY(Nt(t),this.padding,this.dataFormat))}getConfig(){let t={padding:this.padding,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};$f.className=\"ZeroPadding2D\";Q.registerClass($f);function wb(r,t,e,n,o,s){return B(()=>{Fe(o),Iv(s),pn(n),e==null&&(e=[1,1]),n==null&&(n=\"valid\"),o==null&&(o=mn()),s==null&&(s=\"max\"),r=Ah(r,o);let i,a=n===\"same\"?\"same\":\"valid\";return s===\"max\"?i=ru(r,t,e,a):i=Yl(r,t,e,a),o===\"channelsFirst\"&&(i=Ot(i,[0,3,1,2])),i})}function CD(r,t,e,n,o,s){return B(()=>{Fe(o),Iv(s),pn(n),e==null&&(e=[1,1,1]),n==null&&(n=\"valid\"),o==null&&(o=mn()),s==null&&(s=\"max\"),r=zv(r,o);let i,a=n===\"same\"?\"same\":\"valid\";return s===\"max\"?i=Hx(r,t,e,a):i=gx(r,t,e,a),o===\"channelsFirst\"&&(i=Ot(i,[0,4,1,2,3])),i})}var hb=class extends $t{constructor(t){if(t.poolSize==null&&(t.poolSize=2),super(t),typeof t.poolSize==\"number\")this.poolSize=[t.poolSize];else if(Array.isArray(t.poolSize)&&t.poolSize.length===1&&typeof t.poolSize[0]==\"number\")this.poolSize=t.poolSize;else throw new M(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(t.poolSize)}`);if(Ze(this.poolSize,\"poolSize\"),t.strides==null)this.strides=this.poolSize;else if(typeof t.strides==\"number\")this.strides=[t.strides];else if(Array.isArray(t.strides)&&t.strides.length===1&&typeof t.strides[0]==\"number\")this.strides=t.strides;else throw new M(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(t.strides)}`);Ze(this.strides,\"strides\"),this.padding=t.padding==null?\"valid\":t.padding,pn(this.padding),this.inputSpec=[new ye({ndim:3})]}computeOutputShape(t){t=Bt(t);let e=Nn(t[1],this.poolSize[0],this.padding,this.strides[0]);return[t[0],e,t[2]]}call(t,e){return B(()=>{this.invokeCallHook(t,e),t=nl(Nt(t),2);let n=this.poolingFunction(Nt(t),[this.poolSize[0],1],[this.strides[0],1],this.padding,\"channelsLast\");return Mn(n,[2])})}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides},e=super.getConfig();return Object.assign(t,e),t}},Df=class extends hb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),wb(t,e,n,o,s,\"max\")}};Df.className=\"MaxPooling1D\";Q.registerClass(Df);var Rf=class extends hb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),wb(t,e,n,o,s,\"avg\")}};Rf.className=\"AveragePooling1D\";Q.registerClass(Rf);var gb=class extends $t{constructor(t){if(t.poolSize==null&&(t.poolSize=[2,2]),super(t),this.poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize],t.strides==null)this.strides=this.poolSize;else if(Array.isArray(t.strides)){if(t.strides.length!==2)throw new M(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${t.strides.length}.`);this.strides=t.strides}else this.strides=[t.strides,t.strides];Ze(this.poolSize,\"poolSize\"),Ze(this.strides,\"strides\"),this.padding=t.padding==null?\"valid\":t.padding,this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Fe(this.dataFormat),pn(this.padding),this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){t=Bt(t);let e=this.dataFormat===\"channelsFirst\"?t[2]:t[1],n=this.dataFormat===\"channelsFirst\"?t[3]:t[2];return e=Nn(e,this.poolSize[0],this.padding,this.strides[0]),n=Nn(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat===\"channelsFirst\"?[t[0],t[1],e,n]:[t[0],e,n,t[3]]}call(t,e){return B(()=>(this.invokeCallHook(t,e),this.poolingFunction(Nt(t),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Ff=class extends gb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),wb(t,e,n,o,s,\"max\")}};Ff.className=\"MaxPooling2D\";Q.registerClass(Ff);var Of=class extends gb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),wb(t,e,n,o,s,\"avg\")}};Of.className=\"AveragePooling2D\";Q.registerClass(Of);var xb=class extends $t{constructor(t){if(t.poolSize==null&&(t.poolSize=[2,2,2]),super(t),this.poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize,t.poolSize],t.strides==null)this.strides=this.poolSize;else if(Array.isArray(t.strides)){if(t.strides.length!==3)throw new M(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${t.strides.length}.`);this.strides=t.strides}else this.strides=[t.strides,t.strides,t.strides];Ze(this.poolSize,\"poolSize\"),Ze(this.strides,\"strides\"),this.padding=t.padding==null?\"valid\":t.padding,this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Fe(this.dataFormat),pn(this.padding),this.inputSpec=[new ye({ndim:5})]}computeOutputShape(t){t=Bt(t);let e=this.dataFormat===\"channelsFirst\"?t[2]:t[1],n=this.dataFormat===\"channelsFirst\"?t[3]:t[2],o=this.dataFormat===\"channelsFirst\"?t[4]:t[3];return e=Nn(e,this.poolSize[0],this.padding,this.strides[0]),n=Nn(n,this.poolSize[1],this.padding,this.strides[1]),o=Nn(o,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat===\"channelsFirst\"?[t[0],t[1],e,n,o]:[t[0],e,n,o,t[4]]}call(t,e){return B(()=>(this.invokeCallHook(t,e),this.poolingFunction(Nt(t),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Pf=class extends xb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),CD(t,e,n,o,s,\"max\")}};Pf.className=\"MaxPooling3D\";Q.registerClass(Pf);var Lf=class extends xb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),CD(t,e,n,o,s,\"avg\")}};Lf.className=\"AveragePooling3D\";Q.registerClass(Lf);var yb=class extends $t{constructor(t){super(t),this.inputSpec=[new ye({ndim:3})]}computeOutputShape(t){return[t[0],t[2]]}call(t,e){throw new St}},Mf=class extends yb{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=Nt(t);return ve(n,1)})}};Mf.className=\"GlobalAveragePooling1D\";Q.registerClass(Mf);var zf=class extends yb{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=Nt(t);return Ir(n,1)})}};zf.className=\"GlobalMaxPooling1D\";Q.registerClass(zf);var bb=class extends $t{constructor(t){super(t),this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Fe(this.dataFormat),this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){return t=t,this.dataFormat===\"channelsLast\"?[t[0],t[3]]:[t[0],t[1]]}call(t,e){throw new St}getConfig(){let t={dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Bf=class extends bb{call(t,e){return B(()=>{let n=Nt(t);return this.dataFormat===\"channelsLast\"?ve(n,[1,2]):ve(n,[2,3])})}};Bf.className=\"GlobalAveragePooling2D\";Q.registerClass(Bf);var Vf=class extends bb{call(t,e){return B(()=>{let n=Nt(t);return this.dataFormat===\"channelsLast\"?Ir(n,[1,2]):Ir(n,[2,3])})}};Vf.className=\"GlobalMaxPooling2D\";Q.registerClass(Vf);var Cb=class extends $t{constructor(t){super(t),this.layer=t.layer}build(t){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(t){this.layer!=null&&(this.layer.trainable=t)}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(t){this.layer.setWeights(t)}getConfig(){let t={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},e=super.getConfig();return Object.assign(t,e),t}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(t)}static fromConfig(t,e,n={}){let o=e.layer,s=gn(o,n);delete e.layer;let i={layer:s};return Object.assign(i,e),new t(i)}},Gf=class extends Cb{constructor(t){super(t),this.supportsMasking=!0}build(t){if(t=Bt(t),t.length<3)throw new M(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(t)}`);this.inputSpec=[{shape:t}];let e=[t[0]].concat(t.slice(2));this.layer.built||(this.layer.build(e),this.layer.built=!0),super.build(t)}computeOutputShape(t){t=Bt(t);let e=[t[0]].concat(t.slice(2)),n=this.layer.computeOutputShape(e),o=t[1];return[n[0],o].concat(n.slice(1))}call(t,e){return B(()=>(t=Nt(t),Vv((i,a)=>[Nt(this.layer.call(i,e)),[]],t,[],!1,null,null,!1,!0)[1]))}};Gf.className=\"TimeDistributed\";Q.registerClass(Gf);function sY(r){Wi(T$,\"BidirectionalMergeMode\",r)}var iY=\"concat\",Wf=class extends Cb{constructor(t){super(t);let e=t.layer.getConfig(),n={};n.className=t.layer.getClassName(),n.config=e,this.forwardLayer=gn(n),e.goBackwards=e.goBackwards!==!0;let o={};if(o.className=t.layer.getClassName(),o.config=e,this.backwardLayer=gn(o),this.forwardLayer.name=\"forward_\"+this.forwardLayer.name,this.backwardLayer.name=\"backward_\"+this.backwardLayer.name,this.mergeMode=t.mergeMode===void 0?iY:t.mergeMode,sY(this.mergeMode),t.weights)throw new St(\"weights support is not implemented for Bidirectional layer yet.\");this._stateful=t.layer.stateful,this.returnSequences=t.layer.returnSequences,this.returnState=t.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=t.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(t){this._trainable=t,this.forwardLayer!=null&&(this.forwardLayer.trainable=t),this.backwardLayer!=null&&(this.backwardLayer.trainable=t)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(t){let e=t.length,n=Math.floor(e/2);this.forwardLayer.setWeights(t.slice(0,n)),this.backwardLayer.setWeights(t.slice(n))}computeOutputShape(t){let e=this.forwardLayer.computeOutputShape(t);Array.isArray(e)&&Array.isArray(e[0])||(e=[e]),e=e;let n,o,s;return this.returnState&&(s=e.slice(1)),n=e[0],n=n,this.mergeMode===\"concat\"?(n[n.length-1]*=2,o=[n]):this.mergeMode==null?o=[n,n.slice()]:o=[n],this.returnState?this.mergeMode==null?o.concat(s).concat(s.slice()):[n].concat(s).concat(s.slice()):Nr(o)}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=Bv(t,n,o,this.numConstants);if(t=s.inputs,n=s.initialState,o=s.constants,Array.isArray(t)&&(n=t.slice(1),t=t[0]),(n==null||n.length===0)&&o==null)return super.apply(t,e);let i=[],a=[];if(n!=null){let l=n.length;if(l%2>0)throw new M(\"When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.\");e.initialState=n,i.push(...n);let c=n.map(p=>new ye({shape:p.shape}));this.forwardLayer.stateSpec=c.slice(0,l/2),this.backwardLayer.stateSpec=c.slice(l/2),a.push(...c)}if(o!=null)throw new St(\"Support for constants in Bidirectional layers is not implemented yet.\");let u=i[0]instanceof Jr;for(let l of i)if(l instanceof Jr!==u)throw new M(\"The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors\");if(u){let l=[t].concat(i),c=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=c;let m=super.apply(l,e);return this.inputSpec=p,m}else return super.apply(t,e)}call(t,e){return B(()=>{let n=e.initialState,o,s;if(n==null)o=this.forwardLayer.call(t,e),s=this.backwardLayer.call(t,e);else{let u=n.slice(0,n.length/2),l=n.slice(n.length/2);o=this.forwardLayer.call(t,Object.assign(e,{initialState:u})),s=this.backwardLayer.call(t,Object.assign(e,{initialState:l}))}let i;this.returnState&&(Array.isArray(o)&&(i=o.slice(1).concat(s.slice(1))),o=o[0],s=s[0]),this.returnSequences&&(s=pr(s,1));let a;return this.mergeMode===\"concat\"?a=Nm([o,s]):this.mergeMode===\"sum\"?a=X(o,s):this.mergeMode===\"ave\"?a=D(.5,X(o,s)):this.mergeMode===\"mul\"?a=D(o,s):this.mergeMode==null&&(a=[o,s]),this.returnState?this.mergeMode==null?a.concat(i):[a].concat(i):a})}resetStates(t){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(t){Hs(this.forwardLayer.name,()=>{this.forwardLayer.build(t)}),Hs(this.backwardLayer.name,()=>{this.backwardLayer.build(t)}),this.built=!0}computeMask(t,e){Array.isArray(e)&&(e=e[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[e,e]:n=e:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let s=this.forwardLayer.states.map(i=>null);return Array.isArray(n)?n.concat(s).concat(s):[n].concat(s).concat(s)}else return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(t),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(t)}getConfig(){let t={mergeMode:this.mergeMode},e=super.getConfig();return Object.assign(t,e),t}static fromConfig(t,e){let n=gn(e.layer);if(delete e.layer,e.numConstants!=null)throw new St(\"Deserialization of a Bidirectional layer with numConstants present is not supported yet.\");let o=e;return o.layer=n,new t(o)}};Wf.className=\"Bidirectional\";Q.registerClass(Wf);var Uf=class extends $t{constructor(t){super(t),this.scale=t.scale,t.offset?this.offset=t.offset:this.offset=0}getConfig(){let t={scale:this.scale,offset:this.offset},e=super.getConfig();return Object.assign(t,e),t}call(t,e){return B(()=>(t=Nt(t),t.dtype!==\"float32\"&&(t=no(t,\"float32\")),X(D(t,this.scale),this.offset)))}};Uf.className=\"Rescaling\";Q.registerClass(Uf);var aY=[\"bilinear\",\"nearest\"],ID=new Set(aY),Hf=class extends $t{constructor(t){if(super(t),this.height=t.height,this.width=t.width,t.interpolation)if(ID.has(t.interpolation))this.interpolation=t.interpolation;else throw new M(`Invalid interpolation parameter: ${t.interpolation} is not implemented`);else this.interpolation=\"bilinear\";this.cropToAspectRatio=Boolean(t.cropToAspectRatio)}computeOutputShape(t){t=Bt(t);let e=t[2];return[this.height,this.width,e]}getConfig(){let t={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},e=super.getConfig();return Object.assign(t,e),t}call(t,e){return B(()=>{let n=[this.height,this.width];if(this.interpolation===\"bilinear\")return Gs.resizeBilinear(t,n,!this.cropToAspectRatio);if(this.interpolation===\"nearest\")return Gs.resizeNearestNeighbor(t,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...ID]} are supported`)})}};Hf.className=\"Resizing\";Q.registerClass(Hf);function SD(r,t,e,n){let o=Nt(r);if(o.dtype!==\"int32\"&&(o=no(o,\"int32\")),t===\"int\")return o;let s=o.shape;if(o.rank===0&&(o=rr(o,-1)),t===\"oneHot\"&&o.shape[o.shape.length-1]!==1&&(o=rr(o,-1)),o.rank>2)throw new M(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${s} which would result in output rank ${o.rank}.`);let i=[\"multiHot\",\"oneHot\"].includes(t),a=o,u;if(typeof n!=\"undefined\"&&t===\"count\"?u=ch(a,n,e,i):u=ch(a,[],e,i),t!==\"tfIdf\")return u;if(n)return D(u,n);throw new M(\"When outputMode is 'tfIdf', weights must be provided.\")}var qf=class extends $t{constructor(t){super(t),this.numTokens=t.numTokens,t.outputMode?this.outputMode=t.outputMode:this.outputMode=\"multiHot\"}getConfig(){let t={numTokens:this.numTokens,outputMode:this.outputMode},e=super.getConfig();return Object.assign(t,e),t}computeOutputShape(t){return t=Bt(t),t==null?[this.numTokens]:this.outputMode===\"oneHot\"&&t[t.length-1]!==1?(t.push(this.numTokens),t):(t[t.length-1]=this.numTokens,t)}call(t,e){return B(()=>{t=Nt(t),t.dtype!==\"int32\"&&(t=no(t,\"int32\"));let n;if(typeof e.countWeights!=\"undefined\"){if(this.outputMode!==\"count\")throw new M(`countWeights is not used when outputMode !== count.\n Received countWeights=${e.countWeights}`);n=Nt(e.countWeights)}let o=Ir(t),s=Ja(t),i=Re(this.numTokens,o).bufferSync().get(0),a=ln(s,0).bufferSync().get(0);if(!(i&&a))throw new M(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return SD(t,this.outputMode,this.numTokens,n)})}};qf.className=\"CategoryEncoding\";Q.registerClass(qf);function uY(r){return new Ks(r)}function cY(r){return new Ym(r)}function pY(r){return new Km(r)}function mY(r){return new jm(r)}function fY(r){return new Xm(r)}function dY(r){return new Jm(r)}function hY(r){return new Zm(r)}function gY(r){return new Su(r)}function xY(r){return new il(r)}function yY(r){return new Qm(r)}function bY(r){return new al(r)}function wY(r){return new tf(r)}function CY(r){return new ef(r)}function IY(r){return new rf(r)}function SY(r){return new nf(r)}function vY(r){return new of(r)}function NY(r){return new ff(r)}function TY(r){return new pf(r)}function kY(r){return new vc(r)}function EY(r){return new cf(r)}function _Y(r){return new mf(r)}function AY(r){return new df(r)}function $Y(r){return new hf(r)}function DY(r){return new gf(r)}function RY(r){return new yf(r)}function FY(r){return new bf(r)}function OY(r){return new Cf(r)}function PY(r){return new vf(r)}function LY(r){return new If(r)}function MY(r){return new Sf(r)}function zY(r){return new wf(r)}function BY(r){return new Nf(r)}function VY(r){return new _f(r)}function GY(r){return new Af(r)}function WY(r){return new $f(r)}function Gv(r){return new Rf(r)}function UY(r){return Gv(r)}function HY(r){return Gv(r)}function Wv(r){return new Of(r)}function qY(r){return Wv(r)}function KY(r){return Wv(r)}function Uv(r){return new Lf(r)}function jY(r){return Uv(r)}function XY(r){return Uv(r)}function YY(r){return new Mf(r)}function ZY(r){return new Bf(r)}function vD(r){return new zf(r)}function ND(r){return new Vf(r)}function TD(r){return new Df(r)}function kD(r){return new Ff(r)}function JY(r){return new Pf(r)}function QY(r){return new af(r)}function tZ(r){return new Cc(r)}function eZ(r){return new lf(r)}function rZ(r){return new ul(r)}function nZ(r){return new sf(r)}function oZ(r){return new wc(r)}function sZ(r){return new uf(r)}function iZ(r){return new Sc(r)}function aZ(r){return new Tn(r)}function lZ(r){return new Ic(r)}function uZ(r){return new Wf(r)}function cZ(r){return new Gf(r)}var pZ=vD,mZ=ND,fZ=TD,dZ=kD;function hZ(r){return new Tf(r)}function gZ(r){return new kf(r)}function xZ(r){return new Ef(r)}function yZ(r){return new xf(r)}function bZ(r){return new Uf(r)}function wZ(r){return new Hf(r)}function CZ(r){return new qf(r)}var _D={};Wt(_D,{MAPE:()=>DZ,MSE:()=>OZ,binaryAccuracy:()=>IZ,binaryCrossentropy:()=>SZ,categoricalAccuracy:()=>NZ,categoricalCrossentropy:()=>TZ,cosineProximity:()=>_Z,mape:()=>RZ,meanAbsoluteError:()=>AZ,meanAbsolutePercentageError:()=>$Z,meanSquaredError:()=>FZ,mse:()=>PZ,precision:()=>kZ,recall:()=>EZ,sparseCategoricalAccuracy:()=>vZ});function IZ(r,t){return Th(r,t)}function SZ(r,t){return Wy(r,t)}function vZ(r,t){return Uy(r,t)}function NZ(r,t){return kh(r,t)}function TZ(r,t){return Eh(r,t)}function kZ(r,t){return Av(r,t)}function EZ(r,t){return J$(r,t)}function _Z(r,t){return Nh(r,t)}function AZ(r,t){return Vm(r,t)}function $Z(r,t){return bu(r,t)}function DZ(r,t){return bu(r,t)}function RZ(r,t){return bu(r,t)}function FZ(r,t){return Hi(r,t)}function OZ(r,t){return Hi(r,t)}function PZ(r,t){return Hi(r,t)}var AD={};Wt(AD,{modelFromJSON:()=>dD});var $D={};Wt($D,{l1:()=>MZ,l1l2:()=>LZ,l2:()=>zZ});function LZ(r){return new wu(r)}function MZ(r){return yD(r)}function zZ(r){return bD(r)}var Sb=class extends sl{constructor(){super(...arguments),this.model=null}setModel(t){if(!(t instanceof Bn))throw new Error(\"model must be a LayersModel, not some other Container\");this.model=t}};function Ib(r,t){return rt}var vb=class extends Sb{constructor(t){if(super(),t==null&&(t={}),t.restoreBestWeights)throw new St(\"restoreBestWeights = True is not implemented in EarlyStopping yet.\");this.monitor=t.monitor||\"val_loss\",this.minDelta=Math.abs(t.minDelta||0),this.patience=t.patience||0,this.verbose=t.verbose||0,this.mode=t.mode||\"auto\",this.baseline=t.baseline,[\"auto\",\"min\",\"max\"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode=\"auto\"),this.mode===\"min\"?this.monitorFunc=Ib:this.mode===\"max\"?this.monitorFunc=DD:this.monitor.indexOf(\"acc\")!==-1?this.monitorFunc=DD:this.monitorFunc=Ib,this.monitorFunc===Ib&&(this.minDelta*=-1)}async onTrainBegin(t){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Ib?1/0:-1/0}async onEpochEnd(t,e){await Ui(e);let n=this.getMonitorValue(e);n!=null&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=t,this.model.stopTraining=!0)))}async onTrainEnd(t){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(t){t==null&&(t={});let e=t[this.monitor];return e==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(t)}`),e}};function BZ(r){return new vb(r)}var VZ={earlyStopping:BZ};var GZ=z();GZ.registerFlag(\"KEEP_INTERMEDIATE_TENSORS\",()=>!1,r=>{r&&console.warn(\"Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.\")});var oo;(function(r){r[r.DT_INVALID=0]=\"DT_INVALID\",r[r.DT_FLOAT=1]=\"DT_FLOAT\",r[r.DT_DOUBLE=2]=\"DT_DOUBLE\",r[r.DT_INT32=3]=\"DT_INT32\",r[r.DT_UINT8=4]=\"DT_UINT8\",r[r.DT_INT16=5]=\"DT_INT16\",r[r.DT_INT8=6]=\"DT_INT8\",r[r.DT_STRING=7]=\"DT_STRING\",r[r.DT_COMPLEX64=8]=\"DT_COMPLEX64\",r[r.DT_INT64=9]=\"DT_INT64\",r[r.DT_BOOL=10]=\"DT_BOOL\",r[r.DT_QINT8=11]=\"DT_QINT8\",r[r.DT_QUINT8=12]=\"DT_QUINT8\",r[r.DT_QINT32=13]=\"DT_QINT32\",r[r.DT_BFLOAT16=14]=\"DT_BFLOAT16\",r[r.DT_QINT16=15]=\"DT_QINT16\",r[r.DT_QUINT16=16]=\"DT_QUINT16\",r[r.DT_UINT16=17]=\"DT_UINT16\",r[r.DT_COMPLEX128=18]=\"DT_COMPLEX128\",r[r.DT_HALF=19]=\"DT_HALF\",r[r.DT_RESOURCE=20]=\"DT_RESOURCE\",r[r.DT_VARIANT=21]=\"DT_VARIANT\",r[r.DT_UINT32=22]=\"DT_UINT32\",r[r.DT_UINT64=23]=\"DT_UINT64\",r[r.DT_FLOAT_REF=101]=\"DT_FLOAT_REF\",r[r.DT_DOUBLE_REF=102]=\"DT_DOUBLE_REF\",r[r.DT_INT32_REF=103]=\"DT_INT32_REF\",r[r.DT_UINT8_REF=104]=\"DT_UINT8_REF\",r[r.DT_INT16_REF=105]=\"DT_INT16_REF\",r[r.DT_INT8_REF=106]=\"DT_INT8_REF\",r[r.DT_STRING_REF=107]=\"DT_STRING_REF\",r[r.DT_COMPLEX64_REF=108]=\"DT_COMPLEX64_REF\",r[r.DT_INT64_REF=109]=\"DT_INT64_REF\",r[r.DT_BOOL_REF=110]=\"DT_BOOL_REF\",r[r.DT_QINT8_REF=111]=\"DT_QINT8_REF\",r[r.DT_QUINT8_REF=112]=\"DT_QUINT8_REF\",r[r.DT_QINT32_REF=113]=\"DT_QINT32_REF\",r[r.DT_BFLOAT16_REF=114]=\"DT_BFLOAT16_REF\",r[r.DT_QINT16_REF=115]=\"DT_QINT16_REF\",r[r.DT_QUINT16_REF=116]=\"DT_QUINT16_REF\",r[r.DT_UINT16_REF=117]=\"DT_UINT16_REF\",r[r.DT_COMPLEX128_REF=118]=\"DT_COMPLEX128_REF\",r[r.DT_HALF_REF=119]=\"DT_HALF_REF\",r[r.DT_RESOURCE_REF=120]=\"DT_RESOURCE_REF\",r[r.DT_VARIANT_REF=121]=\"DT_VARIANT_REF\",r[r.DT_UINT32_REF=122]=\"DT_UINT32_REF\",r[r.DT_UINT64_REF=123]=\"DT_UINT64_REF\"})(oo||(oo={}));var RD;(function(r){let t;(function(e){e[e.LEGACY=0]=\"LEGACY\",e[e.V1=1]=\"V1\",e[e.V2=2]=\"V2\"})(t=r.CheckpointFormatVersion||(r.CheckpointFormatVersion={}))})(RD||(RD={}));var Hv={};function UZ(r,t){let e={tfOpName:r,category:\"custom\",inputs:[],attrs:[],customExecutor:t};Hv[r]=e}function Nb(r){return Hv[r]}function HZ(r){delete Hv[r]}function S(r,t,e,n,o){let s=t.inputParams[r];if(s&&s.inputIndexStart!==void 0){let a=s.inputIndexStart,u=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?a+1:s.inputIndexEnd;if(s.type===\"tensor\")return br(t.inputNames[s.inputIndexStart],e,n,o);if(s.type===\"tensors\")return t.inputNames.slice(a,u).map(m=>br(m,e,n,o));let l=br(t.inputNames.slice(a)[0],e,n,o),c=l.dataSync();return s.type===\"number\"?c[0]:y.toNestedArray(l.shape,c)}let i=t.attrParams[r];return i&&i.value}function br(r,t,e,n){let[o,s]=xn(r);if(n!=null){let a=n.getHashTableHandleByName(o);if(a!=null)return a}let i=e.currentContextIds.find(a=>!!t[Tb(o,a)]);return i!==void 0?t[Tb(o,i)][s]:void 0}function FD(r,t,e){return t[Tb(r,e.currentContextId)]}function _o(r,t){let[e,n,o]=xn(r);return[Tb(e,t&&t.currentContextId),n,o]}function Tb(r,t){return t?`${r}-${t}`:r}function xn(r){let t=r.split(\":\");if(t.length===1)return[r,0,void 0];let e=t[0],n=t.length===3?t[1]:void 0,o=Number(t[t.length-1]);return[e,o,n]}function Rh(r,t,e){let n=S(\"pad\",r,t,e);if(n===\"explicit\"){n=S(\"explicitPaddings\",r,t,e);let o=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)o[s][0]=n[s*2],o[s][1]=n[s*2+1];return o}return n}function Zs(r){return r.kept?r:sn(r)}var qv={};Wt(qv,{json:()=>qZ});var qZ=[{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}]}];var Kv={};Wt(Kv,{json:()=>KZ});var KZ=[{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}]},{tfOpName:\"IsNan\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]}];var jv={};Wt(jv,{json:()=>jZ});var jZ=[{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:\"TensorListConcatV2\",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\"}]},{tfOpName:\"TensorListLength\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"}]},{tfOpName:\"TensorListResize\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"},{start:1,name:\"size\",type:\"number\"}]}];var Xv={};Wt(Xv,{json:()=>XZ});var XZ=[{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\",defaultValue:.2}]},{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\"}]}];var Yv={};Wt(Yv,{json:()=>YZ});var YZ=[{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\"}]},{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:\"RandomStandardNormal\",category:\"creation\",inputs:[{start:0,name:\"shape\",type:\"number[]\"}],attrs:[{tfName:\"seed\",name:\"seed\",type:\"number\",defaultValue:0},{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:\"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\"}]}];var Zv={};Wt(Zv,{json:()=>ZZ});var ZZ=[{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}]}];var Jv={};Wt(Jv,{json:()=>JZ});var JZ=[{tfOpName:\"LowerBound\",category:\"evaluation\",inputs:[{start:0,name:\"sortedSequence\",type:\"tensor\"},{start:1,name:\"values\",type:\"tensor\"}]},{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:\"UpperBound\",category:\"evaluation\",inputs:[{start:0,name:\"sortedSequence\",type:\"tensor\"},{start:1,name:\"values\",type:\"tensor\"}]},{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\"}]}];var Qv={};Wt(Qv,{json:()=>QZ});var QZ=[{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\"}]}];var tN={};Wt(tN,{json:()=>t7});var t7=[{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\"}]}];var eN={};Wt(eN,{json:()=>e7});var e7=[{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\"}]},{tfOpName:\"ImageProjectiveTransformV3\",category:\"image\",inputs:[{start:0,name:\"images\",type:\"tensor\"},{start:1,name:\"transforms\",type:\"tensor\"},{start:2,name:\"outputShape\",type:\"number[]\"},{start:3,name:\"fillValue\",type:\"number\"}],attrs:[{tfName:\"interpolation\",name:\"interpolation\",type:\"string\"},{tfName:\"fill_mode\",name:\"fillMode\",type:\"string\"}]}];var rN={};Wt(rN,{json:()=>r7});var r7=[{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}]}];var nN={};Wt(nN,{json:()=>n7});var n7=[{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:\"leakyrelu_alpha\",name:\"leakyreluAlpha\",type:\"number\",defaultValue:.2},{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}]},{tfOpName:\"Einsum\",category:\"matrices\",inputs:[{start:0,end:0,name:\"tensors\",type:\"tensors\"}],attrs:[{tfName:\"equation\",name:\"equation\",type:\"string\"},{tfName:\"N\",name:\"n\",type:\"number\",defaultValue:2},{tfName:\"T\",name:\"dtype\",type:\"dtype\"}]}];var oN={};Wt(oN,{json:()=>o7});var o7=[{tfOpName:\"EuclideanNorm\",category:\"normalization\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number[]\"}],attrs:[{tfName:\"keep_dims\",name:\"keepDims\",type:\"bool\",defaultValue:!1}]},{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}]}];var sN={};Wt(sN,{json:()=>s7});var s7=[{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:\"Cumprod\",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\"}]},{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\"}]}];var iN={};Wt(iN,{json:()=>i7});var i7=[{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}]}];var aN={};Wt(aN,{json:()=>a7});var a7=[{tfOpName:\"SparseFillEmptyRows\",category:\"sparse\",inputs:[{start:0,name:\"indices\",type:\"tensor\"},{start:1,name:\"values\",type:\"tensor\"},{start:2,name:\"denseShape\",type:\"tensor\"},{start:3,name:\"defaultValue\",type:\"tensor\"}]},{tfOpName:\"SparseReshape\",category:\"sparse\",inputs:[{start:0,name:\"inputIndices\",type:\"tensor\"},{start:1,name:\"inputShape\",type:\"tensor\"},{start:2,name:\"newShape\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"SparseSegmentMean\",category:\"sparse\",inputs:[{start:0,name:\"data\",type:\"tensor\"},{start:1,name:\"indices\",type:\"tensor\"},{start:2,name:\"segmentIds\",type:\"tensor\"}]},{tfOpName:\"SparseSegmentSum\",category:\"sparse\",inputs:[{start:0,name:\"data\",type:\"tensor\"},{start:1,name:\"indices\",type:\"tensor\"},{start:2,name:\"segmentIds\",type:\"tensor\"}]}];var lN={};Wt(lN,{json:()=>l7});var l7=[{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}]}];var uN={};Wt(uN,{json:()=>u7});var u7=[{tfOpName:\"StringNGrams\",category:\"string\",inputs:[{start:0,name:\"data\",type:\"tensor\"},{start:1,name:\"dataSplits\",type:\"tensor\"}],attrs:[{tfName:\"separator\",name:\"separator\",type:\"string\"},{tfName:\"ngram_widths\",name:\"nGramWidths\",type:\"number[]\"},{tfName:\"left_pad\",name:\"leftPad\",type:\"string\"},{tfName:\"right_pad\",name:\"rightPad\",type:\"string\"},{tfName:\"pad_width\",name:\"padWidth\",type:\"number\"},{tfName:\"preserve_short_sequences\",name:\"preserveShortSequences\",type:\"bool\"}],outputs:[\"ngrams\",\"ngrams_splits\"]},{tfOpName:\"StringSplit\",category:\"string\",inputs:[{start:0,name:\"input\",type:\"tensor\"},{start:1,name:\"delimiter\",type:\"tensor\"}],attrs:[{tfName:\"skip_empty\",name:\"skipEmpty\",type:\"bool\"}],outputs:[\"indices\",\"values\",\"shape\"]},{tfOpName:\"StringToHashBucketFast\",category:\"string\",inputs:[{start:0,name:\"input\",type:\"tensor\"}],attrs:[{tfName:\"num_buckets\",name:\"numBuckets\",type:\"number\"}]}];var cN={};Wt(cN,{json:()=>c7});var c7=[{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:[]},{tfOpName:\"BroadcastArgs\",category:\"transformation\",inputs:[{start:0,name:\"s0\",type:\"tensor\"},{start:1,name:\"s1\",type:\"tensor\"}],attrs:[]}];var Fh=class{constructor(){let t=[qv,Kv,jv,Xv,Yv,Zv,Jv,Qv,tN,eN,rN,nN,oN,sN,iN,aN,lN,uN,cN],e=[].concat(...t.map(n=>n.json));this.opMappers=e.reduce((n,o)=>(n[o.tfOpName]=o,n),{})}static get Instance(){return this._instance||(this._instance=new this)}transformGraph(t,e={}){let n=t.node,o=[],s=[],i=[],a=n.reduce((h,g)=>(h[g.name]=this.mapNode(g),g.op.startsWith(\"Placeholder\")?o.push(h[g.name]):g.op===\"Const\"?s.push(h[g.name]):(g.input==null||g.input.length===0)&&i.push(h[g.name]),h),{}),u=[],l=[],c={},p={};e!=null&&(c=this.mapSignatureEntries(e.inputs),p=this.mapSignatureEntries(e.outputs));let m=Object.keys(a);m.forEach(h=>{let g=a[h];g.inputNames.forEach((x,b)=>{let[w,,C]=_o(x),N=a[w];if(N.outputs!=null){let _=N.outputs.indexOf(C);if(_!==-1){let A=`${w}:${_}`;g.inputNames[b]=A}}g.inputs.push(N),N.children.push(g)})}),Object.keys(p).length===0?m.forEach(h=>{let g=a[h];g.children.length===0&&l.push(g)}):Object.keys(p).forEach(h=>{let[g]=_o(h),x=a[g];x!=null&&(x.signatureKey=p[h],l.push(x))}),Object.keys(c).length>0?Object.keys(c).forEach(h=>{let[g]=_o(h),x=a[g];x&&(x.signatureKey=c[h],u.push(x))}):u=o;let f={};t.library!=null&&t.library.function!=null&&(f=t.library.function.reduce((h,g)=>(h[g.signature.name]=this.mapFunction(g),h),{}));let d={nodes:a,inputs:u,outputs:l,weights:s,placeholders:o,signature:e,functions:f};return i.length>0&&(d.initNodes=i),d}mapSignatureEntries(t){return Object.keys(t||{}).reduce((e,n)=>(e[t[n].name]=n,e),{})}mapNode(t){let e=Nb(t.op)||this.opMappers[t.op]||{};t.attr==null&&(t.attr={});let n={name:t.name,op:t.op,category:e.category,inputNames:(t.input||[]).map(o=>o.startsWith(\"^\")?o.slice(1):o),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:t.attr,outputs:e.outputs};return e.inputs!=null&&(n.inputParams=e.inputs.reduce((o,s)=>(o[s.name]={type:s.type,inputIndexStart:s.start,inputIndexEnd:s.end},o),{})),e.attrs!=null&&(n.attrParams=e.attrs.reduce((o,s)=>{let i=s.type,a;switch(s.type){case\"string\":a=kb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=kb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"string[]\":a=Fb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Fb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"number\":a=_b(t.attr,s.tfName,s.defaultValue||0),a===void 0&&!!s.tfDeprecatedName&&(a=_b(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"number[]\":a=Rb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Rb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"bool\":a=Eb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Eb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"bool[]\":a=Pb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Pb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"shape\":a=Db(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Db(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"shape[]\":a=Ob(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Ob(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"dtype\":a=Ab(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Ab(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"dtype[]\":a=$b(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=$b(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"func\":a=OD(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=OD(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"tensor\":case\"tensors\":break;default:throw new Error(`Unsupported param type: ${s.type} for op: ${t.op}`)}return o[s.name]={value:a,type:i},o},{})),n}mapFunction(t){let e=t.nodeDef,n=[],o=[],s={};e!=null&&(s=e.reduce((p,m)=>(p[m.name]=this.mapNode(m),m.op===\"Const\"&&o.push(p[m.name]),p),{}));let i=[],a=[];t.signature.inputArg.forEach(p=>{let[m]=_o(p.name),f={name:m,op:\"Placeholder\",inputs:[],inputNames:[],category:\"graph\",inputParams:{},attrParams:{dtype:{value:pN(p.type),type:\"dtype\"}},children:[]};f.signatureKey=p.name,i.push(f),s[m]=f}),Object.keys(s).forEach(p=>{let m=s[p];m.inputNames.forEach((f,d)=>{let[h,,g]=_o(f),x=s[h];if(x.outputs!=null){let b=x.outputs.indexOf(g);if(b!==-1){let w=`${h}:${b}`;m.inputNames[d]=w}}m.inputs.push(x),x.children.push(m)})});let l=t.ret;t.signature.outputArg.forEach(p=>{let[m,f]=_o(l[p.name]),d=s[m];d!=null&&(d.defaultOutput=f,a.push(d))});let c=this.mapArgsToSignature(t);return{nodes:s,inputs:i,outputs:a,weights:o,placeholders:n,signature:c}}mapArgsToSignature(t){return{methodName:t.signature.name,inputs:t.signature.inputArg.reduce((e,n)=>(e[n.name]=this.mapArgToTensorInfo(n),e),{}),outputs:t.signature.outputArg.reduce((e,n)=>(e[n.name]=this.mapArgToTensorInfo(n,t.ret),e),{})}}mapArgToTensorInfo(t,e){let n=t.name;return e!=null&&(n=e[n]),{name:n,dtype:t.type}}};function p7(r){let t=z().global;if(typeof t.atob!=\"undefined\")return t.atob(r);if(typeof Buffer!=\"undefined\")return new Buffer(r,\"base64\").toString();throw new Error(\"Unable to decode base64 in this environment. Missing built-in atob() or Buffer()\")}function PD(r,t){let e=Array.isArray(r)?String.fromCharCode.apply(null,r):p7(r);return t?e:e.toLowerCase()}function kb(r,t,e,n=!1){let o=r[t];return o!=null?PD(o.s,n):e}function Eb(r,t,e){let n=r[t];return n?n.b:e}function _b(r,t,e){let n=r[t]||{},o=n.i!=null?n.i:n.f!=null?n.f:e;return typeof o==\"number\"?o:parseInt(o,10)}function pN(r){switch(typeof r==\"string\"&&(r=oo[r]),r){case oo.DT_FLOAT:case oo.DT_HALF:return\"float32\";case oo.DT_INT32:case oo.DT_INT64:case oo.DT_INT8:case oo.DT_UINT8:return\"int32\";case oo.DT_BOOL:return\"bool\";case oo.DT_DOUBLE:return\"float32\";case oo.DT_STRING:return\"string\";default:return null}}function OD(r,t,e){let n=r[t];return n&&n.func?n.func.name:e}function Ab(r,t,e){let n=r[t];return n&&n.type?pN(n.type):e}function $b(r,t,e){let n=r[t];return n&&n.list&&n.list.type?n.list.type.map(o=>pN(o)):e}function LD(r){if(!r.unknownRank)return r.dim!=null?r.dim.map(t=>typeof t.size==\"number\"?t.size:parseInt(t.size,10)):[]}function Db(r,t,e){let n=r[t];return n&&n.shape?LD(n.shape):e}function Rb(r,t,e){let n=r[t];return n?((n.list.f&&n.list.f.length?n.list.f:n.list.i)||[]).map(o=>typeof o==\"number\"?o:parseInt(o,10)):e}function Fb(r,t,e,n=!1){let o=r[t];return o&&o.list&&o.list.s?o.list.s.map(s=>PD(s,n)):e}function Ob(r,t,e){let n=r[t];return n&&n.list&&n.list.shape?n.list.shape.map(o=>LD(o)):e}function Pb(r,t,e){let n=r[t];return n&&n.list&&n.list.b?n.list.b:e}var Lb=class{constructor(t,e,n){this.node=t,this.tensorMap=e,this.context=n,this.inputs=[],this.attrs={},this.inputs=t.inputNames.map(o=>this.getInput(o)),t.rawAttrs!=null&&(this.attrs=Object.keys(t.rawAttrs).reduce((o,s)=>(o[s]=this.getAttr(s),o),{}))}getInput(t){return br(t,this.tensorMap,this.context)}getAttr(t,e){let n=this.node.rawAttrs[t];if(n.tensor!=null)return br(t,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return _b(this.node.rawAttrs,t,e);if(n.s!=null)return kb(this.node.rawAttrs,t,e);if(n.b!=null)return Eb(this.node.rawAttrs,t,e);if(n.shape!=null)return Db(this.node.rawAttrs,t,e);if(n.type!=null)return Ab(this.node.rawAttrs,t,e);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Rb(this.node.rawAttrs,t,e);if(n.list.s!=null)return Fb(this.node.rawAttrs,t,e);if(n.list.shape!=null)return Ob(this.node.rawAttrs,t,e);if(n.list.b!=null)return Pb(this.node.rawAttrs,t,e);if(n.list.type!=null)return $b(this.node.rawAttrs,t,e)}return e}};var ae={};Wt(ae,{OP_SCOPE_SUFFIX:()=>k0,abs:()=>Ee,acos:()=>ax,acosh:()=>lx,add:()=>X,addN:()=>LE,all:()=>Zp,any:()=>qu,argMax:()=>Ai,argMin:()=>ux,asin:()=>cx,asinh:()=>px,atan:()=>mx,atan2:()=>fx,atanh:()=>dx,avgPool:()=>Yl,avgPool3d:()=>gx,basicLSTMCell:()=>BE,batchNorm:()=>Di,batchNorm2d:()=>xx,batchNorm3d:()=>yx,batchNorm4d:()=>bx,batchToSpaceND:()=>Zl,bincount:()=>wx,booleanMaskAsync:()=>n6,broadcastArgs:()=>GE,broadcastTo:()=>Ri,buffer:()=>wt,cast:()=>J,ceil:()=>Cx,clipByValue:()=>Cr,clone:()=>sn,complex:()=>wn,concat:()=>ne,concat1d:()=>Ix,concat2d:()=>Sx,concat3d:()=>vx,concat4d:()=>Nx,conv1d:()=>Qp,conv2d:()=>In,conv2dTranspose:()=>em,conv3d:()=>Tx,conv3dTranspose:()=>Ex,cos:()=>Jl,cosh:()=>rm,cosineWindow:()=>hh,cumprod:()=>Xu,cumsum:()=>nm,denseBincount:()=>ch,depthToSpace:()=>_x,depthwiseConv2d:()=>Fi,diag:()=>WE,dilation2d:()=>Ax,div:()=>pt,divNoNan:()=>$x,dot:()=>Dx,dropout:()=>lv,einsum:()=>UE,elu:()=>Oi,enclosingPowerOfTwo:()=>uv,equal:()=>$r,erf:()=>Rx,euclideanNorm:()=>Fx,exp:()=>er,expandDims:()=>rr,expm1:()=>Ox,eye:()=>Yu,fft:()=>au,fill:()=>xo,floor:()=>Pi,floorDiv:()=>Yp,fused:()=>uu,gather:()=>Li,gatherND:()=>m6,greater:()=>Re,greaterEqual:()=>ln,ifft:()=>tl,imag:()=>Xl,image:()=>Gs,inTopKAsync:()=>h6,irfft:()=>xm,isFinite:()=>Px,isInf:()=>Lx,isNaN:()=>Mx,leakyRelu:()=>Ql,less:()=>om,lessEqual:()=>Ln,linalg:()=>pv,linspace:()=>KE,localResponseNormalization:()=>zx,log:()=>Sr,log1p:()=>tu,logSigmoid:()=>Gx,logSoftmax:()=>sm,logSumExp:()=>im,logicalAnd:()=>Rr,logicalNot:()=>eu,logicalOr:()=>am,logicalXor:()=>Wx,losses:()=>hX,lowerBound:()=>jE,matMul:()=>Lt,max:()=>Ir,maxPool:()=>ru,maxPool3d:()=>Hx,maxPoolWithArgmax:()=>XE,maximum:()=>Sn,mean:()=>ve,meshgrid:()=>YE,min:()=>Ja,minimum:()=>Mi,mirrorPad:()=>qx,mod:()=>Kx,moments:()=>Zu,movingAverage:()=>s6,mul:()=>D,multiRNNCell:()=>ZE,multinomial:()=>JE,neg:()=>Ht,norm:()=>Qa,notEqual:()=>Bs,oneHot:()=>Ei,ones:()=>cr,onesLike:()=>yr,op:()=>T,outerProduct:()=>QE,pad:()=>cn,pad1d:()=>t_,pad2d:()=>e_,pad3d:()=>r_,pad4d:()=>n_,pool:()=>jx,pow:()=>an,prelu:()=>ou,print:()=>Jg,prod:()=>Xx,raggedGather:()=>o_,raggedRange:()=>s_,raggedTensorToTensor:()=>i_,rand:()=>a_,randomGamma:()=>v_,randomNormal:()=>tc,randomStandardNormal:()=>N_,randomUniform:()=>zi,range:()=>su,real:()=>Za,reciprocal:()=>ty,relu:()=>Fr,relu6:()=>lm,reshape:()=>R,reverse:()=>pr,reverse1d:()=>T_,reverse2d:()=>k_,reverse3d:()=>E_,reverse4d:()=>__,rfft:()=>lu,round:()=>um,rsqrt:()=>cm,scalar:()=>mt,scatterND:()=>a6,searchSorted:()=>mh,selu:()=>pm,separableConv2d:()=>mm,setdiff1dAsync:()=>A_,sigmoid:()=>Yr,sign:()=>ey,signal:()=>dX,sin:()=>fm,sinh:()=>dm,slice:()=>Rt,slice1d:()=>hm,slice2d:()=>dh,slice3d:()=>gm,slice4d:()=>ec,softmax:()=>iu,softplus:()=>zs,spaceToBatchND:()=>nu,sparse:()=>gX,sparseToDense:()=>c6,spectral:()=>fX,split:()=>mr,sqrt:()=>Se,square:()=>Mt,squaredDifference:()=>ym,squeeze:()=>Mn,stack:()=>nr,step:()=>bo,stridedSlice:()=>ry,string:()=>xX,sub:()=>ct,sum:()=>ft,tan:()=>ny,tanh:()=>$i,tensor:()=>ur,tensor1d:()=>Me,tensor2d:()=>Vs,tensor3d:()=>rx,tensor4d:()=>$_,tensor5d:()=>D_,tensor6d:()=>R_,tile:()=>Dr,topk:()=>oy,transpose:()=>Ot,truncatedNormal:()=>bm,unique:()=>sy,unsortedSegmentSum:()=>wm,unstack:()=>vr,upperBound:()=>F_,variable:()=>iy,where:()=>_e,whereAsync:()=>ly,zeros:()=>Ne,zerosLike:()=>It});var MD=(r,t,e,n=ae)=>{switch(r.op){case\"BiasAdd\":case\"AddV2\":case\"Add\":return[n.add(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"AddN\":return[n.addN(S(\"tensors\",r,t,e))];case\"FloorMod\":case\"Mod\":return[n.mod(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"Mul\":return[n.mul(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"RealDiv\":case\"Div\":return[n.div(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"DivNoNan\":return[n.divNoNan(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"FloorDiv\":return[n.floorDiv(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"Sub\":return[n.sub(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"Minimum\":return[n.minimum(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"Maximum\":return[n.maximum(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"Pow\":return[n.pow(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"SquaredDifference\":return[n.squaredDifference(S(\"a\",r,t,e),S(\"b\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var zD=(r,t,e,n=ae)=>{switch(r.op){case\"Abs\":case\"ComplexAbs\":return[n.abs(S(\"x\",r,t,e))];case\"Acos\":return[n.acos(S(\"x\",r,t,e))];case\"Acosh\":return[n.acosh(S(\"x\",r,t,e))];case\"Asin\":return[n.asin(S(\"x\",r,t,e))];case\"Asinh\":return[n.asinh(S(\"x\",r,t,e))];case\"Atan\":return[n.atan(S(\"x\",r,t,e))];case\"Atan2\":return[n.atan2(S(\"x\",r,t,e),S(\"y\",r,t,e))];case\"Atanh\":return[n.atanh(S(\"x\",r,t,e))];case\"Ceil\":return[n.ceil(S(\"x\",r,t,e))];case\"Complex\":return[n.complex(S(\"real\",r,t,e),S(\"imag\",r,t,e))];case\"Cos\":return[n.cos(S(\"x\",r,t,e))];case\"Cosh\":return[n.cosh(S(\"x\",r,t,e))];case\"Elu\":return[n.elu(S(\"x\",r,t,e))];case\"Erf\":return[n.erf(S(\"x\",r,t,e))];case\"Exp\":return[n.exp(S(\"x\",r,t,e))];case\"Expm1\":return[n.expm1(S(\"x\",r,t,e))];case\"Floor\":return[n.floor(S(\"x\",r,t,e))];case\"Log\":return[n.log(S(\"x\",r,t,e))];case\"Log1p\":return[n.log1p(S(\"x\",r,t,e))];case\"Imag\":return[n.imag(S(\"x\",r,t,e))];case\"Neg\":return[n.neg(S(\"x\",r,t,e))];case\"Reciprocal\":return[n.reciprocal(S(\"x\",r,t,e))];case\"Real\":return[n.real(S(\"x\",r,t,e))];case\"Relu\":return[n.relu(S(\"x\",r,t,e))];case\"Round\":return[n.round(S(\"x\",r,t,e))];case\"Selu\":return[n.selu(S(\"x\",r,t,e))];case\"Sigmoid\":return[n.sigmoid(S(\"x\",r,t,e))];case\"Sin\":return[n.sin(S(\"x\",r,t,e))];case\"Sign\":return[n.sign(S(\"x\",r,t,e))];case\"Sinh\":return[n.sinh(S(\"x\",r,t,e))];case\"Softplus\":return[n.softplus(S(\"x\",r,t,e))];case\"Sqrt\":return[n.sqrt(S(\"x\",r,t,e))];case\"Square\":return[n.square(S(\"x\",r,t,e))];case\"Tanh\":return[n.tanh(S(\"x\",r,t,e))];case\"Tan\":return[n.tan(S(\"x\",r,t,e))];case\"ClipByValue\":return[n.clipByValue(S(\"x\",r,t,e),S(\"clipValueMin\",r,t,e),S(\"clipValueMax\",r,t,e))];case\"Relu6\":return[n.relu6(S(\"x\",r,t,e))];case\"Rsqrt\":return[n.rsqrt(br(r.inputNames[0],t,e))];case\"Prod\":return[n.prod(S(\"x\",r,t,e),S(\"axes\",r,t,e))];case\"LeakyRelu\":return[n.leakyRelu(S(\"x\",r,t,e),S(\"alpha\",r,t,e))];case\"Prelu\":return[n.prelu(S(\"x\",r,t,e),S(\"alpha\",r,t,e))];case\"IsNan\":return[n.isNaN(br(r.inputNames[0],t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Vn(r,t,e=\"\"){if(!(typeof r==\"number\"||typeof t==\"number\")){y.assert(r.length===t.length,()=>e+` Shapes ${r} and ${t} must match`);for(let n=0;ne+` Shapes ${r} and ${t} must match`)}}}function BD(r){return!(typeof r==\"number\"||r.some(t=>t<0))}function Kf(r,t,e){let n=Mb(r,e),o=!BD(n);if(o&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${n}`);if(o&&t.forEach(s=>{n=Mb(s.shape,n)}),!BD(n))throw new Error(`Non-fully-defined elementShape: ${n}`);return n}function Mb(r,t){if(typeof r==\"number\")return t;if(typeof t==\"number\")return r;if(r.length!==t.length)throw new Error(`Incompatible ranks during merge: ${r} vs. ${t}`);let e=[];for(let n=0;n=0&&s>=0&&o!==s)throw new Error(`Incompatible shape during merge: ${r} vs. ${t}`);e[n]=o>=0?o:s}return e}var zb=class{constructor(t,e,n,o,s,i,a){this.name=t,this.dtype=e,this.maxSize=n,this.elementShape=o,this.identicalElementShapes=s,this.dynamicSize=i,this.clearAfterRead=a,this.tensors=[],this.closed_=!1,this.idTensor=mt(0),De(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(t){this.tensors.forEach(e=>{(t==null||!t.has(e.tensor.id))&&e.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(t<0||t>=this.size())throw new Error(`Tried to read from index ${t}, but array size is: ${this.size()}`);let e=this.tensors[t];if(e.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${t} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(e.cleared=!0),e.read=!0,e.tensor}readMany(t){return t.map(e=>this.read(e))}write(t,e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(t<0||!this.dynamicSize&&t>=this.maxSize)throw new Error(`Tried to write to index ${t}, but array is not resizeable and size is: ${this.maxSize}`);let n=this.tensors[t]||{};if(e.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t},\n because the value dtype is ${e.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=e.shape),Vn(this.elementShape,e.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${t}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, because it has already been written.`);n.tensor=e,De(e),n.written=!0,this.tensors[t]=n}writeMany(t,e){if(t.length!==e.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${t.length} is not the same as tensors size: ${e.length}.`);t.forEach((n,o)=>this.write(n,e[o]))}gather(t,e){if(!!e&&e!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${e}`);if(t)t=t.slice(0,this.size());else{t=[];for(let o=0;o=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(t,vr(e,0))}split(t,e){if(e.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${e.dtype}`);let n=0,o=t.map(u=>(n+=u,n));if(n!==e.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: ${e.shape}`);if(!this.dynamicSize&&t.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${t.length}), and the TensorArray is not marked as dynamically resizeable`);let s=n===0?0:e.size/n,i=[];B(()=>{e=R(e,[1,n,s]);for(let u=0;u{if(n!==s.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${s.dtype}`);Vn(e,s.shape,\"TensorList shape mismatch: \"),De(s)}),this.idTensor=mt(0),this.maxNumElements=o,De(this.idTensor)}get id(){return this.idTensor.id}copy(){return new ml([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(t){this.tensors.forEach(e=>{(t==null||!t.has(e.id))&&e.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(t,e,n=-1){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);if(n!==-1&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);Vn(t,this.elementShape,\"TensorList shape mismatch: \");let o=Kf(this.elementShape,this.tensors,t);return B(()=>{let s=this.tensors.map(i=>R(i,o));return nr(s,0)})}popBack(t,e){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error(\"Trying to pop from an empty list.\");let n=Kf(this.elementShape,this.tensors,t),o=this.tensors.pop();return o.kept=!1,Vn(o.shape,t,\"TensorList shape mismatch: \"),R(o,n)}pushBack(t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(Vn(t.shape,this.elementShape,\"TensorList shape mismatch: \"),this.maxNumElements===this.size())throw new Error(\"Trying to push element into a full list.\");De(t),this.tensors.push(t)}resize(t){if(t<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${t}`);if(this.maxNumElements!==-1&&t>this.maxNumElements)throw new Error(`TensorListResize input size ${t} is greater maxNumElement ${this.maxNumElements}.`);let e=new ml([],this.elementShape,this.elementDtype,this.maxNumElements);e.tensors.length=t;for(let n=0;nthis.tensors.length)throw new Error(`Trying to access element ${t} in a list with ${this.tensors.length} elements.`);if(this.tensors[t]==null)throw new Error(`element at index ${t} is null.`);Vn(this.tensors[t].shape,e,\"TensorList shape mismatch: \");let o=Kf(this.elementShape,this.tensors,e);return R(this.tensors[t],o)}setItem(t,e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(t<0||this.maxNumElements!==-1&&t>=this.maxNumElements)throw new Error(`Trying to set element ${t} in a list with max ${this.maxNumElements} elements.`);Vn(this.elementShape,e.shape,\"TensorList shape mismatch: \"),De(e),this.tensors[t]!=null&&(this.tensors[t].kept=!1),this.tensors[t]=e}gather(t,e,n){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);Vn(this.elementShape,n,\"TensorList shape mismatch: \"),t=t.slice(0,this.size());let o=Kf(this.elementShape,this.tensors,n);return t.length===0?ur([],[0].concat(o)):B(()=>{let s=t.map(i=>R(this.tensors[i],o));return nr(s,0)})}concat(t,e){if(!!t&&t!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${t}`);Vn(this.elementShape,e,\"TensorList shape mismatch: \");let n=Kf(this.elementShape,this.tensors,e);return this.size()===0?ur([],[0].concat(n)):B(()=>{let o=this.tensors.map(s=>R(s,n));return ne(o,0)})}};function VD(r,t,e){let n=r.dtype;if(r.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${r.shape}`);if(r.dtype!==e)throw new Error(`Invalid data types; op elements ${r.dtype}, but list elements ${e}`);let o=r.shape.slice(1);Vn(o,t,\"TensorList shape mismatch: \");let s=vr(r);return new ml(s,t,n)}function GD(r,t,e,n){return new ml([],r,t,n)}function WD(r,t,e,n){if(t.length!==r.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${r.shape[0]}`);let o=Math.max(...t);if(n!=null&&n!==-1&&o>=n)throw new Error(`Max index must be < array size (${o} vs. ${n})`);let s=new ml([],e,r.dtype,n),i=vr(r,0);return t.forEach((a,u)=>{s.setItem(a,i[u])}),s}function UD(r,t,e){let n=0,o=t.map(c=>(n+=c,n));if(n!==r.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: ${r.shape}`);let s=r.shape.slice(1),i=Mb(s,e),a=n===0?0:r.size/n,u=B(()=>{let c=[];r=R(r,[1,n,a]);for(let p=0;p{switch(r.op){case\"If\":case\"StatelessIf\":{let n=S(\"thenBranch\",r,t,e),o=S(\"elseBranch\",r,t,e),s=S(\"cond\",r,t,e),i=S(\"args\",r,t,e);return(await s.data())[0]?e.functionMap[n].executeFunctionAsync(i,e.tensorArrayMap,e.tensorListMap):e.functionMap[o].executeFunctionAsync(i,e.tensorArrayMap,e.tensorListMap)}case\"While\":case\"StatelessWhile\":{let n=S(\"body\",r,t,e),o=S(\"cond\",r,t,e),s=S(\"args\",r,t,e),i=await e.functionMap[o].executeFunctionAsync(s,e.tensorArrayMap,e.tensorListMap),a=s.map(c=>c.id),u=await i[0].data();i.forEach(c=>{!c.kept&&a.indexOf(c.id)===-1&&c.dispose()});let l=s;for(;u[0];){let c=l;l=await e.functionMap[n].executeFunctionAsync(l,e.tensorArrayMap,e.tensorListMap);let p=l.map(f=>f.id);c.forEach(f=>{!f.kept&&a.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()});let m=await e.functionMap[o].executeFunctionAsync(l,e.tensorArrayMap,e.tensorListMap);u=await m[0].data(),m.forEach(f=>{!f.kept&&a.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()})}return l}case\"LoopCond\":{let n=S(\"pred\",r,t,e);return[Zs(n)]}case\"Switch\":{let n=S(\"pred\",r,t,e),o=S(\"data\",r,t,e);return o.kept||(o=Zs(o)),(await n.data())[0]?[void 0,o]:[o,void 0]}case\"Merge\":{let n=r.inputNames.find(o=>br(o,t,e)!==void 0);if(n){let o=br(n,t,e);return[Zs(o)]}return}case\"Enter\":{let n=S(\"frameName\",r,t,e),o=S(\"tensor\",r,t,e);return e.enterFrame(n),[Zs(o)]}case\"Exit\":{let n=S(\"tensor\",r,t,e);return e.exitFrame(),[Zs(n)]}case\"NextIteration\":{let n=S(\"tensor\",r,t,e);return e.nextIteration(),[Zs(n)]}case\"TensorArrayV3\":{let n=S(\"size\",r,t,e),o=S(\"dtype\",r,t,e),s=S(\"elementShape\",r,t,e),i=S(\"dynamicSize\",r,t,e),a=S(\"clearAfterRead\",r,t,e),u=S(\"identicalElementShapes\",r,t,e),l=S(\"name\",r,t,e),c=new zb(l,o,n,s,u,i,a);return e.addTensorArray(c),[c.idTensor,mt(1)]}case\"TensorArrayWriteV3\":{let n=S(\"tensorArrayId\",r,t,e),o=S(\"index\",r,t,e),s=S(\"tensor\",r,t,e),i=e.getTensorArray(n.id);return i.write(o,s),[i.idTensor]}case\"TensorArrayReadV3\":{let n=S(\"tensorArrayId\",r,t,e),o=S(\"index\",r,t,e);return[e.getTensorArray(n.id).read(o)]}case\"TensorArrayGatherV3\":{let n=S(\"tensorArrayId\",r,t,e),o=S(\"indices\",r,t,e),s=S(\"dtype\",r,t,e);return[e.getTensorArray(n.id).gather(o,s)]}case\"TensorArrayScatterV3\":{let n=S(\"tensorArrayId\",r,t,e),o=S(\"indices\",r,t,e),s=S(\"tensor\",r,t,e),i=e.getTensorArray(n.id);return i.scatter(o,s),[i.idTensor]}case\"TensorArrayConcatV3\":{let n=S(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id),s=S(\"dtype\",r,t,e);return[o.concat(s)]}case\"TensorArraySplitV3\":{let n=S(\"tensorArrayId\",r,t,e),o=S(\"tensor\",r,t,e),s=S(\"lengths\",r,t,e),i=e.getTensorArray(n.id);return i.split(s,o),[i.idTensor]}case\"TensorArraySizeV3\":{let n=S(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id);return[mt(o.size(),\"int32\")]}case\"TensorArrayCloseV3\":{let n=S(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id);return o.clearAndClose(),[o.idTensor]}case\"TensorListSetItem\":{let n=S(\"tensorListId\",r,t,e),o=S(\"index\",r,t,e),s=S(\"tensor\",r,t,e),i=e.getTensorList(n.id);return i.setItem(o,s),[i.idTensor]}case\"TensorListGetItem\":{let n=S(\"tensorListId\",r,t,e),o=S(\"index\",r,t,e),s=S(\"elementShape\",r,t,e),i=S(\"elementDType\",r,t,e);return[e.getTensorList(n.id).getItem(o,s,i)]}case\"TensorListScatterV2\":case\"TensorListScatter\":{let n=S(\"indices\",r,t,e),o=S(\"tensor\",r,t,e),s=S(\"elementShape\",r,t,e),i=S(\"numElements\",r,t,e),a=WD(o,n,s,i);return e.addTensorList(a),[a.idTensor]}case\"TensorListReserve\":case\"EmptyTensorList\":{let n=S(\"elementShape\",r,t,e),o=S(\"elementDType\",r,t,e),s;r.op===\"TensorListReserve\"?s=\"numElements\":s=\"maxNumElements\";let i=S(s,r,t,e),a=r.op===\"TensorListReserve\"?-1:i,u=GD(n,o,i,a);return e.addTensorList(u),[u.idTensor]}case\"TensorListGather\":{let n=S(\"tensorListId\",r,t,e),o=S(\"indices\",r,t,e),s=S(\"elementShape\",r,t,e),i=S(\"elementDType\",r,t,e);return[e.getTensorList(n.id).gather(o,i,s)]}case\"TensorListStack\":{let n=S(\"tensorListId\",r,t,e),o=S(\"elementShape\",r,t,e),s=S(\"elementDType\",r,t,e),i=S(\"numElements\",r,t,e);return[e.getTensorList(n.id).stack(o,s,i)]}case\"TensorListFromTensor\":{let n=S(\"tensor\",r,t,e),o=S(\"elementShape\",r,t,e),s=S(\"elementDType\",r,t,e),i=VD(n,o,s);return e.addTensorList(i),[i.idTensor]}case\"TensorListConcat\":case\"TensorListConcatV2\":{let n=S(\"tensorListId\",r,t,e),o=e.getTensorList(n.id),s=S(\"dtype\",r,t,e),i=S(\"elementShape\",r,t,e);return[o.concat(s,i)]}case\"TensorListPushBack\":{let n=S(\"tensorListId\",r,t,e),o=S(\"tensor\",r,t,e),s=e.getTensorList(n.id);return s.pushBack(o),[s.idTensor]}case\"TensorListPopBack\":{let n=S(\"tensorListId\",r,t,e),o=S(\"elementShape\",r,t,e),s=S(\"elementDType\",r,t,e);return[e.getTensorList(n.id).popBack(o,s)]}case\"TensorListSplit\":{let n=S(\"tensor\",r,t,e),o=S(\"elementShape\",r,t,e),s=S(\"lengths\",r,t,e),i=UD(n,s,o);return e.addTensorList(i),[i.idTensor]}case\"TensorListLength\":{let n=S(\"tensorListId\",r,t,e),o=e.getTensorList(n.id);return[mt(o.size(),\"int32\")]}case\"TensorListResize\":{let n=S(\"tensorListId\",r,t,e),o=S(\"size\",r,t,e),i=e.getTensorList(n.id).resize(o);return e.addTensorList(i),[i.idTensor]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};function qD(r,t,e){let[n,o]=S(\"fusedOps\",r,t,e),s=n===\"biasadd\",i=!s,a=o===\"prelu\",u=n===\"fusedbatchnorm\",l=S(\"numArgs\",r,t,e);if(s){if(a&&l!==2)throw new Error(\"FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.\");if(!a&&s&&l!==1)throw new Error(\"FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.\")}if(u)throw new Error(\"FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported\");let c=S(\"strides\",r,t,e),p=Rh(r,t,e),m=S(\"dataFormat\",r,t,e).toUpperCase(),f=S(\"dilations\",r,t,e),[d,h]=S(\"args\",r,t,e);i&&(h=d,d=void 0);let g=S(\"leakyreluAlpha\",r,t,e);return{stride:c,pad:p,dataFormat:m,dilations:f,biasArg:d,preluArg:h,activationFunc:o,leakyreluAlpha:g}}var KD=(r,t,e,n=ae)=>{switch(r.op){case\"Conv1D\":{let o=S(\"stride\",r,t,e),s=S(\"pad\",r,t,e),i=S(\"dataFormat\",r,t,e).toUpperCase(),a=S(\"dilation\",r,t,e);return[n.conv1d(S(\"x\",r,t,e),S(\"filter\",r,t,e),o,s,i,a)]}case\"Conv2D\":{let o=S(\"strides\",r,t,e),s=Rh(r,t,e),i=S(\"dataFormat\",r,t,e).toUpperCase(),a=S(\"dilations\",r,t,e);return[n.conv2d(S(\"x\",r,t,e),S(\"filter\",r,t,e),[o[1],o[2]],s,i,[a[1],a[2]])]}case\"_FusedConv2D\":{let{stride:o,pad:s,dataFormat:i,dilations:a,biasArg:u,preluArg:l,activationFunc:c,leakyreluAlpha:p}=qD(r,t,e);return[n.fused.conv2d({x:S(\"x\",r,t,e),filter:S(\"filter\",r,t,e),strides:[o[1],o[2]],pad:s,dataFormat:i,dilations:[a[1],a[2]],bias:u,activation:c,preluActivationWeights:l,leakyreluAlpha:p})]}case\"FusedDepthwiseConv2dNative\":{let{stride:o,pad:s,dataFormat:i,dilations:a,biasArg:u,preluArg:l,activationFunc:c,leakyreluAlpha:p}=qD(r,t,e);return[n.fused.depthwiseConv2d({x:S(\"x\",r,t,e),filter:S(\"filter\",r,t,e),strides:[o[1],o[2]],pad:s,dataFormat:i,dilations:[a[1],a[2]],bias:u,activation:c,preluActivationWeights:l,leakyreluAlpha:p})]}case\"Conv2DBackpropInput\":case\"Conv2dTranspose\":{let o=S(\"outputShape\",r,t,e),s=S(\"strides\",r,t,e),i=Rh(r,t,e);return[n.conv2dTranspose(S(\"x\",r,t,e),S(\"filter\",r,t,e),o,[s[1],s[2]],i)]}case\"DepthwiseConv2dNative\":case\"DepthwiseConv2d\":{let o=S(\"strides\",r,t,e),s=Rh(r,t,e),i=S(\"dilations\",r,t,e),a=S(\"dataFormat\",r,t,e).toUpperCase();return[n.depthwiseConv2d(S(\"input\",r,t,e),S(\"filter\",r,t,e),[o[1],o[2]],s,a,[i[1],i[2]])]}case\"Conv3D\":{let o=S(\"strides\",r,t,e),s=S(\"pad\",r,t,e),i=S(\"dataFormat\",r,t,e).toUpperCase(),a=S(\"dilations\",r,t,e);return[n.conv3d(S(\"x\",r,t,e),S(\"filter\",r,t,e),[o[1],o[2],o[3]],s,i,[a[1],a[2],a[3]])]}case\"AvgPool\":{let o=S(\"strides\",r,t,e),s=S(\"pad\",r,t,e),i=S(\"kernelSize\",r,t,e);return[n.avgPool(S(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case\"MaxPool\":{let o=S(\"strides\",r,t,e),s=S(\"pad\",r,t,e),i=S(\"kernelSize\",r,t,e);return[n.maxPool(S(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case\"MaxPoolWithArgmax\":{let o=S(\"strides\",r,t,e),s=S(\"pad\",r,t,e),i=S(\"kernelSize\",r,t,e),a=S(\"includeBatchInIndex\",r,t,e),{result:u,indexes:l}=n.maxPoolWithArgmax(S(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s,a);return[u,l]}case\"AvgPool3D\":{let o=S(\"strides\",r,t,e),s=S(\"pad\",r,t,e),i=S(\"kernelSize\",r,t,e);return[n.avgPool3d(S(\"x\",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case\"MaxPool3D\":{let o=S(\"strides\",r,t,e),s=S(\"pad\",r,t,e),i=S(\"kernelSize\",r,t,e);return[n.maxPool3d(S(\"x\",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case\"Dilation2D\":{let o=S(\"strides\",r,t,e),s=S(\"pad\",r,t,e),i=S(\"dilations\",r,t,e),a=o[1],u=o[2],l=i[1],c=i[2];return[n.dilation2d(S(\"x\",r,t,e),S(\"filter\",r,t,e),[a,u],s,[l,c],\"NHWC\")]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var jD=(r,t,e,n=ae)=>{switch(r.op){case\"Fill\":{let o=S(\"shape\",r,t,e),s=S(\"dtype\",r,t,e),i=S(\"value\",r,t,e);return[n.fill(o,i,s)]}case\"LinSpace\":{let o=S(\"start\",r,t,e),s=S(\"stop\",r,t,e),i=S(\"num\",r,t,e);return[n.linspace(o,s,i)]}case\"Multinomial\":{let o=S(\"logits\",r,t,e),s=S(\"numSamples\",r,t,e),i=S(\"seed\",r,t,e);return[n.multinomial(o,s,i)]}case\"OneHot\":{let o=S(\"indices\",r,t,e),s=S(\"depth\",r,t,e),i=S(\"onValue\",r,t,e),a=S(\"offValue\",r,t,e),u=S(\"dtype\",r,t,e);return[n.oneHot(o,s,i,a,u)]}case\"Ones\":return[n.ones(S(\"shape\",r,t,e),S(\"dtype\",r,t,e))];case\"OnesLike\":return[n.onesLike(S(\"x\",r,t,e))];case\"RandomStandardNormal\":return[n.randomStandardNormal(S(\"shape\",r,t,e),S(\"dtype\",r,t,e),S(\"seed\",r,t,e))];case\"RandomUniform\":return[n.randomUniform(S(\"shape\",r,t,e),S(\"minval\",r,t,e),S(\"maxval\",r,t,e),S(\"dtype\",r,t,e))];case\"Range\":{let o=S(\"start\",r,t,e),s=S(\"stop\",r,t,e),i=S(\"step\",r,t,e);return[n.range(o,s,i,S(\"dtype\",r,t,e))]}case\"TruncatedNormal\":{let o=S(\"shape\",r,t,e),s=S(\"mean\",r,t,e),i=S(\"stdDev\",r,t,e),a=S(\"seed\",r,t,e);return[n.truncatedNormal(o,s,i,S(\"dtype\",r,t,e),a)]}case\"Zeros\":return[n.zeros(S(\"shape\",r,t,e),S(\"dtype\",r,t,e))];case\"ZerosLike\":return[n.zerosLike(S(\"x\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function mN(r,t,e){let n=S(\"boxes\",r,t,e),o=S(\"scores\",r,t,e),s=S(\"maxOutputSize\",r,t,e),i=S(\"iouThreshold\",r,t,e),a=S(\"scoreThreshold\",r,t,e),u=S(\"softNmsSigma\",r,t,e);return{boxes:n,scores:o,maxOutputSize:s,iouThreshold:i,scoreThreshold:a,softNmsSigma:u}}var XD=async(r,t,e,n,o=ae)=>{switch(r.op){case\"NonMaxSuppressionV5\":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l,softNmsSigma:c}=mN(r,t,e),p=await o.image.nonMaxSuppressionWithScoreAsync(s,i,a,u,l,c);return[p.selectedIndices,p.selectedScores]}case\"NonMaxSuppressionV4\":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l}=mN(r,t,e),c=S(\"padToMaxOutputSize\",r,t,e),p=await o.image.nonMaxSuppressionPaddedAsync(s,i,a,u,l,c);return[p.selectedIndices,p.validOutputs]}case\"NonMaxSuppressionV3\":case\"NonMaxSuppressionV2\":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l}=mN(r,t,e);return[await o.image.nonMaxSuppressionAsync(s,i,a,u,l)]}case\"Where\":{let s=o.cast(S(\"condition\",r,t,e),\"bool\"),i=[await o.whereAsync(s)];return s.dispose(),i}case\"ListDiff\":return o.setdiff1dAsync(S(\"x\",r,t,e),S(\"y\",r,t,e));default:throw TypeError(`Node type ${r.op} is not implemented`)}};var YD=(r,t,e,n=ae)=>{switch(r.op){case\"LowerBound\":{let o=S(\"sortedSequence\",r,t,e),s=S(\"values\",r,t,e);return[n.lowerBound(o,s)]}case\"TopKV2\":{let o=S(\"x\",r,t,e),s=S(\"k\",r,t,e),i=S(\"sorted\",r,t,e),a=n.topk(o,s,i);return[a.values,a.indices]}case\"UpperBound\":{let o=S(\"sortedSequence\",r,t,e),s=S(\"values\",r,t,e);return[n.upperBound(o,s)]}case\"Unique\":{let o=S(\"x\",r,t,e),s=n.unique(o);return[s.values,s.indices]}case\"UniqueV2\":{let o=S(\"x\",r,t,e),s=S(\"axis\",r,t,e),i=n.unique(o,s);return[i.values,i.indices]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var ZD=(r,t,e,n=ae)=>{switch(r.op){case\"Const\":return t[r.name];case\"PlaceholderWithDefault\":let o=S(\"default\",r,t,e);return[br(r.name,t,e)||o];case\"Placeholder\":return[br(r.name,t,e)];case\"Identity\":case\"StopGradient\":case\"FakeQuantWithMinMaxVars\":{let c=S(\"x\",r,t,e);return[Zs(c)]}case\"IdentityN\":return S(\"x\",r,t,e).map(c=>Zs(c));case\"Snapshot\":let s=S(\"x\",r,t,e);return[Zs(s)];case\"Shape\":return[n.tensor1d(S(\"x\",r,t,e).shape,\"int32\")];case\"ShapeN\":return S(\"x\",r,t,e).map(c=>n.tensor1d(c.shape));case\"Size\":return[n.scalar(S(\"x\",r,t,e).size,\"int32\")];case\"Rank\":return[n.scalar(S(\"x\",r,t,e).rank,\"int32\")];case\"NoOp\":return[n.scalar(1)];case\"Print\":let i=S(\"x\",r,t,e),a=S(\"data\",r,t,e),u=S(\"message\",r,t,e),l=S(\"summarize\",r,t,e);console.warn(\"The graph has a tf.print() operation,usually used for debugging, which slows down performance.\"),console.log(u);for(let c=0;ct.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return mt(this.size(),\"int32\")}async import(t,e){this.checkKeyAndValueTensor(t,e);let n=await t.data();return this.tensorMap.forEach(o=>o.dispose()),this.tensorMap.clear(),B(()=>{let o=vr(e),s=n.length,i=o.length;y.assert(s===i,()=>`The number of elements doesn't match, keys has ${s} elements, the values has ${i} elements.`);for(let a=0;a{let o=[];for(let s=0;s{switch(r.op){case\"HashTable\":case\"HashTableV2\":{let o=n.getHashTableHandleByName(r.name);if(o!=null)return[o];{let s=S(\"keyDType\",r,t,e),i=S(\"valueDType\",r,t,e),a=new Bb(s,i);return n.addHashTable(r.name,a),[a.handle]}}case\"LookupTableImport\":case\"LookupTableImportV2\":{let o=S(\"tableHandle\",r,t,e,n),s=S(\"keys\",r,t,e),i=S(\"values\",r,t,e);return[await n.getHashTableById(o.id).import(s,i)]}case\"LookupTableFind\":case\"LookupTableFindV2\":{let o=S(\"tableHandle\",r,t,e,n),s=S(\"keys\",r,t,e),i=S(\"defaultValue\",r,t,e);return[await n.getHashTableById(o.id).find(s,i)]}case\"LookupTableSize\":case\"LookupTableSizeV2\":{let o=S(\"tableHandle\",r,t,e,n);return[n.getHashTableById(o.id).tensorSize()]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var QD=(r,t,e,n=ae)=>{switch(r.op){case\"ResizeBilinear\":{let o=S(\"images\",r,t,e),s=S(\"size\",r,t,e),i=S(\"alignCorners\",r,t,e),a=S(\"halfPixelCenters\",r,t,e);return[n.image.resizeBilinear(o,[s[0],s[1]],i,a)]}case\"ResizeNearestNeighbor\":{let o=S(\"images\",r,t,e),s=S(\"size\",r,t,e),i=S(\"alignCorners\",r,t,e),a=S(\"halfPixelCenters\",r,t,e);return[n.image.resizeNearestNeighbor(o,[s[0],s[1]],i,a)]}case\"CropAndResize\":{let o=S(\"image\",r,t,e),s=S(\"boxes\",r,t,e),i=S(\"boxInd\",r,t,e),a=S(\"cropSize\",r,t,e),u=S(\"method\",r,t,e),l=S(\"extrapolationValue\",r,t,e);return[n.image.cropAndResize(o,s,i,a,u,l)]}case\"ImageProjectiveTransformV3\":{let o=S(\"images\",r,t,e),s=S(\"transforms\",r,t,e),i=S(\"outputShape\",r,t,e),a=S(\"fillValue\",r,t,e),u=S(\"interpolation\",r,t,e),l=S(\"fillMode\",r,t,e);return[n.image.transform(o,s,u.toLowerCase(),l.toLowerCase(),a,i)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var tR=(r,t,e,n=ae)=>{switch(r.op){case\"Equal\":return[n.equal(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"NotEqual\":return[n.notEqual(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"Greater\":return[n.greater(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"GreaterEqual\":return[n.greaterEqual(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"Less\":return[n.less(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"LessEqual\":return[n.lessEqual(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"LogicalAnd\":return[n.logicalAnd(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"LogicalNot\":return[n.logicalNot(S(\"a\",r,t,e))];case\"LogicalOr\":return[n.logicalOr(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"Select\":case\"SelectV2\":return[n.where(S(\"condition\",r,t,e),S(\"a\",r,t,e),S(\"b\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var eR=(r,t,e,n=ae)=>{switch(r.op){case\"BatchMatMul\":case\"BatchMatMulV2\":case\"MatMul\":return[n.matMul(S(\"a\",r,t,e),S(\"b\",r,t,e),S(\"transposeA\",r,t,e),S(\"transposeB\",r,t,e))];case\"Einsum\":return[n.einsum(S(\"equation\",r,t,e),...S(\"tensors\",r,t,e))];case\"Transpose\":return[n.transpose(S(\"x\",r,t,e),S(\"perm\",r,t,e))];case\"_FusedMatMul\":let[o,s]=S(\"fusedOps\",r,t,e),i=o===\"biasadd\",a=s===\"prelu\",u=S(\"numArgs\",r,t,e),l=S(\"leakyreluAlpha\",r,t,e);if(i){if(a&&u!==2)throw new Error(\"Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.\");if(!a&&u!==1)throw new Error(\"Fused MatMul with BiasAdd must have one extra argument: bias.\")}let[c,p]=S(\"args\",r,t,e);return[n.fused.matMul({a:S(\"a\",r,t,e),b:S(\"b\",r,t,e),transposeA:S(\"transposeA\",r,t,e),transposeB:S(\"transposeB\",r,t,e),bias:c,activation:s,preluActivationWeights:p,leakyreluAlpha:l})];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var rR=(r,t,e,n=ae)=>{switch(r.op){case\"EuclideanNorm\":return[n.euclideanNorm(S(\"x\",r,t,e),S(\"axis\",r,t,e),S(\"keepDims\",r,t,e))];case\"FusedBatchNorm\":case\"FusedBatchNormV2\":return[n.batchNorm(S(\"x\",r,t,e),S(\"mean\",r,t,e),S(\"variance\",r,t,e),S(\"offset\",r,t,e),S(\"scale\",r,t,e),S(\"epsilon\",r,t,e))];case\"FusedBatchNormV3\":return[n.batchNorm(S(\"x\",r,t,e),S(\"mean\",r,t,e),S(\"variance\",r,t,e),S(\"offset\",r,t,e),S(\"scale\",r,t,e),S(\"epsilon\",r,t,e))];case\"LRN\":return[n.localResponseNormalization(S(\"x\",r,t,e),S(\"radius\",r,t,e),S(\"bias\",r,t,e),S(\"alpha\",r,t,e),S(\"beta\",r,t,e))];case\"Softmax\":return[n.softmax(S(\"x\",r,t,e))];case\"LogSoftmax\":return[n.logSoftmax(S(\"x\",r,t,e))];case\"SparseToDense\":return[n.sparseToDense(S(\"sparseIndices\",r,t,e),S(\"outputShape\",r,t,e),S(\"sparseValues\",r,t,e),S(\"defaultValue\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var nR=(r,t,e,n=ae)=>{switch(r.op){case\"Max\":{let a=S(\"axis\",r,t,e),u=S(\"keepDims\",r,t,e);return[n.max(S(\"x\",r,t,e),a,u)]}case\"Mean\":{let a=S(\"axis\",r,t,e),u=S(\"keepDims\",r,t,e);return[n.mean(S(\"x\",r,t,e),a,u)]}case\"Min\":{let a=S(\"axis\",r,t,e),u=S(\"keepDims\",r,t,e);return[n.min(S(\"x\",r,t,e),a,u)]}case\"Sum\":{let a=S(\"axis\",r,t,e),u=S(\"keepDims\",r,t,e);return[n.sum(S(\"x\",r,t,e),a,u)]}case\"All\":{let a=S(\"axis\",r,t,e),u=S(\"keepDims\",r,t,e);return[n.all(S(\"x\",r,t,e),a,u)]}case\"Any\":{let a=S(\"axis\",r,t,e),u=S(\"keepDims\",r,t,e);return[n.any(S(\"x\",r,t,e),a,u)]}case\"ArgMax\":{let a=S(\"axis\",r,t,e);return[n.argMax(S(\"x\",r,t,e),a)]}case\"ArgMin\":{let a=S(\"axis\",r,t,e);return[n.argMin(S(\"x\",r,t,e),a)]}case\"Prod\":{let a=S(\"axis\",r,t,e),u=S(\"keepDims\",r,t,e);return[n.prod(S(\"x\",r,t,e),a,u)]}case\"Cumprod\":{let a=S(\"axis\",r,t,e),u=S(\"exclusive\",r,t,e),l=S(\"reverse\",r,t,e);return[n.cumprod(S(\"x\",r,t,e),a,u,l)]}case\"Cumsum\":{let a=S(\"axis\",r,t,e),u=S(\"exclusive\",r,t,e),l=S(\"reverse\",r,t,e);return[n.cumsum(S(\"x\",r,t,e),a,u,l)]}case\"Bincount\":let o=S(\"x\",r,t,e),s=S(\"weights\",r,t,e),i=S(\"size\",r,t,e);return[n.bincount(o,s,i)];case\"DenseBincount\":{let a=S(\"x\",r,t,e),u=S(\"weights\",r,t,e),l=S(\"size\",r,t,e),c=S(\"binaryOutput\",r,t,e);return[n.denseBincount(a,u,l,c)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var oR=(r,t,e,n=ae)=>{switch(r.op){case\"ConcatV2\":case\"Concat\":{let o=S(\"n\",r,t,e),s=S(\"axis\",r,t,e),i=S(\"tensors\",r,t,e);return i=i.slice(0,o),[n.concat(i,s)]}case\"Gather\":{let o=S(\"x\",r,t,e),s=S(\"indices\",r,t,e);return[n.gather(o,n.cast(s,\"int32\"),0)]}case\"GatherV2\":{let o=S(\"axis\",r,t,e),s=S(\"batchDims\",r,t,e),i=S(\"x\",r,t,e),a=S(\"indices\",r,t,e);return[n.gather(i,n.cast(a,\"int32\"),o,s)]}case\"Reverse\":{let o=S(\"dims\",r,t,e),s=[];for(let a=0;a{let o=S(\"axis\",r,t,e),s=S(\"tensors\",r,t,e),i=s[0].shape,a=n.squeeze(s[0]).shape,u=s.map(l=>{let c=y.arraysEqual(l.shape,i);if(!c&&!y.arraysEqual(n.squeeze(l).shape,a))throw new Error(\"the input tensors shape does not match\");return c?l:n.reshape(l,i)});return[n.stack(u,o)]});case\"Unpack\":{let o=S(\"axis\",r,t,e),s=S(\"tensor\",r,t,e);return n.unstack(s,o)}case\"Tile\":{let o=S(\"reps\",r,t,e);return[n.tile(S(\"x\",r,t,e),o)]}case\"Split\":case\"SplitV\":{let o=S(\"axis\",r,t,e),s=S(\"numOrSizeSplits\",r,t,e),i=S(\"x\",r,t,e);return n.split(i,s,o)}case\"ScatterNd\":{let o=S(\"indices\",r,t,e),s=S(\"values\",r,t,e),i=S(\"shape\",r,t,e);return[n.scatterND(o,s,i)]}case\"GatherNd\":{let o=S(\"x\",r,t,e),s=S(\"indices\",r,t,e);return[n.gatherND(o,s)]}case\"SparseToDense\":{let o=S(\"sparseIndices\",r,t,e),s=S(\"outputShape\",r,t,e),i=S(\"sparseValues\",r,t,e),a=S(\"defaultValue\",r,t,e);return[n.sparseToDense(o,i,s,i.dtype===a.dtype?a:n.cast(a,i.dtype))]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var sR=(r,t,e,n=ae)=>{switch(r.op){case\"SparseFillEmptyRows\":{let{outputIndices:o,outputValues:s,emptyRowIndicator:i,reverseIndexMap:a}=n.sparse.sparseFillEmptyRows(S(\"indices\",r,t,e),S(\"values\",r,t,e),S(\"denseShape\",r,t,e),S(\"defaultValue\",r,t,e));return[o,s,i,a]}case\"SparseReshape\":{let{outputIndices:o,outputShape:s}=n.sparse.sparseReshape(S(\"inputIndices\",r,t,e),S(\"inputShape\",r,t,e),S(\"newShape\",r,t,e));return[o,s]}case\"SparseSegmentMean\":return[n.sparse.sparseSegmentMean(S(\"data\",r,t,e),S(\"indices\",r,t,e),S(\"segmentIds\",r,t,e))];case\"SparseSegmentSum\":return[n.sparse.sparseSegmentSum(S(\"data\",r,t,e),S(\"indices\",r,t,e),S(\"segmentIds\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var iR=(r,t,e,n=ae)=>{switch(r.op){case\"FFT\":return[n.fft(S(\"x\",r,t,e))];case\"IFFT\":return[n.ifft(S(\"x\",r,t,e))];case\"RFFT\":return[n.rfft(S(\"x\",r,t,e))];case\"IRFFT\":return[n.irfft(S(\"x\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var aR=(r,t,e,n=ae)=>{switch(r.op){case\"StringNGrams\":{let{nGrams:o,nGramsSplits:s}=n.string.stringNGrams(S(\"data\",r,t,e),S(\"dataSplits\",r,t,e),S(\"separator\",r,t,e),S(\"nGramWidths\",r,t,e),S(\"leftPad\",r,t,e),S(\"rightPad\",r,t,e),S(\"padWidth\",r,t,e),S(\"preserveShortSequences\",r,t,e));return[o,s]}case\"StringSplit\":{let{indices:o,values:s,shape:i}=n.string.stringSplit(S(\"input\",r,t,e),S(\"delimiter\",r,t,e),S(\"skipEmpty\",r,t,e));return[o,s,i]}case\"StringToHashBucketFast\":return[n.string.stringToHashBucketFast(S(\"input\",r,t,e),S(\"numBuckets\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var lR=(r,t,e,n=ae)=>{switch(r.op){case\"Cast\":return[n.cast(S(\"x\",r,t,e),S(\"dtype\",r,t,e))];case\"ExpandDims\":{let o=S(\"axis\",r,t,e);return[n.expandDims(S(\"x\",r,t,e),o)]}case\"Squeeze\":{let o=S(\"axis\",r,t,e);return[n.squeeze(S(\"x\",r,t,e),o)]}case\"Reshape\":return[n.reshape(S(\"x\",r,t,e),S(\"shape\",r,t,e))];case\"MirrorPad\":return[n.mirrorPad(S(\"x\",r,t,e),S(\"padding\",r,t,e),S(\"mode\",r,t,e))];case\"PadV2\":case\"Pad\":return[n.pad(S(\"x\",r,t,e),S(\"padding\",r,t,e),S(\"constantValue\",r,t,e))];case\"SpaceToBatchND\":{let o=S(\"blockShape\",r,t,e),s=S(\"paddings\",r,t,e);return[n.spaceToBatchND(S(\"x\",r,t,e),o,s)]}case\"BatchToSpaceND\":{let o=S(\"blockShape\",r,t,e),s=S(\"crops\",r,t,e);return[n.batchToSpaceND(S(\"x\",r,t,e),o,s)]}case\"DepthToSpace\":{let o=S(\"blockSize\",r,t,e),s=S(\"dataFormat\",r,t,e).toUpperCase();return[n.depthToSpace(S(\"x\",r,t,e),o,s)]}case\"BroadcastTo\":return[n.broadcastTo(S(\"x\",r,t,e),S(\"shape\",r,t,e))];case\"BroadcastArgs\":return[n.broadcastArgs(S(\"s0\",r,t,e),S(\"s1\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function fN(r,t,e,n,o=B){let s=((i,a,u)=>{switch(i.category){case\"arithmetic\":return o(()=>MD(i,a,u));case\"basic_math\":return o(()=>zD(i,a,u));case\"control\":return HD(i,a,u);case\"convolution\":return o(()=>KD(i,a,u));case\"creation\":return o(()=>jD(i,a,u));case\"dynamic\":return XD(i,a,u);case\"evaluation\":return o(()=>YD(i,a,u));case\"image\":return o(()=>QD(i,a,u));case\"graph\":return o(()=>ZD(i,a,u));case\"logical\":return o(()=>tR(i,a,u));case\"matrices\":return o(()=>eR(i,a,u));case\"normalization\":return o(()=>rR(i,a,u));case\"reduction\":return o(()=>nR(i,a,u));case\"slice_join\":return o(()=>oR(i,a,u));case\"sparse\":return o(()=>sR(i,a,u));case\"spectral\":return o(()=>iR(i,a,u));case\"string\":return o(()=>aR(i,a,u));case\"transformation\":return o(()=>lR(i,a,u));case\"hash_table\":return JD(i,a,u,n);case\"custom\":let l=Nb(i.op);if(l&&l.customExecutor)return l.customExecutor(new Lb(i,a,u));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(r,t,e);return y.isPromise(s)?s.then(i=>[].concat(i)):[].concat(s)}var Oh=class{constructor(t={},e={},n={},o={}){this.weightMap=t,this.tensorArrayMap=e,this.tensorListMap=n,this.functionMap=o,this.rootContext={id:0,frameName:\"\",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(t,e){return{id:t,frameName:e,iterationId:0}}set currentContext(t){this.contexts!==t&&(this.contexts=t,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let t=[];for(let e=0;ee.id===0&&e.iterationId===0?\"\":`${e.frameName}-${e.iterationId}`).join(\"/\"):\"\"}enterFrame(t){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,t)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error(\"Cannot exit frame, the context is empty\")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let t=Object.assign({},this.contexts[this.contexts.length-1]);t.iterationId+=1,t.id=this.lastId,this.contexts.splice(-1,1,t),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error(\"Cannot increase frame iteration, the context is empty\")}getWeight(t){return this.weightMap[t]}addTensorArray(t){this.tensorArrayMap[t.id]=t}getTensorArray(t){return this.tensorArrayMap[t]}addTensorList(t){this.tensorListMap[t.id]=t}getTensorList(t){return this.tensorListMap[t]}dispose(t){for(let e in this.tensorArrayMap)this.tensorArrayMap[e].clearAndClose(t);for(let e in this.tensorListMap)this.tensorListMap[e].clearAndClose(t)}};function dN(r,t,e,n){let o=new Set,s=[],i=null,a=null,u=new Set,l=Object.keys(r).map(m=>xn(m)[0]),c=[];n!=null&&(c=n.map(m=>xn(m.name)[0]));let p=[...t];for(;p.length>0;){let m=p.pop();if((hN(m)||F7(m)||O7(m))&&i==null&&(i=m,a=i.children.map(f=>f.name).filter(f=>o.has(f))),o.add(m.name),e[m.name]==null&&l.indexOf(m.name)===-1&&c.indexOf(m.name)===-1){if(m.inputs.length===0){s.push(m.name);continue}m.inputs.forEach(f=>{u.has(f.name)||(u.add(f.name),p.push(f))})}}return{inputs:r,outputs:t,usedNodes:o,missingInputs:s,dynamicNode:i,syncInputs:a}}function uR(r,t,e){let{usedNodes:n,inputs:o}=e,s=[],i=Object.keys(o).map(c=>xn(c)[0]).map(c=>r.nodes[c]),a=r.initNodes;i.forEach(c=>{n.has(c.name)&&s.push(c)}),r.weights.forEach(c=>{n.has(c.name)&&s.push(c)}),a!=null&&a.forEach(c=>{n.has(c.name)&&s.push(c)});let u=new Set,l=[];for(;s.length>0;){let c=s.pop();u.add(c.name),t[c.name]||l.push(c),c.children.forEach(p=>{!u.has(p.name)&&n.has(p.name)&&p.inputs.every(m=>u.has(m.name))&&s.push(p)})}return l}var $7=[\"Switch\",\"Merge\",\"Enter\",\"Exit\",\"NextIteration\",\"StatelessIf\",\"StatelessWhile\",\"if\",\"While\"],D7=[\"NonMaxSuppressionV2\",\"NonMaxSuppressionV3\",\"NonMaxSuppressionV5\",\"Where\"],R7=[\"HashTable\",\"HashTableV2\",\"LookupTableImport\",\"LookupTableImportV2\",\"LookupTableFind\",\"LookupTableFindV2\",\"LookupTableSize\",\"LookupTableSizeV2\"];function hN(r){return $7.indexOf(r.op)>=0}function F7(r){return D7.indexOf(r.op)>=0}function O7(r){return R7.indexOf(r.op)>=0}var Nc=class{constructor(t,e){this.graph=t,this.parent=e,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=\",\",this._functions={},this._functionExecutorMap={},this.intermediateTensors={},this.keepTensorForDebug=!1,this._outputs=t.outputs,this._inputs=t.inputs,this._initNodes=t.initNodes,this._signature=t.signature,this._functions=t.functions,t.functions!=null&&Object.keys(t.functions).forEach(n=>{this._functionExecutorMap[n]=new Nc(t.functions[n],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(t){let e=Object.keys(t).map(n=>t[n].map(o=>o.id));this._weightIds=[].concat(...e),this._weightMap=t}set resourceManager(t){this._resourceManager=t}get inputs(){return this._inputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(t=>t.signatureKey||t.name)}get outputNodes(){return this._outputs.map(t=>{let e=t.signatureKey||t.name;return t.defaultOutput?`${e}:${t.defaultOutput}`:e})}get functions(){return Object.keys(this._functions).reduce((t,e)=>(t[e]=this._functions[e].signature,t),{})}getCompilationKey(t,e){let n=t.map(s=>s.name).sort(),o=e.map(s=>s.name).sort();return n.join(this.SEPERATOR)+\"--\"+o.join(this.SEPERATOR)}compile(t,e){let n=dN(t,e,this.weightMap,this._initNodes),{missingInputs:o,dynamicNode:s,syncInputs:i}=n;if(s!=null)throw new Error(`This execution contains the node '${s.name}', which has the dynamic op '${s.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${i}]`);if(o.length>0){let a=e.map(l=>l.name),u=Object.keys(t);throw new Error(`Cannot compute the outputs [${a}] from the provided inputs [${u}]. Missing the following inputs: [${o}]`)}return uR(this.graph,this.weightMap,n)}execute(t,e){t=this.mapInputs(t);let n=Object.keys(t).sort();this.checkInputs(t),this.checkInputShapeAndType(t),e=this.mapOutputs(e),this.checkOutputs(e);let o=n.map(p=>this.graph.nodes[xn(p)[0]]),s=e.map(p=>xn(p)[0]),i=s.map(p=>this.graph.nodes[p]);this.resetIntermediateTensors(),i.length===0&&(i=this._outputs);let a=this.getCompilationKey(o,i),u=this.compiledMap.get(a);u==null&&(u=this.compile(t,i),this.compiledMap.set(a,u));let l={},c={};return B(()=>{let p=new Oh(this.weightMap,l,c,this.functionExecutorMap),m=Object.assign({},this.weightMap);Object.keys(t).forEach(h=>{let[g,x]=xn(h),b=[];b[x]=t[h],m[g]=b});let f=this.getFrozenTensorIds(m),d={};for(let h=0;hbr(h,m,p))})}getFrozenTensorIds(t){let e=[].concat.apply([],Object.keys(t).map(n=>t[n]).map(n=>n.map(o=>o.id)));return new Set(e)}checkTensorForDisposal(t,e,n,o,s,i,a){e.category===\"control\"||i.indexOf(t)!==-1||(n[t].forEach(u=>{u!=null&&(a[u.id]=(a[u.id]||0)+e.children.length)}),e.inputs.forEach(u=>{if(u.category!==\"control\"){let l=FD(u.name,n,o);l!=null&&l.forEach(c=>{if(c&&!c.kept&&!s.has(c.id)){let p=a[c.id];if(p===1){if(!this.keepTensorForDebug)c.dispose();else{let[m,f]=_o(e.name,o);this.intermediateTensors[m]?this.intermediateTensors[m][f]=c:(this.intermediateTensors[m]=[],this.intermediateTensors[m][f]=c)}delete a[c.id]}else p!=null&&a[c.id]--}})}}))}async executeAsync(t,e){return this._executeAsync(t,e)}disposeIntermediateTensors(){!this.intermediateTensors||(Object.keys(this.intermediateTensors).forEach(t=>this.intermediateTensors[t].forEach(e=>e.dispose())),this.disposeTensorsMap())}disposeTensorsMap(){!this.tensorsMap||Object.keys(this.tensorsMap).forEach(t=>{this.tensorsMap[t].forEach(n=>{n&&!n.kept&&!n.isDisposed&&!this.keepIds.has(n.id)&&n.dispose()})})}getIntermediateTensors(){return this.tensorsMap}resetIntermediateTensors(){for(let t in this.intermediateTensors)this.intermediateTensors[t].forEach(e=>e.dispose()),delete this.intermediateTensors[t]}async _executeAsync(t,e,n=!1,o={},s={}){n||(t=this.mapInputs(t),this.checkInputs(t),this.checkInputShapeAndType(t),e=this.mapOutputs(e),this.checkOutputs(e));try{this.keepTensorForDebug=z().getBool(\"KEEP_INTERMEDIATE_TENSORS\")}catch(c){console.warn(c.message)}this.resetIntermediateTensors();let i=new Oh(this.weightMap,o,s,this.functionExecutorMap);this.tensorsMap=await this.executeWithControlFlow(t,i,e,n);let a=e.map(c=>br(c,this.tensorsMap,i)),u=a.map(c=>c.id),l=Object.keys(t).map(c=>t[c].id);return this.keepIds=new Set([...u,...l,...this.weightIds]),this.keepTensorForDebug||this.disposeTensorsMap(),this.parent==null&&i.dispose(this.keepIds),a}async executeFunctionAsync(t,e,n){let o=t.reduce((s,i,a)=>(s[this.inputs[a].name]=i,s),{});return this._executeAsync(o,this.outputNodes,!0,e,n)}async executeWithControlFlow(t,e,n,o){let s=Object.keys(t),i=s.map(w=>this.graph.nodes[xn(w)[0]]),a=n.map(w=>xn(w)[0]),u=a.map(w=>this.graph.nodes[w]);u.length===0&&(u=this._outputs);let{usedNodes:l,missingInputs:c,dynamicNode:p,syncInputs:m}=dN(t,u,this.weightMap,this._initNodes),f=[...i,...this.graph.weights,...this._initNodes||[]].map(w=>({node:w,contexts:e.currentContext})),d=Object.assign({},this.weightMap);Object.keys(t).forEach(w=>{let[C,N]=xn(w),_=[];_[N]=t[w],d[C]=_});let h={},g=this.getFrozenTensorIds(d),x={};for(;f.length>0;){let w=this.processStack(i,f,e,d,x,g,a,h,l);await Promise.all(w)}p==null&&!o&&console.warn(\"This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.\");let b=u.filter(w=>!hN(w)&&!br(w.name,d,e)).map(w=>w.name);if(b.length>0){let w=\"\";throw p!=null&&(w=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${m}]`),new Error(`Cannot compute the outputs [${b}] from the provided inputs [${s}]. Consider providing the following inputs: [${c}]. ${w}`)}return d}processStack(t,e,n,o,s,i,a,u,l){let c=[];for(;e.length>0;){let p=e.pop();n.currentContext=p.contexts;let m=\"\";if(p.node.op===\"Enter\"&&S(\"isConstant\",p.node,o,n)&&([m]=_o(p.node.name,n)),o[p.node.name]==null){let f=fN(p.node,o,n,this._resourceManager);m||([m]=_o(p.node.name,n));let d=n.currentContext;y.isPromise(f)?c.push(f.then(h=>(o[m]=h,n.currentContext=d,this.checkTensorForDisposal(m,p.node,o,n,i,a,u),this.processChildNodes(p.node,e,n,o,s,l),h))):(o[m]=f,this.checkTensorForDisposal(m,p.node,o,n,i,a,u),this.processChildNodes(p.node,e,n,o,s,l))}else this.processChildNodes(p.node,e,n,o,s,l)}return c}processChildNodes(t,e,n,o,s,i){t.children.forEach(a=>{let[u]=_o(a.name,n);s[u]||!i.has(a.name)||(a.op===\"Merge\"?a.inputNames.some(l=>!!br(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})):a.inputNames.every(l=>!!br(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})))})}dispose(){Object.keys(this.weightMap).forEach(t=>this.weightMap[t].forEach(e=>e.dispose()))}checkInputShapeAndType(t){Object.keys(t).forEach(e=>{let n=t[e],[o]=xn(e),s=this.graph.nodes[o];if(s.attrParams.shape&&s.attrParams.shape.value){let i=s.attrParams.shape.value,a=i.length===n.shape.length&&n.shape.every((u,l)=>i[l]===-1||i[l]===u);y.assert(a,()=>`The shape of dict['${s.name}'] provided in model.execute(dict) must be [${i}], but was [${n.shape}]`)}s.attrParams.dtype&&s.attrParams.dtype.value&&y.assert(n.dtype===s.attrParams.dtype.value,()=>`The dtype of dict['${s.name}'] provided in model.execute(dict) must be ${s.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(t){let e={};for(let n in t)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[n]!=null){let o=this._signature.inputs[n];e[o.name]=t[n]}else e[n]=t[n];return e}checkInputs(t){let e=Object.keys(t).filter(n=>{let[o]=xn(n);return this.graph.nodes[o]==null});if(e.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${e}] that are not part of graph`)}mapOutputs(t){return t.map(e=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[e]!=null?this._signature.outputs[e].name:e,{})}checkOutputs(t){t.forEach(e=>{let[n]=xn(e);if(!this.graph.nodes[n])throw new Error(`The output '${e}' is not found in the graph`)})}};var Vb=class{constructor(t={},e={}){this.hashTableNameToHandle=t,this.hashTableMap=e}addHashTable(t,e){this.hashTableNameToHandle[t]=e.handle,this.hashTableMap[e.id]=e}getHashTableHandleByName(t){return this.hashTableNameToHandle[t]}getHashTableById(t){return this.hashTableMap[t]}dispose(){for(let t in this.hashTableMap)this.hashTableMap[t].clearAndClose(),delete this.hashTableMap[t];for(let t in this.hashTableNameToHandle)this.hashTableNameToHandle[t].dispose(),delete this.hashTableNameToHandle[t]}};var P7=\"?tfjs-format=file\",L7=\"model.json\",Ph=class{constructor(t,e={},n=_r){this.modelUrl=t,this.loadOptions=e,this.version=\"n/a\",this.io=n,e==null&&(this.loadOptions={}),this.resourceManager=new Vb}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}get modelStructuredOutputKeys(){return this.structuredOutputKeys}findIOHandler(){let t=this.modelUrl;if(t.load!=null)this.handler=t;else if(this.loadOptions.requestInit!=null)this.handler=this.io.browserHTTPRequest(t,this.loadOptions);else{let e=this.io.getLoadHandlers(t,this.loadOptions);if(e.length===0)e.push(this.io.browserHTTPRequest(t,this.loadOptions));else if(e.length>1)throw new Error(`Found more than one (${e.length}) load handlers for URL '${[t]}'`);this.handler=e[0]}}load(){if(this.findIOHandler(),this.handler.load==null)throw new Error(\"Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.\");let t=this.handler.load();return y.isPromise(t)?t.then(e=>this.loadSync(e)):this.loadSync(t)}loadSync(t){this.artifacts=t;let e=this.artifacts.modelTopology,n=this.artifacts.signature;if(this.artifacts.userDefinedMetadata!=null){let s=this.artifacts.userDefinedMetadata;s.signature!=null&&(n=s.signature),s.structuredOutputKeys!=null&&(this.structuredOutputKeys=s.structuredOutputKeys)}this.signature=n,this.version=`${e.versions.producer}.${e.versions.minConsumer}`;let o=this.io.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new Nc(Fh.Instance.transformGraph(e,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(o),this.executor.resourceManager=this.resourceManager,t.modelInitializer!=null&&t.modelInitializer.node!=null){let s=Fh.Instance.transformGraph(t.modelInitializer);this.initializer=new Nc(s),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=t.initializerSignature}return!0}async save(t,e){if(typeof t==\"string\"){let n=this.io.getSaveHandlers(t);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${t}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${t}'`);t=n[0]}if(t.save==null)throw new Error(\"GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.\");return t.save(this.artifacts)}predict(t,e){let n=this.execute(t,this.outputNodes);if(this.structuredOutputKeys){let o=n instanceof Ft?[n]:n,s={};return o.forEach((i,a)=>s[this.structuredOutputKeys[a]]=i),s}return n}normalizeInputs(t){if(!(t instanceof Ft)&&!Array.isArray(t)){if(this.signature!=null&&this.signature.inputs!=null)for(let o in this.signature.inputs){let s=this.signature.inputs[o];s.resourceId!=null&&(t[o]=this.resourceIdToCapturedInput[s.resourceId])}return t}t=Array.isArray(t)?t:[t];let e=Object.keys(this.resourceIdToCapturedInput).length;if(t.length+e!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-e} non-resource placeholders, while there are ${t.length} input tensors provided.`);let n=0;return this.inputNodes.reduce((o,s)=>{let i=this.signature?this.signature.inputs[s]:null;return i!=null&&i.resourceId!=null?o[s]=this.resourceIdToCapturedInput[i.resourceId]:o[s]=t[n++],o},{})}normalizeOutputs(t){return t=t||this.outputNodes,Array.isArray(t)?t:[t]}executeInitializerGraph(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(t){if(this.resourceIdToCapturedInput={},this.initializerSignature){let e=Object.keys(this.initializerSignature.outputs);for(let n=0;n1?n:n[0]}async executeAsync(t,e){this.resourceIdToCapturedInput==null&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),t=this.normalizeInputs(t),e=this.normalizeOutputs(e);let n=await this.executor.executeAsync(t,e);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(t){return Object.keys(t).reduce((e,n)=>(e[n]=[t[n]],e),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&vt(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function M7(r,t={},e=_r){if(r==null)throw new Error(\"modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model\");t==null&&(t={}),t.fromTFHub&&typeof r==\"string\"&&(r=B7(r));let n=new Ph(r,t,e);return await n.load(),n}function z7(r){if(r==null)throw new Error(\"modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model\");let t;if(r instanceof Array){let[n,o]=r;if(!n)throw new Error(\"modelJSON must be the first element of the array\");if(!o||!(o instanceof ArrayBuffer))throw new Error(\"An ArrayBuffer of weights must be the second element of the array\");if(!(\"modelTopology\"in n))throw new Error(\"Model JSON is missing 'modelTopology'\");if(!(\"weightsManifest\"in n))throw new Error(\"Model JSON is missing 'weightsManifest'\");let s=_r.getWeightSpecs(n.weightsManifest),i=_r.getModelArtifactsForJSONSync(n,s,o);t=_r.fromMemorySync(i)}else if(\"load\"in r)t=r;else if(\"modelTopology\"in r&&\"weightSpecs\"in r&&\"weightData\"in r)t=_r.fromMemorySync(r);else throw new Error(\"Unknown model format\");let e=new Ph(t);return e.load(),e}function B7(r){return r.endsWith(\"/\")||(r=r+\"/\"),`${r}${L7}${P7}`}var cR=\"4.0.0\";var AR={};Wt(AR,{CSVDataset:()=>Yf,Dataset:()=>Js,FileDataSource:()=>ed,TextLineDataset:()=>Xf,URLDataSource:()=>rd,array:()=>wR,csv:()=>NR,func:()=>TR,generator:()=>kR,microphone:()=>_R,version_data:()=>PN,webcam:()=>ER,zip:()=>CR});var bR=Tl(fh());var gR=Tl(fh());function pR(r,t){return Gb(r,t)}function Gb(r,t,e=new Map,n=new Set){if(r==null)return null;if(typeof Blob==\"function\"&&r instanceof Blob)return r.slice();if(n.has(r))throw new Error(\"Circular references are not supported.\");if(e.has(r))return e.get(r);let o=t(r);if(o.recurse&&o.value!==null)throw new Error(\"A deep map function may not return both a value and recurse=true.\");if(o.recurse)if(vu(r)){let s=Array.isArray(r)?[]:{};n.add(r);for(let i in r){let a=r[i],u=Gb(a,t,e,n);s[i]=u}return n.delete(r),r.__proto__&&(s.__proto__=r.__proto__),s}else throw new Error(`Can't recurse into non-iterable type: ${r}`);else return e.set(r,o.value),o.value}function mR(r,t=xN){return fR(r,t)}function fR(r,t,e=new Set){let n=r[0];if(e.has(n))throw new Error(\"Circular references are not supported.\");let o=t(r);if(o.recurse&&o.value!==null)throw new Error(\"A deep zip function may not return both a value and recurse=true.\");if(o.recurse)if(vu(n)){let s=Array.isArray(n)?[]:{};e.add(n);for(let i in n){let a=r.map(l=>l[i]),u=fR(a,t,e);s[i]=u}return e.delete(n),s}else throw new Error(`Can't recurse into non-iterable type: ${n}`);else return o.value}function xN(r){return r===null?null:vu(r[0])?{value:null,recurse:!0}:{value:r,recurse:!1}}async function Wb(r,t){let e=new Map;Gb(r,t,e);for(let o of Array.from(e.keys())){let s=e.get(o);if(y.isPromise(s)){let i=await s;e.set(o,i)}}return Gb(r,t,e)}function vu(r){let t=!1;if(z().get(\"IS_BROWSER\"))t=r instanceof TextDecoder;else{let{StringDecoder:e}=gN();t=r instanceof e}return r!=null&&!ArrayBuffer.isView(r)&&(Array.isArray(r)||typeof r==\"object\"&&!(r instanceof Ft)&&!(r instanceof Promise)&&!t)}function dR(r){return r==null||V7(r)||Array.isArray(r)||typeof r==\"object\"&&r instanceof Ft||y.isTypedArray(r)}function V7(r){return r===null||typeof r!=\"object\"&&typeof r!=\"function\"}function hR(r){return pR(r,G7)}function G7(r){return r instanceof Ft?{value:r.clone(),recurse:!1}:vu(r)?{value:null,recurse:!0}:{value:r,recurse:!1}}var jf=class{constructor(t){if(this.capacity=t,this.begin=0,this.end=0,t==null)throw new RangeError(\"Can't create a ring buffer of unknown capacity.\");if(t<1)throw new RangeError(\"Can't create ring buffer of capacity < 1.\");this.data=new Array(t),this.doubledCapacity=2*t}wrap(t){for(;t<0;)t+=this.doubledCapacity;return t%this.doubledCapacity}get(t){if(t<0)throw new RangeError(\"Can't get item at a negative index.\");return this.data[t%this.capacity]}set(t,e){if(t<0)throw new RangeError(\"Can't set item at a negative index.\");this.data[t%this.capacity]=e}length(){let t=this.end-this.begin;return t<0&&(t=this.doubledCapacity+t),t}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(t){if(this.isFull())throw new RangeError(\"Ring buffer is full.\");this.set(this.end,t),this.end=this.wrap(this.end+1)}pushAll(t){for(let e of t)this.push(e)}pop(){if(this.isEmpty())throw new RangeError(\"Ring buffer is empty.\");this.end=this.wrap(this.end-1);let t=this.get(this.end);return this.set(this.end,void 0),t}unshift(t){if(this.isFull())throw new RangeError(\"Ring buffer is full.\");this.begin=this.wrap(this.begin-1),this.set(this.begin,t)}shift(){if(this.isEmpty())throw new RangeError(\"Ring buffer is empty.\");let t=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),t}shuffleExcise(t){if(this.isEmpty())throw new RangeError(\"Ring buffer is empty.\");let e=this.wrap(this.begin+t),n=this.get(e);return this.set(e,this.pop()),n}};var Tc=class extends jf{constructor(){super(Tc.INITIAL_CAPACITY)}isFull(){return!1}push(t){super.isFull()&&this.expand(),super.push(t)}unshift(t){super.isFull()&&this.expand(),super.unshift(t)}expand(){let t=this.capacity*2,e=new Array(t),n=this.length();for(let o=0;oe===!0)}rowMajorBatch(t,e=!0){return new SN(this,t,e)}columnMajorBatch(t,e=!0,n=xN){return this.rowMajorBatch(t,e).map(s=>mR(s,n))}concatenate(t,e){return new Hb(AN([this,t]),e)}take(t){return t<0||t==null?this:new IN(this,t)}skip(t){return t<0||t==null?this:new CN(this,t)}prefetch(t){return new qb(this,t)}shuffle(t,e){return new _N(this,t,e)}serial(){return new wN(this)}},yN=class extends Je{constructor(t){super(),this.items=t,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let t=this.items[this.trav];return this.trav++,{value:hR(t),done:!1}}},bN=class extends Je{constructor(t){super(),this.nextFn=t}summary(){return\"Function call\"}async next(){try{return this.nextFn()}catch(t){throw t.message=`Error thrown while iterating through a dataset: ${t.message}`,t}}},wN=class extends Je{constructor(t){super(),this.upstream=t,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()}},CN=class extends Je{constructor(t,e){super(),this.upstream=t,this.maxCount=e,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()}},SN=class extends Je{constructor(t,e,n=!0){super(),this.upstream=t,this.batchSize=e,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(){let t=[];for(;t.length0?{value:t,done:!1}:{value:null,done:!0};t.push(e.value)}return{value:t,done:!1}}},vN=class extends Je{constructor(t,e){super(),this.upstream=t,this.predicate=e,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(;;){let t=await this.upstream.next();if(t.done||this.predicate(t.value))return t;vt(t.value)}}},NN=class extends Je{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> Map`}async next(){let t=await this.upstream.next();if(t.done)return{value:null,done:!0};let e=go.getTensorsInContainer(t.value),n=this.transform(t.value),o=go.getTensorsInContainer(n);for(let s of e)go.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},TN=class extends Je{constructor(t,e){super(),this.upstream=t,this.handler=e,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(t){if(!this.handler(t))return{value:null,done:!0}}}},Ub=class extends Je{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let t=await this.upstream.next();if(t.done)return{value:null,done:!0};let e=go.getTensorsInContainer(t.value),n=await this.transform(t.value),o=go.getTensorsInContainer(n);for(let s of e)go.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},kc=class extends Je{constructor(){super(),this.outputQueue=new Tc,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},kN=class extends kc{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let t=await this.upstream.next();if(t.done)return!1;let e=go.getTensorsInContainer(t.value),n=this.transform(t.value),o=go.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let s of e)go.isTensorInList(s,o)||s.dispose();return!0}},Hb=class extends Je{constructor(t,e){super(),this.baseErrorHandler=e,this.lastRead=null,this.iterator=null,this.moreIterators=t}summary(){return\"TODO: fill in upstream of chained summaries -> Chained\"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(t){if(await t,this.iterator==null){let n=await this.moreIterators.next();if(n.done)return{value:null,done:!0};this.iterator=n.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let e=await this.iterator.next();return e.done?(this.iterator=null,this.readFromChain(t)):e}},fl;(function(r){r[r.FAIL=0]=\"FAIL\",r[r.SHORTEST=1]=\"SHORTEST\",r[r.LONGEST=2]=\"LONGEST\"})(fl||(fl={}));var EN=class extends Je{constructor(t,e=fl.FAIL){super(),this.iterators=t,this.mismatchMode=e,this.count=0,this.currentPromise=null}summary(){return\"{TODO: fill in upstream of zip summaries} -> Zip\"}async nextState(t){await t;let e=0,n=0;function o(i){return i instanceof Je?{value:i.next().then(u=>(e++,u.done&&n++,u.value)),recurse:!1}:{value:null,recurse:!0}}let s=await Wb(this.iterators,o);if(e===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case fl.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case fl.SHORTEST:return{value:null,done:!0};case fl.LONGEST:default:}return this.count++,{value:s,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},qb=class extends Je{constructor(t,e){super(),this.upstream=t,this.bufferSize=e,this.buffer=new jf(e)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let t=this.upstream.next();this.buffer.push(t)}}next(){return this.refill(),this.buffer.shift()}},_N=class extends qb{constructor(t,e,n){super(t,e),this.upstream=t,this.windowSize=e,this.upstreamExhausted=!1,this.random=gR.alea(n||y.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(t){return Math.floor(this.random()*t)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let t=this.chooseIndex(),e=await this.buffer.shuffleExcise(t);if(e.done)this.upstreamExhausted=!0;else return this.refill(),e}return{value:null,done:!0}}};var Js=class{constructor(){this.size=null}batch(t,e=!0){let n=this;y.assert(t>0,()=>`batchSize needs to be positive, but it is\n ${t}`);let o;return this.size===1/0||this.size==null?o=this.size:e?o=Math.ceil(this.size/t):o=Math.floor(this.size/t),kn(async()=>(await n.iterator()).columnMajorBatch(t,e,W7),o)}concatenate(t){let e=this,n;return this.size===1/0||t.size===1/0?n=1/0:this.size!=null&&t.size!=null?n=this.size+t.size:n=null,kn(async()=>(await e.iterator()).concatenate(await t.iterator()),n)}filter(t){let e=this,n;return this.size===1/0?n=1/0:n=null,kn(async()=>(await e.iterator()).filter(o=>B(()=>t(o))),n)}async forEachAsync(t){return(await this.iterator()).forEachAsync(t)}map(t){let e=this;return kn(async()=>(await e.iterator()).map(n=>B(()=>t(n))),this.size)}mapAsync(t){let e=this;return kn(async()=>(await e.iterator()).mapAsync(t),this.size)}prefetch(t){if(t==null)throw new RangeError(\"`Dataset.prefetch()` requires bufferSize to be specified.\");let e=this;return kn(async()=>(await e.iterator()).prefetch(t),this.size)}repeat(t){let e=this,n;return this.size!=null&&t>0?n=this.size*t:t===0?n=0:this.size!=null&&(t===void 0||t<0)?n=1/0:n=null,kn(async()=>{let o=Lh(async()=>({value:await e.iterator(),done:!1}));return xR(o.take(t))},n)}skip(t){let e=this,n;return this.size!=null&&t>=0&&this.size>=t?n=this.size-t:this.size!=null&&(this.size(await e.iterator()).skip(t),n)}shuffle(t,e,n=!0){if(t==null||t<0)throw this.size==null?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)`);let o=this,s=bR.alea(e||y.now().toString());return kn(async()=>{let i=s.int32();return n&&(i+=s.int32()),(await o.iterator()).shuffle(t,i.toString())},this.size)}take(t){let e=this,n;return this.size!=null&&this.size>t?n=t:this.size!=null&&this.size<=t?n=this.size:n=null,kn(async()=>(await e.iterator()).take(t),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()}};Js.MAX_BUFFER_SIZE=1e4;function kn(r,t=null){return new class extends Js{constructor(){super(...arguments),this.size=t}async iterator(){return r()}}}function wR(r){return kn(async()=>AN(r),r.length)}function CR(r){if(!vu(r))throw new Error(\"The argument to zip() must be an object or array.\");let t;if(Array.isArray(r))for(let e=0;e{let e=await Wb(r,n=>{if(n instanceof Js)return{value:n.iterator(),recurse:!1};if(vu(n))return{value:null,recurse:!0};throw new Error(\"Leaves of the structure passed to zip() must be Datasets, not primitives.\")});return yR(e,fl.SHORTEST)},t)}function W7(r){if(r===null)return null;let t=r[0];return dR(t)?{value:U7(r),recurse:!1}:{value:null,recurse:!0}}function U7(r){if(r.length===0)throw new Error(\"Can't make a batch of zero elements.\");return r[0]instanceof Ft?nr(r):ur(r)}var Xf=class extends Js{constructor(t){super(),this.input=t}async iterator(){return(await this.input.iterator()).decodeUTF8().split(`\n`).map(o=>(o.endsWith(\"\\r\")&&(o=o.slice(0,-1)),o))}};var Kb='\"',Mh=Symbol(\"out\"),IR=Symbol(\"field\"),jb=Symbol(\"quote\"),$N=Symbol(\"quoteafterquote\"),SR=Symbol(\"quoteinquote\"),Yf=class extends Js{constructor(t,e){super(),this.input=t,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=\",\",this.delimWhitespace=!1,this.base=new Xf(t),e||(e={}),this.hasHeader=e.hasHeader!==!1,this.fullColumnNames=e.columnNames,this.columnConfigs=e.columnConfigs,this.configuredColumnsOnly=e.configuredColumnsOnly,e.delimWhitespace?(y.assert(e.delimiter==null,()=>\"Delimiter should not be provided when delimWhitespace is true.\"),this.delimWhitespace=!0,this.delimiter=\" \"):this.delimiter=e.delimiter?e.delimiter:\",\"}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let t=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!t)throw new Error(\"Column names must be provided if there is no header line.\");this.fullColumnNames&&t&&y.assert(t.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 (\"+t.length.toString()+\").\"),this.fullColumnNames||(this.fullColumnNames=t);let e=this.fullColumnNames.reduce((o,s)=>(o[s]=o[s]+1||1,o),{}),n=Object.keys(e).filter(o=>e[o]>1);if(y.assert(n.length===0,()=>\"Duplicate column names found: \"+n.toString()),this.columnConfigs){for(let o of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(o)===-1)throw new Error('The key \"'+o+'\" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+\").\")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let e=await(await this.base.iterator()).next();if(e.done)throw new Error(\"No data was found for CSV parsing.\");let n=e.value;return this.parseRow(n,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let t=await this.base.iterator();return this.hasHeader&&(t=t.skip(1)),t.map(e=>this.makeDataElement(e))}makeDataElement(t){let e=this.parseRow(t),n={},o={};for(let s=0;s14||!Number.isInteger(e))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=t.numFramesPerSpectrogram||43,this.sampleRateHz=t.sampleRateHz,this.columnTruncateLength=t.columnTruncateLength||this.fftSize,this.audioTrackConstraints=t.audioTrackConstraints,this.smoothingTimeConstant=t.smoothingTimeConstant||0,this.includeSpectrogram=t.includeSpectrogram!==!1,this.includeWaveform=t.includeWaveform===!0,!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(t={}){if(!z().get(\"IS_BROWSER\"))throw new Error(\"microphone API is only supported in browser environment.\");let e=new Zf(t);return await e.start(),e}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(n){throw new Error(`Error thrown while initializing video stream: ${n.message}`)}if(!this.stream)throw new Error(\"Could not obtain audio from microphone.\");let t=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new t,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let e=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,e.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 t,e,n=await this.getAudioData();if(this.includeSpectrogram){let o=this.flattenQueue(n.freqDataQueue);t=this.getTensorFromAudioDataArray(o,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let o=this.flattenQueue(n.timeDataQueue);e=this.getTensorFromAudioDataArray(o,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:t,waveform:e},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let t=[],e=[],n=0;return new Promise(o=>{let s=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&o({freqDataQueue:t,timeDataQueue:e}),t.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),e.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(s),o({freqDataQueue:t,timeDataQueue:e}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&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(t){let e=t[0].length,n=new Float32Array(t.length*e);return t.forEach((o,s)=>n.set(o,s*e)),n}getTensorFromAudioDataArray(t,e){let n=new Float32Array(y.sizeFromShape(e));return n.set(t,n.length-t.length),ur(n,e)}};var Jf=class extends Je{constructor(t,e){if(super(),this.webcamVideoElement=t,this.webcamConfig=e,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Me([0],\"int32\"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,o=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,s=(1-n)/2,i=(1-o)/2,a=s+n,u=o+i;this.cropBox=Vs([i,s,u,a],[1,4])}else this.cropBox=Vs([0,0,1,1],[1,4])}summary(){return\"webcam\"}static async create(t,e={}){if(!z().get(\"IS_BROWSER\"))throw new Error(\"tf.data.webcam is only supported in browser environment.\");if(!t){if(t=document.createElement(\"video\"),!e.resizeWidth||!e.resizeHeight)throw new Error(\"Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.\");t.width=e.resizeWidth,t.height=e.resizeHeight}let n=new Jf(t,e);return await n.start(),n}async start(){this.webcamConfig.facingMode&&y.assert(this.webcamConfig.facingMode===\"user\"||this.webcamConfig.facingMode===\"environment\",()=>`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(t){throw t.message=`Error thrown while initializing video stream: ${t.message}`,t}if(!this.stream)throw new Error(\"Could not obtain video from webcam.\");try{this.webcamVideoElement.srcObject=this.stream}catch(t){console.log(t),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(t=>{this.webcamVideoElement.onloadedmetadata=()=>{t()}})}async next(){if(this.isClosed)return{value:null,done:!0};let t;try{t=nx.fromPixels(this.webcamVideoElement)}catch(e){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(e)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(t),done:!1}}catch(e){throw new Error(`Error thrown cropping the video: ${e.message}`)}finally{t.dispose()}else return{value:t,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(t){return B(()=>{let e=rr(J(t,\"float32\"),0),n;n=Gs.cropAndResize(e,this.cropBox,this.cropBoxInd,this.cropSize,\"bilinear\");let o=n.shape;return R(n,o.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.\")}};var Qf=class{};var zh=class extends Je{split(t){return new DN(this,t)}},DN=class extends zh{constructor(t,e){super(),this.upstream=t,this.impl=new RN(t,e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},RN=class extends kc{constructor(t,e){super(),this.upstream=t,this.separator=e,this.carryover=\"\"}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let t=await this.upstream.next();if(t.done)return this.carryover===\"\"?!1:(this.outputQueue.push(this.carryover),this.carryover=\"\",!0);let e=t.value.split(this.separator);e[0]=this.carryover+e[0];for(let n of e.slice(0,-1))this.outputQueue.push(n);return this.carryover=e[e.length-1],!0}};var Xb=class extends Je{decodeUTF8(){return new FN(this)}},FN=class extends zh{constructor(t){super(),this.upstream=t,this.impl=new ON(t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},ON=class extends kc{constructor(t){if(super(),this.upstream=t,z().get(\"IS_BROWSER\"))this.decoder=new TextDecoder(\"utf-8\");else{let{StringDecoder:e}=gN();this.decoder=new e(\"utf8\")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let t=await this.upstream.next(),e;if(t.done)return!1;e=t.value;let n;return z().get(\"IS_BROWSER\")?n=this.decoder.decode(e,{stream:!0}):n=this.decoder.write(Buffer.from(e.buffer)),this.outputQueue.push(n),!0}};var td=class extends Xb{constructor(t,e={}){super(),this.file=t,this.options=e,y.assert(t instanceof Uint8Array||(z().get(\"IS_BROWSER\")?t instanceof File||t instanceof Blob:!1),()=>\"FileChunkIterator only supports File, Blob and Uint8Array right now.\"),this.offset=e.offset||0,this.chunkSize=e.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((e,n)=>{let o=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,o)));else{let s=new FileReader;s.onload=a=>{let u=s.result;if(u instanceof ArrayBuffer&&(u=new Uint8Array(u)),!(u instanceof Uint8Array))return n(new TypeError(\"FileReader returned unknown type.\"));e(u)},s.onabort=a=>n(new Error(\"Aborted\")),s.onerror=a=>n(new Error(a.type));let i=this.file.slice(this.offset,o);s.readAsArrayBuffer(i)}this.offset=o}),done:!1}}};async function vR(r,t={},e){let n,o;typeof r==\"string\"?n=r:(n=r.url,o=H7(r));let s=await(e||y.fetch)(n,o);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new td(i,t)}else throw new Error(s.statusText)}var H7=r=>({method:r.method,headers:r.headers,body:r.body,mode:r.mode,credentials:r.credentials,cache:r.cache,redirect:r.redirect,referrer:r.referrer,integrity:r.integrity});function Yb(r){return typeof r==\"string\"&&r.slice(0,7)===\"file://\"}var ed=class extends Qf{constructor(t,e={}){super(),this.input=t,this.options=e}async iterator(){if(Yb(this.input)&&z().get(\"IS_NODE\")){let t=Zb();this.input=t.readFileSync(this.input.slice(7))}return new td(this.input,this.options)}};var rd=class extends Qf{constructor(t,e={}){super(),this.url=t,this.fileOptions=e}async iterator(){return Yb(this.url)?new ed(this.url,this.fileOptions).iterator():vR(this.url,this.fileOptions)}};function NR(r,t={}){return new Yf(new rd(r),t)}function TR(r){let t=Lh(r);return kn(async()=>t)}function kR(r){return kn(async()=>{let t=await r();return Lh(()=>t.next())})}async function ER(r,t){return Jf.create(r,t)}async function _R(r){return Zf.create(r)}var PN=\"4.0.0\";function tt(r,t){Array.isArray(r)||(r=[r]),r.forEach(e=>{e!=null&&y.assert(e.dtype!==\"complex64\",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var q7=Ur.whereImpl,Nu=class extends zo{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new ra(this,Pn())}nextDataId(){return Nu.nextDataId++}write(t,e,n){this.firstUse&&(this.firstUse=!1,z().get(\"IS_NODE\")&&v.warn(`\n============================\nHi, looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, visit https://github.com/tensorflow/tfjs-node for more details. \n============================`));let o={id:this.nextDataId()};return this.data.set(o,{values:t,dtype:n,refCount:1}),o}makeTensorInfo(t,e,n){let o;if(e===\"string\"&&n!=null&&n.length>0&&y.isString(n[0])){let s=n.map(i=>y.encodeString(i));o=this.write(s,t,e)}else o=this.write(n,t,e);return{dataId:o,shape:t,dtype:e}}refCount(t){return this.data.has(t)?this.data.get(t).refCount:0}incRef(t){let e=this.data.get(t);e.refCount++}decRef(t){if(this.data.has(t)){let e=this.data.get(t);e.refCount--}}move(t,e,n,o,s){this.data.set(t,{values:e,dtype:o,refCount:s})}numDataIds(){return this.data.numDataIds()}async read(t){return this.readSync(t)}readSync(t){let{dtype:e,complexTensorInfos:n}=this.data.get(t);if(e===\"complex64\"){let o=this.readSync(n.real.dataId),s=this.readSync(n.imag.dataId);return v.mergeRealAndImagArrays(o,s)}return this.data.get(t).values}bufferSync(t){let e=this.readSync(t.dataId);if(t.dtype===\"string\")try{let n=e.map(o=>y.decodeString(o));return wt(t.shape,t.dtype,n)}catch(n){throw new Error(\"Failed to decode encoded string bytes into utf-8\")}return wt(t.shape,t.dtype,e)}makeOutput(t,e,n){return Pn().makeTensorFromTensorInfo(this.makeTensorInfo(e,n,t),this)}disposeData(t,e=!1){if(this.data.has(t)){if(this.data.get(t).refCount--,!e&&this.data.get(t).refCount>0)return!1;let{complexTensorInfos:n}=this.data.get(t);n!=null&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(t)}return!0}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}async time(t){let e=y.now();return t(),{kernelMs:y.now()-e}}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(t){tt([t],\"where\");let e=this.readSync(t.dataId);return q7(t.shape,e)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};Nu.nextDataId=0;var mw={};Wt(mw,{addImpl:()=>zN,bincountImpl:()=>sd,bincountReduceImpl:()=>Jb,castImpl:()=>MN,ceilImpl:()=>BN,concatImpl:()=>Ec,equalImpl:()=>VN,expImpl:()=>WN,expm1Impl:()=>HN,floorImpl:()=>qN,gatherNdImpl:()=>Qb,gatherV2Impl:()=>tw,greaterEqualImpl:()=>jN,greaterImpl:()=>KN,lessEqualImpl:()=>YN,lessImpl:()=>XN,linSpaceImpl:()=>ew,logImpl:()=>ZN,maxImpl:()=>rw,maximumImpl:()=>JN,minimumImpl:()=>QN,multiplyImpl:()=>Bh,negImpl:()=>tT,notEqualImpl:()=>eT,prodImpl:()=>rT,raggedGatherImpl:()=>nw,raggedRangeImpl:()=>ow,raggedTensorToTensorImpl:()=>sw,rangeImpl:()=>Ac,rsqrtImpl:()=>nT,scatterImpl:()=>dl,sigmoidImpl:()=>sF,simpleAbsImpl:()=>LN,sliceImpl:()=>$c,sparseFillEmptyRowsImpl:()=>iw,sparseReshapeImpl:()=>aw,sparseSegmentReductionImpl:()=>ld,sqrtImpl:()=>lF,squaredDifferenceImpl:()=>sT,stridedSliceImpl:()=>lw,stringNGramsImpl:()=>Dc,stringSplitImpl:()=>Rc,stringToHashBucketFastImpl:()=>Fc,subImpl:()=>aT,tileImpl:()=>uw,topKImpl:()=>cw,transposeImpl:()=>id,uniqueImpl:()=>pw});function LN(r){let t=new Float32Array(r.length);for(let e=0;e{let{x:t}=r.inputs,e=r.backend;tt(t,\"abs\");let n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId).values;return n=LN(o),e.makeOutput(n,t.shape,t.dtype)},$R={kernelName:ii,backendName:\"cpu\",kernelFunc:K7};function Qt(r){return(t,e,n,o,s)=>{let i=v.assertAndGetBroadcastShape(t,e),a=i.length,u=y.computeStrides(i),l=y.sizeFromShape(i),c=y.getTypedArrayFromDType(s,l),p=t.length,m=e.length,f=y.computeStrides(t),d=y.computeStrides(e),h=v.getBroadcastDims(t,i),g=v.getBroadcastDims(e,i);if(h.length+g.length===0)for(let x=0;xw[A]=0);let C=y.locToIndex(w,p,f),N=b.slice(-m);g.forEach(A=>N[A]=0);let _=y.locToIndex(N,m,d);c[x]=r(n[C],o[_])}return[c,i]}}function wr(r){let{inputs:t,backend:e}=r,{real:n,imag:o}=t,s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,a=e.makeTensorInfo(n.shape,\"complex64\"),u=e.data.get(a.dataId);return u.complexTensorInfos={real:e.makeTensorInfo(n.shape,\"float32\",s),imag:e.makeTensorInfo(o.shape,\"float32\",i)},a}var DR={kernelName:pp,backendName:\"cpu\",kernelFunc:wr};function nd(r,t,e=\"float32\"){if(e===\"complex64\"){let o=nd(r,t,\"float32\"),s=nd(r,t,\"float32\");return wr({inputs:{real:o,imag:s},backend:r})}let n=y.makeZerosTypedArray(y.sizeFromShape(t),e);return r.makeTensorInfo(t,e,n)}function Kr(r){let{inputs:t,backend:e}=r,{x:n}=t;return e.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}var RR={kernelName:co,backendName:\"cpu\",kernelFunc:Kr};function Ao(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.data.get(n.dataId).complexTensorInfos.real,s=e.data.get(o.dataId).values;return e.makeTensorInfo(o.shape,o.dtype,s)}var FR={kernelName:Rp,backendName:\"cpu\",kernelFunc:Ao};function MN(r,t,e,n){if(n===\"int32\"){let o=Int32Array.from(r);return[t,\"int32\",o]}if(n===\"bool\"){let o=y.toTypedArray([0],e),[s,i]=Qt((a,u)=>a!==u?1:0)(t,[],r,o,\"bool\");return[i,\"bool\",s]}throw new Error(`Error in Cast: failed to cast ${e} to ${n}`)}function $o(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s===\"complex64\"){if(o.dtype===\"complex64\")return Kr({inputs:{x:o},backend:e});let c=nd(e,o.shape,o.dtype),p=$o({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}}),m=wr({inputs:{real:p,imag:c},backend:e});return e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),m}if(o.dtype===\"complex64\"){let c=Ao({inputs:{input:o},backend:e}),p=$o({inputs:{x:c},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(c),p}if(!y.hasEncodingLoss(o.dtype,s)){let c=Kr({inputs:{x:o},backend:e});return{dataId:c.dataId,shape:c.shape,dtype:s}}let i=e.data.get(o.dataId).values,[a,u,l]=MN(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}var OR={kernelName:lo,backendName:\"cpu\",kernelFunc:$o};function oe(r,t,e,n){return e==null?({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;tt([i,a],r);let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=i.dtype===\"string\"?v.fromUint8ToStringArray(l):l,m=i.dtype===\"string\"?v.fromUint8ToStringArray(c):c,f=n||i.dtype,[d,h]=t(i.shape,a.shape,p,m,f);return u.makeTensorInfo(h,f,d)}:({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;if(i.dtype===\"complex64\"||a.dtype===\"complex64\"){let l=$o({inputs:{x:i},backend:u,attrs:{dtype:\"complex64\"}}),c=u.data.get(l.dataId),p=c.complexTensorInfos.real,m=c.complexTensorInfos.imag,f=u.data.get(p.dataId).values,d=u.data.get(m.dataId).values,h=$o({inputs:{x:a},backend:u,attrs:{dtype:\"complex64\"}}),g=u.data.get(h.dataId),x=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,w=u.data.get(x.dataId).values,C=u.data.get(b.dataId).values,[N,_,A]=e(i.shape,a.shape,f,d,w,C),$=u.makeTensorInfo(A,\"float32\",N),F=u.makeTensorInfo(A,\"float32\",_),P=wr({inputs:{real:$,imag:F},backend:u});return u.disposeIntermediateTensorInfo(l),u.disposeIntermediateTensorInfo(h),u.disposeIntermediateTensorInfo($),u.disposeIntermediateTensorInfo(F),P}else{let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=n||i.dtype,[m,f]=t(i.shape,a.shape,l,c,p);return u.makeTensorInfo(f,p,m)}}}function od(r){return(t,e,n,o,s,i)=>{let a=v.assertAndGetBroadcastShape(t,e),u=y.sizeFromShape(a),l=a.length,c=y.computeStrides(a),p=y.getTypedArrayFromDType(\"float32\",u),m=y.getTypedArrayFromDType(\"float32\",u),f=v.getBroadcastDims(t,a),d=v.getBroadcastDims(e,a),h=v.mergeRealAndImagArrays(n,o),g=v.mergeRealAndImagArrays(s,i),x=t.length,b=y.computeStrides(t),w=e.length,C=y.computeStrides(e);if(f.length+d.length===0)for(let N=0;NA[G]=0);let $=y.locToIndex(A,x,b),F=_.slice(-w);d.forEach(G=>F[G]=0);let P=y.locToIndex(F,w,C),V=r(h[$*2],h[$*2+1],g[P*2],g[P*2+1]);p[N]=V.real,m[N]=V.imag}return[p,m,a]}}var zN=Qt((r,t)=>r+t),j7=od((r,t,e,n)=>({real:r+e,imag:t+n})),Ki=oe(Zn,zN,j7),PR={kernelName:Zn,backendName:\"cpu\",kernelFunc:Ki};function sd(r,t,e,n,o){let s=y.sizeFromShape(n),i=y.makeZerosTypedArray(o,e);for(let a=0;a=o||(s>0?i[u]+=t[a]:i[u]+=1)}return i}function Jb(r,t,e,n=!1){let o=r.shape[0],s=r.shape[1],i=wt([o,e],t.dtype);for(let a=0;a=e||(n?i.set(1,a,l):t.size>0?i.set(i.get(a,l)+t.get(a,u),a,l):i.set(i.get(a,l)+1,a,l))}return i}function yn(r){return(t,e,n)=>{let o=y.getTypedArrayFromDType(e,t.length);for(let s=0;s{let{x:i}=n;if(tt(i,r),i.dtype===\"string\"||e===\"string\")throw new Error(\"unaryKernelFunc does not support string input/output\");let a=s,u=a.data.get(i.dataId).values,l=y.sizeFromShape(i.shape),c=e||i.dtype,p=y.getArrayFromDType(c,l);for(let m=0;m{let{x:i}=n;if(tt(i,r),i.dtype===\"string\"||e===\"string\")throw new Error(\"unaryKernelFunc does not support string input/output\");let a=s,u=a.data.get(i.dataId).values,l=e||i.dtype,c=t(u,l,o);return a.makeTensorInfo(i.shape,l,c)}}var BN=yn(r=>Math.ceil(r)),X7=Do(qo,BN),LR={kernelName:qo,backendName:\"cpu\",kernelFunc:X7};function Ec(r,t,e,n){let o=y.getArrayFromDType(e,y.sizeFromShape(t));if(n&&e!==\"string\"){let s=0;r.forEach(i=>{let a=y.sizeFromShape(i.shape);o.set(i.vals,s),s+=a})}else{let s=0;r.forEach(i=>{let a=e===\"string\"?v.fromUint8ToStringArray(i.vals):i.vals,u=0;for(let l=0;lr===t?1:0),GN=oe(xa,VN,null,\"bool\"),MR={kernelName:xa,backendName:\"cpu\",kernelFunc:GN};var WN=yn(r=>Math.exp(r)),UN=Do(es,WN,\"float32\"),zR={kernelName:es,backendName:\"cpu\",kernelFunc:UN};var HN=yn(r=>Math.expm1(r)),Y7=Do(ya,HN),BR={kernelName:ya,backendName:\"cpu\",kernelFunc:Y7};var qN=yn(r=>Math.floor(r)),Z7=Do(rs,qN),VR={kernelName:rs,backendName:\"cpu\",kernelFunc:Z7};function Qb(r,t,e,n,o,s,i,a,u){let l=wt([n,s],e);for(let c=0;c=u/s)throw new Error(`Invalid indices: ${p} does not index into ${a}`);for(let f=0;fr>t?1:0),J7=oe(Ca,KN,null,\"bool\"),GR={kernelName:Ca,backendName:\"cpu\",kernelFunc:J7};var jN=Qt((r,t)=>r>=t?1:0),Q7=oe(ss,jN,null,\"bool\"),WR={kernelName:ss,backendName:\"cpu\",kernelFunc:Q7};var XN=Qt((r,t)=>rr<=t?1:0),eJ=oe(Ta,YN,null,\"bool\"),HR={kernelName:Ta,backendName:\"cpu\",kernelFunc:eJ};function ew(r,t,e){let n=(t-r)/(e-1),o=y.makeZerosTypedArray(e,\"float32\");o[0]=r;for(let s=1;sMath.log(r)),rJ=Do(as,ZN),qR={kernelName:as,backendName:\"cpu\",kernelFunc:rJ};function rw(r,t,e,n){let o=y.getTypedArrayFromDType(n,y.sizeFromShape(e));for(let s=0;sa)&&(a=l)}o[s]=a}return o}var JN=Qt((r,t)=>Math.max(r,t)),nJ=oe(us,JN),KR={kernelName:us,backendName:\"cpu\",kernelFunc:nJ};var QN=Qt((r,t)=>Math.min(r,t)),oJ=oe(fs,QN),jR={kernelName:fs,backendName:\"cpu\",kernelFunc:oJ};var Bh=Qt((r,t)=>r*t),sJ=od((r,t,e,n)=>({real:r*e-t*n,imag:r*n+t*e})),_c=oe(hs,Bh,sJ),XR={kernelName:hs,backendName:\"cpu\",kernelFunc:_c};function tT(r,t,e){let n=y.createScalarValue(-1,e);return Bh([],t,n,r,e)}function iJ(r){let{inputs:t,backend:e}=r,{x:n}=t;tt(n,\"neg\");let o=e.data.get(n.dataId).values,[s,i]=tT(o,n.shape,n.dtype);return e.makeTensorInfo(i,n.dtype,s)}var YR={kernelName:pi,backendName:\"cpu\",kernelFunc:iJ};var eT=Qt((r,t)=>r!==t?1:0),aJ=oe(Da,eT,null,\"bool\"),ZR={kernelName:Da,backendName:\"cpu\",kernelFunc:aJ};function id(r,t,e,n,o){let s=t.length,i=y.sizeFromShape(t),a=y.computeStrides(t),u=y.computeStrides(o),l=y.getTypedArrayFromDType(e,y.sizeFromShape(o));for(let c=0;ce.disposeIntermediateTensorInfo(b)),e.makeTensorInfo(x,g,d)}var QR={kernelName:ws,backendName:\"cpu\",kernelFunc:lJ};function uJ(r,t,e){r.forEach((n,o)=>{if(n<0||n>=e){let s=y.indexToLoc(o,t.length,y.computeStrides(t)).join(\",\");throw new Error(`indices[${s}] = ${n} is not in [0, ${e})`)}})}function cJ(r,t){for(let e=0;eo)throw new Error(\"Ragged splits must not point past values\");for(let s=1;sn[s])throw new Error(\"Ragged splits must be sorted in ascending order\")}}function pJ(r,t,e,n){let o=[],s=0,i=t.length-1+e.length,a=new Array(i).fill(null).map(()=>[0]);cJ(e,n);let u=1;for(let l=0;l=0){let h=a[d],g=h[h.length-1]-f[c];for(let x=c;xo[i]=s)}return t}function tF(r,t){let e=r.slice(0,t);for(;e.length1)throw new Error(\"starts must be a scalar or vector\");if(o.length>1)throw new Error(\"limits must be a scalar or vector\");if(i.length>1)throw new Error(\"deltas must be a scalar or vector\");let a=t.length===0,u=o.length===0,l=i.length===0,c=[];a||c.push(t[0]),u||c.push(o[0]),l||c.push(i[0]);for(let g=1;g0&&bx)C=0;else if(C=Math.ceil(Math.abs((b-x)/w)),C>eF)throw new Error(`Requires ((limit - start) / delta) <= ${eF}`);m[g+1]=m[g]+C}let f=m[p],d=y.getArrayFromDType(e,f),h=0;for(let g=0;gn&&(n=s)}return n}static getMaxWidthValueRowID(t){let e=t.length;if(e===0)return 0;let n=0,o=t[0],s=0;for(let i=1;i\"Final length of result must be equal to firstDimension.\"),s}calculateOutputIndexRowSplit(t,e,n,o){let s=t.length,i=[];for(let a=0;a0&&i.length!==t[s-1])throw new Error(\"Invalid row split size.\");return i}calculateOutputIndexValueRowID(t,e,n,o){let s=t.length,i=[];if(s===0)return[];let a=0,u=t[0];if(u>=e.length)throw new Error(`Got currentValueRowId=${u}, which is not less than ${e.length}`);let l=e[u];i.push(l);for(let c=1;c=0&&(++a,a=e.length)throw new Error(`Got nextValueRowId=${p} which is not less than ${e.length}`);l=e[p]}i.push(l)}if(i.length!==t.length)throw new Error(\"Invalid row ids.\");return i}calculateOutputIndex(t,e,n,o){let s=this.getRowPartitionTensor(t),i=this.getRowPartitionTypeByDimension(t);switch(i){case Ro.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,e,n,o);case Ro.ROW_SPLITS:if(s.length-1>e.length)throw new Error(`Row partition size is greater than output size: ${s.length-1} > ${e.length}`);return this.calculateOutputIndexRowSplit(s,e,n,o);default:throw new Error(`Unsupported partition type: ${Ro[i]}`)}}getFirstDimensionSize(){let t=this.rowPartitionValues[0];if(this.rowPartitionTypes.length===0)throw new Error(\"No row_partition_types given.\");let e=this.rowPartitionTypes[0];switch(e){case Ro.FIRST_DIM_SIZE:return t[0];case Ro.VALUE_ROWIDS:throw new Error(\"Cannot handle VALUE_ROWIDS in first dimension.\");case Ro.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Ro[e]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error(\"Invalid first partition input. Tensor requires at least one element.\");let e=this.getFirstDimensionSize(),n=this.calculateOutputSize(e),o=new Array(this.raggedRank+1);o[o.length-1]=1;for(let u=o.length-2;u>=0;--u)o[u]=o[u+1]*n[u+1];let s=nF(n,!1),i=y.getArrayFromDType(this.valuesDType,y.sizeFromShape(s));if(o[0]*n[0]>0){let u=this.calculateFirstParentOutputIndex(e,o[0],n[0]);for(let l=1;l<=this.raggedRank;++l)u=this.calculateOutputIndex(l-1,u,o[l],n[l]);this.setOutput(this.raggedRank,u,i,s)}return[s,i]}setOutput(t,e,n,o){if(n.length===0)return;let s=this.values,i=n,a=o.slice();a=a.slice(t+1);let u=y.sizeFromShape(a),l=e.length,c=this.defaultValue;if(c.length!==u&&c.length!==1){let d=this.defaultValueShape;B(()=>{let h=R(c,d);c=Ri(h,a).dataSync()})}let p=0,m=0,f=0;for(let d=0;d<=l;++d){let h=d=l){let g=n.length;h=Math.floor(g/u)}if(h>f)if(this.defaultValue.length===1)i.subarray(f*u,h*u).fill(this.defaultValue[0]),f=h;else for(;h>f;){let g=i.slice(f*u);rF(g,c,u),++f}h<0?(p=d+1,m=f):(p=d,m=f,f=m+1)}}};function rF(r,t,e){for(let n=0;n= 0`);if(n<-1)throw new Error(`Dimension ${n} must be >= -1`);n=-1}e.push(n)}return e}function sw(r,t,e,n,o,s,i,a,u,l){return new ad(r,t,e,n,o,s,i,a,u,l).compute()}function Ac(r,t,e,n){let o=r===t,s=r1;if(o||s||i)return y.makeZerosTypedArray(0,n);let a=Math.abs(Math.ceil((t-r)/e)),u=y.makeZerosTypedArray(a,n);t1/Math.sqrt(r)),hJ=Do(ks,nT),oF={kernelName:ks,backendName:\"cpu\",kernelFunc:hJ};function dl(r,t,e,n,o,s,i,a,u,l){let c=[n/o,o],p=r.values,m=t.values;if(n===0)return wt(e,t.dtype);let f=wt(c,t.dtype);typeof u==\"string\"||typeof u==\"number\"?f.values.fill(u):typeof u==\"boolean\"&&f.values.fill(+u);for(let d=0;d=n/o)throw new Error(`Invalid indices: ${h} does not index into ${e}`);for(let x=0;x1/(1+Math.exp(-r))),oT=kt(_s,r=>1/(1+Math.exp(-r))),iF={kernelName:_s,backendName:\"cpu\",kernelFunc:oT};function $c(r,t,e,n,o){let s=Le.isSliceContinous(n,t,e),i=y.sizeFromShape(e),a=y.computeStrides(n);if(s){let p=Le.computeFlatOffset(t,a);return o===\"string\"?r.slice(p,p+i):r.subarray(p,p+i)}let u=o===\"string\"?v.fromUint8ToStringArray(r):r,l=wt(n,o,u),c=wt(e,o);for(let p=0;pd+t[h]);c.set(l.get(...f),...m)}return o===\"string\"?v.fromStringArrayToUint8(c.values):c.values}function Fo(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n;tt(o,\"slice\");let[a,u]=Le.parseSliceParams(o,s,i);Le.assertParamsValid(o,a,u);let l=e.data.get(o.dataId).values,c=$c(l,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,c)}var aF={kernelName:gi,backendName:\"cpu\",kernelFunc:Fo};function iw(r,t,e,n,o,s,i){let a=t[0],u=s[0],l=new Array(u),c=new Array(a),p=t[1];if(u===0){if(a!==0)throw new Error(v.getSparseFillEmptyRowsIndicesDenseShapeMismatch(a));let g=y.getArrayFromDType(e,0),x=y.getArrayFromDType(o,0);return[g,[0,p],x,l,c]}let m=!0,f=0,d=new Array(u).fill(0);for(let g=0;g=u)throw new Error(v.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,x,u));++d[x],m=m&&x>=f,f=x}let h=!0;for(let g=0;g0&&(d[g]+=d[g-1])}if(h&&m){let g=r,x=n;for(let b=0;b0){f[m-1]=1;for(let g=m-2;g>=0;--g)f[g]=f[g+1]*n[g+1]}let d=[];if(a>0){d[a-1]=1;for(let g=a-2;g>=0;--g)d[g]=d[g+1]*u[g+1]}let h=y.getArrayFromDType(e,i*a);for(let g=0;g0?o[a-1]+1:0;if(p<0)throw new Error(v.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=t.slice();m[0]=p;let f=m.reduce((w,C)=>w*C,1),d=y.getArrayFromDType(e,f);if(a===0)return p>0&&d.fill(i),[d,m];if(p<=0)throw new Error(v.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let h=0,g=1,x=0,b=o[h];for(;;){let w=0;if(g=w)throw new Error(v.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(v.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>x&&d.fill(i,x*l,b*l);for(let C=h;C=u[0])throw new Error(v.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(C,n[C],u[0]));for(let _=0;_a)break}return xMath.sqrt(r)),gJ=kt(As,r=>Math.sqrt(r)),uF={kernelName:As,backendName:\"cpu\",kernelFunc:gJ};var sT=Qt((r,t)=>{let e=r-t;return e*e}),xJ=oe(Rs,sT),cF={kernelName:Rs,backendName:\"cpu\",kernelFunc:xJ};function lw(r,t,e,n){let o=wt(r,t.dtype);for(let s=0;s0?0:a-u),f=0;f+=l*this.leftPad.length;for(let b=0;bb.forEach(w=>h[g++]=w);for(let b=0;b0){x(t[m+p-1]);for(let b=0;b0){let u=e[0];if(u!==0)throw new Error(`First split value must be 0, got ${u}`);for(let l=1;l=u;if(c=c&&e[l]<=n,!c)throw new Error(`Invalid split value ${e[l]}, must be in [${u}, ${n}]`);u=e[l]}if(u!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${u}`)}let s=o-1,i=y.getArrayFromDType(\"int32\",o);if(n===0||o===0){let u=new Array(n);for(let l=0;l<=s;++l)i[l]=0;return[u,i]}i[0]=0;for(let u=1;u<=s;++u){let l=e[u]-e[u-1],c=0;this.nGramWidths.forEach(p=>{c+=this.getNumNGrams(l,p)}),this.preserveShort&&l>0&&c===0&&(c=1),i[u]=i[u-1]+c}let a=new Array(i[s]);for(let u=0;u{let m=e[u+1]-e[u],f=this.getNumNGrams(m,p);this.createNGrams(t,l,a,c,f,p),c+=f}),this.preserveShort&&c===i[u]){let p=e[u+1]-e[u];if(p===0)continue;let m=p+2*this.padWidth,f=1;this.createNGrams(t,l,a,c,f,m)}}return[a,i]}};function Dc(r,t,e,n,o,s,i,a){return new iT(e,n,o,s,i,a).compute(r,t)}function yJ(r,t,e,n){if(!r.length)return;if(t.length===0){for(let s=0;sr-t),bJ=od((r,t,e,n)=>({real:r-e,imag:t-n})),Vh=oe(Fs,aT,bJ),pF={kernelName:Fs,backendName:\"cpu\",kernelFunc:Vh};function uw(r,t){let e=new Array(r.rank);for(let o=0;o{let e=t.value-r.value;return e===0?r.index-t.index:e};function mF(r,t,e=0,n=r.length-1){for(;n>e;){if(n-e>600){let a=n-e+1,u=t-e+1,l=Math.log(a),c=.5*Math.exp(2*l/3),p=.5*Math.sqrt(l*c*(a-c)/a)*Math.sign(u-a/2),m=Math.max(e,Math.floor(t-u*c/a+p)),f=Math.min(n,Math.floor(t+(a-u)*c/a+p));mF(r,t,m,f)}let o=r[t],s=e,i=n;for(y.swap(r,e,t),Gh(r[n],o)>0&&y.swap(r,e,n);s0;)i=i-1}Gh(r[e],o)===0?y.swap(r,e,i):(i=i+1,y.swap(r,i,n)),i<=t&&(e=i+1),t<=i&&(n=i-1)}}function cw(r,t,e,n,o){let s=t[t.length-1],[i,a]=[r.length/s,s],u=y.getTypedArrayFromDType(e,i*n),l=y.getTypedArrayFromDType(\"int32\",i*n);for(let p=0;pd[w]={value:b,index:w}),n{for(let g=0;gnew Nu,1);var lT=kt(ts,r=>r>=0?r:Math.exp(r)-1),fF={kernelName:ts,backendName:\"cpu\",kernelFunc:lT};function uT(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n;tt([o],\"leakyRelu\");let i=y.sizeFromShape(o.shape),a=e.data.get(o.dataId).values,u=y.getTypedArrayFromDType(\"float32\",i);for(let l=0;lr<0?t*r:r);function cT(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t;tt([n,o],\"prelu\");let s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,[a,u]=CJ(n.shape,o.shape,s,i,\"float32\");return e.makeTensorInfo(u,\"float32\",a)}var hF={kernelName:bs,backendName:\"cpu\",kernelFunc:cT};var pT=kt(Cs,r=>Math.max(0,r)),gF={kernelName:Cs,backendName:\"cpu\",kernelFunc:pT};var mT=kt(vs,r=>Math.min(Math.max(0,r),6)),xF={kernelName:vs,backendName:\"cpu\",kernelFunc:mT};function Oc(r,t,e,n,o){if(e===\"linear\")return Kr({inputs:{x:t},backend:r});if(e===\"relu\")return pT({inputs:{x:t},backend:r});if(e===\"elu\")return lT({inputs:{x:t},backend:r});if(e===\"relu6\")return mT({inputs:{x:t},backend:r});if(e===\"prelu\")return cT({inputs:{x:t,alpha:n},backend:r});if(e===\"leakyrelu\")return uT({inputs:{x:t},backend:r,attrs:{alpha:o}});if(e===\"sigmoid\")return oT({inputs:{x:t},backend:r});throw new Error(`Activation ${e} has not been implemented for the CPU backend.`)}function Yt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{shape:s}=n,i=y.sizeFromShape(o.shape),a=y.inferFromImplicitShape(s,i),u=y.sizeFromShape(a);y.assert(i===u,()=>`The new shape (${a}) has ${u} elements and the old shape (${o.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),e.incRef(o.dataId);let l=e.data.get(o.dataId);if(l.complexTensorInfos!=null){let c=l.complexTensorInfos.real,p=l.complexTensorInfos.imag;c.shape=a,p.shape=a}return{dataId:o.dataId,shape:a,dtype:o.dtype}}var yF={kernelName:di,backendName:\"cpu\",kernelFunc:Yt};function fT(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;tt([o,s],\"matMul\");let u=o.shape.length,l=s.shape.length,c=i?o.shape[u-2]:o.shape[u-1],p=a?s.shape[l-1]:s.shape[l-2],m=i?o.shape[u-1]:o.shape[u-2],f=a?s.shape[l-2]:s.shape[l-1],d=o.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=Vr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)).concat([m,f]);y.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${o.shape} and ${s.shape} and transposeA=${i} and transposeB=${a} must match.`);let C=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],_=Yt({inputs:{x:o},backend:e,attrs:{shape:C}}),A=Yt({inputs:{x:s},backend:e,attrs:{shape:N}}),$=i?_.shape[1]:_.shape[2],F=i?_.shape[2]:_.shape[1],P=a?A.shape[1]:A.shape[2],V=Math.max(g,x),G=e.data.get(_.dataId).values,W=e.data.get(A.dataId).values,q=y.computeStrides(_.shape),H=y.computeStrides(A.shape),[j,Y,Z]=i?[q[0],1,q[1]]:[q[0],q[1],1],[et,rt,ot]=a?[1,H[1],H[0]]:[H[1],1,H[0]],at=F*P,nt=wt([V,F,P],_.dtype),it=nt.values,dt=e.blockSize;for(let ht=0;htMath.acos(r)),CF={kernelName:oa,backendName:\"cpu\",kernelFunc:SJ};var vJ=kt(sa,r=>Math.acosh(r)),IF={kernelName:sa,backendName:\"cpu\",kernelFunc:vJ};function NJ(r){let{inputs:t,backend:e}=r,n=t;tt(t,\"addN\");let o=n.map(a=>e.data.get(a.dataId).values),s=wt(n[0].shape,n[0].dtype),i=s.values;for(let a=0;ab&&(b=N,w=C)}f[g]=w}return l.forEach(g=>e.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,\"int32\",f)}var TF={kernelName:Wo,backendName:\"cpu\",kernelFunc:EJ};function _J(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n;tt(o,\"argMin\");let i=y.parseAxisParam(s,o.shape),a=v.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Ve({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=v.getInnerMostAxes(i.length,u.shape.length)),i=[i[0]],v.assertAxesAreInnerMostDims(\"argMin\",i,u.shape.length);let[c,p]=v.computeOutAndReduceShapes(u.shape,i),m=y.sizeFromShape(c),f=y.makeZerosTypedArray(m,\"int32\"),d=y.sizeFromShape(p),h=e.data.get(u.dataId).values;for(let g=0;ge.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,\"int32\",f)}var kF={kernelName:kl,backendName:\"cpu\",kernelFunc:_J};var AJ=kt(la,r=>Math.asin(r)),EF={kernelName:la,backendName:\"cpu\",kernelFunc:AJ};var $J=kt(ua,r=>Math.asinh(r)),_F={kernelName:ua,backendName:\"cpu\",kernelFunc:$J};var DJ=kt(ca,r=>Math.atan(r)),AF={kernelName:ca,backendName:\"cpu\",kernelFunc:DJ};var RJ=Qt((r,t)=>Math.atan2(r,t)),FJ=oe(ma,RJ),$F={kernelName:ma,backendName:\"cpu\",kernelFunc:FJ};var OJ=kt(pa,r=>Math.atanh(r)),DF={kernelName:pa,backendName:\"cpu\",kernelFunc:OJ};function ud(r,t,e,n,o,s){let i=o.strideHeight,a=o.strideWidth,u=o.dilationHeight,l=o.dilationWidth,c=o.effectiveFilterHeight,p=o.effectiveFilterWidth,m=o.padInfo.top,f=o.padInfo.left,d=s===\"max\"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,h=wt(o.outShape,e),g=h.values,x=o.outShape[1]*o.outShape[2]*o.outShape[3],b=o.outShape[2]*o.outShape[3],w=o.outShape[3];for(let C=0;CY?Y=dt:s===\"avg\"&&(Z+=dt,et++)}if(isNaN(Y))break}let rt=G+W*w+A;g[rt]=s===\"avg\"?Z/et:Y}}}return h}function fw(r,t,e,n,o=!1,s=!1){let i=wt(n.outShape,\"int32\"),a=n.strideHeight,u=n.strideWidth,l=n.dilationHeight,c=n.dilationWidth,p=n.effectiveFilterHeight,m=n.effectiveFilterWidth,f=n.padInfo.top,d=n.padInfo.left,h=wt(t,e,r);for(let g=0;gP&&(P=j,o?V=s?((g*n.inHeight+G)*n.inWidth+q)*n.inChannels+x:(G*n.inWidth+q)*n.inChannels+x:V=W*m+H)}}i.set(V,g,b,_,x)}}return i}function dw(r,t,e,n,o,s){let i=o.strideDepth,a=o.strideHeight,u=o.strideWidth,l=o.dilationDepth,c=o.dilationHeight,p=o.dilationWidth,m=o.effectiveFilterDepth,f=o.effectiveFilterHeight,d=o.effectiveFilterWidth,h=o.padInfo.front,g=o.padInfo.top,x=o.padInfo.left,b=s===\"max\"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,w=wt(o.outShape,e),C=w.values,N=o.outShape[1]*o.outShape[2]*o.outShape[3]*o.outShape[4],_=o.outShape[2]*o.outShape[3]*o.outShape[4],A=o.outShape[3]*o.outShape[4],$=o.outShape[4];for(let F=0;FEt?Et=We:s===\"avg\"&&(At+=We,Vt++),isNaN(Et))break}if(isNaN(Et))break}if(isNaN(Et))break}let Zt=bt+G;C[Zt]=s===\"avg\"?At/Vt:Et}}}}return w}function RF(r,t){let e=wt(t.outShape,\"int32\"),n=t.strideDepth,o=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,a=t.dilationHeight,u=t.dilationWidth,l=t.effectiveFilterDepth,c=t.effectiveFilterHeight,p=t.effectiveFilterWidth,m=t.padInfo.front,f=t.padInfo.top,d=t.padInfo.left;for(let h=0;h=W&&(W=ot,q=j*c*p+Z*c+rt)}}}e.set(q,h,x,N,F,g)}}}return e}function PJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;tt(o,\"avgPool\");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(v.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=v.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Kr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=ud(m,o.shape,o.dtype,f,c,\"avg\");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var FF={kernelName:Uo,backendName:\"cpu\",kernelFunc:PJ};function LJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;tt(o,\"avgPool3d\");let c=v.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=dw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,\"avg\");return e.makeTensorInfo(m.shape,\"float32\",m.values)}var OF={kernelName:El,backendName:\"cpu\",kernelFunc:LJ};function MJ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;tt([o,s],\"avgPool3DGrad\");let c=v.computePool3DInfo(s.shape,i,a,1,u,l),p=c.strideDepth,m=c.strideHeight,f=c.strideWidth,d=c.filterDepth,h=c.filterHeight,g=c.filterWidth,x=c.dilationDepth,b=c.dilationHeight,w=c.dilationWidth,C=c.effectiveFilterDepth,N=c.effectiveFilterHeight,_=c.effectiveFilterWidth,A=C-1-c.padInfo.front,$=_-1-c.padInfo.left,F=N-1-c.padInfo.top,P=wt(s.shape,\"float32\"),V=1/(d*h*g),G=e.bufferSync(o);for(let W=0;W=c.outDepth||Math.floor(nt)!==nt))for(let it=0;it=c.outHeight||Math.floor(dt)!==dt))for(let ht=0;ht<_;ht+=w){let bt=(rt+ht)/f;if(bt<0||bt>=c.outWidth||Math.floor(bt)!==bt)continue;ot+=G.get(W,nt,dt,bt,q)}}}P.set(ot*V,W,H,j,Y,q)}return e.makeTensorInfo(P.shape,P.dtype,P.values)}var PF={kernelName:lp,backendName:\"cpu\",kernelFunc:MJ};function zJ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;tt([o,s],\"avgPoolGrad\");let{filterSize:a,strides:u,pad:l}=n,c=v.computePool2DInfo(i.shape,a,u,1,l),p=c.strideHeight,m=c.strideWidth,f=c.filterHeight,d=c.filterWidth,h=c.dilationHeight,g=c.dilationWidth,x=c.effectiveFilterHeight,b=c.effectiveFilterWidth,w=b-1-c.padInfo.left,C=x-1-c.padInfo.top,N=wt(i.shape,\"float32\"),_=1/(f*d),A=e.data.get(o.dataId).values,$=wt(o.shape,\"float32\",A);for(let F=0;F=c.outHeight||Math.floor(Y)!==Y))for(let Z=0;Z=c.outWidth||Math.floor(et)!==et)continue;H+=$.get(F,Y,et,P)}}N.set(H*_,F,V,G,P)}return e.makeTensorInfo(N.shape,N.dtype,N.values)}var LF={kernelName:ap,backendName:\"cpu\",kernelFunc:zJ};function BJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,scale:s,offset:i,mean:a,variance:u}=t;y.assert(a.shape.length===u.shape.length,()=>\"Batch normalization gradient requires mean and variance to have equal ranks.\"),y.assert(i==null||a.shape.length===i.shape.length,()=>\"Batch normalization gradient requires mean and offset to have equal ranks.\"),y.assert(s==null||a.shape.length===s.shape.length,()=>\"Batch normalization gradient requires mean and scale to have equal ranks.\"),tt([o,a,u,s,i],\"batchNorm\");let{varianceEpsilon:l}=n;l==null&&(l=.001);let c=e.data.get(o.dataId).values,p=e.data.get(a.dataId).values,m=e.data.get(u.dataId).values,f=s?e.data.get(s.dataId).values:new Float32Array([1]),d=i?e.data.get(i.dataId).values:new Float32Array([0]),h=new Float32Array(c.length),g=d.length,x=f.length,b=m.length,w=p.length,C=0,N=0,_=0,A=0;for(let $=0;$=g&&(C=0),N>=w&&(N=0),_>=x&&(_=0),A>=b&&(A=0);return e.makeTensorInfo(o.shape,o.dtype,h)}var MF={kernelName:os,backendName:\"cpu\",kernelFunc:BJ};function VJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;tt([o],\"batchToSpaceND\");let a=s.reduce((x,b)=>x*b),u=v.getReshaped(o.shape,s,a),l=v.getPermuted(u.length,s.length),c=v.getReshapedPermuted(o.shape,s,a),p=v.getSliceBeginCoords(i,s.length),m=v.getSliceSize(c,i,s.length),f=Yt({inputs:{x:o},backend:e,attrs:{shape:u}}),d=Ve({inputs:{x:f},backend:e,attrs:{perm:l}}),h=Yt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Fo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var zF={kernelName:ai,backendName:\"cpu\",kernelFunc:VJ};function GJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i}=n,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,l=sd(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var BF={kernelName:up,backendName:\"cpu\",kernelFunc:GJ};function WJ(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,a=v.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],\"int32\",Int32Array.from(a))}var VF={kernelName:cp,backendName:\"cpu\",kernelFunc:WJ};var UJ=kt(uo,(r,t)=>{let e=t;return r>e.clipValueMax?e.clipValueMax:r{let{x:t}=r.inputs,e=r.backend,n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId),s=o.complexTensorInfos.real,i=o.complexTensorInfos.imag,a=e.data.get(s.dataId).values,u=e.data.get(i.dataId).values;for(let l=0;lh.shape);v.assertParamsConsistent(i,s);let a=v.computeOutShape(t.map(h=>h.shape),s);if(y.sizeFromShape(a)===0)return e.makeTensorInfo(a,t[0].dtype,[]);let u=t.filter(h=>y.sizeFromShape(h.shape)>0);if(u.length===1)return Kr({inputs:{x:u[0]},backend:e});if(u[0].dtype===\"complex64\"){let h=u.map(C=>Ao({inputs:{input:C},backend:e})),g=u.map(C=>ji({inputs:{input:C},backend:e})),x=Tu({inputs:h,backend:e,attrs:{axis:s}}),b=Tu({inputs:g,backend:e,attrs:{axis:s}}),w=wr({inputs:{real:x,imag:b},backend:e});return h.forEach(C=>e.disposeIntermediateTensorInfo(C)),g.forEach(C=>e.disposeIntermediateTensorInfo(C)),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(b),w}let l=u.map(h=>{let g=y.sizeFromShape(h.shape.slice(s));return Yt({inputs:{x:h},backend:e,attrs:{shape:[-1,g]}})}),c=l.map(h=>({vals:e.data.get(h.dataId).values,shape:h.shape}));a=v.computeOutShape(l.map(h=>h.shape),1);let p=l[0].shape[0]===1,m=Ec(c,a,t[0].dtype,p),f=v.computeOutShape(u.map(h=>h.shape),s),d=e.makeTensorInfo(f,t[0].dtype,m);return l.forEach(h=>e.disposeIntermediateTensorInfo(h)),d}var HF={kernelName:li,backendName:\"cpu\",kernelFunc:Tu};function dT(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dataFormat:u,dilations:l,dimRoundingMode:c}=n;tt([o,s],\"conv2d\");let p=v.convertConv2DDataFormat(u),m=v.computeConv2DInfo(o.shape,s.shape,i,l,a,c,!1,p),f=m.filterHeight,d=m.filterWidth,h=m.dilationHeight,g=m.dilationWidth,x=m.padInfo.left,b=m.padInfo.top,w=m.dataFormat===\"channelsLast\",C=new pe(m.outShape,o.dtype),N=y.computeStrides(o.shape),_=y.computeStrides(s.shape),A=N[0],$=w?N[1]:N[2],F=w?N[2]:1,P=w?1:N[1],V=C.strides[0],G=w?C.strides[1]:C.strides[2],W=w?C.strides[2]:1,q=w?1:C.strides[1],H=e.data.get(o.dataId).values,j=e.data.get(s.dataId).values,Y=C.values;for(let Z=0;Z=m.inHeight)continue;let ht=it*_[0],bt=et+dt*$;for(let Et=0;Et=m.inWidth)continue;let he=ht+Zt*_[1],jt=bt+ce*F,ke=he;for(let fe=0;fe=l.inDepth)continue;let Z=j*F[0],et=V+Y*$[1];for(let rt=0;rt=l.inHeight)continue;let dt=Z+nt*F[1],ht=et+it*$[2];for(let bt=0;bt=l.inWidth)continue;let ce=dt+Vt*F[2],he=ht+Zt*l.inChannels,jt=ce;for(let ke=0;keMath.cos(r)),JF={kernelName:Xo,backendName:\"cpu\",kernelFunc:ZJ};var JJ=kt(Yo,r=>Math.cosh(r)),QF={kernelName:Yo,backendName:\"cpu\",kernelFunc:JJ};function QJ(r){let{inputs:t,backend:e,attrs:n}=r,{image:o,boxes:s,boxInd:i}=t,{cropSize:a,method:u,extrapolationValue:l}=n,[c,p,m,f]=o.shape,d=s.shape[0],[h,g]=a,x=wt([d,h,g,f],\"float32\"),b=e.data.get(s.dataId).values,w=e.data.get(i.dataId).values,C=e.data.get(o.dataId).values,N=y.computeStrides(o.shape),_=y.computeStrides(x.shape);for(let A=0;A=c)continue;let q=h>1?(V-F)*(p-1)/(h-1):0,H=g>1?(G-P)*(m-1)/(g-1):0;for(let j=0;j1?F*(p-1)+j*q:.5*(F+V)*(p-1);if(Y<0||Y>p-1){for(let Z=0;Z1?P*(m-1)+ot*H:.5*(P+G)*(m-1);if(at<0||at>m-1){for(let ht=0;ht1?P*(m-1)+Z*H:.5*(P+G)*(m-1);if(et<0||et>m-1){for(let at=0;atx+d-b-1:(x,b)=>x+b;for(let x=0;xx+d-b-1:(x,b)=>x+b;for(let x=0;x`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`);let a=o.shape[0],u=o.shape[1],l=o.shape[2],c=o.shape[3],p=u*s,m=l*s,f=c/(s*s),d=e.data.get(o.dataId).values,h=new Float32Array(a*p*m*f),g=0;for(let x=0;x`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${m}'`);let f=v.computeConv2DInfo(o.shape,s.shape,i,m,a,l,!0),{filterHeight:d,filterWidth:h,dilationHeight:g,dilationWidth:x,padInfo:b}=f,w=b.left,C=b.top,N=f.outChannels/f.inChannels,_=new pe(f.outShape,o.dtype),A=e.data.get(o.dataId).values,$=e.data.get(s.dataId).values,F=_.values;for(let P=0;P=f.inHeight)continue;let Z=j*p[0],et=V+Y*c[1];for(let rt=0;rt=f.inWidth)continue;let dt=Z+nt*p[1],ht=et+it*f.inChannels,bt=ot,Et=dt;for(let At=0;At{let{x:n,filter:o}=r,{strides:s,pad:i,dilations:a}=e,u=t,l=u.data.get(n.dataId).values,c=n.shape.length,p=u.data.get(o.dataId).values,m=o.shape.length,{batchSize:f,inHeight:d,inWidth:h,inChannels:g,outHeight:x,outWidth:b,padInfo:w,strideHeight:C,strideWidth:N,filterHeight:_,filterWidth:A,dilationHeight:$,dilationWidth:F,outShape:P}=v.computeDilation2DInfo(n.shape,o.shape,s,i,\"NHWC\",a),V=y.sizeFromShape(P),G=P.length,W=y.getArrayFromDType(n.dtype,V);for(let H=0;H=0&&it=0&&htot&&(ot=At)}}}let at=y.locToIndex([H,j,Z,rt],G,y.computeStrides(P));W[at]=ot}}}return{dataId:u.write(y.toTypedArray(W,n.dtype),P,n.dtype),shape:P,dtype:n.dtype}}};var cO={kernelName:Xd,backendName:\"cpu\",kernelFunc:({inputs:r,backend:t,attrs:e})=>{let{x:n,filter:o,dy:s}=r,{strides:i,pad:a,dilations:u}=e,l=t,c=y.toNestedArray(n.shape,l.data.get(n.dataId).values),p=y.toNestedArray(o.shape,l.data.get(o.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:w,strideWidth:C,filterHeight:N,filterWidth:_,dilationHeight:A,dilationWidth:$,outShape:F}=v.computeDilation2DInfo(n.shape,o.shape,i,a,\"NHWC\",u);y.assert(s.rank===F.length,()=>`Error in ${Xd}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let P=y.toNestedArray(F,l.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(o.shape,o.dtype);for(let W=0;W=0&&nt=0&&dtet&&(et=ht,rt=at,ot=it)}}}V[rt][ot][Z]+=P[W][q][j][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),o.shape,o.dtype),shape:o.shape,dtype:o.dtype}}};var pO={kernelName:jd,backendName:\"cpu\",kernelFunc:({inputs:r,backend:t,attrs:e})=>{let{x:n,filter:o,dy:s}=r,{strides:i,pad:a,dilations:u}=e,l=t,c=y.toNestedArray(n.shape,l.data.get(n.dataId).values),p=y.toNestedArray(o.shape,l.data.get(o.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:w,strideWidth:C,filterHeight:N,filterWidth:_,dilationHeight:A,dilationWidth:$,outShape:F}=v.computeDilation2DInfo(n.shape,o.shape,i,a,\"NHWC\",u);y.assert(s.rank===F.length,()=>`Error in ${jd}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let P=y.toNestedArray(F,l.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(n.shape,n.dtype);for(let W=0;W=0&&nt=0&&dtet&&(et=ht,rt=nt,ot=dt)}}}V[W][rt][ot][Z]+=P[W][q][j][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}};function hl(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;tt(o,\"sum\");let a;o.dtype===\"bool\"?a=$o({inputs:{x:o},backend:e,attrs:{dtype:\"int32\"}}):a=Kr({inputs:{x:o},backend:e});let u=a.shape.length,l=y.parseAxisParam(s,a.shape),c=v.getAxesPermutation(l,u),p=l,m=a;c!=null&&(m=Ve({inputs:{x:a},backend:e,attrs:{perm:c}}),p=v.getInnerMostAxes(p.length,u)),v.assertAxesAreInnerMostDims(\"sum\",p,m.shape.length);let[f,d]=v.computeOutAndReduceShapes(m.shape,p),h=v.upcastType(m.dtype,\"int32\"),g=nd(e,f,h),x=y.sizeFromShape(d),b=e.data.get(g.dataId).values,w=e.data.get(m.dataId).values;for(let C=0;C=0&&(m=hl({inputs:{x:m},backend:e,attrs:{axis:l[h]-(i.length-f),keepDims:!1}}),d.push(m)),f--)}for(let h of d)h!==m&&e.disposeIntermediateTensorInfo(h);return m}var fO={kernelName:bp,backendName:\"cpu\",kernelFunc:aQ};function lQ(r){let{inputs:t,backend:e}=r,{dy:n,y:o}=t;tt([n,o],\"eluGrad\");let s=new Float32Array(y.sizeFromShape(o.shape)),i=e.data.get(o.dataId).values,a=e.data.get(n.dataId).values;for(let u=0;u=1?s[u]=a[u]:s[u]=a[u]*(l+1)}return e.makeTensorInfo(o.shape,\"float32\",s)}var dO={kernelName:wp,backendName:\"cpu\",kernelFunc:lQ};var uQ=v.ERF_P,cQ=v.ERF_A1,pQ=v.ERF_A2,mQ=v.ERF_A3,fQ=v.ERF_A4,dQ=v.ERF_A5,hQ=kt(ga,r=>{let t=Math.sign(r),e=Math.abs(r),n=1/(1+uQ*e);return t*(1-((((dQ*n+fQ)*n+mQ)*n+pQ)*n+cQ)*n*Math.exp(-e*e))}),hO={kernelName:ga,backendName:\"cpu\",kernelFunc:hQ};function cd(r){let{inputs:t,backend:e,attrs:n}=r,{input:o}=t,{dim:s}=n,i=o.shape.length,a=o.shape.slice(),u=s;return s<0&&(y.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+s+1),a.splice(u,0,1),Yt({inputs:{x:o},backend:e,attrs:{shape:a}})}var gO={kernelName:ui,backendName:\"cpu\",kernelFunc:cd};var gQ=Qt((r,t)=>r/t),Wh=oe(Qo,gQ),Uh={kernelName:Qo,backendName:\"cpu\",kernelFunc:Wh};function hw(r,t,e){let n=r.shape,o=n[0],s=n[1],i=e.data.get(r.dataId),a=i.complexTensorInfos.real,u=i.complexTensorInfos.imag,l=[o,s],c=y.sizeFromShape(l),p=y.getTypedArrayFromDType(\"float32\",c),m=y.getTypedArrayFromDType(\"float32\",c);for(let g=0;g{let{image:n}=r,o=e,s=y.getTypedArrayFromDType(n.dtype,y.sizeFromShape(n.shape)),[i,a,u,l]=n.shape,c=o.data.get(n.dataId).values;for(let m=0;m=0&&wMath.floor(r/t)),SQ=oe(ns,IQ,null,\"int32\"),wO={kernelName:ns,backendName:\"cpu\",kernelFunc:SQ};function vQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=dT({inputs:{x:o,filter:s},backend:e,attrs:{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m}});if(i){let g=h;if(c===\"NCHW\"&&i.shape.length===1&&i.shape[0]!==1){let x=Yt({inputs:{x:i},backend:e,attrs:{shape:[i.shape[0],1,1]}});h=Ki({inputs:{a:h,b:x},backend:e}),e.disposeIntermediateTensorInfo(x)}else h=Ki({inputs:{a:h,b:i},backend:e});e.disposeIntermediateTensorInfo(g)}if(f){let g=h;if(c===\"NCHW\"&&f===\"prelu\"&&a.shape.length===1&&a.shape[0]!==1){let x=Yt({inputs:{x:a},backend:e,attrs:{shape:[a.shape[0],1,1]}});h=Oc(e,h,f,x,d),e.disposeIntermediateTensorInfo(x)}else h=Oc(e,h,f,a,d);e.disposeIntermediateTensorInfo(g)}return h}var CO={kernelName:Ii,backendName:\"cpu\",kernelFunc:vQ};function NQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=hT({inputs:{x:o,filter:s},backend:e,attrs:{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m}});if(i){let g=h;h=Ki({inputs:{a:h,b:i},backend:e}),e.disposeIntermediateTensorInfo(g)}if(f){let g=h;h=Oc(e,h,f,a,d),e.disposeIntermediateTensorInfo(g)}return h}var IO={kernelName:Si,backendName:\"cpu\",kernelFunc:NQ};function TQ(r){let{inputs:t,backend:e}=r,{params:n,indices:o}=t,s=y.sizeFromShape(n.shape),i=o.shape,a=i[i.length-1],[u,l,c,p]=v.prepareAndValidate(n,o);if(l===0)return e.makeTensorInfo(u,n.dtype,[]);let m=e.data.get(o.dataId).values,f=e.bufferSync(n),d=Qb(m,f,n.dtype,l,a,c,p,n.shape,s);return e.makeTensorInfo(u,n.dtype,d.values)}var SO={kernelName:wa,backendName:\"cpu\",kernelFunc:TQ};function kQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,indices:s}=t,{axis:i,batchDims:a}=n;tt([o,s],\"gatherV2\");let u=y.parseAxisParam(i,o.shape)[0],l=e.data.get(s.dataId).values,c=o.shape[u];for(let C=0;C=0,()=>`GatherV2: the index value ${N} is not in [0, ${c-1}]`)}let p=a;a==null&&(p=0);let m=y.sizeFromShape(s.shape),f=v.segment_util.collectGatherOpShapeInfo(o,s,u,p),d=Yt({inputs:{x:o},backend:e,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),h=Yt({inputs:{x:s},backend:e,attrs:{shape:[f.batchSize,m/f.batchSize]}}),g=[f.batchSize,f.outerSize,m/f.batchSize,f.sliceSize],x=e.bufferSync(h),b=e.bufferSync(d),w=tw(b,x,g);return e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.makeTensorInfo(f.outputShape,w.dtype,w.values)}var vO={kernelName:ci,backendName:\"cpu\",kernelFunc:kQ};function EQ(r){let{inputs:t,backend:e}=r,{input:n}=t,o=y.sizeFromShape(n.shape),s=n.shape[n.shape.length-1],i=o/s,a=Yt({inputs:{x:n},backend:e,attrs:{shape:[i,s]}}),u=hw(a,!0,e),l=Yt({inputs:{x:u},backend:e,attrs:{shape:n.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(u),l}var NO={kernelName:Ip,backendName:\"cpu\",kernelFunc:EQ};var _Q=kt(Ia,r=>Number.isFinite(r)?1:0,\"bool\"),TO={kernelName:Ia,backendName:\"cpu\",kernelFunc:_Q};var AQ=kt(Sa,r=>Math.abs(r)===1/0?1:0,\"bool\"),kO={kernelName:Sa,backendName:\"cpu\",kernelFunc:AQ};var $Q=kt(va,r=>Number.isNaN(r)?1:0,\"bool\"),EO={kernelName:va,backendName:\"cpu\",kernelFunc:$Q};function DQ(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=ew(n,o,s);return t.makeTensorInfo([i.length],\"float32\",i)}var _O={kernelName:vp,backendName:\"cpu\",kernelFunc:DQ};var RQ=kt(ka,r=>Math.log1p(r)),AO={kernelName:ka,backendName:\"cpu\",kernelFunc:RQ};var FQ=Qt((r,t)=>r&&t),OQ=oe(Ea,FQ,null,\"bool\"),$O={kernelName:Ea,backendName:\"cpu\",kernelFunc:OQ};var PQ=kt(_a,r=>r?0:1,\"bool\"),DO={kernelName:_a,backendName:\"cpu\",kernelFunc:PQ};var LQ=Qt((r,t)=>r||t),MQ=oe(Aa,LQ,null,\"bool\"),RO={kernelName:Aa,backendName:\"cpu\",kernelFunc:MQ};function zQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n;tt(o,\"LRN\");let l=o.shape[3],c=l-1,p=e.data.get(o.dataId).values,m=y.sizeFromShape(o.shape),f=new Float32Array(m);function d(h){let g=h%l,x=h-g+Math.max(0,g-s),b=h-g+Math.min(g+s,c),w=0;for(;x<=b;x++){let C=p[x];w+=C*C}return w}for(let h=0;h`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=v.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Kr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=ud(m,o.shape,o.dtype,f,c,\"max\");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var LO={kernelName:cs,backendName:\"cpu\",kernelFunc:VQ};function GQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;tt(o,\"maxPool3d\");let c=v.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=dw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,\"max\");return e.makeTensorInfo(m.shape,\"float32\",m.values)}var MO={kernelName:Fl,backendName:\"cpu\",kernelFunc:GQ};function WQ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;tt([o,s],\"maxPool3DGrad\");let c=v.computePool3DInfo(s.shape,i,a,1,u,l),p=e.bufferSync(s),m=RF(p,c),f=c.strideDepth,d=c.strideHeight,h=c.strideWidth,g=c.dilationDepth,x=c.dilationHeight,b=c.dilationWidth,w=c.effectiveFilterDepth,C=c.effectiveFilterHeight,N=c.effectiveFilterWidth,_=w-1-c.padInfo.front,A=N-1-c.padInfo.left,$=C-1-c.padInfo.top,F=wt(s.shape,\"float32\"),P=e.bufferSync(o);for(let V=0;V=c.outDepth||Math.floor(ot)!==ot))for(let at=0;at=c.outHeight||Math.floor(nt)!==nt))for(let it=0;it=c.outWidth||Math.floor(dt)!==dt)continue;let ht=w*C*N-1-m.get(V,ot,nt,dt,G),bt=rt*C*N+at*N+it,Et=ht===bt?1:0;if(Et===0)continue;et+=P.get(V,ot,nt,dt,G)*Et}}}F.set(et,V,W,q,H,G)}return e.makeTensorInfo(F.shape,F.dtype,F.values)}var zO={kernelName:kp,backendName:\"cpu\",kernelFunc:WQ};function UQ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;tt([s,i],\"maxPoolGrad\");let{filterSize:u,strides:l,pad:c,dimRoundingMode:p}=n,m=v.computePool2DInfo(a.shape,u,l,1,c,p),f=e.data.get(a.dataId).values,d=wt(m.outShape,a.dtype,fw(f,a.shape,a.dtype,m).values),h=m.strideHeight,g=m.strideWidth,x=m.dilationHeight,b=m.dilationWidth,w=m.effectiveFilterHeight,C=m.effectiveFilterWidth,N=C-1-m.padInfo.left,_=w-1-m.padInfo.top,A=wt(a.shape,\"float32\"),$=e.data.get(o.dataId).values,F=wt(o.shape,\"float32\",$);for(let P=0;P=m.outHeight||Math.floor(Z)!==Z))for(let et=0;et=m.outWidth||Math.floor(rt)!==rt)continue;let ot=w*C-1-d.get(P,Z,rt,V),at=Y*C+et,nt=ot===at?1:0;if(nt===0)continue;j+=F.get(P,Z,rt,V)*nt}}A.set(j,P,G,W,V)}return e.makeTensorInfo(A.shape,A.dtype,A.values)}var BO={kernelName:Tp,backendName:\"cpu\",kernelFunc:UQ};function VO(r,t,e,n,o){let s=y.computeStrides(t),i=ud(r,t,e,s,o,\"max\"),a=fw(r,t,e,o,!0,n);return[i.values,a.values]}var GO={kernelName:Ep,backendName:\"cpu\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;tt(n,\"MaxPoolWithArgmax\");let l=u.data.get(n.dataId).values,c=v.computePool2DInfo(n.shape,o,s,[1,1],i),[p,m]=VO(l,n.shape,n.dtype,a,c),f=u.write(p,c.outShape,n.dtype),d=u.write(m,c.outShape,n.dtype);return[{dataId:f,shape:c.outShape,dtype:n.dtype},{dataId:d,shape:c.outShape,dtype:\"int32\"}]}};function HQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=y.parseAxisParam(s,o.shape),l=v.computeOutAndReduceShapes(o.shape,a)[1],c=y.sizeFromShape(l),p=[],m=e.makeTensorInfo([],\"float32\",new Float32Array([c]));p.push(m);let f=$o({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}});p.push(f);let d=Wh({inputs:{a:f,b:m},backend:e});p.push(d);let h=hl({inputs:{x:d},backend:e,attrs:{axis:s,keepDims:i}});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),h}var WO={kernelName:ps,backendName:\"cpu\",kernelFunc:HQ};function qQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;tt(o,\"min\");let a=y.parseAxisParam(s,o.shape),u=a,l=v.getAxesPermutation(u,o.shape.length),c=o;l!=null&&(c=Ve({inputs:{x:o},backend:e,attrs:{perm:l}}),u=v.getInnerMostAxes(u.length,o.shape.length)),v.assertAxesAreInnerMostDims(\"min\",u,c.shape.length);let[p,m]=v.computeOutAndReduceShapes(c.shape,u),f=y.sizeFromShape(m),d=y.makeZerosTypedArray(y.sizeFromShape(p),c.dtype),h=e.data.get(c.dataId).values;for(let x=0;xw[0]+o.shape[C]+w[1]),u=s.map(w=>w[0]),l=s.map((w,C)=>w[0]+o.shape[C]),c=i===\"reflect\"?0:1,p=e.data.get(o.dataId).values,m=o.shape.length,f=y.computeStrides(o.shape),d=y.sizeFromShape(a),h=a.length,g=y.computeStrides(a),x=y.getTypedArrayFromDType(o.dtype,d);for(let w=0;w=l[_]&&(C[_]=(l[_]-1)*2-C[_]+c);C=C.map((_,A)=>_-u[A]);let N=y.locToIndex(C,m,f);x[w]=p[N]}return{dataId:e.write(x,a,o.dtype),shape:a,dtype:o.dtype}}var HO={kernelName:ds,backendName:\"cpu\",kernelFunc:KQ};var jQ=Qt((r,t)=>{let e=r%t;return r<0&&t<0||r>=0&&t>=0?e:(e+t)%t}),XQ=oe($a,jQ),qO={kernelName:$a,backendName:\"cpu\",kernelFunc:XQ};var jO=Tl(fh());function yT(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=o.shape.length,a=s;if(a===-1&&(a=i-1),a!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${a}`);let u=y.parseAxisParam([a],o.shape),l=xT({inputs:{x:o},backend:e,attrs:{reductionIndices:u,keepDims:!1}}),c=v.expandShapeToKeepDim(l.shape,u),p=Yt({inputs:{x:l},backend:e,attrs:{shape:c}}),m=Vh({inputs:{a:o,b:p},backend:e}),f=UN({inputs:{x:m},backend:e}),d=hl({inputs:{x:f},backend:e,attrs:{axis:u,keepDims:!1}}),h=Yt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Wh({inputs:{a:f,b:h},backend:e});return e.disposeIntermediateTensorInfo(l),e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var KO={kernelName:Ds,backendName:\"cpu\",kernelFunc:yT};function YQ(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n;tt(o,\"multinomial\");let u=a?o:yT({inputs:{logits:o},backend:e,attrs:{dim:-1}}),l=u.shape[0],c=u.shape[1],p=e.data.get(u.dataId).values,m=[l,s],f=y.makeZerosTypedArray(y.sizeFromShape(m),\"int32\");for(let d=0;d=0&&p[m]{y.assertShapesMatch(s,c.shape,\"All tensors passed to stack must have matching shapes\"),y.assert(i===c.dtype,()=>\"All tensors passed to stack must have matching dtypes\")});let a=[],u=t.map(c=>{let p=cd({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Tu({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var nP={kernelName:fi,backendName:\"cpu\",kernelFunc:bT};function o9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{paddings:s,constantValue:i}=n;tt(o,\"pad\");let a=s.map((b,w)=>b[0]+o.shape[w]+b[1]),u=s.map(b=>b[0]),l=e.data.get(o.dataId).values,c=y.sizeFromShape(o.shape),p=o.shape.length,m=y.computeStrides(o.shape),f=y.sizeFromShape(a),d=a.length,h=y.computeStrides(a),g=y.getTypedArrayFromDType(o.dtype,f);i!==0&&g.fill(i);for(let b=0;b_+u[A]),N=y.locToIndex(C,d,h);g[N]=l[b]}return{dataId:e.write(g,a,o.dtype),shape:a,dtype:o.dtype}}var gw={kernelName:xs,backendName:\"cpu\",kernelFunc:o9};var s9=Qt((r,t)=>Math.pow(r,t)),i9=oe(ys,s9),oP={kernelName:ys,backendName:\"cpu\",kernelFunc:i9};function a9(r){let{inputs:t,backend:e,attrs:n}=r,{paramsNestedSplits:o,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:a}=n,u=o.map(x=>e.data.get(x.dataId).values),l=o.map(x=>x.shape),c=e.data.get(s.dataId).values,p=e.data.get(i.dataId).values,[m,f,d]=nw(u,l,c,s.shape,s.dtype,p,i.shape,a),h=m.map(x=>e.makeTensorInfo([x.length],\"int32\",x)),g=e.makeTensorInfo(d,s.dtype,f);return h.concat([g])}var sP={kernelName:Ap,backendName:\"cpu\",kernelFunc:a9};function l9(r){let{inputs:t,backend:e}=r,{starts:n,limits:o,deltas:s}=t,i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=ow(i,n.shape,n.dtype,a,o.shape,u,s.shape),p=e.makeTensorInfo([l.length],\"int32\",l),m=e.makeTensorInfo([c.length],n.dtype,c);return[p,m]}var iP={kernelName:$p,backendName:\"cpu\",kernelFunc:l9};function u9(r){let{inputs:t,backend:e,attrs:n}=r,{shape:o,values:s,defaultValue:i,rowPartitionTensors:a}=t,{rowPartitionTypes:u}=n,l=e.data.get(o.dataId).values,c=e.data.get(s.dataId).values,p=e.data.get(i.dataId).values,m=a.map(g=>e.data.get(g.dataId).values),f=a.map(g=>g.shape),[d,h]=sw(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var aP={kernelName:Dp,backendName:\"cpu\",kernelFunc:u9};function c9(r){let{backend:t,attrs:e}=r,{start:n,stop:o,dtype:s,step:i}=e,a=Ac(n,o,i,s);return t.makeTensorInfo([a.length],s,a)}var lP={kernelName:Ol,backendName:\"cpu\",kernelFunc:c9};var p9=kt(Pa,r=>1/r),uP={kernelName:Pa,backendName:\"cpu\",kernelFunc:p9};function m9(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n;tt(o,\"resizeBilinear\");let u=y.computeStrides(o.shape),[l,c]=a,[p,m,f,d]=o.shape,h=e.data.get(o.dataId).values,g=new Float32Array(y.sizeFromShape([p,l,c,d])),x=[s&&l>1?m-1:m,s&&c>1?f-1:f],b=[s&&l>1?l-1:l,s&&c>1?c-1:c],w=0,C=x[0]/b[0],N=x[1]/b[1];for(let _=0;_1?l-1:l,i&&f>1?c-1:c],g=[i&&m>1?m-1:m,i&&f>1?f-1:f],x=h[0]/g[0],b=h[1]/g[1],w=e.data.get(s.dataId).values,C=0;for(let N=0;N1?m-1:m,s&&c>1?f-1:f],b=[s&&l>1?l-1:l,s&&c>1?c-1:c],w=x[0]/b[0],C=x[1]/b[1],N=0;for(let _=0;_1?c-1:c,i&&d>1?p-1:p],b=[i&&f>1?f-1:f,i&&d>1?d-1:d],w=x[0]/b[0],C=x[1]/b[1],N=1/w,_=1/C,A=Math.ceil(N)*2+2,$=Math.ceil(_)*2+2;for(let F=0;F=f)continue;let nt=P+at*u[1],it=at*w,dt=Math.min(c-1,i?Math.round(it):Math.floor(it));if(V===dt)for(let ht=0;ht<$;ht++){let bt=ht+Z;if(bt<0||bt>=d)continue;let Et=nt+bt*u[2],At=bt*C,Vt=Math.min(p-1,i?Math.round(At):Math.floor(At));H===Vt&&(rt+=g[Et+et])}}h[j+et]=rt}}}}return e.makeTensorInfo(o.shape,o.dtype,h)}var fP={kernelName:Fp,backendName:\"cpu\",kernelFunc:h9};function g9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n;tt(o,\"reverse\");let i=o.shape.length,a=y.parseAxisParam(s,o.shape);if(i===0)return Kr({inputs:{x:o},backend:e});let u=new pe(o.shape,o.dtype),l=e.bufferSync(o);for(let c=0;cm[f]=o.shape[f]-1-m[f]),u.set(l.get(...m),...p)}return e.makeTensorInfo(u.shape,u.dtype,u.values)}var dP={kernelName:Ns,backendName:\"cpu\",kernelFunc:g9};var hP={kernelName:qa,backendName:\"cpu\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=y.getTypedArrayFromDType(n.dtype,y.sizeFromShape(n.shape)),[l,c,p,m]=n.shape,[f,d]=v.getImageCenter(i,c,p),h=255,g=Math.sin(o),x=Math.cos(o),b=a.data.get(n.dataId).values;for(let C=0;C=0&&q=0&&H{let t=Math.floor(r);return r-t<.5?Math.floor(r):r-t>.5?Math.ceil(r):t%2===0?t:t+1}),gP={kernelName:Ts,backendName:\"cpu\",kernelFunc:x9};function y9(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o,updates:s}=t,{shape:i}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=v.calculateShapes(s,o,i),m=!0,f=e.bufferSync(o),d=e.bufferSync(s),h=dl(f,d,i,p,l,u,a,c,0,m);return e.makeTensorInfo(i,h.dtype,h.values)}var xP={kernelName:La,backendName:\"cpu\",kernelFunc:y9};function b9(r,t){let e=0,n=r.length,o=0;for(;e1||o.shape.length===1?1:y.sizeFromShape(o.shape.slice(1));for(let d=0;dr>=0?v9*r:S9*(Math.exp(r)-1)),CP={kernelName:Ma,backendName:\"cpu\",kernelFunc:N9};var T9=kt(Ba,r=>r<0?-1:r>0?1:0),IP={kernelName:Ba,backendName:\"cpu\",kernelFunc:T9};var k9=kt(Es,r=>Math.sin(r)),SP={kernelName:Es,backendName:\"cpu\",kernelFunc:k9};var E9=kt(za,r=>Math.sinh(r)),vP={kernelName:za,backendName:\"cpu\",kernelFunc:E9};var _9=11920928955078125e-23,NP=Math.log(_9)+2,A9=kt(Va,r=>{let t=r>-NP,e=rNumber(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var EP={kernelName:Pl,backendName:\"cpu\",kernelFunc:D9};function R9(r){let{inputs:t,backend:e}=r,{inputIndices:n,inputShape:o,newShape:s}=t;if(n.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape\n ${n.shape}`);if(o.shape.length!==1)throw new Error(`Input shape should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(e.data.get(o.dataId).values),a=e.data.get(n.dataId).values,u=Array.from(e.data.get(s.dataId).values),[l,c,p]=aw(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var _P={kernelName:Ga,backendName:\"cpu\",kernelFunc:R9};function F9(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);if(o.shape[0]!==s.shape[0])throw new Error(\"segmentIds and indices should have same size.\");let i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=ld(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var AP={kernelName:Ll,backendName:\"cpu\",kernelFunc:F9};function O9(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);if(o.shape[0]!==s.shape[0])throw new Error(\"segmentIds and indices should have same size.\");let i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=ld(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var $P={kernelName:Ml,backendName:\"cpu\",kernelFunc:O9};function P9(r){let{inputs:t,backend:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=t,{outputShape:a}=n,{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=v.calculateShapes(s,o,a),f=!1,d=e.bufferSync(o),h;switch(s.dtype){case\"bool\":{let g=e.bufferSync(s),x=Boolean(e.data.get(i.dataId).values[0]);h=dl(d,g,a,m,c,l,u,p,x,f);break}case\"float32\":{let g=e.bufferSync(s),x=e.data.get(i.dataId).values[0];h=dl(d,g,a,m,c,l,u,p,x,f);break}case\"int32\":{let g=e.bufferSync(s),x=e.data.get(i.dataId).values[0];h=dl(d,g,a,m,c,l,u,p,x,f);break}case\"string\":{let g=e.bufferSync(s),x=y.decodeString(e.data.get(i.dataId).values[0]);h=dl(d,g,a,m,c,l,u,p,x,f);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return e.makeTensorInfo(a,h.dtype,h.values)}var DP={kernelName:Lp,backendName:\"cpu\",kernelFunc:P9};function L9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=n,a=y.parseAxisParam(i,o.shape)[0],u=v.prepareSplitSize(o,s,a),l=new Array(o.shape.length).fill(0),c=o.shape.slice();return u.map(p=>{let m=[...c];m[a]=p;let f=Fo({inputs:{x:o},backend:e,attrs:{begin:l,size:m}});return l[a]+=p,f})}var RP={kernelName:yi,backendName:\"cpu\",kernelFunc:L9};var FP={kernelName:zl,backendName:\"cpu\",kernelFunc:({inputs:r,backend:t})=>{let{x:e}=r,n=t;tt(e,\"square\");let o=n.data.get(e.dataId).values,s=new Float32Array(o.length);for(let a=0;a{let e=t;return isNaN(r)?NaN:r>0?1:e.alpha}),OP={kernelName:po,backendName:\"cpu\",kernelFunc:M9};function z9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n;tt(o,\"stridedSlice\");let{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Le.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=Yt({inputs:{x:o},backend:e,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let _=Le.computeOutShape(b,w,C),A=Fo({inputs:{x:o},backend:e,attrs:{begin:b,size:_}});N=Yt({inputs:{x:A},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(A)}else{let _=e.bufferSync(o),A=lw(f,_,C,b);N=e.makeTensorInfo(d,A.dtype,A.values)}return N}var PP={kernelName:Wa,backendName:\"cpu\",kernelFunc:z9};function B9(r){let{inputs:t,backend:e,attrs:n}=r,{separator:o,nGramWidths:s,leftPad:i,rightPad:a,padWidth:u,preserveShortSequences:l}=n,{data:c,dataSplits:p}=t,m=e.data.get(c.dataId).values,f=e.data.get(p.dataId).values,[d,h]=Dc(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],\"string\",d),e.makeTensorInfo(p.shape,\"int32\",h)]}var LP={kernelName:Bl,backendName:\"cpu\",kernelFunc:B9};function V9(r){let{inputs:t,backend:e,attrs:n}=r,{skipEmpty:o}=n,{input:s,delimiter:i}=t;if(s.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let a=e.data.get(s.dataId).values,u=e.data.get(i.dataId).values[0],[l,c,p]=Rc(a,u,o),m=c.length;return[e.makeTensorInfo([m,2],\"int32\",l),e.makeTensorInfo([m],\"string\",c),e.makeTensorInfo([2],\"int32\",new Int32Array(p))]}var MP={kernelName:Vl,backendName:\"cpu\",kernelFunc:V9};function G9(r){let{inputs:t,backend:e,attrs:n}=r,{numBuckets:o}=n,{input:s}=t;if(s.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");if(o<=0)throw new Error(\"Number of buckets must be at least 1\");let i=e.data.get(s.dataId).values,a=Fc(i,o);return e.makeTensorInfo(s.shape,\"int32\",a)}var zP={kernelName:Gl,backendName:\"cpu\",kernelFunc:G9};var W9=kt(Os,r=>Math.tan(r)),BP={kernelName:Os,backendName:\"cpu\",kernelFunc:W9};var U9=kt(Ps,r=>Math.tanh(r)),VP={kernelName:Ps,backendName:\"cpu\",kernelFunc:U9};function H9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reps:s}=n;tt(o,\"tile\");let i=uw(e.bufferSync(o),s);return e.makeTensorInfo(i.shape,i.dtype,i.values)}var GP={kernelName:Jn,backendName:\"cpu\",kernelFunc:H9};function q9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{k:s,sorted:i}=n;tt(o,\"topk\");let a=e.data.get(o.dataId).values,[u,l]=cw(a,o.shape,o.dtype,s,i);return[e.makeTensorInfo(u.shape,u.dtype,u.values),e.makeTensorInfo(l.shape,l.dtype,l.values)]}var WP={kernelName:Ua,backendName:\"cpu\",kernelFunc:q9};function K9(r){let{inputs:t,attrs:e,backend:n}=r,{image:o,transforms:s}=t,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=e,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=y.computeStrides(o.shape),b=x[0],w=x[1],C=x[2],N=y.computeStrides(g),_=N[0],A=N[1],$=N[2],F=y.getTypedArrayFromDType(o.dtype,y.sizeFromShape(g));F.fill(u);let P=n.data.get(o.dataId).values,V=n.data.get(s.dataId).values;for(let W=0;Wt-1)if(t<=1)e=0;else{let n=2*t;e-=n*Math.trunc(e/n),e>=t&&(e=n-e-1)}return y.clamp(0,e,t-1)}function X9(r,t){let e=r;if(e<0)if(t<=1)e=0;else{let n=t-1;e+=t*(Math.trunc(-e/n)+1)}else if(e>t-1)if(t<=1)e=0;else{let n=t-1;e-=t*Math.trunc(e/n)}return y.clamp(0,e,t-1)}function Y9(r,t){return r}function Z9(r,t){return y.clamp(0,r,t-1)}function Kh(r,t,e,n,o,s,i,a,u,l,c){let p=i*n+a*o+u*s+l;return 0<=a&&ae.disposeIntermediateTensorInfo(d)),f}var jP={kernelName:Wl,backendName:\"cpu\",kernelFunc:rtt};var ntt=[wF,$R,CF,IF,PR,SF,vF,NF,TF,kF,EF,_F,AF,$F,DF,FF,OF,PF,LF,bF,MF,zF,BF,VF,OR,LR,GF,DR,WF,HF,qF,KF,jF,XF,YF,ZF,JF,QF,tO,eO,rO,nO,oO,sO,iO,aO,lO,uO,cO,pO,fO,fF,dO,MR,hO,zR,gO,BR,xO,yO,bO,VR,wO,CO,IO,SO,vO,GR,WR,RR,NO,UF,TO,kO,EO,dF,UR,HR,_O,qR,AO,$O,DO,RO,FO,OO,PO,KR,LO,MO,zO,BO,GO,WO,UO,jR,HO,qO,XO,XR,YR,YO,ZO,JO,ZR,QO,rP,nP,gw,oP,hF,QR,sP,iP,aP,lP,FR,Uh,uP,gF,xF,yF,cP,pP,mP,fP,dP,hP,gP,oF,xP,bP,wP,CP,iF,IP,SP,vP,aF,KO,TP,kP,EP,_P,AP,$P,DP,RP,uF,FP,cF,OP,PP,LP,MP,zP,pF,mO,BP,VP,GP,WP,HP,JR,qP,KP,jP,tP];for(let r of ntt)Lu(r);var dd={};Wt(dd,{assertNotComplex:()=>Qs,bindCanvasToFramebuffer:()=>mtt,bindColorTextureToFramebuffer:()=>Zh,bindTextureToProgramUniformSampler:()=>OT,bindTextureUnit:()=>JP,bindVertexBufferToProgramAttribute:()=>Iw,callAndCheck:()=>yt,canBeRepresented:()=>ST,createFragmentShader:()=>NT,createFramebuffer:()=>DT,createProgram:()=>TT,createStaticIndexBuffer:()=>_T,createStaticVertexBuffer:()=>ET,createTexture:()=>AT,createVertexShader:()=>vT,getBatchDim:()=>xl,getExtensionOrThrow:()=>pd,getFramebufferErrorMessage:()=>QP,getMaxTexturesInShader:()=>MT,getNumChannels:()=>ctt,getProgramUniformLocation:()=>FT,getProgramUniformLocationOrThrow:()=>RT,getRowsCols:()=>yl,getShapeAs3D:()=>fd,getTextureShapeFromLogicalShape:()=>PT,getWebGLDisjointQueryTimerVersion:()=>zT,getWebGLErrorMessage:()=>ZP,getWebGLMaxTextureSize:()=>LT,hasExtension:()=>Wn,isCapableOfRenderingToFloatTexture:()=>BT,isDownloadFloatTextureEnabled:()=>VT,isReshapeFree:()=>Eu,isWebGLFenceEnabled:()=>GT,isWebGLVersionEnabled:()=>vw,linkProgram:()=>kT,logShaderSourceAndInfoLog:()=>Cw,resetMaxTextureSize:()=>ftt,resetMaxTexturesInShader:()=>dtt,unbindColorTextureFromFramebuffer:()=>Sw,unbindTextureUnit:()=>ptt,validateFramebuffer:()=>md,validateProgram:()=>Yh,validateTextureSize:()=>$T});var Pc={},xw={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function wT(r,t){Pc[r]=t}function Gn(r,t){if(!(r in Pc)||t!=null){let n=stt(r,t);if(n!==null)Pc[r]=n;else return console.log(\"Could not get context for WebGL version\",r),null}let e=Pc[r];return e==null||e.isContextLost()?(delete Pc[r],Gn(r)):(e.disable(e.DEPTH_TEST),e.disable(e.STENCIL_TEST),e.disable(e.BLEND),e.disable(e.DITHER),e.disable(e.POLYGON_OFFSET_FILL),e.disable(e.SAMPLE_COVERAGE),e.enable(e.SCISSOR_TEST),e.enable(e.CULL_FACE),e.cullFace(e.BACK),Pc[r])}function ott(r){if(typeof OffscreenCanvas!=\"undefined\"&&r===2)return new OffscreenCanvas(300,150);if(typeof document!=\"undefined\")return document.createElement(\"canvas\");throw new Error(\"Cannot create a canvas in this context\")}function stt(r,t){if(r!==1&&r!==2)throw new Error(\"Cannot get WebGL rendering context, WebGL is disabled.\");let e=t==null?ott(r):t;return e.addEventListener(\"webglcontextlost\",n=>{n.preventDefault(),delete Pc[r]},!1),z().getBool(\"SOFTWARE_WEBGL_ENABLED\")&&(xw.failIfMajorPerformanceCaveat=!1),r===1?e.getContext(\"webgl\",xw)||e.getContext(\"experimental-webgl\",xw):e.getContext(\"webgl2\",xw)}var ku;(function(r){r[r.DENSE=0]=\"DENSE\",r[r.SHARED_BATCH=1]=\"SHARED_BATCH\"})(ku||(ku={}));var jr;(function(r){r[r.RENDER=0]=\"RENDER\",r[r.UPLOAD=1]=\"UPLOAD\",r[r.PIXELS=2]=\"PIXELS\",r[r.DOWNLOAD=3]=\"DOWNLOAD\"})(jr||(jr={}));var Pr;(function(r){r[r.UNPACKED_FLOAT16=0]=\"UNPACKED_FLOAT16\",r[r.UNPACKED_FLOAT32=1]=\"UNPACKED_FLOAT32\",r[r.PACKED_4X1_UNSIGNED_BYTE=2]=\"PACKED_4X1_UNSIGNED_BYTE\",r[r.PACKED_2X2_FLOAT32=3]=\"PACKED_2X2_FLOAT32\",r[r.PACKED_2X2_FLOAT16=4]=\"PACKED_2X2_FLOAT16\"})(Pr||(Pr={}));function Lc(r,t){return[t,r]}function XP(r,t){return r*t}function jh(r){let t=y.sizeFromShape(r),e=Math.ceil(t/4);return y.sizeToSquarishShape(e)}function Xi(r,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(r/2))]}function YP(r,t){let[e,n]=Xi(r,t);return e*n*4}function Xh(r,t){let e=r,n,o,s,i,a,u,l,c,p,m;return z().getNumber(\"WEBGL_VERSION\")===2?(n=e.R32F,o=e.R16F,s=e.RGBA16F,i=e.RGBA32F,a=e.RED,l=4,c=1,p=e.HALF_FLOAT,m=e.FLOAT,u=e.RGBA8):(n=r.RGBA,o=r.RGBA,s=r.RGBA,i=e.RGBA,a=r.RGBA,l=4,c=4,p=t!=null?t.HALF_FLOAT_OES:null,m=r.FLOAT,u=r.RGBA),{internalFormatFloat:n,internalFormatHalfFloat:o,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:a,downloadTextureFormat:u,downloadUnpackNumChannels:l,defaultNumChannels:c,textureTypeHalfFloat:p,textureTypeFloat:m}}function yt(r,t){let e=t();return z().getBool(\"DEBUG\")&&itt(r),e}function itt(r){let t=r.getError();if(t!==r.NO_ERROR)throw new Error(\"WebGL Error: \"+ZP(r,t))}var att=596e-10,ltt=65504;function ST(r){return!!(z().getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")||r===0||attr.getExtension(t),'Extension \"'+t+'\" not supported on this browser.')}function vT(r,t){let e=gl(r,()=>r.createShader(r.VERTEX_SHADER),\"Unable to create vertex WebGLShader.\");if(yt(r,()=>r.shaderSource(e,t)),yt(r,()=>r.compileShader(e)),r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw console.log(r.getShaderInfoLog(e)),new Error(\"Failed to compile vertex shader.\");return e}function NT(r,t){let e=gl(r,()=>r.createShader(r.FRAGMENT_SHADER),\"Unable to create fragment WebGLShader.\");if(yt(r,()=>r.shaderSource(e,t)),yt(r,()=>r.compileShader(e)),z().get(\"ENGINE_COMPILE_ONLY\"))return e;if(r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw Cw(t,r.getShaderInfoLog(e)),new Error(\"Failed to compile fragment shader.\");return e}var utt=/ERROR: [0-9]+:([0-9]+):/g;function Cw(r,t){let e=utt.exec(t);if(e==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(r);return}let n=+e[1],o=r.split(`\n`),s=o.length.toString().length+2,i=o.map((p,m)=>y.rightPad((m+1).toString(),s)+p),a=0;for(let p=0;pr.createProgram(),\"Unable to create WebGLProgram.\")}function kT(r,t){if(yt(r,()=>r.linkProgram(t)),!z().get(\"ENGINE_COMPILE_ONLY\")&&r.getProgramParameter(t,r.LINK_STATUS)===!1)throw console.log(r.getProgramInfoLog(t)),new Error(\"Failed to link vertex and fragment shaders.\")}function Yh(r,t){if(yt(r,()=>r.validateProgram(t)),r.getProgramParameter(t,r.VALIDATE_STATUS)===!1)throw console.log(r.getProgramInfoLog(t)),new Error(\"Shader program validation failed.\")}function ET(r,t){let e=gl(r,()=>r.createBuffer(),\"Unable to create WebGLBuffer\");return yt(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),yt(r,()=>r.bufferData(r.ARRAY_BUFFER,t,r.STATIC_DRAW)),e}function _T(r,t){let e=gl(r,()=>r.createBuffer(),\"Unable to create WebGLBuffer\");return yt(r,()=>r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,e)),yt(r,()=>r.bufferData(r.ELEMENT_ARRAY_BUFFER,t,r.STATIC_DRAW)),e}function ctt(){return z().getNumber(\"WEBGL_VERSION\")===2?1:4}function AT(r){return gl(r,()=>r.createTexture(),\"Unable to create WebGLTexture.\")}function $T(r,t){let e=z().getNumber(\"WEBGL_MAX_TEXTURE_SIZE\");if(r<=0||t<=0){let n=`[${r}x${t}]`;throw new Error(\"Requested texture size \"+n+\" is invalid.\")}if(r>e||t>e){let n=`[${r}x${t}]`,o=`[${e}x${e}]`;throw new Error(\"Requested texture size \"+n+\" greater than WebGL maximum on this browser / GPU \"+o+\".\")}}function DT(r){return gl(r,()=>r.createFramebuffer(),\"Unable to create WebGLFramebuffer.\")}function Iw(r,t,e,n,o,s,i){let a=r.getAttribLocation(t,e);return a===-1?!1:(yt(r,()=>r.bindBuffer(r.ARRAY_BUFFER,n)),yt(r,()=>r.vertexAttribPointer(a,o,r.FLOAT,!1,s,i)),yt(r,()=>r.enableVertexAttribArray(a)),!0)}function JP(r,t,e){tL(r,e),yt(r,()=>r.activeTexture(r.TEXTURE0+e)),yt(r,()=>r.bindTexture(r.TEXTURE_2D,t))}function ptt(r,t){tL(r,t),yt(r,()=>r.activeTexture(r.TEXTURE0+t)),yt(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function RT(r,t,e){return gl(r,()=>r.getUniformLocation(t,e),'uniform \"'+e+'\" not present in program.')}function FT(r,t,e){return r.getUniformLocation(t,e)}function OT(r,t,e,n){yt(r,()=>JP(r,t,n)),yt(r,()=>r.uniform1i(e,n))}function mtt(r){yt(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,null)),yt(r,()=>r.viewport(0,0,r.canvas.width,r.canvas.height)),yt(r,()=>r.scissor(0,0,r.canvas.width,r.canvas.height))}function Zh(r,t,e){yt(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,e)),yt(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,t,0))}function Sw(r,t){yt(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,t)),yt(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,null,0))}function md(r){let t=r.checkFramebufferStatus(r.FRAMEBUFFER);if(t!==r.FRAMEBUFFER_COMPLETE)throw new Error(\"Error binding framebuffer: \"+QP(r,t))}function QP(r,t){switch(t){case r.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return\"FRAMEBUFFER_INCOMPLETE_ATTACHMENT\";case r.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return\"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT\";case r.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return\"FRAMEBUFFER_INCOMPLETE_DIMENSIONS\";case r.FRAMEBUFFER_UNSUPPORTED:return\"FRAMEBUFFER_UNSUPPORTED\";default:return`unknown error ${t}`}}function gl(r,t,e){let n=yt(r,()=>t());if(n==null)throw new Error(e);return n}function tL(r,t){let e=r.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,n=t+r.TEXTURE0;if(ne){let o=`[gl.TEXTURE0, gl.TEXTURE${e}]`;throw new Error(`textureUnit must be in ${o}.`)}}function xl(r,t=2){return y.sizeFromShape(r.slice(0,r.length-t))}function yl(r){if(r.length===0)throw Error(\"Cannot get rows and columns of an empty shape array.\");return[r.length>1?r[r.length-2]:1,r[r.length-1]]}function fd(r){let t=[1,1,1];return r.length===0||r.length===1&&r[0]===1||(t=[xl(r),...yl(r)]),t}function PT(r,t=!1){let e=z().getNumber(\"WEBGL_MAX_TEXTURE_SIZE\"),n=z().getNumber(\"WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE\");n===1/0&&z().getBool(\"WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE\")&&(n=e/2),t&&(e=e*2,n=n*2,r=r.map((a,u)=>u>=r.length-2?y.nearestLargerEven(r[u]):r[u]),r.length===1&&(r=[2,r[0]])),r.length!==2&&(r=y.squeezeShape(r).newShape);let o=y.sizeFromShape(r),s=null;r.length<=1&&o<=e?s=[1,o]:r.length===2&&r[0]<=e&&r[1]<=e?s=r:r.length===3&&r[0]*r[1]<=e&&r[2]<=e?s=[r[0]*r[1],r[2]]:r.length===3&&r[0]<=e&&r[1]*r[2]<=e?s=[r[0],r[1]*r[2]]:r.length===4&&r[0]*r[1]*r[2]<=e&&r[3]<=e?s=[r[0]*r[1]*r[2],r[3]]:r.length===4&&r[0]<=e&&r[1]*r[2]*r[3]<=e&&(s=[r[0],r[1]*r[2]*r[3]]);let i=s!=null&&Math.max(...s)>n&&Math.min(...s)<=(t?2:1)&&Math.min(...s)>0;if(s==null||i)if(t){let a=xl(r),u=2,l=2;r.length&&([u,l]=yl(r)),o=a*(u/2)*(l/2),s=y.sizeToSquarishShape(o).map(c=>c*2)}else s=y.sizeToSquarishShape(o);return s}function yw(r){return r%2===0}function Eu(r,t){if(r=r.slice(-2),t=t.slice(-2),y.arraysEqual(r,t)||!r.length||!t.length||r[0]===0||r[1]===0||t[0]===0||t[1]===0)return!0;if(r.length!==t.length){let e=r.slice(-1)[0],n=t.slice(-1)[0];if(e===n||yw(e)&&yw(n)&&(r[0]===1||t[0]===1))return!0}return r[1]===t[1]&&yw(r[0])&&yw(t[0])}var bw,ww;function LT(r){if(bw==null){let t=Gn(r);bw=t.getParameter(t.MAX_TEXTURE_SIZE)}return bw}function ftt(){bw=null}function dtt(){ww=null}function MT(r){if(ww==null){let t=Gn(r);ww=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,ww)}function zT(r){if(r===0)return 0;let t,e=Gn(r);return Wn(e,\"EXT_disjoint_timer_query_webgl2\")&&r===2?t=2:Wn(e,\"EXT_disjoint_timer_query\")?t=1:t=0,t}function Wn(r,t){return r.getExtension(t)!=null}function vw(r){try{if(Gn(r)!=null)return!0}catch(t){return console.log(\"Error when getting WebGL context: \",t),!1}return!1}function BT(r){if(r===0)return!1;let t=Gn(r);if(r===1){if(!Wn(t,\"OES_texture_float\"))return!1}else if(!Wn(t,\"EXT_color_buffer_float\"))return!1;return IT(t)}function VT(r){if(r===0)return!1;let t=Gn(r);if(r===1){if(!Wn(t,\"OES_texture_float\")||!Wn(t,\"WEBGL_color_buffer_float\"))return!1}else{if(Wn(t,\"EXT_color_buffer_float\"))return IT(t);let n=\"EXT_color_buffer_half_float\";if(Wn(t,n)){let o=t.getExtension(n);return htt(t,o)}return!1}return IT(t)}function IT(r){let t=Xh(r),e=r.createTexture();r.bindTexture(r.TEXTURE_2D,e);let n=1,o=1;r.texImage2D(r.TEXTURE_2D,0,t.internalFormatFloat,n,o,0,t.textureFormatFloat,t.textureTypeFloat,null);let s=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,s),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0);let i=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(e),r.deleteFramebuffer(s),i}function htt(r,t){let e=Xh(r,t),n=r.createTexture();r.bindTexture(r.TEXTURE_2D,n);let o=1,s=1;r.texImage2D(r.TEXTURE_2D,0,e.internalFormatHalfFloat,o,s,0,e.textureFormatFloat,e.textureTypeHalfFloat,null);let i=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,i),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,n,0);let a=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(n),r.deleteFramebuffer(i),a}function GT(r){return r!==2?!1:Gn(r).fenceSync!=null}function Qs(r,t){Array.isArray(r)||(r=[r]),r.forEach(e=>{e!=null&&y.assert(e.dtype!==\"complex64\",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var Tt=z();Tt.registerFlag(\"HAS_WEBGL\",()=>Tt.getNumber(\"WEBGL_VERSION\")>0);Tt.registerFlag(\"WEBGL_VERSION\",()=>vw(2)?2:vw(1)?1:0);Tt.registerFlag(\"WEBGL_CHECK_NUMERICAL_PROBLEMS\",()=>!1);Tt.registerFlag(\"WEBGL_BUFFER_SUPPORTED\",()=>Tt.get(\"WEBGL_VERSION\")===2);Tt.registerFlag(\"WEBGL_CPU_FORWARD\",()=>!0);Tt.registerFlag(\"WEBGL_FORCE_F16_TEXTURES\",()=>!1);Tt.registerFlag(\"WEBGL_PACK\",()=>Tt.getBool(\"HAS_WEBGL\"));Tt.registerFlag(\"WEBGL_PACK_NORMALIZATION\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_CLIP\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_DEPTHWISECONV\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_BINARY_OPERATIONS\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_UNARY_OPERATIONS\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_ARRAY_OPERATIONS\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_IMAGE_OPERATIONS\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_REDUCE\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_LAZILY_UNPACK\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_CONV_IM2COL\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_MAX_TEXTURE_SIZE\",()=>LT(Tt.getNumber(\"WEBGL_VERSION\")));Tt.registerFlag(\"WEBGL_MAX_TEXTURES_IN_SHADER\",()=>MT(Tt.getNumber(\"WEBGL_VERSION\")));Tt.registerFlag(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\",()=>{let r=Tt.getNumber(\"WEBGL_VERSION\");return r===0?0:zT(r)});Tt.registerFlag(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\",()=>Tt.getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0&&!Kl.isMobile());Tt.registerFlag(\"WEBGL_RENDER_FLOAT32_CAPABLE\",()=>BT(Tt.getNumber(\"WEBGL_VERSION\")));Tt.registerFlag(\"WEBGL_RENDER_FLOAT32_ENABLED\",()=>Tt.getBool(\"WEBGL_FORCE_F16_TEXTURES\")?!1:Tt.getBool(\"WEBGL_RENDER_FLOAT32_CAPABLE\"));Tt.registerFlag(\"WEBGL_DOWNLOAD_FLOAT_ENABLED\",()=>VT(Tt.getNumber(\"WEBGL_VERSION\")));Tt.registerFlag(\"WEBGL_FENCE_API_ENABLED\",()=>GT(Tt.getNumber(\"WEBGL_VERSION\")));Tt.registerFlag(\"WEBGL_SIZE_UPLOAD_UNIFORM\",()=>Tt.getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")?4:0);Tt.registerFlag(\"WEBGL_DELETE_TEXTURE_THRESHOLD\",()=>-1,r=>{if(r<0&&r!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${r}.`)});Tt.registerFlag(\"WEBGL_FLUSH_THRESHOLD\",()=>Kl.isMobile()?1:-1,r=>{if(r<0&&r!==-1)throw new Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${r}.`)});Tt.registerFlag(\"CPU_HANDOFF_SIZE_THRESHOLD\",()=>128);Tt.registerFlag(\"WEBGL_USE_SHAPES_UNIFORMS\",()=>!1);Tt.registerFlag(\"TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD\",()=>1e5);Tt.registerFlag(\"TOPK_K_CPU_HANDOFF_THRESHOLD\",()=>128);Tt.registerFlag(\"WEBGL_EXP_CONV\",()=>!1);Tt.registerFlag(\"SOFTWARE_WEBGL_ENABLED\",()=>Tt.getBool(\"IS_TEST\"));Tt.registerFlag(\"WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE\",()=>1/0);Tt.registerFlag(\"WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE\",()=>!1);Tt.registerFlag(\"WEBGL2_ISNAN_CUSTOM\",()=>!1);function Ge(){let r,t,e,n,o,s,i,a,u,l;return z().getNumber(\"WEBGL_VERSION\")===2?(r=\"#version 300 es\",t=\"in\",e=\"out\",n=\"in\",o=\"texture\",s=\"outputColor\",i=\"out vec4 outputColor;\",a=z().getBool(\"WEBGL2_ISNAN_CUSTOM\")?`\n bool isnan_custom(float val) {\n uint floatToUint = floatBitsToUint(val);\n return (floatToUint & 0x7fffffffu) > 0x7f800000u;\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 `:\"\",u=\"\",l=`\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 `):(r=\"\",t=\"attribute\",e=\"varying\",n=\"varying\",o=\"texture2D\",s=\"gl_FragColor\",i=\"\",a=`\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 `,u=`\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 `,l=`\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:r,attribute:t,varyingVs:e,varyingFs:n,texture2D:o,output:s,defineOutput:i,defineSpecialNaN:a,defineSpecialInf:u,defineRound:l}}function ti(r,t,e=\"index\"){let n=y.computeStrides(t);return n.map((o,s)=>{let i=`int ${r[s]} = ${e} / ${o}`,a=s===n.length-1?`int ${r[s+1]} = ${e} - ${r[s]} * ${o}`:`index -= ${r[s]} * ${o}`;return`${i}; ${a};`}).join(\"\")}function Mc(r,t,e=\"index\"){let n=y.computeStrides(t);return n.map((o,s)=>{let i=`int ${r[s]} = ${e} / outShapeStrides[${s}]`,a=s===n.length-1?`int ${r[s+1]} = ${e} - ${r[s]} * outShapeStrides[${s}]`:`index -= ${r[s]} * outShapeStrides[${s}]`;return`${i}; ${a};`}).join(\"\")}function gtt(r,t){let e=r.length,n=r.map(s=>`${t}[${s}]`),o=new Array(e-1);o[e-2]=n[e-1];for(let s=e-3;s>=0;--s)o[s]=`(${o[s+1]} * ${n[s+1]})`;return o}function eL(r,t,e=\"index\"){let n=r.map((s,i)=>i),o=gtt(n,t);return o.map((s,i)=>{let a=`int ${r[i]} = ${e} / ${o[i]}`,u=i===o.length-1?`int ${r[i+1]} = ${e} - ${r[i]} * ${o[i]}`:`index -= ${r[i]} * ${o[i]}`;return`${a}; ${u};`}).join(\"\")}function hd(r){let t=y.computeStrides(r).map(e=>e.toString());return`\n int getFlatIndex(ivec3 coords) {\n return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z;\n }\n`}function gd(){return`\n int getFlatIndex(ivec3 coords) {\n return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z;\n }\n`}var Nw=`\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`;var{getBroadcastDims:rL}=v;function nL(r,t,e){let n=[];if(r.forEach(f=>{let d=y.sizeFromShape(f.shapeInfo.logicalShape);if(f.shapeInfo.isUniform?n.push(`uniform float ${f.name}${d>1?`[${d}]`:\"\"};`):(n.push(`uniform sampler2D ${f.name};`),n.push(`uniform int offset${f.name};`)),e.enableShapeUniforms){let{uniformShape:h}=Tw(e.packedInputs,f.shapeInfo.logicalShape,f.shapeInfo.texShape);switch(h.length){case 1:n.push(`uniform int ${f.name}Shape;`);break;case 2:n.push(`uniform ivec2 ${f.name}Shape;`);break;case 3:n.push(`uniform ivec3 ${f.name}Shape;`);break;case 4:n.push(`uniform ivec4 ${f.name}Shape;`);break;default:break}n.push(`uniform ivec2 ${f.name}TexShape;`)}}),e.enableShapeUniforms){switch(t.logicalShape.length){case 1:n.push(\"uniform int outShape;\");break;case 2:n.push(\"uniform ivec2 outShape;\"),n.push(\"uniform int outShapeStrides;\");break;case 3:n.push(\"uniform ivec3 outShape;\"),n.push(\"uniform ivec2 outShapeStrides;\");break;case 4:n.push(\"uniform ivec4 outShape;\"),n.push(\"uniform ivec3 outShapeStrides;\");break;default:break}n.push(\"uniform ivec2 outTexShape;\")}e.customUniforms&&e.customUniforms.forEach(f=>{n.push(`uniform ${f.type} ${f.name}${f.arrayIndex?`[${f.arrayIndex}]`:\"\"};`)});let o=n.join(`\n`),s=r.map(f=>xtt(f,t,e.packedInputs,e.enableShapeUniforms)).join(`\n`),i=t.texShape,a=Ge(),u=wtt(a),l,c,p=Stt(a);return t.isPacked?(l=ytt(t.logicalShape,i,e.enableShapeUniforms),c=Itt(a)):(l=btt(t.logicalShape,i,e.enableShapeUniforms),c=Ctt(a)),e.packedInputs&&(p+=ktt),[p,u,c,o,l,s,e.userCode].join(`\n`)}function yd(r,t=!1){let e=r.shapeInfo.logicalShape;switch(e.length){case 0:return ztt(r,t);case 1:return Vtt(r,t);case 2:return Wtt(r,t);case 3:return Htt(r,t);case 4:return Ktt(r,t);case 5:return jtt(r);case 6:return Xtt(r);default:throw new Error(`${e.length}-D input sampling is not yet supported`)}}function oL(r,t){switch(r.shapeInfo.logicalShape.length){case 0:return Mtt(r);case 1:return Btt(r,t);case 2:return Gtt(r,t);case 3:return Utt(r,t);default:return qtt(r,t)}}function xtt(r,t,e=!1,n){let o=\"\";e?o+=oL(r,n):o+=yd(r,n);let s=r.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(e?o+=Ytt(r,t):o+=Ztt(r,t)),o}function ytt(r,t,e){switch(r.length){case 0:return sL();case 1:return Ett(r,t,e);case 2:return Ptt(r,t,e);case 3:return Att(r,t,e);default:return Dtt(r,t,e)}}function btt(r,t,e){switch(r.length){case 0:return sL();case 1:return _tt(r,t,e);case 2:return Ltt(r,t,e);case 3:return $tt(r,t,e);case 4:return Rtt(r,t,e);case 5:return Ftt(r,t);case 6:return Ott(r,t);default:throw new Error(`${r.length}-D output sampling is not yet supported`)}}function wtt(r){return`\n float sampleTexture(sampler2D textureSampler, vec2 uv) {\n return ${r.texture2D}(textureSampler, uv).r;\n }\n `}function Ctt(r){return`\n void setOutput(float val) {\n ${r.output} = vec4(val, 0, 0, 0);\n }\n `}function Itt(r){return`\n void setOutput(vec4 val) {\n ${r.output} = val;\n }\n `}function Stt(r){return`${r.version}\n precision highp float;\n precision highp int;\n precision highp sampler2D;\n ${r.varyingFs} vec2 resultUV;\n ${r.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 ${r.defineSpecialNaN}\n ${r.defineSpecialInf}\n ${r.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 ${vtt}\n ${Ntt}\n ${Ttt}\n `}var vtt=`\nvec2 uvFromFlat(int texNumR, int texNumC, int index) {\n int texR = index / texNumC;\n int texC = index - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\nvec2 packedUVfrom1D(int texNumR, int texNumC, int index) {\n int texelIndex = index / 2;\n int texR = texelIndex / texNumC;\n int texC = texelIndex - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n`,Ntt=`\nvec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR,\n int texNumC, int row, int col) {\n int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2);\n int texR = texelIndex / texNumC;\n int texC = texelIndex - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n`,Ttt=`\nvec2 packedUVfrom3D(int texNumR, int texNumC,\n int texelsInBatch, int texelsInLogicalRow, int b,\n int row, int col) {\n int index = b * texelsInBatch + (row / 2) * texelsInLogicalRow + (col / 2);\n int texR = index / texNumC;\n int texC = index - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n`,ktt=`\n float getChannel(vec4 frag, vec2 innerDims) {\n vec2 modCoord = mod(innerDims, 2.);\n return modCoord.x == 0. ?\n (modCoord.y == 0. ? frag.r : frag.g) :\n (modCoord.y == 0. ? frag.b : frag.a);\n }\n float getChannel(vec4 frag, int dim) {\n float modCoord = mod(float(dim), 2.);\n return modCoord == 0. ? frag.r : frag.g;\n }\n`;function sL(){return`\n int getOutputCoords() {\n return 0;\n }\n `}function Ett(r,t,e){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return n[0]===1?e?`\n int getOutputCoords() {\n return 2 * int(resultUV.x * ceil(float(outTexShape[1]) / 2.0));\n }\n `:`\n int getOutputCoords() {\n return 2 * int(resultUV.x * ${n[1]}.0);\n }\n `:n[1]===1?e?`\n int getOutputCoords() {\n return 2 * int(resultUV.y * ceil(float(outTexShape[0]) / 2.0));\n }\n `:`\n int getOutputCoords() {\n return 2 * int(resultUV.y * ${n[0]}.0);\n }\n `:e?`\n int getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n return 2 * (resTexRC.x * packedTexShape[1] + resTexRC.y);\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 `}function _tt(r,t,e){return t[0]===1?e?`\n int getOutputCoords() {\n return int(resultUV.x * float(outTexShape[1]));\n }\n `:`\n int getOutputCoords() {\n return int(resultUV.x * ${t[1]}.0);\n }\n `:t[1]===1?e?`\n int getOutputCoords() {\n return int(resultUV.y * float(outTexShape[0]));\n }\n `:`\n int getOutputCoords() {\n return int(resultUV.y * ${t[0]}.0);\n }\n `:e?`\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(outTexShape[0], outTexShape[1]));\n return resTexRC.x * outTexShape[1] + resTexRC.y;\n }\n `:`\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t[0]}, ${t[1]}));\n return resTexRC.x * ${t[1]} + resTexRC.y;\n }\n `}function Att(r,t,e){if(e)return`\n ivec3 getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n int texelsInLogicalRow = int(ceil(float(outShape[2]) / 2.0));\n int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n int index = resTexRC.x * packedTexShape[1] + resTexRC.y;\n\n int b = index / texelsInBatch;\n index -= b * texelsInBatch;\n\n int r = 2 * (index / texelsInLogicalRow);\n int c = imod(index, texelsInLogicalRow) * 2;\n\n return ivec3(b, r, c);\n }\n `;let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],o=Math.ceil(r[2]/2),s=o*Math.ceil(r[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 / ${s};\n index -= b * ${s};\n\n int r = 2 * (index / ${o});\n int c = imod(index, ${o}) * 2;\n\n return ivec3(b, r, c);\n }\n `}function $tt(r,t,e){if(e)return`\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(outTexShape[0], outTexShape[1]));\n int index = resTexRC.x * outTexShape[1] + resTexRC.y;\n ${Mc([\"r\",\"c\",\"d\"],r)}\n return ivec3(r, c, d);\n }\n`;let n=ti([\"r\",\"c\",\"d\"],r);return`\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t[0]}, ${t[1]}));\n int index = resTexRC.x * ${t[1]} + resTexRC.y;\n ${n}\n return ivec3(r, c, d);\n }\n `}function Dtt(r,t,e){if(e)return`\n ivec4 getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n int index = resTexRC.x * packedTexShape[1] + resTexRC.y;\n\n int texelsInLogicalRow = int(ceil(float(outShape[3]) / 2.0));\n int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[2]) / 2.0));\n int texelsInBatchN = texelsInBatch * outShape[1];\n\n int b2 = index / texelsInBatchN;\n index -= b2 * texelsInBatchN;\n\n int b = index / texelsInBatch;\n index -= b * texelsInBatch;\n\n int r = 2 * (index / texelsInLogicalRow);\n int c = imod(index, texelsInLogicalRow) * 2;\n\n return ivec4(b2, b, r, c);\n }\n `;let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],o=Math.ceil(r[r.length-1]/2),s=o*Math.ceil(r[r.length-2]/2),i=s,a=\"\",u=\"b, r, c\";for(let l=2;l=1?c=\"coords = 0;\":c=a.map(b=>`coords.${p[b+l]} = 0;`).join(`\n`);let m=\"\";i<2&&s>0?m=\"coords\":m=r.shapeInfo.logicalShape.map((b,w)=>`coords.${p[w+l]}`).join(\", \");let f=\"return outputValue;\",h=y.sizeFromShape(r.shapeInfo.logicalShape)===1,x=y.sizeFromShape(t.logicalShape)===1;if(s===1&&!h&&!x)f=`\n return vec4(outputValue.xy, outputValue.xy);\n `;else if(h&&!x)i===1?f=`\n return vec4(outputValue.x, outputValue.x, 0., 0.);\n `:f=`\n return vec4(outputValue.x);\n `;else if(a.length){let b=s-2,w=s-1;a.indexOf(b)>-1&&a.indexOf(w)>-1?f=\"return vec4(outputValue.x);\":a.indexOf(b)>-1?f=\"return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);\":a.indexOf(w)>-1&&(f=\"return vec4(outputValue.xx, outputValue.zz);\")}return`\n vec4 ${o}() {\n ${u} coords = getOutputCoords();\n ${c}\n vec4 outputValue = get${n}(${m});\n ${f}\n }\n `}function Ztt(r,t){let e=r.name,n=e.charAt(0).toUpperCase()+e.slice(1),o=\"get\"+n+\"AtOutCoords\",s=t.texShape,i=r.shapeInfo.texShape,a=r.shapeInfo.logicalShape.length,u=t.logicalShape.length;if(!r.shapeInfo.isUniform&&a===u&&r.shapeInfo.flatOffset==null&&y.arraysEqual(i,s))return`\n float ${o}() {\n return sampleTexture(${e}, resultUV);\n }\n `;let l=zt(u),c=rL(r.shapeInfo.logicalShape,t.logicalShape),p=u-a,m,f=[\"x\",\"y\",\"z\",\"w\",\"u\",\"v\"];a===0?m=\"\":u<2&&c.length>=1?m=\"coords = 0;\":m=c.map(h=>`coords.${f[h+p]} = 0;`).join(`\n`);let d=\"\";return u<2&&a>0?d=\"coords\":d=r.shapeInfo.logicalShape.map((h,g)=>`coords.${f[g+p]}`).join(\", \"),`\n float ${o}() {\n ${l} coords = getOutputCoords();\n ${m}\n return get${n}(${d});\n }\n `}function zt(r){if(r<=1)return\"int\";if(r===2)return\"ivec2\";if(r===3)return\"ivec3\";if(r===4)return\"ivec4\";if(r===5)return\"ivec5\";if(r===6)return\"ivec6\";throw Error(`GPU for rank ${r} is not yet supported`)}function Tw(r,t,e){let{newShape:n,keptDims:o}=y.squeezeShape(t),s=t.length,i=r&&s===3&&t[0]===1,a=i?t.slice(1):n,u=!r&&s>1&&!y.arraysEqual(t,e)&&n.lengthr[e]).join(\", \")}function aL(r,t,e,n){let o=e.map((c,p)=>{let m={logicalShape:c.shape,texShape:c.isUniform?null:c.texData.texShape,isUniform:c.isUniform,isPacked:c.isUniform?!1:c.texData.isPacked,flatOffset:null};return c.texData!=null&&c.texData.slice!=null&&c.texData.slice.flatOffset>0&&(m.flatOffset=c.texData.slice.flatOffset),{name:t.variableNames[p],shapeInfo:m}}),s=o.map(c=>c.shapeInfo),i={logicalShape:n.shape,texShape:n.texData.texShape,isUniform:!1,isPacked:n.texData.isPacked,flatOffset:null},a=nL(o,i,t),u=NT(r.gl,a),l=r.createProgram(u);return z().get(\"ENGINE_COMPILE_ONLY\")?{program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i,uniformLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,inShapesLocations:null,inTexShapesLocations:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:Object.assign({program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i},WT(r,t,l))}function WT(r,t,e){let n={},o={},s={},i=[],a,u,l,c=null,p=null;p=r.getUniformLocation(e,\"NAN\",!1),z().getNumber(\"WEBGL_VERSION\")===1&&(c=r.getUniformLocation(e,\"INFINITY\",!1));let m=!1;for(let f=0;f{i[d]=r.getUniformLocation(e,f.name,m)}),{uniformLocations:n,customUniformLocations:i,infLoc:c,nanLoc:p,inShapesLocations:o,inTexShapesLocations:s,outShapeLocation:a,outShapeStridesLocation:l,outTexShapeLocation:u}}function iL(r,t){if(r.length!==t.length)throw Error(`Binary was compiled with ${r.length} inputs, but was executed with ${t.length} inputs`);r.forEach((e,n)=>{let o=e.logicalShape,s=t[n],i=s.shape;if(!y.arraysEqual(o,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${o} and ${i} must match`);if(e.isUniform&&s.isUniform)return;let a=e.texShape,u=s.isUniform?null:s.texData.texShape;if(!y.arraysEqual(a,u))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${a} and ${u} must match`)})}function lL(r,t,e,n,o){t.program.enableShapeUniforms||(iL(t.inShapeInfos,e),iL([t.outShapeInfo],[n]));let s=n.texData.texture,i=n.texData.texShape;n.texData.isPacked?r.setOutputPackedMatrixTexture(s.texture,i[0],i[1]):r.setOutputMatrixTexture(s.texture,i[0],i[1]),r.setProgram(t.webGLProgram),z().getNumber(\"WEBGL_VERSION\")===1&&t.infLoc!==null&&r.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&r.gl.uniform1f(t.nanLoc,NaN),e.forEach((u,l)=>{let c=t.program.variableNames[l],p=t.uniformLocations[c],m=t.uniformLocations[`offset${c}`],f=t.inShapesLocations[`${c}Shape`],d=t.inTexShapesLocations[`${c}TexShape`];if(f){let{uniformShape:h}=Tw(t.program.packedInputs,u.shape,u.texData.texShape);switch(h.length){case 1:r.gl.uniform1iv(f,new Int32Array(h));break;case 2:r.gl.uniform2iv(f,new Int32Array(h));break;case 3:r.gl.uniform3iv(f,new Int32Array(h));break;case 4:r.gl.uniform4iv(f,new Int32Array(h));break;default:break}}if(d&&r.gl.uniform2i(d,u.texData.texShape[0],u.texData.texShape[1]),p!=null){if(u.isUniform){if(y.sizeFromShape(u.shape)<2)r.gl.uniform1f(p,u.uniformValues[0]);else{let h=u.uniformValues;h instanceof Float32Array||(h=new Float32Array(h)),r.gl.uniform1fv(p,h)}return}u.texData.slice!=null&&m!=null&&r.gl.uniform1i(m,u.texData.slice.flatOffset),r.setInputMatrixTexture(u.texData.texture.texture,p,l)}});let a=t.outShapeLocation;if(a)switch(n.shape.length){case 1:r.gl.uniform1iv(a,new Int32Array(n.shape));break;case 2:r.gl.uniform2iv(a,new Int32Array(n.shape));break;case 3:r.gl.uniform3iv(a,new Int32Array(n.shape));break;case 4:r.gl.uniform4iv(a,new Int32Array(n.shape));break;default:break}if(t.outShapeStridesLocation){let u=y.computeStrides(n.shape);switch(n.shape.length){case 2:r.gl.uniform1iv(t.outShapeStridesLocation,new Int32Array(u));break;case 3:r.gl.uniform2iv(t.outShapeStridesLocation,new Int32Array(u));break;case 4:r.gl.uniform3iv(t.outShapeStridesLocation,new Int32Array(u));break;default:break}}t.outTexShapeLocation&&r.gl.uniform2i(t.outTexShapeLocation,n.texData.texShape[0],n.texData.texShape[1]),t.program.customUniforms&&o&&t.program.customUniforms.forEach((u,l)=>{let c=t.customUniformLocations[l],p=o[l];if(u.type===\"float\")r.gl.uniform1fv(c,p);else if(u.type===\"vec2\")r.gl.uniform2fv(c,p);else if(u.type===\"vec3\")r.gl.uniform3fv(c,p);else if(u.type===\"vec4\")r.gl.uniform4fv(c,p);else if(u.type===\"int\")r.gl.uniform1iv(c,p);else if(u.type===\"ivec2\")r.gl.uniform2iv(c,p);else if(u.type===\"ivec3\")r.gl.uniform3iv(c,p);else if(u.type===\"ivec4\")r.gl.uniform4iv(c,p);else throw Error(`uniform type ${u.type} is not supported yet.`)}),r.executeProgram()}function uL(r,t,e){let n=\"\";t.concat(e).forEach(i=>{let a=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0;if(r.enableShapeUniforms&&!i.isUniform){let u=i.texData.texShape,{useSqueezeShape:l,uniformShape:c,keptDims:p}=Tw(r.packedInputs,i.shape,u),m=\"\",f=\"\",d=\"\";if(c.length===1&&r.packedInputs){let N=[Math.ceil(u[0]/2),Math.ceil(u[1]/2)];m=`${N[0]>1}_${N[1]>1}`}else if(c.length===2&&!r.packedInputs)f=`${c[0]>1}_${c[1]>1}`;else if(c.length>2&&!r.packedInputs){let N=y.computeStrides(c);d=`${N[0]===u[1]}_${N[N.length-1]===u[1]}`}let h=i.shape.length,g=c.length===2&&y.arraysEqual(i.shape,u),x=y.sizeFromShape(i.shape)===1,b=v.getBroadcastDims(i.shape,e.shape),w=!r.packedInputs&&h===e.shape.length&&y.arraysEqual(u,e.texData.texShape),C=r.packedInputs||c.length>2?\"\":`${u[0]>1}_${u[1]>1}`;n+=`${h}_${w}_${l?p:\"\"}_${c.length}_${x}_${b}_${g}_${m}_${f}_${d}_${C}_${a}`}else{let u=i.isUniform?\"uniform\":i.texData.texShape;n+=`${i.shape}_${u}_${a}`}});let o=r.userCode,s=r.constructor.name;return s+=\"_\"+n+\"_\"+o+`${z().getNumber(\"WEBGL_VERSION\")}`,s}function we(r){return z().getBool(\"WEBGL_USE_SHAPES_UNIFORMS\")&&r<=4}var kw=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=ku.DENSE,this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let e=Ge();this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms?Mc([\"r\",\"c\",\"d\"],t):ti([\"r\",\"c\",\"d\"],t)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1]));\n int index = 4 * (resTexRC.x * texShape[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 ${e.output} = result;\n }\n `}};var Ew=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=ku.DENSE,this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let e=Ge();this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms?Mc([\"r\",\"c\",\"d\"],t):ti([\"r\",\"c\",\"d\"],t)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1]));\n int index = 4 * (resTexRC.x * texShape[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 ${e.output} = result;\n }\n `}};var _w=class{constructor(t){this.variableNames=[\"A\"],this.outTexUsage=jr.DOWNLOAD;let e=Ge();this.outputShape=t,this.userCode=`\n ${Nw}\n\n void main() {\n float x = getAAtOutCoords();\n ${e.output} = encode_float(x);\n }\n `}};var Aw=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=jr.DOWNLOAD;let e=Ge();this.outputShape=t,this.userCode=`\n ${Nw}\n\n void main() {\n ivec3 coords = getOutputCoords();\n float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z));\n ${e.output} = encode_float(x);\n }\n `}};var tet={R:0,G:1,B:2,A:3},Jh=class{constructor(t,e=!1,n=\"RGBA\"){this.variableNames=[\"A\"],this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let o=Ge();this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length);let s=\"result\";e&&(s=\"floor(result * 255. + 0.5)\");let i=\"\";for(let a=0;aJT,createBufferFromOutputTexture:()=>ek,createFloat16MatrixTexture:()=>jT,createFloat16PackedMatrixTexture:()=>ZT,createFloat32MatrixTexture:()=>KT,createIndexBuffer:()=>qT,createPackedMatrixTexture:()=>YT,createUnsignedBytesMatrixTexture:()=>XT,createVertexBuffer:()=>HT,createVertexShader:()=>UT,downloadByteEncodedFloatMatrixFromOutputTexture:()=>nk,downloadFloat32MatrixFromBuffer:()=>rk,downloadMatrixFromPackedOutputTexture:()=>sk,downloadPackedMatrixFromBuffer:()=>ok,getInternalFormatForFloat16MatrixTexture:()=>Rw,getInternalFormatForFloat16PackedMatrixTexture:()=>Pw,getInternalFormatForFloat32MatrixTexture:()=>Dw,getInternalFormatForPackedMatrixTexture:()=>Ow,getInternalFormatForUnsignedBytesMatrixTexture:()=>Fw,uploadDenseMatrixToTexture:()=>QT,uploadPixelDataToTexture:()=>tk});function UT(r){let t=Ge(),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 }`;return vT(r,e)}function HT(r){let t=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return ET(r,t)}function qT(r){let t=new Uint16Array([0,1,2,2,1,3]);return _T(r,t)}function Qh(r,t,e,n,o,s){$T(t,e);let i=AT(r),a=r.TEXTURE_2D;return yt(r,()=>r.bindTexture(a,i)),yt(r,()=>r.texParameteri(a,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE)),yt(r,()=>r.texParameteri(a,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE)),yt(r,()=>r.texParameteri(a,r.TEXTURE_MIN_FILTER,r.NEAREST)),yt(r,()=>r.texParameteri(a,r.TEXTURE_MAG_FILTER,r.NEAREST)),z().getNumber(\"WEBGL_VERSION\")===1?yt(r,()=>r.texImage2D(a,0,n,t,e,0,o,s,null)):yt(r,()=>r.texStorage2D(a,1,n,t,e)),yt(r,()=>r.bindTexture(r.TEXTURE_2D,null)),{texture:i,texShape:[e,t]}}function Dw(r){return r.internalFormatFloat}function KT(r,t,e,n){let[o,s]=Lc(t,e);return Qh(r,o,s,Dw(n),n.textureFormatFloat,r.FLOAT)}function Rw(r){return r.internalFormatHalfFloat}function jT(r,t,e,n){let[o,s]=Lc(t,e);return Qh(r,o,s,Rw(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function Fw(r){return r.downloadTextureFormat}function XT(r,t,e,n){let[o,s]=Lc(t,e);return Qh(r,o,s,Fw(n),r.RGBA,r.UNSIGNED_BYTE)}function Ow(r){return r.internalFormatPackedFloat}function YT(r,t,e,n){let[o,s]=Xi(t,e);return Qh(r,o,s,Ow(n),r.RGBA,r.FLOAT)}function Pw(r){return r.internalFormatPackedHalfFloat}function ZT(r,t,e,n){let[o,s]=Xi(t,e);return Qh(r,o,s,Pw(n),r.RGBA,n.textureTypeHalfFloat)}function JT(r,t,e){return yt(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),Iw(r,t,\"clipSpacePos\",e,3,20,0)&&Iw(r,t,\"uv\",e,2,20,12)}function QT(r,t,e,n,o,s){yt(r,()=>r.bindTexture(r.TEXTURE_2D,t));let i,a,u;o instanceof Uint8Array?(i=new Uint8Array(e*n*4),a=r.UNSIGNED_BYTE,u=r.RGBA):(i=new Float32Array(e*n*4),a=r.FLOAT,u=s.internalFormatPackedFloat),i.set(o),z().getNumber(\"WEBGL_VERSION\")===2?yt(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,e,n,r.RGBA,a,i)):yt(r,()=>r.texImage2D(r.TEXTURE_2D,0,u,e,n,0,r.RGBA,a,i)),yt(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function tk(r,t,e){yt(r,()=>r.bindTexture(r.TEXTURE_2D,t)),e.data instanceof Uint8Array?z().getNumber(\"WEBGL_VERSION\")===2?yt(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,e.width,e.height,r.RGBA,r.UNSIGNED_BYTE,e.data)):yt(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,e.width,e.height,0,r.RGBA,r.UNSIGNED_BYTE,e.data)):z().getNumber(\"WEBGL_VERSION\")===2?yt(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,e)):yt(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e)),yt(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function ek(r,t,e,n){let o=r.createBuffer();yt(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,o));let a=4*4*t*e;return yt(r,()=>r.bufferData(r.PIXEL_PACK_BUFFER,a,r.STREAM_READ)),yt(r,()=>r.readPixels(0,0,e,t,r.RGBA,r.FLOAT,0)),yt(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,null)),o}function rk(r,t,e){let n=r,o=new Float32Array(e);return n.bindBuffer(n.PIXEL_PACK_BUFFER,t),n.getBufferSubData(n.PIXEL_PACK_BUFFER,0,o),n.bindBuffer(n.PIXEL_PACK_BUFFER,null),o}function nk(r,t,e,n){let[o,s]=Lc(t,e),i=4,a=new Uint8Array(XP(t*e,i));return yt(r,()=>r.readPixels(0,0,o,s,n.downloadTextureFormat,r.UNSIGNED_BYTE,a)),new Float32Array(a.buffer)}function ok(r,t,e,n,o,s,i,a){let u=r,l=new Float32Array(YP(s,i));return u.bindBuffer(u.PIXEL_PACK_BUFFER,t),u.getBufferSubData(u.PIXEL_PACK_BUFFER,0,l),u.bindBuffer(u.PIXEL_PACK_BUFFER,null),l}function sk(r,t,e){let n=new Float32Array(t*e*4);return yt(r,()=>r.readPixels(0,0,e,t,r.RGBA,r.FLOAT,n)),n}var Bc=class{constructor(t){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let e=z().getNumber(\"WEBGL_VERSION\");t!=null?(this.gl=t,wT(e,t)):this.gl=Gn(e);let n=\"WEBGL_color_buffer_float\",o=\"EXT_color_buffer_half_float\";if(this.parallelCompilationExtension=this.gl.getExtension(\"KHR_parallel_shader_compile\"),z().getNumber(\"WEBGL_VERSION\")===1){let s=\"OES_texture_float\",i=\"OES_texture_half_float\";if(this.textureFloatExtension=pd(this.gl,s),Wn(this.gl,i))this.textureHalfFloatExtension=pd(this.gl,i);else if(z().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),Wn(this.gl,o))this.colorBufferHalfFloatExtension=pd(this.gl,o);else if(z().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\",Wn(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(Wn(this.gl,o))this.colorBufferHalfFloatExtension=this.gl.getExtension(o);else throw new Error(\"GL context does not support color renderable floats\");this.vertexBuffer=HT(this.gl),this.indexBuffer=qT(this.gl),this.framebuffer=DT(this.gl),this.textureConfig=Xh(this.gl,this.textureHalfFloatExtension)}get debug(){return z().getBool(\"DEBUG\")}dispose(){if(this.disposed)return;this.program!=null&&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.\"),this.outputTexture!=null&&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.\");let t=this.gl;yt(t,()=>t.finish()),yt(t,()=>t.bindFramebuffer(t.FRAMEBUFFER,null)),yt(t,()=>t.deleteFramebuffer(this.framebuffer)),yt(t,()=>t.bindBuffer(t.ARRAY_BUFFER,null)),yt(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)),yt(t,()=>t.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(t,e){return this.throwIfDisposed(),KT(this.gl,t,e,this.textureConfig)}createFloat16MatrixTexture(t,e){return this.throwIfDisposed(),jT(this.gl,t,e,this.textureConfig)}createUnsignedBytesMatrixTexture(t,e){return this.throwIfDisposed(),XT(this.gl,t,e,this.textureConfig)}uploadPixelDataToTexture(t,e){this.throwIfDisposed(),tk(this.gl,t,e)}uploadDenseMatrixToTexture(t,e,n,o){this.throwIfDisposed(),QT(this.gl,t,e,n,o,this.textureConfig)}createFloat16PackedMatrixTexture(t,e){return this.throwIfDisposed(),ZT(this.gl,t,e,this.textureConfig)}createPackedMatrixTexture(t,e){return this.throwIfDisposed(),YT(this.gl,t,e,this.textureConfig)}deleteMatrixTexture(t){this.throwIfDisposed(),this.outputTexture===t&&(Sw(this.gl,this.framebuffer),this.outputTexture=null),yt(this.gl,()=>this.gl.deleteTexture(t))}downloadByteEncodedFloatMatrixFromOutputTexture(t,e,n){return this.downloadMatrixDriver(t,()=>nk(this.gl,e,n,this.textureConfig))}downloadPackedMatrixFromBuffer(t,e,n,o,s,i){return ok(this.gl,t,e,n,o,s,i,this.textureConfig)}downloadFloat32MatrixFromBuffer(t,e){return rk(this.gl,t,e)}createBufferFromTexture(t,e,n){this.bindTextureToFrameBuffer(t);let o=ek(this.gl,e,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),o}createAndWaitForFence(){let t=this.createFence(this.gl);return this.pollFence(t)}createFence(t){let e,n;if(z().getBool(\"WEBGL_FENCE_API_ENABLED\")){let o=t,s=o.fenceSync(o.SYNC_GPU_COMMANDS_COMPLETE,0);t.flush(),n=()=>{let i=o.clientWaitSync(s,0,0);return i===o.ALREADY_SIGNALED||i===o.CONDITION_SATISFIED},e=s}else z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0?(e=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(e,z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))):n=()=>!0;return{query:e,isFencePassed:n}}downloadMatrixFromPackedTexture(t,e,n){return this.downloadMatrixDriver(t,()=>sk(this.gl,e,n))}createProgram(t){this.throwIfDisposed();let e=this.gl;this.vertexShader==null&&(this.vertexShader=UT(e));let n=TT(e);return yt(e,()=>e.attachShader(n,this.vertexShader)),yt(e,()=>e.attachShader(n,t)),kT(e,n),this.debug&&Yh(e,n),this.vertexAttrsAreBound||(this.setProgram(n),this.vertexAttrsAreBound=JT(e,this.program,this.vertexBuffer)),n}deleteProgram(t){this.throwIfDisposed(),t===this.program&&(this.program=null),t!=null&&yt(this.gl,()=>this.gl.deleteProgram(t))}setProgram(t){this.throwIfDisposed(),this.program=t,this.program!=null&&this.debug&&Yh(this.gl,this.program),yt(this.gl,()=>this.gl.useProgram(t))}getUniformLocation(t,e,n=!0){return this.throwIfDisposed(),n?RT(this.gl,t,e):FT(this.gl,t,e)}getAttributeLocation(t,e){return this.throwIfDisposed(),yt(this.gl,()=>this.gl.getAttribLocation(t,e))}getUniformLocationNoThrow(t,e){return this.throwIfDisposed(),this.gl.getUniformLocation(t,e)}setInputMatrixTexture(t,e,n){this.throwIfDisposed(),this.throwIfNoProgram(),OT(this.gl,t,e,n)}setOutputMatrixTexture(t,e,n){this.setOutputMatrixTextureDriver(t,n,e)}setOutputPackedMatrixTexture(t,e,n){this.throwIfDisposed();let[o,s]=Xi(e,n);this.setOutputMatrixTextureDriver(t,o,s)}setOutputMatrixWriteRegion(t,e,n,o){this.setOutputMatrixWriteRegionDriver(n,t,o,e)}setOutputPackedMatrixWriteRegion(t,e,n,o){throw new Error(\"setOutputPackedMatrixWriteRegion not implemented.\")}debugValidate(){this.program!=null&&Yh(this.gl,this.program),md(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let t=this.gl;this.debug&&this.debugValidate(),yt(t,()=>t.drawElements(t.TRIANGLES,6,t.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),yt(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=pd(this.gl,z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")===2?\"EXT_disjoint_timer_query_webgl2\":\"EXT_disjoint_timer_query\")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")===2){let n=this.gl,o=this.getQueryTimerExtensionWebGL2(),s=n.createQuery();return n.beginQuery(o.TIME_ELAPSED_EXT,s),s}let t=this.getQueryTimerExtensionWebGL1(),e=t.createQueryEXT();return t.beginQueryEXT(t.TIME_ELAPSED_EXT,e),e}endQuery(){if(z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")===2){let e=this.gl,n=this.getQueryTimerExtensionWebGL2();e.endQuery(n.TIME_ELAPSED_EXT);return}let t=this.getQueryTimerExtensionWebGL1();t.endQueryEXT(t.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(t){return await y.repeatedTry(()=>this.disposed||this.isQueryAvailable(t,z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))),this.getQueryTime(t,z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))}getQueryTime(t,e){if(e===0)return null;if(e===2){let n=this.gl;return n.getQueryParameter(t,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(t,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(t,e){if(e===0)return!0;if(e===2){let n=this.gl,o=this.getQueryTimerExtensionWebGL2(),s=n.getQueryParameter(t,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(o.GPU_DISJOINT_EXT)),s&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),o=n.getQueryObjectEXT(t,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),o&&!this.disjoint}}pollFence(t){return new Promise(e=>{this.addItemToPoll(()=>t.isFencePassed(),()=>e())})}pollItems(){let t=eet(this.itemsToPoll.map(e=>e.isDoneFn));for(let e=0;e<=t;++e){let{resolveFn:n}=this.itemsToPoll[e];n()}this.itemsToPoll=this.itemsToPoll.slice(t+1)}addItemToPoll(t,e){if(this.itemsToPoll.push({isDoneFn:t,resolveFn:e}),this.itemsToPoll.length>1)return;let n;\"setTimeoutCustom\"in z().platform&&(n=z().platform.setTimeoutCustom.bind(z().platform)),y.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(t){this.throwIfDisposed(),Zh(this.gl,t,this.framebuffer),this.debug&&md(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(Zh(this.gl,this.outputTexture,this.framebuffer),this.debug&&md(this.gl)):Sw(this.gl,this.framebuffer)}downloadMatrixDriver(t,e){this.bindTextureToFrameBuffer(t);let n=e();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(t,e,n){this.throwIfDisposed();let o=this.gl;Zh(o,t,this.framebuffer),this.debug&&md(o),this.outputTexture=t,yt(o,()=>o.viewport(0,0,e,n)),yt(o,()=>o.scissor(0,0,e,n))}setOutputMatrixWriteRegionDriver(t,e,n,o){this.throwIfDisposed(),yt(this.gl,()=>this.gl.scissor(t,e,n,o))}throwIfDisposed(){if(this.disposed)throw new Error(\"Attempted to use disposed GPGPUContext.\")}throwIfNoProgram(){if(this.program==null)throw new Error(\"No GPU program is currently set.\")}};function eet(r){let t=0;for(;t`${r}.${e}`)}function Qe(r,t){return t===1?[r]:ak(r,t)}function QL(r,t){if(r===1)return\"rc\";let e=\"\";for(let n=0;n ${this.enableShapeUniforms?\"outShape\":this.outputShape[0]}`;let e=\"\";for(let n=this.rank-2;n= ${this.enableShapeUniforms?`outShape[${n}]`:this.outputShape[n]}`,n= ${n};\n bool rEdge = rp1 >= ${o};\n `}getOutput(t){let e=this.getSourceCoordsArr(t);return this.rank===1?`getA(rc), (rc + 1 >= ${this.enableShapeUniforms?\"outShape\":this.outputShape[0]} ? 0. : getA(rc + 1)), 0, 0`:`getA(${e[0]}),\n cEdge ? 0. : getA(${e[1]}),\n rEdge ? 0. : getA(${e[2]}),\n rEdge || cEdge ? 0. : getA(${e[3]})`}};var Id=class{constructor(t,e){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"inputShape\",type:\"ivec3\"}],this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length);let n=\"\";for(let o=0;o<4;o++){let s=\"thisRC = rc;\";o%2===1&&(s+=\"thisRC.z += 1;\"),o>1&&(s+=\"thisRC.y += 1;\"),n+=`\n ${s}\n ${o>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[${o}] =\n getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims);\n ${o>0?\"}\":\"\"}\n `}this.userCode=`\n ${ret(e,this.enableShapeUniforms)}\n ${this.enableShapeUniforms?gd():hd(t)}\n\n void main() {\n ivec3 rc = getOutputCoords();\n\n vec4 result = vec4(0.);\n\n ivec3 thisRC;\n int rows = ${this.enableShapeUniforms?\"outShape[1]\":t[1]};\n int cols = ${this.enableShapeUniforms?\"outShape[2]\":t[2]};\n\n ${n}\n\n setOutput(result);\n }\n `}};function ret(r,t){return`\n ivec3 inputCoordsFromReshapedOutCoords(int index) {\n ${t?eL([\"r\",\"c\",\"d\"],\"inputShape\"):ti([\"r\",\"c\",\"d\"],r)}\n return ivec3(r, c, d);\n }\n `}var Vw=class{constructor(t){this.gpgpu=t,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(t,e,n){let o=eM(e,n),s=rM(t,o,n);s in this.freeTextures||(this.freeTextures[s]=[]),s in this.usedTextures||(this.usedTextures[s]=[]);let i=tM(t,o,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[s].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=i,this.log();let u=this.freeTextures[s].shift();return this.usedTextures[s].push(u),u}let a;return o===Pr.PACKED_2X2_FLOAT32?a=this.gpgpu.createPackedMatrixTexture(t[0],t[1]):o===Pr.PACKED_2X2_FLOAT16?a=this.gpgpu.createFloat16PackedMatrixTexture(t[0],t[1]):o===Pr.UNPACKED_FLOAT32?a=this.gpgpu.createFloat32MatrixTexture(t[0],t[1]):o===Pr.UNPACKED_FLOAT16?a=this.gpgpu.createFloat16MatrixTexture(t[0],t[1]):o===Pr.PACKED_4X1_UNSIGNED_BYTE&&(a=this.gpgpu.createUnsignedBytesMatrixTexture(t[0],t[1])),this.usedTextures[s].push(a),this.numUsedTextures++,this._numBytesAllocated+=i,this.log(),a}releaseTexture(t,e,n,o){if(this.freeTextures==null)return;let s=eM(n,o),i=rM(e,s,o);i in this.freeTextures||(this.freeTextures[i]=[]);let a=tM(e,s,this.gpgpu.gl,this.gpgpu.textureConfig,o),u=z().get(\"WEBGL_DELETE_TEXTURE_THRESHOLD\");u!==-1&&this._numBytesAllocated>u?(this.gpgpu.deleteMatrixTexture(t.texture),this._numBytesAllocated-=a):(this.freeTextures[i].push(t),this.numFreeTextures++,this._numBytesFree+=a),this.numUsedTextures--;let l=this.usedTextures[i],c=l.indexOf(t);if(c<0)throw new Error(\"Cannot release a texture that was never provided by this texture manager\");l.splice(c,1),this.log()}log(){if(!this.logEnabled)return;let t=this.numFreeTextures+this.numUsedTextures;console.log(\"Free/Used\",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${t})`);let e=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*e)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures!=null){for(let t in this.freeTextures)this.freeTextures[t].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});for(let t in this.usedTextures)this.usedTextures[t].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function net(r,t){let e=r;if(t===e.R32F)return 4;if(t===e.R16F)return 2;if(t===e.RGBA32F)return 16;if(t===r.RGBA)return 16;if(t===e.RGBA16F)return 8;if(t===e.RGBA8)return 4;throw new Error(`Unknown internal format ${t}`)}function tM(r,t,e,n,o){let s=oet(t,n),i;if(o){let[u,l]=Xi(r[0],r[1]);i=u*l}else{let[u,l]=Lc(r[0],r[1]);i=u*l}let a=net(e,s);return i*a}function oet(r,t){switch(r){case Pr.PACKED_2X2_FLOAT32:return Ow(t);case Pr.PACKED_2X2_FLOAT16:return Pw(t);case Pr.UNPACKED_FLOAT32:return Dw(t);case Pr.UNPACKED_FLOAT16:return Rw(t);case Pr.PACKED_4X1_UNSIGNED_BYTE:return Fw(t);default:throw new Error(`Unknown physical texture type ${r}`)}}function set(r){return z().getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")?r?Pr.PACKED_2X2_FLOAT32:Pr.UNPACKED_FLOAT32:r?Pr.PACKED_2X2_FLOAT16:Pr.UNPACKED_FLOAT16}function eM(r,t){if(r===jr.UPLOAD)return Pr.PACKED_2X2_FLOAT32;if(r===jr.RENDER||r==null)return set(t);if(r===jr.DOWNLOAD||r===jr.PIXELS)return Pr.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${r}`)}function rM(r,t,e){return`${r[0]}_${r[1]}_${t}_${e}`}var tn=class{constructor(t,e){this.variableNames=[\"A\"],this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=`\n float unaryOperation(float x) {\n ${e}\n }\n\n void main() {\n float x = getAAtOutCoords();\n float y = unaryOperation(x);\n\n setOutput(y);\n }\n `}},fr=\"if (isnan(x)) return x;\",nM=\"return x;\",lk=\"return abs(x);\";var oM=\"return (x >= 0.0) ? x : (exp(x) - 1.0);\",sM=fr+`\n return (x < 0.0) ? 0.0 : x;\n`,iM=fr+`\n return (x < 0.0) ? 0.0 : min(6.0, x);\n`,Gc=\"return x;\",aM=\"return 1.0 / (1.0 + exp(-1.0 * x));\";var uM=\"return x;\",cM=`\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`,pM=`\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`,mM=`\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`,fM=\"return 1.0 / (1.0 + exp(-1.0 * x));\",so=class{constructor(t,e){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=`\n vec4 unaryOperation(vec4 x) {\n ${e}\n }\n\n void main() {\n vec4 x = getAAtOutCoords();\n vec4 y = unaryOperation(x);\n\n setOutput(y);\n }\n `}};var Gw=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length);let e=t.length,n=Qe(\"rc\",e),o=zt(e),s=QL(e,n),i=n.slice(-2),a=e<=1?\"rc\":`vec2(${i.join(\",\")})`;this.userCode=`\n void main() {\n ${o} rc = getOutputCoords();\n vec4 packedInput = getA(${s});\n\n setOutput(getChannel(packedInput, ${a}));\n }\n `}};var aet=Ur.whereImpl,uet=1e-7,cet=1e-4,Ww={};function pet(r){return r in Ww||(Ww[r]={}),Ww[r]}var met=z().getNumber(\"CPU_HANDOFF_SIZE_THRESHOLD\"),fet=600;function det(){return z().global.screen==null?1024:z().global.screen.height*z().global.screen.width*window.devicePixelRatio*fet/1024/1024}var _u=class extends zo{constructor(t){if(super(),this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.lastGlFlushTime=0,this.warnedAboutMemory=!1,this.pendingDeletes=0,this.disposed=!1,!z().getBool(\"HAS_WEBGL\"))throw new Error(\"WebGL is not supported on this device\");let e;if(t!=null){if(t instanceof Bc)e=t;else{let n=Gn(z().getNumber(\"WEBGL_VERSION\"),t);e=new Bc(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=Gn(z().getNumber(\"WEBGL_VERSION\"));e=new Bc(n),this.binaryCache=pet(z().getNumber(\"WEBGL_VERSION\")),this.gpgpuCreatedLocally=!0}this.gpgpu=e,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new Vw(this.gpgpu),this.numMBBeforeWarning=det(),this.texData=new ra(this,Pn())}nextDataId(){return _u.nextDataId++}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}writeTexture(t,e,n,o,s,i){let a=this.makeTensorInfo(e,n),u=this.texData.get(a.dataId);u.isPacked=!1,u.texture={texture:t,texShape:[o,s]},u.texShape=[o,s];let l=fd(e),c=new Jh(l,!1,i),p=this.runWebGLProgram(c,[a],n,[[o,s]]);return p.shape=e,u.texture=null,this.disposeIntermediateTensorInfo(a),p.dataId}write(t,e,n){if((z().getBool(\"WEBGL_CHECK_NUMERICAL_PROBLEMS\")||z().getBool(\"DEBUG\"))&&this.checkNumericalProblems(t),n===\"complex64\"&&t!=null)throw new Error(\"Cannot write to a complex64 dtype. Please use tf.complex(real, imag).\");let o={id:this.nextDataId()};return this.texData.set(o,{shape:e,dtype:n,values:t,usage:jr.UPLOAD,refCount:1}),o}refCount(t){return this.texData.has(t)?this.texData.get(t).refCount:0}incRef(t){let e=this.texData.get(t);e.refCount++}decRef(t){if(this.texData.has(t)){let e=this.texData.get(t);e.refCount--}}move(t,e,n,o,s){if(z().getBool(\"DEBUG\")&&this.checkNumericalProblems(e),o===\"complex64\")throw new Error(\"Cannot write to a complex64 dtype. Please use tf.complex(real, imag).\");this.texData.set(t,{shape:n,dtype:o,values:e,usage:jr.UPLOAD,refCount:s})}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}readSync(t){let e=this.texData.get(t),{values:n,dtype:o,complexTensorInfos:s,slice:i,shape:a,isPacked:u}=e;if(i!=null){let m;u?m=new so(a,Gc):m=new tn(a,Gc);let f=this.runWebGLProgram(m,[{dataId:t,shape:a,dtype:o}],o),d=this.readSync(f.dataId);return this.disposeIntermediateTensorInfo(f),d}if(n!=null)return this.convertAndCacheOnCPU(t);if(o===\"string\")return n;let l=this.activeTimers!=null,c;l&&(c=y.now());let p;if(o===\"complex64\"){let m=this.readSync(s.real.dataId),f=this.readSync(s.imag.dataId);p=v.mergeRealAndImagArrays(m,f)}else p=this.getValuesFromTexture(t);return l&&(this.downloadWaitMs+=y.now()-c),this.convertAndCacheOnCPU(t,p)}async read(t){if(this.pendingRead.has(t)){let d=this.pendingRead.get(t);return new Promise(h=>d.push(h))}let e=this.texData.get(t),{values:n,shape:o,slice:s,dtype:i,complexTensorInfos:a,isPacked:u}=e;if(s!=null){let d;u?d=new so(o,Gc):d=new tn(o,Gc);let h=this.runWebGLProgram(d,[{dataId:t,shape:o,dtype:i}],i),g=this.read(h.dataId);return this.disposeIntermediateTensorInfo(h),g}if(n!=null)return this.convertAndCacheOnCPU(t);if(z().getBool(\"DEBUG\")&&!z().getBool(\"WEBGL_DOWNLOAD_FLOAT_ENABLED\")&&z().getNumber(\"WEBGL_VERSION\")===2)throw new Error(\"tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.\");let l=null,c;if(i!==\"complex64\"&&z().get(\"WEBGL_BUFFER_SUPPORTED\")){c=this.decode(t);let d=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(d.texture.texture,...jh(o))}this.pendingRead.set(t,[]),i!==\"complex64\"&&await this.gpgpu.createAndWaitForFence();let p;if(i===\"complex64\"){let d=await Promise.all([this.read(a.real.dataId),this.read(a.imag.dataId)]),h=d[0],g=d[1];p=v.mergeRealAndImagArrays(h,g)}else if(l==null)p=this.getValuesFromTexture(t);else{let d=y.sizeFromShape(o);p=this.gpgpu.downloadFloat32MatrixFromBuffer(l,d)}if(c!=null&&this.disposeIntermediateTensorInfo(c),l!=null){let d=this.gpgpu.gl;yt(d,()=>d.deleteBuffer(l))}let m=this.convertAndCacheOnCPU(t,p),f=this.pendingRead.get(t);return this.pendingRead.delete(t),f.forEach(d=>d(m)),this.pendingDisposal.has(t)&&(this.pendingDisposal.delete(t),this.disposeData(t)&&Pn().removeDataId(t,this),this.pendingDeletes--),m}readToGPU(t,e={}){let n=this.texData.get(t),{values:o,shape:s,slice:i,dtype:a,isPacked:u,texture:l}=n;if(a===\"complex64\")throw new Error(\"Does not support reading texture for complex64 dtype.\");if(i!=null){let f;u?f=new so(s,Gc):f=new tn(s,Gc);let d=this.runWebGLProgram(f,[{dataId:t,shape:s,dtype:a}],a),h=this.readToGPU(d,e);return this.disposeIntermediateTensorInfo(d),h}if(l==null)throw o!=null?new Error(\"Data is not on GPU but on CPU.\"):new Error(\"There is no data on GPU or CPU.\");let c=this.decode(t,e.customTexShape),p=Pn().makeTensorFromTensorInfo(c),m=this.texData.get(c.dataId);return Object.assign({tensorRef:p},m.texture)}bufferSync(t){let e=this.readSync(t.dataId);if(t.dtype===\"string\")try{let n=e.map(o=>y.decodeString(o));return wt(t.shape,t.dtype,n)}catch(n){throw new Error(\"Failed to decode encoded string bytes into utf-8\")}return wt(t.shape,t.dtype,e)}checkNumericalProblems(t){if(t!=null)for(let e=0;e0}time(t){let e=this.activeTimers,n=[],o=!1;this.programTimersStack==null?(this.programTimersStack=n,o=!0):this.activeTimers.push(n),this.activeTimers=n,t();let s=y.flatten(this.activeTimers.map(u=>u.query)).filter(u=>u!=null),i=y.flatten(this.activeTimers.map(u=>u.name)).filter(u=>u!=null);this.activeTimers=e,o&&(this.programTimersStack=null);let a={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if(z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0){let u=await Promise.all(s);a.kernelMs=y.sum(u),a.getExtraProfileInfo=()=>u.map((l,c)=>({name:i[c],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(\", \")}else a.kernelMs={error:\"WebGL query timers are not supported in this environment.\"};return this.uploadWaitMs=0,this.downloadWaitMs=0,a})()}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0?this.gpgpu.beginQuery():{startMs:y.now(),endMs:null}}endTimer(t){return z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0?(this.gpgpu.endQuery(),t):(t.endMs=y.now(),t)}async getQueryTime(t){if(z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0)return this.gpgpu.waitForQueryAndGetTime(t);let e=t;return e.endMs-e.startMs}disposeData(t,e=!1){if(this.pendingDisposal.has(t))return!1;if(!this.texData.has(t))return!0;if(e?this.texData.get(t).refCount=0:this.texData.get(t).refCount--,!e&&this.texData.get(t).refCount>0)return!1;if(this.pendingRead.has(t))return this.pendingDisposal.add(t),this.pendingDeletes++,!1;this.releaseGPUData(t);let{complexTensorInfos:n}=this.texData.get(t);return n!=null&&(this.disposeData(n.real.dataId,e),this.disposeData(n.imag.dataId,e)),this.texData.delete(t),!0}releaseGPUData(t){let{texture:e,dtype:n,texShape:o,usage:s,isPacked:i,slice:a}=this.texData.get(t),u=a&&a.origDataId||t,l=this.dataRefCount.get(u);l>1?this.dataRefCount.set(u,l-1):(this.dataRefCount.delete(u),e!=null&&(this.numBytesInGPU-=this.computeBytes(o,n),this.textureManager.releaseTexture(e,o,s,i)));let c=this.texData.get(t);c.texture=null,c.texShape=null,c.isPacked=!1,c.slice=null}getTexture(t){return this.uploadToGPU(t),this.texData.get(t).texture.texture}getDataInfo(t){return this.texData.get(t)}shouldExecuteOnCPU(t,e=met){return z().getBool(\"WEBGL_CPU_FORWARD\")&&t.every(n=>this.texData.get(n.dataId).texture==null&&y.sizeFromShape(n.shape)0&&y.isString(n[0])){let s=n.map(i=>y.encodeString(i));o=this.write(s,t,e)}else o=this.write(n,t,e);return this.texData.get(o).usage=null,{dataId:o,shape:t,dtype:e}}makeOutput(t,e,n){return Pn().makeTensorFromTensorInfo(this.makeTensorInfo(t,e,n),this)}unpackTensor(t){let e=new Gw(t.shape);return this.runWebGLProgram(e,[t],t.dtype)}packTensor(t){let e=new Bw(t.shape),n=!0;return this.runWebGLProgram(e,[t],t.dtype,null,n)}packedReshape(t,e){let n=[xl(t.shape),...yl(t.shape)],o={dtype:t.dtype,shape:n,dataId:t.dataId},s=[xl(e),...yl(e)],i=new Id(s,n),a=!0,u=[n],l=this.runWebGLProgram(i,[o],t.dtype,u,a);return{dataId:l.dataId,shape:e,dtype:l.dtype}}decode(t,e){let n=this.texData.get(t),{isPacked:o,shape:s,dtype:i}=n;if(e!=null){let m=y.sizeFromShape(s),f=e[0]*e[1]*4;y.assert(m<=f,()=>\"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.\")}let a=fd(s),u;o?u=new Ew(a):u=new kw(a);let l=!0,c=[e!=null?e:jh(a)],p=this.runWebGLProgram(u,[{shape:a,dtype:i,dataId:t}],i,c,l,e);return{dtype:i,shape:s,dataId:p.dataId}}runWebGLProgram(t,e,n,o,s=!1,i){let a=this.makeTensorInfo(t.outputShape,n),u=this.texData.get(a.dataId);if(t.packedOutput&&(u.isPacked=!0),t.outPackingScheme===ku.DENSE){let x=i!=null?i:jh(t.outputShape);u.texShape=x.map(b=>b*2)}if(t.outTexUsage!=null&&(u.usage=t.outTexUsage),y.sizeFromShape(a.shape)===0)return u.values=y.getTypedArrayFromDType(a.dtype,0),a;let l=[],c=e.map(x=>{if(x.dtype===\"complex64\")throw new Error(\"GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.\");let b=this.texData.get(x.dataId);if(b.texture==null){if(!t.packedInputs&&y.sizeFromShape(x.shape)<=z().getNumber(\"WEBGL_SIZE_UPLOAD_UNIFORM\"))return{shape:x.shape,texData:null,isUniform:!0,uniformValues:b.values};t.packedInputs&&(b.isPacked=!0,b.shape=x.shape)}if(this.uploadToGPU(x.dataId),!!b.isPacked!=!!t.packedInputs)x=b.isPacked?this.unpackTensor(x):this.packTensor(x),l.push(x),b=this.texData.get(x.dataId);else if(b.isPacked&&!Eu(b.shape,x.shape)){let w=x,C=x.shape;x.shape=b.shape,x=this.packedReshape(x,C),l.push(x),b=this.texData.get(x.dataId),w.shape=C}return{shape:x.shape,texData:b,isUniform:!1}});this.uploadToGPU(a.dataId);let p={shape:a.shape,texData:u,isUniform:!1},m=uL(t,c,p),f=this.getAndSaveBinary(m,()=>aL(this.gpgpu,t,c,p)),d=this.activeTimers!=null,h;d&&(h=this.startTimer()),z().get(\"ENGINE_COMPILE_ONLY\")||lL(this.gpgpu,f,c,p,o),l.forEach(x=>this.disposeIntermediateTensorInfo(x)),d&&(h=this.endTimer(h),this.activeTimers.push({name:t.constructor.name,query:this.getQueryTime(h)}));let g=z().get(\"WEBGL_FLUSH_THRESHOLD\");if(g>0){let x=y.now();x-this.lastGlFlushTime>g&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=x)}if(!z().getBool(\"WEBGL_LAZILY_UNPACK\")&&u.isPacked&&s===!1){let x=this.unpackTensor(a);return this.disposeIntermediateTensorInfo(a),x}return a}compileAndRun(t,e,n,o,s=!1){return n=n||e[0].dtype,this.runWebGLProgram(t,e,n,o,s)}getAndSaveBinary(t,e){return t in this.binaryCache||(this.binaryCache[t]=e()),this.binaryCache[t]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(z().getBool(\"IS_TEST\")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!=\"undefined\"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=B(()=>{if(!z().get(\"WEBGL_RENDER_FLOAT32_ENABLED\")){let t=z().getBool(\"DEBUG\");z().set(\"DEBUG\",!1);let e=this.abs(mt(1e-8)).dataSync()[0];if(z().set(\"DEBUG\",t),e>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?uet:cet}uploadToGPU(t){let e=this.texData.get(t),{shape:n,dtype:o,values:s,texture:i,usage:a,isPacked:u}=e;if(i!=null)return;let l=this.activeTimers!=null,c;l&&(c=y.now());let p=e.texShape;if(p==null&&(p=PT(n,u),e.texShape=p),s!=null){let m=fd(n),f,d=p[1],h=p[0],g=s instanceof Uint8Array||s instanceof Uint8ClampedArray;(u||!g)&&([d,h]=Xi(p[0],p[1])),u?f=new $w(m,g):f=new Jh(m,g);let x=g?[h,d]:p,b=this.makeTensorInfo(x,o),w=this.texData.get(b.dataId);g?w.usage=jr.PIXELS:w.usage=jr.UPLOAD,w.texShape=x,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(b.dataId),d,h,s);let C=[[h,d]],N=!0,_=this.runWebGLProgram(f,[b],o,C,N),A=this.texData.get(_.dataId);e.texShape=A.texShape,e.isPacked=A.isPacked,e.usage=A.usage,z().get(\"ENGINE_COMPILE_ONLY\")?this.disposeData(_.dataId):(e.texture=A.texture,e.values=null,this.texData.delete(_.dataId)),this.disposeIntermediateTensorInfo(b),l&&(this.uploadWaitMs+=y.now()-c)}else{let m=this.acquireTexture(p,a,o,u);e.texture=m}}convertAndCacheOnCPU(t,e){let n=this.texData.get(t),{dtype:o}=n;return this.releaseGPUData(t),e!=null&&(n.values=het(e,o)),n.values}acquireTexture(t,e,n,o){if(this.numBytesInGPU+=this.computeBytes(t,n),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let s=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${s} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(t,e,o)}computeBytes(t,e){return t[0]*t[1]*y.bytesPerElement(e)}checkCompileCompletion(){for(let[,t]of Object.entries(this.binaryCache))this.checkCompletion_(t)}async checkCompileCompletionAsync(){let t=[];if(this.gpgpu.parallelCompilationExtension){for(let[,e]of Object.entries(this.binaryCache))t.push(this.checkCompletionAsync_(e));return Promise.all(t)}else{for(let[,e]of Object.entries(this.binaryCache)){let n=new Promise(o=>{try{this.checkCompletion_(e),o(!0)}catch(s){throw s}});t.push(n)}return Promise.all(t)}}async checkCompletionAsync_(t){return this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(t):(await gh(),this.checkCompletionAsync_(t))}checkCompletion_(t){if(this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.gl.LINK_STATUS)===!1)throw console.log(this.gpgpu.gl.getProgramInfoLog(t.webGLProgram)),this.gpgpu.gl.getShaderParameter(t.fragmentShader,this.gpgpu.gl.COMPILE_STATUS)===!1?(Cw(t.source,this.gpgpu.gl.getShaderInfoLog(t.fragmentShader)),new Error(\"Failed to compile fragment shader.\")):new Error(\"Failed to link vertex and fragment shaders.\");return!0}getUniformLocations(){for(let[,t]of Object.entries(this.binaryCache)){let{uniformLocations:e,customUniformLocations:n,infLoc:o,nanLoc:s,inShapesLocations:i,inTexShapesLocations:a,outShapeLocation:u,outShapeStridesLocation:l,outTexShapeLocation:c}=WT(this.gpgpu,t.program,t.webGLProgram);t.uniformLocations=e,t.customUniformLocations=n,t.infLoc=o,t.nanLoc=s,t.inShapesLocations=i,t.inTexShapesLocations=a,t.outShapeLocation=u,t.outShapeStridesLocation=l,t.outTexShapeLocation=c}}createTensorFromTexture(t,e,n){let{texture:o,height:s,width:i,channels:a}=t,u=Pn().backend;if(!u.gpgpu.gl.isTexture(o))throw new Error(\"The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.\");let l=u.writeTexture(o,e,n,s,i,a);return Pn().makeTensorFromDataId(l,e,n,u)}};_u.nextDataId=0;function het(r,t){if(t===\"float32\"||t===\"complex64\")return r;if(t===\"int32\"||t===\"bool\"){let e=t===\"int32\"?new Int32Array(r.length):new Uint8Array(r.length);for(let n=0;nnew _u,2);var Zke={forceHalfFloat:hM};var Sd=`\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n`;var io=class{constructor(t,e,n){this.variableNames=[\"A\",\"B\"],this.outputShape=v.assertAndGetBroadcastShape(e,n),this.enableShapeUniforms=we(this.outputShape.length),this.userCode=`\n float binaryOperation(float a, float b) {\n ${t}\n }\n\n void main() {\n float a = getAAtOutCoords();\n float b = getBAtOutCoords();\n setOutput(binaryOperation(a, b));\n }\n `}};var Yi=`\n result.r = isNaN.r ? NAN : result.r;\n result.g = isNaN.g ? NAN : result.g;\n result.b = isNaN.b ? NAN : result.b;\n result.a = isNaN.a ? NAN : result.a;\n`;var Oo=class{constructor(t,e,n,o=!1){this.variableNames=[\"A\",\"B\"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=v.assertAndGetBroadcastShape(e,n);let s=this.outputShape.length;this.enableShapeUniforms=we(s);let i=\"\";if(o)if(s===0||y.sizeFromShape(this.outputShape)===1)i=`\n result.y = 0.;\n result.z = 0.;\n result.w = 0.;\n `;else if(i=`\n ${zt(s)} coords = getOutputCoords();\n `,s===1)this.enableShapeUniforms?i+=`\n result.y = (coords + 1) >= outShape ? 0. : result.y;\n result.z = 0.;\n result.w = 0.;\n `:i+=`\n result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y;\n result.z = 0.;\n result.w = 0.;\n `;else{let u=Qe(\"coords\",s);this.enableShapeUniforms?i+=`\n bool nextRowOutOfBounds =\n (${u[s-2]} + 1) >= outShape[${s} - 2];\n bool nextColOutOfBounds =\n (${u[s-1]} + 1) >= outShape[${s} - 1];\n result.y = nextColOutOfBounds ? 0. : result.y;\n result.z = nextRowOutOfBounds ? 0. : result.z;\n result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w;\n `:i+=`\n bool nextRowOutOfBounds =\n (${u[s-2]} + 1) >= ${this.outputShape[s-2]};\n bool nextColOutOfBounds =\n (${u[s-1]} + 1) >= ${this.outputShape[s-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 ${t}\n }\n\n void main() {\n vec4 a = getAAtOutCoords();\n vec4 b = getBAtOutCoords();\n\n vec4 result = binaryOperation(a, b);\n ${i}\n\n setOutput(result);\n }\n `}};function tr(r){let{inputs:t,backend:e}=r,{x:n}=t;return e.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}var gM={kernelName:co,backendName:\"webgl\",kernelFunc:tr};function En(r){let{inputs:t,backend:e}=r,{real:n,imag:o}=t,s=e.makeTensorInfo(n.shape,\"complex64\"),i=e.texData.get(s.dataId),a=tr({inputs:{x:n},backend:e}),u=tr({inputs:{x:o},backend:e});return i.complexTensorInfos={real:a,imag:u},s}var xM={kernelName:pp,backendName:\"webgl\",kernelFunc:En};var uk=\"return (a < 0.) ? b * a : a;\",ck=`\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n`;function get(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n,i=e.makeTensorInfo([],\"float32\",y.createScalarValue(s,\"float32\")),a=z().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new Oo(ck,o.shape,i.shape):new io(uk,o.shape,i.shape),u=e.runWebGLProgram(a,[o,i],\"float32\");return e.disposeIntermediateTensorInfo(i),u}var yM={kernelName:is,backendName:\"webgl\",kernelFunc:get};var pk=\"return (a < 0.) ? b * a : a;\",mk=`\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n`;function xet(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=z().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new Oo(mk,n.shape,o.shape):new io(pk,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],\"float32\")}var bM={kernelName:bs,backendName:\"webgl\",kernelFunc:xet};var Po=\"if (isnan(x)) return x;\";function Ct({opSnippet:r,packedOpSnippet:t,cpuKernelImpl:e,dtype:n}){return({inputs:o,backend:s})=>{let{x:i}=o,a=s,u=n||i.dtype;if(a.shouldExecuteOnCPU([i])&&e!=null){let p=a.texData.get(i.dataId),m=e(p.values,u);return a.makeTensorInfo(i.shape,u,m)}let l=z().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")&&t!=null,c;return l?c=new so(i.shape,t):c=new tn(i.shape,r),a.runWebGLProgram(c,[i],u)}}function le({opSnippet:r,packedOpSnippet:t,checkOutOfBounds:e=!1,supportsComplex:n=!1,cpuKernelImpl:o,dtype:s}){return({inputs:i,backend:a})=>{let{a:u,b:l}=i,c=a;if(n&&u.dtype===\"complex64\"){let d=c.texData.get(u.dataId),h=c.texData.get(l.dataId),[g,x]=[[d.complexTensorInfos.real,h.complexTensorInfos.real],[d.complexTensorInfos.imag,h.complexTensorInfos.imag]].map(w=>{let[C,N]=w,_={dataId:C.dataId,dtype:C.dtype,shape:u.shape},A={dataId:N.dataId,dtype:N.dtype,shape:l.shape},$=new io(r,u.shape,l.shape);return c.runWebGLProgram($,[_,A],sr(C.dtype,N.dtype))}),b=En({inputs:{real:g,imag:x},backend:c});return c.disposeIntermediateTensorInfo(g),c.disposeIntermediateTensorInfo(x),b}let p=s||sr(u.dtype,l.dtype);if((u.dtype===\"string\"||l.dtype===\"string\"||c.shouldExecuteOnCPU([u,l]))&&o!=null){let d=c.texData.get(u.dataId).values,h=c.texData.get(l.dataId).values,g=u.dtype===\"string\"?v.fromUint8ToStringArray(d):d,x=u.dtype===\"string\"?v.fromUint8ToStringArray(h):h,[b,w]=o(u.shape,l.shape,g,x,p),C=c.makeTensorInfo(w,p),N=c.texData.get(C.dataId);return N.values=b,C}let m=z().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")&&t!=null,f;return m?f=new Oo(t,u.shape,l.shape,e):f=new io(r,u.shape,l.shape),c.runWebGLProgram(f,[u,l],p)}}function bl(r,t=!1){if(r===\"linear\")return t?uM:nM;if(r===\"relu\")return t?pM:sM;if(r===\"elu\")return t?cM:oM;if(r===\"relu6\")return t?mM:iM;if(r===\"prelu\")return t?mk:pk;if(r===\"leakyrelu\")return t?ck:uk;if(r===\"sigmoid\")return t?fM:aM;throw new Error(`Activation ${r} has not been implemented for the WebGL backend.`)}var vd=class{constructor(t,e,n,o=!1,s=!1,i=!1,a=null,u=!1,l=!1){this.variableNames=[\"matrixA\",\"matrixB\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n,this.enableShapeUniforms=we(this.outputShape.length);let c=o?t[1]:t[2],p=Math.ceil(c/2),m=o?\"i * 2, rc.y\":\"rc.y, i * 2\",f=s?\"rc.z, i * 2\":\"i * 2, rc.z\",d=o?[\"a.xxyy\",\"a.zzww\"]:[\"a.xxzz\",\"a.yyww\"],h=s?[\"b.xzxz\",\"b.ywyw\"]:[\"b.xyxy\",\"b.zwzw\"],g=\"\",x=\"\";a&&(u?g=`vec4 activation(vec4 a) {\n vec4 b = getPreluActivationWeightsAtOutCoords();\n ${a}\n }`:l?g=`vec4 activation(vec4 a) {\n vec4 b = getLeakyreluAlphaAtOutCoords();\n ${a}\n }`:g=`vec4 activation(vec4 x) {\n ${a}\n }`,x=\"result = activation(result);\");let b=i?\"result += getBiasAtOutCoords();\":\"\";i&&this.variableNames.push(\"bias\"),u&&this.variableNames.push(\"preluActivationWeights\"),l&&this.variableNames.push(\"leakyreluAlpha\");let w=\"rc.x\",C=\"rc.x\";t[0]`The new shape (${u}) has ${l} elements and the old shape (${o.shape}) has ${a} elements. The new shape and old shape must have the same number of elements.`);let c=i.texData.get(o.dataId);return c.isPacked&&!Eu(o.shape,u)&&!(c.texture!==null&&Eu(c.shape,u))?IM(o,u,i):(i.incRef(o.dataId),{dataId:o.dataId,shape:u,dtype:o.dtype})}var SM={kernelName:di,backendName:\"webgl\",kernelFunc:st};var rg=class{constructor(t,e){this.variableNames=[\"x\"];let{windowSize:n,batchSize:o,inSize:s,outSize:i}=t;this.outputShape=[o,i];let a=Math.floor(n/4)*4,u=n%4,l=\"sumValue += dot(values, ones);\";if(e!=null){let p=1/e;l=`sumValue += dot(values * ${y.isInt(p)?p.toPrecision(2):p}, ones);`}let c=\"\";s%n>0&&(c=`\n if (inIdx < 0 || inIdx >= ${s}) {\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 ${c}\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 < ${a}; 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 + ${a};\n if (${u===1}) {\n vec4 values = vec4(getValue(batch, inIdx), 0.0, 0.0, 0.0);\n\n ${l}\n } else if (${u===2}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1), 0.0, 0.0);\n\n ${l}\n } else if (${u===3}) {\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 `}};var Uw=class{constructor(t,e){this.variableNames=[\"x\"];let{windowSize:n,batchSize:o,inSize:s,outSize:i}=t;this.outputShape=[o,i];let a=\"0.0\",u=\"\";e===\"prod\"?a=\"1.0\":e===\"min\"?(a=\"1.0 / 1e-20\",u=\"min\"):e===\"max\"&&(a=\"-1.0 / 1e-20\",u=\"max\");let l=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e===\"sum\"?l=\"sumValue\":e===\"prod\"?l=\"prodValue\":e===\"all\"?l=\"allValue\":e===\"any\"&&(l=\"anyValue\");let c=Math.floor(n/4)*4,p=n%4,m=`\n if (${e===\"sum\"}) {\n sumValue += dot(values, ones);\n } else if (${e===\"prod\"}) {\n vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]);\n prodValue *= tmp[0] * tmp[1];\n } else {\n minMaxValue = ${u}(values, minMaxValue);\n if (${e===\"min\"} || ${e===\"max\"}) {\n minMaxValue = ${u}(values, minMaxValue);\n bvec4 isNaN = isnan(values);\n if (isNaN.r || isNaN.g || isNaN.b || isNaN.a) {\n minMaxValue = vec4(NAN);\n }\n }\n }\n `,f=\"vec4\";e===\"all\"?(a=\"1.0\",m=`\n bool reducedAllValue = all(values);\n float floatedReducedAllValue = float(reducedAllValue);\n allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0);\n `,f=\"bvec4\"):e===\"any\"&&(a=\"0.0\",m=`\n bool reducedAnyValue = any(values);\n float floatedReducedAnyValue = float(reducedAnyValue);\n anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0);\n `,f=\"bvec4\");let d=\"\";s%n>0&&(d=`\n if (inIdx < 0 || inIdx >= ${s}) {\n return initializationValue;\n }\n `),this.userCode=`\n const float initializationValue = ${a};\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(${a});\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 < ${c}; 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 ${m}\n }\n\n int inIdx = inOffset + ${c};\n if (${p===1}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${m}\n } else if (${p===2}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n ${m}\n } else if (${p===3}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n ${m}\n }\n setOutput(${l});\n }\n `}};function bet(r){let t=[];for(;t.length===0||t[t.length-1].outSize!==1;){let e=t.length?t[t.length-1].outSize:r[1],n=v.computeOptimalWindowSize(e);t.push({inSize:e,windowSize:n,outSize:Math.ceil(e/n)})}return t}function Un(r,t,e,n){let o=bet(r.shape),s=r;for(let i=0;i6)throw Error(`Transpose for rank ${t} is not yet supported`);let e=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\",\"resRC.u\",\"resRC.v\"],n=new Array(t);for(let o=0;o6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let o=zt(this.rank),s=ak(\"rc\",this.rank),i=new Array(this.rank);for(let c=0;c`Error in matMul: inner shapes (${p}) and (${m}) of Tensors with shapes ${r.shape} and ${t.shape} and transposeA=${e} and transposeB=${n} must match.`);let N=e?[x,p,f]:[x,f,p],_=n?[b,d,m]:[b,m,d],A=st({inputs:{x:r},backend:o,attrs:{shape:N}}),$=st({inputs:{x:t},backend:o,attrs:{shape:_}}),F=[A,$],P=Math.max(x,b),V=e?A.shape[1]:A.shape[2],G=s!=null,W=i!=null,q=u===\"leakyrelu\",H=u!=null?bl(u,!0):null,j=G||W||q||H!=null,Y;if((f===1||d===1)&&V>dk&&j===!1){let et=A,rt=$;e&&(et=Oe({inputs:{x:A},backend:o,attrs:{perm:[0,2,1]}}),F.push(et)),n&&(rt=Oe({inputs:{x:$},backend:o,attrs:{perm:[0,2,1]}}),F.push(rt));let ot=d!==1,at=d===1,nt=et;ot&&(nt=st({inputs:{x:et},backend:o,attrs:{shape:[P,V,1]}}),F.push(nt));let it=d===1?2:1,dt=rt;at&&(dt=st({inputs:{x:rt},backend:o,attrs:{shape:[P,1,V]}}),F.push(dt));let ht=eg({inputs:{a:nt,b:dt},backend:o});Y=Wc({inputs:{x:ht},backend:o,attrs:{axis:it,keepDims:!0}}),F.push(ht)}else{let et=sr(r.dtype,t.dtype),rt=new vd(N,_,[P,f,d],e,n,G,H,W,q),ot=[A,$];if(s!=null&&ot.push(s),W&&ot.push(i),q){let at=o.makeTensorInfo([],\"float32\",y.createScalarValue(a,\"float32\"));ot.push(at),F.push(at)}Y=o.runWebGLProgram(rt,ot,et)}let Z=st({inputs:{x:Y},backend:o,attrs:{shape:C}});F.push(Y);for(let et of F)o.disposeIntermediateTensorInfo(et);return Z}function Cet(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s,bias:i,preluActivationWeights:a}=t,{transposeA:u,transposeB:l,activation:c,leakyreluAlpha:p}=n;return Uc({a:o,b:s,transposeA:u,transposeB:l,backend:e,bias:i,preluActivationWeights:a,leakyreluAlpha:p,activation:c})}var kM={kernelName:Ci,backendName:\"webgl\",kernelFunc:Cet};var EM=\"return abs(x);\";function Iet(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])&&n.dtype!==\"complex64\"){let s=e.texData.get(n.dataId),i=Mw(s.values);return e.makeTensorInfo(n.shape,n.dtype,i)}let o;return z().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")?o=new so(n.shape,EM):o=new tn(n.shape,EM),e.runWebGLProgram(o,[n],n.dtype)}var _M={kernelName:ii,backendName:\"webgl\",kernelFunc:Iet};var vet=fr+`\n if (abs(x) > 1.) {\n return NAN;\n }\n return acos(x);\n`,Net=Ct({opSnippet:vet}),AM={kernelName:oa,backendName:\"webgl\",kernelFunc:Net};var Tet=fr+`\n if (x < 1.0) return NAN;\nreturn log(x + sqrt(x * x - 1.0));`,ket=Ct({opSnippet:Tet}),$M={kernelName:sa,backendName:\"webgl\",kernelFunc:ket};var DM=\"return a + b;\",Eet=le({opSnippet:DM,packedOpSnippet:DM,supportsComplex:!0,cpuKernelImpl:cL}),RM={kernelName:Zn,backendName:\"webgl\",kernelFunc:Eet};var Kw=class{constructor(t,e){this.outputShape=[],this.outputShape=t,this.variableNames=e.map((s,i)=>`T${i}`);let n=[];this.variableNames.forEach(s=>{n.push(`float v${s} = get${s}AtOutCoords();`)});let o=this.variableNames.map(s=>`v${s}`).join(\" + \");this.userCode=`\n void main() {\n ${n.join(`\n `)}\n\n float result = ${o};\n setOutput(result);\n }\n `}};var jw=class{constructor(t,e){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.variableNames=e.map((s,i)=>`T${i}`);let n=[];this.variableNames.forEach(s=>{n.push(`vec4 v${s} = get${s}AtOutCoords();`)});let o=this.variableNames.map(s=>`v${s}`).join(\" + \");this.userCode=`\n void main() {\n ${n.join(`\n `)}\n\n vec4 result = ${o};\n setOutput(result);\n }\n `}};function Xw(r){let{inputs:t,backend:e}=r,n=t;if(n.length===1)return tr({inputs:{x:n[0]},backend:e});if(n.length>z().get(\"WEBGL_MAX_TEXTURES_IN_SHADER\")){let u=Math.floor(n.length/2),l=Xw({inputs:n.slice(0,u),backend:e}),c=Xw({inputs:n.slice(u),backend:e});return Xw({inputs:[l,c],backend:e})}let o=n.map(u=>u.dtype).reduce((u,l)=>sr(u,l)),s=n.map(u=>u.shape),a=z().getBool(\"WEBGL_PACK\")?new jw(n[0].shape,s):new Kw(n[0].shape,s);return e.runWebGLProgram(a,n,o)}var FM={kernelName:Go,backendName:\"webgl\",kernelFunc:Xw};function _et(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=v.getAxesPermutation(l,a),p=o;c!=null&&(p=Oe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=v.getInnerMostAxes(l.length,a)),v.assertAxesAreInnerMostDims(\"all\",l,a);let[m,f]=v.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=st({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Un(h,h.dtype,\"all\",e),x;if(i){let b=v.expandShapeToKeepDim(m,u);x=st({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=st({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var OM={kernelName:ia,backendName:\"webgl\",kernelFunc:_et};function Aet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=v.getAxesPermutation(l,a),p=o;c!=null&&(p=Oe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=v.getInnerMostAxes(l.length,a)),v.assertAxesAreInnerMostDims(\"any\",l,a);let[m,f]=v.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=st({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Un(h,h.dtype,\"any\",e),x;if(i){let b=v.expandShapeToKeepDim(m,u);x=st({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=st({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var PM={kernelName:aa,backendName:\"webgl\",kernelFunc:Aet};var Yw=class{constructor(t,e,n){this.variableNames=[\"A\"];let{windowSize:o,batchSize:s,outSize:i}=t;n||this.variableNames.push(\"bestIndicesA\"),this.outputShape=[s,i];let a=e===\"max\"?\">\":\"<\",u=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 * ${o};\n\n int bestIndex = inOffset;\n float bestValue = getA(batch, bestIndex);\n\n for (int i = 0; i < ${o}; i++) {\n int inIdx = ${u};\n float candidate = getA(batch, inIdx);\n if (candidate ${a} bestValue) {\n bestValue = candidate;\n bestIndex = inIdx;\n }\n }\n setOutput(float(bestIndex));\n }\n `}};var Zw=class{constructor(t,e,n,o){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,y.assert(t.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let s=t[t.length-1],i=Math.ceil(s/e);this.outputShape=t.slice(0,-1),i>1&&this.outputShape.push(i),o||this.variableNames.push(\"bestIndicesA\");let a=this.outputShape,u=a.length,l=zt(u),c=Qe(\"coords\",u),p,m;if(i===1){m=u+1;let $=zt(m);p=`\n ${$} sourceLocR = ${$}(${c.join()}, 0);\n ++${c[u-1]};\n ${$} sourceLocG = ${$}(${c.join()}, 0);\n ++${c[u-2]};\n ${$} sourceLocA = ${$}(${c.join()}, 0);\n --${c[u-1]};\n ${$} sourceLocB = ${$}(${c.join()}, 0);\n --${c[u-2]};`}else m=u,p=`\n ${l} sourceLocR = coords;\n ++${c[u-1]};\n ${l} sourceLocG = coords;\n ++${c[u-2]};\n ${l} sourceLocA = coords;\n --${c[u-1]};\n ${l} sourceLocB = coords;\n --${c[u-2]};`;let f=[\"x\",\"y\",\"z\",\"w\",\"u\",\"v\"].slice(0,m),d=\".\"+f[m-1],h=f.map($=>\"int \"+$),g=Qe(\"sourceLocR\",m-1).concat(\"inIdx.r\"),x=Qe(\"sourceLocG\",m-1).concat(\"inIdx.g\"),b=Qe(\"sourceLocB\",m-1).concat(\"inIdx.b\"),w=Qe(\"sourceLocA\",m-1).concat(\"inIdx.a\"),C=n===\"max\"?\"greaterThan\":\"lessThan\",N=o?\"\":`\n inIdx = round(vec4(getBestIndicesAChannel(${g.join()}),\n getBestIndicesAChannel(${x.join()}),\n getBestIndicesAChannel(${b.join()}),\n getBestIndicesAChannel(${w.join()})));`,_=`vec4(\n getAChannel(${g.join()}),\n hasNextCol ? getAChannel(${x.join()}) : 0.,\n hasNextRow ? getAChannel(${b.join()}) : 0.,\n hasNextRow && hasNextCol ? getAChannel(${w.join()}) : 0.)`,A=o?\"\":`\n float getBestIndicesAChannel(${h.join()}) {\n return getChannel(getBestIndicesA(${f.join()}),\n vec2(${f.slice(-2).join()}));\n }`;this.userCode=`\n float getAChannel(${h.join()}) {\n return getChannel(getA(${f.join()}),\n vec2(${f.slice(-2).join()}));\n }\n ${A}\n void main() {\n ${l} coords = getOutputCoords();\n bool hasNextCol = ${c[u-1]} < ${a[u-1]-1};\n bool hasNextRow = ${c[u-2]} < ${a[u-2]-1};\n ${p}\n ivec4 srcIdx = ivec4(sourceLocR${d}, sourceLocG${d},\n sourceLocB${d}, sourceLocA${d}) * ${e};\n ivec4 inIdx = srcIdx;\n vec4 bestIndex = vec4(inIdx);\n vec4 bestValue = ${_};\n\n for (int i = 0; i < ${e}; i++) {\n inIdx = srcIdx;\n ${N}\n vec4 candidate = ${_};\n bvec4 nan = isnan(candidate);\n bvec4 replace = bvec4(\n vec4(${C}(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 LM(r,t,e,n=null){let o=t.shape[0],s=t.shape[1];n!=null&&(o=n.shape[0],s=n.shape[1]);let i=v.computeOptimalWindowSize(s),a={windowSize:i,inSize:s,batchSize:o,outSize:Math.ceil(s/i)},u=new Yw(a,e,n==null),l=[t];n!=null&&l.push(n);let c=r.runWebGLProgram(u,l,\"int32\");if(c.shape[1]===1)return c;let p=LM(r,t,e,c);return r.disposeIntermediateTensorInfo(c),p}function MM(r,t,e,n=null){let o=n!=null?n.shape:t.shape,s=o[o.length-1],i=v.computeOptimalWindowSize(s),a=new Zw(o,i,e,n==null),u=n==null?[t]:[t,n],l=r.runWebGLProgram(a,u,\"int32\");if(l.shape.length===t.shape.length){let c=MM(r,t,e,l);return r.disposeIntermediateTensorInfo(l),c}return l}function Jw(r,t,e,n){let o=[e];if(v.assertAxesAreInnerMostDims(\"arg\"+n.charAt(0).toUpperCase()+n.slice(1),o,t.shape.length),!z().getBool(\"WEBGL_PACK_REDUCE\")||t.shape.length<=2){let s=[],i=r.texData.get(t.dataId),a=i!==null&&i.isPacked,u=t;a&&(u=r.unpackTensor(t),s.push(u));let[l,c]=v.computeOutAndReduceShapes(u.shape,o),p=y.sizeFromShape(c),m=st({inputs:{x:u},backend:r,attrs:{shape:[-1,p]}});s.push(m);let f=LM(r,m,n);s.push(f);let d=st({inputs:{x:f},backend:r,attrs:{shape:l}});return s.forEach(h=>r.disposeIntermediateTensorInfo(h)),d}return MM(r,t,n)}function $et(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=v.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Oe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=v.getInnerMostAxes(i.length,u.shape.length)),v.assertAxesAreInnerMostDims(\"argMax\",[i[0]],u.shape.length);let c=Jw(e,u,i[0],\"max\");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var zM={kernelName:Wo,backendName:\"webgl\",kernelFunc:$et};function Det(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=v.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Oe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=v.getInnerMostAxes(i.length,u.shape.length)),v.assertAxesAreInnerMostDims(\"argMin\",[i[0]],u.shape.length);let c=Jw(e,u,i[0],\"min\");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var BM={kernelName:kl,backendName:\"webgl\",kernelFunc:Det};var Ret=fr+`\n if (abs(x) > 1.) {\n return NAN;\n }\n return asin(x);\n`,Fet=Ct({opSnippet:Ret}),VM={kernelName:la,backendName:\"webgl\",kernelFunc:Fet};var Oet=fr+\"return log(x + sqrt(x * x + 1.0));\",Pet=Ct({opSnippet:Oet}),GM={kernelName:ua,backendName:\"webgl\",kernelFunc:Pet};var Let=fr+`\n return atan(x);\n`,Met=Ct({opSnippet:Let}),WM={kernelName:ca,backendName:\"webgl\",kernelFunc:Met};var zet=Sd+`\n return atan(a, b);\n`,Bet=`\n vec4 result = atan(a, b);\n bvec4 isNaNA = isnan(a);\n bvec4 isNaNB = isnan(b);\n bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w);\n `+Yi+`\n return result;\n`,Vet=le({opSnippet:zet,packedOpSnippet:Bet}),UM={kernelName:ma,backendName:\"webgl\",kernelFunc:Vet};var Get=fr+`\n if ((x < -1.0) || (x > 1.0)) return NAN;\nreturn (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelName:pa,backendName:\"webgl\",kernelFunc:Wet};var ei=class{constructor(t,e,n,o=!1,s=!1){if(this.variableNames=[\"x\"],e===\"avg\"&&n)throw new Error(\"Cannot compute positions for average pool.\");let i=t.filterWidth,a=t.strideHeight,u=t.strideWidth,l=t.dilationHeight,c=t.dilationWidth,p=t.effectiveFilterHeight,m=t.effectiveFilterWidth,f=t.padInfo.top,d=t.padInfo.left;this.outputShape=t.outShape;let h=e===\"avg\",g=`((batch * ${t.inHeight} + xR) * ${t.inWidth} + xC) * ${t.inChannels} + d`,x=`(xR * ${t.inWidth} + xC) * ${t.inChannels} + d`,b=\"0.0\";if(h||(b=\"-1.0 / 1e-20\"),n){let $=\">=\";this.userCode=`\n const ivec2 strides = ivec2(${a}, ${u});\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 < ${p};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${m};\n wC += ${c}) {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= ${t.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 ${$} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${o?s?g:x:`wR * ${m} + wC`};\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `;return}let w=\"max\",C=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e===\"avg\"&&(C=\"avgValue / count\");let N=Math.floor(i/4)*4,_=i%4,A=`\n if (${h}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = ${w}(values, minMaxValue);\n }\n `;this.userCode=`\n const ivec2 strides = ivec2(${a}, ${u});\n const ivec2 pads = ivec2(${f}, ${d});\n const float initializationValue = ${b};\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 >= ${t.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(${b});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wR = 0; wR < ${p};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${N}; wC += 4) {\n int xC = xCCorner + wC * ${c};\n\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${c}, d),\n getValue(batch, xR, xC + 2 * ${c}, d),\n getValue(batch, xR, xC + 3 * ${c}, d)\n );\n\n ${A}\n }\n\n int xC = xCCorner + ${N};\n if (${_===1}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${A}\n } else if (${_===2}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${c}, d),\n initializationValue,\n initializationValue\n );\n\n ${A}\n } else if (${_===3}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${c}, d),\n getValue(batch, xR, xC + 2 * ${c}, d),\n initializationValue\n );\n\n ${A}\n }\n }\n setOutput(${C});\n }\n `}},$u=class{constructor(t,e,n,o=!1,s=!1){if(this.variableNames=[\"x\"],e===\"avg\"&&n)throw new Error(\"Cannot compute positions for average pool.\");let i=t.filterWidth,a=t.strideDepth,u=t.strideHeight,l=t.strideWidth,c=t.dilationDepth,p=t.dilationHeight,m=t.dilationWidth,f=t.effectiveFilterDepth,d=t.effectiveFilterHeight,h=t.effectiveFilterWidth,g=t.padInfo.front,x=t.padInfo.top,b=t.padInfo.left;this.outputShape=t.outShape;let w=e===\"avg\",C=\"0.0\";if(w||(C=\"-1.0 / 1e-20\"),n){let P=\">=\";this.userCode=`\n const ivec3 strides =\n ivec3(${a}, ${u}, ${l});\n const ivec3 pads = ivec3(${g}, ${x}, ${b});\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 += ${c}) {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= ${t.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${d};\n wR += ${p}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${h};\n wC += ${m}) {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= ${t.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 ${P} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${o?s?`(((batch * ${t.inDepth} + xD) * ${t.inHeight} + xR) * ${t.inWidth} + xC) * ${t.inChannels} + ch`:`((xD * ${t.inHeight} + xR) * ${t.inWidth} + xC) * ${t.inChannels} + ch`:`wD * ${d} * ${h} +\n wR * ${h} + wC`};\n }\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `;return}let N=\"max\",_=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e===\"avg\"&&(_=\"avgValue / count\");let A=Math.floor(i/4)*4,$=i%4,F=`\n if (${w}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = ${N}(values, minMaxValue);\n }\n `;this.userCode=`\n const ivec3 strides =\n ivec3(${a}, ${u}, ${l});\n const ivec3 pads = ivec3(${g}, ${x}, ${b});\n const float initializationValue = ${C};\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 >= ${t.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(${C});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wD = 0; wD < ${f};\n wD += ${c}) {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= ${t.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${d};\n wR += ${p}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${A}; wC += 4) {\n int xC = xCCorner + wC * ${m};\n\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${m}, ch),\n getValue(batch, xD, xR, xC + 2 * ${m}, ch),\n getValue(batch, xD, xR, xC + 3 * ${m}, ch)\n );\n\n ${F}\n }\n\n int xC = xCCorner + ${A};\n if (${$===1}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${F}\n } else if (${$===2}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${m}, ch),\n initializationValue,\n initializationValue\n );\n\n ${F}\n } else if (${$===3}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${m}, ch),\n getValue(batch, xD, xR, xC + 2 * ${m}, ch),\n initializationValue\n );\n\n ${F}\n }\n }\n setOutput(${_});\n }\n }\n `}};function Uet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;Qs(o,\"avgPool\");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(v.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=v.computePool2DInfo(o.shape,s,i,l,a,u);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return tr({inputs:{x:o},backend:e});let p=new ei(c,\"avg\",!1);return e.runWebGLProgram(p,[o],\"float32\")}var qM={kernelName:Uo,backendName:\"webgl\",kernelFunc:Uet};function Het(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n,c=[1,1,1],p=v.computePool3DInfo(o.shape,s,i,c,a,u,l),m=new $u(p,\"avg\",!1);return e.runWebGLProgram(m,[o],\"float32\")}var KM={kernelName:El,backendName:\"webgl\",kernelFunc:Het};var Qw=class{constructor(t){this.variableNames=[\"dy\"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=t.dilationHeight,a=t.dilationWidth,u=t.effectiveFilterHeight,l=t.effectiveFilterWidth,c=u-1-t.padInfo.top,p=l-1-t.padInfo.left,m=1/(e*n);this.userCode=`\n const ivec2 pads = ivec2(${c}, ${p});\n const float avgMultiplier = float(${m});\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 < ${u};\n wR += ${i}) {\n float dyR = float(dyRCorner + wR) / ${o}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${l};\n wC+= ${a}) {\n float dyC = float(dyCCorner + wC) / ${s}.0;\n\n if (dyC < 0.0 || dyC >= ${t.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 `}},tC=class{constructor(t){this.variableNames=[\"dy\"],this.outputShape=t.inShape;let e=t.filterDepth,n=t.filterHeight,o=t.filterWidth,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=t.dilationDepth,l=t.dilationHeight,c=t.dilationWidth,p=t.effectiveFilterDepth,m=t.effectiveFilterHeight,f=t.effectiveFilterWidth,d=p-1-t.padInfo.front,h=m-1-t.padInfo.top,g=f-1-t.padInfo.left,x=1/(e*n*o);this.userCode=`\n const ivec3 pads = ivec3(${d}, ${h}, ${g});\n const float avgMultiplier = float(${x});\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 < ${p};\n wD += ${u}) {\n float dyD = float(dyDCorner + wD) / ${s}.0;\n\n if (dyD < 0.0 || dyD >= ${t.outDepth}.0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < ${m};\n wR += ${l}) {\n float dyR = float(dyRCorner + wR) / ${i}.0;\n\n if (dyR < 0.0 || dyR >= ${t.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 += ${c}) {\n float dyC = float(dyCCorner + wC) / ${a}.0;\n\n if (dyC < 0.0 || dyC >= ${t.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 `}};function qet(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s,{filterSize:a,strides:u,pad:l,dimRoundingMode:c}=n,p=[1,1,1],m=v.computePool3DInfo(i.shape,a,u,p,l,c),f=new tC(m);return e.runWebGLProgram(f,[o],i.dtype)}var jM={kernelName:lp,backendName:\"webgl\",kernelFunc:qet};function Ket(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;Qs([o,s],\"avgPoolGrad\");let{filterSize:a,strides:u,pad:l}=n,c=v.computePool2DInfo(i.shape,a,u,1,l),p=new Qw(c);return e.runWebGLProgram(p,[o],i.dtype)}var XM={kernelName:ap,backendName:\"webgl\",kernelFunc:Ket};function jet(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;return Uc({a:o,b:s,transposeA:i,transposeB:a,backend:e})}var YM={kernelName:Ho,backendName:\"webgl\",kernelFunc:jet};var eC=class{constructor(t,e,n,o,s,i){this.outputShape=[],this.variableNames=[\"x\",\"mean\",\"variance\"],v.assertAndGetBroadcastShape(t,e),v.assertAndGetBroadcastShape(t,n);let a=\"0.0\";o!=null&&(v.assertAndGetBroadcastShape(t,o),this.variableNames.push(\"offset\"),a=\"getOffsetAtOutCoords()\");let u=\"1.0\";s!=null&&(v.assertAndGetBroadcastShape(t,s),this.variableNames.push(\"scale\"),u=\"getScaleAtOutCoords()\"),this.outputShape=t,this.userCode=`\n void main() {\n float x = getXAtOutCoords();\n float mean = getMeanAtOutCoords();\n float variance = getVarianceAtOutCoords();\n float offset = ${a};\n float scale = ${u};\n float inv = scale * inversesqrt(variance + float(${i}));\n setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1)));\n }\n `}};var rC=class{constructor(t,e,n,o,s,i){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=[\"x\",\"mean\",\"variance\"],v.assertAndGetBroadcastShape(t,e),v.assertAndGetBroadcastShape(t,n);let a=\"vec4(0.0)\";o!=null&&(v.assertAndGetBroadcastShape(t,o),this.variableNames.push(\"offset\"),a=\"getOffsetAtOutCoords()\");let u=\"vec4(1.0)\";s!=null&&(v.assertAndGetBroadcastShape(t,s),this.variableNames.push(\"scale\"),u=\"getScaleAtOutCoords()\"),this.outputShape=t,this.userCode=`\n void main() {\n vec4 offset = ${a};\n vec4 scale = ${u};\n\n vec4 x = getXAtOutCoords();\n vec4 mean = getMeanAtOutCoords();\n vec4 variance = getVarianceAtOutCoords();\n\n vec4 inv = scale * inversesqrt(variance + vec4(${i}));\n\n setOutput((x - mean) * inv + offset);\n }\n `}};var Xet=({inputs:r,backend:t,attrs:e})=>{let{x:n,mean:o,variance:s,offset:i,scale:a}=r;y.assert(o.shape.length===s.shape.length,()=>\"Batch normalization gradient requires mean and variance to have equal ranks.\"),y.assert(i==null||o.shape.length===i.shape.length,()=>\"Batch normalization gradient requires mean and offset to have equal ranks.\"),y.assert(a==null||o.shape.length===a.shape.length,()=>\"Batch normalization gradient requires mean and scale to have equal ranks.\");let{varianceEpsilon:u}=e;u==null&&(u=.001);let l=[n,o,s],c=null;i!=null&&(c=i.shape,l.push(i));let p=null;a!=null&&(p=a.shape,l.push(a));let m=z().getBool(\"WEBGL_PACK_NORMALIZATION\")?new rC(n.shape,o.shape,s.shape,c,p,u):new eC(n.shape,o.shape,s.shape,c,p,u);return t.runWebGLProgram(m,l,l[0].dtype)},ZM={kernelName:os,backendName:\"webgl\",kernelFunc:Xet};var nC=class{constructor(t){this.variableNames=[\"source\"],this.outputShape=t,this.rank=t.length;let e=zt(this.rank);this.customUniforms=[{name:\"start\",arrayIndex:this.rank,type:\"int\"}];let n=Yet(this.rank),o,s=t.map((i,a)=>`sourceLoc.${hk[a]} = start[${a}] + coords.${hk[a]};`);o=`\n ${e} sourceLoc;\n ${e} coords = getOutputCoords();\n ${s.join(`\n`)}\n `,this.userCode=`\n void main() {\n ${o}\n setOutput(getSource(${n}));\n }\n `}},hk=[\"x\",\"y\",\"z\",\"w\",\"u\",\"v\"];function Yet(r){if(r===1)return\"sourceLoc\";if(r<=6)return hk.slice(0,r).map(t=>\"sourceLoc.\"+t).join(\",\");throw Error(`Slicing for rank ${r} is not yet supported`)}var oC=class{constructor(t){this.variableNames=[\"source\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.rank=t.length,this.customUniforms=[{name:\"start\",arrayIndex:this.rank,type:\"int\"}];let e=zt(this.rank),n=Qe(\"coords\",this.rank),o=Qe(\"sourceLoc\",this.rank),s=this.rank===1?\"sourceLoc\":`vec2(${o.slice(-2).join()})`,i=`getChannel(getSource(${o.join()}), ${s})`,a=`\n result.x = ${i};\n if (++${n[this.rank-1]} < ${t[this.rank-1]}) {\n ++${o[this.rank-1]};\n result.y = ${i};\n --${o[this.rank-1]};\n }\n `,u=this.rank===1?\"\":`\n --${n[this.rank-1]};\n if (++${n[this.rank-2]} < ${t[this.rank-2]}) {\n ++${o[this.rank-2]};\n result.z = ${i};\n if (++${n[this.rank-1]} < ${t[this.rank-1]}) {\n ++${o[this.rank-1]};\n result.w = ${i};\n }\n }\n `,l=this.rank<=4?`sourceLoc = coords +\n ${e}(${t.map((c,p)=>`start[${p}]`).join()});`:t.map((c,p)=>`${o[p]} = ${n[p]} + start[${p}];`).join(`\n`);this.userCode=`\n void main() {\n ${e} coords = getOutputCoords();\n ${e} sourceLoc;\n ${l}\n vec4 result = vec4(0.);\n ${a}\n ${u}\n setOutput(result);\n }\n `}};function Zet(r,t,e,n){let o=n.texData.get(r.dataId),s=n.makeTensorInfo(e,r.dtype),i=n.texData.get(s.dataId);Object.assign(i,o),i.refCount=1,i.shape=e,i.dtype=r.dtype;let a=Le.computeFlatOffset(t,y.computeStrides(r.shape));o.slice&&(a+=o.slice.flatOffset),i.slice={flatOffset:a,origDataId:o.slice&&o.slice.origDataId||r.dataId};let u=n.dataRefCount.get(i.slice.origDataId)||1;return n.dataRefCount.set(i.slice.origDataId,u+1),s}function ri(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n,[a,u]=Le.parseSliceParams(o,s,i);if(Le.assertParamsValid(o,a,u),y.sizeFromShape(u)===0)return e.makeTensorInfo(u,o.dtype,[]);if(e.shouldExecuteOnCPU([o])||o.dtype===\"string\"){let p=e.texData.get(o.dataId),m=VL(p.values,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,m)}let{isPacked:l}=e.texData.get(o.dataId),c=Le.isSliceContinous(o.shape,a,u);if(l||!c){let p=z().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new oC(u):new nC(u),m=[a];return e.runWebGLProgram(p,[o],o.dtype,m)}return e.uploadToGPU(o.dataId),Zet(o,a,u,e)}var JM={kernelName:gi,backendName:\"webgl\",kernelFunc:ri};var Jet=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;y.assert(o.shape.length<=4,()=>\"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet\");let a=s.reduce((b,w)=>b*w),u=v.getReshaped(o.shape,s,a),l=v.getPermuted(u.length,s.length),c=v.getReshapedPermuted(o.shape,s,a),p=v.getSliceBeginCoords(i,s.length),m=v.getSliceSize(c,i,s.length),f=[],d=st({inputs:{x:o},backend:e,attrs:{shape:u}}),h=Oe({inputs:{x:d},backend:e,attrs:{perm:l}}),g=st({inputs:{x:h},backend:e,attrs:{shape:c}}),x=ri({inputs:{x:g},backend:e,attrs:{begin:p,size:m}});return f.push(d),f.push(h),f.push(g),f.forEach(b=>e.disposeIntermediateTensorInfo(b)),x},QM={kernelName:ai,backendName:\"webgl\",kernelFunc:Jet};function Qet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i}=n,a=e.readSync(o.dataId),u=e.readSync(s.dataId),l=Lw(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var tz={kernelName:up,backendName:\"webgl\",kernelFunc:Qet};function trt(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.readSync(n.dataId),i=e.readSync(o.dataId),a=v.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],\"int32\",Int32Array.from(a))}var ez={kernelName:cp,backendName:\"webgl\",kernelFunc:trt};var ert=\"return float(a != b);\",gk=le({opSnippet:ert,cpuKernelImpl:DL,dtype:\"bool\"}),rz={kernelName:Da,backendName:\"webgl\",kernelFunc:gk};function wl(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return tr({inputs:{x:o.complexTensorInfos.real},backend:e})}var nz={kernelName:Rp,backendName:\"webgl\",kernelFunc:wl};var rrt=\"return float(int(x));\";function oz(r,t){let e=new tn(r.shape,rrt),n=t.runWebGLProgram(e,[r],\"int32\");return{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}function xk(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s===\"complex64\"){if(o.dtype===\"complex64\")return tr({inputs:{x:o},backend:e});let i=Ne(o.shape),a=xk({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}}),u=En({inputs:{real:a,imag:i},backend:e});return i.dispose(),e.disposeIntermediateTensorInfo(a),u}if(o.dtype===\"complex64\"){let i=wl({inputs:{input:o},backend:e}),a=xk({inputs:{x:i},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(i),a}if(!y.hasEncodingLoss(o.dtype,s)){let i=tr({inputs:{x:o},backend:e});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(e.shouldExecuteOnCPU([o])){let i=e.texData.get(o.dataId).values,[a,u,l]=mL(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}if(s===\"int32\")return oz(o,e);if(s===\"bool\"){let i=e.makeTensorInfo([],\"bool\",y.getTypedArrayFromDType(\"bool\",1)),u=gk({inputs:{a:o,b:i},backend:e});return e.disposeIntermediateTensorInfo(i),u}throw new Error(`Error in Cast: failed to cast ${o.dtype} to ${s}`)}var sz={kernelName:lo,backendName:\"webgl\",kernelFunc:xk};var iz=\"return ceil(x);\",nrt=Ct({opSnippet:iz,packedOpSnippet:iz,cpuKernelImpl:fL}),az={kernelName:qo,backendName:\"webgl\",kernelFunc:nrt};var sC=class{constructor(t){this.variableNames=[\"A\"],this.customUniforms=[{name:\"minVal\",type:\"float\"},{name:\"maxVal\",type:\"float\"}],this.outputShape=t,this.userCode=`\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 `}};var iC=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"minVal\",type:\"float\"},{name:\"maxVal\",type:\"float\"}],this.outputShape=t,this.userCode=`\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 `}};function ort(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a;z().getBool(\"WEBGL_PACK_CLIP\")?a=new iC(o.shape):a=new sC(o.shape);let u=[[s],[i]];return e.runWebGLProgram(a,[o],o.dtype,u)}var lz={kernelName:uo,backendName:\"webgl\",kernelFunc:ort};var aC=class{constructor(t){this.variableNames=[\"real\",\"imag\"],this.outputShape=t,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 uz(r,t){return{dataId:t.dataId,dtype:t.dtype,shape:r.shape}}function srt(r){let{inputs:t,backend:e}=r,{x:n}=t,o=e.texData.get(n.dataId),s=new aC(n.shape),i=[uz(n,o.complexTensorInfos.real),uz(n,o.complexTensorInfos.imag)];return e.runWebGLProgram(s,i,i[0].dtype)}var cz={kernelName:_l,backendName:\"webgl\",kernelFunc:srt};var lC=class{constructor(t){this.outputShape=[],this.outputShape=v.computeOutShape(t,1),this.variableNames=t.map((i,a)=>`T${a}`);let e=new Array(t.length-1);e[0]=t[0][1];for(let i=1;i`T${g}`);let u=new Array(t.length-1);u[0]=t[0][e];for(let h=1;h= ${u[h-1]}) {\n return getChannel(\n getT${h}(${uC(a,l,g)}),\n vec2(${uC(c,l,g)}));\n }`}let f=u.length,d=u[u.length-1];m+=`\n return getChannel(\n getT${f}(${uC(a,l,d)}),\n vec2(${uC(c,l,d)}));`,this.userCode=`\n float getValue(${a.map(h=>\"int \"+h)}) {\n ${m}\n }\n\n void main() {\n ${s} coords = getOutputCoords();\n vec4 result = vec4(getValue(${i}), 0., 0., 0.);\n\n ${i[o-1]} = ${i[o-1]} + 1;\n if (${i[o-1]} < ${n[o-1]}) {\n result.g = getValue(${i});\n }\n\n ${i[o-2]} = ${i[o-2]} + 1;\n if (${i[o-2]} < ${n[o-2]}) {\n result.a = getValue(${i});\n }\n\n ${i[o-1]} = ${i[o-1]} - 1;\n if (${i[o-2]} < ${n[o-2]} &&\n ${i[o-1]} < ${n[o-1]}) {\n result.b = getValue(${i});\n }\n setOutput(result);\n }\n `}};function uC(r,t,e){let n=r.indexOf(t);return r.map((s,i)=>i===n?`${s} - ${e}`:s).join()}function Hc(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return tr({inputs:{x:o.complexTensorInfos.imag},backend:e})}var pz={kernelName:Sp,backendName:\"webgl\",kernelFunc:Hc};function Nd(r,t,e){let n=r[0].dtype;if(n===\"complex64\"){let p=r.map(g=>wl({inputs:{input:g},backend:e})),m=r.map(g=>Hc({inputs:{input:g},backend:e})),f=Nd(p,t,e),d=Nd(m,t,e),h=En({inputs:{real:f,imag:d},backend:e});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),m.forEach(g=>e.disposeIntermediateTensorInfo(g)),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),h}let o=e.shouldExecuteOnCPU(r);if(n===\"string\"&&(o=!0),o){let p=r.map(b=>{let w=y.sizeFromShape(b.shape.slice(t));return st({inputs:{x:b},backend:e,attrs:{shape:[-1,w]}})}),m=p.map(b=>({vals:e.readSync(b.dataId),shape:b.shape})),f=v.computeOutShape(p.map(b=>b.shape),1),d=p[0].shape[0]===1,h=dL(m,f,n,d),g=v.computeOutShape(r.map(b=>b.shape),t),x=e.makeTensorInfo(g,n,h);return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}let s=z().getNumber(\"WEBGL_MAX_TEXTURES_IN_SHADER\");if(r.length>s){let p=[];for(let f=0;f1){let p=new cC(r.map(m=>m.shape),t);return e.runWebGLProgram(p,r,n)}let{tensors2D:i,outShape:a}=irt(r,t,e),u=new lC(i.map(p=>p.shape)),l=e.runWebGLProgram(u,i,n);i.forEach(p=>e.disposeIntermediateTensorInfo(p));let c=st({inputs:{x:l},attrs:{shape:a},backend:e});return e.disposeIntermediateTensorInfo(l),c}function irt(r,t,e){let n=v.computeOutShape(r.map(s=>s.shape),t);return{tensors2D:r.map(s=>st({inputs:{x:s},attrs:{shape:[-1,y.sizeFromShape(s.shape.slice(t))]},backend:e})),outShape:n}}function yk(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n,s=y.parseAxisParam(o,t[0].shape)[0],i=t.map(l=>l.shape);v.assertParamsConsistent(i,s);let a=v.computeOutShape(t.map(l=>l.shape),s);if(y.sizeFromShape(a)===0)return e.makeTensorInfo(a,t[0].dtype,[]);let u=t.filter(l=>y.sizeFromShape(l.shape)>0);return u.length===1?tr({inputs:{x:u[0]},backend:e}):Nd(u,s,e)}var mz={kernelName:li,backendName:\"webgl\",kernelFunc:yk};var Td=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=[\"x\",\"W\"],this.outputShape=t.outShape;let i=t.padInfo.top,a=t.padInfo.left,u=t.strideHeight,l=t.strideWidth,c=t.dilationHeight,p=t.dilationWidth,m=t.filterHeight,f=t.filterWidth,d=Math.floor(t.inChannels/4)*4,h=t.inChannels%4,g=t.dataFormat===\"channelsLast\",x=g?1:2,b=g?2:3,w=g?3:1,C=\"\",N=\"\";n&&(o?C=`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:s?C=`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:C=`\n float activation(float x) {\n ${n}\n }\n `,N=\"result = activation(result);\");let _=e?\"result += getBiasAtOutCoords();\":\"\";e&&this.variableNames.push(\"bias\"),o&&this.variableNames.push(\"preluActivationWeights\"),s&&this.variableNames.push(\"leakyreluAlpha\"),this.userCode=`\n ${C}\n\n const ivec2 strides = ivec2(${u}, ${l});\n const ivec2 pads = ivec2(${i}, ${a});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d2 = coords[${w}];\n\n ivec2 xRCCorner =\n ivec2(coords[${x}], coords[${b}]) * 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 < ${m}; wR++) {\n int xR = xRCorner + wR * ${c};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${f}; wC++) {\n int xC = xCCorner + wC * ${p};\n\n if (xC < 0 || xC >= ${t.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 (${g}) {\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 (${h===1}) {\n\n if (${g}) {\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 (${h===2}) {\n vec2 wValues = vec2(\n getW(wR, wC, ${d}, d2),\n getW(wR, wC, ${d} + 1, d2)\n );\n\n if (${g}) {\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 (${h===3}) {\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 (${g}) {\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 ${N}\n setOutput(result);\n }\n `}},pC=class{constructor(t){this.variableNames=[\"x\",\"W\"],this.outputShape=t.outShape;let e=t.padInfo.front,n=t.padInfo.top,o=t.padInfo.left,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=t.dilationDepth,l=t.dilationHeight,c=t.dilationWidth,p=t.filterDepth,m=t.filterHeight,f=t.filterWidth,d=Math.floor(t.inChannels/4)*4,h=t.inChannels%4;this.userCode=`\n const ivec3 strides = ivec3(${s}, ${i}, ${a});\n const ivec3 pads = ivec3(${e}, ${n}, ${o});\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 < ${p}; wF++) {\n int xF = xFCorner + wF * ${u};\n\n if (xF < 0 || xF >= ${t.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${m}; wR++) {\n int xR = xRCorner + wR * ${l};\n\n if (xR < 0 || xR >= ${t.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 >= ${t.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 (${h===1}) {\n dotProd +=\n getX(batch, xF, xR, xC, ${d}) *\n getW(wF, wR, wC, ${d}, d2);\n } else if (${h===2}) {\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 (${h===3}) {\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 `}};var kd=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=[\"x\",\"W\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"pads\",type:\"ivec2\"},{name:\"strides\",type:\"ivec2\"},{name:\"dilations\",type:\"ivec2\"},{name:\"inDims\",type:\"ivec2\"}],this.outputShape=t.outShape,this.enableShapeUniforms=we(this.outputShape.length);let i=t.padInfo.left,a=t.strideWidth,u=t.dilationWidth,l=t.filterHeight,c=t.filterWidth,p=c,m=`\n int xR; int xC; int xCOffset;\n vec4 wTexel; vec4 previous; vec4 final;`;for(let g=0;g=0 && xR < inDims[0]) {\n `;for(let g=0;g<(p+1)/2;g++){let x=g*2;if(m+=`\n xC = xCCorner + ${x*u};\n `,a===1){if(x= 0 && xCOffset < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = 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 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n `,u===1&&x>0?m+=`\n xC${x} = vec4(xTexelC${x-2}.zw, xTexelC${x}.xy);\n `:m+=`\n xCOffset = xC + 1 - 2;\n\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n 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 >= inDims[1]) {\n previous.zw = vec2(0.0);\n }\n\n xC${x} = vec4(previous.zw, xTexelC${x}.xy);\n } else {\n xC${x} = vec4(0.0, 0.0, xTexelC${x}.xy);\n }\n `):m+=`\n if (xC >= 0 && xC < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n\n xC${x} = xTexelC${x};\n `,x+1= 0 && xCOffset < inDims[1] && xTexelC${x+1}Ready == 0) {\n xTexelC${x+1} = 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 >= inDims[1]) {\n xTexelC${x+1}.zw = vec2(0.0);\n }\n xTexelC${x+1}Ready = 1;\n }\n `,u>1?m+=`\n xCOffset -= 2;\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n xC${x+1} = vec4(previous.zw, xTexelC${x+1}.xy);\n } else {\n xC${x+1} = vec4(0.0, 0.0, xTexelC${x+1}.xy);\n }\n `:m+=`\n xC${x+1} = vec4(xTexelC${x}.zw, xTexelC${x+1}.xy);\n `):b===1?m+=`\n xC${x+1} = xTexelC${x};\n `:m+=`\n xCOffset = xC + ${b};\n\n if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${x+1}Ready == 0) {\n xTexelC${x+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x+1}.zw = vec2(0.0);\n }\n xTexelC${x+1}Ready = 1;\n }\n\n xC${x+1} = xTexelC${x+1};\n `}}else x= 0 && xCOffset < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xCOffset, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n\n if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC${x+1}Ready == 0) {\n xTexelC${x+1} = getX(batch, xR, xC + 1, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xC + 2 >= inDims[1]) {\n xTexelC${x+1}.zw = vec2(0.0);\n }\n xTexelC${x+1}Ready = 1;\n }\n\n xC${x} = vec4(xTexelC${x}.zw, xTexelC${x+1}.zw);\n `,x+1= 0 && xCOffset < inDims[1]) {\n final = getX(batch, xR, xCOffset, d1);\n }\n xC${x+1} = vec4(xTexelC${x+1}.xy, final.xy);\n `)):(m+=`\n if(xC >= 0 && xC < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n\n xCOffset = xC + strides[1];\n if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${x+1}Ready == 0) {\n xTexelC${x+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x+1}.zw = vec2(0.);\n }\n xTexelC${x+1}Ready = 1;\n }\n\n xC${x} = vec4(\n xTexelC${x}.xy, xTexelC${x+1}.xy);\n `,x+1= 0) {\n // Use custom imod instead mod. On Intel GPU, mod may generate\n // unexpected value.\n // https://github.com/tensorflow/tfjs/issues/5447\n offsetX = imod(blockIndex, outWidth) * stride[1] - pad[1];\n d1 = offsetX + dilation[1] * (imod(pos, itemsPerBlockRow) /\n inChannels);\n\n if(d1 < inputShape[${a}] && d1 >= 0) {\n\n ch = imod(pos, inChannels);\n\n if (${s}) {\n innerDims = vec2(d1, ch);\n result[${c*2+p}] = getChannel(\n getA(rc.x, d0, int(innerDims.x),\n int(innerDims.y)), innerDims);\n } else {\n innerDims = vec2(d0, d1);\n result[${c*2+p}] = getChannel(\n getA(rc.x, ch, int(innerDims.x),\n int(innerDims.y)), innerDims);\n }\n }\n }\n }\n `;this.userCode=`\n void main() {\n ivec3 rc = getOutputCoords();\n\n vec4 result = vec4(0);\n\n int blockIndex, pos, offsetY, d0, offsetX, d1, ch;\n vec2 innerDims;\n\n ${l}\n\n ${o.output} = result;\n }\n `}};function fC(r,t){let e=r.length;return e>=3?t?[...r.slice(0,-3),r[e-3]*r[e-2],r[e-1]]:[...r.slice(0,-3),r[e-3],r[e-2]*r[e-1]]:!t&&e===1&&r[0]>1?[r[0],1]:null}function dC({x:r,filter:t,convInfo:e,backend:n,bias:o=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:a=null}){let u=r.shape,l=n.texData.get(r.dataId),c=e.inChannels,p=u[0]*u[1]*u[2],m=e.outChannels,f=e.dataFormat===\"channelsLast\",d=!1,h=!1,g,x=[];if(s!=null){let C=fC(s.shape,f);C!=null&&(s=st({inputs:{x:s},backend:n,attrs:{shape:C}}),x.push(s))}if(o!=null){let C=fC(o.shape,f);C!=null&&(o=st({inputs:{x:o},backend:n,attrs:{shape:C}}),x.push(o))}if(!((p===1||m===1)&&c>dk)&&l.isPacked&&f&&l.texture!=null&&u[2]%2!==0&&y.arraysEqual(l.shape.slice(-3),u.slice(-3))){let C=u[0]*u[1]*(u[2]+1),N={dataId:r.dataId,shape:[1,C,e.inChannels],dtype:r.dtype},_=l.shape;l.shape=l.shape.slice(),l.shape[l.shape.length-2]++,y.assert(Eu(l.shape,N.shape),()=>`packed reshape ${l.shape} to ${N.shape} isn't free`);let A=st({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}});x.push(A);let $=Uc({a:N,b:A,backend:n,transposeA:d,transposeB:h,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i}),F=n.texData.get($.dataId);y.assert(F.isPacked,()=>\"batchMatMul result is expected to be packed\"),l.shape=_,F.shape=e.outShape,g=tr({inputs:{x:$},backend:n}),g.shape=e.outShape,x.push($)}else{let C=e.outHeight*e.outWidth,N=st({inputs:{x:r},backend:n,attrs:{shape:f?[e.batchSize,C,e.inChannels]:[e.batchSize,e.inChannels,C]}}),_=st({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}}),A=Uc({a:f?N:_,b:f?_:N,transposeA:!f,transposeB:h,backend:n,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i});g=st({inputs:{x:A},backend:n,attrs:{shape:e.outShape}}),x.push(N),x.push(_),x.push(A)}for(let C of x)n.disposeIntermediateTensorInfo(C);return g}function hC({x:r,filter:t,convInfo:e,backend:n,bias:o=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:a=null}){let{filterWidth:u,filterHeight:l,inChannels:c,outWidth:p,outHeight:m,dataFormat:f}=e,d=f===\"channelsLast\",h=u*l*c,g=m*p,x=[e.batchSize,h,g],b=!0,w=!1,C=[];if(s!=null){let Z=fC(s.shape,d);Z!=null&&(s=st({inputs:{x:s},backend:n,attrs:{shape:Z}}),C.push(s))}if(o!=null){let Z=fC(o.shape,d);Z!=null&&(o=st({inputs:{x:o},backend:n,attrs:{shape:Z}}),C.push(o))}let N=st({inputs:{x:t},backend:n,attrs:{shape:[1,h,y.sizeFromShape(t.shape)/h]}});C.push(N);let _=new mC(x,e),A=[r.shape,[e.padInfo.top,e.padInfo.left],[e.strideHeight,e.strideWidth],[e.dilationHeight,e.dilationWidth],[e.inChannels],[e.filterWidth*e.inChannels],[e.outWidth]],$=n.runWebGLProgram(_,[r],\"float32\",A),F=st({inputs:{x:$},backend:n,attrs:{shape:x}});C.push($),C.push(F);let P=o!=null,V=s!=null,G=a===\"leakyrelu\",W=a?bl(a,!0):null,q=new vd(d?F.shape:N.shape,d?N.shape:F.shape,d?[e.batchSize,g,e.outChannels]:[e.batchSize,e.outChannels,g],b,w,P,W,V,G),H=d?[F,N]:[N,F];if(o&&H.push(o),V&&H.push(s),G){let Z=n.makeTensorInfo([],\"float32\",y.createScalarValue(i,\"float32\"));H.push(Z),C.push(Z)}let j=n.runWebGLProgram(q,H,\"float32\"),Y=st({inputs:{x:j},backend:n,attrs:{shape:e.outShape}});C.push(j);for(let Z of C)n.disposeIntermediateTensorInfo(Z);return Y}function art(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dataFormat:u,dilations:l,dimRoundingMode:c}=n,p=v.convertConv2DDataFormat(u),m=v.computeConv2DInfo(o.shape,s.shape,i,l,a,c,!1,p),f;if(m.filterHeight===1&&m.filterWidth===1&&m.dilationHeight===1&&m.dilationWidth===1&&m.strideHeight===1&&m.strideWidth===1&&(m.padInfo.type===\"SAME\"||m.padInfo.type===\"VALID\"))f=dC({x:o,filter:s,convInfo:m,backend:e});else if(m.strideWidth<=2&&p===\"channelsLast\"&&z().getBool(\"WEBGL_EXP_CONV\")){let h=new kd(m),g=[[m.padInfo.top,m.padInfo.left],[m.strideHeight,m.strideWidth],[m.dilationHeight,m.dilationWidth],[m.inHeight,m.inWidth]];f=e.runWebGLProgram(h,[o,s],\"float32\",g)}else if(z().getBool(\"WEBGL_CONV_IM2COL\"))f=hC({x:o,filter:s,convInfo:m,backend:e});else{let h=new Td(m);f=e.runWebGLProgram(h,[o,s],\"float32\")}let d=st({inputs:{x:f},backend:e,attrs:{shape:m.outShape}});return e.disposeIntermediateTensorInfo(f),d}var fz={kernelName:Ko,backendName:\"webgl\",kernelFunc:art};var gC=class{constructor(t){this.variableNames=[\"x\",\"dy\"],this.outputShape=t.filterShape;let e=t.strideHeight,n=t.strideWidth,o=t.padInfo.top,s=t.padInfo.left,i=t.dataFormat===\"channelsLast\";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 < ${t.batchSize}; b++) {\n for (int yR = 0; yR < ${t.outHeight}; yR++) {\n int xR = wR + yR * ${e} - ${o};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${t.outWidth}; yC++) {\n int xC = wC + yC * ${n} - ${s};\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n if (${i}) {\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 `}},xC=class{constructor(t){this.variableNames=[\"dy\",\"W\"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=t.dataFormat===\"channelsLast\",a=e-1-t.padInfo.top,u=n-1-t.padInfo.left,l=i?1:2,c=i?2:3,p=i?3:1;this.userCode=`\n const ivec2 pads = ivec2(${a}, ${u});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[${p}];\n\n ivec2 dyCorner = ivec2(coords[${l}], coords[${c}]) - 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 < ${e}; wR++) {\n float dyR = float(dyRCorner + wR) / ${o}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${e} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n float dyC = float(dyCCorner + wC) / ${s}.0;\n\n if (dyC < 0.0 || dyC >= ${t.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 < ${t.outChannels}; d2++) {\n\n if (${i}) {\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 `}},yC=class{constructor(t){this.variableNames=[\"x\",\"dy\"],this.outputShape=t.filterShape;let e=t.strideDepth,n=t.strideHeight,o=t.strideWidth,s=t.padInfo.front,i=t.padInfo.top,a=t.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 < ${t.batchSize}; b++) {\n for (int yF = 0; yF < ${t.outDepth}; yF++) {\n int xF = wF + yF * ${e} - ${s};\n\n if (xF < 0 || xF >= ${t.inDepth}) {\n continue;\n }\n\n for (int yR = 0; yR < ${t.outHeight}; yR++) {\n int xR = wR + yR * ${n} - ${i};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${t.outWidth}; yC++) {\n int xC = wC + yC * ${o} - ${a};\n\n if (xC < 0 || xC >= ${t.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 `}},bC=class{constructor(t){this.variableNames=[\"dy\",\"W\"],this.outputShape=t.inShape;let e=t.filterDepth,n=t.filterHeight,o=t.filterWidth,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=e-1-t.padInfo.front,l=n-1-t.padInfo.top,c=o-1-t.padInfo.left;this.userCode=`\n const ivec3 pads = ivec3(${u}, ${l}, ${c});\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 < ${e}; wF++) {\n float dyF = float(dyFCorner + wF) / ${s}.0;\n\n if (dyF < 0.0 || dyF >= ${t.outDepth}.0 || fract(dyF) > 0.0) {\n continue;\n }\n int idyF = int(dyF);\n\n int wFPerm = ${e} - 1 - wF;\n\n for (int wR = 0; wR < ${n}; wR++) {\n float dyR = float(dyRCorner + wR) / ${i}.0;\n\n if (dyR < 0.0 || dyR >= ${t.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 < ${o}; wC++) {\n float dyC = float(dyCCorner + wC) / ${a}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${o} - 1 - wC;\n\n for (int d2 = 0; d2 < ${t.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 `}};function lrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,pad:a,dataFormat:u,dimRoundingMode:l,filterShape:c}=n,p=v.convertConv2DDataFormat(u),m=v.computeConv2DInfo(o.shape,c,i,1,a,l,!1,p),f=new gC(m);return e.runWebGLProgram(f,[o,s],\"float32\")}var dz={kernelName:mp,backendName:\"webgl\",kernelFunc:lrt};function urt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{inputShape:i,strides:a,pad:u,dataFormat:l,dimRoundingMode:c}=n,p=v.convertConv2DDataFormat(l),m=v.computeConv2DInfo(i,s.shape,a,1,u,c,!1,p),f=new xC(m);return e.runWebGLProgram(f,[o,s],\"float32\")}var hz={kernelName:jo,backendName:\"webgl\",kernelFunc:urt};function crt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=v.computeConv3DInfo(o.shape,s.shape,i,u,a),c=new pC(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var gz={kernelName:Al,backendName:\"webgl\",kernelFunc:crt};function prt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,pad:a,filterShape:u}=n,l=v.computeConv3DInfo(o.shape,u,i,1,a),c=new yC(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var xz={kernelName:fp,backendName:\"webgl\",kernelFunc:prt};function mrt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{pad:i,strides:a,inputShape:u}=n,l=v.computeConv3DInfo(u,s.shape,a,1,i),c=new bC(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var yz={kernelName:dp,backendName:\"webgl\",kernelFunc:mrt};var frt=Po+`\n return cos(x);\n`,drt=Ct({opSnippet:frt}),bz={kernelName:Xo,backendName:\"webgl\",kernelFunc:drt};var hrt=`\n float e2x = exp(-x);\n return (e2x + 1.0 / e2x) / 2.0;\n`,grt=Ct({opSnippet:hrt}),wz={kernelName:Yo,backendName:\"webgl\",kernelFunc:grt};var wC=class{constructor(t,e,n,o,s){this.variableNames=[\"Image\",\"Boxes\",\"BoxInd\"],this.outputShape=[];let[i,a,u,l]=t,[c]=e,[p,m]=n;this.outputShape=[c,p,m,l];let f=o===\"bilinear\"?1:0,[d,h]=[`${a-1}.0`,`${u-1}.0`],[g,x,b]=p>1?[`${(a-1)/(p-1)}`,\"(y2-y1) * height_ratio\",`y1*${d} + float(y)*(height_scale)`]:[\"0.0\",\"0.0\",`0.5 * (y1+y2) * ${d}`],[w,C,N]=m>1?[`${(u-1)/(m-1)}`,\"(x2-x1) * width_ratio\",`x1*${h} + float(x)*(width_scale)`]:[\"0.0\",\"0.0\",`0.5 * (x1+x2) * ${h}`];this.userCode=`\n const float height_ratio = float(${g});\n const float width_ratio = float(${w});\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 >= ${i}) {\n return;\n }\n\n float height_scale = ${x};\n float width_scale = ${C};\n\n float in_y = ${b};\n if( in_y < 0.0 || in_y > ${d} ) {\n setOutput(float(${s}));\n return;\n }\n float in_x = ${N};\n if( in_x < 0.0 || in_x > ${h} ) {\n setOutput(float(${s}));\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 `}};var xrt=r=>{let{inputs:t,backend:e,attrs:n}=r,{image:o,boxes:s,boxInd:i}=t,{cropSize:a,method:u,extrapolationValue:l}=n,c=new wC(o.shape,s.shape,a,u,l);return e.runWebGLProgram(c,[o,s,i],\"float32\")},Cz={kernelName:da,backendName:\"webgl\",kernelFunc:xrt};var qc;(function(r){r.Prod=\"*\",r.Sum=\"+\"})(qc||(qc={}));var ng=class{constructor(t,e,n,o){this.op=t,this.outputShape=e,this.variableNames=[\"x\"],this.customUniforms=[{name:\"index\",type:\"float\"}];let s=this.outputShape.length,i=this.op===qc.Prod?\"1.0\":\"0.0\",a=n?i:`getX(${Iz(s,\"coords\",this.op)})`,u=this.outputShape[this.outputShape.length-1],l=\"\",c=\"\";n?(l=o?`end != ${u-1}`:\"end != 0\",c=o?\"end + 1\":\"end - 1\"):(l=o?`end + pow2 < ${u}`:\"end >= pow2\",c=o?\"end + pow2\":\"end - pow2\"),this.userCode=`\n void main() {\n ${zt(s)} coords = getOutputCoords();\n int end = ${Sz(s,\"coords\",this.op)};\n float val = ${a};\n int pow2 = int(pow(2.0, index));\n if (${l}) {\n int idx = ${c};\n ${Sz(s,\"coords\",this.op)} = idx;\n val ${this.op}= getX(${Iz(s,\"coords\",this.op)});\n }\n setOutput(val);\n }\n `}};function Iz(r,t,e){if(r===1)return`${t}`;if(r===2)return`${t}.x, ${t}.y`;if(r===3)return`${t}.x, ${t}.y, ${t}.z`;if(r===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw new Error(`Cumulative ${e} for rank ${r} is not yet supported`)}function Sz(r,t,e){if(r===1)return`${t}`;if(r===2)return`${t}.y`;if(r===3)return`${t}.z`;if(r===4)return`${t}.w`;throw new Error(`Cumulative ${e} for rank ${r} is not yet supported`)}function CC(r,t,e,n,o,s){let i=t.shape.length,a=v.getAxesPermutation([n],i),u=t;a!=null&&(u=Oe({inputs:{x:t},backend:e,attrs:{perm:a}}));let l=v.getInnerMostAxes(1,i)[0];if(l!==i-1)throw new Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${n}`);let c=u.shape[l],p=tr({inputs:{x:u},backend:e});for(let m=0;m<=Math.ceil(Math.log2(c))-1;m++){let f=new ng(r,u.shape,!1,s),d=[[m]],h=p;p=e.runWebGLProgram(f,[p],p.dtype,d),e.disposeIntermediateTensorInfo(h)}if(o){let m=new ng(r,u.shape,o,s),f=p;p=e.runWebGLProgram(m,[p],p.dtype),e.disposeIntermediateTensorInfo(f)}if(a!=null){let m=v.getUndoAxesPermutation(a),f=Oe({inputs:{x:p},backend:e,attrs:{perm:m}});return e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(u),f}return p}function yrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return CC(qc.Prod,o,e,s,i,a)}var vz={kernelName:fa,backendName:\"webgl\",kernelFunc:yrt};function brt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return CC(qc.Sum,o,e,s,i,a)}var Nz={kernelName:Zo,backendName:\"webgl\",kernelFunc:brt};function wrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i,binaryOutput:a}=n;if(o.shape.length===1){let u=e.readSync(o.dataId),l=e.readSync(s.dataId),c=Lw(u,l,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,c)}else if(o.shape.length===2){let u=e.bufferSync(o),l=e.bufferSync(s),c=pL(u,l,i,a);return e.makeTensorInfo(c.shape,s.dtype,c.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${o.shape.length}.`)}var Tz={kernelName:hp,backendName:\"webgl\",kernelFunc:wrt};var IC=class{constructor(t,e,n){this.variableNames=[\"x\"],this.outputShape=[],this.outputShape=t,this.blockSize=e,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 / ${e};\n int offset_h = imod(h, ${e});\n int in_w = w / ${e};\n int offset_w = imod(w, ${e});\n int offset_d = (offset_h * ${e} + 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 this.dataFormat===\"NHWC\"?\"coords[1]\":\"coords[2]\"}getWidthCoordString(){return this.dataFormat===\"NHWC\"?\"coords[2]\":\"coords[3]\"}getDepthCoordString(){return this.dataFormat===\"NHWC\"?\"coords[3]\":\"coords[1]\"}getOutputDepthSize(){return this.dataFormat===\"NHWC\"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat===\"NHWC\"?\"getX(b, in_h, in_w, in_d)\":\"getX(b, in_d, in_h, in_w)\"}};function Crt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockSize:s,dataFormat:i}=n,a=o.shape[0],u=i===\"NHWC\"?o.shape[1]:o.shape[2],l=i===\"NHWC\"?o.shape[2]:o.shape[3],c=i===\"NHWC\"?o.shape[3]:o.shape[1],p=u*s,m=l*s,f=c/(s*s),d=i===\"NHWC\"?[a,p,m,f]:[a,f,p,m],h=new IC(d,s,i);return e.runWebGLProgram(h,[o],o.dtype)}var kz={kernelName:ha,backendName:\"webgl\",kernelFunc:Crt};var Ed=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=[\"x\",\"W\"],this.customUniforms=[{name:\"pads\",type:\"ivec2\"},{name:\"strides\",type:\"ivec2\"},{name:\"dilations\",type:\"ivec2\"},{name:\"inDims\",type:\"ivec2\"}],this.outputShape=t.outShape,this.enableShapeUniforms=we(this.outputShape.length);let i=t.filterHeight,a=t.filterWidth,u=t.outChannels/t.inChannels,l=\"\",c=\"\";n&&(o?l=`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:s?l=`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:l=`\n float activation(float x) {\n ${n}\n }\n `,c=\"result = activation(result);\");let p=e?\"result += getBiasAtOutCoords();\":\"\";e&&this.variableNames.push(\"bias\"),o&&this.variableNames.push(\"preluActivationWeights\"),s&&this.variableNames.push(\"leakyreluAlpha\"),this.userCode=`\n ${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 / ${u};\n int q = d2 - d1 * ${u};\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 < ${i}; wR++) {\n int xR = xRCorner + wR * dilations[0];\n\n if (xR < 0 || xR >= inDims[0]) {\n continue;\n }\n\n for (int wC = 0; wC < ${a}; wC++) {\n int xC = xCCorner + wC * dilations[1];\n\n if (xC < 0 || xC >= inDims[1]) {\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 ${p}\n ${c}\n setOutput(result);\n }\n `}};var _d=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=[\"x\",\"W\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"pads\",type:\"ivec2\"},{name:\"strides\",type:\"ivec2\"},{name:\"dilations\",type:\"ivec2\"},{name:\"inDims\",type:\"ivec2\"}],this.outputShape=t.outShape,this.enableShapeUniforms=we(this.outputShape.length);let i=t.outChannels/t.inChannels,a=t.padInfo.left,u=t.strideWidth,l=t.dilationWidth,c=t.filterHeight,p=t.filterWidth,m=p,f=`\n int xR; int xC; int xCOffset;\n vec4 wTexel; vec4 previous; vec4 final;`;for(let x=0;x=0 && xR < inDims[0]) {\n `;for(let x=0;x<(m+1)/2;x++){let b=x*2;if(f+=`\n xC = xCCorner + ${b*l};\n `,u===1){if(b= 0 && xCOffset < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = 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 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n `,l===1&&b>0?f+=`\n xC${b} = vec4(xTexelC${b-2}.zw, xTexelC${b}.xy);\n `:f+=`\n xCOffset = xC + 1 - 2;\n\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n 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 >= inDims[1]) {\n previous.zw = vec2(0.0);\n }\n\n xC${b} = vec4(previous.zw, xTexelC${b}.xy);\n } else {\n xC${b} = vec4(0.0, 0.0, xTexelC${b}.xy);\n }\n `):f+=`\n if (xC >= 0 && xC < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n\n xC${b} = xTexelC${b};\n `,b+1= 0 && xCOffset < inDims[1] && xTexelC${b+1}Ready == 0) {\n xTexelC${b+1} = 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 >= inDims[1]) {\n xTexelC${b+1}.zw = vec2(0.0);\n }\n xTexelC${b+1}Ready = 1;\n }\n `,l>1?f+=`\n xCOffset -= 2;\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n xC${b+1} = vec4(previous.zw, xTexelC${b+1}.xy);\n } else {\n xC${b+1} = vec4(0.0, 0.0, xTexelC${b+1}.xy);\n }\n `:f+=`\n xC${b+1} = vec4(xTexelC${b}.zw, xTexelC${b+1}.xy);\n `):w===1?f+=`\n xC${b+1} = xTexelC${b};\n `:f+=`\n xCOffset = xC + ${w};\n\n if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${b+1}Ready == 0) {\n xTexelC${b+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b+1}.zw = vec2(0.0);\n }\n xTexelC${b+1}Ready = 1;\n }\n\n xC${b+1} = xTexelC${b+1};\n `}}else b= 0 && xCOffset < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xCOffset, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n\n if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC${b+1}Ready == 0) {\n xTexelC${b+1} = getX(batch, xR, xC + 1, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xC + 2 >= inDims[1]) {\n xTexelC${b+1}.zw = vec2(0.0);\n }\n xTexelC${b+1}Ready = 1;\n }\n\n xC${b} = vec4(xTexelC${b}.zw, xTexelC${b+1}.zw);\n `,b+1= 0 && xCOffset < inDims[1]) {\n final = getX(batch, xR, xCOffset, d1);\n }\n xC${b+1} = vec4(xTexelC${b+1}.xy, final.xy);\n `)):(f+=`\n if(xC >= 0 && xC < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n\n xCOffset = xC + strides[1];\n if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${b+1}Ready == 0) {\n xTexelC${b+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b+1}.zw = vec2(0.);\n }\n xTexelC${b+1}Ready = 1;\n }\n\n xC${b} = vec4(\n xTexelC${b}.xy, xTexelC${b+1}.xy);\n `,b+1`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let p=v.computeConv2DInfo(o.shape,s.shape,i,c,a,l,!0),m;z().getBool(\"WEBGL_PACK_DEPTHWISECONV\")&&p.strideWidth<=2&&p.outChannels/p.inChannels===1?m=new _d(p):m=new Ed(p);let f=[[p.padInfo.top,p.padInfo.left],[p.strideHeight,p.strideWidth],[p.dilationHeight,p.dilationWidth],[p.inHeight,p.inWidth]];return e.runWebGLProgram(m,[o,s],\"float32\",f)}var Ez={kernelName:Jo,backendName:\"webgl\",kernelFunc:Irt};var SC=class{constructor(t){this.variableNames=[\"x\",\"dy\"],this.outputShape=t.filterShape;let e=t.strideHeight,n=t.strideWidth,o=t.padInfo.top,s=t.padInfo.left,i=t.outChannels/t.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 * ${i} + dm;\n\n float dotProd = 0.0;\n\n // TO DO: Vec4 over the batch size\n for (int b = 0; b < ${t.batchSize}; b++) {\n for (int yR = 0; yR < ${t.outHeight}; yR++) {\n int xR = wR + yR * ${e} - ${o};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${t.outWidth}; yC++) {\n int xC = wC + yC * ${n} - ${s};\n\n if (xC < 0 || xC >= ${t.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 `}},vC=class{constructor(t){this.variableNames=[\"dy\",\"W\"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=e-1-t.padInfo.top,a=n-1-t.padInfo.left,u=t.outChannels/t.inChannels;this.userCode=`\n const ivec2 pads = ivec2(${i}, ${a});\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 < ${e}; wR++) {\n float dyR = float(dyRCorner + wR) / ${o}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${e} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n float dyC = float(dyCCorner + wC) / ${s}.0;\n\n if (dyC < 0.0 || dyC >= ${t.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 < ${u}; dm++) {\n int d2 = d1 * ${u} + 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 `}};function Srt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,dilations:a,pad:u,dimRoundingMode:l,filterShape:c}=n,p=v.computeConv2DInfo(o.shape,c,i,a,u,l,!0),m=new SC(p);return e.runWebGLProgram(m,[o,s],\"float32\")}var _z={kernelName:gp,backendName:\"webgl\",kernelFunc:Srt};function vrt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{strides:i,dilations:a,pad:u,dimRoundingMode:l,inputShape:c}=n,p=v.computeConv2DInfo(c,s.shape,i,a,u,l,!0),m=new vC(p);return e.runWebGLProgram(m,[o,s],\"float32\")}var Az={kernelName:xp,backendName:\"webgl\",kernelFunc:vrt};var NC=class{constructor(t){this.variableNames=[\"X\"],this.outputShape=[t,t],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 `}};function Nrt(r){let{inputs:t,backend:e}=r,{x:n}=t,o=[...n.shape,...n.shape],s=y.sizeFromShape(n.shape),i=st({inputs:{x:n},backend:e,attrs:{shape:[s]}}),a=new NC(s),u=e.runWebGLProgram(a,[i],i.dtype),l=st({inputs:{x:u},backend:e,attrs:{shape:o}});return e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(u),l}var $z={kernelName:yp,backendName:\"webgl\",kernelFunc:Nrt};var TC=class{constructor(t){this.variableNames=[\"x\",\"W\"],this.outputShape=t.outShape;let{inHeight:e,inWidth:n,padInfo:o,strideHeight:s,strideWidth:i,filterHeight:a,filterWidth:u,dilationHeight:l,dilationWidth:c}=t,{top:p,left:m}=o;this.userCode=`\n const ivec2 strides = ivec2(${s}, ${i});\n const ivec2 pads = ivec2(${p}, ${m});\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 < ${a}; h++) {\n int hIn = hBeg + h * ${l};\n\n if (hIn >= 0 && hIn < ${e}) {\n for (int w = 0; w < ${u}; w++) {\n int wIn = wBeg + w * ${c};\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 `}};function Trt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=v.computeDilation2DInfo(o.shape,s.shape,i,a,\"NHWC\",u),c,p=new TC(l);c=e.runWebGLProgram(p,[o,s],\"float32\");let m=st({inputs:{x:c},backend:e,attrs:{shape:l.outShape}});return e.disposeIntermediateTensorInfo(c),m}var Dz={kernelName:$l,backendName:\"webgl\",kernelFunc:Trt};function krt(r){let{inputs:t,backend:e,attrs:n}=r,{equation:o}=n,s=t,{allDims:i,summedDims:a,idDims:u}=v.decodeEinsumEquation(o,s.length);v.checkEinsumDimSizes(i.length,u,s);let{path:l,steps:c}=v.getEinsumComputePath(a,u),p=c.length,m=null,f=i.length,d=[];for(let h=0;h=0&&(m=Wc({inputs:{x:m},backend:e,attrs:{axis:l[h]-(i.length-f),keepDims:!1}}),d.push(m)),f--)}for(let h of d)h!==m&&e.disposeIntermediateTensorInfo(h);return m}var Rz={kernelName:bp,backendName:\"webgl\",kernelFunc:krt};var Ert=\"return (x >= 0.0) ? x : (exp(x) - 1.0);\",_rt=`\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`,Art=Ct({opSnippet:Ert,packedOpSnippet:_rt}),Fz={kernelName:ts,backendName:\"webgl\",kernelFunc:Art};var $rt=\"return (b >= 1.0) ? a : a * (b + 1.0);\",Drt=`\n vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.)));\n return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0))));\n`,Rrt=r=>{let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=z().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new Oo(Drt,n.shape,o.shape):new io($rt,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],n.dtype)},Oz={kernelName:wp,backendName:\"webgl\",kernelFunc:Rrt};var Frt=`\n return vec4(equal(a, b));\n`,Ort=\"return float(a == b);\",Prt=le({opSnippet:Ort,packedOpSnippet:Frt,dtype:\"bool\",cpuKernelImpl:hL}),Pz={kernelName:xa,backendName:\"webgl\",kernelFunc:Prt};var Lrt=`\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 = ${v.ERF_P};\n float a1 = ${v.ERF_A1};\n float a2 = ${v.ERF_A2};\n float a3 = ${v.ERF_A3};\n float a4 = ${v.ERF_A4};\n float a5 = ${v.ERF_A5};\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`,Mrt=Ct({opSnippet:Lrt}),Lz={kernelName:ga,backendName:\"webgl\",kernelFunc:Mrt};var zrt=Po+`\n return exp(x);\n`,Brt=`\n vec4 result = exp(x);\n bvec4 isNaN = isnan(x);\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`,bk=Ct({opSnippet:zrt,packedOpSnippet:Brt,cpuKernelImpl:gL,dtype:\"float32\"}),Mz={kernelName:es,backendName:\"webgl\",kernelFunc:bk};function kC(r){let{inputs:t,attrs:e,backend:n}=r,{dim:o}=e,{input:s}=t,i=s.shape.length,a=s.shape.slice(),u=o;return o<0&&(y.assert(-(i+1)<=o,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+o+1),a.splice(u,0,1),st({inputs:{x:s},backend:n,attrs:{shape:a}})}var zz={kernelName:ui,backendName:\"webgl\",kernelFunc:kC};var Bz=\"return exp(x) - 1.0;\",Vrt=Ct({opSnippet:Bz,packedOpSnippet:Bz,cpuKernelImpl:xL}),Vz={kernelName:ya,backendName:\"webgl\",kernelFunc:Vrt};var og=class{constructor(t,e,n){this.variableNames=[\"real\",\"imag\"];let o=e[1];this.outputShape=e;let s=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,i=n?`${o}.0`:\"1.0\",a;if(t===\"real\")a=\"return real * expR - imag * expI;\";else if(t===\"imag\")a=\"return real * expI + imag * expR;\";else throw new Error(`FFT component must be either \"real\" or \"imag\", got ${t}.`);this.userCode=`\n const float exponentMultiplier = ${s};\n\n float unaryOpComplex(float real, float expR, float imag, float expI) {\n ${a}\n }\n\n float mulMatDFT(int batch, int index) {\n float indexRatio = float(index) / float(${o});\n float exponentMultiplierTimesIndexRatio =\n exponentMultiplier * indexRatio;\n\n float result = 0.0;\n\n for (int i = 0; i < ${o}; 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) / ${i};\n }\n\n return result;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n setOutput(mulMatDFT(coords[0], coords[1]));\n }\n `}};function EC(r,t,e){let n=e.texData.get(r.dataId),o=y.sizeFromShape(r.shape),s=r.shape[r.shape.length-1],i=o/s,a=st({inputs:{x:r},backend:e,attrs:{shape:[i,s]}}),u=a.shape,l=new og(\"real\",u,t),c=new og(\"imag\",u,t),p=[{dataId:n.complexTensorInfos.real.dataId,dtype:n.complexTensorInfos.real.dtype,shape:u},{dataId:n.complexTensorInfos.imag.dataId,dtype:n.complexTensorInfos.imag.dtype,shape:u}],m=e.runWebGLProgram(l,p,\"float32\"),f=e.runWebGLProgram(c,p,\"float32\"),d=En({inputs:{real:m,imag:f},backend:e});e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f);let h=st({inputs:{x:d},backend:e,attrs:{shape:r.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(d),h}function Grt(r){let{inputs:t,backend:e}=r,{input:n}=t;return EC(n,!1,e)}var Gz={kernelName:Cp,backendName:\"webgl\",kernelFunc:Grt};var _C=class{constructor(t,e){this.outputShape=[],this.customUniforms=[{name:\"value\",type:\"float\"}],this.variableNames=[\"x\"],this.outputShape=t,this.userCode=`\n void main() {\n // Input can be obtained from uniform value.\n setOutput(value);\n }\n `}};function Cl(r){let{backend:t,attrs:e}=r,{shape:n,value:o}=e,{dtype:s}=e;if(s=s||y.inferDtype(o),s===\"string\"){let i=y.getArrayFromDType(s,y.sizeFromShape(n));return i.fill(o),t.makeTensorInfo(n,s,i)}else{let i=new _C(n,o),a=[[o]];return t.runWebGLProgram(i,[],s,a)}}var Wz={kernelName:Dl,backendName:\"webgl\",kernelFunc:Cl};var AC=class{constructor(t){this.variableNames=[\"Image\"],this.outputShape=[];let e=t[2];this.outputShape=t,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n\n int coordX = ${e} - x - 1;\n float outputValue;\n if(coordX >= 0 && coordX < ${e}) {\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 `}};var Uz={kernelName:ba,backendName:\"webgl\",kernelFunc:({inputs:r,backend:t})=>{let{image:e}=r,n=t,o=new AC(e.shape);return n.runWebGLProgram(o,[e],e.dtype)}};var Hz=\"return floor(x);\",Wrt=Ct({opSnippet:Hz,packedOpSnippet:Hz,cpuKernelImpl:yL}),qz={kernelName:rs,backendName:\"webgl\",kernelFunc:Wrt};var Urt=`\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`,Hrt=`\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`,qrt=le({opSnippet:Urt,packedOpSnippet:Hrt,dtype:\"int32\"}),Kz={kernelName:ns,backendName:\"webgl\",kernelFunc:qrt};var $C=class{constructor(t){this.variableNames=[\"A\"];let e=Ge(),[n,o]=t;this.outputShape=t,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(${o}.0, ${n}.0);\n\n vec4 values = ${e.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 `}};var DC=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!1,this.packedOutput=!0;let e=Ge(),[n,o]=t;this.outputShape=t,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(${o}.0, ${n}.0);\n vec4 values = ${e.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 ${e.output} = result;\n }\n `}};var jz={kernelName:Yd,backendName:\"webgl\",kernelFunc:Krt},Ad,wk=z().getBool(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\");function Krt(r){let{inputs:t,backend:e,attrs:n}=r,{pixels:o}=t,{numChannels:s}=n,i=typeof HTMLVideoElement!=\"undefined\"&&o instanceof HTMLVideoElement,a=typeof HTMLImageElement!=\"undefined\"&&o instanceof HTMLImageElement,[u,l]=i?[o.videoWidth,o.videoHeight]:[o.width,o.height],c=[l,u],p=[l,u,s];if(a||i){let h=z().getBool(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\");(Ad==null||h!==wk)&&(wk=h,Ad=document.createElement(\"canvas\").getContext(\"2d\",{willReadFrequently:wk})),Ad.canvas.width=u,Ad.canvas.height=l,Ad.drawImage(o,0,0,u,l),o=Ad.canvas}let m=e.makeTensorInfo(c,\"int32\");e.texData.get(m.dataId).usage=jr.PIXELS,e.gpgpu.uploadPixelDataToTexture(e.getTexture(m.dataId),o);let f=z().getBool(\"WEBGL_PACK\")?new DC(p):new $C(p),d=e.runWebGLProgram(f,[m],\"int32\");return e.disposeData(m.dataId),d}function jrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=v.convertConv2DDataFormat(c),g=v.computeConv2DInfo(o.shape,s.shape,u,p,l,m,!1,h),x,b=[],w=i!=null,C=a!=null,N=f===\"leakyrelu\",_=()=>{let $=[o,s],F=(P,V)=>{if(V===\"NCHW\"&&P.shape.length===1&&P.shape[0]!==1){let G=st({inputs:{x:P},backend:e,attrs:{shape:[P.shape[0],1,1]}});return b.push(G),G}return P};if(w&&$.push(F(i,c)),C&&$.push(F(a,c)),N){let P=e.makeTensorInfo([],\"float32\",y.createScalarValue(d,\"float32\"));$.push(P),b.push(P)}return $};if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type===\"SAME\"||g.padInfo.type===\"VALID\"))x=dC({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else if(g.strideWidth<=2&&h===\"channelsLast\"&&z().getBool(\"WEBGL_EXP_CONV\")){let $=f?bl(f,!0):null,F=new kd(g,w,$,C,N),P=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],V=_();x=e.runWebGLProgram(F,V,\"float32\",P)}else if(z().getBool(\"WEBGL_CONV_IM2COL\"))x=hC({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else{let $=f?bl(f,!1):null,F=new Td(g,w,$,C,N),P=_();x=e.runWebGLProgram(F,P,\"float32\")}let A=st({inputs:{x},backend:e,attrs:{shape:g.outShape}});return b.push(x),b.forEach($=>e.disposeIntermediateTensorInfo($)),A}var Xz={kernelName:Ii,backendName:\"webgl\",kernelFunc:jrt};function Xrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dimRoundingMode:p,activation:m,leakyreluAlpha:f}=n,d=[],h=c;h==null&&(h=[1,1]),y.assert(v.eitherStridesOrDilationsAreOne(u,h),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${u} and dilations '${h}'`);let g=v.computeConv2DInfo(o.shape,s.shape,u,h,l,p,!0),x=z().getBool(\"WEBGL_PACK_DEPTHWISECONV\")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=m?bl(m,x):null,w=[o,s],C=i!=null,N=a!=null,_=m===\"leakyrelu\";if(C&&w.push(i),N&&w.push(a),_){let P=e.makeTensorInfo([],\"float32\",y.createScalarValue(f,\"float32\"));w.push(P),d.push(P)}let A;x?A=new _d(g,C,b,N,_):A=new Ed(g,C,b,N,_);let $=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=e.runWebGLProgram(A,w,\"float32\",$);return d.forEach(P=>e.disposeIntermediateTensorInfo(P)),F}var Yz={kernelName:Si,backendName:\"webgl\",kernelFunc:Xrt};var RC=class{constructor(t,e,n,o){this.sliceDim=t,this.strides=e,this.paramsShape=o,this.variableNames=[\"x\",\"indices\"],this.outputShape=n;let s=zt(n.length),i=`\n int index;`;for(let a=0;a= ${this.paramsShape[a]};\n flattenIndex += index * ${this.strides[a]};`;this.userCode=`\n void main() {\n ${s} coords = getOutputCoords();\n int flattenIndex = 0;\n bool out_of_bounds = false;\n\n ${i}\n\n setOutput(out_of_bounds ? 0.0 : getX(flattenIndex, coords[1]));\n }\n `}};function Yrt(r){let{inputs:t,backend:e}=r,{params:n,indices:o}=t,s=o.shape,i=s[s.length-1],a=y.sizeFromShape(n.shape),[u,l,c,p]=v.prepareAndValidate(n,o),m=st({inputs:{x:o},backend:e,attrs:{shape:[l,i]}}),f=st({inputs:{x:n},backend:e,attrs:{shape:[y.sizeFromShape(n.shape)/c,c]}});if(e.shouldExecuteOnCPU([n,o])||n.dtype===\"string\"){let x=e.readSync(o.dataId),b=e.bufferSync(n),w=bL(x,b,n.dtype,l,i,c,p,n.shape,a);return e.makeTensorInfo(u,n.dtype,w.values)}let d=new RC(i,p,[l,c],n.shape),h=e.runWebGLProgram(d,[f,m],f.dtype),g=st({inputs:{x:h},backend:e,attrs:{shape:u}});return e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(h),g}var Zz={kernelName:wa,backendName:\"webgl\",kernelFunc:Yrt};var FC=class{constructor(t,e){this.variableNames=[\"A\",\"indices\"],this.outputShape=e,this.rank=e.length;let n=zt(this.rank),o=Zrt(t,2);this.userCode=`\n void main() {\n ${n} resRC = getOutputCoords();\n int index = int(getIndices(resRC.x, resRC.z));\n float inBounds = (index >= 0) && (index < ${t[2]}) ? 1.0 : 0.0;\n setOutput(inBounds * getA(${o}));\n }\n `}};function Zrt(r,t){let e=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\"],n=[];for(let o=0;o=0,()=>`GatherV2: the index value ${N} is not in [0, ${w-1}]`)}}let l=v.segment_util.collectGatherOpShapeInfo(o,s,u,a),c=y.sizeFromShape(s.shape),p=[],m=st({inputs:{x:o},backend:e,attrs:{shape:[l.batchSize,l.outerSize,l.dimSize,l.sliceSize]}}),f=st({inputs:{x:s},backend:e,attrs:{shape:[l.batchSize,c/l.batchSize]}});p.push(m),p.push(f);let d=[l.batchSize,l.outerSize,c/l.batchSize,l.sliceSize];if(e.shouldExecuteOnCPU([o,s])||o.dtype===\"string\"){let b=e.bufferSync(f),w=e.bufferSync(m),C=wL(w,b,d);return p.forEach(N=>e.disposeIntermediateTensorInfo(N)),e.makeTensorInfo(l.outputShape,C.dtype,C.values)}let h=new FC(m.shape,d),g=e.runWebGLProgram(h,[m,f],m.dtype);p.push(g);let x=st({inputs:{x:g},backend:e,attrs:{shape:l.outputShape}});return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}var Jz={kernelName:ci,backendName:\"webgl\",kernelFunc:Ck};var Jrt=\"return float(a > b);\",Qrt=`\n return vec4(greaterThan(a, b));\n`,tnt=le({opSnippet:Jrt,packedOpSnippet:Qrt,cpuKernelImpl:CL,dtype:\"bool\"}),Qz={kernelName:Ca,backendName:\"webgl\",kernelFunc:tnt};var ent=\"return float(a >= b);\",rnt=`\n return vec4(greaterThanEqual(a, b));\n`,nnt=le({opSnippet:ent,packedOpSnippet:rnt,dtype:\"bool\",cpuKernelImpl:IL}),t3={kernelName:ss,backendName:\"webgl\",kernelFunc:nnt};function ont(r){let{inputs:t,backend:e}=r,{input:n}=t;return EC(n,!0,e)}var e3={kernelName:Ip,backendName:\"webgl\",kernelFunc:ont};var snt=\"return float(!isnan(x) && !isinf(x));\",int=Ct({opSnippet:snt,dtype:\"bool\"}),r3={kernelName:Ia,backendName:\"webgl\",kernelFunc:int};var ant=\"return float(isinf(x));\",lnt=Ct({opSnippet:ant,dtype:\"bool\"}),n3={kernelName:Sa,backendName:\"webgl\",kernelFunc:lnt};var unt=\"return float(isnan(x));\",cnt=Ct({opSnippet:unt,dtype:\"bool\"}),o3={kernelName:va,backendName:\"webgl\",kernelFunc:cnt};var pnt=\"return float(a < b);\",mnt=`\n return vec4(lessThan(a, b));\n`,fnt=le({opSnippet:pnt,packedOpSnippet:mnt,cpuKernelImpl:SL,dtype:\"bool\"}),s3={kernelName:Na,backendName:\"webgl\",kernelFunc:fnt};var dnt=\"return float(a <= b);\",hnt=`\n return vec4(lessThanEqual(a, b));\n`,gnt=le({opSnippet:dnt,packedOpSnippet:hnt,cpuKernelImpl:vL,dtype:\"bool\"}),i3={kernelName:Ta,backendName:\"webgl\",kernelFunc:gnt};function xnt(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=NL(n,o,s);return t.makeTensorInfo([i.length],\"float32\",i)}var a3={kernelName:vp,backendName:\"webgl\",kernelFunc:xnt};var ynt=Po+`\n return x < 0.0 ? 0./0. : log(x);\n`,bnt=`\n vec4 result = log(x);\n bvec4 isNaN = isnan(x);\n result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r);\n result.g = isNaN.g ? x.g : (x.g < 0.0 ? 0./0. : result.g);\n result.b = isNaN.b ? x.b : (x.b < 0.0 ? 0./0. : result.b);\n result.a = isNaN.a ? x.a : (x.a < 0.0 ? 0./0. : result.a);\n return result;\n`,wnt=Ct({opSnippet:ynt,packedOpSnippet:bnt,cpuKernelImpl:TL}),l3={kernelName:as,backendName:\"webgl\",kernelFunc:wnt};var Cnt=Po+`\n return log(1.0 + x);\n`,Int=Ct({opSnippet:Cnt}),u3={kernelName:ka,backendName:\"webgl\",kernelFunc:Int};var Snt=\"return float(a >= 1.0 && b >= 1.0);\",vnt=`\n return vec4(\n vec4(greaterThanEqual(a, vec4(1.0))) *\n vec4(greaterThanEqual(b, vec4(1.0))));\n`,Nnt=le({opSnippet:Snt,packedOpSnippet:vnt,dtype:\"bool\"}),c3={kernelName:Ea,backendName:\"webgl\",kernelFunc:Nnt};var Tnt=\"return float(!(x >= 1.0));\",knt=Ct({opSnippet:Tnt}),p3={kernelName:_a,backendName:\"webgl\",kernelFunc:knt};var Ent=\"return float(a >= 1.0 || b >= 1.0);\",_nt=`\n return min(\n vec4(greaterThanEqual(a, vec4(1.0))) +\n vec4(greaterThanEqual(b, vec4(1.0))),\n vec4(1.0));\n`,Ant=le({opSnippet:Ent,packedOpSnippet:_nt,dtype:\"bool\"}),m3={kernelName:Aa,backendName:\"webgl\",kernelFunc:Ant};var OC=class{constructor(t,e,n,o,s){this.variableNames=[\"x\"],this.outputShape=[];let i=e,a=t[3]-1;this.outputShape=t;let u,l=`float(${n}) + float(${o}) * sum`;s===.5?u=`inversesqrt(${l})`:s===1?u=`1.0/(${l})`:u=`exp(log(${l}) * float(-${s}));`,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 = -${i}; j <= ${i}; j++) {\n int idx = d + j;\n if (idx >= 0 && idx <= ${a}) {\n float z = getX(b, r, c, idx);\n sum += z * z;\n }\n }\n float val = x * ${u};\n setOutput(val);\n }\n `}};var PC=class{constructor(t,e,n,o,s){this.variableNames=[\"x\"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let i=e,a=t[3]-1;this.outputShape=t;let u,l=`float(${n}) + float(${o}) * sum`;s===.5?u=`inversesqrt(${l})`:s===1?u=`1.0/(${l})`:u=`exp(log(${l}) * float(-${s}));`,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 - ${i};\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 = - ${i}; j <= ${i}; j++) {\n ivec2 idx = depth + j;\n bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0));\n bvec2 belowUpperBound = lessThanEqual(idx, ivec2(${a}));\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 * ${u};\n setOutput(result);\n }\n `}};var $nt=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n,l=z().getBool(\"WEBGL_PACK_NORMALIZATION\")?new PC(o.shape,s,i,a,u):new OC(o.shape,s,i,a,u);return e.runWebGLProgram(l,[o],o.dtype)},f3={kernelName:Rl,backendName:\"webgl\",kernelFunc:$nt};var LC=class{constructor(t,e,n,o,s){this.variableNames=[\"inputImage\",\"outputImage\",\"dy\"],this.outputShape=[],this.outputShape=t,this.depth=t[3],this.depthRadius=e,this.bias=n,this.alpha=o,this.beta=s,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 - ${e})));\n int depthEnd = int(min(float(${this.depth}),\n float(d + ${e} + 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(${o}) * 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(${o})\n * float(${s})\n * getInputImage(b ,r ,c, k) * getOutputImage(b, r, c, d)\n / norm;\n if (k == d) {\n dyi += pow(norm, -1.0 * ${s});\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 `}};var Dnt=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o,y:s,dy:i}=t,{depthRadius:a,bias:u,alpha:l,beta:c}=n,p=new LC(o.shape,a,u,l,c);return e.runWebGLProgram(p,[o,s,i],o.dtype)},d3={kernelName:Np,backendName:\"webgl\",kernelFunc:Dnt};function h3(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=st({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Un(a,r.dtype,\"max\",n),l=st({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}function Ik(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reductionIndices:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=v.getAxesPermutation(l,a),p=c!=null,m=e.shouldExecuteOnCPU([o]),f=o;if(p){if(m){let w=e.texData.get(f.dataId).values,C=new Array(a);for(let A=0;A`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=v.computePool2DInfo(o.shape,s,i,l,a,u);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return tr({inputs:{x:o},backend:e});let p=new ei(c,\"max\",!1);return e.runWebGLProgram(p,[o],o.dtype)}var y3={kernelName:cs,backendName:\"webgl\",kernelFunc:Pnt};function Lnt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dataFormat:u,dimRoundingMode:l}=n,c=[1,1,1],p=v.computePool3DInfo(o.shape,s,i,c,a,l,u),m=new $u(p,\"max\",!1);return e.runWebGLProgram(m,[o],o.dtype)}var b3={kernelName:Fl,backendName:\"webgl\",kernelFunc:Lnt};var MC=class{constructor(t){this.variableNames=[\"dy\",\"maxPos\"],this.outputShape=t.inShape;let e=t.strideHeight,n=t.strideWidth,o=t.dilationHeight,s=t.effectiveFilterHeight,i=t.effectiveFilterWidth,a=s-1-t.padInfo.top,u=i-1-t.padInfo.left,l=s*i-1;this.userCode=`\n const ivec2 pads = ivec2(${a}, ${u});\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 < ${s};\n wR += ${o}) {\n float dyR = float(dyRCorner + wR) / ${e}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${i}; wC++) {\n float dyC = float(dyCCorner + wC) / ${n}.0;\n\n if (dyC < 0.0 || dyC >= ${t.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 * ${i} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n setOutput(dotProd);\n }\n `}},zC=class{constructor(t){this.variableNames=[\"dy\",\"maxPos\"],this.outputShape=t.inShape;let e=t.strideDepth,n=t.strideHeight,o=t.strideWidth,s=t.dilationDepth,i=t.dilationHeight,a=t.dilationWidth,u=t.effectiveFilterDepth,l=t.effectiveFilterHeight,c=t.effectiveFilterWidth,p=u-1-t.padInfo.front,m=l-1-t.padInfo.top,f=c-1-t.padInfo.left,d=u*l*c-1;this.userCode=`\n const ivec3 pads = ivec3(${p}, ${m}, ${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 < ${u};\n wD += ${s}) {\n float dyD = float(dyDCorner + wD) / ${e}.0;\n\n if (dyD < 0.0 || dyD >= ${t.outDepth}.0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < ${l};\n wR += ${i}) {\n float dyR = float(dyRCorner + wR) / ${n}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${c};\n wC += ${a}) {\n float dyC = float(dyCCorner + wC) / ${o}.0;\n\n if (dyC < 0.0 || dyC >= ${t.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} * ${c} +\n wR * ${c} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n }\n setOutput(dotProd);\n }\n `}};function Mnt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s,{filterSize:a,strides:u,pad:l,dimRoundingMode:c}=n,p=[1,1,1],m=v.computePool3DInfo(i.shape,a,u,p,l,c),f=new $u(m,\"max\",!0),d=e.runWebGLProgram(f,[i],i.dtype),h=new zC(m),g=e.runWebGLProgram(h,[o,d],i.dtype);return e.disposeIntermediateTensorInfo(d),g}var w3={kernelName:kp,backendName:\"webgl\",kernelFunc:Mnt};function znt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;Qs([s,i],\"maxPoolGrad\");let{filterSize:u,strides:l,pad:c,dimRoundingMode:p}=n,m=v.computePool2DInfo(a.shape,u,l,1,c,p),f=!0,d=new ei(m,\"max\",f),h=e.runWebGLProgram(d,[a],a.dtype),g=new MC(m),x=e.runWebGLProgram(g,[o,h],a.dtype);return e.disposeIntermediateTensorInfo(h),x}var C3={kernelName:Tp,backendName:\"webgl\",kernelFunc:znt};function I3(r,t,e,n){let o=new ei(e,\"max\",!1),s=n.runWebGLProgram(o,[r],\"float32\");o=new ei(e,\"max\",!0,!0,t);let i=n.runWebGLProgram(o,[r],\"float32\");return[s,i]}var S3={kernelName:Ep,backendName:\"webgl\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;y.assert(n.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${n.shape.length}.`);let l=[1,1];y.assert(v.eitherStridesOrDilationsAreOne(s,l),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${l}'`);let c=v.computePool2DInfo(n.shape,o,s,l,i),[p,m]=I3(n,a,c,u);return[p,m]}};function v3(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=st({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Un(a,\"float32\",\"mean\",n),l=st({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}var N3={kernelName:ps,backendName:\"webgl\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{keepDims:o,axis:s}=t,i=e,a=n.shape.length,u=y.parseAxisParam(s,n.shape),l=u,c=v.getAxesPermutation(l,a),p=c!=null,m=i.shouldExecuteOnCPU([n]),f=[],d=n;if(p){if(m){let C=i.texData.get(d.dataId).values,N=new Array(a);for(let $=0;$c[0]+t[p]+c[1]);let o=t.length,s=zt(o),i=e.map(c=>c[0]).join(\",\"),a=e.map((c,p)=>c[0]+t[p]).join(\",\"),u=[\"coords[0]\",\"coords[1]\",\"coords[2]\",\"coords[3]\"].slice(0,o),l=n===\"reflect\"?0:1;if(o===1){this.userCode=`\n int start = ${i};\n int end = ${a};\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 `;return}this.userCode=`\n ${s} start = ${s}(${i});\n ${s} end = ${s}(${a});\n\n void main() {\n ${s} outC = getOutputCoords();\n for (int i = 0; i < ${o}; 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 ${s} coords = outC - start;\n setOutput(getX(${u}));\n }\n `}};var VC=class{constructor(t,e,n){this.variableNames=[\"x\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.map((d,h)=>d[0]+t[h]+d[1]);let o=t.length,s=zt(o),i=e.map(d=>d[0]).join(\",\"),a=e.map((d,h)=>d[0]+t[h]).join(\",\"),u=Qe(\"rc\",o),l=Qe(\"source\",o),c=`${u[o-1]} < ${this.outputShape[o-1]}`,p=o===1?\"source\":`vec2(${l.slice(-2).join()})`,m=n===\"reflect\"?0:1,f=\"\";if(o===1){let d=`\n ${s} source = rc;\n if (source < start) {\n source = start * 2 - source - ${m};\n } else if (source >= end) {\n source = (end - 1) * 2 - source + ${m};\n }\n source -= start;\n `;f=`\n ${s} rc = outputLoc;\n ${d}\n result[0] = getChannel(getX(${l.join()}), ${p});\n ${u[o-1]} += 1;\n if(${c}) {\n ${d}\n result[1] = getChannel(getX(${l.join()}), ${p});\n }\n `}else{let d=`\n ${s} source = rc;\n ${s} lt = ${s}(lessThan(source, start));\n ${s} gte = ${s}(greaterThanEqual(source, end));\n ${s} orig = 1 - (lt + gte);\n source = orig * source +\n lt * (start * 2 - source - ${m}) +\n gte * ((end - 1) * 2 - source + ${m});\n source -= start;\n `;f=`\n ${s} rc = outputLoc;\n ${d}\n result[0] = getChannel(getX(${l.join()}), ${p});\n ${u[o-1]} += 1;\n if(${c}) {\n ${d}\n result[1] = getChannel(getX(${l.join()}), ${p});\n }\n rc = outputLoc;\n ${u[o-2]} += 1;\n if(${u[o-2]} < ${this.outputShape[o-2]}) {\n ${d}\n result[2] = getChannel(getX(${l.join()}), ${p});\n ${u[o-1]} += 1;\n if(${c}) {\n ${d}\n result[3] = getChannel(getX(${l.join()}), ${p});\n }\n }\n `}this.userCode=`\n const ${s} start = ${s}(${i});\n const ${s} end = ${s}(${a});\n\n void main() {\n ${s} outputLoc = getOutputCoords();\n vec4 result = vec4(0.);\n ${f}\n setOutput(result);\n }\n `}};var Unt=({inputs:r,backend:t,attrs:e})=>{let{x:n}=r,{paddings:o,mode:s}=e,i=z().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new VC(n.shape,o,s):new BC(n.shape,o,s);return t.runWebGLProgram(i,[n],n.dtype)},E3={kernelName:ds,backendName:\"webgl\",kernelFunc:Unt};var Hnt=`if (b == 0.0) return NAN;\n return mod(a, b);`,qnt=`\n vec4 result = mod(a, b);\n bvec4 isNaN = equal(b, vec4(0.0));\n `+Yi+`\n return result;\n`,Knt=le({opSnippet:Hnt,packedOpSnippet:qnt}),_3={kernelName:$a,backendName:\"webgl\",kernelFunc:Knt};var GC=class{constructor(t,e,n){this.variableNames=[\"probs\"],this.customUniforms=[{name:\"seed\",type:\"float\"}],this.outputShape=[t,n],this.userCode=`\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 < ${e-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(${e-1}));\n }\n `}};var jnt=`\nif (a == b) {\n return 1.0;\n};\nreturn a / b;`,Xnt=`\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`,Sk=le({opSnippet:jnt,packedOpSnippet:Xnt,checkOutOfBounds:!0}),A3={kernelName:Qo,backendName:\"webgl\",kernelFunc:Sk};var $3=\"return a - b;\",vk=le({opSnippet:$3,packedOpSnippet:$3,supportsComplex:!0,cpuKernelImpl:XL}),D3={kernelName:Fs,backendName:\"webgl\",kernelFunc:vk};function Nk(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=y.parseAxisParam([s],o.shape),a=Ik({inputs:{x:o},backend:e,attrs:{reductionIndices:i,keepDims:!1}}),u=v.expandShapeToKeepDim(a.shape,i),l=st({inputs:{x:a},backend:e,attrs:{shape:u}}),c=vk({inputs:{a:o,b:l},backend:e}),p=bk({inputs:{x:c},backend:e}),m=Wc({inputs:{x:p},backend:e,attrs:{axis:i,keepDims:!1}}),f=st({inputs:{x:m},backend:e,attrs:{shape:u}}),d=Sk({inputs:{a:p,b:f},backend:e});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(l),e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),d}var R3={kernelName:Ds,backendName:\"webgl\",kernelFunc:Nk};function Ynt(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n,u=a?o:Nk({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),l=u.shape[0],c=u.shape[1],p=new GC(l,c,s),m=[[i]],f=e.runWebGLProgram(p,[u],\"int32\",m);return a||e.disposeIntermediateTensorInfo(u),f}var F3={kernelName:_p,backendName:\"webgl\",kernelFunc:Ynt};var Znt=fr+`\n return -x;\n`,Jnt=`\n vec4 result = -x;\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`;function Qnt(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])){let s=e.texData.get(n.dataId),[i,a]=$L(s.values,n.shape,n.dtype);return e.makeTensorInfo(a,n.dtype,i)}let o;return z().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")?o=new so(n.shape,Jnt):o=new tn(n.shape,Znt),e.runWebGLProgram(o,[n],n.dtype)}var O3={kernelName:pi,backendName:\"webgl\",kernelFunc:Qnt};var tot=Ur.nonMaxSuppressionV3Impl;function eot(r){v.warn(\"tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead\");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u}=n,l=e.readSync(o.dataId),c=e.readSync(s.dataId),{selectedIndices:p}=tot(l,c,i,a,u);return e.makeTensorInfo([p.length],\"int32\",new Int32Array(p))}var P3={kernelName:Ra,backendName:\"webgl\",kernelFunc:eot};var rot=Ur.nonMaxSuppressionV4Impl;function not(r){v.warn(\"tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead\");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u,padToMaxOutputSize:l}=n,c=e.readSync(o.dataId),p=e.readSync(s.dataId),{selectedIndices:m,validOutputs:f}=rot(c,p,i,a,u,l);return[e.makeTensorInfo([m.length],\"int32\",new Int32Array(m)),e.makeTensorInfo([],\"int32\",new Int32Array([f]))]}var L3={kernelName:Fa,backendName:\"webgl\",kernelFunc:not};var oot=Ur.nonMaxSuppressionV5Impl;function sot(r){v.warn(\"tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead\");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u,softNmsSigma:l}=n,c=e.readSync(o.dataId),p=e.readSync(s.dataId),m=i,f=a,d=u,h=l,{selectedIndices:g,selectedScores:x}=oot(c,p,m,f,d,h);return[e.makeTensorInfo([g.length],\"int32\",new Int32Array(g)),e.makeTensorInfo([x.length],\"float32\",new Float32Array(x))]}var M3={kernelName:Oa,backendName:\"webgl\",kernelFunc:sot};var WC=class{constructor(t,e,n,o){this.variableNames=[\"indices\"],this.outputShape=[t,e],this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int index = round(getIndices(coords.x));\n setOutput(mix(float(${o}), float(${n}),\n float(index == coords.y)));\n }\n `}};var iot=r=>{let{inputs:t,backend:e,attrs:n}=r,{indices:o}=t,{dtype:s,depth:i,onValue:a,offValue:u}=n,l=y.sizeFromShape(o.shape),c=new WC(l,i,a,u),p=st({inputs:{x:o},backend:e,attrs:{shape:[l]}}),m=e.runWebGLProgram(c,[p],s);e.disposeIntermediateTensorInfo(p);let f=[...o.shape,i],d=st({inputs:{x:m},backend:e,attrs:{shape:f}});return e.disposeIntermediateTensorInfo(m),d},z3={kernelName:gs,backendName:\"webgl\",kernelFunc:iot};function sg(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype===\"complex64\"){let o=wl({inputs:{input:n},backend:e}),s=sg({inputs:{x:o},backend:e}),i=Hc({inputs:{input:n},backend:e}),a=sg({inputs:{x:i},backend:e}),u=En({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Cl({attrs:{shape:n.shape,dtype:n.dtype,value:n.dtype===\"string\"?\"\":0},backend:e})}var B3={kernelName:wi,backendName:\"webgl\",kernelFunc:sg};function V3(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype===\"string\")throw new Error(\"onesLike is not supported under string dtype\");if(n.dtype===\"complex64\"){let o=wl({inputs:{input:n},backend:e}),s=V3({inputs:{x:o},backend:e}),i=Hc({inputs:{input:n},backend:e}),a=sg({inputs:{x:i},backend:e}),u=En({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Cl({attrs:{shape:n.shape,dtype:n.dtype,value:1},backend:e})}var G3={kernelName:mi,backendName:\"webgl\",kernelFunc:V3};function aot(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return kC({inputs:{input:t[0]},backend:e,attrs:{dim:o}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{y.assertShapesMatch(s,c.shape,\"All tensors passed to stack must have matching shapes\"),y.assert(i===c.dtype,()=>\"All tensors passed to stack must have matching dtypes\")});let a=[],u=t.map(c=>{let p=kC({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=yk({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var W3={kernelName:fi,backendName:\"webgl\",kernelFunc:aot};var UC=class{constructor(t,e,n){this.variableNames=[\"x\"],this.customUniforms=[{name:\"value\",type:\"float\"}],this.outputShape=e.map((l,c)=>l[0]+t[c]+l[1]);let o=t.length,s=zt(o),i=e.map(l=>l[0]).join(\",\"),a=e.map((l,c)=>l[0]+t[c]).join(\",\"),u=[\"coords[0]\",\"coords[1]\",\"coords[2]\",\"coords[3]\"].slice(0,o);if(o===1){this.userCode=`\n int start = ${i};\n int end = ${a};\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 `;return}this.userCode=`\n ${s} start = ${s}(${i});\n ${s} end = ${s}(${a});\n\n void main() {\n ${s} outC = getOutputCoords();\n if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) {\n setOutput(value);\n } else {\n ${s} coords = outC - start;\n setOutput(getX(${u}));\n }\n }\n `}};var HC=class{constructor(t,e,n){this.variableNames=[\"x\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"value\",type:\"float\"}],this.outputShape=e.map((h,g)=>h[0]+t[g]+h[1]);let o=t.length,s=zt(o),i=e.map(h=>h[0]).join(\",\"),a=e.map((h,g)=>h[0]+t[g]).join(\",\"),u=Qe(\"rc\",o),l=Qe(\"source\",o),c=`${u[o-1]} < ${this.outputShape[o-1]}`,p=o===1?\"source\":`vec2(${l.slice(-2).join()})`,m=[`${s} rc = outputLoc;`,`${u[o-1]} += 1;\n if(${c}) {\n `,o===1?\"\":`}\n rc = outputLoc;\n ${u[o-2]} += 1;\n if(${u[o-2]} < ${this.outputShape[o-2]}) {`,o===1?\"\":` ${u[o-1]} += 1;\n if(${c}) {`],f=o===1?\"rc < start || rc >= end\":\"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))\",d=\"\";for(let h=0,g=o===1?2:4;h{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{paddings:s,constantValue:i}=n;if(y.sizeFromShape(o.shape)===0){let l=s.map((c,p)=>c[0]+o.shape[p]+c[1]);return Cl({backend:e,attrs:{shape:l,value:i,dtype:o.dtype}})}let a=z().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new HC(o.shape,s,i):new UC(o.shape,s,i),u=[[i]];return e.runWebGLProgram(a,[o],o.dtype,u)},U3={kernelName:xs,backendName:\"webgl\",kernelFunc:Tk};var lot=`\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`,uot=`\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 bvec4 isNaN1 = lessThan(a, vec4(0.0));\n bvec4 isNaN2 = lessThan(floor(b), b);\n bvec4 isNaN = bvec4(isNaN1.x && isNaN2.x, isNaN1.y && isNaN2.y, isNaN1.z && isNaN2.z, isNaN1.w && isNaN2.w);\n `+Yi+`\n return result;\n`,cot=le({opSnippet:lot,packedOpSnippet:uot}),H3={kernelName:ys,backendName:\"webgl\",kernelFunc:cot};function pot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=[],l=y.parseAxisParam(s,o.shape),c=l,p=v.getAxesPermutation(c,a),m=o;p!=null&&(m=Oe({inputs:{x:o},backend:e,attrs:{perm:p}}),c=v.getInnerMostAxes(c.length,a),u.push(m)),v.assertAxesAreInnerMostDims(\"prod\",c,a);let f;if(e.shouldExecuteOnCPU([m])){let d=e.texData.get(m.dataId).values,{outVals:h,outShape:g,outDtype:x}=RL(m.shape,m.dtype,d,c);f=e.makeTensorInfo(g,x,h)}else{let[d,h]=v.computeOutAndReduceShapes(m.shape,c),g=y.sizeFromShape(h),x=st({inputs:{x:m},backend:e,attrs:{shape:[-1,g]}}),b=Wu(o.dtype),w=Un(x,b,\"prod\",e);f=st({inputs:{x:w},backend:e,attrs:{shape:d}}),u.push(x),u.push(w)}if(i){u.push(f);let d=v.expandShapeToKeepDim(f.shape,l);f=st({inputs:{x:f},backend:e,attrs:{shape:d}})}return u.forEach(d=>e.disposeIntermediateTensorInfo(d)),f}var q3={kernelName:ws,backendName:\"webgl\",kernelFunc:pot};function mot(r){let{inputs:t,backend:e,attrs:n}=r,{paramsNestedSplits:o,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:a}=n,u=o.map(x=>e.readSync(x.dataId)),l=o.map(x=>x.shape),c=e.readSync(s.dataId),p=e.readSync(i.dataId),[m,f,d]=FL(u,l,c,s.shape,s.dtype,p,i.shape,a),h=m.map(x=>e.makeTensorInfo([x.length],\"int32\",x)),g=e.makeTensorInfo(d,s.dtype,f);return h.concat([g])}var K3={kernelName:Ap,backendName:\"webgl\",kernelFunc:mot};function fot(r){let{inputs:t,backend:e}=r,{starts:n,limits:o,deltas:s}=t,i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=OL(i,n.shape,n.dtype,a,o.shape,u,s.shape),p=e.makeTensorInfo([l.length],\"int32\",l),m=e.makeTensorInfo([c.length],n.dtype,c);return[p,m]}var j3={kernelName:$p,backendName:\"webgl\",kernelFunc:fot};function dot(r){let{inputs:t,backend:e,attrs:n}=r,{shape:o,values:s,defaultValue:i,rowPartitionTensors:a}=t,{rowPartitionTypes:u}=n,l=e.readSync(o.dataId),c=e.readSync(s.dataId),p=e.readSync(i.dataId),m=a.map(g=>e.readSync(g.dataId)),f=a.map(g=>g.shape),[d,h]=PL(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var X3={kernelName:Dp,backendName:\"webgl\",kernelFunc:dot};var kk=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=LL(n,o,s,i);return t.makeTensorInfo([a.length],i,a)},Y3={kernelName:Ol,backendName:\"webgl\",kernelFunc:kk};var hot=\"return 1.0 / x;\",got=Ct({opSnippet:hot}),Z3={kernelName:Pa,backendName:\"webgl\",kernelFunc:got};var xot=fr+`\n return (x < 0.0) ? 0.0 : x;\n`,yot=`\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`,bot=Ct({opSnippet:xot,packedOpSnippet:yot}),J3={kernelName:Cs,backendName:\"webgl\",kernelFunc:bot};var wot=fr+`\n return (x < 0.0) ? 0.0 : min(6.0, x);\n`,Cot=`\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`,Iot=Ct({opSnippet:wot,packedOpSnippet:Cot}),Q3={kernelName:vs,backendName:\"webgl\",kernelFunc:Iot};var qC=class{constructor(t,e,n,o,s){this.variableNames=[\"A\"],this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m;s?m=\"(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)\":m=\"vec2(yRC) * effectiveInputOverOutputRatioRC\",this.userCode=`\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${c[0]/p[0]},\n ${c[1]/p[1]});\n const vec2 inputShapeRC = vec2(${a}.0, ${u}.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 = ${m};\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 `}};var KC=class{constructor(t,e,n,o,s){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m;s?m=\"(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)\":m=\"vec3(yRC) * effectiveInputOverOutputRatioRC\",this.userCode=`\n const vec3 effectiveInputOverOutputRatioRC = vec3(\n ${c[0]/p[0]},\n ${c[1]/p[1]},\n ${c[1]/p[1]});\n const vec3 inputShapeRC = vec3(${a}.0, ${u}.0,\n ${u}.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 = ${m};\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 `}};function Sot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=z().getBool(\"WEBGL_PACK_IMAGE_OPERATIONS\")?new KC(o.shape,u,l,s,i):new qC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],\"float32\")}var tB={kernelName:Ss,backendName:\"webgl\",kernelFunc:Sot};var jC=class{constructor(t,e,n){this.variableNames=[\"dy\"],this.outputShape=[],this.outputShape=e;let[,o,s]=e,[,i,a]=t,u=[n&&i>1?o-1:o,n&&a>1?s-1:s],l=[n&&i>1?i-1:i,n&&a>1?a-1:a],c=u[0]/l[0],p=u[1]/l[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+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(${c});\n const float widthScale = float(${p});\n\n const float invHeightScale = float(${m});\n const float invWidthScale = float(${f});\n\n const int winHeight = int(${d});\n const int winWidth = int(${h});\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 >= ${i}) {\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 >= ${a}) {\n continue;\n }\n\n float dxR = float(dyR) * heightScale;\n int topDxRIndex = int(floor(dxR));\n int bottomDxRIndex = int(min(ceil(dxR), ${o-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), ${s-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 `}};function vot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new jC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var eB={kernelName:Op,backendName:\"webgl\",kernelFunc:vot};var XC=class{constructor(t,e,n,o,s){this.variableNames=[\"A\"],this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m=o?\"0.5\":\"0.0\",f;s?f=\"max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))\":f=\"vec2(yRC) * effectiveInputOverOutputRatioRC\",this.userCode=`\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${c[0]/p[0]},\n ${c[1]/p[1]});\n const vec2 inputShapeRC = vec2(${a}.0, ${u}.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 + ${m})));\n float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d);\n\n setOutput(newValue);\n }\n `}};var YC=class{constructor(t,e,n,o,s){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m=o?\"0.5\":\"0.0\",f;s?f=\"max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))\":f=\"vec3(yRC) * effectiveInputOverOutputRatioRC\",this.userCode=`\n const vec3 effectiveInputOverOutputRatioRC = vec3(\n ${c[0]/p[0]},\n ${c[1]/p[1]},\n ${c[1]/p[1]});\n const vec3 inputShapeRC = vec3(${a}.0, ${u}.0,\n ${u}.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 = ${f};\n\n // Compute the coordinators of nearest neighbor point.\n ivec3 sourceNearestRC = ivec3(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${m})));\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 vec4 newValue = vec4(\n getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d),\n hasNextCol ? getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d + 1) : 0.0);\n\n setOutput(newValue);\n }\n `}};function Not(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=z().getBool(\"WEBGL_PACK_IMAGE_OPERATIONS\")?new YC(o.shape,u,l,s,i):new XC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],o.dtype)}var rB={kernelName:Is,backendName:\"webgl\",kernelFunc:Not};var ZC=class{constructor(t,e,n){this.variableNames=[\"dy\"],this.outputShape=[],this.outputShape=e;let[,o,s]=e,[,i,a]=t,u=[n&&i>1?o-1:o,n&&a>1?s-1:s],l=[n&&i>1?i-1:i,n&&a>1?a-1:a],c=u[0]/l[0],p=u[1]/l[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+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(${c});\n const float widthScale = float(${p});\n\n const float invHeightScale = float(${m});\n const float invWidthScale = float(${f});\n\n const int winHeight = int(${d});\n const int winWidth = int(${h});\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 >= ${i}) {\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 >= ${a}) {\n continue;\n }\n\n float sourceFracRow =\n float(${u[0]}) *\n (float(dyR) / float(${l[0]}));\n\n float sourceFracCol =\n float(${u[1]}) *\n (float(dyC) / float(${l[1]}));\n\n int sourceNearestRow = int(min(\n float(int(${o}) - 1),\n ${n} ? float(round(sourceFracRow)) :\n float(floor(sourceFracRow))));\n\n int sourceNearestCol = int(min(\n float(int(${s}) - 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 `}};function Tot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new ZC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var nB={kernelName:Fp,backendName:\"webgl\",kernelFunc:Tot};var JC=class{constructor(t,e){this.variableNames=[\"x\"];let n=t.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=t,n===1){this.userCode=`\n void main() {\n int coord = getOutputCoords();\n setOutput(getX(${t[0]} - coord - 1));\n }\n `;return}let o=a=>e.indexOf(a)!==-1&&t[a]!==1?`${t[a]} - coords[${a}] - 1`:`coords[${a}]`,s=t.map((a,u)=>o(u)).join(\",\"),i=zt(n);this.userCode=`\n void main() {\n ${i} coords = getOutputCoords();\n setOutput(getX(${s}));\n }\n `}};var QC=class{constructor(t,e){this.variableNames=[\"x\"],this.packedInputs=!0,this.packedOutput=!0;let n=t.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=t;let o=Qe(\"rc\",n),s=`${o[n-1]} + 1 < ${this.outputShape[n-1]}`,i=`${o[n-2]} + 1 < ${this.outputShape[n-2]}`,a=zt(n);n===1?this.userCode=`\n void main(){\n int rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = getChannel(getX(${t[0]} - rc - 1),\n ${t[0]} - rc - 1);\n if(${s}){\n result.g = getChannel(getX(${t[0]} - (rc + 1) - 1),\n ${t[0]} - (rc + 1) - 1);\n }\n setOutput(result);\n }\n `:this.userCode=`\n void main() {\n ${a} rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = ${u(o.slice())};\n if(${s}){\n result.g = ${l(o.slice())};\n }\n if(${i}) {\n result.b = ${c(o.slice())};\n if(${s}) {\n result.a = ${p(o.slice())};\n }\n }\n setOutput(result);\n }\n `;function u(d){return m(d)}function l(d){return d[n-1]=\"(\"+d[n-1]+\" + 1)\",m(d)}function c(d){return d[n-2]=\"(\"+d[n-2]+\" + 1)\",m(d)}function p(d){return d[n-1]=\"(\"+d[n-1]+\" + 1)\",d[n-2]=\"(\"+d[n-2]+\" + 1)\",m(d)}function m(d){let h=t.map((b,w)=>f(w,d)),g=h.join(\",\"),x=h.slice(-2).join(\",\");return`getChannel(getX(${g}), vec2(${x}))`}function f(d,h){return e.indexOf(d)!==-1&&t[d]!==1?`${t[d]} - ${h[d]} - 1`:`${h[d]}`}}};function kot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n,i=o.shape.length,a=y.parseAxisParam(s,o.shape);if(i===0)return tr({inputs:{x:o},backend:e});let u=z().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new QC(o.shape,a):new JC(o.shape,a);return e.runWebGLProgram(u,[o],o.dtype)}var oB={kernelName:Ns,backendName:\"webgl\",kernelFunc:kot};var tI=class{constructor(t,e){this.variableNames=[\"Image\"],this.outputShape=[],this.customUniforms=[{name:\"params\",type:\"vec4\"}];let n=t[1],o=t[2];this.outputShape=t;let s=\"\";typeof e==\"number\"?s=`float outputValue = ${e.toFixed(2)};`:s=`\n vec3 fill = vec3(${e.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) - 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 ${s}\n if(coordX >= 0 && coordX < ${o} && coordY >= 0 && coordY < ${n}) {\n outputValue = getImage(coords[0], coordY, coordX, coords[3]);\n }\n setOutput(outputValue);\n }\n `}};var sB={kernelName:qa,backendName:\"webgl\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=new tI(n.shape,s),[l,c]=v.getImageCenter(i,n.shape[1],n.shape[2]),p=[[l,c,Math.sin(o),Math.cos(o)]];return a.runWebGLProgram(u,[n],n.dtype,p)}};var Eot=`\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`,_ot=Ct({opSnippet:Eot}),iB={kernelName:Ts,backendName:\"webgl\",kernelFunc:_ot};var Aot=\"return inversesqrt(x);\",$ot=Ct({opSnippet:Aot,cpuKernelImpl:ML}),aB={kernelName:ks,backendName:\"webgl\",kernelFunc:$ot};var $d=class{constructor(t,e,n,o,s,i,a=!0){this.variableNames=[\"updates\",\"indices\",\"defaultValue\"],this.outputShape=i;let u=zt(s.length),l=zt(i.length),c=\"\";n===1?c=\"i\":n===2&&(c=\"i, j\");let p=`getIndices(${c})`,m=\"\";o===1?m=\"i\":o===2&&(m=\"i, coords[1]\");let f=`getUpdates(${m})`,d=e>1?\"strides[j]\":\"strides\";this.userCode=`\n ${u} strides = ${u}(${s});\n\n void main() {\n ${l} coords = getOutputCoords();\n float sum = 0.0;\n bool found = false;\n for (int i = 0; i < ${t}; i++) {\n int flattenedIndex = 0;\n for (int j = 0; j < ${e}; j++) {\n int index = round(${p});\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 `}};function Dot(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o,updates:s}=t,{shape:i}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=v.calculateShapes(s,o,i),m=[p/l,l];if(p===0)return e.makeTensorInfo(i,o.dtype);let f=st({inputs:{x:o},backend:e,attrs:{shape:[u,a]}}),d=st({inputs:{x:s},backend:e,attrs:{shape:[u,l]}}),h=e.makeTensorInfo([],\"float32\",new Float32Array([0])),g=new $d(u,a,f.shape.length,d.shape.length,c,m),x=e.runWebGLProgram(g,[d,f,h],d.dtype),b=st({inputs:{x},backend:e,attrs:{shape:i}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(h),b}var lB={kernelName:La,backendName:\"webgl\",kernelFunc:Dot};var eI=class{constructor(t,e,n,o){this.variableNames=[\"sortedSequence\",\"values\"],this.customUniforms=[{name:\"numInputs\",type:\"int\"}],this.outputShape=[t,n];let s=\"while (left < right) {\",i=`for (int i = 0; i < ${Math.ceil(Math.log2(e+1))}; ++i) { if (left >= right) break;`,a=z().getNumber(\"WEBGL_VERSION\")===2?s:i,u=o===\"left\"?\"<\":\"<=\";this.userCode=`\n int findBound(int batch, float value) {\n int left = 0;\n int right = numInputs;\n int mid;\n ${a}\n mid = (left + right) / 2;\n if (getSortedSequence(batch, mid) ${u} value) {\n left = mid + 1;\n } else {\n right = mid;\n }\n }\n return right;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int valueIndex = coords[1];\n\n float value = getValues(batch, valueIndex);\n\n setOutput(float(findBound(batch, value)));\n }\n `}};function Rot(r){let{inputs:t,backend:e,attrs:n}=r,{sortedSequence:o,values:s}=t,{side:i}=n,a=new eI(o.shape[0],o.shape[1],s.shape[1],i),u=[[o.shape[1]]];return e.runWebGLProgram(a,[o,s],\"int32\",u)}var uB={kernelName:Pp,backendName:\"webgl\",kernelFunc:Rot};var rI=class{constructor(t,e,n){this.variableNames=[\"c\",\"a\",\"b\"],this.outputShape=e;let o,s;if(n>4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)s=\"resRC\",o=\"resRC\";else{let a=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\"],u=[],l=[];for(let c=0;c= 1.0) {\n setOutput(getA(${s}));\n } else {\n setOutput(getB(${s}));\n }\n }\n `}};function Fot(r){let{inputs:t,backend:e}=r,{condition:n,t:o,e:s}=t,i=new rI(n.shape.length,o.shape,o.shape.length);return e.runWebGLProgram(i,[n,o,s],sr(o.dtype,s.dtype))}var cB={kernelName:hi,backendName:\"webgl\",kernelFunc:Fot};var Oot=`\n // Stable and Attracting Fixed Point (0, 1) for Normalized Weights.\n // see: https://arxiv.org/abs/1706.02515\n float scaleAlpha = ${v.SELU_SCALEALPHA};\n float scale = ${v.SELU_SCALE};\n return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0);\n`,Pot=Ct({opSnippet:Oot}),pB={kernelName:Ma,backendName:\"webgl\",kernelFunc:Pot};var Lot=Po+`\n return 1.0 / (1.0 + exp(-1.0 * x));\n`,Mot=`\n vec4 result = 1.0 / (1.0 + exp(-1.0 * x));\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`,zot=Ct({opSnippet:Lot,packedOpSnippet:Mot,cpuKernelImpl:BL}),mB={kernelName:_s,backendName:\"webgl\",kernelFunc:zot};var Bot=`\n if (isnan(x)) { return 0.0; }\n return sign(x);\n`,Vot=Ct({opSnippet:Bot}),fB={kernelName:Ba,backendName:\"webgl\",kernelFunc:Vot};var Got=Po+`\n return sin(x);\n`,Wot=Ct({opSnippet:Got}),dB={kernelName:Es,backendName:\"webgl\",kernelFunc:Wot};var Uot=`\n float e2x = exp(x);\n return (e2x - 1.0 / e2x) / 2.0;\n`,Hot=Ct({opSnippet:Uot}),hB={kernelName:za,backendName:\"webgl\",kernelFunc:Hot};var qot=`\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`,Kot=Ct({opSnippet:qot}),gB={kernelName:Va,backendName:\"webgl\",kernelFunc:Kot};var jot=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,paddings:i}=n;y.assert(o.shape.length<=4,()=>\"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet\");let a=s.reduce((x,b)=>x*b),u=[[0,0]];u.push(...i);for(let x=1+s.length;xe.disposeIntermediateTensorInfo(x)),g},xB={kernelName:xi,backendName:\"webgl\",kernelFunc:jot};function Xot(r){let{inputs:t,backend:e}=r,{indices:n,values:o,denseShape:s,defaultValue:i}=t;if(s.shape.length!==1)throw new Error(`Dense shape must be a vector, saw:\n ${s.shape}`);if(n.shape.length!==2)throw new Error(`Indices must be a matrix, saw:\n ${n.shape}`);if(o.shape.length!==1)throw new Error(`Values must be a vector, saw:\n ${o.shape}`);if(i.shape.length!==0)throw new Error(`Default value must be a scalar, saw:\n ${i.shape}`);let a=e.readSync(n.dataId),u=e.readSync(o.dataId),l=e.readSync(s.dataId),c=e.readSync(i.dataId)[0],[p,m,f,d,h]=GL(a,n.shape,n.dtype,u,o.dtype,l,c);return[e.makeTensorInfo(m,n.dtype,p),e.makeTensorInfo([m[0]],o.dtype,f),e.makeTensorInfo([d.length],\"bool\",new Uint8Array(d.map(g=>Number(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var yB={kernelName:Pl,backendName:\"webgl\",kernelFunc:Xot};function Yot(r){let{inputs:t,backend:e}=r,{inputIndices:n,inputShape:o,newShape:s}=t;if(n.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${n.shape}`);if(o.shape.length!==1)throw new Error(`Input shape should be a vector but received shape ${o.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(e.readSync(o.dataId)),a=e.readSync(n.dataId),u=Array.from(e.readSync(s.dataId)),[l,c,p]=WL(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var bB={kernelName:Ga,backendName:\"webgl\",kernelFunc:Yot};function Zot(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);let i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=zw(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var wB={kernelName:Ll,backendName:\"webgl\",kernelFunc:Zot};function Jot(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);let i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=zw(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var CB={kernelName:Ml,backendName:\"webgl\",kernelFunc:Jot};function Qot(r){let{inputs:t,backend:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=t,{outputShape:a}=n,{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=v.calculateShapes(s,o,a),f=!1;if(s.dtype===\"string\"){let x=e.bufferSync(o),b=e.bufferSync(s),w=y.decodeString(e.readSync(i.dataId)[0]),C=zL(x,b,a,m,c,l,u,p,w,f);return e.makeTensorInfo(a,C.dtype,C.values)}let d=new $d(l,u,o.shape.length,s.shape.length,p,[m,1],f),h=e.runWebGLProgram(d,[s,o,i],s.dtype),g=st({inputs:{x:h},backend:e,attrs:{shape:a}});return e.disposeIntermediateTensorInfo(h),g}var IB={kernelName:Lp,backendName:\"webgl\",kernelFunc:Qot};function tst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=n,a=y.parseAxisParam(i,o.shape)[0],u=v.prepareSplitSize(o,s,a),l=o.shape.length,c=new Array(l).fill(0),p=o.shape.slice();return u.map(m=>{let f=[...p];f[a]=m;let d=ri({inputs:{x:o},backend:e,attrs:{begin:c,size:f}});return c[a]+=m,d})}var SB={kernelName:yi,backendName:\"webgl\",kernelFunc:tst};var vB=\"return sqrt(x);\",est=Ct({opSnippet:vB,packedOpSnippet:vB,cpuKernelImpl:UL}),NB={kernelName:As,backendName:\"webgl\",kernelFunc:est};var rst=\"return x * x;\",nst=Ct({opSnippet:rst}),TB={kernelName:zl,backendName:\"webgl\",kernelFunc:nst};var kB=\"return (a - b) * (a - b);\",ost=le({opSnippet:kB,packedOpSnippet:kB}),EB={kernelName:Rs,backendName:\"webgl\",kernelFunc:ost};function sst({inputs:r,attrs:t,backend:e}){let{x:n}=r,o=fr+`\n return x > 0.0 ? 1.0 : float(${t.alpha});\n `,s=new tn(n.shape,o);return e.runWebGLProgram(s,[n],n.dtype)}var _B={kernelName:po,backendName:\"webgl\",kernelFunc:sst};var nI=class{constructor(t,e,n){this.variableNames=[\"x\"],this.outputShape=n;let o=n.length,s=zt(n.length),i=zt(n.length),a=\"\";if(o===1)a=\"coords * strides + begin\";else{let u=0;a=n.map((l,c)=>(u++,n.length===1?`coords * strides[${c}] + begin[${c}]`:`coords[${u-1}] * strides[${c}] + begin[${c}]`)).join(\",\")}this.userCode=`\n ${s} begin = ${s}(${t});\n ${s} strides = ${s}(${e});\n\n void main() {\n ${i} coords = getOutputCoords();\n setOutput(getX(${a}));\n }\n `}};function ist(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n,{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Le.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=st({inputs:{x:o},backend:e,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let A=Le.computeOutShape(b,w,C),$=ri({inputs:{x:o},backend:e,attrs:{begin:b,size:A}});N=st({inputs:{x:$},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo($)}else if(e.shouldExecuteOnCPU([o])){let $=e.readSync(o.dataId),F=wt(o.shape,o.dtype,$),P=HL(f,F,C,b);N=e.makeTensorInfo(d,o.dtype,P.values)}else{let $=new nI(b,C,f);N=e.runWebGLProgram($,[o],o.dtype)}let _=st({inputs:{x:N},backend:e,attrs:{shape:d}});return e.disposeIntermediateTensorInfo(N),_}var AB={kernelName:Wa,backendName:\"webgl\",kernelFunc:ist};function ast(r){let{inputs:t,backend:e,attrs:n}=r,{separator:o,nGramWidths:s,leftPad:i,rightPad:a,padWidth:u,preserveShortSequences:l}=n,{data:c,dataSplits:p}=t,m=e.readSync(c.dataId),f=e.readSync(p.dataId),[d,h]=qL(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],\"string\",d),e.makeTensorInfo(p.shape,\"int32\",h)]}var $B={kernelName:Bl,backendName:\"webgl\",kernelFunc:ast};function lst(r){let{inputs:t,backend:e,attrs:n}=r,{skipEmpty:o}=n,{input:s,delimiter:i}=t;if(s.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let a=e.readSync(s.dataId),u=e.readSync(i.dataId)[0],[l,c,p]=KL(a,u,o),m=c.length;return[e.makeTensorInfo([m,2],\"int32\",l),e.makeTensorInfo([m],\"string\",c),e.makeTensorInfo([2],\"int32\",new Int32Array(p))]}var DB={kernelName:Vl,backendName:\"webgl\",kernelFunc:lst};function ust(r){let{inputs:t,backend:e,attrs:n}=r,{numBuckets:o}=n,{input:s}=t;if(s.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");if(o<=0)throw new Error(\"Number of buckets must be at least 1\");let i=e.readSync(s.dataId),a=jL(i,o);return e.makeTensorInfo(s.shape,\"int32\",a)}var RB={kernelName:Gl,backendName:\"webgl\",kernelFunc:ust};var cst=\"return tan(x);\",pst=Ct({opSnippet:cst}),FB={kernelName:Os,backendName:\"webgl\",kernelFunc:pst};var mst=`\n float e2x = exp(-2.0 * abs(x));\n return sign(x) * (1.0 - e2x) / (1.0 + e2x);\n`,fst=Ct({opSnippet:mst}),OB={kernelName:Ps,backendName:\"webgl\",kernelFunc:fst};var oI=class{constructor(t,e){this.variableNames=[\"A\"];let n=new Array(t.length);for(let i=0;i5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${r[0]})`;let e=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\",\"resRC.u\"],n=[];for(let o=0;o5){let u=e.readSync(o.dataId),l=o.dtype===\"string\"?u.map(m=>y.decodeString(m)):u,c=wt(o.shape,o.dtype,l),p=YL(c,s);return e.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new oI(o.shape,s);return e.runWebGLProgram(i,[o],o.dtype)}var PB={kernelName:Jn,backendName:\"webgl\",kernelFunc:Ek};var sI=class{constructor(t){this.variableNames=[\"x\",\"indices\"],this.customUniforms=[{name:\"n\",type:\"int\"},{name:\"firstPass\",type:\"int\"},{name:\"negativeInf\",type:\"float\"},{name:\"dir\",type:\"int\"},{name:\"inc\",type:\"int\"}],this.outputShape=t,this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int elemIdx = coords[1];\n\n // We compare elements pair-wise within a group of size 2 * inc.\n // The comparing rule for each group alternates between ascending\n // and descending. Within each group, we compare each pair at\n // positions i and i+inc. To decide whether an element at position i\n // is x0 or x1, we mod it by 2 * inc, if the result is smaller than\n // inc, it is in the first half of the group, we denote it as x0,\n // otherwise we denote it as x1.\n // For example, as shown in the Bitonic top K paper referenced above,\n // Figure5(a) shows that element[1] is in the\n // second half of the group when group size is 2, but it is in the\n // first half of the group when group size is 4.\n\n bool isFirstInPair = imod(elemIdx, 2 * inc) < inc;\n int i = isFirstInPair ? elemIdx : elemIdx - inc;\n\n int i0 = firstPass == 1 ? i : int(getIndices(batch, i));\n int i1 = firstPass == 1 ? i + inc : int(getIndices(batch, i + inc));\n float x0 = i0 < n ? getX(batch, i0) : negativeInf;\n float x1 = i1 < n ? getX(batch, i1) : negativeInf;\n\n // Denotes which direction indices are in (ascending or descending).\n bool reverse = imod(elemIdx, 2 * dir) >= dir;\n bool isGreater = x0 > x1 || (x0 == x1 && i1 > i0);\n if (reverse == isGreater) { // Elements in opposite order of direction\n int iTemp = i0;\n i0 = i1;\n i1 = iTemp;\n }\n if (isFirstInPair) {\n setOutput(float(i0));\n } else {\n setOutput(float(i1));\n }\n }\n `}},iI=class{constructor(t){this.variableNames=[\"x\",\"indices\"],this.customUniforms=[{name:\"n\",type:\"int\"},{name:\"firstPass\",type:\"int\"},{name:\"k\",type:\"int\"}],this.outputShape=t,this.userCode=`\n void main() {\n // Takes max of indices (0, k), (1, k + 1), (2, k + 2) ...\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int elemIdx = coords[1];\n\n // The output size is half of the previous size.\n // If the previous sequence is | | | | _ _ _ _ | | | | _ _ _ _ (k=4),\n // we only need to output the indices at positions |, the indices at\n // positions _ can be thrown away, see Figure5(b) After Phase 2\n // (Merge phase) in the Bitonic Top K paper referenced above.\n // For example, the paper shows we only need to output the orange bars.\n // The output sequence should look like this | | | | | | | |.\n // Because the sequence is halved, to map the output index back\n // to the previous sequence to find the corresponding value,\n // we need to double the index. When we double the index,\n // we basically interpolate a position, so 2i looks like\n // | _ | _ | _ | _ | _ | _ | _. We move the | to the first k position\n // of each 2k positions by - elemIdx % k. E.g. for output at\n // index 4,5,6,7, we want to get the corresponding element at\n // original index 8,9,10,11, for output at index 8,9,10,11,\n // we want to get the corresponding element at original index\n // 16,17,18,19, so on and so forth.\n\n int i = elemIdx < k ? elemIdx : (elemIdx * 2 - imod(elemIdx, k));\n int i0 = firstPass == 1 ? i : int(getIndices(batch, i));\n int i1 = firstPass == 1 ? i + k : int(getIndices(batch, i + k));\n\n float x0 = getX(batch, i0);\n float x1 = i1 < n ? getX(batch, i1) : x0;\n\n setOutput(x0 >= x1 ? float(i0) : float(i1));\n }\n `}};function Kc(r,t){t!==null&&r.disposeIntermediateTensorInfo(t)}function LB(r){let t=1;for(;tu){let P=e.readSync(o.dataId),[V,G]=ZL(P,l,o.dtype,s,i);return[e.makeTensorInfo(V.shape,V.dtype,V.values),e.makeTensorInfo(G.shape,G.dtype,G.values)]}if(s===0)return l[l.length-1]=0,[e.makeTensorInfo(l,o.dtype,[]),e.makeTensorInfo(l,\"int32\",[])];if(c===1)return[o,Cl({attrs:{shape:l,dtype:\"int32\",value:0},backend:e})];let p=e.texData.get(o.dataId),m=p!==null&&p.isPacked,f=m?e.unpackTensor(o):o,h=y.sizeFromShape(l)/c,g=st({inputs:{x:f},attrs:{shape:[h,c]},backend:e});m&&Kc(e,f);let x=LB(s),b=LB(c),w=null,C=()=>w===null?[g,g]:[g,w],N=(P,V,G)=>{let W=C(),q=new sI(G),j=[[c],[w===null?1:0],[Number.NEGATIVE_INFINITY],[P],[V]],Y=w;w=e.runWebGLProgram(q,W,\"int32\",j),Kc(e,Y)};for(let P=1;P=1;G/=2)N(V,G,[h,b])}for(let P=b;P>x;P/=2){let V=C(),G=new iI([h,P/2]),q=[[c],[w===null?1:0],[x]],H=w;w=e.runWebGLProgram(G,V,\"int32\",q),Kc(e,H);let j=x/2,Y=j*2;for(let Z=j;Z>=1;Z/=2)N(Y,Z,w.shape)}let _=w;w=ri({inputs:{x:w},backend:e,attrs:{begin:0,size:[h,s]}}),Kc(e,_);let A=Ck({inputs:{x:g,indices:w},backend:e,attrs:{axis:1,batchDims:1}});Kc(e,g);let $=l.slice(0,-1);$.push(s),_=w,w=st({inputs:{x:w},attrs:{shape:$},backend:e}),Kc(e,_);let F=A;return A=st({inputs:{x:A},attrs:{shape:$},backend:e}),Kc(e,F),[A,w]}var MB={kernelName:Ua,backendName:\"webgl\",kernelFunc:hst};var aI=class{constructor(t,e,n,o,s,i){this.variableNames=[\"Image\",\"Transforms\"],this.outputShape=i;let a=n===\"nearest\"?1:2,u;switch(o){case\"constant\":u=1;break;case\"reflect\":u=2;break;case\"wrap\":u=3;break;case\"nearest\":u=4;break;default:u=1;break}this.userCode=`\n float mapCoord(float outCoord, float len) {\n float inCoord = outCoord;\n if(${u} == 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 (${u} == 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 (${u} == 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 < ${t} && 0 <= coordX && coordX < ${e}) {\n outputValue = getImage(batch, coordY, coordX, channel);\n } else {\n outputValue = float(${s});\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(${s});\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(${e}));\n float mapY = mapCoord(inY, float(${t}));\n\n if (${a} == 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 `}};function gst(r){let{inputs:t,backend:e,attrs:n}=r,{image:o,transforms:s}=t,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=n,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=new aI(p,m,i,a,u,g);return e.runWebGLProgram(x,[o,s],\"float32\")}var zB={kernelName:Ha,backendName:\"webgl\",kernelFunc:gst};function xst(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t;Qs(s,\"unique\"),console.warn(\"WARNING: \",\"UI might be locked temporarily as data is being downloaded\");let i=n.readSync(s.dataId),{outputValues:a,outputShape:u,indices:l}=JL(i,o,s.shape,s.dtype);return[n.makeTensorInfo(u,s.dtype,a),n.makeTensorInfo([l.length],\"int32\",l)]}var BB={kernelName:Mp,backendName:\"webgl\",kernelFunc:xst};function yst(r){let{inputs:t,backend:e,attrs:n}=r,{value:o}=t,{axis:s}=n;s<0&&(s+=o.shape.length);let i=o,a=i.shape.length,u=o.shape[s],l=new Array(a-1),c=0;for(let h=0;he.disposeIntermediateTensorInfo(h)),d}var VB={kernelName:bi,backendName:\"webgl\",kernelFunc:yst};var lI=class{constructor(t,e){this.variableNames=[\"x\",\"segmentIds\"];let n=t.windowSize,o=t.batchSize,s=t.inSize,i=t.numSegments,a=i*Math.ceil(s/n);this.outputShape=[o,a];let u=\"0.0\",l=\"sumValue\",c=Math.floor(n/4)*4,p=n%4,m=`\n sumValue += dot(values, segFilter);\n `,f=\"\";s%n>0&&(f=`\n if (inIdx < 0 || inIdx >= ${s}) {\n return initializationValue;\n }\n `);let d=\"\";s%n>0&&(d=`\n if (inIdx < 0 || inIdx >= ${s}) {\n return -1.0;\n }\n `),this.userCode=`\n const float initializationValue = ${u};\n\n float getValue(int batch, int inIdx) {\n ${f}\n return getX(batch, inIdx);\n }\n\n float getSegmentIdAtIndex(int inIdx) {\n ${d}\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 ${i})) * float(${n}));\n int currentSeg = int(mod(float(outIdx), float(${i})));\n\n float sumValue = 0.0;\n\n for (int i = 0; i < ${c}; 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 ${m}\n }\n\n int inIdx = inOffset + ${c};\n if (${p===1}) {\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 ${m}\n } else if (${p===2}) {\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 ${m}\n } else if (${p===3}) {\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 ${m}\n }\n setOutput(${l});\n }\n `}};function bst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,segmentIds:s}=t,{numSegments:i}=n,a=o.shape.length,u=[],l=0,c=v.getAxesPermutation([l],a),p=o;c!=null&&(p=Oe({inputs:{x:o},backend:e,attrs:{perm:c}}),u.push(p),l=v.getInnerMostAxes(1,a)[0]);let m=v.segment_util.computeOutShape(p.shape,l,i),f=y.sizeFromShape([p.shape[l]]),d=st({inputs:{x:p},backend:e,attrs:{shape:[-1,f]}});u.push(d);let h=Wu(o.dtype),g=(C,N,_,A,$)=>{let F=C.shape[0],P=C.shape[1],V=v.segment_util.segOpComputeOptimalWindowSize(P,$),G={windowSize:V,inSize:P,batchSize:F,numSegments:$},W=new lI(G,N),q=e.compileAndRun(W,[C,_],A);if(u.push(q),q.shape[1]===$)return q;let H=kk({backend:e,attrs:{start:0,stop:$,step:1,dtype:\"float32\"}}),j=Ek({inputs:{x:H},backend:e,attrs:{reps:[P/V]}});return u.push(H),u.push(j),g(q,N,j,A,$)},x=g(d,\"unsortedSegmentSum\",s,h,i),b=st({inputs:{x},backend:e,attrs:{shape:m}}),w=b;if(c!=null){u.push(b);let C=v.getUndoAxesPermutation(c);w=Oe({inputs:{x:w},backend:e,attrs:{perm:C}})}return u.forEach(C=>e.disposeIntermediateTensorInfo(C)),w}var GB={kernelName:Wl,backendName:\"webgl\",kernelFunc:bst};var wst=[kM,_M,AM,$M,RM,FM,OM,PM,zM,BM,VM,GM,WM,UM,HM,qM,KM,jM,XM,YM,ZM,QM,tz,ez,sz,az,lz,xM,cz,mz,fz,dz,hz,gz,xz,yz,bz,wz,Cz,vz,Nz,Tz,kz,Ez,_z,Az,$z,Dz,Rz,Fz,Oz,Pz,Lz,Mz,zz,Vz,Gz,Wz,Uz,qz,Kz,jz,Xz,Yz,Zz,Jz,Qz,t3,gM,e3,pz,r3,n3,o3,yM,s3,i3,a3,l3,u3,c3,p3,m3,f3,d3,g3,x3,y3,b3,w3,C3,S3,N3,T3,k3,E3,_3,F3,CM,O3,P3,L3,M3,rz,z3,G3,W3,U3,H3,bM,q3,K3,j3,X3,Y3,nz,A3,Z3,J3,Q3,SM,tB,eB,rB,nB,oB,sB,iB,aB,lB,uB,cB,pB,mB,fB,dB,hB,JM,R3,gB,xB,yB,bB,wB,CB,IB,SB,NB,TB,EB,_B,AB,$B,DB,RB,D3,NM,FB,OB,PB,MB,zB,TM,BB,VB,GB,B3];for(let r of wst)Lu(r);var qt;(function(r){r[r.float32=0]=\"float32\",r[r.int32=1]=\"int32\",r[r.bool=2]=\"bool\",r[r.string=3]=\"string\",r[r.complex64=4]=\"complex64\"})(qt||(qt={}));var Du;(function(r){r[r.linear=0]=\"linear\",r[r.relu=1]=\"relu\",r[r.relu6=2]=\"relu6\",r[r.prelu=3]=\"prelu\",r[r.leakyrelu=4]=\"leakyrelu\",r[r.sigmoid=5]=\"sigmoid\",r[r.elu=6]=\"elu\"})(Du||(Du={}));var WB;function Cst(r){WB=r.wasm.cwrap(Ci,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Ist(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s,bias:i,preluActivationWeights:a}=t;if(o.dtype!==\"float32\"||s.dtype!==\"float32\")throw new Error(\"_FusedMatMul for non non-float32 tensors not yet supported.\");let{transposeA:u,transposeB:l,activation:c,leakyreluAlpha:p}=n,m=e.dataIdMap.get(o.dataId).id,f=e.dataIdMap.get(s.dataId).id,d=0;if(i!=null){let $=e.dataIdMap.get(i.dataId);if($.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${$.shape.length}.`);d=$.id}let h=a==null?0:e.dataIdMap.get(a.dataId).id,g=Du[c];if(g==null)throw new Error(`${c} activation not yet supported for FusedConv2D in the wasm backend.`);let x=u?o.shape[2]:o.shape[1],b=l?s.shape[1]:s.shape[2],w=Vr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)),C=e.makeOutput([...w,x,b],o.dtype),N=e.dataIdMap.get(C.dataId).id,_=new Uint8Array(new Int32Array(o.shape).buffer),A=new Uint8Array(new Int32Array(s.shape).buffer);return WB(m,_,o.shape.length,f,A,s.shape.length,u,l,g,d,h,p||0,N),C}var UB={kernelName:Ci,backendName:\"wasm\",setupFunc:Cst,kernelFunc:Ist};function se(r,t){let e;function n(s){e=s.wasm.cwrap(r,null,[\"number\",\"number\",\"number\"])}function o(s){let{backend:i,inputs:{x:a}}=s,u=i.dataIdMap.get(a.dataId).id,l=i.makeOutput(a.shape,t||a.dtype),c=i.dataIdMap.get(l.dataId).id;return y.sizeFromShape(l.shape)===0||e(u,qt[a.dtype],c),l}return{kernelName:r,backendName:\"wasm\",setupFunc:n,kernelFunc:o}}var HB=se(ii);function ue(r,t,e){let n;function o(i){n=i.wasm.cwrap(r,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\"])}function s(i){let{backend:a,inputs:u}=i,{a:l,b:c}=u,p=a.dataIdMap.get(l.dataId).id,m=a.dataIdMap.get(c.dataId).id,f=e!=null?e:l.dtype,d=v.assertAndGetBroadcastShape(l.shape,c.shape),h=a.makeOutput(d,f);if(y.sizeFromShape(d)===0)return h;let g=new Uint8Array(new Int32Array(l.shape).buffer),x=new Uint8Array(new Int32Array(c.shape).buffer),b=a.dataIdMap.get(h.dataId).id;return(()=>n(p,g,l.shape.length,m,x,c.shape.length,qt[l.dtype],b))(),h}return{kernelName:r,backendName:\"wasm\",setupFunc:o,kernelFunc:s}}var Sst=!0,qB=ue(Zn,Sst);var KB;function vst(r){KB=r.wasm.cwrap(Go,null,[\"array\",\"number\",\"number\",\"number\"])}function Nst(r){let{inputs:t,backend:e}=r,n=e.makeOutput(t[0].shape,t[0].dtype);if(y.sizeFromShape(n.shape)===0)return n;let o=t.map(a=>e.dataIdMap.get(a.dataId).id),s=new Uint8Array(new Int32Array(o).buffer),i=e.dataIdMap.get(n.dataId).id;return KB(s,o.length,qt[n.dtype],i),n}var jB={kernelName:Go,backendName:\"wasm\",setupFunc:vst,kernelFunc:Nst};function jc(r){let{inputs:{x:t},backend:e}=r;if(t.dtype===\"string\")return ur(e.readSync(t.dataId),t.shape,t.dtype);let n=e.makeOutput(t.shape,t.dtype),o=e.typedArrayFromHeap(t);return e.typedArrayFromHeap(n).set(o),n}var XB={kernelName:co,backendName:\"wasm\",kernelFunc:jc};var YB;function Tst(r){YB=r.wasm.cwrap(Qn,null,[\"number\",\"array\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function ao(r){let{inputs:t,backend:e,attrs:n}=r,[o,s]=Est(t.x.shape,n.perm),i=!0;for(let d=0;d=o&&(s===-1||n[s]>n[i])&&(s=i);n[s]=o}return[e,n]}var ZB={kernelName:Qn,backendName:\"wasm\",kernelFunc:ao,setupFunc:Tst};function bn(r,t,e){let n=r.shape,o=r.shape.length,s=y.parseAxisParam(t,n),i=s,a=v.getAxesPermutation(i,o),u=null,l=!1;if(a!=null){let c=new Array(o);for(let f=0;f`new shape: ${i}, old shape: ${n.shape}. New shape and old shape must have the same number of elements.`),r.backend.incRef(n.dataId),{dataId:n.dataId,shape:i,dtype:n.dtype}}var iV={kernelName:di,backendName:\"wasm\",kernelFunc:ar};var aV;function Lst(r){aV=r.wasm.cwrap(Ho,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\"])}function Mst(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;if(o.dtype!==\"float32\"||s.dtype!==\"float32\")throw new Error(\"BatchMatMul for non non-float32 tensors not yet supported.\");let u=o.shape.length,l=s.shape.length,c=i?o.shape[u-2]:o.shape[u-1],p=a?s.shape[l-1]:s.shape[l-2],m=i?o.shape[u-1]:o.shape[u-2],f=a?s.shape[l-2]:s.shape[l-1],d=o.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=Vr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)).concat([m,f]);y.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${o.shape} and ${s.shape} and transposeA=${i} and transposeB=${a} must match.`);let C=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],_=ar({inputs:{x:o},backend:e,attrs:{shape:C}}),A=ar({inputs:{x:s},backend:e,attrs:{shape:N}}),$=e.dataIdMap.get(_.dataId).id,F=e.dataIdMap.get(A.dataId).id,P=i?_.shape[2]:_.shape[1],V=a?A.shape[1]:A.shape[2],G=Math.max(g,x),W=e.makeOutput([G,P,V],_.dtype),q=e.dataIdMap.get(W.dataId).id,H=new Uint8Array(new Int32Array(_.shape).buffer),j=new Uint8Array(new Int32Array(A.shape).buffer);return aV($,H,_.shape.length,F,j,A.shape.length,i,a,q),e.disposeData(_.dataId),e.disposeData(A.dataId),W.shape=w,W}var lV={kernelName:Ho,backendName:\"wasm\",setupFunc:Lst,kernelFunc:Mst};function Lo(r){let{inputs:{x:t},attrs:{begin:e,size:n},backend:o}=r,[s,i]=Le.parseSliceParams(t,e,n),a=Le.isSliceContinous(t.shape,s,i),u=o.readSync(t.dataId),l=o.makeOutput(i,t.dtype),c=y.computeStrides(t.shape),p=o.dataIdMap.get(l.dataId);if(a){let d=Le.computeFlatOffset(s,c);return t.dtype===\"string\"?p.stringBytes=u.slice(d,d+y.sizeFromShape(i)):o.typedArrayFromHeap(l).set(u.subarray(d,d+y.sizeFromShape(i))),l}if(t.dtype===\"string\"){let d=$c(u,s,i,t.shape,t.dtype);return p.stringBytes=d,l}let m=o.typedArrayFromHeap(l),f=t.shape.length;if(f===2)zst(u,c[0],m,s,i);else if(f===3)Bst(u,c[0],c[1],m,s,i);else if(f===4)Vst(u,c[0],c[1],c[2],m,s,i);else{let d=$c(u,s,i,t.shape,t.dtype);m.set(d)}return l}function zst(r,t,e,n,o){let s=0,i=n[0],a=n[1],u=i+o[0];for(let l=i;lx*b),u=v.getReshaped(o.shape,s,a),l=v.getPermuted(u.length,s.length),c=v.getReshapedPermuted(o.shape,s,a),p=v.getSliceBeginCoords(i,s.length),m=v.getSliceSize(c,i,s.length),f=ar({inputs:{x:o},backend:e,attrs:{shape:u}}),d=ao({inputs:{x:f},backend:e,attrs:{perm:l}}),h=ar({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Lo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeData(f.dataId),e.disposeData(d.dataId),e.disposeData(f.dataId),g}var cV={kernelName:ai,backendName:\"wasm\",kernelFunc:Gst};function ni(r){let{inputs:{x:t},attrs:{dtype:e},backend:n}=r,o=n.makeOutput(t.shape,e),s=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(o).set(s),o}var pV={kernelName:lo,backendName:\"wasm\",kernelFunc:ni};var mV=se(qo);var fV;function Wst(r){fV=r.wasm.cwrap(uo,null,[\"number\",\"number\",\"number\",\"number\"])}function Ust(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a=e.dataIdMap.get(o.dataId).id,u=e.makeOutput(o.shape,o.dtype),l=e.dataIdMap.get(u.dataId).id;return fV(a,s,i,l),u}var dV={kernelName:uo,backendName:\"wasm\",setupFunc:Wst,kernelFunc:Ust};function _k(r){let{inputs:t,backend:e}=r,n=y.parseAxisParam(r.attrs.axis,t[0].shape)[0],o=t.map(f=>f.shape);v.assertParamsConsistent(o,n);let s=v.computeOutShape(t.map(f=>f.shape),n),i=t.filter(f=>y.sizeFromShape(f.shape)>0);if(i.length===1)return jc({inputs:{x:i[0]},backend:e});let a=e.makeOutput(s,t[0].dtype);if(y.sizeFromShape(s)===0)return a;if(i[0].dtype===\"string\"){let f=i.map(w=>{let C=y.sizeFromShape(w.shape.slice(n));return ar({inputs:{x:w},backend:e,attrs:{shape:[-1,C]}})}),d=f.map(w=>({vals:e.readSync(w.dataId),shape:w.shape}));s=v.computeOutShape(f.map(w=>w.shape),1);let h=f[0].shape[0]===1,g=Ec(d,s,t[0].dtype,h),x=v.computeOutShape(i.map(w=>w.shape),n);a.shape=x;let b=e.dataIdMap.get(a.dataId);return b.stringBytes=v.fromStringArrayToUint8(g),f.forEach(w=>e.disposeData(w.dataId)),a}let u=y.sizeFromShape(i[0].shape.slice(0,n)),l=0,c=i.map(f=>{let d=y.sizeFromShape(f.shape.slice(n));return l+=d,d}),p=i.map(f=>e.typedArrayFromHeap(f)),m=e.typedArrayFromHeap(a);for(let f=0;f`cumprod does not support ${o.dtype} tensors in the WASM backend`);let l=v.getAxesPermutation([s],u),c=o;l!==null&&(c=ao({inputs:{x:o},attrs:{perm:l},backend:e}));let p=v.getInnerMostAxes(1,u)[0];v.assertAxesAreInnerMostDims(\"cumprod\",[p],u);let m=e.makeOutput(c.shape,c.dtype),f=c.shape[p],d=e.dataIdMap.get(c.dataId).id,h=e.dataIdMap.get(m.dataId).id;vV(d,i?1:0,a?1:0,f,h,qt[o.dtype]);let g=m;if(l!==null){let x=v.getUndoAxesPermutation(l);g=ao({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var NV={kernelName:fa,backendName:\"wasm\",setupFunc:Zst,kernelFunc:Jst};var TV;function Qst(r){TV=r.wasm.cwrap(Zo,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function tit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n,u=o.shape.length;y.assert(o.dtype===\"float32\"||o.dtype===\"int32\",()=>`cumsum does not support ${o.dtype} tensors in the WASM backend`);let l=v.getAxesPermutation([s],u),c=o;l!==null&&(c=ao({inputs:{x:o},attrs:{perm:l},backend:e}));let p=v.getInnerMostAxes(1,u)[0];v.assertAxesAreInnerMostDims(\"cumsum\",[p],u);let m=e.makeOutput(c.shape,c.dtype),f=c.shape[p],d=e.dataIdMap.get(c.dataId).id,h=e.dataIdMap.get(m.dataId).id;TV(d,i?1:0,a?1:0,f,h,qt[o.dtype]);let g=m;if(l!==null){let x=v.getUndoAxesPermutation(l);g=ao({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var kV={kernelName:Zo,backendName:\"wasm\",setupFunc:Qst,kernelFunc:tit};var EV;function eit(r){EV=r.wasm.cwrap(ha,null,[\"number\",\"number\",\"number\",\"array\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function rit(r){let{backend:t,inputs:e,attrs:n}=r,{x:o}=e,{blockSize:s,dataFormat:i}=n,a=o.shape[0],u=i===\"NHWC\"?o.shape[1]:o.shape[2],l=i===\"NHWC\"?o.shape[2]:o.shape[3],c=i===\"NHWC\"?o.shape[3]:o.shape[1],p=u*s,m=l*s,f=c/(s*s),d=i===\"NHWC\"?[a,p,m,f]:[a,f,p,m],h=t.makeOutput(d,\"float32\"),x=t.dataIdMap.get(o.dataId).id,b=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),w=new Uint8Array(new Int32Array(d).buffer),C=new Uint8Array(new Int32Array(y.computeStrides(d)).buffer),N=t.dataIdMap.get(h.dataId).id;return EV(x,s,i===\"NHWC\"?1:0,b,o.shape.length-1,w,C,d.length,N),h}var _V={kernelName:ha,backendName:\"wasm\",setupFunc:eit,kernelFunc:rit};var AV;function nit(r){AV=r.wasm.cwrap(Jo,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function oit(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s}=t,i=n.dataIdMap.get(o.dataId).id,a=n.dataIdMap.get(s.dataId).id,{strides:u,dilations:l,pad:c,dimRoundingMode:p}=e,m=l==null?[1,1]:l,f=v.computeConv2DInfo(o.shape,s.shape,u,m,c,p,!0),d=f.filterHeight,h=f.filterWidth,g=f.padInfo.top,x=f.padInfo.right,b=f.padInfo.bottom,w=f.padInfo.left,C=f.dilationHeight,N=f.dilationWidth,_=f.strideHeight,A=f.strideWidth,$=f.inChannels,F=f.outChannels,P=f.padInfo.type===\"SAME\"?1:0;if(f.dataFormat!==\"channelsLast\")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${f.dataFormat}'. Please use 'channelsLast'.`);let V=n.makeOutput(f.outShape,\"float32\"),G=n.dataIdMap.get(V.dataId).id;return AV(i,o.shape[0],o.shape[1],o.shape[2],a,d,h,g,x,b,w,P,C,N,_,A,$,F,G),V}var $V={kernelName:Jo,backendName:\"wasm\",setupFunc:nit,kernelFunc:oit};var DV=se(ts);var sit=!1,RV=ue(xa,sit,\"bool\");var FV=se(es,\"float32\");function uI(r){let{inputs:t,attrs:e,backend:n}=r,{input:o}=t,{dim:s}=e,i=o.shape.length,a=o.shape.slice(),u=s;return s<0&&(y.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+s+1),a.splice(u,0,1),ar({inputs:{x:o},backend:n,attrs:{shape:a}})}var OV={kernelName:ui,backendName:\"wasm\",kernelFunc:uI};function $k(r){let{attrs:{shape:t,value:e,dtype:n},backend:o}=r,s=o.makeOutput(t,n);return o.typedArrayFromHeap(s).fill(e),s}var PV={kernelName:Dl,backendName:\"wasm\",kernelFunc:$k};var LV;function iit(r){LV=r.wasm.cwrap(ba,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function ait(r){let{inputs:t,backend:e}=r,{image:n}=t,o=e.makeOutput(n.shape,n.dtype),s=e.dataIdMap.get(n.dataId).id,i=e.dataIdMap.get(o.dataId).id,[a,u,l,c]=n.shape;return LV(s,a,u,l,c,i),o}var MV={kernelName:ba,backendName:\"wasm\",kernelFunc:ait,setupFunc:iit};var zV=se(rs);var lit=!1,BV=ue(ns,lit);var VV;function uit(r){VV=r.wasm.cwrap(os,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function cit(r){let{backend:t,inputs:e,attrs:n}=r,{varianceEpsilon:o}=n,{x:s,mean:i,variance:a,offset:u,scale:l}=e,c=t.dataIdMap.get(s.dataId).id,p=t.dataIdMap.get(i.dataId).id,m=t.dataIdMap.get(a.dataId).id,f=u!=null?t.dataIdMap.get(u.dataId).id:0,d=l!=null?t.dataIdMap.get(l.dataId).id:0,h=t.makeOutput(s.shape,s.dtype);if(y.sizeFromShape(s.shape)===0)return h;let g=t.dataIdMap.get(h.dataId).id;return VV(c,p,m,f,d,o,g),h}var GV={kernelName:os,backendName:\"wasm\",setupFunc:uit,kernelFunc:cit};var WV;function pit(r){WV=r.wasm.cwrap(Ii,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function mit(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=e,h=v.computeConv2DInfo(o.shape,s.shape,u,c,l,m),g=Du[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedConv2D in the wasm backend.`);let x=n.dataIdMap.get(o.dataId).id,b=n.dataIdMap.get(s.dataId).id,w=h.outChannels,C=0;if(i!=null){let nt=n.dataIdMap.get(i.dataId);if(nt.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${nt.shape.length}.`);if(nt.shape[0]!==w)throw new Error(`FusedConv2D bias shape (${nt.shape}) does not match the number of output channels (${w})`);C=nt.id}let N=h.filterHeight,_=h.filterWidth,A=h.padInfo.top,$=h.padInfo.right,F=h.padInfo.bottom,P=h.padInfo.left,V=h.dilationHeight,G=h.dilationWidth,W=h.strideHeight,q=h.strideWidth,H=h.inChannels,j=h.padInfo.type===\"SAME\"?1:0,Y=h.batchSize,Z=h.inHeight,et=h.inWidth;if(p!==\"NHWC\")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let rt=n.makeOutput(h.outShape,\"float32\"),ot=n.dataIdMap.get(rt.dataId).id,at=a==null?0:n.dataIdMap.get(a.dataId).id;return WV(x,Y,Z,et,b,N,_,C,A,$,F,P,j,V,G,W,q,H,w,g,at,d||0,ot),rt}var UV={kernelName:Ii,backendName:\"wasm\",setupFunc:pit,kernelFunc:mit};var HV;function fit(r){HV=r.wasm.cwrap(Si,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function dit(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=e,h=v.computeConv2DInfo(o.shape,s.shape,u,c,l,m,!0),g=Du[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let x=n.dataIdMap.get(o.dataId).id,b=n.dataIdMap.get(s.dataId).id,w=h.outChannels,C=0;if(i!=null){let nt=n.dataIdMap.get(i.dataId);if(nt.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${nt.shape.length}.`);if(nt.shape[0]!==w)throw new Error(`FusedDepthwiseConv2D bias shape (${nt.shape}) does not match the number of output channels (${w})`);C=nt.id}let N=h.filterHeight,_=h.filterWidth,A=h.padInfo.top,$=h.padInfo.right,F=h.padInfo.bottom,P=h.padInfo.left,V=h.dilationHeight,G=h.dilationWidth,W=h.strideHeight,q=h.strideWidth,H=h.inChannels,j=h.padInfo.type===\"SAME\"?1:0,Y=h.batchSize,Z=h.inHeight,et=h.inWidth;if(p!==\"NHWC\")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let rt=n.makeOutput(h.outShape,\"float32\"),ot=n.dataIdMap.get(rt.dataId).id,at=a==null?0:n.dataIdMap.get(a.dataId).id;return HV(x,Y,Z,et,b,N,_,C,A,$,F,P,j,V,G,W,q,H,w,g,at,d||0,ot),rt}var qV={kernelName:Si,backendName:\"wasm\",setupFunc:fit,kernelFunc:dit};var KV;function hit(r){KV=r.wasm.cwrap(wa,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function git(r){let{backend:t,inputs:e}=r,{params:n,indices:o}=e,[s,i,a,u]=ox.prepareAndValidate(n,o),l=t.makeOutput(s,n.dtype);if(i===0)return l;let c=o.shape,p=c[c.length-1],f=t.dataIdMap.get(n.dataId).id,h=t.dataIdMap.get(o.dataId).id,g=new Uint8Array(new Int32Array(u).buffer),x=t.dataIdMap.get(l.dataId).id;return KV(f,qt[n.dtype],h,i,p,a,g,x),l}var jV={kernelName:wa,backendName:\"wasm\",setupFunc:hit,kernelFunc:git};var XV;function xit(r){XV=r.wasm.cwrap(\"Gather\",null,[\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function yit(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,indices:s}=e,{axis:i,batchDims:a}=n,u=y.parseAxisParam(i,o.shape)[0],l=t.readSync(s.dataId),c=o.shape[u];for(let F=0;F=0,()=>`GatherV2: the index value ${P} is not in [0, ${c-1}]`)}let p=v.segment_util.collectGatherOpShapeInfo(o,s,u,a),m=ar({inputs:{x:o},attrs:{shape:[p.batchSize,p.outerSize,p.dimSize,p.sliceSize]},backend:t}),f=y.sizeFromShape(s.shape),d=ar({inputs:{x:s},attrs:{shape:[p.batchSize,f/p.batchSize]},backend:t}),h=[p.batchSize,p.outerSize,f/p.batchSize,p.sliceSize],g=t.makeOutput(h,o.dtype);if(y.sizeFromShape(o.shape)===0)return g;let x=m.shape.length-1,w=t.dataIdMap.get(m.dataId).id,N=t.dataIdMap.get(d.dataId).id,_=t.dataIdMap.get(g.dataId).id,A=new Uint8Array(new Int32Array(y.computeStrides(m.shape)).buffer),$=new Uint8Array(new Int32Array(y.computeStrides(h)).buffer);return XV(w,qt[o.dtype],A,x,N,p.batchSize,$,_),t.disposeData(m.dataId),t.disposeData(d.dataId),g.shape=p.outputShape,g}var YV={kernelName:ci,backendName:\"wasm\",setupFunc:xit,kernelFunc:yit};var bit=!1,ZV=ue(Ca,bit,\"bool\");var wit=!1,JV=ue(ss,wit,\"bool\");var QV;function Cit(r){QV=r.wasm.cwrap(is,null,[\"number\",\"number\",\"number\",\"number\"])}function Iit(r){let{inputs:{x:t},attrs:{alpha:e},backend:n}=r,o=n.dataIdMap.get(t.dataId).id,s=n.makeOutput(t.shape,\"float32\");if(y.sizeFromShape(t.shape)!==0){let i=n.dataIdMap.get(s.dataId).id;QV(o,qt[t.dtype],e,i)}return s}var tG={kernelName:is,backendName:\"wasm\",setupFunc:Cit,kernelFunc:Iit};var Sit=!1,eG=ue(Na,Sit,\"bool\");var vit=!1,rG=ue(Ta,vit,\"bool\");var nG=se(as);var Nit=!1,oG=ue(Ea,Nit,\"bool\");var sG=se(_a);var Tit=!1,iG=ue(Aa,Tit,\"bool\");var kit=!1,aG=ue(m1,kit,\"bool\");var lG;function Eit(r){lG=r.wasm.cwrap(ls,null,[\"number\",\"number\",\"number\",\"number\"])}function _it(r){let{backend:t,inputs:e,attrs:n}=r,{reductionIndices:o,keepDims:s}=n,{x:i}=e,u=t.dataIdMap.get(i.dataId).id,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;l=c,u=w}let d=l.shape.length;v.assertAxesAreInnerMostDims(\"max\",p,d);let[h,g]=v.computeOutAndReduceShapes(l.shape,p),x=y.sizeFromShape(g),b=t.makeOutput(h,i.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;lG(u,qt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=v.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var uG={kernelName:ls,backendName:\"wasm\",setupFunc:Eit,kernelFunc:_it};var Ait=!1,cG=ue(us,Ait);var pG;function $it(r){pG=r.wasm.cwrap(cs,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Dit(r){let{inputs:t,attrs:e,backend:n}=r,o=t.x,s=n.dataIdMap.get(o.dataId).id;y.assert(o.dtype===\"float32\",()=>`Error in MaxPool: only float32 input is supported. Got ${o.dtype}.`);let{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=e,c=v.computePool2DInfo(o.shape,i,a,1,u,l),p=c.filterHeight,m=c.filterWidth,f=c.padInfo.top,d=c.padInfo.right,h=c.padInfo.bottom,g=c.padInfo.left,x=c.dilationHeight,b=c.dilationWidth,w=c.strideHeight,C=c.strideWidth,N=c.inChannels,_=c.outChannels;if(c.dataFormat!==\"channelsLast\")throw new Error(`wasm backend does not support dataFormat:'${c.dataFormat}'. Please use 'channelsLast'.`);let A=n.makeOutput(c.outShape,\"float32\"),$=n.dataIdMap.get(A.dataId).id;return pG(s,o.shape[0],o.shape[1],o.shape[2],p,m,f,d,h,g,x,b,w,C,N,_,$),A}var mG={kernelName:cs,backendName:\"wasm\",setupFunc:$it,kernelFunc:Dit};var fG;function Rit(r){fG=r.wasm.cwrap(ps,null,[\"number, number, number\"])}function Fit(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t),d=p;if(f){let C=t.dataIdMap.get(c.dataId).id;C!==a&&(l=c,u=C,d=v.getInnerMostAxes(d.length,l.shape.length))}v.assertAxesAreInnerMostDims(\"mean\",d,l.shape.length);let[h,g]=v.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=l;l.dtype!==\"float32\"&&(b=ni({backend:t,inputs:{x:l},attrs:{dtype:\"float32\"}}),u=t.dataIdMap.get(b.dataId).id);let w=t.makeOutput(h,\"float32\");if(y.sizeFromShape(l.shape)!==0){let C=t.dataIdMap.get(w.dataId).id;fG(u,x,C)}if(f&&t.disposeData(c.dataId),s){let C=v.expandShapeToKeepDim(w.shape,m);w.shape=C}return l.dtype!==\"float32\"&&t.disposeData(b.dataId),w}var dG={kernelName:ps,backendName:\"wasm\",setupFunc:Rit,kernelFunc:Fit};var hG;function Oit(r){hG=r.wasm.cwrap(ms,null,[\"number\",\"number\",\"number\",\"number\"])}function Pit(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w)}let d=l.shape.length;v.assertAxesAreInnerMostDims(\"min\",p,d);let[h,g]=v.computeOutAndReduceShapes(l.shape,p),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;hG(u,qt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=v.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var gG={kernelName:ms,backendName:\"wasm\",setupFunc:Oit,kernelFunc:Pit};var Lit=!1,xG=ue(fs,Lit);var Dk;(function(r){r[r.reflect=0]=\"reflect\",r[r.symmetric=1]=\"symmetric\"})(Dk||(Dk={}));var yG;function Mit(r){yG=r.wasm.cwrap(ds,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function zit(r){let{inputs:{x:t},backend:e,attrs:{paddings:n,mode:o}}=r,s=n.map((d,h)=>d[0]+t.shape[h]+d[1]),i=e.dataIdMap.get(t.dataId).id,a=e.makeOutput(s,t.dtype),u=e.dataIdMap.get(a.dataId).id,l=new Uint8Array(new Int32Array(t.shape).buffer),c=n.map(d=>d[0]),p=n.map(d=>d[1]),m=new Uint8Array(new Int32Array(c).buffer),f=new Uint8Array(new Int32Array(p).buffer);return yG(i,l,t.shape.length,qt[t.dtype],m,f,Dk[o],u),a}var bG={kernelName:ds,backendName:\"wasm\",kernelFunc:zit,setupFunc:Mit};var Bit=!0,wG=ue(hs,Bit);var CG=se(pi);function Dd(r,t){let e=new Int32Array(r.wasm.HEAPU8.buffer,t,4),n=e[0],o=e[1],s=e[2],i=e[3];return r.wasm._free(t),{pSelectedIndices:n,selectedSize:o,pSelectedScores:s,pValidOutputs:i}}var IG;function Vit(r){IG=r.wasm.cwrap(Ra,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\"])}function Git(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i}=n,{boxes:a,scores:u}=e,l=t.dataIdMap.get(a.dataId).id,c=t.dataIdMap.get(u.dataId).id,p=IG(l,c,s,o,i),{pSelectedIndices:m,selectedSize:f,pSelectedScores:d,pValidOutputs:h}=Dd(t,p);return t.wasm._free(d),t.wasm._free(h),t.makeOutput([f],\"int32\",m)}var SG={kernelName:Ra,backendName:\"wasm\",setupFunc:Vit,kernelFunc:Git};var vG;function Wit(r){vG=r.wasm.cwrap(Fa,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\",\"bool\"])}function Uit(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:a}=n,{boxes:u,scores:l}=e,c=t.dataIdMap.get(u.dataId).id,p=t.dataIdMap.get(l.dataId).id,m=vG(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Dd(t,m);t.wasm._free(h);let x=t.makeOutput([d],\"int32\",f),b=t.makeOutput([],\"int32\",g);return[x,b]}var NG={kernelName:Fa,backendName:\"wasm\",setupFunc:Wit,kernelFunc:Uit};var TG;function Hit(r){TG=r.wasm.cwrap(Oa,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function qit(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i,softNmsSigma:a}=n,{boxes:u,scores:l}=e,c=t.dataIdMap.get(u.dataId).id,p=t.dataIdMap.get(l.dataId).id,m=TG(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Dd(t,m);t.wasm._free(g);let x=t.makeOutput([d],\"int32\",f),b=t.makeOutput([d],\"float32\",h);return[x,b]}var kG={kernelName:Oa,backendName:\"wasm\",setupFunc:Hit,kernelFunc:qit};var Kit=!1,EG=ue(Da,Kit,\"bool\");var _G;function jit(r){_G=r.wasm.cwrap(gs,null,[\"number\",\"number\",\"number\",\"number\",\"number\"])}function Xit(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o}=t,{dtype:s,depth:i,onValue:a,offValue:u}=n,l=e.makeOutput([...o.shape,i],s),c=e.dataIdMap.get(l.dataId).id,m=e.dataIdMap.get(o.dataId).id;return _G(m,i,a,u,c),l}var AG={kernelName:gs,backendName:\"wasm\",setupFunc:jit,kernelFunc:Xit};function Yit(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(1),n}var $G={kernelName:mi,backendName:\"wasm\",kernelFunc:Yit};function Zit(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return uI({inputs:{input:t[0]},backend:e,attrs:{dim:o}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{y.assertShapesMatch(s,c.shape,\"All tensors passed to stack must have matching shapes\"),y.assert(i===c.dtype,()=>\"All tensors passed to stack must have matching dtypes\")});let a=[],u=t.map(c=>{let p=uI({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=_k({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeData(c.dataId)),l}var DG={kernelName:fi,backendName:\"wasm\",kernelFunc:Zit};var RG;function Jit(r){RG=r.wasm.cwrap(xs,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function Qit(r){let{inputs:{x:t},backend:e,attrs:{paddings:n,constantValue:o}}=r,s=n.map((h,g)=>h[0]+t.shape[g]+h[1]);if(y.sizeFromShape(t.shape)===0)return $k({backend:e,attrs:{shape:s,value:o,dtype:t.dtype}});let i=e.dataIdMap.get(t.dataId).id,a=e.makeOutput(s,t.dtype),l=e.dataIdMap.get(a.dataId).id,c=new Uint8Array(new Int32Array(t.shape).buffer),p=n.map(h=>h[0]),m=n.map(h=>h[1]),f=new Uint8Array(new Int32Array(p).buffer),d=new Uint8Array(new Int32Array(m).buffer);return RG(i,c,t.shape.length,qt[t.dtype],f,d,o,l),a}var cI={kernelName:xs,backendName:\"wasm\",kernelFunc:Qit,setupFunc:Jit};var tat=!1,FG=ue(ys,tat);var OG;function eat(r){OG=r.wasm.cwrap(bs,null,[\"number\",\"number\",\"number\"])}function rat(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=e.dataIdMap.get(n.dataId).id,i=e.dataIdMap.get(o.dataId).id,a=s,u=n,l=u;u.dtype!==\"float32\"&&(l=ni({backend:e,inputs:{x:n},attrs:{dtype:\"float32\"}}),a=e.dataIdMap.get(l.dataId).id);let c=e.makeOutput(n.shape,\"float32\"),p=e.dataIdMap.get(c.dataId).id;return OG(a,i,p),u.dtype!==\"float32\"&&e.disposeData(l.dataId),c}var PG={kernelName:bs,backendName:\"wasm\",setupFunc:eat,kernelFunc:rat};var LG;function nat(r){LG=r.wasm.cwrap(ws,null,[\"number\",\"number\",\"number\",\"number\"])}function oat(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=v.getInnerMostAxes(d.length,l.shape.length))}v.assertAxesAreInnerMostDims(\"prod\",d,l.shape.length);let[h,g]=v.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;LG(u,x,qt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=v.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var MG={kernelName:ws,backendName:\"wasm\",setupFunc:nat,kernelFunc:oat};var sat=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=Ac(n,o,s,i),u=t.makeOutput([a.length],i);return t.typedArrayFromHeap(u).set(a),u},zG={kernelName:Ol,backendName:\"wasm\",kernelFunc:sat};var iat=!0,BG=ue(Qo,iat);var VG=se(Cs);var GG=se(vs);var WG;function aat(r){WG=r.wasm.cwrap(Ss,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function lat(r){let{backend:t,inputs:e,attrs:n}=r,{images:o}=e,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,[c,p,m,f]=o.shape,d=[c,u,l,f],h=t.dataIdMap.get(o.dataId),g;h.dtype!==\"float32\"&&(g=ni({backend:t,inputs:{x:o},attrs:{dtype:\"float32\"}}),h=t.dataIdMap.get(g.dataId));let x=h.id,b=t.makeOutput(d,\"float32\");if(y.sizeFromShape(o.shape)===0)return b;let w=t.dataIdMap.get(b.dataId).id;return WG(x,c,p,m,f,u,l,s?1:0,i?1:0,w),g!=null&&t.disposeData(g.dataId),b}var UG={kernelName:Ss,backendName:\"wasm\",setupFunc:aat,kernelFunc:lat};var HG;function uat(r){HG=r.wasm.cwrap(Is,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function cat(r){let{backend:t,inputs:e,attrs:n}=r,{images:o}=e,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,[c,p,m,f]=o.shape,d=[c,u,l,f],h=t.makeOutput(d,\"float32\");if(y.sizeFromShape(o.shape)===0)return h;let g=t.dataIdMap.get(o.dataId),x;g.dtype!==\"float32\"&&(x=ni({backend:t,inputs:{x:o},attrs:{dtype:\"float32\"}}),g=t.dataIdMap.get(x.dataId));let b=g.id,w=t.dataIdMap.get(h.dataId).id;return HG(b,c,p,m,f,u,l,s?1:0,i?1:0,w),x!=null&&t.disposeData(x.dataId),h}var qG={kernelName:Is,backendName:\"wasm\",setupFunc:uat,kernelFunc:cat};var KG;function pat(r){KG=r.wasm.cwrap(Ns,null,[\"number\",\"array\",\"number\",\"array\",\"number\",\"number\"])}function mat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n,i=y.parseAxisParam(s,o.shape);if(o.shape.length===0)return jc({inputs:{x:o},backend:e});let a=e.makeOutput(o.shape,o.dtype),u=e.dataIdMap.get(o.dataId).id,l=e.dataIdMap.get(a.dataId).id,c=new Uint8Array(new Int32Array(i).buffer),p=new Uint8Array(new Int32Array(o.shape).buffer);KG(u,c,i.length,p,o.shape.length,l);let m=ar({inputs:{x:a},attrs:{shape:o.shape},backend:e});return e.disposeData(a.dataId),m}var jG={kernelName:Ns,backendName:\"wasm\",kernelFunc:mat,setupFunc:pat};var XG;function fat(r){XG=r.wasm.cwrap(qa,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\"])}function dat(r){let{inputs:t,backend:e,attrs:n}=r,{image:o}=t,{radians:s,fillValue:i,center:a}=n,u=e.makeOutput(o.shape,o.dtype),l=e.dataIdMap.get(o.dataId).id,c=e.dataIdMap.get(u.dataId).id,[p,m,f,d]=o.shape,[h,g]=v.getImageCenter(a,m,f),x=i===0,b=255,w=typeof i==\"number\"?[i,i,i,x?0:b]:[...i,b],C=new Uint8Array(new Int32Array(w).buffer);return XG(l,p,m,f,d,s,h,g,C,w.length,c),u}var YG={kernelName:qa,backendName:\"wasm\",kernelFunc:dat,setupFunc:fat};var ZG=se(Ts);var JG=se(ks);var QG;function hat(r){QG=r.wasm.cwrap(La,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\"])}function gat(r){let{backend:t,inputs:e,attrs:n}=r,{indices:o,updates:s}=e,{shape:i}=n,a=t.makeOutput(i,s.dtype);if(y.sizeFromShape(i)===0)return a;let{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=lh.calculateShapes(s,o,i),d=t.dataIdMap.get(o.dataId).id,g=t.dataIdMap.get(s.dataId).id,x=new Uint8Array(new Int32Array(p).buffer),b=t.dataIdMap.get(a.dataId).id;return QG(d,g,qt[s.dtype],u,l,c,x,m,b),a}var tW={kernelName:La,backendName:\"wasm\",setupFunc:hat,kernelFunc:gat};var eW;function xat(r){eW=r.wasm.cwrap(\"SelectV2\",null,[\"number\",\"number\",\"number\",\"number\",\"number\"])}function yat(r){let{inputs:t,backend:e}=r,{condition:n,t:o,e:s}=t,i=e.dataIdMap.get(n.dataId).id,a=e.dataIdMap.get(o.dataId).id,u=e.dataIdMap.get(s.dataId).id,l=e.makeOutput(o.shape,o.dtype),c=e.dataIdMap.get(l.dataId).id,p=n.shape.length,m=o.shape.length,f=p===0||p>1||m===1?1:y.sizeFromShape(o.shape.slice(1));return eW(i,a,u,f,c),l}var rW={kernelName:hi,backendName:\"wasm\",kernelFunc:yat,setupFunc:xat};var nW;function bat(r){nW=r.wasm.cwrap(_s,null,[\"number\",\"number\"])}function wat(r){let{backend:t,inputs:{x:e}}=r,n=t.dataIdMap.get(e.dataId).id,o=t.makeOutput(e.shape,e.dtype),s=t.dataIdMap.get(o.dataId).id;return y.sizeFromShape(o.shape)===0||nW(n,s),o}var oW={kernelName:\"Sigmoid\",backendName:\"wasm\",setupFunc:bat,kernelFunc:wat};var sW=se(Es);var iW;function Cat(r){iW=r.wasm.cwrap(Ds,null,[\"number\",\"number\",\"number\",\"number\"])}function Iat(r){let{backend:t,inputs:{logits:e},attrs:{dim:n}}=r,o=t.dataIdMap.get(e.dataId).id,s=t.makeOutput(e.shape,e.dtype),i=t.dataIdMap.get(s.dataId).id,a=e.shape[n],u=y.sizeFromShape(e.shape)/a;return y.sizeFromShape(s.shape)===0||iW(o,i,a,u),s}var aW={kernelName:Ds,backendName:\"wasm\",setupFunc:Cat,kernelFunc:Iat};function Sat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,paddings:i}=n,a=y.sizeFromShape(s),u=[[0,0]];u.push(...i);for(let _=1+s.length;_0?u+1:0;if(c<0)throw new Error(v.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let p=o.shape.slice();p[0]=c;let m=e.dataIdMap.get(o.dataId).id,f=e.dataIdMap.get(s.dataId).id,d=e.dataIdMap.get(i.dataId).id,h=e.makeOutput(p,o.dtype),g=e.dataIdMap.get(h.dataId).id,x=e.makeOutput([4],\"int32\"),b=e.dataIdMap.get(x.dataId).id;fW(m,qt[o.dtype],o.shape[0],f,d,g,b,t,0);let w=e.readSync(x.dataId),C;switch(w[0]){case 0:{C=v.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{C=v.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:C=v.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(w[1],w[2]);break;case 3:C=v.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(w[1],w[2],w[3]);break;default:C=\"\"}if(e.disposeData(x.dataId),C)throw e.disposeData(h.dataId),new Error(C);return h}function Eat(r){return mI(r,!0)}var dW={kernelName:Ll,backendName:\"wasm\",setupFunc:pI,kernelFunc:Eat};function _at(r){return mI(r,!1)}var hW={kernelName:Ml,backendName:\"wasm\",setupFunc:pI,kernelFunc:_at};function Aat(r){let{inputs:t,attrs:e,backend:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=e,a=y.parseAxisParam(i,o.shape)[0],u=v.prepareSplitSize(o,s,a),l=new Array(o.shape.length).fill(0),c=o.shape.slice();return u.map(p=>{let m=[...c];m[a]=p;let f=Lo({inputs:{x:o},attrs:{begin:l,size:m},backend:n});return l[a]+=p,f})}var gW={kernelName:yi,backendName:\"wasm\",kernelFunc:Aat};var xW=se(As);var yW=se(zl);var $at=!0,bW=ue(Rs,$at);var wW;function Dat(r){wW=r.wasm.cwrap(po,null,[\"number\",\"number\",\"number\",\"number\"])}function Rat(r){let{backend:t,inputs:e,attrs:n}=r,{alpha:o}=n,{x:s}=e,i=t.dataIdMap.get(s.dataId).id,a=t.makeOutput(s.shape,s.dtype),u=t.dataIdMap.get(a.dataId).id;return wW(i,o,qt[s.dtype],u),a}var CW={kernelName:po,backendName:\"wasm\",setupFunc:Dat,kernelFunc:Rat};var IW;function Fat(r){IW=r.wasm.cwrap(Wa,null,[\"number\",\"array\",\"number\",\"array\",\"array\",\"array\",\"array\",\"array\",\"number\",\"number\"])}function Oat(r){let{backend:t,inputs:e,attrs:n}=r,{x:o}=e,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n,{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Le.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=ar({inputs:{x:o},backend:t,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let _=Le.computeOutShape(b,w,C),A=Lo({inputs:{x:o},backend:t,attrs:{begin:b,size:_}});N=ar({inputs:{x:A},backend:t,attrs:{shape:d}}),t.disposeData(A.dataId)}else{let _=t.makeOutput(f,\"float32\"),A=t.dataIdMap.get(o.dataId).id,$=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),F=new Uint8Array(new Int32Array(b).buffer),P=new Uint8Array(new Int32Array(w).buffer),V=new Uint8Array(new Int32Array(C).buffer),G=new Uint8Array(new Int32Array(f).buffer),W=new Uint8Array(new Int32Array(y.computeStrides(f)).buffer),q=t.dataIdMap.get(_.dataId).id;IW(A,$,o.shape.length,F,P,V,G,W,f.length,q),N=ar({inputs:{x:_},backend:t,attrs:{shape:d}}),t.disposeData(_.dataId)}return N}var SW={kernelName:Wa,backendName:\"wasm\",setupFunc:Fat,kernelFunc:Oat};function Pat(r){let{backend:t,inputs:e,attrs:n}=r,{data:o,dataSplits:s}=e,{separator:i,nGramWidths:a,leftPad:u,rightPad:l,padWidth:c,preserveShortSequences:p}=n,m=t.readSync(o.dataId),f=t.readSync(s.dataId),[d,h]=Dc(m,f,i,a,u,l,c,p),g=t.makeOutput([d.length],\"string\"),x=t.dataIdMap.get(g.dataId);x.stringBytes=d;let b=t.makeOutput(s.shape,\"int32\");return t.typedArrayFromHeap(b).set(h),[g,b]}var vW={kernelName:Bl,backendName:\"wasm\",kernelFunc:Pat};function Lat(r){let{backend:t,inputs:e,attrs:n}=r,{input:o,delimiter:s}=e,{skipEmpty:i}=n,a=t.readSync(o.dataId),u=t.readSync(s.dataId),[l,c,p]=Rc(a,u[0],i),m=c.length,f=t.makeOutput([m,2],\"int32\");t.typedArrayFromHeap(f).set(l);let h=t.makeOutput([m],\"string\"),g=t.dataIdMap.get(h.dataId);g.stringBytes=c;let x=t.makeOutput([2],\"int32\");return t.typedArrayFromHeap(x).set(p),[f,h,x]}var NW={kernelName:Vl,backendName:\"wasm\",kernelFunc:Lat};function Mat(r){let{backend:t,inputs:e,attrs:n}=r,{input:o}=e,{numBuckets:s}=n,i=t.readSync(o.dataId),a=Fc(i,s),u=t.makeOutput(o.shape,\"int32\");return t.typedArrayFromHeap(u).set(a),u}var TW={kernelName:Gl,backendName:\"wasm\",kernelFunc:Mat};var zat=!0,kW=ue(Fs,zat);var EW;function Bat(r){EW=r.wasm.cwrap($s,null,[\"number\",\"number\",\"number\",\"number\"])}function Vat(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=v.getInnerMostAxes(d.length,l.shape.length))}v.assertAxesAreInnerMostDims(\"sum\",d,l.shape.length);let[h,g]=v.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;EW(u,x,qt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=v.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var _W={kernelName:$s,backendName:\"wasm\",setupFunc:Bat,kernelFunc:Vat};var AW=se(Os);var $W=se(Ps);var DW;function Gat(r){DW=r.wasm.cwrap(Jn,null,[\"number\",\"array\",\"number\",\"array\",\"number\",\"number\"])}function Wat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,s=e.dataIdMap.get(o.dataId).id,{reps:i}=n,a=new Array(o.shape.length);for(let m=0;m{let{x:n}=r,{k:o,sorted:s}=e,i=t.dataIdMap.get(n.dataId).id,a=new Uint8Array(new Int32Array(n.shape).buffer),u=n.shape.slice();u[u.length-1]=o;let l=t.makeOutput(u,n.dtype),c=t.dataIdMap.get(l.dataId).id,p=t.makeOutput(u,\"int32\"),m=t.dataIdMap.get(p.dataId).id;return FW(i,a,n.shape.length,qt[n.dtype],o,s,c,m),[l,p]},OW={kernelName:Ua,backendName:\"wasm\",setupFunc:Uat,kernelFunc:Hat};var PW;function qat(r){PW=r.wasm.cwrap(Ha,null,[\"number\",\"number\",\"bool\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Kat(r){let{backend:t,inputs:e,attrs:n}=r,{image:o,transforms:s}=e,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=n,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),b=new Uint8Array(new Int32Array(y.computeStrides(g)).buffer),w=t.makeOutput(g,o.dtype),C=t.dataIdMap.get(w.dataId).id,_=t.dataIdMap.get(o.dataId).id,$=t.dataIdMap.get(s.dataId).id,F=i===\"nearest\"?1:2,P;switch(a){case\"constant\":P=1;break;case\"reflect\":P=2;break;case\"wrap\":P=3;break;case\"nearest\":P=4;break;default:P=1;break}return PW(_,$,s.shape[0]>1,c,d,h,f,m,p,x,o.shape.length-1,b,g.length-1,F,P,u,C),w}var LW={kernelName:Ha,backendName:\"wasm\",setupFunc:qat,kernelFunc:Kat};function jat(r){let{inputs:t,backend:e,attrs:n}=r,{value:o}=t,{axis:s}=n;s<0&&(s+=o.shape.length);let i=o.shape[s],a=o.shape.length,u=new Array(a-1),l=0;for(let f=0;f({dataId:f,dtype:d,shape:u}))}var MW={kernelName:bi,backendName:\"wasm\",kernelFunc:jat};function Xat(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(0),n}var zW={kernelName:wi,backendName:\"wasm\",kernelFunc:Xat};var Yat=[UB,HB,qB,jB,QB,eV,nV,sV,lV,cV,pV,mV,dV,hV,xV,bV,wV,CV,SV,NV,kV,_V,$V,DV,RV,FV,OV,PV,MV,zV,BV,GV,UV,qV,jV,YV,ZV,JV,XB,tG,eG,rG,nG,oG,sG,iG,aG,uG,cG,mG,dG,gG,xG,bG,wG,CG,SG,NG,kG,EG,AG,$G,DG,cI,FG,PG,MG,zG,BG,VG,GG,iV,UG,qG,jG,YG,ZG,JG,tW,rW,oW,sW,uV,aW,lW,cW,mW,dW,hW,gW,xW,yW,bW,CW,SW,vW,NW,TW,kW,_W,AW,$W,RW,OW,LW,ZB,MW,zW];for(let r of Yat)Lu(r);var Rk=z();Rk.registerFlag(\"WASM_HAS_SIMD_SUPPORT\",async()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]))}catch(r){return!1}});Rk.registerFlag(\"WASM_HAS_MULTITHREAD_SUPPORT\",async()=>{if(Rk.get(\"IS_NODE\"))return!1;try{return new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch(r){return!1}});var zk=Tl(WW()),XW=Tl(HW()),Bk=Tl(qW());var KW=zk.default||zk,Zat=Bk.default||Bk,cg=class extends zo{constructor(t){super(),this.wasm=t,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(ZW),Mk=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new ra(this,Pn())}write(t,e,n){let o={id:this.dataIdNextNumber++};return this.move(o,t,e,n,1),o}numDataIds(){return this.dataIdMap.numDataIds()}async time(t){let e=y.now();return t(),{kernelMs:y.now()-e}}move(t,e,n,o,s){let i=this.dataIdNextNumber++;if(o===\"string\"){let c=e;this.dataIdMap.set(t,{id:i,stringBytes:c,shape:n,dtype:o,memoryOffset:null,refCount:s});return}let a=y.sizeFromShape(n),u=a*y.bytesPerElement(o),l=this.wasm._malloc(u);this.dataIdMap.set(t,{id:i,memoryOffset:l,shape:n,dtype:o,refCount:s}),this.wasm.tfjs.registerTensor(i,a,l),e!=null&&this.wasm.HEAPU8.set(new Uint8Array(e.buffer,e.byteOffset,u),l)}async read(t){return this.readSync(t)}readSync(t,e,n){let{memoryOffset:o,dtype:s,shape:i,stringBytes:a}=this.dataIdMap.get(t);if(s===\"string\")return(e==null||e===0)&&(n==null||n>=a.length)?a:a.slice(e,n);e=e||0,n=n||y.sizeFromShape(i);let u=y.bytesPerElement(s),l=this.wasm.HEAPU8.slice(o+e*u,o+n*u);return Qat(l.buffer,s)}disposeData(t,e=!1){if(this.dataIdMap.has(t)){let n=this.dataIdMap.get(t);if(n.refCount--,!e&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(t)}return!0}refCount(t){return this.dataIdMap.has(t)?this.dataIdMap.get(t).refCount:0}incRef(t){let e=this.dataIdMap.get(t);e!=null&&e.refCount++}floatPrecision(){return 32}getMemoryOffset(t){return this.dataIdMap.get(t).memoryOffset}dispose(){this.wasm.tfjs.dispose(),\"PThread\"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(t,e,n){let o;if(n==null)o=this.write(null,t,e);else{let s=this.dataIdNextNumber++;o={id:s},this.dataIdMap.set(o,{id:s,memoryOffset:n,shape:t,dtype:e,refCount:1});let i=y.sizeFromShape(t);this.wasm.tfjs.registerTensor(s,i,n)}return{dataId:o,shape:t,dtype:e}}typedArrayFromHeap({shape:t,dtype:e,dataId:n}){let o=this.wasm.HEAPU8.buffer,{memoryOffset:s}=this.dataIdMap.get(n),i=y.sizeFromShape(t);switch(e){case\"float32\":return new Float32Array(o,s,i);case\"int32\":return new Int32Array(o,s,i);case\"bool\":return new Uint8Array(o,s,i);default:throw new Error(`Unknown dtype ${e}`)}}};function Jat(r){return(t,e)=>(y.fetch(r,{credentials:\"same-origin\"}).then(n=>{n.ok||t.env.a(`failed to load wasm binary file at '${r}'`),n.arrayBuffer().then(o=>{WebAssembly.instantiate(o,t).then(s=>{e(s.instance,s.module)})})}),{})}function jW(r,t,e){if(hI!=null)return hI;let n=\"tfjs-backend-wasm.wasm\";return r&&t?n=\"tfjs-backend-wasm-threaded-simd.wasm\":r&&(n=\"tfjs-backend-wasm-simd.wasm\"),lg!=null&&lg[n]!=null?lg[n]:e+n}async function YW(){let[r,t]=await Promise.all([z().getAsync(\"WASM_HAS_SIMD_SUPPORT\"),z().getAsync(\"WASM_HAS_MULTITHREAD_SUPPORT\")]);return new Promise((e,n)=>{let o={};o.locateFile=(a,u)=>{if(a.endsWith(\".worker.js\")){let l=XW.wasmWorkerContents.replace(/\\n/g,\"\\\\n\"),c=new Blob([l],{type:\"application/javascript\"});return URL.createObjectURL(c)}return a.endsWith(\".wasm\")?jW(r,t,ag!=null?ag:u):u+a},Vk&&(o.instantiateWasm=Jat(jW(r,t,ag!=null?ag:\"\")));let s=!1;o.onAbort=()=>{if(s||ug)return;ug=!0,n({message:\"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers\"})};let i;t&&r&&hI==null?(o.mainScriptUrlOrBlob=new Blob([\"var WasmBackendModuleThreadedSimd = \"+KW.toString()],{type:\"text/javascript\"}),i=KW(o)):i=Zat(o),i.then(a=>{s=!0,ug=!1;let u=null;a.tfjs={init:a.cwrap(\"init\",null,[]),initWithThreadsCount:a.cwrap(\"init_with_threads_count\",null,[\"number\"]),getThreadsCount:a.cwrap(\"get_threads_count\",\"number\",[]),registerTensor:a.cwrap(\"register_tensor\",null,[\"number\",\"number\",\"number\"]),disposeData:a.cwrap(\"dispose_data\",u,[\"number\"]),dispose:a.cwrap(\"dispose\",u,[])},e({wasm:a})}).catch(n)})}function Qat(r,t){switch(t){case\"float32\":return new Float32Array(r);case\"int32\":return new Int32Array(r);case\"bool\":return new Uint8Array(r);default:throw new Error(`Unknown dtype ${t}`)}}var tlt=[\"tfjs-backend-wasm.wasm\",\"tfjs-backend-wasm-simd.wasm\",\"tfjs-backend-wasm-threaded-simd.wasm\"],hI=null,ag=null,lg={},ug=!1,Vk=!1;function elt(r,t=!1){if(W0(\"setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release.\"),ug)throw new Error(\"The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`\");hI=r,Vk=t}function rlt(r,t=!1){if(ug)throw new Error(\"The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`\");if(typeof r==\"string\")ag=r;else{lg=r;let e=tlt.filter(n=>lg[n]==null);if(e.length>0)throw new Error(`There were no entries found for the following binaries: ${e.join(\",\")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}Vk=t}var ZW=-1,Mk=-1;function nlt(r){ZW=r}function olt(){if(Mk===-1)throw new Error(\"WASM backend not initialized.\");return Mk}var slt=\"4.0.0\";var ilt=2;Xp(\"wasm\",async()=>{let{wasm:r}=await YW();return new cg(r)},ilt);var JW=\"4.0.0\",alt=\"4.0.0\",llt=\"4.0.0\",ult=\"4.0.0\",clt=\"4.0.0\",plt={tfjs:JW,\"tfjs-core\":JW,\"tfjs-converter\":alt,\"tfjs-backend-cpu\":llt,\"tfjs-backend-webgl\":ult,\"tfjs-backend-wasm\":clt};export{ii as Abs,oa as Acos,sa as Acosh,cu as AdadeltaOptimizer,pu as AdagradOptimizer,mu as AdamOptimizer,fu as AdamaxOptimizer,Zn as Add,Go as AddN,ia as All,aa as Any,Wo as ArgMax,kl as ArgMin,la as Asin,ua as Asinh,ca as Atan,ma as Atan2,pa as Atanh,Uo as AvgPool,El as AvgPool3D,lp as AvgPool3DGrad,ap as AvgPoolGrad,cg as BackendWasm,Ho as BatchMatMul,ai as BatchToSpaceND,up as Bincount,cp as BroadcastArgs,p1 as BroadcastTo,Sb as Callback,Py as CallbackList,lo as Cast,qo as Ceil,uo as ClipByValue,pp as Complex,_l as ComplexAbs,li as Concat,Ko as Conv2D,mp as Conv2DBackpropFilter,jo as Conv2DBackpropInput,Al as Conv3D,fp as Conv3DBackpropFilterV2,dp as Conv3DBackpropInputV2,Xo as Cos,Yo as Cosh,da as CropAndResize,fa as Cumprod,Zo as Cumsum,My as CustomCallback,ra as DataStorage,hp as DenseBincount,ha as DepthToSpace,Jo as DepthwiseConv2dNative,gp as DepthwiseConv2dNativeBackpropFilter,xp as DepthwiseConv2dNativeBackpropInput,yp as Diag,$l as Dilation2D,Xd as Dilation2DBackpropFilter,jd as Dilation2DBackpropInput,i0 as ENV,vb as EarlyStopping,bp as Einsum,ts as Elu,wp as EluGrad,qd as Environment,xa as Equal,ga as Erf,es as Exp,ui as ExpandDims,ya as Expm1,Cp as FFT,Dl as Fill,ba as FlipLeftRight,rs as Floor,ns as FloorDiv,Yd as FromPixels,os as FusedBatchNorm,Ii as FusedConv2D,Si as FusedDepthwiseConv2D,Bc as GPGPUContext,wa as GatherNd,ci as GatherV2,Ph as GraphModel,Ca as Greater,ss as GreaterEqual,Ly as History,Ip as IFFT,co as Identity,Sp as Imag,ye as InputSpec,Ia as IsFinite,Sa as IsInf,va as IsNan,zo as KernelBackend,Rl as LRN,Np as LRNGrad,Ch as LayerVariable,Bn as LayersModel,is as LeakyRelu,Na as Less,Ta as LessEqual,vp as LinSpace,as as Log,ka as Log1p,f1 as LogSoftmax,Ea as LogicalAnd,_a as LogicalNot,Aa as LogicalOr,m1 as LogicalXor,xlt as LowerBound,_u as MathBackendWebGL,ls as Max,cs as MaxPool,Fl as MaxPool3D,kp as MaxPool3DGrad,Tp as MaxPoolGrad,Ep as MaxPoolWithArgmax,us as Maximum,ps as Mean,ms as Min,fs as Minimum,ds as MirrorPad,$a as Mod,du as MomentumOptimizer,_p as Multinomial,hs as Multiply,pi as Neg,Ra as NonMaxSuppressionV3,Fa as NonMaxSuppressionV4,Oa as NonMaxSuppressionV5,Da as NotEqual,k0 as OP_SCOPE_SUFFIX,gs as OneHot,mi as OnesLike,Wr as Optimizer,Ws as OptimizerConstructors,fi as Pack,xs as PadV2,ylt as Pool,ys as Pow,bs as Prelu,ws as Prod,hu as RMSPropOptimizer,Tn as RNN,Ap as RaggedGather,$p as RaggedRange,Dp as RaggedTensorToTensor,Ol as Range,x0 as Rank,Rp as Real,Qo as RealDiv,Pa as Reciprocal,Xe as Reduction,Cs as Relu,vs as Relu6,di as Reshape,Ss as ResizeBilinear,Op as ResizeBilinearGrad,Is as ResizeNearestNeighbor,Fp as ResizeNearestNeighborGrad,Ns as Reverse,qa as RotateWithOffset,Ts as Round,ks as Rsqrt,Bi as SGDOptimizer,La as ScatterNd,Pp as SearchSorted,hi as Select,Ma as Selu,qi as Sequential,_s as Sigmoid,Ba as Sign,Es as Sin,za as Sinh,gi as Slice,Ds as Softmax,Va as Softplus,xi as SpaceToBatchND,Pl as SparseFillEmptyRows,Ga as SparseReshape,Ll as SparseSegmentMean,Ml as SparseSegmentSum,Lp as SparseToDense,yi as SplitV,As as Sqrt,zl as Square,Rs as SquaredDifference,po as Step,Wa as StridedSlice,Bl as StringNGrams,Vl as StringSplit,Gl as StringToHashBucketFast,Fs as Sub,$s as Sum,Jr as SymbolicTensor,Os as Tan,Ps as Tanh,Ft as Tensor,pe as TensorBuffer,Jn as Tile,Ua as TopK,Ha as Transform,Qn as Transpose,Mp as Unique,bi as Unpack,Wl as UnsortedSegmentSum,blt as UpperBound,Ka as Variable,wi as ZerosLike,Ci as _FusedMatMul,Ee as abs,ax as acos,lx as acosh,X as add,LE as addN,Zp as all,qu as any,Ai as argMax,ux as argMin,cx as asin,px as asinh,mx as atan,fx as atan2,dx as atanh,Yl as avgPool,gx as avgPool3d,gE as backend,v as backend_util,BE as basicLSTMCell,Di as batchNorm,xx as batchNorm2d,yx as batchNorm3d,bx as batchNorm4d,Zl as batchToSpaceND,wx as bincount,n6 as booleanMaskAsync,GE as broadcastArgs,Ri as broadcastTo,Vr as broadcast_util,nx as browser,wt as buffer,VZ as callbacks,J as cast,Cx as ceil,Cr as clipByValue,sn as clone,wn as complex,ne as concat,Ix as concat1d,Sx as concat2d,vx as concat3d,Nx as concat4d,K$ as constraints,Qp as conv1d,In as conv2d,em as conv2dTranspose,Tx as conv3d,Ex as conv3dTranspose,Tlt as copyRegisteredKernels,Jl as cos,rm as cosh,hh as cosineWindow,Xu as cumprod,nm as cumsum,un as customGrad,AR as data,ch as denseBincount,W0 as deprecationWarn,_x as depthToSpace,Fi as depthwiseConv2d,HZ as deregisterOp,Kl as device_util,WE as diag,Ax as dilation2d,gpt as disableDeprecationWarnings,vt as dispose,xpt as disposeVariables,pt as div,$x as divNoNan,Dx as dot,lv as dropout,UE as einsum,Oi as elu,hpt as enableDebugMode,dpt as enableProdMode,uv as enclosingPowerOfTwo,Pn as engine,z as env,$r as equal,Rx as erf,Fx as euclideanNorm,er as exp,rr as expandDims,Ox as expm1,Yu as eye,au as fft,xo as fill,Spt as findBackend,vpt as findBackendFactory,Pi as floor,Yp as floorDiv,hM as forceHalfFloat,uu as fused,Li as gather,m6 as gatherND,ox as gather_util,Cpt as getBackend,u0 as getGradient,Jd as getKernel,zg as getKernelsForBackend,olt as getThreadsCount,ik as gpgpu_util,bK as grad,wK as grads,Re as greater,ln as greaterEqual,tl as ifft,Xl as imag,Gs as image,h6 as inTopKAsync,j$ as initializers,Pv as input,_r as io,xm as irfft,Px as isFinite,Lx as isInf,Mx as isNaN,De as keep,Ur as kernel_impls,ED as layers,Ql as leakyRelu,om as less,Ln as lessEqual,pv as linalg,KE as linspace,M7 as loadGraphModel,z7 as loadGraphModelSync,hD as loadLayersModel,zx as localResponseNormalization,Sr as log,tu as log1p,Gx as logSigmoid,sm as logSoftmax,im as logSumExp,Rr as logicalAnd,eu as logicalNot,am as logicalOr,Wx as logicalXor,hX as losses,jE as lowerBound,Lt as matMul,yE as math,Ir as max,ru as maxPool,Hx as maxPool3d,XE as maxPoolWithArgmax,Sn as maximum,ve as mean,ah as memory,YE as meshgrid,_D as metrics,Ja as min,Mi as minimum,qx as mirrorPad,Kx as mod,q8 as model,AD as models,Zu as moments,s6 as movingAverage,D as mul,ZE as multiRNNCell,JE as multinomial,Ht as neg,gh as nextFrame,Qa as norm,Bs as notEqual,Ei as oneHot,cr as ones,yr as onesLike,T as op,QE as outerProduct,cn as pad,t_ as pad1d,e_ as pad2d,r_ as pad3d,n_ as pad4d,jx as pool,an as pow,ou as prelu,Jg as print,Xx as prod,ypt as profile,o_ as raggedGather,s_ as raggedRange,i_ as raggedTensorToTensor,a_ as rand,v_ as randomGamma,tc as randomNormal,N_ as randomStandardNormal,zi as randomUniform,su as range,wpt as ready,Za as real,ty as reciprocal,Xp as registerBackend,j8 as registerCallbackConstructor,h1 as registerGradient,Lu as registerKernel,UZ as registerOp,$D as regularizers,Fr as relu,lm as relu6,Ipt as removeBackend,R as reshape,pr as reverse,T_ as reverse1d,k_ as reverse2d,E_ as reverse3d,__ as reverse4d,lu as rfft,um as round,cm as rsqrt,mt as scalar,a6 as scatterND,lh as scatter_util,mh as searchSorted,pm as selu,mm as separableConv2d,K8 as sequential,Q as serialization,tH as setBackend,Npt as setPlatform,nlt as setThreadsCount,elt as setWasmPath,rlt as setWasmPaths,wT as setWebGLContext,A_ as setdiff1dAsync,Yr as sigmoid,ey as sign,dX as signal,fm as sin,dm as sinh,Rt as slice,hm as slice1d,dh as slice2d,gm as slice3d,ec as slice4d,Le as slice_util,iu as softmax,zs as softplus,nu as spaceToBatchND,gX as sparse,c6 as sparseToDense,fX as spectral,mr as split,Se as sqrt,Mt as square,ym as squaredDifference,Mn as squeeze,nr as stack,bo as step,ry as stridedSlice,xX as string,ct as sub,ft as sum,Wu as sumOutType,ny as tan,$i as tanh,ur as tensor,Me as tensor1d,Vs as tensor2d,rx as tensor3d,$_ as tensor4d,D_ as tensor5d,R_ as tensor6d,go as tensor_util,OE as test_util,B as tidy,Dr as tile,bpt as time,oy as topk,ic as train,Ot as transpose,bm as truncatedNormal,sy as unique,Nlt as unregisterGradient,vlt as unregisterKernel,wm as unsortedSegmentSum,vr as unstack,sr as upcastType,F_ as upperBound,y as util,CK as valueAndGrad,IK as valueAndGrads,iy as variable,Bx as variableGrads,plt as version,cR as version_converter,PE as version_core,Um as version_layers,slt as version_wasm,dM as version_webgl,Zke as webgl,dd as webgl_util,_e as where,ly as whereAsync,Ne as zeros,It as zerosLike};\n", "export * from './drawContour';\nexport * from './drawDetections';\nexport * from './drawFaceExpressions';\nexport * from './DrawBox';\nexport * from './DrawFaceLandmarks';\nexport * from './DrawTextField';\n", "import { Point } from '../classes/index';\n\nexport function drawContour(\n ctx: CanvasRenderingContext2D,\n points: Point[],\n isClosed = false,\n) {\n ctx.beginPath();\n\n points.slice(1).forEach(({ x, y }, prevIdx) => {\n const from = points[prevIdx];\n ctx.moveTo(from.x, from.y);\n ctx.lineTo(x, y);\n });\n\n if (isClosed) {\n const from = points[points.length - 1];\n const to = points[0];\n if (!from || !to) {\n return;\n }\n\n ctx.moveTo(from.x, from.y);\n ctx.lineTo(to.x, to.y);\n }\n\n ctx.stroke();\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Point } from '../classes/index';\nimport { Dimensions, IDimensions } from '../classes/Dimensions';\n\nexport function isTensor(tensor: any, dim: number) {\n return tensor instanceof tf.Tensor && tensor.shape.length === dim;\n}\n\nexport function isTensor1D(tensor: any): tensor is tf.Tensor1D {\n return isTensor(tensor, 1);\n}\n\nexport function isTensor2D(tensor: any): tensor is tf.Tensor2D {\n return isTensor(tensor, 2);\n}\n\nexport function isTensor3D(tensor: any): tensor is tf.Tensor3D {\n return isTensor(tensor, 3);\n}\n\nexport function isTensor4D(tensor: any): tensor is tf.Tensor4D {\n return isTensor(tensor, 4);\n}\n\nexport function isFloat(num: number) {\n return num % 1 !== 0;\n}\n\nexport function isEven(num: number) {\n return num % 2 === 0;\n}\n\nexport function round(num: number, prec = 2) {\n const f = 10 ** prec;\n return Math.floor(num * f) / f;\n}\n\nexport function isDimensions(obj: any): boolean {\n return obj && obj.width && obj.height;\n}\n\nexport function computeReshapedDimensions({ width, height }: IDimensions, inputSize: number) {\n const scale = inputSize / Math.max(height, width);\n return new Dimensions(Math.round(width * scale), Math.round(height * scale));\n}\n\nexport function getCenterPoint(pts: Point[]): Point {\n return pts.reduce((sum, pt) => sum.add(pt), new Point(0, 0))\n .div(new Point(pts.length, pts.length));\n}\n\nexport function range(num: number, start: number, step: number): number[] {\n return Array(num).fill(0).map((_, i) => start + (i * step));\n}\n\nexport function isValidNumber(num: any) {\n return !!num && (num !== Infinity) && (num !== -Infinity) && !Number.isNaN(num) || num === 0;\n}\n\nexport function isValidProbablitiy(num: any) {\n return isValidNumber(num) && num >= 0 && num <= 1.0;\n}\n", "import { isValidNumber } from '../utils/index';\n\nexport interface IDimensions {\n width: number\n height: number\n}\n\nexport class Dimensions implements IDimensions {\n private _width: number;\n\n private _height: number;\n\n constructor(width: number, height: number) {\n if (!isValidNumber(width) || !isValidNumber(height)) {\n throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({ width, height })}`);\n }\n\n this._width = width;\n this._height = height;\n }\n\n public get width(): number { return this._width; }\n\n public get height(): number { return this._height; }\n\n public reverse(): Dimensions {\n return new Dimensions(1 / this.width, 1 / this.height);\n }\n}\n", "export interface IPoint {\n x: number\n y: number\n}\n\nexport class Point implements IPoint {\n private _x: number;\n\n private _y: number;\n\n constructor(x: number, y: number) {\n this._x = x;\n this._y = y;\n }\n\n get x(): number { return this._x; }\n\n get y(): number { return this._y; }\n\n public add(pt: IPoint): Point {\n return new Point(this.x + pt.x, this.y + pt.y);\n }\n\n public sub(pt: IPoint): Point {\n return new Point(this.x - pt.x, this.y - pt.y);\n }\n\n public mul(pt: IPoint): Point {\n return new Point(this.x * pt.x, this.y * pt.y);\n }\n\n public div(pt: IPoint): Point {\n return new Point(this.x / pt.x, this.y / pt.y);\n }\n\n public abs(): Point {\n return new Point(Math.abs(this.x), Math.abs(this.y));\n }\n\n public magnitude(): number {\n return Math.sqrt((this.x ** 2) + (this.y ** 2));\n }\n\n public floor(): Point {\n return new Point(Math.floor(this.x), Math.floor(this.y));\n }\n}\n", "import { isDimensions, isValidNumber } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { IDimensions } from './Dimensions';\nimport { Point } from './Point';\nimport { IRect } from './Rect';\n\nexport class Box implements IBoundingBox, IRect {\n public static isRect(rect: any): boolean {\n return !!rect && [rect.x, rect.y, rect.width, rect.height].every(isValidNumber);\n }\n\n public static assertIsValidBox(box: any, callee: string, allowNegativeDimensions = false) {\n if (!Box.isRect(box)) {\n throw new Error(`${callee} - invalid box: ${JSON.stringify(box)}, expected object with properties x, y, width, height`);\n }\n\n if (!allowNegativeDimensions && (box.width < 0 || box.height < 0)) {\n throw new Error(`${callee} - width (${box.width}) and height (${box.height}) must be positive numbers`);\n }\n }\n\n private _x: number;\n\n private _y: number;\n\n private _width: number;\n\n private _height: number;\n\n constructor(_box: IBoundingBox | IRect, allowNegativeDimensions = true) {\n const box = (_box || {}) as any;\n\n const isBbox = [box.left, box.top, box.right, box.bottom].every(isValidNumber);\n const isRect = [box.x, box.y, box.width, box.height].every(isValidNumber);\n\n if (!isRect && !isBbox) {\n throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(box)}`);\n }\n\n const [x, y, width, height] = isRect\n ? [box.x, box.y, box.width, box.height]\n : [box.left, box.top, box.right - box.left, box.bottom - box.top];\n\n Box.assertIsValidBox({\n x, y, width, height,\n }, 'Box.constructor', allowNegativeDimensions);\n\n this._x = x;\n this._y = y;\n this._width = width;\n this._height = height;\n }\n\n public get x(): number { return this._x; }\n\n public get y(): number { return this._y; }\n\n public get width(): number { return this._width; }\n\n public get height(): number { return this._height; }\n\n public get left(): number { return this.x; }\n\n public get top(): number { return this.y; }\n\n public get right(): number { return this.x + this.width; }\n\n public get bottom(): number { return this.y + this.height; }\n\n public get area(): number { return this.width * this.height; }\n\n public get topLeft(): Point { return new Point(this.left, this.top); }\n\n public get topRight(): Point { return new Point(this.right, this.top); }\n\n public get bottomLeft(): Point { return new Point(this.left, this.bottom); }\n\n public get bottomRight(): Point { return new Point(this.right, this.bottom); }\n\n public round(): Box {\n const [x, y, width, height] = [this.x, this.y, this.width, this.height]\n .map((val) => Math.round(val));\n return new Box({\n x, y, width, height,\n });\n }\n\n public floor(): Box {\n const [x, y, width, height] = [this.x, this.y, this.width, this.height]\n .map((val) => Math.floor(val));\n return new Box({\n x, y, width, height,\n });\n }\n\n public toSquare(): Box {\n let {\n x, y, width, height,\n } = this;\n const diff = Math.abs(width - height);\n if (width < height) {\n x -= (diff / 2);\n width += diff;\n }\n if (height < width) {\n y -= (diff / 2);\n height += diff;\n }\n\n return new Box({ x, y, width, height });\n }\n\n public rescale(s: IDimensions | number): Box {\n const scaleX = isDimensions(s) ? (s as IDimensions).width : s as number;\n const scaleY = isDimensions(s) ? (s as IDimensions).height : s as number;\n return new Box({\n x: this.x * scaleX,\n y: this.y * scaleY,\n width: this.width * scaleX,\n height: this.height * scaleY,\n });\n }\n\n public pad(padX: number, padY: number): Box {\n const [x, y, width, height] = [\n this.x - (padX / 2),\n this.y - (padY / 2),\n this.width + padX,\n this.height + padY,\n ];\n return new Box({ x, y, width, height });\n }\n\n public clipAtImageBorders(imgWidth: number, imgHeight: number): Box {\n const { x, y, right, bottom } = this;\n const clippedX = Math.max(x, 0);\n const clippedY = Math.max(y, 0);\n\n const newWidth = right - clippedX;\n const newHeight = bottom - clippedY;\n const clippedWidth = Math.min(newWidth, imgWidth - clippedX);\n const clippedHeight = Math.min(newHeight, imgHeight - clippedY);\n\n return (new Box({ x: clippedX, y: clippedY, width: clippedWidth, height: clippedHeight })).floor();\n }\n\n public shift(sx: number, sy: number): Box {\n const { width, height } = this;\n const x = this.x + sx;\n const y = this.y + sy;\n\n return new Box({ x, y, width, height });\n }\n\n public padAtBorders(imageHeight: number, imageWidth: number) {\n const w = this.width + 1;\n const h = this.height + 1;\n\n const dx = 1;\n const dy = 1;\n let edx = w;\n let edy = h;\n\n let x = this.left;\n let y = this.top;\n let ex = this.right;\n let ey = this.bottom;\n\n if (ex > imageWidth) {\n edx = -ex + imageWidth + w;\n ex = imageWidth;\n }\n if (ey > imageHeight) {\n edy = -ey + imageHeight + h;\n ey = imageHeight;\n }\n if (x < 1) {\n edy = 2 - x;\n x = 1;\n }\n if (y < 1) {\n edy = 2 - y;\n y = 1;\n }\n\n return { dy, edy, dx, edx, y, ey, x, ex, w, h };\n }\n\n public calibrate(region: Box) {\n return new Box({\n left: this.left + (region.left * this.width),\n top: this.top + (region.top * this.height),\n right: this.right + (region.right * this.width),\n bottom: this.bottom + (region.bottom * this.height),\n }).toSquare().round();\n }\n}\n", "import { Box } from './Box';\n\nexport interface IBoundingBox {\n left: number\n top: number\n right: number\n bottom: number\n}\n\nexport class BoundingBox extends Box implements IBoundingBox {\n constructor(left: number, top: number, right: number, bottom: number, allowNegativeDimensions = false) {\n super({ left, top, right, bottom }, allowNegativeDimensions);\n }\n}\n", "import { Box } from './Box';\nimport { Dimensions, IDimensions } from './Dimensions';\nimport { IRect, Rect } from './Rect';\n\nexport class ObjectDetection {\n private _score: number;\n\n private _classScore: number;\n\n private _className: string;\n\n private _box: Rect;\n\n private _imageDims: Dimensions;\n\n constructor(\n score: number,\n classScore: number,\n className: string,\n relativeBox: IRect,\n imageDims: IDimensions,\n ) {\n this._imageDims = new Dimensions(imageDims.width, imageDims.height);\n this._score = score;\n this._classScore = classScore;\n this._className = className;\n this._box = new Box(relativeBox).rescale(this._imageDims);\n }\n\n public get score(): number { return this._score; }\n\n public get classScore(): number { return this._classScore; }\n\n public get className(): string { return this._className; }\n\n public get box(): Box { return this._box; }\n\n public get imageDims(): Dimensions { return this._imageDims; }\n\n public get imageWidth(): number { return this.imageDims.width; }\n\n public get imageHeight(): number { return this.imageDims.height; }\n\n public get relativeBox(): Box { return new Box(this._box).rescale(this.imageDims.reverse()); }\n\n public forSize(width: number, height: number): ObjectDetection {\n return new ObjectDetection(\n this.score,\n this.classScore,\n this.className,\n this.relativeBox,\n { width, height },\n );\n }\n}\n", "import { Box } from './Box';\nimport { IDimensions } from './Dimensions';\nimport { ObjectDetection } from './ObjectDetection';\nimport { Rect } from './Rect';\n\nexport interface IFaceDetecion {\n score: number\n box: Box\n}\n\nexport class FaceDetection extends ObjectDetection implements IFaceDetecion {\n constructor(\n score: number,\n relativeBox: Rect,\n imageDims: IDimensions,\n ) {\n super(score, score, '', relativeBox, imageDims);\n }\n\n public override forSize(width: number, height: number): FaceDetection {\n const { score, relativeBox, imageDims } = super.forSize(width, height);\n return new FaceDetection(score, relativeBox, imageDims);\n }\n}\n", "import { Box } from '../classes/Box';\n\nexport function iou(box1: Box, box2: Box, isIOU = true) {\n const width = Math.max(0.0, Math.min(box1.right, box2.right) - Math.max(box1.left, box2.left));\n const height = Math.max(0.0, Math.min(box1.bottom, box2.bottom) - Math.max(box1.top, box2.top));\n const interSection = width * height;\n\n return isIOU\n ? interSection / (box1.area + box2.area - interSection)\n : interSection / Math.min(box1.area, box2.area);\n}\n", "import { BoundingBox, IPoint } from '../classes/index';\n\nexport function minBbox(pts: IPoint[]): BoundingBox {\n const xs = pts.map((pt) => pt.x);\n const ys = pts.map((pt) => pt.y);\n const minX = xs.reduce((min, x) => (x < min ? x : min), Infinity);\n const minY = ys.reduce((min, y) => (y < min ? y : min), Infinity);\n const maxX = xs.reduce((max, x) => (max < x ? x : max), 0);\n const maxY = ys.reduce((max, y) => (max < y ? y : max), 0);\n\n return new BoundingBox(minX, minY, maxX, maxY);\n}\n", "import { Box } from '../classes/Box';\nimport { iou } from './iou';\n\nexport function nonMaxSuppression(\n boxes: Box[],\n scores: number[],\n iouThreshold: number,\n isIOU = true,\n): number[] {\n let indicesSortedByScore = scores\n .map((score, boxIndex) => ({ score, boxIndex }))\n .sort((c1, c2) => c1.score - c2.score)\n .map((c) => c.boxIndex);\n\n const pick: number[] = [];\n\n while (indicesSortedByScore.length > 0) {\n const curr = indicesSortedByScore.pop() as number;\n pick.push(curr);\n\n const indices = indicesSortedByScore;\n\n const outputs: number[] = [];\n for (let i = 0; i < indices.length; i++) {\n const idx = indices[i];\n\n const currBox = boxes[curr];\n const idxBox = boxes[idx];\n\n outputs.push(iou(currBox, idxBox, isIOU));\n }\n\n indicesSortedByScore = indicesSortedByScore.filter(\n (_, j) => outputs[j] <= iouThreshold,\n );\n }\n\n return pick;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function normalize(x: tf.Tensor4D, meanRgb: number[]): tf.Tensor4D {\n return tf.tidy(() => {\n const [r, g, b] = meanRgb;\n const avg_r = tf.fill([...x.shape.slice(0, 3), 1], r, 'float32');\n const avg_g = tf.fill([...x.shape.slice(0, 3), 1], g, 'float32');\n const avg_b = tf.fill([...x.shape.slice(0, 3), 1], b, 'float32');\n const avg_rgb = tf.concat([avg_r, avg_g, avg_b], 3);\n\n return tf.sub(x, avg_rgb);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\n/**\n * Pads the smaller dimension of an image tensor with zeros, such that width === height.\n *\n * @param imgTensor The image tensor.\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\n * both sides of the minor dimension oof the image.\n * @returns The padded tensor with width === height.\n */\nexport function padToSquare(imgTensor: tf.Tensor4D, isCenterImage = false): tf.Tensor4D {\n return tf.tidy(() => {\n const [height, width] = imgTensor.shape.slice(1);\n if (height === width) return imgTensor;\n const dimDiff = Math.abs(height - width);\n const paddingAmount = Math.round(dimDiff * (isCenterImage ? 0.5 : 1));\n const paddingAxis = height > width ? 2 : 1;\n const createPaddingTensor = (paddingAmountLocal: number): tf.Tensor => {\n const paddingTensorShape = imgTensor.shape.slice();\n paddingTensorShape[paddingAxis] = paddingAmountLocal;\n return tf.fill(paddingTensorShape, 0, 'float32');\n };\n const paddingTensorAppend = createPaddingTensor(paddingAmount);\n const remainingPaddingAmount = dimDiff - (paddingTensorAppend.shape[paddingAxis] as number);\n const paddingTensorPrepend = isCenterImage && remainingPaddingAmount ? createPaddingTensor(remainingPaddingAmount) : null;\n const tensorsToStack = [paddingTensorPrepend, imgTensor, paddingTensorAppend]\n .filter((t) => !!t)\n .map((t) => tf.cast(t as tf.Tensor4D, 'float32')) as tf.Tensor4D[];\n return tf.concat(tensorsToStack, paddingAxis);\n });\n}\n", "export function shuffleArray(inputArray: any[]) {\n const array = inputArray.slice();\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const x = array[i];\n array[i] = array[j];\n array[j] = x;\n }\n return array;\n}\n", "export * from './iou';\nexport * from './minBbox';\nexport * from './nonMaxSuppression';\nexport * from './normalize';\nexport * from './padToSquare';\nexport * from './shuffleArray';\n\nexport function sigmoid(x: number) {\n return 1 / (1 + Math.exp(-x));\n}\n\nexport function inverseSigmoid(x: number) {\n return Math.log(x / (1 - x));\n}\n", "import { Box } from './Box';\n\nexport interface IRect {\n x: number\n y: number\n width: number\n height: number\n}\n\nexport class Rect extends Box implements IRect {\n constructor(x: number, y: number, width: number, height: number, allowNegativeDimensions = false) {\n super({ x, y, width, height }, allowNegativeDimensions);\n }\n}\n", "import { minBbox } from '../ops/index';\nimport { getCenterPoint } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { Box } from './Box';\nimport { Dimensions, IDimensions } from './Dimensions';\nimport { FaceDetection } from './FaceDetection';\nimport { Point } from './Point';\nimport { IRect, Rect } from './Rect';\n\n// face alignment constants\nconst relX = 0.5;\nconst relY = 0.43;\nconst relScale = 0.45;\n\nexport interface IFaceLandmarks {\n positions: Point[]\n shift: Point\n}\n\nexport class FaceLandmarks implements IFaceLandmarks {\n protected _shift: Point;\n\n protected _positions: Point[];\n\n protected _imgDims: Dimensions;\n\n constructor(\n relativeFaceLandmarkPositions: Point[],\n imgDims: IDimensions,\n shift: Point = new Point(0, 0),\n ) {\n const { width, height } = imgDims;\n this._imgDims = new Dimensions(width, height);\n this._shift = shift;\n this._positions = relativeFaceLandmarkPositions.map(\n (pt) => pt.mul(new Point(width, height)).add(shift),\n );\n }\n\n public get shift(): Point { return new Point(this._shift.x, this._shift.y); }\n\n public get imageWidth(): number { return this._imgDims.width; }\n\n public get imageHeight(): number { return this._imgDims.height; }\n\n public get positions(): Point[] { return this._positions; }\n\n public get relativePositions(): Point[] {\n return this._positions.map(\n (pt) => pt.sub(this._shift).div(new Point(this.imageWidth, this.imageHeight)),\n );\n }\n\n public forSize(width: number, height: number): T {\n return new (this.constructor as any)(\n this.relativePositions,\n { width, height },\n );\n }\n\n public shiftBy(x: number, y: number): T {\n return new (this.constructor as any)(\n this.relativePositions,\n this._imgDims,\n new Point(x, y),\n );\n }\n\n public shiftByPoint(pt: Point): T {\n return this.shiftBy(pt.x, pt.y);\n }\n\n /**\n * Aligns the face landmarks after face detection from the relative positions of the faces\n * bounding box, or it's current shift. This function should be used to align the face images\n * after face detection has been performed, before they are passed to the face recognition net.\n * This will make the computed face descriptor more accurate.\n *\n * @param detection (optional) The bounding box of the face or the face detection result. If\n * no argument was passed the position of the face landmarks are assumed to be relative to\n * it's current shift.\n * @returns The bounding box of the aligned face.\n */\n public align(\n detection?: FaceDetection | IRect | IBoundingBox | null,\n options: { useDlibAlignment?: boolean, minBoxPadding?: number } = { },\n ): Box {\n if (detection) {\n const box = detection instanceof FaceDetection\n ? detection.box.floor()\n : new Box(detection);\n\n return this.shiftBy(box.x, box.y).align(null, options);\n }\n\n const { useDlibAlignment, minBoxPadding } = { useDlibAlignment: false, minBoxPadding: 0.2, ...options };\n\n if (useDlibAlignment) {\n return this.alignDlib();\n }\n\n return this.alignMinBbox(minBoxPadding);\n }\n\n private alignDlib(): Box {\n const centers = this.getRefPointsForAlignment();\n\n const [leftEyeCenter, rightEyeCenter, mouthCenter] = centers;\n const distToMouth = (pt: Point) => mouthCenter.sub(pt).magnitude();\n const eyeToMouthDist = (distToMouth(leftEyeCenter) + distToMouth(rightEyeCenter)) / 2;\n\n const size = Math.floor(eyeToMouthDist / relScale);\n\n const refPoint = getCenterPoint(centers);\n // TODO: pad in case rectangle is out of image bounds\n const x = Math.floor(Math.max(0, refPoint.x - (relX * size)));\n const y = Math.floor(Math.max(0, refPoint.y - (relY * size)));\n\n return new Rect(x, y, Math.min(size, this.imageWidth + x), Math.min(size, this.imageHeight + y));\n }\n\n private alignMinBbox(padding: number): Box {\n const box = minBbox(this.positions);\n return box.pad(box.width * padding, box.height * padding);\n }\n\n protected getRefPointsForAlignment(): Point[] {\n throw new Error('getRefPointsForAlignment not implemented by base class');\n }\n}\n", "import { getCenterPoint } from '../utils/index';\nimport { FaceLandmarks } from './FaceLandmarks';\nimport { Point } from './Point';\n\nexport class FaceLandmarks5 extends FaceLandmarks {\n protected override getRefPointsForAlignment(): Point[] {\n const pts = this.positions;\n return [\n pts[0],\n pts[1],\n getCenterPoint([pts[3], pts[4]]),\n ];\n }\n}\n", "import { getCenterPoint } from '../utils/index';\nimport { FaceLandmarks } from './FaceLandmarks';\nimport { Point } from './Point';\n\nexport class FaceLandmarks68 extends FaceLandmarks {\n public getJawOutline(): Point[] {\n return this.positions.slice(0, 17);\n }\n\n public getLeftEyeBrow(): Point[] {\n return this.positions.slice(17, 22);\n }\n\n public getRightEyeBrow(): Point[] {\n return this.positions.slice(22, 27);\n }\n\n public getNose(): Point[] {\n return this.positions.slice(27, 36);\n }\n\n public getLeftEye(): Point[] {\n return this.positions.slice(36, 42);\n }\n\n public getRightEye(): Point[] {\n return this.positions.slice(42, 48);\n }\n\n public getMouth(): Point[] {\n return this.positions.slice(48, 68);\n }\n\n protected override getRefPointsForAlignment(): Point[] {\n return [\n this.getLeftEye(),\n this.getRightEye(),\n this.getMouth(),\n ].map(getCenterPoint);\n }\n}\n", "import { round } from '../utils/index';\n\nexport interface IFaceMatch {\n label: string\n distance: number\n}\n\nexport class FaceMatch implements IFaceMatch {\n private _label: string;\n private _distance: number;\n\n constructor(label: string, distance: number) {\n this._label = label;\n this._distance = distance;\n }\n\n public get label(): string { return this._label; }\n\n public get distance(): number { return this._distance; }\n\n public toString(withDistance = true): string {\n return `${this.label}${withDistance ? ` (${round(this.distance)})` : ''}`;\n }\n}\n", "import { isValidNumber } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { Box } from './Box';\nimport { IRect } from './Rect';\n\nexport class LabeledBox extends Box {\n public static assertIsValidLabeledBox(box: any, callee: string) {\n Box.assertIsValidBox(box, callee);\n if (!isValidNumber(box.label)) {\n throw new Error(`${callee} - expected property label (${box.label}) to be a number`);\n }\n }\n\n private _label: number;\n\n constructor(box: IBoundingBox | IRect | any, label: number) {\n super(box);\n this._label = label;\n }\n\n public get label(): number { return this._label; }\n}\n", "export class LabeledFaceDescriptors {\n private _label: string;\n\n private _descriptors: Float32Array[];\n\n constructor(label: string, descriptors: Float32Array[]) {\n if (!(typeof label === 'string')) {\n throw new Error('LabeledFaceDescriptors - constructor expected label to be a string');\n }\n\n if (!Array.isArray(descriptors) || descriptors.some((desc) => !(desc instanceof Float32Array))) {\n throw new Error('LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array');\n }\n\n this._label = label;\n this._descriptors = descriptors;\n }\n\n public get label(): string { return this._label; }\n\n public get descriptors(): Float32Array[] { return this._descriptors; }\n\n public toJSON(): any {\n return {\n label: this.label,\n descriptors: this.descriptors.map((d) => Array.from(d)),\n };\n }\n\n public static fromJSON(json: any): LabeledFaceDescriptors {\n const descriptors = json.descriptors.map((d: any) => new Float32Array(d));\n return new LabeledFaceDescriptors(json.label, descriptors);\n }\n}\n", "import { isValidProbablitiy } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { LabeledBox } from './LabeledBox';\nimport { IRect } from './Rect';\n\nexport class PredictedBox extends LabeledBox {\n public static assertIsValidPredictedBox(box: any, callee: string) {\n LabeledBox.assertIsValidLabeledBox(box, callee);\n\n if (\n !isValidProbablitiy(box.score)\n || !isValidProbablitiy(box.classScore)\n ) {\n throw new Error(`${callee} - expected properties score (${box.score}) and (${box.classScore}) to be a number between [0, 1]`);\n }\n }\n\n private _score: number;\n\n private _classScore: number;\n\n constructor(box: IBoundingBox | IRect | any, label: number, score: number, classScore: number) {\n super(box, label);\n this._score = score;\n this._classScore = classScore;\n }\n\n public get score(): number { return this._score; }\n\n public get classScore(): number { return this._classScore; }\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\n\nexport type WithFaceDetection = TSource & {\n detection: FaceDetection\n}\n\nexport function isWithFaceDetection(obj: any): obj is WithFaceDetection<{}> {\n return obj.detection instanceof FaceDetection;\n}\n\nexport function extendWithFaceDetection(sourceObj: TSource, detection: FaceDetection): WithFaceDetection {\n const extension = { detection };\n return { ...sourceObj, ...extension };\n}\n", "import { Environment } from './types';\n\nexport function createBrowserEnv(): Environment {\n const fetch = window.fetch;\n if (!fetch) throw new Error('fetch - missing fetch implementation for browser environment');\n\n const readFile = () => {\n throw new Error('readFile - filesystem not available for browser environment');\n };\n\n return {\n Canvas: HTMLCanvasElement,\n CanvasRenderingContext2D,\n Image: HTMLImageElement,\n ImageData,\n Video: HTMLVideoElement,\n createCanvasElement: () => document.createElement('canvas'),\n createImageElement: () => document.createElement('img'),\n createVideoElement: () => document.createElement('video'),\n fetch,\n readFile,\n };\n}\n", "export function isNodejs(): boolean {\n return typeof global === 'object'\n && typeof process !== 'undefined'\n && process.versions != null\n && process.versions.node != null;\n}\n", "import { FileSystem } from './types';\nimport { isNodejs } from './isNodejs';\n\nexport function createFileSystem(fs?: any): FileSystem {\n let requireFsError = '';\n if (!fs && isNodejs()) {\n try {\n // eslint-disable-next-line global-require\n fs = require('fs');\n } catch (err) {\n requireFsError = (err as any).toString();\n }\n }\n\n const readFile = fs\n ? (filePath: string) => new Promise((resolve, reject) => { fs.readFile(filePath, (err: any, buffer) => (err ? reject(err) : resolve(buffer))); })\n : () => { throw new Error(`readFile - failed to require fs in nodejs environment with error: ${requireFsError}`); };\n return { readFile };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { createFileSystem } from './createFileSystem';\nimport { Environment } from './types';\n\nexport function createNodejsEnv(): Environment {\n // eslint-disable-next-line dot-notation\n const Canvas = global['Canvas'] || global.HTMLCanvasElement;\n const Image = global.Image || global.HTMLImageElement;\n // eslint-disable-next-line dot-notation\n const Video = global['Video'] || global.HTMLVideoElement;\n\n const createCanvasElement = () => {\n if (Canvas) return new Canvas();\n throw new Error('createCanvasElement - missing Canvas implementation for nodejs environment');\n };\n\n const createImageElement = () => {\n if (Image) return new Image();\n throw new Error('createImageElement - missing Image implementation for nodejs environment');\n };\n\n const createVideoElement = () => {\n if (Video) return new Video();\n throw new Error('createVideoElement - missing Video implementation for nodejs environment');\n };\n\n const fetch = global.fetch;\n // if (!fetch) throw new Error('fetch - missing fetch implementation for nodejs environment');\n\n const fileSystem = createFileSystem();\n\n return {\n Canvas: Canvas || class {},\n CanvasRenderingContext2D: global.CanvasRenderingContext2D || class {},\n Image: Image || class {},\n ImageData: global.ImageData || class {},\n Video: global.HTMLVideoElement || class {},\n createCanvasElement,\n createImageElement,\n createVideoElement,\n fetch,\n ...fileSystem,\n };\n}\n", "export function isBrowser(): boolean {\n return typeof window === 'object'\n && typeof document !== 'undefined'\n && typeof HTMLImageElement !== 'undefined'\n && typeof HTMLCanvasElement !== 'undefined'\n && typeof HTMLVideoElement !== 'undefined'\n && typeof ImageData !== 'undefined'\n && typeof CanvasRenderingContext2D !== 'undefined';\n}\n", "import { createBrowserEnv } from './createBrowserEnv';\nimport { createFileSystem } from './createFileSystem';\nimport { createNodejsEnv } from './createNodejsEnv';\nimport { isBrowser } from './isBrowser';\nimport { isNodejs } from './isNodejs';\nimport { Environment } from './types';\n\nlet environment: Environment | null;\n\nfunction getEnv(): Environment {\n if (!environment) {\n throw new Error('getEnv - environment is not defined, check isNodejs() and isBrowser()');\n }\n return environment;\n}\n\nfunction setEnv(env: Environment) {\n environment = env;\n}\n\nfunction initialize() {\n // check for isBrowser() first to prevent electron renderer process\n // to be initialized with wrong environment due to isNodejs() returning true\n if (isBrowser()) return setEnv(createBrowserEnv());\n if (isNodejs()) return setEnv(createNodejsEnv());\n return null;\n}\n\nfunction monkeyPatch(env: Partial) {\n if (!environment) {\n initialize();\n }\n\n if (!environment) {\n throw new Error('monkeyPatch - environment is not defined, check isNodejs() and isBrowser()');\n }\n\n const { Canvas = environment.Canvas, Image = environment.Image } = env;\n environment.Canvas = Canvas;\n environment.Image = Image;\n environment.createCanvasElement = env.createCanvasElement || (() => new Canvas());\n environment.createImageElement = env.createImageElement || (() => new Image());\n\n environment.ImageData = env.ImageData || environment.ImageData;\n environment.Video = env.Video || environment.Video;\n environment.fetch = env.fetch || environment.fetch;\n environment.readFile = env.readFile || environment.readFile;\n}\n\nexport const env = {\n getEnv,\n setEnv,\n initialize,\n createBrowserEnv,\n createFileSystem,\n createNodejsEnv,\n monkeyPatch,\n isBrowser,\n isNodejs,\n};\n\ninitialize();\n\nexport * from './types';\n", "import { env } from '../env/index';\n\nexport function resolveInput(arg: string | any) {\n if (!env.isNodejs() && typeof arg === 'string') {\n return document.getElementById(arg);\n }\n return arg;\n}\n", "import { env } from '../env/index';\nimport { resolveInput } from './resolveInput';\n\nexport function getContext2dOrThrow(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D): CanvasRenderingContext2D {\n const { Canvas, CanvasRenderingContext2D } = env.getEnv();\n\n if (canvasArg instanceof CanvasRenderingContext2D) {\n return canvasArg;\n }\n\n const canvas = resolveInput(canvasArg);\n\n if (!(canvas instanceof Canvas)) {\n throw new Error('resolveContext2d - expected canvas to be of instance of Canvas');\n }\n\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n throw new Error('resolveContext2d - canvas 2d context is null');\n }\n\n return ctx;\n}\n", "/* eslint-disable max-classes-per-file */\nimport { IDimensions, IPoint } from '../classes/index';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { resolveInput } from '../dom/resolveInput';\n\n// eslint-disable-next-line no-shadow\nexport enum AnchorPosition {\n // eslint-disable-next-line no-unused-vars\n TOP_LEFT = 'TOP_LEFT',\n // eslint-disable-next-line no-unused-vars\n TOP_RIGHT = 'TOP_RIGHT',\n // eslint-disable-next-line no-unused-vars\n BOTTOM_LEFT = 'BOTTOM_LEFT',\n // eslint-disable-next-line no-unused-vars\n BOTTOM_RIGHT = 'BOTTOM_RIGHT'\n}\n\nexport interface IDrawTextFieldOptions {\n anchorPosition?: AnchorPosition\n backgroundColor?: string\n fontColor?: string\n fontSize?: number\n fontStyle?: string\n padding?: number\n}\n\nexport class DrawTextFieldOptions implements IDrawTextFieldOptions {\n public anchorPosition: AnchorPosition;\n\n public backgroundColor: string;\n\n public fontColor: string;\n\n public fontSize: number;\n\n public fontStyle: string;\n\n public padding: number;\n\n constructor(options: IDrawTextFieldOptions = {}) {\n const {\n anchorPosition, backgroundColor, fontColor, fontSize, fontStyle, padding,\n } = options;\n this.anchorPosition = anchorPosition || AnchorPosition.TOP_LEFT;\n this.backgroundColor = backgroundColor || 'rgba(0, 0, 0, 0.5)';\n this.fontColor = fontColor || 'rgba(255, 255, 255, 1)';\n this.fontSize = fontSize || 14;\n this.fontStyle = fontStyle || 'Georgia';\n this.padding = padding || 4;\n }\n}\n\nexport class DrawTextField {\n public text: string[];\n\n public anchor : IPoint;\n\n public options: DrawTextFieldOptions;\n\n constructor(\n text: string | string[] | DrawTextField,\n anchor: IPoint,\n options: IDrawTextFieldOptions = {},\n ) {\n // eslint-disable-next-line no-nested-ternary\n this.text = typeof text === 'string'\n ? [text]\n : (text instanceof DrawTextField ? text.text : text);\n this.anchor = anchor;\n this.options = new DrawTextFieldOptions(options);\n }\n\n measureWidth(ctx: CanvasRenderingContext2D): number {\n const { padding } = this.options;\n return this.text.map((l) => ctx.measureText(l).width).reduce((w0, w1) => (w0 < w1 ? w1 : w0), 0) + (2 * padding);\n }\n\n measureHeight(): number {\n const { fontSize, padding } = this.options;\n return this.text.length * fontSize + (2 * padding);\n }\n\n getUpperLeft(ctx: CanvasRenderingContext2D, canvasDims?: IDimensions): IPoint {\n const { anchorPosition } = this.options;\n const isShiftLeft = anchorPosition === AnchorPosition.BOTTOM_RIGHT || anchorPosition === AnchorPosition.TOP_RIGHT;\n const isShiftTop = anchorPosition === AnchorPosition.BOTTOM_LEFT || anchorPosition === AnchorPosition.BOTTOM_RIGHT;\n\n const textFieldWidth = this.measureWidth(ctx);\n const textFieldHeight = this.measureHeight();\n const x = (isShiftLeft ? this.anchor.x - textFieldWidth : this.anchor.x);\n const y = isShiftTop ? this.anchor.y - textFieldHeight : this.anchor.y;\n\n // adjust anchor if text box exceeds canvas borders\n if (canvasDims) {\n const { width, height } = canvasDims;\n const newX = Math.max(Math.min(x, width - textFieldWidth), 0);\n const newY = Math.max(Math.min(y, height - textFieldHeight), 0);\n return { x: newX, y: newY };\n }\n return { x, y };\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const canvas = resolveInput(canvasArg);\n const ctx = getContext2dOrThrow(canvas);\n\n const {\n backgroundColor, fontColor, fontSize, fontStyle, padding,\n } = this.options;\n\n ctx.font = `${fontSize}px ${fontStyle}`;\n const maxTextWidth = this.measureWidth(ctx);\n const textHeight = this.measureHeight();\n\n ctx.fillStyle = backgroundColor;\n const upperLeft = this.getUpperLeft(ctx, canvas);\n ctx.fillRect(upperLeft.x, upperLeft.y, maxTextWidth, textHeight);\n\n ctx.fillStyle = fontColor;\n this.text.forEach((textLine, i) => {\n const x = padding + upperLeft.x;\n const y = padding + upperLeft.y + ((i + 1) * fontSize);\n ctx.fillText(textLine, x, y);\n });\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { Box, IBoundingBox, IRect } from '../classes/index';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { AnchorPosition, DrawTextField, DrawTextFieldOptions, IDrawTextFieldOptions } from './DrawTextField';\n\nexport interface IDrawBoxOptions {\n boxColor?: string\n lineWidth?: number\n drawLabelOptions?: IDrawTextFieldOptions\n label?: string\n}\n\nexport class DrawBoxOptions {\n public boxColor: string;\n\n public lineWidth: number;\n\n public drawLabelOptions: DrawTextFieldOptions;\n\n public label?: string;\n\n constructor(options: IDrawBoxOptions = {}) {\n const {\n boxColor, lineWidth, label, drawLabelOptions,\n } = options;\n this.boxColor = boxColor || 'rgba(0, 0, 255, 1)';\n this.lineWidth = lineWidth || 2;\n this.label = label;\n\n const defaultDrawLabelOptions = {\n anchorPosition: AnchorPosition.BOTTOM_LEFT,\n backgroundColor: this.boxColor,\n };\n this.drawLabelOptions = new DrawTextFieldOptions({ ...defaultDrawLabelOptions, ...drawLabelOptions });\n }\n}\n\nexport class DrawBox {\n public box: Box;\n\n public options: DrawBoxOptions;\n\n constructor(\n box: IBoundingBox | IRect,\n options: IDrawBoxOptions = {},\n ) {\n this.box = new Box(box);\n this.options = new DrawBoxOptions(options);\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const ctx = getContext2dOrThrow(canvasArg);\n\n const { boxColor, lineWidth } = this.options;\n\n const {\n x, y, width, height,\n } = this.box;\n ctx.strokeStyle = boxColor;\n ctx.lineWidth = lineWidth;\n ctx.strokeRect(x, y, width, height);\n\n const { label } = this.options;\n if (label) {\n new DrawTextField([label], { x: x - (lineWidth / 2), y }, this.options.drawLabelOptions).draw(canvasArg);\n }\n }\n}\n", "import { Box, IBoundingBox, IRect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { isWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\nimport { round } from '../utils/index';\nimport { DrawBox } from './DrawBox';\n\nexport type TDrawDetectionsInput = IRect | IBoundingBox | FaceDetection | WithFaceDetection<{}>\n\nexport function drawDetections(\n canvasArg: string | HTMLCanvasElement,\n detections: TDrawDetectionsInput | Array,\n) {\n const detectionsArray = Array.isArray(detections) ? detections : [detections];\n\n detectionsArray.forEach((det) => {\n // eslint-disable-next-line no-nested-ternary\n const score = det instanceof FaceDetection\n ? det.score\n : (isWithFaceDetection(det) ? det.detection.score : undefined);\n\n // eslint-disable-next-line no-nested-ternary\n const box = det instanceof FaceDetection\n ? det.box\n : (isWithFaceDetection(det) ? det.detection.box : new Box(det));\n\n const label = score ? `${round(score)}` : undefined;\n new DrawBox(box, { label }).draw(canvasArg);\n });\n}\n", "import { env } from '../env/index';\n\nexport function isMediaLoaded(media: HTMLImageElement | HTMLVideoElement) : boolean {\n const { Image, Video } = env.getEnv();\n\n return (media instanceof Image && media.complete)\n || (media instanceof Video && media.readyState >= 3);\n}\n", "import { env } from '../env/index';\nimport { isMediaLoaded } from './isMediaLoaded';\n\nexport function awaitMediaLoaded(media: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement) {\n // eslint-disable-next-line consistent-return\n return new Promise((resolve, reject) => {\n if (media instanceof env.getEnv().Canvas || isMediaLoaded(media)) resolve(null);\n\n function onError(e: Event) {\n if (!e.currentTarget) return;\n // eslint-disable-next-line no-use-before-define\n e.currentTarget.removeEventListener('load', onLoad);\n e.currentTarget.removeEventListener('error', onError);\n reject(e);\n }\n\n function onLoad(e: Event) {\n if (!e.currentTarget) return;\n e.currentTarget.removeEventListener('load', onLoad);\n e.currentTarget.removeEventListener('error', onError);\n resolve(e);\n }\n\n media.addEventListener('load', onLoad);\n media.addEventListener('error', onError);\n });\n}\n", "import { env } from '../env/index';\n\nexport function bufferToImage(buf: Blob): Promise {\n return new Promise((resolve, reject) => {\n if (!(buf instanceof Blob)) reject(new Error('bufferToImage - expected buf to be of type: Blob'));\n const reader = new FileReader();\n reader.onload = () => {\n if (typeof reader.result !== 'string') reject(new Error('bufferToImage - expected reader.result to be a string, in onload'));\n const img = env.getEnv().createImageElement();\n img.onload = () => resolve(img);\n img.onerror = reject;\n img.src = reader.result as string;\n };\n reader.onerror = reject;\n reader.readAsDataURL(buf);\n });\n}\n", "import { Dimensions, IDimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\n\nexport function getMediaDimensions(input: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | IDimensions): Dimensions {\n const { Image, Video } = env.getEnv();\n\n if (input instanceof Image) {\n return new Dimensions(input.naturalWidth, input.naturalHeight);\n }\n if (input instanceof Video) {\n return new Dimensions(input.videoWidth, input.videoHeight);\n }\n return new Dimensions(input.width, input.height);\n}\n", "import { IDimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { getMediaDimensions } from './getMediaDimensions';\nimport { isMediaLoaded } from './isMediaLoaded';\n\nexport function createCanvas({ width, height }: IDimensions): HTMLCanvasElement {\n const { createCanvasElement } = env.getEnv();\n const canvas = createCanvasElement();\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nexport function createCanvasFromMedia(media: HTMLImageElement | HTMLVideoElement | ImageData, dims?: IDimensions): HTMLCanvasElement {\n const { ImageData } = env.getEnv();\n\n if (!(media instanceof ImageData) && !isMediaLoaded(media)) {\n throw new Error('createCanvasFromMedia - media has not finished loading yet');\n }\n\n const { width, height } = dims || getMediaDimensions(media);\n const canvas = createCanvas({ width, height });\n\n if (media instanceof ImageData) {\n getContext2dOrThrow(canvas).putImageData(media, 0, 0);\n } else {\n getContext2dOrThrow(canvas).drawImage(media, 0, 0, width, height);\n }\n return canvas;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { env } from '../env/index';\nimport { isTensor4D } from '../utils/index';\n\nexport async function imageTensorToCanvas(\n imgTensor: tf.Tensor,\n canvas?: HTMLCanvasElement,\n): Promise {\n const targetCanvas = canvas || env.getEnv().createCanvasElement();\n\n const [height, width, numChannels] = imgTensor.shape.slice(isTensor4D(imgTensor) ? 1 : 0);\n const imgTensor3D = tf.tidy(() => imgTensor.as3D(height, width, numChannels).toInt());\n await tf['browser'].toPixels(imgTensor3D, targetCanvas);\n\n imgTensor3D.dispose();\n\n return targetCanvas;\n}\n", "import { env } from '../env/index';\n\nexport function isMediaElement(input: any) {\n const { Image, Canvas, Video } = env.getEnv();\n\n return input instanceof Image\n || input instanceof Canvas\n || input instanceof Video;\n}\n", "import { env } from '../env/index';\nimport { createCanvas, createCanvasFromMedia } from './createCanvas';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { getMediaDimensions } from './getMediaDimensions';\n\nexport function imageToSquare(input: HTMLImageElement | HTMLCanvasElement, inputSize: number, centerImage = false) {\n const { Image, Canvas } = env.getEnv();\n\n if (!(input instanceof Image || input instanceof Canvas)) {\n throw new Error('imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement');\n }\n\n if (inputSize <= 0) return createCanvas({ width: 1, height: 1 });\n const dims = getMediaDimensions(input);\n const scale = inputSize / Math.max(dims.height, dims.width);\n const width = scale * dims.width;\n const height = scale * dims.height;\n\n const targetCanvas = createCanvas({ width: inputSize, height: inputSize });\n const inputCanvas = input instanceof Canvas ? input : createCanvasFromMedia(input);\n\n const offset = Math.abs(width - height) / 2;\n const dx = centerImage && width < height ? offset : 0;\n const dy = centerImage && height < width ? offset : 0;\n if (inputCanvas.width > 0 && inputCanvas.height > 0) getContext2dOrThrow(targetCanvas).drawImage(inputCanvas, dx, dy, width, height);\n\n return targetCanvas;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Dimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\nimport { padToSquare } from '../ops/padToSquare';\nimport { computeReshapedDimensions, isTensor3D, isTensor4D, range } from '../utils/index';\nimport { createCanvasFromMedia } from './createCanvas';\nimport { imageToSquare } from './imageToSquare';\nimport { TResolvedNetInput } from './types';\n\nexport class NetInput {\n private _imageTensors: Array = [];\n\n private _canvases: HTMLCanvasElement[] = [];\n\n private _batchSize: number;\n\n private _treatAsBatchInput = false;\n\n private _inputDimensions: number[][] = [];\n\n private _inputSize = 0;\n\n constructor(inputs: Array, treatAsBatchInput = false) {\n if (!Array.isArray(inputs)) {\n throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${inputs}`);\n }\n\n this._treatAsBatchInput = treatAsBatchInput;\n this._batchSize = inputs.length;\n\n inputs.forEach((input, idx) => {\n if (isTensor3D(input)) {\n this._imageTensors[idx] = input;\n this._inputDimensions[idx] = input.shape;\n return;\n }\n\n if (isTensor4D(input)) {\n const batchSize = (input as any).shape[0];\n if (batchSize !== 1) {\n throw new Error(`NetInput - tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n\n this._imageTensors[idx] = input;\n this._inputDimensions[idx] = (input as any).shape.slice(1);\n return;\n }\n\n // @ts-ignore\n const canvas = (input as any) instanceof env.getEnv().Canvas ? input : createCanvasFromMedia(input);\n this._canvases[idx] = canvas as HTMLCanvasElement;\n this._inputDimensions[idx] = [canvas.height, canvas.width, 3];\n });\n }\n\n public get imageTensors(): Array {\n return this._imageTensors;\n }\n\n public get canvases(): HTMLCanvasElement[] {\n return this._canvases;\n }\n\n public get isBatchInput(): boolean {\n return this.batchSize > 1 || this._treatAsBatchInput;\n }\n\n public get batchSize(): number {\n return this._batchSize;\n }\n\n public get inputDimensions(): number[][] {\n return this._inputDimensions;\n }\n\n public get inputSize(): number | undefined {\n return this._inputSize;\n }\n\n public get reshapedInputDimensions(): Dimensions[] {\n return range(this.batchSize, 0, 1).map(\n (_, batchIdx) => this.getReshapedInputDimensions(batchIdx),\n );\n }\n\n public getInput(batchIdx: number): tf.Tensor3D | tf.Tensor4D | HTMLCanvasElement {\n return this.canvases[batchIdx] || this.imageTensors[batchIdx];\n }\n\n public getInputDimensions(batchIdx: number): number[] {\n return this._inputDimensions[batchIdx];\n }\n\n public getInputHeight(batchIdx: number): number {\n return this._inputDimensions[batchIdx][0];\n }\n\n public getInputWidth(batchIdx: number): number {\n return this._inputDimensions[batchIdx][1];\n }\n\n public getReshapedInputDimensions(batchIdx: number): Dimensions {\n if (typeof this.inputSize !== 'number') {\n throw new Error('getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet');\n }\n\n const width = this.getInputWidth(batchIdx);\n const height = this.getInputHeight(batchIdx);\n return computeReshapedDimensions({ width, height }, this.inputSize);\n }\n\n /**\n * Create a batch tensor from all input canvases and tensors\n * with size [batchSize, inputSize, inputSize, 3].\n *\n * @param inputSize Height and width of the tensor.\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\n * both sides of the minor dimension oof the image.\n * @returns The batch tensor.\n */\n public toBatchTensor(inputSize: number, isCenterInputs = true): tf.Tensor4D {\n this._inputSize = inputSize;\n\n return tf.tidy(() => {\n const inputTensors = range(this.batchSize, 0, 1).map((batchIdx) => {\n const input = this.getInput(batchIdx);\n\n if (input instanceof tf.Tensor) {\n let imgTensor = isTensor4D(input) ? input : tf.expandDims(input);\n imgTensor = padToSquare(imgTensor as tf.Tensor4D, isCenterInputs);\n\n if (imgTensor.shape[1] !== inputSize || imgTensor.shape[2] !== inputSize) {\n imgTensor = tf['image'].resizeBilinear(imgTensor as tf.Tensor4D, [inputSize, inputSize], false, false);\n }\n\n return imgTensor.as3D(inputSize, inputSize, 3);\n }\n\n if (input instanceof env.getEnv().Canvas) {\n return tf['browser'].fromPixels(imageToSquare(input, inputSize, isCenterInputs));\n }\n\n throw new Error(`toBatchTensor - at batchIdx ${batchIdx}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${input}`);\n });\n\n const batchTensor = tf.stack(inputTensors.map((t) => tf.cast(t, 'float32'))).as4D(this.batchSize, inputSize, inputSize, 3);\n // const batchTensor = tf.stack(inputTensors.map((t) => tf.cast(t, 'float32'))) as tf.Tensor4D;\n\n return batchTensor;\n });\n }\n}\n", "import { isTensor3D, isTensor4D } from '../utils/index';\nimport { awaitMediaLoaded } from './awaitMediaLoaded';\nimport { isMediaElement } from './isMediaElement';\nimport { NetInput } from './NetInput';\nimport { resolveInput } from './resolveInput';\nimport { TNetInput } from './types';\n\n/**\n * Validates the input to make sure, they are valid net inputs and awaits all media elements\n * to be finished loading.\n *\n * @param input The input, which can be a media element or an array of different media elements.\n * @returns A NetInput instance, which can be passed into one of the neural networks.\n */\nexport async function toNetInput(inputs: TNetInput): Promise {\n if (inputs instanceof NetInput) return inputs;\n const inputArgArray = Array.isArray(inputs) ? inputs : [inputs];\n if (!inputArgArray.length) throw new Error('toNetInput - empty array passed as input');\n const getIdxHint = (idx: number) => (Array.isArray(inputs) ? ` at input index ${idx}:` : '');\n const inputArray = inputArgArray.map(resolveInput);\n inputArray.forEach((input, i) => {\n if (!isMediaElement(input) && !isTensor3D(input) && !isTensor4D(input)) {\n if (typeof inputArgArray[i] === 'string') throw new Error(`toNetInput -${getIdxHint(i)} string passed, but could not resolve HTMLElement for element id ${inputArgArray[i]}`);\n throw new Error(`toNetInput -${getIdxHint(i)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);\n }\n if (isTensor4D(input)) {\n // if tf.Tensor4D is passed in the input array, the batch size has to be 1\n const batchSize = input.shape[0];\n if (batchSize !== 1) throw new Error(`toNetInput -${getIdxHint(i)} tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n });\n // wait for all media elements being loaded\n await Promise.all(inputArray.map((input) => isMediaElement(input) && awaitMediaLoaded(input)));\n return new NetInput(inputArray, Array.isArray(inputs));\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\nimport { Rect } from '../classes/Rect';\nimport { env } from '../env/index';\nimport { createCanvas } from './createCanvas';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { imageTensorToCanvas } from './imageTensorToCanvas';\nimport { toNetInput } from './toNetInput';\nimport { TNetInput } from './types';\n\n/**\n * Extracts the image regions containing the detected faces.\n *\n * @param input The image that face detection has been performed on.\n * @param detections The face detection results or face bounding boxes for that image.\n * @returns The Canvases of the corresponding image region for each detected face.\n */\nexport async function extractFaces(input: TNetInput, detections: Array): Promise {\n const { Canvas } = env.getEnv();\n let canvas = input as HTMLCanvasElement;\n if (!(input instanceof Canvas)) {\n const netInput = await toNetInput(input);\n if (netInput.batchSize > 1) throw new Error('extractFaces - batchSize > 1 not supported');\n const tensorOrCanvas = netInput.getInput(0);\n canvas = tensorOrCanvas instanceof Canvas ? tensorOrCanvas : await imageTensorToCanvas(tensorOrCanvas);\n }\n const ctx = getContext2dOrThrow(canvas);\n const boxes = detections\n .map((det) => (det instanceof FaceDetection ? det.forSize(canvas.width, canvas.height).box.floor() : det))\n .map((box) => box.clipAtImageBorders(canvas.width, canvas.height));\n return boxes.map(({ x, y, width, height }) => {\n const faceImg = createCanvas({ width, height });\n if (width > 0 && height > 0) getContext2dOrThrow(faceImg).putImageData(ctx.getImageData(x, y, width, height), 0, 0);\n return faceImg;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Rect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { isTensor3D, isTensor4D } from '../utils/index';\n\n/**\n * Extracts the tensors of the image regions containing the detected faces.\n * Useful if you want to compute the face descriptors for the face images.\n * Using this method is faster then extracting a canvas for each face and\n * converting them to tensors individually.\n *\n * @param imageTensor The image tensor that face detection has been performed on.\n * @param detections The face detection results or face bounding boxes for that image.\n * @returns Tensors of the corresponding image region for each detected face.\n */\nexport async function extractFaceTensors(imageTensor: tf.Tensor3D | tf.Tensor4D, detections: Array): Promise {\n if (!isTensor3D(imageTensor) && !isTensor4D(imageTensor)) {\n throw new Error('extractFaceTensors - expected image tensor to be 3D or 4D');\n }\n\n if (isTensor4D(imageTensor) && imageTensor.shape[0] > 1) {\n throw new Error('extractFaceTensors - batchSize > 1 not supported');\n }\n\n return tf.tidy(() => {\n const [imgHeight, imgWidth, numChannels] = imageTensor.shape.slice(isTensor4D(imageTensor) ? 1 : 0);\n const boxes = detections.map((det) => (det instanceof FaceDetection ? det.forSize(imgWidth, imgHeight).box : det))\n .map((box) => box.clipAtImageBorders(imgWidth, imgHeight));\n const faceTensors = boxes\n .filter((box) => box.width > 0 && box.height > 0)\n .map(({ x, y, width, height }) => tf.slice3d(imageTensor.as3D(imgHeight, imgWidth, numChannels), [y, x, 0], [height, width, numChannels]));\n return faceTensors;\n });\n}\n", "import { env } from '../env/index';\n\nexport async function fetchOrThrow(\n url: string,\n // eslint-disable-next-line no-undef\n init?: RequestInit,\n): Promise {\n const { fetch } = env.getEnv();\n const res = await fetch(url, init);\n if (!(res.status < 400)) {\n throw new Error(`failed to fetch: (${res.status}) ${res.statusText}, from url: ${res.url}`);\n }\n return res;\n}\n", "import { bufferToImage } from './bufferToImage';\nimport { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchImage(uri: string): Promise {\n const res = await fetchOrThrow(uri);\n const blob = await (res).blob();\n\n if (!blob.type.startsWith('image/')) {\n throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${blob.type}, for url: ${res.url}`);\n }\n return bufferToImage(blob);\n}\n", "import { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchJson(uri: string): Promise {\n return (await fetchOrThrow(uri)).json();\n}\n", "import { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchNetWeights(uri: string): Promise {\n return new Float32Array(await (await fetchOrThrow(uri)).arrayBuffer());\n}\n", "import { env } from '../env/index';\n\nexport function bufferToVideo(buf: Blob): Promise {\n return new Promise((resolve, reject) => {\n if (!(buf instanceof Blob)) reject(new Error('bufferToVideo - expected buf to be of type: Blob'));\n\n const video = env.getEnv().createVideoElement();\n video.oncanplay = () => resolve(video);\n video.onerror = reject;\n video.playsInline = true;\n video.muted = true;\n video.src = URL.createObjectURL(buf);\n video.play();\n });\n}\n", "import { bufferToVideo } from './bufferToVideo';\nimport { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchVideo(uri: string): Promise {\n const res = await fetchOrThrow(uri);\n const blob = await (res).blob();\n\n if (!blob.type.startsWith('video/')) {\n throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${blob.type}, for url: ${res.url}`);\n }\n return bufferToVideo(blob);\n}\n", "export function getModelUris(uri: string | undefined, defaultModelName: string) {\n const defaultManifestFilename = `${defaultModelName}-weights_manifest.json`;\n\n if (!uri) {\n return {\n modelBaseUri: '',\n manifestUri: defaultManifestFilename,\n };\n }\n\n if (uri === '/') {\n return {\n modelBaseUri: '/',\n manifestUri: `/${defaultManifestFilename}`,\n };\n }\n // eslint-disable-next-line no-nested-ternary\n const protocol = uri.startsWith('http://') ? 'http://' : uri.startsWith('https://') ? 'https://' : '';\n uri = uri.replace(protocol, '');\n\n const parts = uri.split('/').filter((s) => s);\n\n const manifestFile = uri.endsWith('.json')\n ? parts[parts.length - 1]\n : defaultManifestFilename;\n\n let modelBaseUri = protocol + (uri.endsWith('.json') ? parts.slice(0, parts.length - 1) : parts).join('/');\n modelBaseUri = uri.startsWith('/') ? `/${modelBaseUri}` : modelBaseUri;\n\n return {\n modelBaseUri,\n manifestUri: modelBaseUri === '/' ? `/${manifestFile}` : `${modelBaseUri}/${manifestFile}`,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { getModelUris } from '../common/getModelUris';\nimport { fetchJson } from './fetchJson';\n\nexport async function loadWeightMap(\n uri: string | undefined,\n defaultModelName: string,\n): Promise {\n const { manifestUri, modelBaseUri } = getModelUris(uri, defaultModelName);\n // @ts-ignore\n const manifest = await fetchJson(manifestUri);\n // if (manifest['weightsManifest']) manifest = manifest['weightsManifest'];\n return tf['io'].loadWeights(manifest, modelBaseUri);\n}\n", "import { IDimensions } from '../classes/index';\nimport { getMediaDimensions } from './getMediaDimensions';\n\nexport function matchDimensions(input: IDimensions, reference: IDimensions, useMediaDimensions = false) {\n const { width, height } = useMediaDimensions\n ? getMediaDimensions(reference)\n : reference;\n input.width = width;\n input.height = height;\n return { width, height };\n}\n", "import * as tf from '../dist/tfjs.esm';\n\nimport { ParamMapping } from './common/index';\nimport { getModelUris } from './common/getModelUris';\nimport { loadWeightMap } from './dom/index';\nimport { env } from './env/index';\n\nexport abstract class NeuralNetwork {\n constructor(name: string) {\n this._name = name;\n }\n\n protected _params: TNetParams | undefined = undefined;\n\n protected _paramMappings: ParamMapping[] = [];\n\n public _name: any;\n\n public get params(): TNetParams | undefined { return this._params; }\n\n public get paramMappings(): ParamMapping[] { return this._paramMappings; }\n\n public get isLoaded(): boolean { return !!this.params; }\n\n public getParamFromPath(paramPath: string): tf.Tensor {\n const { obj, objProp } = this.traversePropertyPath(paramPath);\n return obj[objProp];\n }\n\n public reassignParamFromPath(paramPath: string, tensor: tf.Tensor) {\n const { obj, objProp } = this.traversePropertyPath(paramPath);\n obj[objProp].dispose();\n obj[objProp] = tensor;\n }\n\n public getParamList() {\n return this._paramMappings.map(({ paramPath }) => ({\n path: paramPath,\n tensor: this.getParamFromPath(paramPath),\n }));\n }\n\n public getTrainableParams() {\n return this.getParamList().filter((param) => param.tensor instanceof tf.Variable);\n }\n\n public getFrozenParams() {\n return this.getParamList().filter((param) => !(param.tensor instanceof tf.Variable));\n }\n\n public variable() {\n this.getFrozenParams().forEach(({ path, tensor }) => {\n this.reassignParamFromPath(path, tensor.variable());\n });\n }\n\n public freeze() {\n this.getTrainableParams().forEach(({ path, tensor: variable }) => {\n const tensor = tf.tensor(variable.dataSync());\n variable.dispose();\n this.reassignParamFromPath(path, tensor);\n });\n }\n\n public dispose(throwOnRedispose = true) {\n this.getParamList().forEach((param) => {\n if (throwOnRedispose && param.tensor.isDisposed) {\n throw new Error(`param tensor has already been disposed for path ${param.path}`);\n }\n param.tensor.dispose();\n });\n this._params = undefined;\n }\n\n public serializeParams(): Float32Array {\n return new Float32Array(\n this.getParamList()\n .map(({ tensor }) => Array.from(tensor.dataSync()) as number[])\n .reduce((flat, arr) => flat.concat(arr)),\n );\n }\n\n public async load(weightsOrUrl: Float32Array | string | undefined): Promise {\n if (weightsOrUrl instanceof Float32Array) {\n this.extractWeights(weightsOrUrl);\n return;\n }\n await this.loadFromUri(weightsOrUrl);\n }\n\n public async loadFromUri(uri: string | undefined) {\n if (uri && typeof uri !== 'string') {\n throw new Error(`${this._name}.loadFromUri - expected model uri`);\n }\n const weightMap = await loadWeightMap(uri, this.getDefaultModelName());\n this.loadFromWeightMap(weightMap);\n }\n\n public async loadFromDisk(filePath: string | undefined) {\n if (filePath && typeof filePath !== 'string') {\n throw new Error(`${this._name}.loadFromDisk - expected model file path`);\n }\n const { readFile } = env.getEnv();\n const { manifestUri, modelBaseUri } = getModelUris(filePath, this.getDefaultModelName());\n const fetchWeightsFromDisk = (filePaths: string[]) => Promise.all(filePaths.map((fp) => readFile(fp).then((buf) => buf.buffer)));\n const loadWeights = tf['io'].weightsLoaderFactory(fetchWeightsFromDisk);\n const manifest = JSON.parse((await readFile(manifestUri)).toString());\n const weightMap = await loadWeights(manifest, modelBaseUri);\n this.loadFromWeightMap(weightMap);\n }\n\n public loadFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { paramMappings, params } = this.extractParamsFromWeightMap(weightMap);\n this._paramMappings = paramMappings;\n this._params = params;\n }\n\n public extractWeights(weights: Float32Array) {\n const { paramMappings, params } = this.extractParams(weights);\n this._paramMappings = paramMappings;\n this._params = params;\n }\n\n private traversePropertyPath(paramPath: string) {\n if (!this.params) {\n throw new Error('traversePropertyPath - model has no loaded params');\n }\n\n const result = paramPath.split('/').reduce((res: { nextObj: any, obj?: any, objProp?: string }, objProp) => {\n // eslint-disable-next-line no-prototype-builtins\n if (!res.nextObj.hasOwnProperty(objProp)) {\n throw new Error(`traversePropertyPath - object does not have property ${objProp}, for path ${paramPath}`);\n }\n return { obj: res.nextObj, objProp, nextObj: res.nextObj[objProp] };\n }, { nextObj: this.params });\n\n const { obj, objProp } = result;\n if (!obj || !objProp || !(obj[objProp] instanceof tf.Tensor)) {\n throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${paramPath}`);\n }\n\n return { obj, objProp };\n }\n\n protected abstract getDefaultModelName(): string\n\n // eslint-disable-next-line no-unused-vars\n protected abstract extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TNetParams, paramMappings: ParamMapping[] }\n\n // eslint-disable-next-line no-unused-vars\n protected abstract extractParams(weights: Float32Array): { params: TNetParams, paramMappings: ParamMapping[] }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { SeparableConvParams } from './types';\n\nexport function depthwiseSeparableConv(\n x: tf.Tensor4D,\n params: SeparableConvParams,\n stride: [number, number],\n): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.separableConv2d(x, params.depthwise_filter, params.pointwise_filter, stride, 'same');\n out = tf.add(out, params.bias);\n return out;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, SeparableConvParams } from '../common/index';\nimport { depthwiseSeparableConv } from '../common/depthwiseSeparableConv';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function denseBlock3(\n x: tf.Tensor4D,\n denseBlockParams: DenseBlock3Params,\n isFirstLayer = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out1 = tf.relu(\n isFirstLayer\n ? tf.add(\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, [2, 2], 'same'),\n denseBlockParams.conv0.bias,\n )\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, [2, 2]),\n ) as tf.Tensor4D;\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);\n\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D;\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);\n\n return tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D;\n });\n}\n\nexport function denseBlock4(\n x: tf.Tensor4D,\n denseBlockParams: DenseBlock4Params,\n isFirstLayer = false,\n isScaleDown = true,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out1 = tf.relu(\n isFirstLayer\n ? tf.add(\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, isScaleDown ? [2, 2] : [1, 1], 'same'),\n denseBlockParams.conv0.bias,\n )\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, isScaleDown ? [2, 2] : [1, 1]),\n ) as tf.Tensor4D;\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);\n\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D;\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);\n\n const in4 = tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D;\n const out4 = depthwiseSeparableConv(in4, denseBlockParams.conv3, [1, 1]);\n\n return tf.relu(tf.add(out1, tf.add(out2, tf.add(out3, out4)))) as tf.Tensor4D;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from './types';\n\nexport function convLayer(\n x: tf.Tensor4D,\n params: ConvParams,\n padding: 'valid' | 'same' = 'same',\n withRelu = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out = tf.add(\n tf.conv2d(x, params.filters, [1, 1], padding),\n params.bias,\n ) as tf.Tensor4D;\n\n return withRelu ? tf.relu(out) : out;\n });\n}\n", "import { ParamMapping } from './types';\n\nexport function disposeUnusedWeightTensors(weightMap: any, paramMappings: ParamMapping[]) {\n Object.keys(weightMap).forEach((path) => {\n if (!paramMappings.some((pm) => pm.originalPath === path)) {\n weightMap[path].dispose();\n }\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, ExtractWeightsFunction, ParamMapping } from './types';\n\nexport function extractConvParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvParams => {\n const filters = tf.tensor4d(\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\n [filterSize, filterSize, channelsIn, channelsOut],\n );\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return { filters, bias };\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, FCParams, ParamMapping } from './types';\n\nexport function extractFCParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (\n channelsIn: number,\n channelsOut: number,\n mappedPrefix: string,\n ): FCParams => {\n const fc_weights = tf.tensor2d(extractWeights(channelsIn * channelsOut), [channelsIn, channelsOut]);\n const fc_bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/weights` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return {\n weights: fc_weights,\n bias: fc_bias,\n };\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\n// eslint-disable-next-line no-unused-vars\nexport type ExtractWeightsFunction = (numWeights: number) => Float32Array\n\nexport type ParamMapping = {\n originalPath?: string\n paramPath: string\n}\n\nexport type ConvParams = {\n filters: tf.Tensor4D\n bias: tf.Tensor1D\n}\n\nexport type FCParams = {\n weights: tf.Tensor2D\n bias: tf.Tensor1D\n}\n\nexport class SeparableConvParams {\n // eslint-disable-next-line no-useless-constructor\n constructor(\n // eslint-disable-next-line no-unused-vars\n public depthwise_filter: tf.Tensor4D,\n // eslint-disable-next-line no-unused-vars\n public pointwise_filter: tf.Tensor4D,\n // eslint-disable-next-line no-unused-vars\n public bias: tf.Tensor1D,\n // eslint-disable-next-line no-empty-function\n ) {}\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, ParamMapping, SeparableConvParams } from './types';\n\nexport function extractSeparableConvParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (channelsIn: number, channelsOut: number, mappedPrefix: string): SeparableConvParams => {\n const depthwise_filter = tf.tensor4d(extractWeights(3 * 3 * channelsIn), [3, 3, channelsIn, 1]);\n const pointwise_filter = tf.tensor4d(extractWeights(channelsIn * channelsOut), [1, 1, channelsIn, channelsOut]);\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/depthwise_filter` },\n { paramPath: `${mappedPrefix}/pointwise_filter` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return new SeparableConvParams(\n depthwise_filter,\n pointwise_filter,\n bias,\n );\n };\n}\n\nexport function loadSeparableConvParamsFactory(\n // eslint-disable-next-line no-unused-vars\n extractWeightEntry: (originalPath: string, paramRank: number) => T,\n) {\n return (prefix: string): SeparableConvParams => {\n const depthwise_filter = extractWeightEntry(`${prefix}/depthwise_filter`, 4);\n const pointwise_filter = extractWeightEntry(`${prefix}/pointwise_filter`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n\n return new SeparableConvParams(\n depthwise_filter,\n pointwise_filter,\n bias,\n );\n };\n}\n", "import { isTensor } from '../utils/index';\nimport { ParamMapping } from './types';\n\nexport function extractWeightEntryFactory(weightMap: any, paramMappings: ParamMapping[]) {\n return (originalPath: string, paramRank: number, mappedPath?: string) => {\n const tensor = weightMap[originalPath];\n\n if (!isTensor(tensor, paramRank)) {\n throw new Error(`expected weightMap[${originalPath}] to be a Tensor${paramRank}D, instead have ${tensor}`);\n }\n\n paramMappings.push(\n { originalPath, paramPath: mappedPath || originalPath },\n );\n\n return tensor;\n };\n}\n", "export function extractWeightsFactory(weights: Float32Array) {\n let remainingWeights = weights;\n\n function extractWeights(numWeights: number): Float32Array {\n const ret = remainingWeights.slice(0, numWeights);\n remainingWeights = remainingWeights.slice(numWeights);\n return ret;\n }\n\n function getRemainingWeights(): Float32Array {\n return remainingWeights;\n }\n\n return {\n extractWeights,\n getRemainingWeights,\n };\n}\n", "import { extractConvParamsFactory, extractSeparableConvParamsFactory, ExtractWeightsFunction, ParamMapping } from '../common/index';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n function extractDenseBlock3Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer = false): DenseBlock3Params {\n const conv0 = isFirstLayer\n ? extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv0`)\n : extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/conv0`);\n const conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv1`);\n const conv2 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv2`);\n\n return { conv0, conv1, conv2 };\n }\n\n function extractDenseBlock4Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer = false): DenseBlock4Params {\n const { conv0, conv1, conv2 } = extractDenseBlock3Params(channelsIn, channelsOut, mappedPrefix, isFirstLayer);\n const conv3 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv3`);\n\n return {\n conv0, conv1, conv2, conv3,\n };\n }\n\n return {\n extractDenseBlock3Params,\n extractDenseBlock4Params,\n };\n}\n", "import { extractWeightsFactory, ParamMapping } from '../common/index';\nimport { extractorsFactory } from './extractorsFactory';\nimport { FaceFeatureExtractorParams } from './types';\n\nexport function extractParams(weights: Float32Array): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractDenseBlock4Params,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const dense0 = extractDenseBlock4Params(3, 32, 'dense0', true);\n const dense1 = extractDenseBlock4Params(32, 64, 'dense1');\n const dense2 = extractDenseBlock4Params(64, 128, 'dense2');\n const dense3 = extractDenseBlock4Params(128, 256, 'dense3');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: {\n dense0, dense1, dense2, dense3,\n },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from './types';\n\n// eslint-disable-next-line no-unused-vars\nexport function loadConvParamsFactory(extractWeightEntry: (originalPath: string, paramRank: number) => T) {\n return (prefix: string): ConvParams => {\n const filters = extractWeightEntry(`${prefix}/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n\n return { filters, bias };\n };\n}\n", "import { extractWeightEntryFactory, loadSeparableConvParamsFactory, ParamMapping } from '../common/index';\nimport { loadConvParamsFactory } from '../common/loadConvParamsFactory';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n const extractConvParams = loadConvParamsFactory(extractWeightEntry);\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n\n function extractDenseBlock3Params(prefix: string, isFirstLayer = false): DenseBlock3Params {\n const conv0 = isFirstLayer\n ? extractConvParams(`${prefix}/conv0`)\n : extractSeparableConvParams(`${prefix}/conv0`);\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`);\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`);\n\n return { conv0, conv1, conv2 };\n }\n\n function extractDenseBlock4Params(prefix: string, isFirstLayer = false): DenseBlock4Params {\n const conv0 = isFirstLayer\n ? extractConvParams(`${prefix}/conv0`)\n : extractSeparableConvParams(`${prefix}/conv0`);\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`);\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`);\n const conv3 = extractSeparableConvParams(`${prefix}/conv3`);\n\n return {\n conv0, conv1, conv2, conv3,\n };\n }\n\n return {\n extractDenseBlock3Params,\n extractDenseBlock4Params,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, ParamMapping } from '../common/index';\nimport { loadParamsFactory } from './loadParamsFactory';\nimport { FaceFeatureExtractorParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractDenseBlock4Params,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const params = {\n dense0: extractDenseBlock4Params('dense0', true),\n dense1: extractDenseBlock4Params('dense1'),\n dense2: extractDenseBlock4Params('dense2'),\n dense3: extractDenseBlock4Params('dense3'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { denseBlock4 } from './denseBlock';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { FaceFeatureExtractorParams, IFaceFeatureExtractor } from './types';\n\nexport class FaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\n constructor() {\n super('FaceFeatureExtractor');\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('FaceFeatureExtractor - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(255) as tf.Tensor4D;\n\n let out = denseBlock4(normalized, params.dense0, true);\n out = denseBlock4(out, params.dense1);\n out = denseBlock4(out, params.dense2);\n out = denseBlock4(out, params.dense3);\n out = tf.avgPool(out, [7, 7], [2, 2], 'valid');\n\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'face_feature_extractor_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FCParams } from './types';\n\nexport function fullyConnectedLayer(\n x: tf.Tensor2D,\n params: FCParams,\n): tf.Tensor2D {\n return tf.tidy(() => tf.add(\n tf.matMul(x, params.weights),\n params.bias,\n ));\n}\n", "import { extractFCParamsFactory, extractWeightsFactory, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParams(weights: Float32Array, channelsIn: number, channelsOut: number): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings);\n\n const fc = extractFCParams(channelsIn, channelsOut, 'fc');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { fc },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractFcParams(prefix: string): FCParams {\n const weights = extractWeightEntry(`${prefix}/weights`, 2);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { weights, bias };\n }\n\n const params = {\n fc: extractFcParams('fc'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function seperateWeightMaps(weightMap: tf.NamedTensorMap) {\n const featureExtractorMap: tf.NamedTensorMap = {};\n const classifierMap: tf.NamedTensorMap = {};\n\n Object.keys(weightMap).forEach((key) => {\n const map = key.startsWith('fc') ? classifierMap : featureExtractorMap;\n map[key] = weightMap[key];\n });\n\n return { featureExtractorMap, classifierMap };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { NetInput } from '../dom/index';\nimport { FaceFeatureExtractorParams, IFaceFeatureExtractor, TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { NetParams } from './types';\nimport { seperateWeightMaps } from './util';\n\nexport abstract class FaceProcessor<\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\n>\n extends NeuralNetwork {\n protected _faceFeatureExtractor: IFaceFeatureExtractor;\n\n constructor(_name: string, faceFeatureExtractor: IFaceFeatureExtractor) {\n super(_name);\n this._faceFeatureExtractor = faceFeatureExtractor;\n }\n\n public get faceFeatureExtractor(): IFaceFeatureExtractor {\n return this._faceFeatureExtractor;\n }\n\n protected abstract override getDefaultModelName(): string\n\n protected abstract getClassifierChannelsIn(): number\n\n protected abstract getClassifierChannelsOut(): number\n\n public runNet(input: NetInput | tf.Tensor4D): tf.Tensor2D {\n const { params } = this;\n\n if (!params) {\n throw new Error(`${this._name} - load model before inference`);\n }\n\n return tf.tidy(() => {\n const bottleneckFeatures = input instanceof NetInput\n ? this.faceFeatureExtractor.forwardInput(input)\n : input;\n return fullyConnectedLayer(bottleneckFeatures.as2D(bottleneckFeatures.shape[0], -1), params.fc);\n });\n }\n\n public override dispose(throwOnRedispose = true) {\n this.faceFeatureExtractor.dispose(throwOnRedispose);\n super.dispose(throwOnRedispose);\n }\n\n public loadClassifierParams(weights: Float32Array) {\n const { params, paramMappings } = this.extractClassifierParams(weights);\n this._params = params;\n this._paramMappings = paramMappings;\n }\n\n public extractClassifierParams(weights: Float32Array) {\n return extractParams(weights, this.getClassifierChannelsIn(), this.getClassifierChannelsOut());\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap);\n\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap);\n\n return extractParamsFromWeightMap(classifierMap);\n }\n\n protected extractParams(weights: Float32Array) {\n const cIn = this.getClassifierChannelsIn();\n const cOut = this.getClassifierChannelsOut();\n const classifierWeightSize = (cOut * cIn) + cOut;\n\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize);\n const classifierWeights = weights.slice(weights.length - classifierWeightSize);\n\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights);\n return this.extractClassifierParams(classifierWeights);\n }\n}\n", "export const FACE_EXPRESSION_LABELS = ['neutral', 'happy', 'sad', 'angry', 'fearful', 'disgusted', 'surprised'];\n\nexport class FaceExpressions {\n public neutral = 0;\n public happy = 0;\n public sad = 0;\n public angry = 0;\n public fearful = 0;\n public disgusted = 0;\n public surprised = 0;\n\n constructor(probabilities: number[] | Float32Array) {\n if (probabilities.length !== 7) {\n throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${probabilities.length}`);\n }\n\n FACE_EXPRESSION_LABELS.forEach((expression, idx) => {\n this[expression] = probabilities[idx];\n });\n }\n\n asSortedArray() {\n return FACE_EXPRESSION_LABELS\n .map((expression) => ({ expression, probability: this[expression] as number }))\n .sort((e0, e1) => e1.probability - e0.probability);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\nimport { FaceExpressions } from './FaceExpressions';\n\nexport class FaceExpressionNet extends FaceProcessor {\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\n super('FaceExpressionNet', faceFeatureExtractor);\n }\n\n public forwardInput(input: NetInput | tf.Tensor4D): tf.Tensor2D {\n return tf.tidy(() => tf.softmax(this.runNet(input)));\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async predictExpressions(input: TNetInput) {\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput);\n const probabilitesByBatch = await Promise.all(tf.unstack(out).map(async (t) => {\n const data = t.dataSync();\n t.dispose();\n return data;\n }));\n out.dispose();\n\n const predictionsByBatch = probabilitesByBatch\n .map((probabilites) => new FaceExpressions(probabilites as Float32Array));\n\n return netInput.isBatchInput\n ? predictionsByBatch\n : predictionsByBatch[0];\n }\n\n protected getDefaultModelName(): string {\n return 'face_expression_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 256;\n }\n\n protected getClassifierChannelsOut(): number {\n return 7;\n }\n}\n", "import { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\n\nexport type WithFaceExpressions = TSource & { expressions: FaceExpressions }\n\nexport function isWithFaceExpressions(obj: any): obj is WithFaceExpressions<{}> {\n return obj.expressions instanceof FaceExpressions;\n}\n\nexport function extendWithFaceExpressions(sourceObj: TSource, expressions: FaceExpressions): WithFaceExpressions {\n const extension = { expressions };\n return { ...sourceObj, ...extension };\n}\n", "import { IPoint, Point } from '../classes/index';\nimport { FaceExpressions } from '../faceExpressionNet/index';\nimport { isWithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\nimport { round } from '../utils/index';\nimport { DrawTextField } from './DrawTextField';\n\nexport type DrawFaceExpressionsInput = FaceExpressions | WithFaceExpressions<{}>\n\nexport function drawFaceExpressions(canvasArg: string | HTMLCanvasElement, faceExpressions: DrawFaceExpressionsInput | Array, minConfidence = 0.1, textFieldAnchor?: IPoint) {\n const faceExpressionsArray = Array.isArray(faceExpressions) ? faceExpressions : [faceExpressions];\n\n faceExpressionsArray.forEach((e) => {\n // eslint-disable-next-line no-nested-ternary\n const expr = e instanceof FaceExpressions\n ? e\n : (isWithFaceExpressions(e) ? e.expressions : undefined);\n if (!expr) {\n throw new Error('drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof');\n }\n\n const sorted = expr.asSortedArray();\n const resultsToDisplay = sorted.filter((exprLocal) => exprLocal.probability > minConfidence);\n\n const anchor = isWithFaceDetection(e)\n ? e.detection.box.bottomLeft\n : (textFieldAnchor || new Point(0, 0));\n\n const drawTextField = new DrawTextField(\n resultsToDisplay.map((exprLocal) => `${exprLocal.expression} (${round(exprLocal.probability)})`),\n anchor,\n );\n drawTextField.draw(canvasArg);\n });\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { isWithFaceDetection, WithFaceDetection } from './WithFaceDetection';\n\nexport type WithFaceLandmarks<\n TSource extends WithFaceDetection<{}>,\n TFaceLandmarks extends FaceLandmarks = FaceLandmarks68\n> = TSource & {\n landmarks: TFaceLandmarks;\n unshiftedLandmarks: TFaceLandmarks;\n alignedRect: FaceDetection;\n angle: {\n roll: number | undefined;\n pitch: number | undefined;\n yaw: number | undefined;\n };\n};\n\nexport function isWithFaceLandmarks(\n obj: any,\n): obj is WithFaceLandmarks, FaceLandmarks> {\n return (\n isWithFaceDetection(obj)\n // eslint-disable-next-line dot-notation\n && obj['landmarks'] instanceof FaceLandmarks\n // eslint-disable-next-line dot-notation\n && obj['unshiftedLandmarks'] instanceof FaceLandmarks\n // eslint-disable-next-line dot-notation\n && obj['alignedRect'] instanceof FaceDetection\n );\n}\n\nfunction calculateFaceAngle(mesh) {\n // Helper to convert radians to degrees\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n const degrees = (radians) => (radians * 180) / Math.PI;\n const calcLengthBetweenTwoPoints = (a, b) => Math.sqrt((a._x - b._x) ** 2 + (a._y - b._y) ** 2);\n\n const angle = {\n roll: undefined,\n pitch: undefined,\n yaw: undefined,\n };\n\n const calcYaw = (leftPoint, midPoint, rightPoint) => {\n // Calc x-distance from left side of the face (\"ear\") to facial midpoint (\"nose\")\n const leftToMidpoint = Math.floor(leftPoint._x - midPoint._x);\n // Calc x-distance from facial midpoint (\"nose\") to the right side of the face (\"ear\")\n const rightToMidpoint = Math.floor(midPoint._x - rightPoint._x);\n // Difference in distances coincidentally approximates to angles\n return leftToMidpoint - rightToMidpoint;\n };\n\n const calcRoll = (lever, pivot) => {\n // When rolling, the head seems to pivot from the nose/lips/chin area.\n // So, we'll choose any two points from the facial midline, where the first point should be the pivot, and the other \"lever\"\n // Plan/Execution: get the hypotenuse & opposite sides of a 90deg triangle ==> Calculate angle in radians\n const hypotenuse = Math.hypot(pivot._x - lever._x, pivot._y - lever._y);\n const opposite = pivot._y - lever._y;\n const angleInRadians = Math.asin(opposite / hypotenuse);\n const angleInDegrees = degrees(angleInRadians);\n const normalizeAngle = Math.floor(90 - angleInDegrees);\n // If lever more to the left of the pivot, then we're tilting left\n // \"-\" is negative direction. \"+\", or absence of a sign is positive direction\n const tiltDirection = pivot._x - lever._x < 0 ? -1 : 1;\n const result = normalizeAngle * tiltDirection;\n return result;\n };\n\n const calcPitch = (leftPoint, midPoint, rightPoint) => {\n // Theory: While pitching, the nose is the most salient point --> That's what we'll use to make a trianle.\n // The \"base\" is between point that don't move when we pitch our head (i.e. an imaginary line running ear to ear through the nose).\n // Executuin: Get the opposite & adjacent lengths of the triangle from the ear's perspective. Use it to get angle.\n\n const base = calcLengthBetweenTwoPoints(leftPoint, rightPoint);\n // adjecent is base/2 technically.\n const baseCoords = {\n _x: (leftPoint._x + rightPoint._x) / 2,\n _y: (leftPoint._y + rightPoint._y) / 2,\n };\n const midToBaseLength = calcLengthBetweenTwoPoints(midPoint, baseCoords);\n const angleInRadians = Math.atan(midToBaseLength / base);\n const angleInDegrees = Math.floor(degrees(angleInRadians));\n // Account for directionality.\n // pitch forwards (_i.e. tilting your head forwards) is positive (or no sign); backward is negative.\n const direction = baseCoords._y - midPoint._y < 0 ? -1 : 1;\n const result = angleInDegrees * direction;\n return result;\n };\n\n if (!mesh || !mesh._positions || mesh._positions.length !== 68) return angle;\n const pt = mesh._positions;\n angle.roll = calcRoll(pt[27], pt[66]);\n angle.pitch = calcPitch(pt[14], pt[30], pt[2]);\n angle.yaw = calcYaw(pt[14], pt[33], pt[2]);\n return angle;\n}\n\nexport function extendWithFaceLandmarks, TFaceLandmarks extends FaceLandmarks = FaceLandmarks68>(\n sourceObj: TSource,\n unshiftedLandmarks: TFaceLandmarks,\n): WithFaceLandmarks {\n const { box: shift } = sourceObj.detection;\n const landmarks = unshiftedLandmarks.shiftBy(shift.x, shift.y);\n const rect = landmarks.align();\n const { imageDims } = sourceObj.detection;\n const alignedRect = new FaceDetection(\n sourceObj.detection.score,\n rect.rescale(imageDims.reverse()),\n imageDims,\n );\n const angle = calculateFaceAngle(unshiftedLandmarks);\n const extension = { landmarks, unshiftedLandmarks, alignedRect, angle };\n return { ...sourceObj, ...extension };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { IPoint } from '../classes/index';\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { drawContour } from './drawContour';\n\nexport interface IDrawFaceLandmarksOptions {\n drawLines?: boolean\n drawPoints?: boolean\n lineWidth?: number\n pointSize?: number\n lineColor?: string\n pointColor?: string\n}\n\nexport class DrawFaceLandmarksOptions {\n public drawLines: boolean;\n\n public drawPoints: boolean;\n\n public lineWidth: number;\n\n public pointSize: number;\n\n public lineColor: string;\n\n public pointColor: string;\n\n constructor(options: IDrawFaceLandmarksOptions = {}) {\n const {\n drawLines = true, drawPoints = true, lineWidth, lineColor, pointSize, pointColor,\n } = options;\n this.drawLines = drawLines;\n this.drawPoints = drawPoints;\n this.lineWidth = lineWidth || 1;\n this.pointSize = pointSize || 2;\n this.lineColor = lineColor || 'rgba(0, 255, 255, 1)';\n this.pointColor = pointColor || 'rgba(255, 0, 255, 1)';\n }\n}\n\nexport class DrawFaceLandmarks {\n public faceLandmarks: FaceLandmarks;\n\n public options: DrawFaceLandmarksOptions;\n\n constructor(\n faceLandmarks: FaceLandmarks,\n options: IDrawFaceLandmarksOptions = {},\n ) {\n this.faceLandmarks = faceLandmarks;\n this.options = new DrawFaceLandmarksOptions(options);\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const ctx = getContext2dOrThrow(canvasArg);\n\n const {\n drawLines, drawPoints, lineWidth, lineColor, pointSize, pointColor,\n } = this.options;\n\n if (drawLines && this.faceLandmarks instanceof FaceLandmarks68) {\n ctx.strokeStyle = lineColor;\n ctx.lineWidth = lineWidth;\n drawContour(ctx, this.faceLandmarks.getJawOutline());\n drawContour(ctx, this.faceLandmarks.getLeftEyeBrow());\n drawContour(ctx, this.faceLandmarks.getRightEyeBrow());\n drawContour(ctx, this.faceLandmarks.getNose());\n drawContour(ctx, this.faceLandmarks.getLeftEye(), true);\n drawContour(ctx, this.faceLandmarks.getRightEye(), true);\n drawContour(ctx, this.faceLandmarks.getMouth(), true);\n }\n\n if (drawPoints) {\n ctx.strokeStyle = pointColor;\n ctx.fillStyle = pointColor;\n\n const drawPoint = (pt: IPoint) => {\n ctx.beginPath();\n ctx.arc(pt.x, pt.y, pointSize, 0, 2 * Math.PI);\n ctx.fill();\n };\n this.faceLandmarks.positions.forEach(drawPoint);\n }\n }\n}\n\nexport type DrawFaceLandmarksInput = FaceLandmarks | WithFaceLandmarks>\n\nexport function drawFaceLandmarks(\n canvasArg: string | HTMLCanvasElement,\n faceLandmarks: DrawFaceLandmarksInput | Array,\n) {\n const faceLandmarksArray = Array.isArray(faceLandmarks) ? faceLandmarks : [faceLandmarks];\n faceLandmarksArray.forEach((f) => {\n // eslint-disable-next-line no-nested-ternary\n const landmarks = f instanceof FaceLandmarks\n ? f\n : (isWithFaceLandmarks(f) ? f.landmarks : undefined);\n if (!landmarks) {\n throw new Error('drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof');\n }\n\n new DrawFaceLandmarks(landmarks).draw(canvasArg);\n });\n}\n", "import { extractConvParamsFactory, extractSeparableConvParamsFactory, extractWeightsFactory } from '../common/index';\nimport { ExtractWeightsFunction, ParamMapping } from '../common/types';\nimport { range } from '../utils/index';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n function extractReductionBlockParams(channelsIn: number, channelsOut: number, mappedPrefix: string): ReductionBlockParams {\n const separable_conv0 = extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/separable_conv1`);\n const expansion_conv = extractConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/expansion_conv`);\n\n return { separable_conv0, separable_conv1, expansion_conv };\n }\n\n function extractMainBlockParams(channels: number, mappedPrefix: string): MainBlockParams {\n const separable_conv0 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv1`);\n const separable_conv2 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv2`);\n\n return { separable_conv0, separable_conv1, separable_conv2 };\n }\n\n return {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n };\n}\n\nexport function extractParams(weights: Float32Array, numMainBlocks: number): { params: TinyXceptionParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const entry_flow_conv_in = extractConvParams(3, 32, 3, 'entry_flow/conv_in');\n const entry_flow_reduction_block_0 = extractReductionBlockParams(32, 64, 'entry_flow/reduction_block_0');\n const entry_flow_reduction_block_1 = extractReductionBlockParams(64, 128, 'entry_flow/reduction_block_1');\n\n const entry_flow = {\n conv_in: entry_flow_conv_in,\n reduction_block_0: entry_flow_reduction_block_0,\n reduction_block_1: entry_flow_reduction_block_1,\n };\n\n const middle_flow = {};\n range(numMainBlocks, 0, 1).forEach((idx) => {\n middle_flow[`main_block_${idx}`] = extractMainBlockParams(128, `middle_flow/main_block_${idx}`);\n });\n\n const exit_flow_reduction_block = extractReductionBlockParams(128, 256, 'exit_flow/reduction_block');\n const exit_flow_separable_conv = extractSeparableConvParams(256, 512, 'exit_flow/separable_conv');\n\n const exit_flow = {\n reduction_block: exit_flow_reduction_block,\n separable_conv: exit_flow_separable_conv,\n };\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { entry_flow, middle_flow, exit_flow },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, loadSeparableConvParamsFactory, ParamMapping } from '../common/index';\nimport { loadConvParamsFactory } from '../common/loadConvParamsFactory';\nimport { range } from '../utils/index';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n const extractConvParams = loadConvParamsFactory(extractWeightEntry);\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n\n function extractReductionBlockParams(mappedPrefix: string): ReductionBlockParams {\n const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`);\n const expansion_conv = extractConvParams(`${mappedPrefix}/expansion_conv`);\n\n return { separable_conv0, separable_conv1, expansion_conv };\n }\n\n function extractMainBlockParams(mappedPrefix: string): MainBlockParams {\n const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`);\n const separable_conv2 = extractSeparableConvParams(`${mappedPrefix}/separable_conv2`);\n\n return { separable_conv0, separable_conv1, separable_conv2 };\n }\n\n return {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n numMainBlocks: number,\n): { params: TinyXceptionParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const entry_flow_conv_in = extractConvParams('entry_flow/conv_in');\n const entry_flow_reduction_block_0 = extractReductionBlockParams('entry_flow/reduction_block_0');\n const entry_flow_reduction_block_1 = extractReductionBlockParams('entry_flow/reduction_block_1');\n\n const entry_flow = {\n conv_in: entry_flow_conv_in,\n reduction_block_0: entry_flow_reduction_block_0,\n reduction_block_1: entry_flow_reduction_block_1,\n };\n\n const middle_flow = {};\n range(numMainBlocks, 0, 1).forEach((idx) => {\n middle_flow[`main_block_${idx}`] = extractMainBlockParams(`middle_flow/main_block_${idx}`);\n });\n\n const exit_flow_reduction_block = extractReductionBlockParams('exit_flow/reduction_block');\n const exit_flow_separable_conv = extractSeparableConvParams('exit_flow/separable_conv');\n\n const exit_flow = {\n reduction_block: exit_flow_reduction_block,\n separable_conv: exit_flow_separable_conv,\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params: { entry_flow, middle_flow, exit_flow }, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, depthwiseSeparableConv } from '../common/index';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { range } from '../utils/index';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction conv(x: tf.Tensor4D, params: ConvParams, stride: [number, number]): tf.Tensor4D {\n return tf.add(tf.conv2d(x, params.filters, stride, 'same'), params.bias);\n}\n\nfunction reductionBlock(x: tf.Tensor4D, params: ReductionBlockParams, isActivateInput = true): tf.Tensor4D {\n let out = isActivateInput ? tf.relu(x) : x;\n out = depthwiseSeparableConv(out, params.separable_conv0, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv1, [1, 1]);\n out = tf.maxPool(out, [3, 3], [2, 2], 'same');\n out = tf.add(out, conv(x, params.expansion_conv, [2, 2]));\n return out;\n}\n\nfunction mainBlock(x: tf.Tensor4D, params: MainBlockParams): tf.Tensor4D {\n let out = depthwiseSeparableConv(tf.relu(x), params.separable_conv0, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv1, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv2, [1, 1]);\n out = tf.add(out, x);\n return out;\n}\n\nexport class TinyXception extends NeuralNetwork {\n private _numMainBlocks: number;\n\n constructor(numMainBlocks: number) {\n super('TinyXception');\n this._numMainBlocks = numMainBlocks;\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n if (!params) {\n throw new Error('TinyXception - load model before inference');\n }\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(255) as tf.Tensor4D;\n let out = tf.relu(conv(normalized, params.entry_flow.conv_in, [2, 2]));\n out = reductionBlock(out, params.entry_flow.reduction_block_0, false);\n out = reductionBlock(out, params.entry_flow.reduction_block_1);\n range(this._numMainBlocks, 0, 1).forEach((idx) => {\n out = mainBlock(out, params.middle_flow[`main_block_${idx}`]);\n });\n out = reductionBlock(out, params.exit_flow.reduction_block);\n out = tf.relu(depthwiseSeparableConv(out, params.exit_flow.separable_conv, [1, 1]));\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'tiny_xception_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap, this._numMainBlocks);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights, this._numMainBlocks);\n }\n}\n", "import { extractFCParamsFactory, extractWeightsFactory, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings);\n\n const age = extractFCParams(512, 1, 'fc/age');\n const gender = extractFCParams(512, 2, 'fc/gender');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { fc: { age, gender } },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractFcParams(prefix: string): FCParams {\n const weights = extractWeightEntry(`${prefix}/weights`, 2);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { weights, bias };\n }\n\n const params = {\n fc: {\n age: extractFcParams('fc/age'),\n gender: extractFcParams('fc/gender'),\n },\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FCParams } from '../common/index';\n\n// eslint-disable-next-line no-shadow\nexport enum Gender {\n // eslint-disable-next-line no-unused-vars\n FEMALE = 'female',\n // eslint-disable-next-line no-unused-vars\n MALE = 'male'\n}\n\nexport type AgeAndGenderPrediction = {\n age: number\n gender: Gender\n genderProbability: number\n}\n\nexport type NetOutput = { age: tf.Tensor1D, gender: tf.Tensor2D }\n\nexport type NetParams = {\n fc: {\n age: FCParams\n gender: FCParams\n }\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { seperateWeightMaps } from '../faceProcessor/util';\nimport { TinyXception } from '../xception/TinyXception';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { AgeAndGenderPrediction, Gender, NetOutput, NetParams } from './types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\n\nexport class AgeGenderNet extends NeuralNetwork {\n private _faceFeatureExtractor: TinyXception;\n\n constructor(faceFeatureExtractor: TinyXception = new TinyXception(2)) {\n super('AgeGenderNet');\n this._faceFeatureExtractor = faceFeatureExtractor;\n }\n\n public get faceFeatureExtractor(): TinyXception {\n return this._faceFeatureExtractor;\n }\n\n public runNet(input: NetInput | tf.Tensor4D): NetOutput {\n const { params } = this;\n\n if (!params) {\n throw new Error(`${this._name} - load model before inference`);\n }\n\n return tf.tidy(() => {\n const bottleneckFeatures = input instanceof NetInput\n ? this.faceFeatureExtractor.forwardInput(input)\n : input;\n\n const pooled = tf.avgPool(bottleneckFeatures, [7, 7], [2, 2], 'valid').as2D(bottleneckFeatures.shape[0], -1);\n const age = fullyConnectedLayer(pooled, params.fc.age).as1D();\n const gender = fullyConnectedLayer(pooled, params.fc.gender);\n return { age, gender };\n });\n }\n\n public forwardInput(input: NetInput | tf.Tensor4D): NetOutput {\n return tf.tidy(() => {\n const { age, gender } = this.runNet(input);\n return { age, gender: tf.softmax(gender) };\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async predictAgeAndGender(input: TNetInput): Promise {\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput);\n\n const ages = tf.unstack(out.age);\n const genders = tf.unstack(out.gender);\n const ageAndGenderTensors = ages.map((ageTensor, i) => ({\n ageTensor,\n genderTensor: genders[i],\n }));\n\n const predictionsByBatch = await Promise.all(\n ageAndGenderTensors.map(async ({ ageTensor, genderTensor }) => {\n const age = (ageTensor.dataSync())[0];\n const probMale = (genderTensor.dataSync())[0];\n const isMale = probMale > 0.5;\n const gender = isMale ? Gender.MALE : Gender.FEMALE;\n const genderProbability = isMale ? probMale : (1 - probMale);\n\n ageTensor.dispose();\n genderTensor.dispose();\n return { age, gender, genderProbability };\n }),\n );\n out.age.dispose();\n out.gender.dispose();\n\n return netInput.isBatchInput ? predictionsByBatch as AgeAndGenderPrediction[] : predictionsByBatch[0] as AgeAndGenderPrediction;\n }\n\n protected getDefaultModelName(): string {\n return 'age_gender_model';\n }\n\n public override dispose(throwOnRedispose = true) {\n this.faceFeatureExtractor.dispose(throwOnRedispose);\n super.dispose(throwOnRedispose);\n }\n\n public loadClassifierParams(weights: Float32Array) {\n const { params, paramMappings } = this.extractClassifierParams(weights);\n this._params = params;\n this._paramMappings = paramMappings;\n }\n\n public extractClassifierParams(weights: Float32Array) {\n return extractParams(weights);\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap);\n\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap);\n\n return extractParamsFromWeightMap(classifierMap);\n }\n\n protected extractParams(weights: Float32Array) {\n const classifierWeightSize = (512 * 1 + 1) + (512 * 2 + 2);\n\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize);\n const classifierWeights = weights.slice(weights.length - classifierWeightSize);\n\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights);\n return this.extractClassifierParams(classifierWeights);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { IDimensions, Point } from '../classes/index';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { FaceFeatureExtractorParams, TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\nimport { isEven } from '../utils/index';\n\nexport abstract class FaceLandmark68NetBase<\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\n>\n extends FaceProcessor {\n public postProcess(output: tf.Tensor2D, inputSize: number, originalDimensions: IDimensions[]): tf.Tensor2D {\n const inputDimensions = originalDimensions.map(({ width, height }) => {\n const scale = inputSize / Math.max(height, width);\n return {\n width: width * scale,\n height: height * scale,\n };\n });\n\n const batchSize = inputDimensions.length;\n\n return tf.tidy(() => {\n const createInterleavedTensor = (fillX: number, fillY: number) => tf.stack([tf.fill([68], fillX, 'float32'), tf.fill([68], fillY, 'float32')], 1).as2D(1, 136).as1D();\n\n // eslint-disable-next-line no-unused-vars\n const getPadding = (batchIdx: number, cond: (w: number, h: number) => boolean): number => {\n const { width, height } = inputDimensions[batchIdx];\n return cond(width, height) ? Math.abs(width - height) / 2 : 0;\n };\n\n const getPaddingX = (batchIdx: number) => getPadding(batchIdx, (w, h) => w < h);\n const getPaddingY = (batchIdx: number) => getPadding(batchIdx, (w, h) => h < w);\n\n const landmarkTensors = output\n .mul(tf.fill([batchSize, 136], inputSize, 'float32'))\n .sub(tf.stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(\n getPaddingX(batchIdx),\n getPaddingY(batchIdx),\n ))))\n .div(tf.stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(\n inputDimensions[batchIdx].width,\n inputDimensions[batchIdx].height,\n ))));\n\n return landmarkTensors as tf.Tensor2D;\n });\n }\n\n public forwardInput(input: NetInput): tf.Tensor2D {\n return tf.tidy(() => {\n const out = this.runNet(input);\n return this.postProcess(\n out,\n input.inputSize as number,\n input.inputDimensions.map(([height, width]) => ({ height, width })),\n );\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async detectLandmarks(input: TNetInput): Promise {\n const netInput = await toNetInput(input);\n const landmarkTensors = tf.tidy(\n () => tf.unstack(this.forwardInput(netInput)),\n );\n\n const landmarksForBatch = await Promise.all(landmarkTensors.map(\n async (landmarkTensor, batchIdx) => {\n const landmarksArray = Array.from(landmarkTensor.dataSync());\n const xCoords = landmarksArray.filter((_, i) => isEven(i));\n const yCoords = landmarksArray.filter((_, i) => !isEven(i));\n\n return new FaceLandmarks68(\n Array(68).fill(0).map((_, i) => new Point(xCoords[i] as number, yCoords[i] as number)),\n {\n height: netInput.getInputHeight(batchIdx),\n width: netInput.getInputWidth(batchIdx),\n },\n );\n },\n ));\n\n landmarkTensors.forEach((t) => t.dispose());\n\n return netInput.isBatchInput ? landmarksForBatch as FaceLandmarks68[] : landmarksForBatch[0] as FaceLandmarks68;\n }\n\n protected getClassifierChannelsOut(): number {\n return 136;\n }\n}\n", "import { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\n\nexport class FaceLandmark68Net extends FaceLandmark68NetBase {\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\n super('FaceLandmark68Net', faceFeatureExtractor);\n }\n\n protected getDefaultModelName(): string {\n return 'face_landmark_68_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 256;\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, ParamMapping } from '../common/index';\nimport { loadParamsFactory } from './loadParamsFactory';\nimport { TinyFaceFeatureExtractorParams } from './types';\n\nexport function extractParamsFromWeightMapTiny(\n weightMap: tf.NamedTensorMap,\n): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractDenseBlock3Params,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const params = {\n dense0: extractDenseBlock3Params('dense0', true),\n dense1: extractDenseBlock3Params('dense1'),\n dense2: extractDenseBlock3Params('dense2'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import { extractWeightsFactory, ParamMapping } from '../common/index';\nimport { extractorsFactory } from './extractorsFactory';\nimport { TinyFaceFeatureExtractorParams } from './types';\n\nexport function extractParamsTiny(weights: Float32Array): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractDenseBlock3Params,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const dense0 = extractDenseBlock3Params(3, 32, 'dense0', true);\n const dense1 = extractDenseBlock3Params(32, 64, 'dense1');\n const dense2 = extractDenseBlock3Params(64, 128, 'dense2');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { dense0, dense1, dense2 },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { denseBlock3 } from './denseBlock';\nimport { extractParamsFromWeightMapTiny } from './extractParamsFromWeightMapTiny';\nimport { extractParamsTiny } from './extractParamsTiny';\nimport { IFaceFeatureExtractor, TinyFaceFeatureExtractorParams } from './types';\n\nexport class TinyFaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\n constructor() {\n super('TinyFaceFeatureExtractor');\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('TinyFaceFeatureExtractor - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(255) as tf.Tensor4D;\n\n let out = denseBlock3(normalized, params.dense0, true);\n out = denseBlock3(out, params.dense1);\n out = denseBlock3(out, params.dense2);\n out = tf.avgPool(out, [14, 14], [2, 2], 'valid');\n\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'face_feature_extractor_tiny_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMapTiny(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParamsTiny(weights);\n }\n}\n", "import { TinyFaceFeatureExtractor } from '../faceFeatureExtractor/TinyFaceFeatureExtractor';\nimport { TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\n\nexport class FaceLandmark68TinyNet extends FaceLandmark68NetBase {\n constructor(faceFeatureExtractor: TinyFaceFeatureExtractor = new TinyFaceFeatureExtractor()) {\n super('FaceLandmark68TinyNet', faceFeatureExtractor);\n }\n\n protected getDefaultModelName(): string {\n return 'face_landmark_68_tiny_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 128;\n }\n}\n", "import { FaceLandmark68Net } from './FaceLandmark68Net';\n\nexport * from './FaceLandmark68Net';\nexport * from './FaceLandmark68TinyNet';\nexport class FaceLandmarkNet extends FaceLandmark68Net {}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ScaleLayerParams } from './types';\n\nexport function scale(x: tf.Tensor4D, params: ScaleLayerParams): tf.Tensor4D {\n return tf.add(tf.mul(x, params.weights), params.biases);\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { scale } from './scaleLayer';\nimport { ConvLayerParams } from './types';\n\nfunction convLayer(\n x: tf.Tensor4D,\n params: ConvLayerParams,\n strides: [number, number],\n withRelu: boolean,\n padding: 'valid' | 'same' = 'same',\n): tf.Tensor4D {\n const { filters, bias } = params.conv;\n\n let out = tf.conv2d(x, filters, strides, padding);\n out = tf.add(out, bias);\n out = scale(out, params.scale);\n return withRelu ? tf.relu(out) : out;\n}\n\nexport function conv(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [1, 1], true);\n}\n\nexport function convNoRelu(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [1, 1], false);\n}\n\nexport function convDown(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [2, 2], true, 'valid');\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, extractWeightsFactory, ExtractWeightsFunction, ParamMapping } from '../common/index';\nimport { isFloat } from '../utils/index';\nimport { ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n function extractFilterValues(numFilterValues: number, numFilters: number, filterSize: number): tf.Tensor4D {\n const weights = extractWeights(numFilterValues);\n const depth = weights.length / (numFilters * filterSize * filterSize);\n\n if (isFloat(depth)) {\n throw new Error(`depth has to be an integer: ${depth}, weights.length: ${weights.length}, numFilters: ${numFilters}, filterSize: ${filterSize}`);\n }\n\n return tf.tidy(\n () => tf.transpose(\n tf.tensor4d(weights, [numFilters, depth, filterSize, filterSize]),\n [2, 3, 1, 0],\n ),\n );\n }\n\n function extractConvParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvParams {\n const filters = extractFilterValues(numFilterValues, numFilters, filterSize);\n const bias = tf.tensor1d(extractWeights(numFilters));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return { filters, bias };\n }\n\n function extractScaleLayerParams(numWeights: number, mappedPrefix: string): ScaleLayerParams {\n const weights = tf.tensor1d(extractWeights(numWeights));\n const biases = tf.tensor1d(extractWeights(numWeights));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/weights` },\n { paramPath: `${mappedPrefix}/biases` },\n );\n\n return {\n weights,\n biases,\n };\n }\n\n function extractConvLayerParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvLayerParams {\n const conv = extractConvParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv`);\n const scale = extractScaleLayerParams(numFilters, `${mappedPrefix}/scale`);\n\n return { conv, scale };\n }\n\n function extractResidualLayerParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n isDown = false,\n ): ResidualLayerParams {\n const conv1 = extractConvLayerParams((isDown ? 0.5 : 1) * numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv1`);\n const conv2 = extractConvLayerParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv2`);\n\n return { conv1, conv2 };\n }\n\n return {\n extractConvLayerParams,\n extractResidualLayerParams,\n };\n}\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvLayerParams,\n extractResidualLayerParams,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const conv32_down = extractConvLayerParams(4704, 32, 7, 'conv32_down');\n const conv32_1 = extractResidualLayerParams(9216, 32, 3, 'conv32_1');\n const conv32_2 = extractResidualLayerParams(9216, 32, 3, 'conv32_2');\n const conv32_3 = extractResidualLayerParams(9216, 32, 3, 'conv32_3');\n\n const conv64_down = extractResidualLayerParams(36864, 64, 3, 'conv64_down', true);\n const conv64_1 = extractResidualLayerParams(36864, 64, 3, 'conv64_1');\n const conv64_2 = extractResidualLayerParams(36864, 64, 3, 'conv64_2');\n const conv64_3 = extractResidualLayerParams(36864, 64, 3, 'conv64_3');\n\n const conv128_down = extractResidualLayerParams(147456, 128, 3, 'conv128_down', true);\n const conv128_1 = extractResidualLayerParams(147456, 128, 3, 'conv128_1');\n const conv128_2 = extractResidualLayerParams(147456, 128, 3, 'conv128_2');\n\n const conv256_down = extractResidualLayerParams(589824, 256, 3, 'conv256_down', true);\n const conv256_1 = extractResidualLayerParams(589824, 256, 3, 'conv256_1');\n const conv256_2 = extractResidualLayerParams(589824, 256, 3, 'conv256_2');\n const conv256_down_out = extractResidualLayerParams(589824, 256, 3, 'conv256_down_out');\n\n const fc = tf.tidy(\n () => tf.transpose(tf.tensor2d(extractWeights(256 * 128), [128, 256]), [1, 0]),\n );\n paramMappings.push({ paramPath: 'fc' });\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n const params = {\n conv32_down,\n conv32_1,\n conv32_2,\n conv32_3,\n conv64_down,\n conv64_1,\n conv64_2,\n conv64_3,\n conv128_down,\n conv128_1,\n conv128_2,\n conv256_down,\n conv256_1,\n conv256_2,\n conv256_down_out,\n fc,\n };\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping } from '../common/index';\nimport { isTensor2D } from '../utils/index';\nimport { ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractScaleLayerParams(prefix: string): ScaleLayerParams {\n const weights = extractWeightEntry(`${prefix}/scale/weights`, 1);\n const biases = extractWeightEntry(`${prefix}/scale/biases`, 1);\n\n return { weights, biases };\n }\n\n function extractConvLayerParams(prefix: string): ConvLayerParams {\n const filters = extractWeightEntry(`${prefix}/conv/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/conv/bias`, 1);\n const scale = extractScaleLayerParams(prefix);\n\n return { conv: { filters, bias }, scale };\n }\n\n function extractResidualLayerParams(prefix: string): ResidualLayerParams {\n return {\n conv1: extractConvLayerParams(`${prefix}/conv1`),\n conv2: extractConvLayerParams(`${prefix}/conv2`),\n };\n }\n\n return {\n extractConvLayerParams,\n extractResidualLayerParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvLayerParams,\n extractResidualLayerParams,\n } = extractorsFactory(weightMap, paramMappings);\n\n const conv32_down = extractConvLayerParams('conv32_down');\n const conv32_1 = extractResidualLayerParams('conv32_1');\n const conv32_2 = extractResidualLayerParams('conv32_2');\n const conv32_3 = extractResidualLayerParams('conv32_3');\n\n const conv64_down = extractResidualLayerParams('conv64_down');\n const conv64_1 = extractResidualLayerParams('conv64_1');\n const conv64_2 = extractResidualLayerParams('conv64_2');\n const conv64_3 = extractResidualLayerParams('conv64_3');\n\n const conv128_down = extractResidualLayerParams('conv128_down');\n const conv128_1 = extractResidualLayerParams('conv128_1');\n const conv128_2 = extractResidualLayerParams('conv128_2');\n\n const conv256_down = extractResidualLayerParams('conv256_down');\n const conv256_1 = extractResidualLayerParams('conv256_1');\n const conv256_2 = extractResidualLayerParams('conv256_2');\n const conv256_down_out = extractResidualLayerParams('conv256_down_out');\n\n const { fc } = weightMap;\n paramMappings.push({ originalPath: 'fc', paramPath: 'fc' });\n\n if (!isTensor2D(fc)) {\n throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${fc}`);\n }\n\n const params = {\n conv32_down,\n conv32_1,\n conv32_2,\n conv32_3,\n conv64_down,\n conv64_1,\n conv64_2,\n conv64_3,\n conv128_down,\n conv128_1,\n conv128_2,\n conv256_down,\n conv256_1,\n conv256_2,\n conv256_down_out,\n fc,\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { conv, convDown, convNoRelu } from './convLayer';\nimport { ResidualLayerParams } from './types';\n\nexport function residual(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\n let out = conv(x, params.conv1);\n out = convNoRelu(out, params.conv2);\n out = tf.add(out, x);\n out = tf.relu(out);\n return out;\n}\n\nexport function residualDown(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\n let out = convDown(x, params.conv1);\n out = convNoRelu(out, params.conv2);\n\n let pooled = tf.avgPool(x, 2, 2, 'valid') as tf.Tensor4D;\n const zeros = tf.zeros(pooled.shape);\n const isPad = pooled.shape[3] !== out.shape[3];\n const isAdjustShape = pooled.shape[1] !== out.shape[1] || pooled.shape[2] !== out.shape[2];\n\n if (isAdjustShape) {\n const padShapeX = [...out.shape] as [number, number, number, number];\n padShapeX[1] = 1;\n const zerosW = tf.zeros(padShapeX);\n out = tf.concat([out, zerosW], 1);\n\n const padShapeY = [...out.shape] as [number, number, number, number];\n padShapeY[2] = 1;\n const zerosH = tf.zeros(padShapeY);\n out = tf.concat([out, zerosH], 2);\n }\n\n pooled = isPad ? tf.concat([pooled, zeros], 3) : pooled;\n out = tf.add(pooled, out) as tf.Tensor4D;\n\n out = tf.relu(out);\n return out;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { convDown } from './convLayer';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { residual, residualDown } from './residualLayer';\nimport { NetParams } from './types';\n\nexport class FaceRecognitionNet extends NeuralNetwork {\n constructor() {\n super('FaceRecognitionNet');\n }\n\n public forwardInput(input: NetInput): tf.Tensor2D {\n const { params } = this;\n\n if (!params) {\n throw new Error('FaceRecognitionNet - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(150, true), 'float32');\n\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(255) as tf.Tensor4D;\n\n let out = convDown(normalized, params.conv32_down);\n out = tf.maxPool(out, 3, 2, 'valid');\n\n out = residual(out, params.conv32_1);\n out = residual(out, params.conv32_2);\n out = residual(out, params.conv32_3);\n\n out = residualDown(out, params.conv64_down);\n out = residual(out, params.conv64_1);\n out = residual(out, params.conv64_2);\n out = residual(out, params.conv64_3);\n\n out = residualDown(out, params.conv128_down);\n out = residual(out, params.conv128_1);\n out = residual(out, params.conv128_2);\n\n out = residualDown(out, params.conv256_down);\n out = residual(out, params.conv256_1);\n out = residual(out, params.conv256_2);\n out = residualDown(out, params.conv256_down_out);\n\n const globalAvg = out.mean([1, 2]) as tf.Tensor2D;\n const fullyConnected = tf.matMul(globalAvg, params.fc);\n\n return fullyConnected as tf.Tensor2D;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async computeFaceDescriptor(input: TNetInput): Promise {\n // @ts-ignore\n if (input?.shape?.some((dim) => dim <= 0)) return new Float32Array(128);\n const netInput = await toNetInput(input);\n const faceDescriptorTensors = tf.tidy(() => tf.unstack(this.forwardInput(netInput)));\n const faceDescriptorsForBatch = await Promise.all(faceDescriptorTensors.map((t) => t.data())) as Float32Array[];\n faceDescriptorTensors.forEach((t) => t.dispose());\n return netInput.isBatchInput ? faceDescriptorsForBatch : faceDescriptorsForBatch[0];\n }\n\n protected getDefaultModelName(): string {\n return 'face_recognition_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import { FaceRecognitionNet } from './FaceRecognitionNet';\n\nexport * from './FaceRecognitionNet';\n\nexport function createFaceRecognitionNet(weights: Float32Array) {\n const net = new FaceRecognitionNet();\n net.extractWeights(weights);\n return net;\n}\n", "export type WithFaceDescriptor = TSource & {\n descriptor: Float32Array\n}\n\nexport function extendWithFaceDescriptor<\n TSource\n>(\n sourceObj: TSource,\n descriptor: Float32Array,\n): WithFaceDescriptor {\n const extension = { descriptor };\n return { ...sourceObj, ...extension };\n}\n", "export type WithAge = TSource & {\n age: number\n}\n\nexport function isWithAge(obj: any): obj is WithAge<{}> {\n return typeof obj.age === 'number';\n}\n\nexport function extendWithAge<\n TSource\n>(\n sourceObj: TSource,\n age: number,\n): WithAge {\n const extension = { age };\n return { ...sourceObj, ...extension };\n}\n", "import { Gender } from '../ageGenderNet/types';\nimport { isValidProbablitiy } from '../utils/index';\n\nexport type WithGender = TSource & {\n gender: Gender\n genderProbability: number\n}\n\nexport function isWithGender(obj: any): obj is WithGender<{}> {\n return (obj.gender === Gender.MALE || obj.gender === Gender.FEMALE)\n && isValidProbablitiy(obj.genderProbability);\n}\n\nexport function extendWithGender<\n TSource\n>(\n sourceObj: TSource,\n gender: Gender,\n genderProbability: number,\n): WithGender {\n const extension = { gender, genderProbability };\n return { ...sourceObj, ...extension };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, ParamMapping, ConvParams, extractWeightsFactory } from '../common/index';\nimport { MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n function extractDepthwiseConvParams(numChannels: number, mappedPrefix: string): MobileNetV1.DepthwiseConvParams {\n const filters = tf.tensor4d(extractWeights(3 * 3 * numChannels), [3, 3, numChannels, 1]);\n const batch_norm_scale = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_offset = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_mean = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_variance = tf.tensor1d(extractWeights(numChannels));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/batch_norm_scale` },\n { paramPath: `${mappedPrefix}/batch_norm_offset` },\n { paramPath: `${mappedPrefix}/batch_norm_mean` },\n { paramPath: `${mappedPrefix}/batch_norm_variance` },\n );\n\n return {\n filters,\n batch_norm_scale,\n batch_norm_offset,\n batch_norm_mean,\n batch_norm_variance,\n };\n }\n\n function extractConvParams(\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n isPointwiseConv?: boolean,\n ): ConvParams {\n const filters = tf.tensor4d(\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\n [filterSize, filterSize, channelsIn, channelsOut],\n );\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/${isPointwiseConv ? 'batch_norm_offset' : 'bias'}` },\n );\n\n return { filters, bias };\n }\n\n function extractPointwiseConvParams(\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n ): PointwiseConvParams {\n const {\n filters,\n bias,\n } = extractConvParams(channelsIn, channelsOut, filterSize, mappedPrefix, true);\n\n return {\n filters,\n batch_norm_offset: bias,\n };\n }\n\n function extractConvPairParams(\n channelsIn: number,\n channelsOut: number,\n mappedPrefix: string,\n ): MobileNetV1.ConvPairParams {\n const depthwise_conv = extractDepthwiseConvParams(channelsIn, `${mappedPrefix}/depthwise_conv`);\n const pointwise_conv = extractPointwiseConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/pointwise_conv`);\n\n return { depthwise_conv, pointwise_conv };\n }\n\n function extractMobilenetV1Params(): MobileNetV1.Params {\n const conv_0 = extractPointwiseConvParams(3, 32, 3, 'mobilenetv1/conv_0');\n const conv_1 = extractConvPairParams(32, 64, 'mobilenetv1/conv_1');\n const conv_2 = extractConvPairParams(64, 128, 'mobilenetv1/conv_2');\n const conv_3 = extractConvPairParams(128, 128, 'mobilenetv1/conv_3');\n const conv_4 = extractConvPairParams(128, 256, 'mobilenetv1/conv_4');\n const conv_5 = extractConvPairParams(256, 256, 'mobilenetv1/conv_5');\n const conv_6 = extractConvPairParams(256, 512, 'mobilenetv1/conv_6');\n const conv_7 = extractConvPairParams(512, 512, 'mobilenetv1/conv_7');\n const conv_8 = extractConvPairParams(512, 512, 'mobilenetv1/conv_8');\n const conv_9 = extractConvPairParams(512, 512, 'mobilenetv1/conv_9');\n const conv_10 = extractConvPairParams(512, 512, 'mobilenetv1/conv_10');\n const conv_11 = extractConvPairParams(512, 512, 'mobilenetv1/conv_11');\n const conv_12 = extractConvPairParams(512, 1024, 'mobilenetv1/conv_12');\n const conv_13 = extractConvPairParams(1024, 1024, 'mobilenetv1/conv_13');\n return {\n conv_0,\n conv_1,\n conv_2,\n conv_3,\n conv_4,\n conv_5,\n conv_6,\n conv_7,\n conv_8,\n conv_9,\n conv_10,\n conv_11,\n conv_12,\n conv_13,\n };\n }\n\n function extractPredictionLayerParams(): PredictionLayerParams {\n const conv_0 = extractPointwiseConvParams(1024, 256, 1, 'prediction_layer/conv_0');\n const conv_1 = extractPointwiseConvParams(256, 512, 3, 'prediction_layer/conv_1');\n const conv_2 = extractPointwiseConvParams(512, 128, 1, 'prediction_layer/conv_2');\n const conv_3 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_3');\n const conv_4 = extractPointwiseConvParams(256, 128, 1, 'prediction_layer/conv_4');\n const conv_5 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_5');\n const conv_6 = extractPointwiseConvParams(256, 64, 1, 'prediction_layer/conv_6');\n const conv_7 = extractPointwiseConvParams(64, 128, 3, 'prediction_layer/conv_7');\n const box_encoding_0_predictor = extractConvParams(512, 12, 1, 'prediction_layer/box_predictor_0/box_encoding_predictor');\n const class_predictor_0 = extractConvParams(512, 9, 1, 'prediction_layer/box_predictor_0/class_predictor');\n const box_encoding_1_predictor = extractConvParams(1024, 24, 1, 'prediction_layer/box_predictor_1/box_encoding_predictor');\n const class_predictor_1 = extractConvParams(1024, 18, 1, 'prediction_layer/box_predictor_1/class_predictor');\n const box_encoding_2_predictor = extractConvParams(512, 24, 1, 'prediction_layer/box_predictor_2/box_encoding_predictor');\n const class_predictor_2 = extractConvParams(512, 18, 1, 'prediction_layer/box_predictor_2/class_predictor');\n const box_encoding_3_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_3/box_encoding_predictor');\n const class_predictor_3 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_3/class_predictor');\n const box_encoding_4_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_4/box_encoding_predictor');\n const class_predictor_4 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_4/class_predictor');\n const box_encoding_5_predictor = extractConvParams(128, 24, 1, 'prediction_layer/box_predictor_5/box_encoding_predictor');\n const class_predictor_5 = extractConvParams(128, 18, 1, 'prediction_layer/box_predictor_5/class_predictor');\n\n const box_predictor_0 = {\n box_encoding_predictor: box_encoding_0_predictor,\n class_predictor: class_predictor_0,\n };\n const box_predictor_1 = {\n box_encoding_predictor: box_encoding_1_predictor,\n class_predictor: class_predictor_1,\n };\n const box_predictor_2 = {\n box_encoding_predictor: box_encoding_2_predictor,\n class_predictor: class_predictor_2,\n };\n const box_predictor_3 = {\n box_encoding_predictor: box_encoding_3_predictor,\n class_predictor: class_predictor_3,\n };\n const box_predictor_4 = {\n box_encoding_predictor: box_encoding_4_predictor,\n class_predictor: class_predictor_4,\n };\n const box_predictor_5 = {\n box_encoding_predictor: box_encoding_5_predictor,\n class_predictor: class_predictor_5,\n };\n return {\n conv_0,\n conv_1,\n conv_2,\n conv_3,\n conv_4,\n conv_5,\n conv_6,\n conv_7,\n box_predictor_0,\n box_predictor_1,\n box_predictor_2,\n box_predictor_3,\n box_predictor_4,\n box_predictor_5,\n };\n }\n\n return {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n };\n}\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n const {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n } = extractorsFactory(extractWeights, paramMappings);\n const mobilenetv1 = extractMobilenetV1Params();\n const prediction_layer = extractPredictionLayerParams();\n const extra_dim = tf.tensor3d(\n extractWeights(5118 * 4),\n [1, 5118, 4],\n );\n const output_layer = {\n extra_dim,\n };\n paramMappings.push({ paramPath: 'output_layer/extra_dim' });\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n params: {\n mobilenetv1,\n prediction_layer,\n output_layer,\n },\n paramMappings,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping } from '../common/index';\nimport { isTensor3D } from '../utils/index';\nimport { BoxPredictionParams, MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractPointwiseConvParams(prefix: string, idx: number, mappedPrefix: string): PointwiseConvParams {\n const filters = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/weights`, 4, `${mappedPrefix}/filters`);\n const batch_norm_offset = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/convolution_bn_offset`, 1, `${mappedPrefix}/batch_norm_offset`);\n return { filters, batch_norm_offset };\n }\n\n function extractConvPairParams(idx: number): MobileNetV1.ConvPairParams {\n const mappedPrefix = `mobilenetv1/conv_${idx}`;\n const prefixDepthwiseConv = `MobilenetV1/Conv2d_${idx}_depthwise`;\n const mappedPrefixDepthwiseConv = `${mappedPrefix}/depthwise_conv`;\n const mappedPrefixPointwiseConv = `${mappedPrefix}/pointwise_conv`;\n\n const filters = extractWeightEntry(`${prefixDepthwiseConv}/depthwise_weights`, 4, `${mappedPrefixDepthwiseConv}/filters`);\n const batch_norm_scale = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/gamma`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_scale`);\n const batch_norm_offset = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/beta`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_offset`);\n const batch_norm_mean = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_mean`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_mean`);\n const batch_norm_variance = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_variance`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_variance`);\n\n return {\n depthwise_conv: {\n filters,\n batch_norm_scale,\n batch_norm_offset,\n batch_norm_mean,\n batch_norm_variance,\n },\n pointwise_conv: extractPointwiseConvParams('MobilenetV1', idx, mappedPrefixPointwiseConv),\n };\n }\n\n function extractMobilenetV1Params(): MobileNetV1.Params {\n return {\n conv_0: extractPointwiseConvParams('MobilenetV1', 0, 'mobilenetv1/conv_0'),\n conv_1: extractConvPairParams(1),\n conv_2: extractConvPairParams(2),\n conv_3: extractConvPairParams(3),\n conv_4: extractConvPairParams(4),\n conv_5: extractConvPairParams(5),\n conv_6: extractConvPairParams(6),\n conv_7: extractConvPairParams(7),\n conv_8: extractConvPairParams(8),\n conv_9: extractConvPairParams(9),\n conv_10: extractConvPairParams(10),\n conv_11: extractConvPairParams(11),\n conv_12: extractConvPairParams(12),\n conv_13: extractConvPairParams(13),\n };\n }\n\n function extractConvParams(prefix: string, mappedPrefix: string): ConvParams {\n const filters = extractWeightEntry(`${prefix}/weights`, 4, `${mappedPrefix}/filters`);\n const bias = extractWeightEntry(`${prefix}/biases`, 1, `${mappedPrefix}/bias`);\n return { filters, bias };\n }\n\n function extractBoxPredictorParams(idx: number): BoxPredictionParams {\n const box_encoding_predictor = extractConvParams(\n `Prediction/BoxPredictor_${idx}/BoxEncodingPredictor`,\n `prediction_layer/box_predictor_${idx}/box_encoding_predictor`,\n );\n const class_predictor = extractConvParams(\n `Prediction/BoxPredictor_${idx}/ClassPredictor`,\n `prediction_layer/box_predictor_${idx}/class_predictor`,\n );\n return { box_encoding_predictor, class_predictor };\n }\n\n function extractPredictionLayerParams(): PredictionLayerParams {\n return {\n conv_0: extractPointwiseConvParams('Prediction', 0, 'prediction_layer/conv_0'),\n conv_1: extractPointwiseConvParams('Prediction', 1, 'prediction_layer/conv_1'),\n conv_2: extractPointwiseConvParams('Prediction', 2, 'prediction_layer/conv_2'),\n conv_3: extractPointwiseConvParams('Prediction', 3, 'prediction_layer/conv_3'),\n conv_4: extractPointwiseConvParams('Prediction', 4, 'prediction_layer/conv_4'),\n conv_5: extractPointwiseConvParams('Prediction', 5, 'prediction_layer/conv_5'),\n conv_6: extractPointwiseConvParams('Prediction', 6, 'prediction_layer/conv_6'),\n conv_7: extractPointwiseConvParams('Prediction', 7, 'prediction_layer/conv_7'),\n box_predictor_0: extractBoxPredictorParams(0),\n box_predictor_1: extractBoxPredictorParams(1),\n box_predictor_2: extractBoxPredictorParams(2),\n box_predictor_3: extractBoxPredictorParams(3),\n box_predictor_4: extractBoxPredictorParams(4),\n box_predictor_5: extractBoxPredictorParams(5),\n };\n }\n\n return {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n const {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n } = extractorsFactory(weightMap, paramMappings);\n const extra_dim = weightMap['Output/extra_dim'];\n paramMappings.push({ originalPath: 'Output/extra_dim', paramPath: 'output_layer/extra_dim' });\n if (!isTensor3D(extra_dim)) {\n throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${extra_dim}`);\n }\n\n const params = {\n mobilenetv1: extractMobilenetV1Params(),\n prediction_layer: extractPredictionLayerParams(),\n output_layer: {\n extra_dim,\n },\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { PointwiseConvParams } from './types';\n\nexport function pointwiseConvLayer(x: tf.Tensor4D, params: PointwiseConvParams, strides: [number, number]) {\n return tf.tidy(() => {\n let out = tf.conv2d(x, params.filters, strides, 'same');\n out = tf.add(out, params.batch_norm_offset);\n return tf.clipByValue(out, 0, 6);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\nimport { MobileNetV1 } from './types';\n\nconst epsilon = 0.0010000000474974513;\n\nfunction depthwiseConvLayer(x: tf.Tensor4D, params: MobileNetV1.DepthwiseConvParams, strides: [number, number]) {\n return tf.tidy(() => {\n let out = tf.depthwiseConv2d(x, params.filters, strides, 'same');\n out = tf.batchNorm(\n out,\n params.batch_norm_mean,\n params.batch_norm_variance,\n params.batch_norm_offset,\n params.batch_norm_scale,\n epsilon,\n );\n return tf.clipByValue(out, 0, 6);\n });\n}\n\nfunction getStridesForLayerIdx(layerIdx: number): [number, number] {\n return [2, 4, 6, 12].some((idx) => idx === layerIdx) ? [2, 2] : [1, 1];\n}\n\nexport function mobileNetV1(x: tf.Tensor4D, params: MobileNetV1.Params) {\n return tf.tidy(() => {\n let conv11;\n let out = pointwiseConvLayer(x, params.conv_0, [2, 2]);\n\n const convPairParams = [\n params.conv_1,\n params.conv_2,\n params.conv_3,\n params.conv_4,\n params.conv_5,\n params.conv_6,\n params.conv_7,\n params.conv_8,\n params.conv_9,\n params.conv_10,\n params.conv_11,\n params.conv_12,\n params.conv_13,\n ];\n\n convPairParams.forEach((param, i) => {\n const layerIdx = i + 1;\n const depthwiseConvStrides = getStridesForLayerIdx(layerIdx);\n out = depthwiseConvLayer(out, param.depthwise_conv, depthwiseConvStrides);\n out = pointwiseConvLayer(out, param.pointwise_conv, [1, 1]);\n if (layerIdx === 11) conv11 = out;\n });\n\n if (conv11 === null) {\n throw new Error('mobileNetV1 - output of conv layer 11 is null');\n }\n\n return {\n out,\n conv11: conv11 as any,\n };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nfunction IOU(boxes: tf.Tensor2D, i: number, j: number) {\n const boxesData = boxes.arraySync();\n const yminI = Math.min(boxesData[i][0], boxesData[i][2]);\n const xminI = Math.min(boxesData[i][1], boxesData[i][3]);\n const ymaxI = Math.max(boxesData[i][0], boxesData[i][2]);\n const xmaxI = Math.max(boxesData[i][1], boxesData[i][3]);\n const yminJ = Math.min(boxesData[j][0], boxesData[j][2]);\n const xminJ = Math.min(boxesData[j][1], boxesData[j][3]);\n const ymaxJ = Math.max(boxesData[j][0], boxesData[j][2]);\n const xmaxJ = Math.max(boxesData[j][1], boxesData[j][3]);\n const areaI = (ymaxI - yminI) * (xmaxI - xminI);\n const areaJ = (ymaxJ - yminJ) * (xmaxJ - xminJ);\n if (areaI <= 0 || areaJ <= 0) return 0.0;\n const intersectionYmin = Math.max(yminI, yminJ);\n const intersectionXmin = Math.max(xminI, xminJ);\n const intersectionYmax = Math.min(ymaxI, ymaxJ);\n const intersectionXmax = Math.min(xmaxI, xmaxJ);\n const intersectionArea = Math.max(intersectionYmax - intersectionYmin, 0.0) * Math.max(intersectionXmax - intersectionXmin, 0.0);\n return intersectionArea / (areaI + areaJ - intersectionArea);\n}\n\nexport function nonMaxSuppression(\n boxes: tf.Tensor2D,\n scores: number[],\n maxOutputSize: number,\n iouThreshold: number,\n scoreThreshold: number,\n): number[] {\n const numBoxes = boxes.shape[0];\n const outputSize = Math.min(maxOutputSize, numBoxes);\n\n const candidates = scores\n .map((score, boxIndex) => ({ score, boxIndex }))\n .filter((c) => c.score > scoreThreshold)\n .sort((c1, c2) => c2.score - c1.score);\n\n const suppressFunc = (x: number) => (x <= iouThreshold ? 1 : 0);\n const selected: number[] = [];\n\n candidates.forEach((c) => {\n if (selected.length >= outputSize) return;\n const originalScore = c.score;\n for (let j = selected.length - 1; j >= 0; --j) {\n const iou = IOU(boxes, c.boxIndex, selected[j]);\n if (iou === 0.0) continue;\n c.score *= suppressFunc(iou);\n if (c.score <= scoreThreshold) break;\n }\n if (originalScore === c.score) {\n selected.push(c.boxIndex);\n }\n });\n return selected;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { OutputLayerParams } from './types';\n\nfunction getCenterCoordinatesAndSizesLayer(x: tf.Tensor2D) {\n const vec = tf.unstack(tf.transpose(x, [1, 0]));\n\n const sizes = [\n tf.sub(vec[2], vec[0]),\n tf.sub(vec[3], vec[1]),\n ];\n const centers = [\n tf.add(vec[0], tf.div(sizes[0], 2)),\n tf.add(vec[1], tf.div(sizes[1], 2)),\n ];\n return { sizes, centers };\n}\n\nfunction decodeBoxesLayer(x0: tf.Tensor2D, x1: tf.Tensor2D) {\n const { sizes, centers } = getCenterCoordinatesAndSizesLayer(x0);\n\n const vec = tf.unstack(tf.transpose(x1, [1, 0]));\n const div0_out = tf.div(tf.mul(tf.exp(tf.div(vec[2], 5)), sizes[0]), 2);\n const add0_out = tf.add(tf.mul(tf.div(vec[0], 10), sizes[0]), centers[0]);\n const div1_out = tf.div(tf.mul(tf.exp(tf.div(vec[3], 5)), sizes[1]), 2);\n const add1_out = tf.add(tf.mul(tf.div(vec[1], 10), sizes[1]), centers[1]);\n\n return tf.transpose(\n tf.stack([\n tf.sub(add0_out, div0_out),\n tf.sub(add1_out, div1_out),\n tf.add(add0_out, div0_out),\n tf.add(add1_out, div1_out),\n ]),\n [1, 0],\n );\n}\n\nexport function outputLayer(boxPredictions: tf.Tensor4D, classPredictions: tf.Tensor4D, params: OutputLayerParams) {\n return tf.tidy(() => {\n const batchSize = boxPredictions.shape[0];\n\n let boxes = decodeBoxesLayer(\n tf.reshape(tf.tile(params.extra_dim, [batchSize, 1, 1]), [-1, 4]) as tf.Tensor2D,\n tf.reshape(boxPredictions, [-1, 4]) as tf.Tensor2D,\n );\n boxes = tf.reshape(boxes, [batchSize, (boxes.shape[0] / batchSize), 4]);\n\n const scoresAndClasses = tf.sigmoid(tf.slice(classPredictions, [0, 0, 1], [-1, -1, -1]));\n let scores = tf.slice(scoresAndClasses, [0, 0, 0], [-1, -1, 1]) as tf.Tensor;\n\n scores = tf.reshape(scores, [batchSize, scores.shape[1] as number]);\n\n const boxesByBatch = tf.unstack(boxes) as tf.Tensor2D[];\n const scoresByBatch = tf.unstack(scores) as tf.Tensor1D[];\n\n return { boxes: boxesByBatch, scores: scoresByBatch };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { convLayer } from '../common/index';\nimport { BoxPredictionParams } from './types';\n\nexport function boxPredictionLayer(\n x: tf.Tensor4D,\n params: BoxPredictionParams,\n) {\n return tf.tidy(() => {\n const batchSize = x.shape[0];\n const boxPredictionEncoding = tf.reshape(\n convLayer(x, params.box_encoding_predictor),\n [batchSize, -1, 1, 4],\n );\n const classPrediction = tf.reshape(\n convLayer(x, params.class_predictor),\n [batchSize, -1, 3],\n );\n return { boxPredictionEncoding, classPrediction };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { boxPredictionLayer } from './boxPredictionLayer';\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\nimport { PredictionLayerParams } from './types';\n\nexport function predictionLayer(\n x: tf.Tensor4D,\n conv11: tf.Tensor4D,\n params: PredictionLayerParams,\n) {\n return tf.tidy(() => {\n const conv0 = pointwiseConvLayer(x, params.conv_0, [1, 1]);\n const conv1 = pointwiseConvLayer(conv0, params.conv_1, [2, 2]);\n const conv2 = pointwiseConvLayer(conv1, params.conv_2, [1, 1]);\n const conv3 = pointwiseConvLayer(conv2, params.conv_3, [2, 2]);\n const conv4 = pointwiseConvLayer(conv3, params.conv_4, [1, 1]);\n const conv5 = pointwiseConvLayer(conv4, params.conv_5, [2, 2]);\n const conv6 = pointwiseConvLayer(conv5, params.conv_6, [1, 1]);\n const conv7 = pointwiseConvLayer(conv6, params.conv_7, [2, 2]);\n\n const boxPrediction0 = boxPredictionLayer(conv11, params.box_predictor_0);\n const boxPrediction1 = boxPredictionLayer(x, params.box_predictor_1);\n const boxPrediction2 = boxPredictionLayer(conv1, params.box_predictor_2);\n const boxPrediction3 = boxPredictionLayer(conv3, params.box_predictor_3);\n const boxPrediction4 = boxPredictionLayer(conv5, params.box_predictor_4);\n const boxPrediction5 = boxPredictionLayer(conv7, params.box_predictor_5);\n\n const boxPredictions = tf.concat([\n boxPrediction0.boxPredictionEncoding,\n boxPrediction1.boxPredictionEncoding,\n boxPrediction2.boxPredictionEncoding,\n boxPrediction3.boxPredictionEncoding,\n boxPrediction4.boxPredictionEncoding,\n boxPrediction5.boxPredictionEncoding,\n ], 1) as tf.Tensor4D;\n\n const classPredictions = tf.concat([\n boxPrediction0.classPrediction,\n boxPrediction1.classPrediction,\n boxPrediction2.classPrediction,\n boxPrediction3.classPrediction,\n boxPrediction4.classPrediction,\n boxPrediction5.classPrediction,\n ], 1) as tf.Tensor4D;\n\n return {\n boxPredictions,\n classPredictions,\n };\n });\n}\n", "export interface ISsdMobilenetv1Options {\n minConfidence?: number\n maxResults?: number\n}\n\nexport class SsdMobilenetv1Options {\n protected _name = 'SsdMobilenetv1Options';\n\n private _minConfidence: number;\n\n private _maxResults: number;\n\n constructor({ minConfidence, maxResults }: ISsdMobilenetv1Options = {}) {\n this._minConfidence = minConfidence || 0.5;\n this._maxResults = maxResults || 100;\n\n if (typeof this._minConfidence !== 'number' || this._minConfidence <= 0 || this._minConfidence >= 1) {\n throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);\n }\n\n if (typeof this._maxResults !== 'number') {\n throw new Error(`${this._name} - expected maxResults to be a number`);\n }\n }\n\n get minConfidence(): number { return this._minConfidence; }\n\n get maxResults(): number { return this._maxResults; }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Rect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { mobileNetV1 } from './mobileNetV1';\nimport { nonMaxSuppression } from './nonMaxSuppression';\nimport { outputLayer } from './outputLayer';\nimport { predictionLayer } from './predictionLayer';\nimport { ISsdMobilenetv1Options, SsdMobilenetv1Options } from './SsdMobilenetv1Options';\nimport { NetParams } from './types';\n\nexport class SsdMobilenetv1 extends NeuralNetwork {\n constructor() {\n super('SsdMobilenetv1');\n }\n\n public forwardInput(input: NetInput) {\n const { params } = this;\n if (!params) throw new Error('SsdMobilenetv1 - load model before inference');\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(512, false), 'float32');\n const x = tf.sub(tf.div(batchTensor, 127.5), 1) as tf.Tensor4D; // input is normalized -1..1\n const features = mobileNetV1(x, params.mobilenetv1);\n const { boxPredictions, classPredictions } = predictionLayer(features.out, features.conv11, params.prediction_layer);\n return outputLayer(boxPredictions, classPredictions, params.output_layer);\n });\n }\n\n public async forward(input: TNetInput) {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async locateFaces(input: TNetInput, options: ISsdMobilenetv1Options = {}): Promise {\n const { maxResults, minConfidence } = new SsdMobilenetv1Options(options);\n const netInput = await toNetInput(input);\n const { boxes: _boxes, scores: _scores } = this.forwardInput(netInput);\n const boxes = _boxes[0];\n const scores = _scores[0];\n for (let i = 1; i < _boxes.length; i++) {\n _boxes[i].dispose();\n _scores[i].dispose();\n }\n const scoresData = Array.from(scores.dataSync());\n const iouThreshold = 0.5;\n const indices = nonMaxSuppression(boxes, scoresData as number[], maxResults, iouThreshold, minConfidence);\n const reshapedDims = netInput.getReshapedInputDimensions(0);\n const inputSize = netInput.inputSize as number;\n const padX = inputSize / reshapedDims.width;\n const padY = inputSize / reshapedDims.height;\n const boxesData = boxes.arraySync();\n const results = indices\n .map((idx) => {\n const [top, bottom] = [\n Math.max(0, boxesData[idx][0]),\n Math.min(1.0, boxesData[idx][2]),\n ].map((val) => val * padY);\n const [left, right] = [\n Math.max(0, boxesData[idx][1]),\n Math.min(1.0, boxesData[idx][3]),\n ].map((val) => val * padX);\n return new FaceDetection(\n scoresData[idx] as number,\n new Rect(left, top, right - left, bottom - top),\n { height: netInput.getInputHeight(0), width: netInput.getInputWidth(0) },\n );\n });\n boxes.dispose();\n scores.dispose();\n return results;\n }\n\n protected getDefaultModelName(): string {\n return 'ssd_mobilenetv1_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import { SsdMobilenetv1 } from './SsdMobilenetv1';\n\nexport * from './SsdMobilenetv1';\nexport * from './SsdMobilenetv1Options';\n\nexport function createSsdMobilenetv1(weights: Float32Array) {\n const net = new SsdMobilenetv1();\n net.extractWeights(weights);\n return net;\n}\n\nexport function createFaceDetectionNet(weights: Float32Array) {\n return createSsdMobilenetv1(weights);\n}\n\n// alias for backward compatibily\nexport class FaceDetectionNet extends SsdMobilenetv1 {}\n", "import { Point } from '../classes/index';\n\nexport const IOU_THRESHOLD = 0.4;\n\nexport const BOX_ANCHORS = [\n new Point(0.738768, 0.874946),\n new Point(2.42204, 2.65704),\n new Point(4.30971, 7.04493),\n new Point(10.246, 4.59428),\n new Point(12.6868, 11.8741),\n];\n\nexport const BOX_ANCHORS_SEPARABLE = [\n new Point(1.603231, 2.094468),\n new Point(6.041143, 7.080126),\n new Point(2.882459, 3.518061),\n new Point(4.266906, 5.178857),\n new Point(9.041765, 10.66308),\n];\n\nexport const MEAN_RGB_SEPARABLE: [number, number, number] = [117.001, 114.697, 97.404];\n\nexport const DEFAULT_MODEL_NAME = 'tiny_yolov2_model';\nexport const DEFAULT_MODEL_NAME_SEPARABLE_CONV = 'tiny_yolov2_separable_conv_model';\n", "import { Point } from '../classes/Point';\n\nexport type TinyYolov2Config = {\n withSeparableConvs: boolean\n iouThreshold: number\n anchors: Point[]\n classes: string[]\n meanRgb?: [number, number, number]\n withClassScores?: boolean,\n filterSizes?: number[]\n isFirstLayerConv2d?: boolean\n}\n\nconst isNumber = (arg: any) => typeof arg === 'number';\n\nexport function validateConfig(config: any) {\n if (!config) {\n throw new Error(`invalid config: ${config}`);\n }\n\n if (typeof config.withSeparableConvs !== 'boolean') {\n throw new Error(`config.withSeparableConvs has to be a boolean, have: ${config.withSeparableConvs}`);\n }\n\n if (!isNumber(config.iouThreshold) || config.iouThreshold < 0 || config.iouThreshold > 1.0) {\n throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${config.iouThreshold}`);\n }\n\n if (\n !Array.isArray(config.classes)\n || !config.classes.length\n || !config.classes.every((c: any) => typeof c === 'string')\n ) {\n throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(config.classes)}`);\n }\n\n if (\n !Array.isArray(config.anchors)\n || !config.anchors.length\n || !config.anchors.map((a: any) => a || {}).every((a: any) => isNumber(a.x) && isNumber(a.y))\n ) {\n throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(config.anchors)}`);\n }\n\n if (config.meanRgb && (\n !Array.isArray(config.meanRgb)\n || config.meanRgb.length !== 3\n || !config.meanRgb.every(isNumber)\n )) {\n throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(config.meanRgb)}`);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function leaky(x: tf.Tensor4D): tf.Tensor4D {\n return tf.tidy(() => {\n const min = tf.mul(x, tf.scalar(0.10000000149011612));\n return tf.add(tf.relu(tf.sub(x, min)), min);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { leaky } from './leaky';\nimport { ConvWithBatchNorm } from './types';\n\nexport function convWithBatchNorm(x: tf.Tensor4D, params: ConvWithBatchNorm): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]) as tf.Tensor4D;\n out = tf.conv2d(out, params.conv.filters, [1, 1], 'valid');\n out = tf.sub(out, params.bn.sub);\n out = tf.mul(out, params.bn.truediv);\n out = tf.add(out, params.conv.bias);\n return leaky(out);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { SeparableConvParams } from '../common/types';\nimport { leaky } from './leaky';\n\nexport function depthwiseSeparableConv(x: tf.Tensor4D, params: SeparableConvParams): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]) as tf.Tensor4D;\n out = tf.separableConv2d(out, params.depthwise_filter, params.pointwise_filter, [1, 1], 'valid');\n out = tf.add(out, params.bias);\n return leaky(out);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { extractConvParamsFactory } from '../common/index';\nimport { extractSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\nimport { extractWeightsFactory } from '../common/extractWeightsFactory';\nimport { ExtractWeightsFunction, ParamMapping } from '../common/types';\nimport { TinyYolov2Config } from './config';\nimport { BatchNorm, ConvWithBatchNorm, TinyYolov2NetParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n\n function extractBatchNormParams(size: number, mappedPrefix: string): BatchNorm {\n const sub = tf.tensor1d(extractWeights(size));\n const truediv = tf.tensor1d(extractWeights(size));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/sub` },\n { paramPath: `${mappedPrefix}/truediv` },\n );\n return { sub, truediv };\n }\n\n function extractConvWithBatchNormParams(channelsIn: number, channelsOut: number, mappedPrefix: string): ConvWithBatchNorm {\n const conv = extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv`);\n const bn = extractBatchNormParams(channelsOut, `${mappedPrefix}/bn`);\n return { conv, bn };\n }\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n return {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n };\n}\n\nexport function extractParams(\n weights: Float32Array,\n config: TinyYolov2Config,\n boxEncodingSize: number,\n filterSizes: number[],\n): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const paramMappings: ParamMapping[] = [];\n const {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n } = extractorsFactory(extractWeights, paramMappings);\n let params: TinyYolov2NetParams;\n\n if (config.withSeparableConvs) {\n const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes;\n const conv0 = config.isFirstLayerConv2d\n ? extractConvParams(s0, s1, 3, 'conv0')\n : extractSeparableConvParams(s0, s1, 'conv0');\n const conv1 = extractSeparableConvParams(s1, s2, 'conv1');\n const conv2 = extractSeparableConvParams(s2, s3, 'conv2');\n const conv3 = extractSeparableConvParams(s3, s4, 'conv3');\n const conv4 = extractSeparableConvParams(s4, s5, 'conv4');\n const conv5 = extractSeparableConvParams(s5, s6, 'conv5');\n const conv6 = s7 ? extractSeparableConvParams(s6, s7, 'conv6') : undefined;\n const conv7 = s8 ? extractSeparableConvParams(s7, s8, 'conv7') : undefined;\n const conv8 = extractConvParams(s8 || s7 || s6, 5 * boxEncodingSize, 1, 'conv8');\n params = {\n conv0, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8,\n };\n } else {\n const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes;\n const conv0 = extractConvWithBatchNormParams(s0, s1, 'conv0');\n const conv1 = extractConvWithBatchNormParams(s1, s2, 'conv1');\n const conv2 = extractConvWithBatchNormParams(s2, s3, 'conv2');\n const conv3 = extractConvWithBatchNormParams(s3, s4, 'conv3');\n const conv4 = extractConvWithBatchNormParams(s4, s5, 'conv4');\n const conv5 = extractConvWithBatchNormParams(s5, s6, 'conv5');\n const conv6 = extractConvWithBatchNormParams(s6, s7, 'conv6');\n const conv7 = extractConvWithBatchNormParams(s7, s8, 'conv7');\n const conv8 = extractConvParams(s8, 5 * boxEncodingSize, 1, 'conv8');\n params = {\n conv0, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8,\n };\n }\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from '../common/index';\nimport { disposeUnusedWeightTensors } from '../common/disposeUnusedWeightTensors';\nimport { loadSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\nimport { extractWeightEntryFactory } from '../common/extractWeightEntryFactory';\nimport { ParamMapping } from '../common/types';\nimport { TinyYolov2Config } from './config';\nimport { BatchNorm, ConvWithBatchNorm, TinyYolov2NetParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractBatchNormParams(prefix: string): BatchNorm {\n const sub = extractWeightEntry(`${prefix}/sub`, 1);\n const truediv = extractWeightEntry(`${prefix}/truediv`, 1);\n return { sub, truediv };\n }\n\n function extractConvParams(prefix: string): ConvParams {\n const filters = extractWeightEntry(`${prefix}/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { filters, bias };\n }\n\n function extractConvWithBatchNormParams(prefix: string): ConvWithBatchNorm {\n const conv = extractConvParams(`${prefix}/conv`);\n const bn = extractBatchNormParams(`${prefix}/bn`);\n return { conv, bn };\n }\n\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n return {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n config: TinyYolov2Config,\n): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n } = extractorsFactory(weightMap, paramMappings);\n\n let params: TinyYolov2NetParams;\n\n if (config.withSeparableConvs) {\n // eslint-disable-next-line no-mixed-operators\n const numFilters = (config.filterSizes && config.filterSizes.length || 9);\n params = {\n conv0: config.isFirstLayerConv2d ? extractConvParams('conv0') : extractSeparableConvParams('conv0'),\n conv1: extractSeparableConvParams('conv1'),\n conv2: extractSeparableConvParams('conv2'),\n conv3: extractSeparableConvParams('conv3'),\n conv4: extractSeparableConvParams('conv4'),\n conv5: extractSeparableConvParams('conv5'),\n conv6: numFilters > 7 ? extractSeparableConvParams('conv6') : undefined,\n conv7: numFilters > 8 ? extractSeparableConvParams('conv7') : undefined,\n conv8: extractConvParams('conv8'),\n };\n } else {\n params = {\n conv0: extractConvWithBatchNormParams('conv0'),\n conv1: extractConvWithBatchNormParams('conv1'),\n conv2: extractConvWithBatchNormParams('conv2'),\n conv3: extractConvWithBatchNormParams('conv3'),\n conv4: extractConvWithBatchNormParams('conv4'),\n conv5: extractConvWithBatchNormParams('conv5'),\n conv6: extractConvWithBatchNormParams('conv6'),\n conv7: extractConvWithBatchNormParams('conv7'),\n conv8: extractConvParams('conv8'),\n };\n }\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n return { params, paramMappings };\n}\n", "export interface ITinyYolov2Options {\n inputSize?: number\n scoreThreshold?: number\n}\n\nexport class TinyYolov2Options {\n protected _name = 'TinyYolov2Options';\n\n private _inputSize: number;\n\n private _scoreThreshold: number;\n\n constructor({ inputSize, scoreThreshold }: ITinyYolov2Options = {}) {\n this._inputSize = inputSize || 416;\n this._scoreThreshold = scoreThreshold || 0.5;\n\n if (typeof this._inputSize !== 'number' || this._inputSize % 32 !== 0) {\n throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);\n }\n\n if (typeof this._scoreThreshold !== 'number' || this._scoreThreshold <= 0 || this._scoreThreshold >= 1) {\n throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`);\n }\n }\n\n get inputSize(): number { return this._inputSize; }\n\n get scoreThreshold(): number { return this._scoreThreshold; }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { BoundingBox } from '../classes/BoundingBox';\nimport { Dimensions } from '../classes/Dimensions';\nimport { ObjectDetection } from '../classes/ObjectDetection';\nimport { convLayer } from '../common/index';\nimport { ConvParams, SeparableConvParams } from '../common/types';\nimport { toNetInput } from '../dom/index';\nimport { NetInput } from '../dom/NetInput';\nimport { TNetInput } from '../dom/types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { sigmoid } from '../ops/index';\nimport { nonMaxSuppression } from '../ops/nonMaxSuppression';\nimport { normalize } from '../ops/normalize';\nimport { TinyYolov2Config, validateConfig } from './config';\nimport { convWithBatchNorm } from './convWithBatchNorm';\nimport { depthwiseSeparableConv } from './depthwiseSeparableConv';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { leaky } from './leaky';\nimport { ITinyYolov2Options, TinyYolov2Options } from './TinyYolov2Options';\nimport { DefaultTinyYolov2NetParams, MobilenetParams, TinyYolov2NetParams } from './types';\n\nexport class TinyYolov2Base extends NeuralNetwork {\n public static DEFAULT_FILTER_SIZES = [3, 16, 32, 64, 128, 256, 512, 1024, 1024];\n\n private _config: TinyYolov2Config;\n\n constructor(config: TinyYolov2Config) {\n super('TinyYolov2');\n validateConfig(config);\n this._config = config;\n }\n\n public get config(): TinyYolov2Config {\n return this._config;\n }\n\n public get withClassScores(): boolean {\n return this.config.withClassScores || this.config.classes.length > 1;\n }\n\n public get boxEncodingSize(): number {\n return 5 + (this.withClassScores ? this.config.classes.length : 0);\n }\n\n public runTinyYolov2(x: tf.Tensor4D, params: DefaultTinyYolov2NetParams): tf.Tensor4D {\n let out = convWithBatchNorm(x, params.conv0);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv1);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv2);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv3);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv4);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv5);\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\n out = convWithBatchNorm(out, params.conv6);\n out = convWithBatchNorm(out, params.conv7);\n return convLayer(out, params.conv8, 'valid', false);\n }\n\n public runMobilenet(x: tf.Tensor4D, params: MobilenetParams): tf.Tensor4D {\n let out = this.config.isFirstLayerConv2d\n ? leaky(convLayer(x, params.conv0 as ConvParams, 'valid', false))\n : depthwiseSeparableConv(x, params.conv0 as SeparableConvParams);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv1);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv2);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv3);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv4);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv5);\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\n out = params.conv6 ? depthwiseSeparableConv(out, params.conv6) : out;\n out = params.conv7 ? depthwiseSeparableConv(out, params.conv7) : out;\n return convLayer(out, params.conv8, 'valid', false);\n }\n\n public forwardInput(input: NetInput, inputSize: number): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('TinyYolov2 - load model before inference');\n }\n\n return tf.tidy(() => {\n let batchTensor = tf.cast(input.toBatchTensor(inputSize, false), 'float32');\n batchTensor = this.config.meanRgb\n ? normalize(batchTensor, this.config.meanRgb)\n : batchTensor;\n batchTensor = batchTensor.div(255) as tf.Tensor4D;\n return this.config.withSeparableConvs\n ? this.runMobilenet(batchTensor, params as MobilenetParams)\n : this.runTinyYolov2(batchTensor, params as DefaultTinyYolov2NetParams);\n });\n }\n\n public async forward(input: TNetInput, inputSize: number): Promise {\n return this.forwardInput(await toNetInput(input), inputSize);\n }\n\n public async detect(input: TNetInput, forwardParams: ITinyYolov2Options = {}): Promise {\n const { inputSize, scoreThreshold } = new TinyYolov2Options(forwardParams);\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput, inputSize);\n const out0 = tf.tidy(() => tf.unstack(out)[0].expandDims()) as tf.Tensor4D;\n const inputDimensions = {\n width: netInput.getInputWidth(0),\n height: netInput.getInputHeight(0),\n };\n\n const results = await this.extractBoxes(out0, netInput.getReshapedInputDimensions(0), scoreThreshold);\n out.dispose();\n out0.dispose();\n\n const boxes = results.map((res) => res.box);\n const scores = results.map((res) => res.score);\n const classScores = results.map((res) => res.classScore);\n const classNames = results.map((res) => this.config.classes[res.label]);\n\n const indices = nonMaxSuppression(\n boxes.map((box) => box.rescale(inputSize)),\n scores,\n this.config.iouThreshold,\n true,\n );\n\n const detections = indices.map((idx) => new ObjectDetection(\n scores[idx],\n classScores[idx],\n classNames[idx],\n boxes[idx],\n inputDimensions,\n ));\n return detections;\n }\n\n protected getDefaultModelName(): string {\n return '';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap, this.config);\n }\n\n protected extractParams(weights: Float32Array) {\n const filterSizes = this.config.filterSizes || TinyYolov2Base.DEFAULT_FILTER_SIZES;\n\n const numFilters = filterSizes ? filterSizes.length : undefined;\n if (numFilters !== 7 && numFilters !== 8 && numFilters !== 9) {\n throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${numFilters} filterSizes in config`);\n }\n return extractParams(weights, this.config, this.boxEncodingSize, filterSizes);\n }\n\n protected async extractBoxes(\n outputTensor: tf.Tensor4D,\n inputBlobDimensions: Dimensions,\n scoreThreshold?: number,\n ) {\n const { width, height } = inputBlobDimensions;\n const inputSize = Math.max(width, height);\n const correctionFactorX = inputSize / width;\n const correctionFactorY = inputSize / height;\n\n const numCells = outputTensor.shape[1];\n const numBoxes = this.config.anchors.length;\n\n const [boxesTensor, scoresTensor, classScoresTensor] = tf.tidy(() => {\n const reshaped = outputTensor.reshape([numCells, numCells, numBoxes, this.boxEncodingSize]);\n\n const boxes = reshaped.slice([0, 0, 0, 0], [numCells, numCells, numBoxes, 4]);\n const scores = reshaped.slice([0, 0, 0, 4], [numCells, numCells, numBoxes, 1]);\n const classScores = this.withClassScores\n ? tf.softmax(reshaped.slice([0, 0, 0, 5], [numCells, numCells, numBoxes, this.config.classes.length]), 3)\n : tf.scalar(0);\n return [boxes, scores, classScores];\n });\n\n const results = [] as any;\n const scoresData = await scoresTensor.array();\n const boxesData = await boxesTensor.array();\n for (let row = 0; row < numCells; row++) {\n for (let col = 0; col < numCells; col++) {\n for (let anchor = 0; anchor < numBoxes; anchor++) {\n const score = sigmoid(scoresData[row][col][anchor][0]);\n if (!scoreThreshold || score > scoreThreshold) {\n const ctX = ((col + sigmoid(boxesData[row][col][anchor][0])) / numCells) * correctionFactorX;\n const ctY = ((row + sigmoid(boxesData[row][col][anchor][1])) / numCells) * correctionFactorY;\n const widthLocal = ((Math.exp(boxesData[row][col][anchor][2]) * this.config.anchors[anchor].x) / numCells) * correctionFactorX;\n const heightLocal = ((Math.exp(boxesData[row][col][anchor][3]) * this.config.anchors[anchor].y) / numCells) * correctionFactorY;\n const x = (ctX - (widthLocal / 2));\n const y = (ctY - (heightLocal / 2));\n const pos = { row, col, anchor };\n const { classScore, label } = this.withClassScores\n ? await this.extractPredictedClass(classScoresTensor as tf.Tensor4D, pos)\n : { classScore: 1, label: 0 };\n results.push({\n box: new BoundingBox(x, y, x + widthLocal, y + heightLocal),\n score,\n classScore: score * classScore,\n label,\n ...pos,\n });\n }\n }\n }\n }\n\n boxesTensor.dispose();\n scoresTensor.dispose();\n classScoresTensor.dispose();\n return results;\n }\n\n private async extractPredictedClass(classesTensor: tf.Tensor4D, pos: { row: number, col: number, anchor: number }) {\n const { row, col, anchor } = pos;\n const classesData = await classesTensor.array();\n return Array(this.config.classes.length).fill(0)\n .map((_, i) => classesData[row][col][anchor][i])\n .map((classScore, label) => ({\n classScore,\n label,\n }))\n .reduce((max, curr) => (max.classScore > curr.classScore ? max : curr));\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection, Point } from '../classes/index';\nimport { ParamMapping } from '../common/types';\nimport { TNetInput } from '../dom/types';\nimport {\n BOX_ANCHORS,\n BOX_ANCHORS_SEPARABLE,\n DEFAULT_MODEL_NAME,\n DEFAULT_MODEL_NAME_SEPARABLE_CONV,\n IOU_THRESHOLD,\n MEAN_RGB_SEPARABLE,\n} from './const';\nimport { TinyYolov2Base } from './TinyYolov2Base';\nimport { ITinyYolov2Options } from './TinyYolov2Options';\nimport { TinyYolov2NetParams } from './types';\n\nexport class TinyYolov2 extends TinyYolov2Base {\n constructor(withSeparableConvs = true) {\n const config = {\n withSeparableConvs,\n iouThreshold: IOU_THRESHOLD,\n classes: ['face'],\n ...(withSeparableConvs\n ? {\n anchors: BOX_ANCHORS_SEPARABLE,\n meanRgb: MEAN_RGB_SEPARABLE,\n }\n : {\n anchors: BOX_ANCHORS,\n withClassScores: true,\n }),\n };\n\n super(config);\n }\n\n public get withSeparableConvs(): boolean {\n return this.config.withSeparableConvs;\n }\n\n public get anchors(): Point[] {\n return this.config.anchors;\n }\n\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\n const objectDetections = await this.detect(input, forwardParams);\n return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }));\n }\n\n protected override getDefaultModelName(): string {\n return this.withSeparableConvs ? DEFAULT_MODEL_NAME_SEPARABLE_CONV : DEFAULT_MODEL_NAME;\n }\n\n protected override extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n return super.extractParamsFromWeightMap(weightMap);\n }\n}\n", "import { TinyYolov2 } from './TinyYolov2';\n\nexport * from './TinyYolov2Options';\nexport * from './config';\nexport * from './types';\nexport { TinyYolov2 };\n\nexport function createTinyYolov2(weights: Float32Array, withSeparableConvs = true) {\n const net = new TinyYolov2(withSeparableConvs);\n net.extractWeights(weights);\n return net;\n}\n", "import { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\n\nexport type ITinyFaceDetectorOptions = ITinyYolov2Options\n\nexport class TinyFaceDetectorOptions extends TinyYolov2Options {\n protected override _name = 'TinyFaceDetectorOptions';\n}\n", "export class ComposableTask {\n // eslint-disable-next-line no-unused-vars\n public async then(onfulfilled: (value: T) => T | PromiseLike): Promise {\n return onfulfilled(await this.run());\n }\n\n public async run(): Promise {\n throw new Error('ComposableTask - run is not implemented');\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { extractFaces, extractFaceTensors, TNetInput } from '../dom/index';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\n\nexport async function extractAllFacesAndComputeResults, TResult>(\n parentResults: TSource[],\n input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n computeResults: (faces: Array) => Promise,\n extractedFaces?: Array | null,\n // eslint-disable-next-line no-unused-vars\n getRectForAlignment: (parentResult: WithFaceLandmarks) => FaceDetection = ({ alignedRect }) => alignedRect,\n) {\n const faceBoxes = parentResults.map((parentResult) => (isWithFaceLandmarks(parentResult)\n ? getRectForAlignment(parentResult)\n : parentResult.detection));\n const faces: Array = extractedFaces || (\n input instanceof tf.Tensor\n ? await extractFaceTensors(input, faceBoxes)\n : await extractFaces(input, faceBoxes)\n );\n const results = await computeResults(faces);\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n return results;\n}\n\nexport async function extractSingleFaceAndComputeResult, TResult>(\n parentResult: TSource,\n input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n computeResult: (face: HTMLCanvasElement | tf.Tensor3D) => Promise,\n extractedFaces?: Array | null,\n // eslint-disable-next-line no-unused-vars\n getRectForAlignment?: (parentResultLocal: WithFaceLandmarks) => FaceDetection,\n) {\n return extractAllFacesAndComputeResults(\n [parentResult],\n input,\n async (faces) => computeResult(faces[0]),\n extractedFaces,\n getRectForAlignment,\n );\n}\n", "import { Point } from '../classes/index';\n\nexport const IOU_THRESHOLD = 0.4;\n\nexport const BOX_ANCHORS = [\n new Point(1.603231, 2.094468),\n new Point(6.041143, 7.080126),\n new Point(2.882459, 3.518061),\n new Point(4.266906, 5.178857),\n new Point(9.041765, 10.66308),\n];\n\nexport const MEAN_RGB: [number, number, number] = [117.001, 114.697, 97.404];\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection, Point } from '../classes/index';\nimport { ParamMapping } from '../common/index';\nimport { TNetInput } from '../dom/index';\nimport { ITinyYolov2Options } from '../tinyYolov2/index';\nimport { TinyYolov2Base } from '../tinyYolov2/TinyYolov2Base';\nimport { TinyYolov2NetParams } from '../tinyYolov2/types';\nimport { BOX_ANCHORS, IOU_THRESHOLD, MEAN_RGB } from './const';\n\nexport class TinyFaceDetector extends TinyYolov2Base {\n constructor() {\n const config = {\n withSeparableConvs: true,\n iouThreshold: IOU_THRESHOLD,\n classes: ['face'],\n anchors: BOX_ANCHORS,\n meanRgb: MEAN_RGB,\n isFirstLayerConv2d: true,\n filterSizes: [3, 16, 32, 64, 128, 256, 512],\n };\n\n super(config);\n }\n\n public get anchors(): Point[] {\n return this.config.anchors;\n }\n\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\n const objectDetections = await this.detect(input, forwardParams);\n return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }));\n }\n\n protected override getDefaultModelName(): string {\n return 'tiny_face_detector_model';\n }\n\n protected override extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n return super.extractParamsFromWeightMap(weightMap);\n }\n}\n", "import { AgeGenderNet } from '../ageGenderNet/AgeGenderNet';\nimport { AgeAndGenderPrediction } from '../ageGenderNet/types';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { TNetInput } from '../dom/index';\nimport { FaceExpressionNet } from '../faceExpressionNet/FaceExpressionNet';\nimport { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\nimport { FaceRecognitionNet } from '../faceRecognitionNet/FaceRecognitionNet';\nimport { SsdMobilenetv1 } from '../ssdMobilenetv1/SsdMobilenetv1';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { TinyFaceDetector } from '../tinyFaceDetector/TinyFaceDetector';\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\nimport { ITinyYolov2Options, TinyYolov2 } from '../tinyYolov2/index';\n\nexport const nets = {\n ssdMobilenetv1: new SsdMobilenetv1(),\n tinyFaceDetector: new TinyFaceDetector(),\n tinyYolov2: new TinyYolov2(),\n faceLandmark68Net: new FaceLandmark68Net(),\n faceLandmark68TinyNet: new FaceLandmark68TinyNet(),\n faceRecognitionNet: new FaceRecognitionNet(),\n faceExpressionNet: new FaceExpressionNet(),\n ageGenderNet: new AgeGenderNet(),\n};\n\n/**\n * Attempts to detect all faces in an image using SSD Mobilenetv1 Network.\n *\n * @param input The input image.\n * @param options (optional, default: see SsdMobilenetv1Options constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const ssdMobilenetv1 = (input: TNetInput, options: SsdMobilenetv1Options): Promise => nets.ssdMobilenetv1.locateFaces(input, options);\n\n/**\n * Attempts to detect all faces in an image using the Tiny Face Detector.\n *\n * @param input The input image.\n * @param options (optional, default: see TinyFaceDetectorOptions constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const tinyFaceDetector = (input: TNetInput, options: TinyFaceDetectorOptions): Promise => nets.tinyFaceDetector.locateFaces(input, options);\n\n/**\n * Attempts to detect all faces in an image using the Tiny Yolov2 Network.\n *\n * @param input The input image.\n * @param options (optional, default: see TinyYolov2Options constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const tinyYolov2 = (input: TNetInput, options: ITinyYolov2Options): Promise => nets.tinyYolov2.locateFaces(input, options);\n\n/**\n * Detects the 68 point face landmark positions of the face shown in an image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns 68 point face landmarks or array thereof in case of batch input.\n */\nexport const detectFaceLandmarks = (input: TNetInput): Promise => nets.faceLandmark68Net.detectLandmarks(input);\n\n/**\n * Detects the 68 point face landmark positions of the face shown in an image\n * using a tinier version of the 68 point face landmark model, which is slightly\n * faster at inference, but also slightly less accurate.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns 68 point face landmarks or array thereof in case of batch input.\n */\nexport const detectFaceLandmarksTiny = (input: TNetInput): Promise => nets.faceLandmark68TinyNet.detectLandmarks(input);\n\n/**\n * Computes a 128 entry vector (face descriptor / face embeddings) from the face shown in an image,\n * which uniquely represents the features of that persons face. The computed face descriptor can\n * be used to measure the similarity between faces, by computing the euclidean distance of two\n * face descriptors.\n *\n * @param inputs The face image extracted from the aligned bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Face descriptor with 128 entries or array thereof in case of batch input.\n */\nexport const computeFaceDescriptor = (input: TNetInput): Promise => nets.faceRecognitionNet.computeFaceDescriptor(input);\n\n/**\n * Recognizes the facial expressions from a face image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Facial expressions with corresponding probabilities or array thereof in case of batch input.\n */\nexport const recognizeFaceExpressions = (input: TNetInput): Promise => nets.faceExpressionNet.predictExpressions(input);\n\n/**\n * Predicts age and gender from a face image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Predictions with age, gender and gender probability or array thereof in case of batch input.\n */\nexport const predictAgeAndGender = (input: TNetInput): Promise => nets.ageGenderNet.predictAgeAndGender(input);\n\nexport const loadSsdMobilenetv1Model = (url: string) => nets.ssdMobilenetv1.load(url);\nexport const loadTinyFaceDetectorModel = (url: string) => nets.tinyFaceDetector.load(url);\nexport const loadTinyYolov2Model = (url: string) => nets.tinyYolov2.load(url);\nexport const loadFaceLandmarkModel = (url: string) => nets.faceLandmark68Net.load(url);\nexport const loadFaceLandmarkTinyModel = (url: string) => nets.faceLandmark68TinyNet.load(url);\nexport const loadFaceRecognitionModel = (url: string) => nets.faceRecognitionNet.load(url);\nexport const loadFaceExpressionModel = (url: string) => nets.faceExpressionNet.load(url);\nexport const loadAgeGenderModel = (url: string) => nets.ageGenderNet.load(url);\n\n// backward compatibility\nexport const loadFaceDetectionModel = loadSsdMobilenetv1Model;\nexport const locateFaces = ssdMobilenetv1;\nexport const detectLandmarks = detectFaceLandmarks;\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { TNetInput } from '../dom/index';\nimport { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { extendWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport { PredictAllAgeAndGenderTask, PredictAllAgeAndGenderWithFaceAlignmentTask, PredictSingleAgeAndGenderTask, PredictSingleAgeAndGenderWithFaceAlignmentTask } from './PredictAgeAndGenderTask';\n\nexport class PredictFaceExpressionsTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected extractedFaces?: Array,\n ) {\n super();\n }\n}\n\nexport class PredictAllFaceExpressionsTask> extends PredictFaceExpressionsTaskBase[], TSource[]> {\n public override async run(): Promise[]> {\n const parentResults = await this.parentTask;\n\n const faceExpressionsByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(\n faces.map((face) => nets.faceExpressionNet.predictExpressions(face) as Promise),\n ),\n this.extractedFaces,\n );\n\n return parentResults.map(\n (parentResult, i) => extendWithFaceExpressions(parentResult, faceExpressionsByFace[i]),\n );\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderTask(this, this.input);\n }\n}\n\nexport class PredictSingleFaceExpressionsTask> extends PredictFaceExpressionsTaskBase | undefined, TSource | undefined> {\n public override async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const faceExpressions = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.faceExpressionNet.predictExpressions(face) as Promise,\n this.extractedFaces,\n );\n\n return extendWithFaceExpressions(parentResult, faceExpressions);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderTask(this, this.input);\n }\n}\n\nexport class PredictAllFaceExpressionsWithFaceAlignmentTask>> extends PredictAllFaceExpressionsTask {\n override withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class PredictSingleFaceExpressionsWithFaceAlignmentTask>> extends PredictSingleFaceExpressionsTask {\n override withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { AgeAndGenderPrediction } from '../ageGenderNet/types';\nimport { TNetInput } from '../dom/index';\nimport { extendWithAge, WithAge } from '../factories/WithAge';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { extendWithGender, WithGender } from '../factories/WithGender';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport { PredictAllFaceExpressionsTask, PredictAllFaceExpressionsWithFaceAlignmentTask, PredictSingleFaceExpressionsTask, PredictSingleFaceExpressionsWithFaceAlignmentTask } from './PredictFaceExpressionsTask';\n\nexport class PredictAgeAndGenderTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected extractedFaces?: Array,\n ) {\n super();\n }\n}\n\nexport class PredictAllAgeAndGenderTask> extends PredictAgeAndGenderTaskBase>[], TSource[]> {\n public override async run(): Promise>[]> {\n const parentResults = await this.parentTask;\n const ageAndGenderByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(faces.map((face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise)),\n this.extractedFaces,\n );\n return parentResults.map((parentResult, i) => {\n const { age, gender, genderProbability } = ageAndGenderByFace[i];\n return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n });\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictSingleAgeAndGenderTask> extends PredictAgeAndGenderTaskBase> | undefined, TSource | undefined> {\n public override async run(): Promise> | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) return undefined;\n const { age, gender, genderProbability } = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise,\n this.extractedFaces,\n );\n return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictAllAgeAndGenderWithFaceAlignmentTask>> extends PredictAllAgeAndGenderTask {\n override withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class PredictSingleAgeAndGenderWithFaceAlignmentTask>> extends PredictSingleAgeAndGenderTask {\n override withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { TNetInput } from '../dom/index';\nimport { extendWithFaceDescriptor, WithFaceDescriptor } from '../factories/WithFaceDescriptor';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport { PredictAllAgeAndGenderWithFaceAlignmentTask, PredictSingleAgeAndGenderWithFaceAlignmentTask } from './PredictAgeAndGenderTask';\nimport { PredictAllFaceExpressionsWithFaceAlignmentTask, PredictSingleFaceExpressionsWithFaceAlignmentTask } from './PredictFaceExpressionsTask';\n\nexport class ComputeFaceDescriptorsTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n ) {\n super();\n }\n}\n\nexport class ComputeAllFaceDescriptorsTask>> extends ComputeFaceDescriptorsTaskBase[], TSource[]> {\n public override async run(): Promise[]> {\n const parentResults = await this.parentTask;\n const descriptors = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n (faces) => Promise.all(faces.map((face) => nets.faceRecognitionNet.computeFaceDescriptor(face) as Promise)),\n null,\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\n );\n return descriptors.map((descriptor, i) => extendWithFaceDescriptor(parentResults[i], descriptor));\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n}\n\nexport class ComputeSingleFaceDescriptorTask>> extends ComputeFaceDescriptorsTaskBase | undefined, TSource | undefined> {\n public override async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) return undefined;\n const descriptor = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.faceRecognitionNet.computeFaceDescriptor(face) as Promise,\n null,\n // eslint-disable-next-line no-shadow, @typescript-eslint/no-shadow\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\n );\n return extendWithFaceDescriptor(parentResult, descriptor);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { extractFaces, extractFaceTensors, TNetInput } from '../dom/index';\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { extendWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { nets } from './nets';\nimport { PredictAllAgeAndGenderWithFaceAlignmentTask, PredictSingleAgeAndGenderWithFaceAlignmentTask } from './PredictAgeAndGenderTask';\nimport { PredictAllFaceExpressionsWithFaceAlignmentTask, PredictSingleFaceExpressionsWithFaceAlignmentTask } from './PredictFaceExpressionsTask';\n\nexport class DetectFaceLandmarksTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected useTinyLandmarkNet: boolean,\n ) {\n super();\n }\n\n protected get landmarkNet(): FaceLandmark68Net | FaceLandmark68TinyNet {\n return this.useTinyLandmarkNet\n ? nets.faceLandmark68TinyNet\n : nets.faceLandmark68Net;\n }\n}\n\nexport class DetectAllFaceLandmarksTask> extends DetectFaceLandmarksTaskBase[], TSource[]> {\n public override async run(): Promise[]> {\n const parentResults = await this.parentTask;\n const detections = parentResults.map((res) => res.detection);\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, detections)\n : await extractFaces(this.input, detections);\n const faceLandmarksByFace = await Promise.all(faces.map((face) => this.landmarkNet.detectLandmarks(face))) as FaceLandmarks68[];\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n const result = parentResults\n .filter((_parentResult, i) => faceLandmarksByFace[i])\n .map((parentResult, i) => extendWithFaceLandmarks(parentResult, faceLandmarksByFace[i]));\n return result;\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class DetectSingleFaceLandmarksTask> extends DetectFaceLandmarksTaskBase | undefined, TSource | undefined> {\n public override async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n const { detection } = parentResult;\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, [detection])\n : await extractFaces(this.input, [detection]);\n const landmarks = await this.landmarkNet.detectLandmarks(faces[0]) as FaceLandmarks68;\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n return extendWithFaceLandmarks(parentResult, landmarks);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { TNetInput } from '../dom/index';\nimport { extendWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\nimport { TinyYolov2Options } from '../tinyYolov2/index';\nimport { ComposableTask } from './ComposableTask';\nimport { DetectAllFaceLandmarksTask, DetectSingleFaceLandmarksTask } from './DetectFaceLandmarksTasks';\nimport { nets } from './nets';\nimport { PredictAllAgeAndGenderTask, PredictSingleAgeAndGenderTask } from './PredictAgeAndGenderTask';\nimport { PredictAllFaceExpressionsTask, PredictSingleFaceExpressionsTask } from './PredictFaceExpressionsTask';\nimport { FaceDetectionOptions } from './types';\n\nexport class DetectFacesTaskBase extends ComposableTask {\n // eslint-disable-next-line no-unused-vars\n constructor(protected input: TNetInput, protected options: FaceDetectionOptions = new SsdMobilenetv1Options()) {\n super();\n }\n}\n\nexport class DetectAllFacesTask extends DetectFacesTaskBase {\n public override async run(): Promise {\n const { input, options } = this;\n let result;\n if (options instanceof TinyFaceDetectorOptions) result = nets.tinyFaceDetector.locateFaces(input, options);\n else if (options instanceof SsdMobilenetv1Options) result = nets.ssdMobilenetv1.locateFaces(input, options);\n else if (options instanceof TinyYolov2Options) result = nets.tinyYolov2.locateFaces(input, options);\n else throw new Error('detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options');\n return result;\n }\n\n private runAndExtendWithFaceDetections(): Promise[]> {\n return new Promise[]>((resolve, reject) => {\n this.run()\n .then((detections) => resolve(detections.map((detection) => extendWithFaceDetection({}, detection))))\n .catch((err) => reject(err));\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet = false) {\n return new DetectAllFaceLandmarksTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n useTinyLandmarkNet,\n );\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n );\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n );\n }\n}\n\nexport class DetectSingleFaceTask extends DetectFacesTaskBase {\n public override async run(): Promise {\n const faceDetections = await new DetectAllFacesTask(this.input, this.options);\n let faceDetectionWithHighestScore = faceDetections[0];\n faceDetections.forEach((faceDetection) => {\n if (faceDetection.score > faceDetectionWithHighestScore.score) faceDetectionWithHighestScore = faceDetection;\n });\n return faceDetectionWithHighestScore;\n }\n\n private runAndExtendWithFaceDetection(): Promise | undefined> {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise | undefined>(async (resolve) => {\n const detection = await this.run();\n resolve(detection ? extendWithFaceDetection<{}>({}, detection) : undefined);\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet = false) {\n return new DetectSingleFaceLandmarksTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n useTinyLandmarkNet,\n );\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n );\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n );\n }\n}\n", "import { TNetInput } from '../dom/index';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { DetectAllFacesTask, DetectSingleFaceTask } from './DetectFacesTasks';\nimport { FaceDetectionOptions } from './types';\n\nexport function detectSingleFace(input: TNetInput, options: FaceDetectionOptions = new SsdMobilenetv1Options()): DetectSingleFaceTask {\n return new DetectSingleFaceTask(input, options);\n}\n\nexport function detectAllFaces(input: TNetInput, options: FaceDetectionOptions = new SsdMobilenetv1Options()): DetectAllFacesTask {\n return new DetectAllFacesTask(input, options);\n}\n", "import { TNetInput } from '../dom/index';\nimport { WithFaceDescriptor, WithFaceDetection, WithFaceLandmarks } from '../factories/index';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/index';\nimport { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\nimport { detectAllFaces } from './detectFaces';\n\nexport async function allFacesSsdMobilenetv1(input: TNetInput, minConfidence?: number): Promise>>[]> {\n return detectAllFaces(input, new SsdMobilenetv1Options(minConfidence ? { minConfidence } : {}))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport async function allFacesTinyYolov2(input: TNetInput, forwardParams: ITinyYolov2Options = {}): Promise>>[]> {\n return detectAllFaces(input, new TinyYolov2Options(forwardParams))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport const allFaces = allFacesSsdMobilenetv1;\n", "export function euclideanDistance(arr1: number[] | Float32Array, arr2: number[] | Float32Array) {\n if (arr1.length !== arr2.length) throw new Error('euclideanDistance: arr1.length !== arr2.length');\n const desc1 = Array.from(arr1);\n const desc2 = Array.from(arr2);\n return Math.sqrt(\n desc1\n .map((val, i) => val - desc2[i])\n .reduce((res, diff) => res + (diff * diff), 0),\n );\n}\n", "import { FaceMatch } from '../classes/FaceMatch';\nimport { LabeledFaceDescriptors } from '../classes/LabeledFaceDescriptors';\nimport { euclideanDistance } from '../euclideanDistance';\nimport { WithFaceDescriptor } from '../factories/index';\n\nexport class FaceMatcher {\n private _labeledDescriptors: LabeledFaceDescriptors[];\n private _distanceThreshold: number;\n\n constructor(inputs: LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>, distanceThreshold = 0.6) {\n this._distanceThreshold = distanceThreshold;\n const inputArray = Array.isArray(inputs) ? inputs : [inputs];\n if (!inputArray.length) throw new Error('FaceRecognizer.constructor - expected atleast one input');\n let count = 1;\n const createUniqueLabel = () => `person ${count++}`;\n this._labeledDescriptors = inputArray.map((desc) => {\n if (desc instanceof LabeledFaceDescriptors) return desc;\n if (desc instanceof Float32Array) return new LabeledFaceDescriptors(createUniqueLabel(), [desc]);\n if (desc.descriptor && desc.descriptor instanceof Float32Array) return new LabeledFaceDescriptors(createUniqueLabel(), [desc.descriptor]);\n throw new Error('FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>');\n });\n }\n\n public get labeledDescriptors(): LabeledFaceDescriptors[] { return this._labeledDescriptors; }\n\n public get distanceThreshold(): number { return this._distanceThreshold; }\n\n public computeMeanDistance(queryDescriptor: Float32Array, descriptors: Float32Array[]): number {\n return descriptors\n .map((d) => euclideanDistance(d, queryDescriptor))\n .reduce((d1, d2) => d1 + d2, 0) / (descriptors.length || 1);\n }\n\n public matchDescriptor(queryDescriptor: Float32Array): FaceMatch {\n return this.labeledDescriptors\n .map(({ descriptors, label }) => new FaceMatch(label, this.computeMeanDistance(queryDescriptor, descriptors)))\n .reduce((best, curr) => (best.distance < curr.distance ? best : curr));\n }\n\n public findBestMatch(queryDescriptor: Float32Array): FaceMatch {\n const bestMatch = this.matchDescriptor(queryDescriptor);\n return (bestMatch.distance < this._distanceThreshold) ? bestMatch : new FaceMatch('unknown', bestMatch.distance);\n }\n\n public toJSON(): any {\n return {\n distanceThreshold: this._distanceThreshold,\n labeledDescriptors: this._labeledDescriptors.map((ld) => ld.toJSON()),\n };\n }\n\n public static fromJSON(json: any): FaceMatcher {\n const labeledDescriptors = json.labeledDescriptors.map((ld: any) => LabeledFaceDescriptors.fromJSON(ld));\n return new FaceMatcher(labeledDescriptors, json.distanceThreshold);\n }\n}\n", "import { TinyFaceDetector } from './TinyFaceDetector';\n\nexport * from './TinyFaceDetector';\nexport * from './TinyFaceDetectorOptions';\n\nexport function createTinyFaceDetector(weights: Float32Array) {\n const net = new TinyFaceDetector();\n net.extractWeights(weights);\n return net;\n}\n", "import { Dimensions, IDimensions } from './classes/index';\nimport { FaceDetection } from './classes/FaceDetection';\nimport { FaceLandmarks } from './classes/FaceLandmarks';\nimport { extendWithFaceDetection, isWithFaceDetection } from './factories/WithFaceDetection';\nimport { extendWithFaceLandmarks, isWithFaceLandmarks } from './factories/WithFaceLandmarks';\n\nexport function resizeResults(results: T, dimensions: IDimensions): T {\n const { width, height } = new Dimensions(dimensions.width, dimensions.height);\n\n if (width <= 0 || height <= 0) {\n throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({ width, height })}`);\n }\n\n if (Array.isArray(results)) {\n // return results.map(obj => resizeResults(obj, { width, height })) as any as T\n return (results as Array).map((obj) => resizeResults(obj, { width, height } as IDimensions)) as any as T;\n }\n\n if (isWithFaceLandmarks(results)) {\n const resizedDetection = results.detection.forSize(width, height);\n const resizedLandmarks = results.unshiftedLandmarks.forSize(resizedDetection.box.width, resizedDetection.box.height);\n return extendWithFaceLandmarks(extendWithFaceDetection(results, resizedDetection), resizedLandmarks);\n }\n\n if (isWithFaceDetection(results)) {\n return extendWithFaceDetection(results, results.detection.forSize(width, height));\n }\n\n if (results instanceof FaceLandmarks || results instanceof FaceDetection) {\n return (results as any).forSize(width, height);\n }\n\n return results;\n}\n", "import * as tf from '../dist/tfjs.esm';\nimport * as draw from './draw/index';\nimport * as utils from './utils/index';\nimport * as pkg from '../package.json';\n\nexport { tf, draw, utils };\n\nexport * from './ageGenderNet/index';\nexport * from './classes/index';\nexport * from './dom/index';\nexport * from './env/index';\nexport * from './faceExpressionNet/index';\nexport * from './faceLandmarkNet/index';\nexport * from './faceRecognitionNet/index';\nexport * from './factories/index';\nexport * from './globalApi/index';\nexport * from './ops/index';\nexport * from './ssdMobilenetv1/index';\nexport * from './tinyFaceDetector/index';\nexport * from './tinyYolov2/index';\nexport * from './euclideanDistance';\nexport * from './NeuralNetwork';\nexport * from './resizeResults';\n\nexport const version = pkg.version as string;\n\n// set webgl defaults\n// if (browser) tf.ENV.set('WEBGL_USE_SHAPES_UNIFORMS', true);\n"], - "mappings": ";;;;;;+XAAA,IAAAA,GAAA,GAAAC,GAAAD,GAAA,SAAAE,GAAA,SAAAC,GAAA,UAAAC,GAAA,sBAAAC,GAAA,qBAAAC,GAAA,kBAAAC,GAAA,oBAAAC,GAAA,QAAAC,GAAA,SAAAC,GAAA,QAAAC,GAAA,QAAAC,GAAA,WAAAC,GAAA,WAAAC,GAAA,SAAAC,GAAA,UAAAC,GAAA,SAAAC,GAAA,UAAAC,GAAA,UAAAC,GAAA,YAAAC,GAAA,cAAAC,GAAA,kBAAAC,GAAA,gBAAAC,GAAA,gBAAAC,GAAA,gBAAAC,GAAA,mBAAAC,GAAA,aAAAC,GAAA,kBAAAC,GAAA,gBAAAC,GAAA,aAAAC,GAAA,iBAAAC,GAAA,SAAAC,GAAA,SAAAC,GAAA,gBAAAC,GAAA,YAAAC,GAAA,eAAAC,GAAA,WAAAC,GAAA,WAAAC,GAAA,yBAAAC,GAAA,wBAAAC,GAAA,WAAAC,GAAA,2BAAAC,GAAA,0BAAAC,GAAA,QAAAC,GAAA,SAAAC,GAAA,kBAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,mBAAAC,GAAA,gBAAAC,GAAA,kBAAAC,GAAA,iBAAAC,GAAA,0BAAAC,GAAA,wCAAAC,GAAA,uCAAAC,GAAA,SAAAC,GAAA,eAAAC,GAAA,6BAAAC,GAAA,4BAAAC,GAAA,QAAAC,GAAA,kBAAAC,GAAA,WAAAC,GAAA,QAAAC,GAAA,YAAAC,GAAA,gBAAAC,GAAA,UAAAC,GAAA,QAAAC,GAAA,QAAAC,GAAA,eAAAC,GAAA,UAAAC,GAAA,QAAAC,GAAA,SAAAC,GAAA,kBAAAC,GAAA,UAAAC,GAAA,aAAAC,GAAA,eAAAC,GAAA,mBAAAC,GAAA,gBAAAC,GAAA,yBAAAC,GAAA,iBAAAC,GAAA,aAAAC,GAAA,aAAAC,GAAA,eAAAC,GAAA,YAAAC,GAAA,iBAAAC,GAAA,YAAAC,GAAA,SAAAC,GAAA,aAAAC,GAAA,SAAAC,GAAA,cAAAC,GAAA,aAAAC,GAAA,UAAAC,GAAA,UAAAC,GAAA,kBAAAC,GAAA,QAAAC,GAAA,YAAAC,GAAA,kBAAAC,GAAA,gBAAAC,GAAA,cAAAC,GAAA,SAAAC,GAAA,cAAAC,GAAA,aAAAC,GAAA,QAAAC,GAAA,UAAAC,GAAA,eAAAC,GAAA,eAAAC,GAAA,eAAAC,GAAA,cAAAC,GAAA,eAAAC,GAAA,eAAAC,GAAA,qBAAAC,GAAA,QAAAC,GAAA,YAAAC,GAAA,cAAAC,GAAA,kBAAAC,GAAA,gBAAAC,GAAA,sBAAAC,GAAA,YAAAC,GAAA,SAAAC,GAAA,QAAAC,GAAA,YAAAC,GAAA,cAAAC,GAAA,QAAAC,GAAA,sBAAAC,GAAA,gBAAAC,GAAA,aAAAC,GAAA,QAAAC,GAAA,wBAAAC,GAAA,wBAAAC,GAAA,wBAAAC,GAAA,aAAAC,GAAA,oBAAAC,GAAA,WAAAC,GAAA,aAAAC,GAAA,cAAAC,GAAA,0BAAAC,GAAA,SAAAC,GAAA,UAAAC,GAAA,SAAAC,GAAA,QAAAC,GAAA,UAAAC,GAAA,SAAAC,GAAA,qBAAAC,GAAA,QAAAC,GAAA,iBAAAC,GAAA,gBAAAC,GAAA,yBAAAC,GAAA,UAAAC,GAAA,SAAAC,GAAA,SAAAC,GAAA,YAAAC,GAAA,eAAAC,GAAA,cAAAC,GAAA,SAAAC,GAAA,UAAAC,GAAA,YAAAC,GAAA,mBAAAC,GAAA,uBAAAC,GAAA,0BAAAC,GAAA,8BAAAC,GAAA,YAAAC,GAAA,qBAAAC,GAAA,UAAAC,GAAA,UAAAC,GAAA,iBAAAC,GAAA,cAAAC,GAAA,iBAAAC,GAAA,WAAAC,GAAA,SAAAC,GAAA,eAAAC,GAAA,YAAAC,GAAA,SAAAC,GAAA,QAAAC,GAAA,SAAAC,GAAA,UAAAC,GAAA,YAAAC,GAAA,aAAAC,GAAA,mBAAAC,GAAA,wBAAAC,GAAA,kBAAAC,GAAA,sBAAAC,GAAA,qBAAAC,GAAA,kBAAAC,GAAA,WAAAC,GAAA,SAAAC,GAAA,WAAAC,GAAA,sBAAAC,GAAA,SAAAC,GAAA,iBAAAC,GAAA,iBAAAC,GAAA,gBAAAC,GAAA,2BAAAC,GAAA,QAAAC,GAAA,QAAAC,GAAA,mBAAAC,GAAA,QAAAC,GAAA,SAAAC,GAAA,WAAAC,GAAA,iBAAAC,GAAA,SAAAC,GAAA,SAAAC,GAAA,cAAAC,GAAA,cAAAC,GAAA,WAAAC,GAAA,WAAAC,GAAA,uBAAAC,GAAA,eAAAC,GAAA,aAAAC,GAAA,cAAAC,GAAA,iBAAAC,GAAA,QAAAC,GAAA,SAAAC,GAAA,UAAAC,GAAA,QAAAC,EAAA,SAAAC,GAAA,QAAAC,GAAA,QAAAC,GAAA,WAAAC,GAAA,WAAAC,GAAA,SAAAC,GAAA,UAAAC,GAAA,SAAAC,GAAA,UAAAC,GAAA,UAAAC,GAAA,YAAAC,GAAA,cAAAC,GAAA,YAAAC,GAAA,iBAAAC,EAAA,kBAAAC,GAAA,cAAAC,GAAA,gBAAAC,GAAA,gBAAAC,GAAA,gBAAAC,GAAA,mBAAAC,GAAA,aAAAC,GAAA,qBAAAC,GAAA,kBAAAC,GAAA,gBAAAC,GAAA,mBAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,cAAAC,GAAA,SAAAC,GAAA,SAAAC,GAAA,gBAAAC,GAAA,UAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,aAAAC,GAAA,aAAAC,GAAA,aAAAC,GAAA,aAAAC,GAAA,gBAAAC,GAAA,WAAAC,GAAA,WAAAC,GAAA,oBAAAC,GAAA,WAAAC,GAAA,oBAAAC,GAAA,0BAAAC,GAAA,QAAAC,GAAA,SAAAC,GAAA,iBAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,eAAAC,GAAA,SAAAC,GAAA,kBAAAC,GAAA,oBAAAC,GAAA,iBAAAC,GAAA,oBAAAC,GAAA,iBAAAC,GAAA,gBAAAC,GAAA,SAAAC,GAAA,eAAAC,GAAA,+BAAAC,GAAA,YAAAC,GAAA,qBAAAC,GAAA,QAAAC,GAAA,aAAAC,GAAA,QAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,QAAAC,GAAA,oBAAAC,GAAA,mBAAAC,GAAA,wBAAAC,GAAA,WAAAC,GAAA,QAAAC,EAAA,UAAAC,GAAA,QAAAC,GAAA,kBAAAC,GAAA,QAAAC,GAAA,eAAAC,GAAA,UAAAC,GAAA,QAAAC,GAAA,QAAAC,GAAA,SAAAC,GAAA,gBAAAC,GAAA,uBAAAC,GAAA,UAAAC,GAAA,aAAAC,GAAA,mBAAAC,GAAA,UAAAC,GAAA,WAAAC,GAAA,aAAAC,GAAA,gBAAAC,GAAA,eAAAC,GAAA,gBAAAC,GAAA,cAAAC,GAAA,yBAAAC,GAAA,oBAAAC,IAAA,eAAAC,GAAA,SAAAC,GAAA,UAAAC,GAAA,YAAAC,GAAA,iBAAAC,GAAA,SAAAC,GAAA,SAAAC,GAAA,UAAAC,GAAA,gBAAAC,GAAA,iBAAAC,GAAA,UAAAC,GAAA,OAAAC,GAAA,UAAAC,GAAA,aAAAC,GAAA,UAAAC,GAAA,UAAAC,GAAA,SAAAC,GAAA,iBAAAC,GAAA,WAAAC,GAAA,cAAAC,GAAA,SAAAC,GAAA,cAAAC,GAAA,WAAAC,GAAA,aAAAC,GAAA,mBAAAC,GAAA,uBAAAC,GAAA,oBAAAC,GAAA,+BAAAC,GAAA,QAAAC,GAAA,UAAAC,GAAA,eAAAC,GAAA,eAAAC,GAAA,cAAAC,GAAA,eAAAC,GAAA,eAAAC,GAAA,cAAAC,GAAA,eAAAC,GAAA,WAAAC,GAAA,eAAAC,GAAA,WAAAC,GAAA,SAAAC,GAAA,QAAAC,GAAA,YAAAC,GAAA,cAAAC,GAAA,sBAAAC,GAAA,YAAAC,GAAA,SAAAC,GAAA,WAAAC,GAAA,aAAAC,GAAA,YAAAC,GAAA,QAAAC,GAAA,YAAAC,GAAA,cAAAC,GAAA,QAAAC,GAAA,UAAAC,GAAA,WAAAC,GAAA,YAAAC,GAAA,kBAAAC,GAAA,QAAAC,EAAA,iBAAAC,GAAA,gBAAAC,GAAA,QAAAC,GAAA,cAAAC,GAAA,SAAAC,GAAA,aAAAC,GAAA,WAAAC,GAAA,SAAAC,GAAA,aAAAC,GAAA,OAAAC,EAAA,iBAAAC,GAAA,QAAAC,GAAA,UAAAC,GAAA,UAAAC,GAAA,UAAAC,GAAA,UAAAC,GAAA,SAAAC,GAAA,QAAAC,GAAA,UAAAC,GAAA,UAAAC,GAAA,SAAAC,GAAA,YAAAC,GAAA,iBAAAC,GAAA,gBAAAC,GAAA,yBAAAC,GAAA,SAAAC,GAAA,gBAAAC,GAAA,iBAAAC,GAAA,yBAAAC,GAAA,kBAAAC,GAAA,UAAAC,GAAA,UAAAC,GAAA,SAAAC,GAAA,eAAAC,GAAA,oBAAAC,GAAA,gCAAAC,GAAA,qBAAAC,GAAA,mBAAAC,GAAA,eAAAC,GAAA,iBAAAC,GAAA,SAAAC,GAAA,UAAAC,GAAA,kBAAAC,GAAA,YAAAC,EAAA,YAAAC,GAAA,cAAAC,GAAA,cAAAC,GAAA,cAAAC,GAAA,cAAAC,GAAA,SAAAC,GAAA,UAAAC,GAAA,UAAAC,GAAA,WAAAC,GAAA,cAAAC,GAAA,iBAAAC,GAAA,iBAAAC,GAAA,SAAAC,GAAA,oBAAAC,GAAA,eAAAC,GAAA,kBAAAC,GAAA,eAAAC,GAAA,gBAAAC,GAAA,oBAAAC,IAAA,gBAAAC,IAAA,iBAAAC,IAAA,oBAAAC,GAAA,mBAAAC,GAAA,YAAAC,GAAA,SAAAC,GAAA,WAAAC,GAAA,QAAAC,GAAA,SAAAC,GAAA,UAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,eAAAC,GAAA,YAAAC,GAAA,aAAAC,GAAA,mBAAAC,GAAA,WAAAC,GAAA,kBAAAC,GAAA,aAAAC,GAAA,UAAAC,GAAA,SAAAC,GAAA,WAAAC,GAAA,sBAAAC,GAAA,YAAAC,GAAA,UAAAC,GAAA,SAAAC,GAAA,iBAAAC,GAAA,WAAAC,GAAA,QAAAC,GAAA,QAAAC,GAAA,eAAAC,GAAA,QAAAC,GAAA,SAAAC,GAAA,WAAAC,GAAA,aAAAC,GAAA,aAAAC,GAAA,aAAAC,GAAA,aAAAC,GAAA,aAAAC,GAAA,aAAAC,GAAA,gBAAAC,GAAA,cAAAC,GAAA,SAAAC,EAAA,SAAAC,GAAA,SAAAC,GAAA,SAAAC,GAAA,UAAAC,GAAA,cAAAC,GAAA,oBAAAC,GAAA,WAAAC,GAAA,uBAAAC,GAAA,qBAAAC,GAAA,uBAAAC,GAAA,YAAAC,GAAA,eAAAC,GAAA,eAAAC,GAAA,SAAAC,EAAA,iBAAAC,GAAA,kBAAAC,GAAA,aAAAC,GAAA,kBAAAC,GAAA,YAAAC,IAAA,sBAAAC,GAAA,iBAAAC,GAAA,mBAAAC,GAAA,iBAAAC,IAAA,kBAAAC,GAAA,UAAAC,GAAA,eAAAC,GAAA,UAAAC,GAAA,eAAAC,GAAA,UAAAC,GAAA,cAAAC,KAMA,IAAIC,GAAG,OAAO,OAAWC,GAAG,OAAO,eAAmBC,GAAG,OAAO,yBAA6BC,GAAG,OAAO,oBAAwBC,GAAG,OAAO,eAAeC,GAAG,OAAO,UAAU,eAAmBC,IAAIC,GAAG,OAAOC,IAAS,YAAYA,GAAQ,OAAO,OAAO,YAAY,IAAI,MAAMD,EAAE,CAAC,IAAI,CAAC,EAAEE,KAAK,OAAOD,IAAS,YAAYA,GAAQ,GAAGC,EAAE,CAAC,EAAEF,GAAG,SAASA,EAAE,CAAC,GAAG,OAAOC,IAAS,YAAY,OAAOA,GAAQ,MAAM,KAAK,SAAS,EAAE,MAAM,IAAI,MAAM,uBAAuBD,EAAE,oBAAoB,CAAC,CAAC,EAAMG,GAAG,CAACH,EAAE,IAAI,KAAK,GAAGA,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,EAAE,SAASI,GAAG,CAACJ,EAAE,IAAI,CAAC,QAAQE,KAAK,EAAER,GAAGM,EAAEE,EAAE,CAAC,IAAI,EAAEA,GAAG,WAAW,EAAE,CAAC,CAAC,EAAEG,GAAG,CAACL,EAAE,EAAEE,EAAEI,IAAI,CAAC,GAAG,GAAG,OAAO,GAAG,UAAU,OAAO,GAAG,WAAW,QAAQC,KAAKX,GAAG,CAAC,EAAE,CAACE,GAAG,KAAKE,EAAEO,CAAC,GAAGA,IAAIL,GAAGR,GAAGM,EAAEO,EAAE,CAAC,IAAI,IAAI,EAAEA,GAAG,WAAW,EAAED,EAAEX,GAAG,EAAEY,CAAC,IAAID,EAAE,UAAU,CAAC,EAAE,OAAON,CAAC,EAAMQ,GAAG,CAACR,EAAE,EAAEE,KAAKA,EAAEF,GAAG,KAAKP,GAAGI,GAAGG,CAAC,CAAC,EAAE,CAAC,EAAEK,GAAG,GAAG,CAACL,GAAG,CAACA,EAAE,WAAWN,GAAGQ,EAAE,UAAU,CAAC,MAAMF,EAAE,WAAW,EAAE,CAAC,EAAEE,EAAEF,CAAC,GAAOS,GAAGN,GAAG,CAACO,EAAIC,IAAK,CAACA,EAAG,QAAQC,EAAG,IAAIC,EAAG,KAAK,GAAG,CAACA,EAAG,IAAI,YAAY,SAAS,IAAI,YAAY,OAAO,IAAI,WAAW,CAAC,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,O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AAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,EAAE,CAAC,OAAO,OAAO,KAAK,aAAa,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,EAAE,CAAC,OAAO,OAAO,KAAK,aAAa,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,QAAQ,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,C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", - "names": ["tfjs_esm_exports", "__export", "ii", "oa", "sa", "cu", "pu", "mu", "fu", "Zn", "Go", "ia", "aa", "Wo", "kl", "la", "ua", "ca", "ma", "pa", "Uo", "El", "lp", "ap", "cg", "Ho", "ai", "up", "cp", "p1", "Sb", "Py", "lo", "qo", "uo", "pp", "_l", "li", "Ko", "mp", "jo", "Al", "fp", "dp", "Xo", "Yo", "da", "fa", "Zo", "My", "ra", "hp", "ha", "Jo", "gp", "xp", "yp", "$l", "Xd", "jd", "i0", "vb", "bp", "ts", "wp", "qd", "xa", "ga", "es", "ui", "ya", "Cp", "Dl", "ba", "rs", "ns", "Yd", "os", "Ii", "Si", "Bc", "wa", "ci", "Ph", "Ca", "ss", "Ly", "Ip", "co", "Sp", "ye", "Ia", "Sa", "va", "zo", "Rl", "Np", "Ch", "Bn", "is", "Na", "Ta", "vp", "as", "ka", "f1", "Ea", "_a", "Aa", "m1", "xlt", "_u", "ls", "cs", "Fl", "kp", "Tp", "Ep", "us", "ps", "ms", "fs", "ds", "$a", "du", "_p", "hs", "pi", "Ra", "Fa", "Oa", "Da", "k0", "gs", "mi", "Wr", "Ws", "fi", "xs", "ylt", "ys", "bs", "ws", "hu", "Tn", "Ap", "$p", "Dp", "Ol", "x0", "Rp", "Qo", "Pa", "Xe", "Cs", "vs", "di", "Ss", "Op", "Is", "Fp", "Ns", "qa", "Ts", "ks", "Bi", "La", "Pp", "hi", "Ma", "qi", "_s", "Ba", "Es", "za", "gi", "Ds", "Va", "xi", "Pl", "Ga", "Ll", "Ml", "Lp", "yi", "As", "zl", "Rs", "po", "Wa", "Bl", "Vl", "Gl", "Fs", "$s", "Jr", "Os", "Ps", "Ft", "pe", "Jn", "Ua", "Ha", "Qn", "Mp", "bi", "Wl", "blt", "Ka", "wi", "Ci", "Ee", "ax", "lx", "X", "LE", "Zp", "qu", "Ai", "ux", "cx", "px", "mx", "fx", "dx", "Yl", "gx", "gE", "v", "BE", "Di", "xx", "yx", "bx", "Zl", "wx", "n6", "GE", "Ri", "Vr", "nx", "wt", "VZ", "J", "Cx", "Cr", "sn", "wn", "ne", "Ix", "Sx", "vx", "Nx", "K$", "Qp", "In", "em", "Tx", "Ex", "Tlt", "Jl", "rm", "hh", "Xu", "nm", "un", "AR", "ch", "W0", "_x", "Fi", "HZ", "Kl", "WE", "Ax", "gpt", "vt", "xpt", "pt", "$x", "Dx", "lv", "UE", "Oi", "hpt", "dpt", "uv", "Pn", "z", "$r", "Rx", "Fx", "er", "rr", "Ox", "Yu", "au", "xo", "Spt", "vpt", "Pi", "Yp", "hM", "uu", "Li", "m6", "ox", "Cpt", "u0", "Jd", "zg", "olt", "ik", "bK", "wK", "Re", "ln", "tl", "Xl", "Gs", "h6", "j$", "Pv", "_r", "xm", "Px", "Lx", "Mx", "De", "Ur", "ED", "Ql", "om", "Ln", "pv", "KE", "M7", "z7", "hD", "zx", "Sr", "tu", "Gx", "sm", "im", "Rr", "eu", "am", "Wx", "hX", "jE", "Lt", "yE", "Ir", "ru", "Hx", "XE", "Sn", "ve", "ah", "YE", "_D", "Ja", "Mi", "qx", "Kx", "q8", "AD", "Zu", "s6", "D", "ZE", "JE", "Ht", "gh", "Qa", "Bs", "Ei", "cr", "yr", "T", "QE", "cn", "t_", "e_", "r_", "n_", "jx", "an", "ou", "Jg", "Xx", "ypt", "o_", "s_", "i_", "a_", "v_", "tc", "N_", "zi", "su", "wpt", "Za", "ty", "Xp", "j8", "h1", "Lu", "UZ", "$D", "Fr", "lm", "Ipt", "R", "pr", "T_", "k_", "E_", "__", "lu", "um", "cm", "mt", "a6", "lh", "mh", "pm", "mm", "K8", "Q", "tH", "Npt", "nlt", "elt", "rlt", "wT", "A_", "Yr", "ey", "dX", "fm", "dm", "Rt", "hm", "dh", "gm", "ec", "Le", "iu", "zs", "nu", "gX", "c6", "fX", "mr", "Se", "Mt", "ym", "Mn", "nr", "bo", "ry", "xX", "ct", "ft", "Wu", "ny", "$i", "ur", "Me", "Vs", "rx", "$_", "D_", "R_", "go", "OE", "B", "Dr", "bpt", "oy", "ic", "Ot", "bm", "sy", "Nlt", "vlt", "wm", "vr", "sr", "F_", "y", "CK", "IK", "iy", "Bx", "plt", "cR", "PE", "Um", "slt", "dM", "Zke", "dd", "_e", "ly", "Ne", "It", "DU", "QS", "RU", "FU", "OU", "PU", "Pg", "r", "__require", "e", "gr", "Wt", "LU", "n", "o", "Tl", "T1", "Elt", "N1", "Ue", "mo", "t", "Fn", "g1", "x1", "zu", "He", "fo", "Mu", "ho", "C1", "v1", "b1", "Rn", "S1", "Vp", "Bg", "m0", "s", "i", "a", "u", "l", "Ls", "y1", "s4", "w1", "Bp", "I1", "p0", "gt", "c", "p", "m", "f", "d", "iE", "aE", "u_", "l_", "rv", "p_", "c_", "nv", "f_", "m_", "ov", "h_", "d_", "sv", "x_", "g_", "iv", "h", "g", "b_", "y_", "av", "w_", "I_", "C_", "Yx", "w", "C", "N", "_", "b", "$", "P", "V", "G", "W", "q", "H", "fh", "fNt", "S_", "lj", "uj", "cj", "pj", "mj", "fj", "Ju", "gN", "Zb", "ig", "BW", "VW", "GW", "WW", "fI", "Ok", "Fk", "it", "jt", "qe", "ke", "fe", "Ae", "_n", "or", "Hn", "Lr", "L", "U", "x", "A", "F", "Ru", "Y", "ut", "xt", "Dt", "ie", "Mo", "j", "Z", "et", "rt", "ot", "at", "nt", "Yc", "dt", "ht", "bt", "Et", "At", "Vt", "Gt", "Xt", "hr", "Xn", "Zt", "ce", "he", "We", "Mr", "zr", "qn", "Kn", "Xr", "Zi", "Il", "Rd", "Md", "Tr", "Ji", "Gk", "Fd", "Sl", "Xc", "Qi", "Wk", "Uk", "gI", "pg", "Od", "en", "mg", "xI", "yI", "vg", "EI", "Kt", "ea", "bI", "Hk", "wI", "CI", "YS", "II", "Pd", "fg", "dg", "Ld", "vl", "qk", "gg", "hg", "SI", "Ag", "zd", "vI", "ZS", "$g", "Kk", "jk", "NI", "e1", "Zc", "TI", "kI", "t1", "Xk", "_I", "AI", "Zk", "$I", "xg", "yg", "DI", "RI", "FI", "Qk", "OI", "PI", "LI", "Fu", "MI", "zI", "bg", "BI", "Jc", "VI", "GI", "Dg", "Jk", "Bd", "WI", "ZI", "UI", "HI", "qI", "wg", "Cg", "KI", "jI", "Ig", "Sg", "XI", "An", "rp", "o1", "n1", "JS", "$U", "YI", "Yk", "JI", "QI", "tS", "eS", "rS", "nS", "oS", "sS", "iS", "aS", "lS", "uS", "cS", "pS", "mS", "fS", "dS", "hS", "gS", "xS", "yS", "bS", "wS", "CS", "IS", "SS", "vS", "NS", "TS", "kS", "ES", "_S", "AS", "$S", "DS", "RS", "FS", "OS", "PS", "LS", "MS", "zS", "BS", "VS", "GS", "WS", "US", "HS", "Ng", "Tg", "Vd", "qS", "KS", "Qc", "kg", "tp", "ep", "jS", "K", "lt", "_t", "re", "Ke", "je", "ee", "te", "dr", "jn", "ta", "Eg", "Gd", "XS", "rn", "Nl", "_g", "QW", "tU", "eU", "rU", "nU", "oU", "sU", "iU", "aU", "lU", "uU", "cU", "pU", "mU", "fU", "dU", "hU", "gU", "xU", "yU", "bU", "wU", "CU", "IU", "SU", "vU", "NU", "TU", "kU", "EU", "_U", "Rg", "r1", "Fg", "Og", "AU", "HW", "G5e", "UW", "qW", "dI", "Lk", "Pk", "ra", "zo", "$n", "s1", "Lg", "MU", "np", "zU", "BU", "VU", "GU", "E", "$e", "Dn", "Yn", "Bo", "xr", "Jt", "WU", "na", "UU", "HU", "qU", "Pu", "KU", "jU", "lr", "t0", "e0", "r0", "n0", "o0", "XU", "Mg", "s0", "Vo", "i1", "a1", "op", "oi", "sp", "si", "l1", "Ou", "Wd", "ip", "YU", "Ud", "ZU", "JU", "Hd", "u1", "qd", "t4", "z", "r4", "e4", "i0", "c1", "a0", "l0", "n4", "Kd", "ii", "oa", "sa", "Zn", "Go", "ia", "aa", "Wo", "kl", "la", "ua", "ca", "pa", "ma", "Uo", "ap", "El", "lp", "Ho", "ai", "up", "p1", "cp", "lo", "qo", "uo", "pp", "_l", "li", "Ko", "mp", "jo", "Al", "fp", "dp", "Xo", "Yo", "fa", "Zo", "da", "hp", "ha", "Jo", "gp", "xp", "yp", "$l", "jd", "Xd", "Qo", "bp", "ts", "wp", "ga", "xa", "es", "ui", "ya", "Cp", "Dl", "ba", "rs", "ns", "os", "ci", "wa", "Ca", "ss", "co", "Ip", "Sp", "Ia", "Sa", "va", "is", "Na", "Ta", "vp", "as", "ka", "Ea", "_a", "Aa", "m1", "f1", "xlt", "Rl", "Np", "ls", "us", "cs", "Tp", "Fl", "kp", "Ep", "ps", "ms", "fs", "ds", "$a", "_p", "hs", "pi", "Da", "Ra", "Fa", "Oa", "mi", "gs", "fi", "xs", "ylt", "ys", "bs", "ws", "Ap", "$p", "Dp", "Ol", "Rp", "Pa", "Cs", "di", "Is", "Fp", "Ss", "Op", "vs", "Ns", "Ts", "ks", "La", "Pp", "hi", "Ma", "gi", "Es", "za", "Ba", "_s", "Va", "As", "$s", "xi", "yi", "Ds", "Pl", "Ga", "Ll", "Ml", "Lp", "Rs", "zl", "Wa", "Bl", "Vl", "Gl", "Fs", "Os", "Ps", "Jn", "Ua", "Ha", "Qn", "Mp", "bi", "Wl", "blt", "wi", "po", "Yd", "qa", "Ci", "Ii", "Si", "vi", "o4", "zp", "Zd", "Jd", "c0", "u0", "zg", "Lu", "h1", "vlt", "Nlt", "Tlt", "y", "p4", "Wp", "Hl", "f4", "c4", "Qd", "Gu", "Gp", "d0", "Vu", "E1", "Bu", "nn", "f0", "_1", "Pe", "k1", "kr", "Ul", "i4", "Vg", "a4", "l4", "u4", "m4", "Gg", "h0", "d4", "A1", "$1", "D1", "th", "g0", "R1", "h4", "Wg", "rh", "eh", "F1", "pe", "Ms", "Up", "g4", "O1", "P1", "L1", "Ft", "O", "Ka", "go", "I0", "nh", "y4", "Ut", "x0", "y0", "b0", "w0", "C0", "x4", "sr", "Wu", "M1", "b4", "S0", "Ug", "ql", "k", "w4", "C4", "v0", "Kl", "T0", "v4", "S4", "I4", "N0", "On", "Br", "B1", "z1", "I", "ja", "k0", "T", "N4", "wn", "on", "ur", "oh", "Hg", "G1", "T4", "qg", "A4", "E0", "V1", "W1", "U1", "Hp", "_0", "Kg", "A0", "qp", "Ni", "jg", "k4", "E4", "_4", "Ce", "H1", "q1", "K1", "j1", "$0", "D0", "Uu", "jl", "X1", "R0", "Ti", "Y1", "$4", "D4", "Xg", "Xa", "Kp", "Z1", "R4", "F4", "O4", "P4", "J1", "Q1", "L4", "M4", "ki", "tE", "z4", "Yg", "jp", "Er", "Zg", "eE", "rE", "nE", "oE", "sE", "F0", "B4", "O0", "P0", "wt", "V4", "J", "G4", "sn", "Jg", "W4", "_r", "uE", "mE", "fE", "G0", "tx", "Qg", "cE", "B0", "dE", "hE", "U4", "H4", "q4", "lE", "Ya", "L0", "K4", "j4", "M0", "z0", "X4", "Y4", "sh", "Z4", "pE", "ih", "ex", "V0", "yE", "xE", "J4", "Lt", "Q4", "Ei", "dpt", "hpt", "gpt", "W0", "xpt", "Pn", "ah", "ypt", "B", "vt", "De", "bpt", "tH", "wpt", "Cpt", "Ipt", "Spt", "vpt", "Xp", "gE", "Npt", "eH", "Xl", "rH", "Ht", "nH", "Za", "oH", "Ot", "sH", "Vr", "Pt", "bE", "ge", "nx", "mH", "cH", "pH", "rx", "Hu", "wE", "iH", "aH", "lH", "uH", "ox", "CE", "lh", "IE", "sx", "U0", "Le", "dH", "bH", "gH", "xH", "yH", "hH", "q0", "wH", "AE", "kE", "$E", "EE", "_E", "vE", "H0", "fH", "NE", "TE", "CH", "SE", "Q", "uh", "_i", "Cn", "OE", "DE", "EH", "FE", "kH", "SH", "NH", "RE", "vH", "TH", "_H", "ix", "IH", "K0", "j0", "PE", "AH", "X", "$H", "Yp", "DH", "pt", "RH", "D", "FH", "Ee", "OH", "ax", "PH", "lx", "LH", "LE", "MH", "Zp", "zH", "qu", "BH", "Ai", "VH", "ux", "GH", "cx", "WH", "px", "UH", "mx", "HH", "fx", "qH", "dx", "KH", "zE", "ju", "Y0", "hx", "jH", "X0", "ME", "Jp", "ZH", "JH", "XH", "Z0", "Ku", "YH", "to", "Ar", "Ie", "QH", "R", "tq", "Yl", "eq", "gx", "rq", "ne", "nq", "Yr", "oq", "Rt", "sq", "$i", "iq", "BE", "aq", "Zl", "VE", "lq", "Di", "uq", "xx", "cq", "yx", "pq", "bx", "mq", "wx", "fq", "GE", "dq", "Ri", "hq", "Cx", "xo", "gq", "Cr", "xq", "Ix", "yq", "Sx", "bq", "vx", "wq", "Nx", "Cq", "In", "Iq", "Qp", "Sq", "tm", "vq", "em", "Nq", "Tx", "Tq", "kx", "kq", "Ex", "Eq", "Jl", "_q", "rm", "Aq", "Xu", "$q", "nm", "Dq", "ch", "Rq", "_x", "Fq", "Fi", "Oq", "WE", "Pq", "Ax", "Lq", "$r", "Mq", "_e", "zq", "It", "Bq", "$x", "Vq", "Dx", "Gq", "UE", "Wq", "Oi", "Uq", "Rx", "J0", "HE", "Q0", "yo", "Hq", "tv", "ph", "qq", "Kq", "Ir", "jq", "Ja", "Xq", "an", "mt", "Yq", "Se", "Zq", "Mt", "Jq", "ft", "Qq", "qE", "Qa", "tK", "Fx", "eK", "er", "rK", "rr", "nK", "Ox", "oK", "Dr", "sK", "Yu", "iK", "Pi", "aK", "Li", "lK", "Re", "uK", "ln", "cK", "Px", "pK", "Lx", "mK", "Mx", "fK", "Ql", "dK", "om", "hK", "Ln", "KE", "gK", "zx", "xK", "Sr", "yK", "tu", "bK", "Vx", "wK", "CK", "IK", "Bx", "un", "SK", "zs", "vK", "Gx", "NK", "ct", "TK", "sm", "kK", "im", "EK", "Rr", "_K", "eu", "AK", "am", "$K", "Wx", "Ux", "DK", "mh", "jE", "RK", "ru", "FK", "Hx", "OK", "XE", "PK", "Sn", "LK", "ve", "Ne", "cr", "YE", "MK", "Mi", "zK", "qx", "BK", "Kx", "VK", "Zu", "GK", "ZE", "WK", "JE", "UK", "Bs", "HK", "yr", "qK", "QE", "KK", "cn", "jK", "t_", "XK", "e_", "YK", "r_", "ZK", "n_", "JK", "nu", "QK", "ej", "tj", "jx", "rj", "ou", "nj", "Xx", "oj", "o_", "sj", "s_", "ij", "i_", "aj", "a_", "Qx", "Qu", "Zx", "Jx", "dj", "v_", "hj", "tc", "gj", "N_", "xj", "zi", "su", "yj", "ty", "bj", "Fr", "wj", "lm", "Cj", "pr", "Ij", "T_", "Sj", "k_", "vj", "E_", "Nj", "__", "Tj", "um", "kj", "cm", "Ej", "pm", "_j", "mm", "Aj", "A_", "$j", "ey", "Dj", "fm", "Rj", "dm", "Fj", "hm", "Oj", "dh", "Pj", "gm", "Lj", "ec", "Mj", "iu", "zj", "au", "Bj", "tl", "Vj", "xm", "Gj", "mr", "Wj", "lu", "Uj", "ym", "Hj", "Mn", "qj", "nr", "Kj", "bo", "jj", "ry", "Xj", "ny", "Me", "Vs", "$_", "D_", "R_", "Yj", "oy", "Zj", "bm", "Jj", "sy", "Qj", "wm", "t6", "vr", "F_", "iy", "ay", "e6", "ly", "r6", "n6", "o6", "s6", "i6", "a6", "O_", "u6", "c6", "p6", "m6", "P_", "f6", "lv", "uv", "hh", "d6", "h6", "uu", "L_", "M_", "z_", "g6", "Cm", "rc", "nc", "oc", "sc", "x6", "y6", "uy", "b6", "cy", "w6", "C6", "I6", "B_", "S6", "py", "v6", "my", "N6", "V_", "T6", "G_", "k6", "W_", "E6", "U_", "_6", "H_", "wo", "A6", "q_", "K_", "$6", "R6", "D6", "fy", "cv", "dy", "hy", "j_", "F6", "O6", "P6", "X_", "L6", "Y_", "M6", "Z_", "z6", "J_", "B6", "Q_", "V6", "gy", "G6", "xy", "W6", "U6", "tA", "H6", "eA", "q6", "rA", "K6", "nA", "j6", "oA", "sA", "Xe", "X6", "Gr", "Y6", "iA", "Z6", "aA", "J6", "lA", "Q6", "uA", "tX", "cA", "eX", "pA", "rX", "nX", "mA", "oX", "sX", "fA", "iX", "dA", "aX", "hA", "lX", "gA", "uX", "xA", "cX", "yA", "pX", "bA", "mX", "wA", "fX", "dX", "Gs", "pv", "hX", "gX", "xX", "Wr", "cu", "pu", "mu", "fu", "Bi", "du", "hu", "Ws", "ic", "yX", "gh", "v", "RX", "FX", "OX", "PX", "LX", "DX", "yy", "Vi", "fv", "mv", "bX", "WX", "XX", "CX", "BX", "VX", "NX", "wX", "KX", "HX", "UX", "g5", "h5", "GX", "YX", "jX", "TX", "EX", "SX", "kX", "_X", "IX", "AX", "$X", "t5", "e5", "r5", "s5", "a5", "i5", "n5", "o5", "p5", "l5", "u5", "c5", "ZX", "MX", "QX", "hv", "zX", "vX", "dv", "qX", "CA", "IA", "JX", "d5", "f5", "m5", "Ur", "by", "SA", "vA", "NA", "TA", "kA", "EA", "_A", "AA", "$A", "DA", "RA", "x5", "FA", "OA", "y5", "PA", "LA", "MA", "zA", "BA", "VA", "GA", "WA", "UA", "HA", "qA", "KA", "b5", "jA", "XA", "YA", "ZA", "JA", "QA", "t2", "e2", "r2", "n2", "o2", "s2", "i2", "a2", "l2", "p2", "u2", "c2", "m2", "f2", "d2", "h2", "g2", "x2", "y2", "b2", "w2", "w5", "C2", "I2", "wy", "gv", "S2", "C5", "v2", "N2", "I5", "T2", "k2", "E2", "_2", "A2", "$2", "D2", "R2", "F2", "O2", "P2", "L2", "xv", "M2", "z2", "S5", "v5", "B2", "V2", "G2", "W2", "U2", "H2", "q2", "K2", "j2", "X2", "Y2", "Z2", "J2", "Q2", "t$", "e$", "r$", "n$", "o$", "s$", "yv", "bv", "i$", "a$", "l$", "u$", "c$", "p$", "m$", "f$", "d$", "h$", "g$", "x$", "N5", "y$", "T5", "vn", "Hr", "M", "St", "Im", "xh", "Io", "ro", "Cv", "Nr", "xe", "So", "el", "Co", "Sm", "wv", "Gi", "k5", "yh", "vo", "b$", "Wi", "Cy", "Ze", "w$", "C$", "Iy", "E5", "vy", "Sy", "gu", "I$", "S$", "v$", "N$", "T$", "vm", "Fe", "E$", "pn", "Iv", "bh", "k$", "Hs", "_5", "Ny", "_$", "Ty", "A5", "A$", "No", "ac", "qs", "Zr", "Sv", "ir", "mn", "no", "nl", "$$", "Ey", "D$", "R$", "rl", "vv", "wh", "Nm", "Tv", "Tm", "To", "Nv", "_y", "lc", "fn", "F$", "O$", "Ay", "P$", "xu", "L$", "M$", "$5", "D5", "dn", "km", "yu", "Em", "_m", "Am", "$m", "Dm", "R5", "qr", "uc", "cc", "pc", "mc", "fc", "dc", "Rm", "z$", "B$", "Te", "de", "$y", "Fm", "Nt", "Bt", "Om", "G$", "Ch", "O5", "Ih", "Pm", "ye", "Jr", "P5", "ol", "L5", "$t", "M5", "z5", "kv", "Ks", "Dy", "B5", "ko", "Ry", "Fy", "U$", "hc", "V5", "W5", "W$", "G5", "U5", "K$", "H5", "j5", "K5", "q5", "Ev", "gc", "Lm", "Mm", "zm", "Bm", "H$", "ze", "q$", "Be", "j$", "Z5", "o8", "n8", "s8", "i8", "e8", "a8", "l8", "Y5", "u8", "Q5", "J5", "t8", "r8", "X5", "ED", "Tn", "ll", "NY", "FY", "xZ", "OY", "Gv", "Wv", "Uv", "UY", "qY", "jY", "HY", "KY", "XY", "VY", "uZ", "CZ", "PY", "gY", "xY", "yY", "bY", "wY", "sZ", "iZ", "IY", "TY", "vY", "BY", "kY", "cY", "RY", "_Y", "gZ", "hZ", "YY", "ZY", "pZ", "mZ", "vD", "ND", "QY", "tZ", "Pv", "uY", "GY", "mY", "eZ", "rZ", "yZ", "fZ", "dZ", "TD", "kD", "JY", "LY", "MY", "zY", "DY", "fY", "pY", "AY", "bZ", "$Y", "wZ", "aZ", "CY", "nZ", "oZ", "dY", "EY", "lZ", "hY", "cZ", "SY", "WY", "Ui", "Oy", "X$", "c8", "sl", "Py", "_v", "Ly", "My", "zy", "hn", "By", "gn", "Sh", "Hi", "Vm", "bu", "p8", "m8", "f8", "d8", "h8", "xc", "Gm", "g8", "Wm", "x8", "y8", "Nh", "vh", "Vy", "Th", "kh", "Z$", "b8", "w8", "Av", "J$", "Wy", "Uy", "C8", "I8", "S8", "v8", "N8", "T8", "Eh", "k8", "$v", "Gy", "Q$", "_h", "eD", "Rv", "Dv", "rD", "A8", "Hy", "$8", "D8", "_8", "nD", "yc", "qy", "Um", "zn", "R8", "Ky", "jy", "oD", "F8", "aD", "sD", "O8", "lD", "iD", "P8", "L8", "uD", "Xy", "Hm", "Yy", "Zy", "M8", "cD", "Eo", "Fv", "z8", "Ov", "pD", "mD", "B8", "V8", "fD", "G8", "W8", "Bn", "Jy", "dD", "hD", "U8", "H8", "qi", "q8", "K8", "j8", "Qr", "Qy", "tb", "eb", "rb", "nb", "ob", "sb", "ib", "ab", "lb", "qm", "ub", "cb", "pb", "js", "Lv", "Xs", "Mv", "mb", "wu", "yD", "bD", "gD", "me", "xD", "be", "Km", "jm", "Xm", "Ym", "Zm", "Jm", "Cu", "Nn", "Ys", "Ah", "zv", "Y8", "wD", "Z8", "bc", "Iu", "il", "al", "Qm", "tf", "fb", "ef", "Su", "rf", "nf", "J8", "of", "Bv", "Vv", "Ic", "wc", "cl", "sf", "Cc", "af", "ul", "lf", "Q8", "db", "Sc", "uf", "vc", "cf", "pf", "mf", "ff", "df", "hf", "gf", "xf", "yf", "pl", "bf", "wf", "Cf", "If", "Sf", "vf", "$h", "tY", "Nf", "Tf", "kf", "Ef", "Dh", "eY", "rY", "nY", "_f", "Af", "oY", "$f", "wb", "CD", "hb", "Df", "Rf", "gb", "Ff", "Of", "xb", "Pf", "Lf", "yb", "Mf", "zf", "bb", "Bf", "Vf", "Cb", "Gf", "sY", "iY", "Wf", "Uf", "aY", "ID", "Hf", "SD", "qf", "_D", "DZ", "OZ", "IZ", "SZ", "NZ", "TZ", "_Z", "RZ", "AZ", "$Z", "FZ", "PZ", "kZ", "EZ", "vZ", "AD", "$D", "MZ", "LZ", "zZ", "Sb", "Ib", "DD", "vb", "BZ", "VZ", "GZ", "oo", "RD", "Hv", "UZ", "Nb", "HZ", "S", "br", "xn", "Tb", "FD", "_o", "Rh", "Zs", "qv", "qZ", "Kv", "KZ", "jv", "jZ", "Xv", "XZ", "Yv", "YZ", "Zv", "ZZ", "Jv", "JZ", "Qv", "QZ", "tN", "t7", "eN", "e7", "rN", "r7", "nN", "n7", "oN", "o7", "sN", "s7", "iN", "i7", "aN", "a7", "lN", "l7", "uN", "u7", "cN", "c7", "Fh", "kb", "Fb", "_b", "Rb", "Eb", "Pb", "Db", "Ob", "Ab", "$b", "OD", "pN", "p7", "PD", "LD", "Lb", "ae", "MD", "zD", "Vn", "BD", "Kf", "Mb", "zb", "VD", "GD", "WD", "UD", "HD", "qD", "KD", "jD", "mN", "XD", "YD", "ZD", "Bb", "JD", "QD", "tR", "eR", "rR", "nR", "oR", "sR", "iR", "aR", "lR", "fN", "Oh", "dN", "hN", "F7", "O7", "uR", "$7", "D7", "R7", "Nc", "Vb", "P7", "L7", "Ph", "M7", "B7", "z7", "cR", "AR", "Yf", "Js", "ed", "Xf", "rd", "wR", "NR", "TR", "kR", "_R", "PN", "ER", "CR", "bR", "gR", "pR", "Gb", "vu", "mR", "xN", "fR", "Wb", "dR", "V7", "hR", "G7", "jf", "Tc", "AN", "yN", "Lh", "bN", "xR", "Hb", "yR", "fl", "EN", "Je", "TN", "vN", "NN", "Ub", "kN", "SN", "IN", "CN", "qb", "_N", "wN", "kc", "kn", "W7", "U7", "Kb", "Mh", "IR", "jb", "$N", "SR", "Zf", "Jf", "Qf", "zh", "DN", "RN", "Xb", "FN", "ON", "td", "vR", "H7", "Yb", "tt", "q7", "Nu", "mw", "zN", "sd", "Jb", "MN", "BN", "Ec", "VN", "WN", "HN", "qN", "Qb", "tw", "jN", "KN", "YN", "XN", "ew", "ZN", "rw", "JN", "QN", "Bh", "tT", "eT", "rT", "nw", "ow", "sw", "Ac", "nT", "dl", "sF", "LN", "$c", "iw", "aw", "ld", "lF", "sT", "lw", "Dc", "Rc", "Fc", "aT", "uw", "cw", "id", "pw", "K7", "$R", "Qt", "wr", "DR", "nd", "Kr", "RR", "Ao", "FR", "$o", "OR", "oe", "od", "j7", "Ki", "PR", "yn", "kt", "Do", "X7", "LR", "GN", "MR", "UN", "zR", "Y7", "BR", "Z7", "VR", "J7", "GR", "Q7", "WR", "tJ", "UR", "eJ", "HR", "rJ", "qR", "nJ", "KR", "oJ", "jR", "sJ", "_c", "XR", "iJ", "YR", "aJ", "ZR", "Ve", "JR", "lJ", "QR", "uJ", "cJ", "pJ", "mJ", "tF", "fJ", "dJ", "eF", "Ro", "ad", "nF", "rF", "hJ", "oF", "oT", "iF", "Fo", "aF", "gJ", "uF", "xJ", "cF", "iT", "yJ", "bJ", "Vh", "pF", "Gh", "mF", "lT", "fF", "uT", "dF", "CJ", "cT", "hF", "pT", "gF", "mT", "xF", "Oc", "Yt", "yF", "fT", "bF", "IJ", "wF", "SJ", "CF", "vJ", "IF", "NJ", "SF", "TJ", "vF", "kJ", "NF", "EJ", "TF", "_J", "kF", "AJ", "EF", "$J", "_F", "DJ", "AF", "RJ", "FJ", "$F", "OJ", "DF", "ud", "fw", "dw", "RF", "PJ", "FF", "LJ", "OF", "MJ", "PF", "zJ", "LF", "BJ", "MF", "VJ", "zF", "GJ", "BF", "WJ", "VF", "UJ", "GF", "HJ", "WF", "ji", "UF", "Tu", "HF", "dT", "qF", "qJ", "KF", "KJ", "jF", "jJ", "XF", "XJ", "YF", "YJ", "ZF", "ZJ", "JF", "JJ", "QF", "QJ", "tO", "tQ", "eO", "eQ", "rO", "rQ", "nO", "nQ", "oO", "hT", "sO", "oQ", "iO", "sQ", "aO", "iQ", "lO", "uO", "cO", "pO", "hl", "mO", "aQ", "fO", "lQ", "dO", "uQ", "cQ", "pQ", "mQ", "fQ", "dQ", "hQ", "hO", "cd", "gO", "gQ", "Wh", "Uh", "hw", "xQ", "yQ", "gT", "bQ", "wQ", "xO", "Hh", "CQ", "yO", "bO", "IQ", "SQ", "wO", "vQ", "CO", "NQ", "IO", "TQ", "SO", "kQ", "vO", "EQ", "NO", "_Q", "TO", "AQ", "kO", "$Q", "EO", "DQ", "_O", "RQ", "AO", "FQ", "OQ", "$O", "PQ", "DO", "LQ", "MQ", "RO", "zQ", "FO", "BQ", "OO", "xT", "PO", "VQ", "LO", "GQ", "MO", "WQ", "zO", "UQ", "BO", "VO", "GO", "HQ", "WO", "qQ", "UO", "KQ", "HO", "jQ", "XQ", "qO", "jO", "yT", "KO", "YQ", "XO", "ZQ", "JQ", "YO", "QQ", "t9", "ZO", "e9", "r9", "JO", "n9", "QO", "qh", "tP", "eP", "rP", "bT", "nP", "o9", "gw", "s9", "i9", "oP", "a9", "sP", "l9", "iP", "u9", "aP", "c9", "lP", "p9", "uP", "m9", "cP", "f9", "pP", "d9", "mP", "h9", "fP", "g9", "dP", "hP", "x9", "gP", "y9", "xP", "b9", "w9", "yP", "C9", "bP", "I9", "wP", "S9", "v9", "N9", "CP", "T9", "IP", "k9", "SP", "E9", "vP", "_9", "NP", "A9", "TP", "$9", "kP", "D9", "EP", "R9", "_P", "F9", "AP", "O9", "$P", "P9", "DP", "L9", "RP", "FP", "M9", "OP", "z9", "PP", "B9", "LP", "V9", "MP", "G9", "zP", "W9", "BP", "U9", "VP", "H9", "GP", "q9", "WP", "K9", "UP", "J9", "Q9", "HP", "j9", "X9", "Z9", "Y9", "Kh", "ttt", "qP", "ett", "KP", "rtt", "jP", "ntt", "dd", "Qs", "mtt", "Zh", "OT", "JP", "Iw", "yt", "ST", "NT", "DT", "TT", "_T", "ET", "AT", "vT", "xl", "pd", "QP", "MT", "ctt", "FT", "RT", "yl", "fd", "PT", "zT", "ZP", "LT", "Wn", "BT", "VT", "Eu", "GT", "vw", "kT", "Cw", "ftt", "dtt", "Sw", "ptt", "md", "Yh", "$T", "Pc", "xw", "wT", "Gn", "stt", "ott", "ku", "jr", "Pr", "Lc", "XP", "jh", "Xi", "YP", "Xh", "itt", "att", "ltt", "gl", "utt", "tL", "yw", "bw", "ww", "IT", "htt", "Tt", "Ge", "ti", "Mc", "gtt", "eL", "hd", "gd", "Nw", "rL", "nL", "Tw", "xtt", "wtt", "Stt", "ytt", "Itt", "btt", "Ctt", "ktt", "yd", "ztt", "Vtt", "Wtt", "Htt", "Ktt", "jtt", "Xtt", "oL", "Mtt", "Btt", "Gtt", "Utt", "qtt", "Ytt", "Ztt", "sL", "Ett", "Ptt", "Att", "Dtt", "_tt", "Ltt", "$tt", "Rtt", "Ftt", "Ott", "vtt", "Ntt", "Ttt", "zc", "bd", "wd", "Cd", "zt", "aL", "WT", "iL", "lL", "uL", "we", "kw", "Ew", "_w", "Aw", "tet", "Jh", "$w", "ik", "JT", "ek", "jT", "ZT", "KT", "qT", "YT", "XT", "HT", "UT", "nk", "rk", "sk", "ok", "Rw", "Pw", "Dw", "Ow", "Fw", "QT", "tk", "Qh", "Bc", "eet", "cL", "Lw", "pL", "mL", "fL", "dL", "hL", "gL", "xL", "yL", "bL", "wL", "CL", "IL", "SL", "vL", "NL", "TL", "kL", "EL", "_L", "AL", "$L", "DL", "RL", "FL", "OL", "PL", "LL", "ML", "zL", "BL", "Mw", "VL", "GL", "WL", "zw", "UL", "HL", "qL", "KL", "jL", "XL", "YL", "ZL", "Vc", "JL", "ak", "Qe", "QL", "Bw", "Id", "ret", "Vw", "eM", "rM", "tM", "net", "oet", "set", "tn", "fr", "nM", "lk", "oM", "sM", "iM", "Gc", "aM", "uM", "cM", "pM", "mM", "fM", "so", "Gw", "aet", "uet", "cet", "Ww", "pet", "met", "fet", "det", "_u", "het", "dM", "hM", "Zke", "Sd", "io", "Yi", "Oo", "tr", "gM", "En", "xM", "uk", "ck", "get", "yM", "pk", "mk", "xet", "bM", "Po", "Ct", "le", "bl", "vd", "fk", "tg", "wM", "eg", "CM", "IM", "st", "SM", "rg", "Uw", "bet", "Un", "Hw", "wet", "qw", "Au", "vM", "Wc", "NM", "Oe", "TM", "dk", "Uc", "Cet", "kM", "EM", "Iet", "_M", "vet", "Net", "AM", "Tet", "ket", "$M", "DM", "Eet", "RM", "Kw", "jw", "Xw", "FM", "_et", "OM", "Aet", "PM", "Yw", "Zw", "LM", "MM", "Jw", "$et", "zM", "Det", "BM", "Ret", "Fet", "VM", "Oet", "Pet", "GM", "Let", "Met", "WM", "zet", "Bet", "Vet", "UM", "Get", "Wet", "HM", "ei", "$u", "Uet", "qM", "Het", "KM", "Qw", "tC", "qet", "jM", "Ket", "XM", "jet", "YM", "eC", "rC", "Xet", "ZM", "nC", "Yet", "hk", "oC", "Zet", "ri", "JM", "Jet", "QM", "Qet", "tz", "trt", "ez", "ert", "gk", "rz", "wl", "nz", "rrt", "oz", "xk", "sz", "iz", "nrt", "az", "sC", "iC", "ort", "lz", "aC", "uz", "srt", "cz", "lC", "cC", "uC", "Hc", "pz", "Nd", "irt", "yk", "mz", "Td", "pC", "kd", "mC", "fC", "dC", "hC", "art", "fz", "gC", "xC", "yC", "bC", "lrt", "dz", "urt", "hz", "crt", "gz", "prt", "xz", "mrt", "yz", "frt", "drt", "bz", "hrt", "grt", "wz", "wC", "xrt", "Cz", "qc", "ng", "Iz", "Sz", "CC", "yrt", "vz", "brt", "Nz", "wrt", "Tz", "IC", "Crt", "kz", "Ed", "_d", "Irt", "Ez", "SC", "vC", "Srt", "_z", "vrt", "Az", "NC", "Nrt", "$z", "TC", "Trt", "Dz", "krt", "Rz", "Ert", "_rt", "Art", "Fz", "$rt", "Drt", "Rrt", "Oz", "Frt", "Ort", "Prt", "Pz", "Lrt", "Mrt", "Lz", "zrt", "Brt", "bk", "Mz", "kC", "zz", "Bz", "Vrt", "Vz", "og", "EC", "Grt", "Gz", "_C", "Cl", "Wz", "AC", "Uz", "Hz", "Wrt", "qz", "Urt", "Hrt", "qrt", "Kz", "$C", "DC", "jz", "Krt", "Ad", "wk", "jrt", "Xz", "Xrt", "Yz", "RC", "Yrt", "Zz", "FC", "Zrt", "Ck", "Jz", "Jrt", "Qrt", "tnt", "Qz", "ent", "rnt", "nnt", "t3", "ont", "e3", "snt", "int", "r3", "ant", "lnt", "n3", "unt", "cnt", "o3", "pnt", "mnt", "fnt", "s3", "dnt", "hnt", "gnt", "i3", "xnt", "a3", "ynt", "bnt", "wnt", "l3", "Cnt", "Int", "u3", "Snt", "vnt", "Nnt", "c3", "Tnt", "knt", "p3", "Ent", "_nt", "Ant", "m3", "OC", "PC", "$nt", "f3", "LC", "Dnt", "d3", "h3", "Ik", "g3", "Rnt", "Fnt", "Ont", "x3", "Pnt", "y3", "Lnt", "b3", "MC", "zC", "Mnt", "w3", "znt", "C3", "I3", "S3", "v3", "N3", "Bnt", "T3", "Vnt", "Gnt", "Wnt", "k3", "BC", "VC", "Unt", "E3", "Hnt", "qnt", "Knt", "_3", "GC", "jnt", "Xnt", "Sk", "A3", "$3", "vk", "D3", "Nk", "R3", "Ynt", "F3", "Znt", "Jnt", "Qnt", "O3", "tot", "eot", "P3", "rot", "not", "L3", "oot", "sot", "M3", "WC", "iot", "z3", "sg", "B3", "V3", "G3", "aot", "W3", "UC", "HC", "Tk", "U3", "lot", "uot", "cot", "H3", "pot", "q3", "mot", "K3", "fot", "j3", "dot", "X3", "kk", "Y3", "hot", "got", "Z3", "xot", "yot", "bot", "J3", "wot", "Cot", "Iot", "Q3", "qC", "KC", "Sot", "tB", "jC", "vot", "eB", "XC", "YC", "Not", "rB", "ZC", "Tot", "nB", "JC", "QC", "kot", "oB", "tI", "sB", "Eot", "_ot", "iB", "Aot", "$ot", "aB", "$d", "Dot", "lB", "eI", "Rot", "uB", "rI", "Fot", "cB", "Oot", "Pot", "pB", "Lot", "Mot", "zot", "mB", "Bot", "Vot", "fB", "Got", "Wot", "dB", "Uot", "Hot", "hB", "qot", "Kot", "gB", "jot", "xB", "Xot", "yB", "Yot", "bB", "Zot", "wB", "Jot", "CB", "Qot", "IB", "tst", "SB", "vB", "est", "NB", "rst", "nst", "TB", "kB", "ost", "EB", "sst", "_B", "nI", "ist", "AB", "ast", "$B", "lst", "DB", "ust", "RB", "cst", "pst", "FB", "mst", "fst", "OB", "oI", "dst", "Ek", "PB", "sI", "iI", "Kc", "LB", "hst", "MB", "aI", "gst", "zB", "xst", "BB", "yst", "VB", "lI", "bst", "GB", "wst", "qt", "Du", "WB", "Cst", "Ist", "UB", "se", "HB", "ue", "Sst", "qB", "KB", "vst", "Nst", "jB", "jc", "XB", "YB", "Tst", "ao", "Est", "kst", "ZB", "bn", "JB", "_st", "Ast", "QB", "tV", "$st", "Dst", "eV", "rV", "Rst", "Fst", "nV", "oV", "Ost", "Pst", "sV", "ar", "iV", "aV", "Lst", "Mst", "lV", "Lo", "zst", "Bst", "Vst", "uV", "Gst", "cV", "ni", "pV", "mV", "fV", "Wst", "Ust", "dV", "_k", "hV", "gV", "Hst", "qst", "xV", "yV", "Kst", "jst", "bV", "wV", "CV", "Ak", "IV", "Xst", "Yst", "SV", "vV", "Zst", "Jst", "NV", "TV", "Qst", "tit", "kV", "EV", "eit", "rit", "_V", "AV", "nit", "oit", "$V", "DV", "sit", "RV", "FV", "uI", "OV", "$k", "PV", "LV", "iit", "ait", "MV", "zV", "lit", "BV", "VV", "uit", "cit", "GV", "WV", "pit", "mit", "UV", "HV", "fit", "dit", "qV", "KV", "hit", "git", "jV", "XV", "xit", "yit", "YV", "bit", "ZV", "wit", "JV", "QV", "Cit", "Iit", "tG", "Sit", "eG", "vit", "rG", "nG", "Nit", "oG", "sG", "Tit", "iG", "kit", "aG", "lG", "Eit", "_it", "uG", "Ait", "cG", "pG", "$it", "Dit", "mG", "fG", "Rit", "Fit", "dG", "hG", "Oit", "Pit", "gG", "Lit", "xG", "Dk", "yG", "Mit", "zit", "bG", "Bit", "wG", "CG", "Dd", "IG", "Vit", "Git", "SG", "vG", "Wit", "Uit", "NG", "TG", "Hit", "qit", "kG", "Kit", "EG", "_G", "jit", "Xit", "AG", "Yit", "$G", "Zit", "DG", "RG", "Jit", "Qit", "cI", "tat", "FG", "OG", "eat", "rat", "PG", "LG", "nat", "oat", "MG", "sat", "zG", "iat", "BG", "VG", "GG", "WG", "aat", "lat", "UG", "HG", "uat", "cat", "qG", "KG", "pat", "mat", "jG", "XG", "fat", "dat", "YG", "ZG", "JG", "QG", "hat", "gat", "tW", "eW", "xat", "yat", "rW", "nW", "bat", "wat", "oW", "sW", "iW", "Cat", "Iat", "aW", "Sat", "lW", "uW", "vat", "Nat", "cW", "pW", "Tat", "kat", "mW", "fW", "pI", "mI", "Eat", "dW", "_at", "hW", "Aat", "gW", "xW", "yW", "$at", "bW", "wW", "Dat", "Rat", "CW", "IW", "Fat", "Oat", "SW", "Pat", "vW", "Lat", "NW", "Mat", "TW", "zat", "kW", "EW", "Bat", "Vat", "_W", "AW", "$W", "DW", "Gat", "Wat", "RW", "FW", "Uat", "Hat", "OW", "PW", "qat", "Kat", "LW", "jat", "MW", "Xat", "zW", "Yat", "Rk", "zk", "XW", "Bk", "KW", "Zat", "cg", "ZW", "Mk", "Qat", "Jat", "jW", "hI", "lg", "YW", "ag", "Vk", "ug", "tlt", "elt", "rlt", "nlt", "olt", "slt", "ilt", "JW", "alt", "llt", "ult", "clt", "plt", "draw_exports", "__export", "AnchorPosition", "DrawBox", "DrawBoxOptions", "DrawFaceLandmarks", "DrawFaceLandmarksOptions", "DrawTextField", "DrawTextFieldOptions", "drawContour", "drawDetections", "drawFaceExpressions", "drawFaceLandmarks", "drawContour", "ctx", "points", "isClosed", "x", "y", "prevIdx", "from", "to", "utils_exports", "__export", "computeReshapedDimensions", "getCenterPoint", "isDimensions", "isEven", "isFloat", "isTensor", "isTensor1D", "isTensor2D", "isTensor3D", "isTensor4D", "isValidNumber", "isValidProbablitiy", "range", "round", "Dimensions", "width", "height", "isValidNumber", "isTensor", "tensor", "dim", "Ft", "isTensor1D", "isTensor2D", "isTensor3D", "isTensor4D", "isFloat", "num", "isEven", "round", "prec", "f", "isDimensions", "obj", "computeReshapedDimensions", "width", "height", "inputSize", "scale", "Dimensions", "getCenterPoint", "pts", "sum", "pt", "Point", "range", "start", "step", "_", "i", "isValidNumber", "isValidProbablitiy", "Point", "x", "y", "pt", "Box", "rect", "isValidNumber", "box", "callee", "allowNegativeDimensions", "_box", "isBbox", "isRect", "x", "y", "width", "height", "Point", "val", "diff", "s", "scaleX", "isDimensions", "scaleY", "padX", "padY", "imgWidth", "imgHeight", "right", "bottom", "clippedX", "clippedY", "newWidth", "newHeight", "clippedWidth", "clippedHeight", "sx", "sy", "imageHeight", "imageWidth", "w", "h", "dx", "dy", "edx", "edy", "ex", "ey", "region", "BoundingBox", "Box", "left", "top", "right", "bottom", "allowNegativeDimensions", "ObjectDetection", "score", "classScore", "className", "relativeBox", "imageDims", "Dimensions", "Box", "width", "height", "FaceDetection", "ObjectDetection", "score", "relativeBox", "imageDims", "width", "height", "iou", "box1", "box2", "isIOU", "width", "height", "interSection", "minBbox", "pts", "xs", "pt", "ys", "minX", "min", "x", "minY", "y", "maxX", "max", "maxY", "BoundingBox", "nonMaxSuppression", "boxes", "scores", "iouThreshold", "isIOU", "indicesSortedByScore", "score", "boxIndex", "c1", "c2", "c", "pick", "curr", "indices", "outputs", "i", "idx", "currBox", "idxBox", "iou", "_", "j", "normalize", "x", "meanRgb", "B", "r", "g", "b", "avg_r", "xo", "avg_g", "avg_b", "avg_rgb", "ne", "ct", "padToSquare", "imgTensor", "isCenterImage", "B", "height", "width", "dimDiff", "paddingAmount", "paddingAxis", "createPaddingTensor", "paddingAmountLocal", "paddingTensorShape", "xo", "paddingTensorAppend", "remainingPaddingAmount", "tensorsToStack", "t", "J", "ne", "shuffleArray", "inputArray", "array", "i", "j", "x", "sigmoid", "x", "inverseSigmoid", "Rect", "Box", "x", "y", "width", "height", "allowNegativeDimensions", "relX", "relY", "relScale", "FaceLandmarks", "relativeFaceLandmarkPositions", "imgDims", "shift", "Point", "width", "height", "Dimensions", "pt", "x", "y", "detection", "options", "box", "FaceDetection", "Box", "useDlibAlignment", "minBoxPadding", "centers", "leftEyeCenter", "rightEyeCenter", "mouthCenter", "distToMouth", "eyeToMouthDist", "size", "refPoint", "getCenterPoint", "Rect", "padding", "minBbox", "FaceLandmarks5", "FaceLandmarks", "pts", "getCenterPoint", "FaceLandmarks68", "FaceLandmarks", "getCenterPoint", "FaceMatch", "label", "distance", "withDistance", "round", "LabeledBox", "Box", "box", "label", "callee", "isValidNumber", "LabeledFaceDescriptors", "label", "descriptors", "desc", "d", "json", "PredictedBox", "LabeledBox", "box", "label", "score", "classScore", "callee", "isValidProbablitiy", "isWithFaceDetection", "obj", "FaceDetection", "extendWithFaceDetection", "sourceObj", "detection", "createBrowserEnv", "fetch", "isNodejs", "createFileSystem", "fs", "requireFsError", "isNodejs", "err", "filePath", "resolve", "reject", "buffer", "createNodejsEnv", "Canvas", "Image", "Video", "createCanvasElement", "createImageElement", "createVideoElement", "fetch", "fileSystem", "createFileSystem", "isBrowser", "environment", "getEnv", "setEnv", "env", "initialize", "isBrowser", "createBrowserEnv", "isNodejs", "createNodejsEnv", "monkeyPatch", "Canvas", "Image", "createFileSystem", "resolveInput", "arg", "env", "getContext2dOrThrow", "canvasArg", "Canvas", "CanvasRenderingContext2D", "env", "canvas", "resolveInput", "ctx", "AnchorPosition", "DrawTextFieldOptions", "options", "anchorPosition", "backgroundColor", "fontColor", "fontSize", "fontStyle", "padding", "DrawTextField", "text", "anchor", "ctx", "l", "w0", "w1", "canvasDims", "isShiftLeft", "isShiftTop", "textFieldWidth", "textFieldHeight", "x", "y", "width", "height", "newX", "newY", "canvasArg", "canvas", "resolveInput", "getContext2dOrThrow", "maxTextWidth", "textHeight", "upperLeft", "textLine", "i", "DrawBoxOptions", "options", "boxColor", "lineWidth", "label", "drawLabelOptions", "defaultDrawLabelOptions", "DrawTextFieldOptions", "DrawBox", "box", "Box", "canvasArg", "ctx", "getContext2dOrThrow", "x", "y", "width", "height", "DrawTextField", "drawDetections", "canvasArg", "detections", "det", "score", "FaceDetection", "isWithFaceDetection", "box", "Box", "label", "round", "DrawBox", "isMediaLoaded", "media", "Image", "Video", "env", "awaitMediaLoaded", "media", "resolve", "reject", "env", "isMediaLoaded", "onError", "e", "onLoad", "bufferToImage", "buf", "resolve", "reject", "reader", "img", "env", "getMediaDimensions", "input", "Image", "Video", "env", "Dimensions", "createCanvas", "width", "height", "createCanvasElement", "env", "canvas", "createCanvasFromMedia", "media", "dims", "ImageData", "isMediaLoaded", "getMediaDimensions", "getContext2dOrThrow", "imageTensorToCanvas", "imgTensor", "canvas", "targetCanvas", "env", "height", "width", "numChannels", "isTensor4D", "imgTensor3D", "B", "nx", "isMediaElement", "input", "Image", "Canvas", "Video", "env", "imageToSquare", "input", "inputSize", "centerImage", "Image", "Canvas", "env", "createCanvas", "dims", "getMediaDimensions", "scale", "width", "height", "targetCanvas", "inputCanvas", "createCanvasFromMedia", "offset", "dx", "dy", "getContext2dOrThrow", "NetInput", "inputs", "treatAsBatchInput", "input", "idx", "isTensor3D", "isTensor4D", "batchSize", "canvas", "env", "createCanvasFromMedia", "range", "_", "batchIdx", "width", "height", "computeReshapedDimensions", "inputSize", "isCenterInputs", "B", "inputTensors", "Ft", "imgTensor", "rr", "padToSquare", "Gs", "nx", "imageToSquare", "nr", "t", "J", "toNetInput", "inputs", "NetInput", "inputArgArray", "getIdxHint", "idx", "inputArray", "resolveInput", "input", "i", "isMediaElement", "isTensor3D", "isTensor4D", "batchSize", "awaitMediaLoaded", "extractFaces", "input", "detections", "Canvas", "env", "canvas", "netInput", "toNetInput", "tensorOrCanvas", "imageTensorToCanvas", "ctx", "getContext2dOrThrow", "det", "FaceDetection", "box", "x", "y", "width", "height", "faceImg", "createCanvas", "extractFaceTensors", "imageTensor", "detections", "isTensor3D", "isTensor4D", "B", "imgHeight", "imgWidth", "numChannels", "det", "FaceDetection", "box", "x", "y", "width", "height", "gm", "fetchOrThrow", "url", "init", "fetch", "env", "res", "fetchImage", "uri", "res", "fetchOrThrow", "blob", "bufferToImage", "fetchJson", "uri", "fetchOrThrow", "fetchNetWeights", "uri", "fetchOrThrow", "bufferToVideo", "buf", "resolve", "reject", "video", "env", "fetchVideo", "uri", "res", "fetchOrThrow", "blob", "bufferToVideo", "getModelUris", "uri", "defaultModelName", "defaultManifestFilename", "protocol", "parts", "s", "manifestFile", "modelBaseUri", "loadWeightMap", "uri", "defaultModelName", "manifestUri", "modelBaseUri", "getModelUris", "manifest", "fetchJson", "_r", "matchDimensions", "input", "reference", "useMediaDimensions", "width", "height", "getMediaDimensions", "NeuralNetwork", "name", "paramPath", "obj", "objProp", "tensor", "param", "Ka", "path", "variable", "ur", "throwOnRedispose", "flat", "arr", "weightsOrUrl", "uri", "weightMap", "loadWeightMap", "filePath", "readFile", "env", "manifestUri", "modelBaseUri", "getModelUris", "fetchWeightsFromDisk", "filePaths", "fp", "buf", "loadWeights", "_r", "manifest", "paramMappings", "params", "weights", "result", "res", "Ft", "depthwiseSeparableConv", "x", "params", "stride", "B", "out", "mm", "X", "denseBlock3", "x", "denseBlockParams", "isFirstLayer", "B", "out1", "Fr", "X", "In", "depthwiseSeparableConv", "out2", "in3", "out3", "denseBlock4", "isScaleDown", "in4", "out4", "convLayer", "x", "params", "padding", "withRelu", "B", "out", "X", "In", "Fr", "disposeUnusedWeightTensors", "weightMap", "paramMappings", "path", "pm", "extractConvParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "filterSize", "mappedPrefix", "filters", "$_", "bias", "Me", "extractFCParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "mappedPrefix", "fc_weights", "Vs", "fc_bias", "Me", "SeparableConvParams", "depthwise_filter", "pointwise_filter", "bias", "extractSeparableConvParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "mappedPrefix", "depthwise_filter", "$_", "pointwise_filter", "bias", "Me", "SeparableConvParams", "loadSeparableConvParamsFactory", "extractWeightEntry", "prefix", "extractWeightEntryFactory", "weightMap", "paramMappings", "originalPath", "paramRank", "mappedPath", "tensor", "isTensor", "extractWeightsFactory", "weights", "remainingWeights", "extractWeights", "numWeights", "ret", "getRemainingWeights", "extractorsFactory", "extractWeights", "paramMappings", "extractConvParams", "extractConvParamsFactory", "extractSeparableConvParams", "extractSeparableConvParamsFactory", "extractDenseBlock3Params", "channelsIn", "channelsOut", "mappedPrefix", "isFirstLayer", "conv0", "conv1", "conv2", "extractDenseBlock4Params", "conv3", "extractParams", "weights", "paramMappings", "extractWeights", "getRemainingWeights", "extractWeightsFactory", "extractDenseBlock4Params", "extractorsFactory", "dense0", "dense1", "dense2", "dense3", "loadConvParamsFactory", "extractWeightEntry", "prefix", "filters", "bias", "loadParamsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractConvParams", "loadConvParamsFactory", "extractSeparableConvParams", "loadSeparableConvParamsFactory", "extractDenseBlock3Params", "prefix", "isFirstLayer", "conv0", "conv1", "conv2", "extractDenseBlock4Params", "conv3", "extractParamsFromWeightMap", "weightMap", "paramMappings", "extractDenseBlock4Params", "loadParamsFactory", "params", "disposeUnusedWeightTensors", "FaceFeatureExtractor", "NeuralNetwork", "input", "params", "B", "batchTensor", "J", "normalized", "normalize", "out", "denseBlock4", "Yl", "toNetInput", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "fullyConnectedLayer", "x", "params", "B", "X", "Lt", "extractParams", "weights", "channelsIn", "channelsOut", "paramMappings", "extractWeights", "getRemainingWeights", "extractWeightsFactory", "fc", "extractFCParamsFactory", "extractParamsFromWeightMap", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractFcParams", "prefix", "weights", "bias", "params", "disposeUnusedWeightTensors", "seperateWeightMaps", "weightMap", "featureExtractorMap", "classifierMap", "key", "map", "FaceProcessor", "NeuralNetwork", "_name", "faceFeatureExtractor", "input", "params", "B", "bottleneckFeatures", "NetInput", "fullyConnectedLayer", "throwOnRedispose", "weights", "paramMappings", "extractParams", "weightMap", "featureExtractorMap", "classifierMap", "seperateWeightMaps", "extractParamsFromWeightMap", "cIn", "cOut", "classifierWeightSize", "featureExtractorWeights", "classifierWeights", "FACE_EXPRESSION_LABELS", "FaceExpressions", "probabilities", "expression", "idx", "e0", "e1", "FaceExpressionNet", "FaceProcessor", "faceFeatureExtractor", "FaceFeatureExtractor", "input", "B", "iu", "toNetInput", "netInput", "out", "probabilitesByBatch", "vr", "t", "data", "predictionsByBatch", "probabilites", "FaceExpressions", "isWithFaceExpressions", "obj", "FaceExpressions", "extendWithFaceExpressions", "sourceObj", "expressions", "drawFaceExpressions", "canvasArg", "faceExpressions", "minConfidence", "textFieldAnchor", "e", "expr", "FaceExpressions", "isWithFaceExpressions", "resultsToDisplay", "exprLocal", "anchor", "isWithFaceDetection", "Point", "DrawTextField", "round", "isWithFaceLandmarks", "obj", "isWithFaceDetection", "FaceLandmarks", "FaceDetection", "calculateFaceAngle", "mesh", "degrees", "radians", "calcLengthBetweenTwoPoints", "a", "b", "angle", "calcYaw", "leftPoint", "midPoint", "rightPoint", "leftToMidpoint", "rightToMidpoint", "calcRoll", "lever", "pivot", "hypotenuse", "opposite", "angleInRadians", "angleInDegrees", "normalizeAngle", "tiltDirection", "calcPitch", "base", "baseCoords", "midToBaseLength", "direction", "pt", "extendWithFaceLandmarks", "sourceObj", "unshiftedLandmarks", "shift", "landmarks", "rect", "imageDims", "alignedRect", "DrawFaceLandmarksOptions", "options", "drawLines", "drawPoints", "lineWidth", "lineColor", "pointSize", "pointColor", "DrawFaceLandmarks", "faceLandmarks", "canvasArg", "ctx", "getContext2dOrThrow", "FaceLandmarks68", "drawContour", "drawPoint", "pt", "drawFaceLandmarks", "f", "landmarks", "FaceLandmarks", "isWithFaceLandmarks", "extractorsFactory", "extractWeights", "paramMappings", "extractConvParams", "extractConvParamsFactory", "extractSeparableConvParams", "extractSeparableConvParamsFactory", "extractReductionBlockParams", "channelsIn", "channelsOut", "mappedPrefix", "separable_conv0", "separable_conv1", "expansion_conv", "extractMainBlockParams", "channels", "separable_conv2", "extractParams", "weights", "numMainBlocks", "getRemainingWeights", "extractWeightsFactory", "entry_flow_conv_in", "entry_flow_reduction_block_0", "entry_flow_reduction_block_1", "entry_flow", "middle_flow", "range", "idx", "exit_flow_reduction_block", "exit_flow_separable_conv", "exit_flow", "loadParamsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractConvParams", "loadConvParamsFactory", "extractSeparableConvParams", "loadSeparableConvParamsFactory", "extractReductionBlockParams", "mappedPrefix", "separable_conv0", "separable_conv1", "expansion_conv", "extractMainBlockParams", "separable_conv2", "extractParamsFromWeightMap", "numMainBlocks", "entry_flow_conv_in", "entry_flow_reduction_block_0", "entry_flow_reduction_block_1", "entry_flow", "middle_flow", "range", "idx", "exit_flow_reduction_block", "exit_flow_separable_conv", "exit_flow", "disposeUnusedWeightTensors", "conv", "x", "params", "stride", "X", "In", "reductionBlock", "isActivateInput", "out", "Fr", "depthwiseSeparableConv", "ru", "mainBlock", "TinyXception", "NeuralNetwork", "numMainBlocks", "input", "B", "batchTensor", "J", "normalized", "normalize", "range", "idx", "toNetInput", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "extractParams", "weights", "paramMappings", "extractWeights", "getRemainingWeights", "extractWeightsFactory", "extractFCParams", "extractFCParamsFactory", "age", "gender", "extractParamsFromWeightMap", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractFcParams", "prefix", "weights", "bias", "params", "disposeUnusedWeightTensors", "Gender", "AgeGenderNet", "NeuralNetwork", "faceFeatureExtractor", "TinyXception", "input", "params", "B", "bottleneckFeatures", "NetInput", "pooled", "Yl", "age", "fullyConnectedLayer", "gender", "iu", "toNetInput", "netInput", "out", "ages", "vr", "genders", "ageAndGenderTensors", "ageTensor", "i", "predictionsByBatch", "genderTensor", "probMale", "isMale", "genderProbability", "throwOnRedispose", "weights", "paramMappings", "extractParams", "weightMap", "featureExtractorMap", "classifierMap", "seperateWeightMaps", "extractParamsFromWeightMap", "featureExtractorWeights", "classifierWeights", "FaceLandmark68NetBase", "FaceProcessor", "output", "inputSize", "originalDimensions", "inputDimensions", "width", "height", "scale", "batchSize", "B", "createInterleavedTensor", "fillX", "fillY", "nr", "xo", "getPadding", "batchIdx", "cond", "getPaddingX", "w", "getPaddingY", "_", "input", "out", "toNetInput", "netInput", "landmarkTensors", "vr", "landmarksForBatch", "landmarkTensor", "landmarksArray", "xCoords", "i", "isEven", "yCoords", "FaceLandmarks68", "Point", "t", "FaceLandmark68Net", "FaceLandmark68NetBase", "faceFeatureExtractor", "FaceFeatureExtractor", "extractParamsFromWeightMapTiny", "weightMap", "paramMappings", "extractDenseBlock3Params", "loadParamsFactory", "params", "disposeUnusedWeightTensors", "extractParamsTiny", "weights", "paramMappings", "extractWeights", "getRemainingWeights", "extractWeightsFactory", "extractDenseBlock3Params", "extractorsFactory", "dense0", "dense1", "dense2", "TinyFaceFeatureExtractor", "NeuralNetwork", "input", "params", "B", "batchTensor", "J", "normalized", "normalize", "out", "denseBlock3", "Yl", "toNetInput", "weightMap", "extractParamsFromWeightMapTiny", "weights", "extractParamsTiny", "FaceLandmark68TinyNet", "FaceLandmark68NetBase", "faceFeatureExtractor", "TinyFaceFeatureExtractor", "FaceLandmarkNet", "FaceLandmark68Net", "scale", "x", "params", "X", "D", "convLayer", "x", "params", "strides", "withRelu", "padding", "filters", "bias", "out", "In", "X", "scale", "Fr", "conv", "convNoRelu", "convDown", "extractorsFactory", "extractWeights", "paramMappings", "extractFilterValues", "numFilterValues", "numFilters", "filterSize", "weights", "depth", "isFloat", "B", "Ot", "$_", "extractConvParams", "mappedPrefix", "filters", "bias", "Me", "extractScaleLayerParams", "numWeights", "biases", "extractConvLayerParams", "conv", "scale", "extractResidualLayerParams", "isDown", "conv1", "conv2", "extractParams", "getRemainingWeights", "extractWeightsFactory", "conv32_down", "conv32_1", "conv32_2", "conv32_3", "conv64_down", "conv64_1", "conv64_2", "conv64_3", "conv128_down", "conv128_1", "conv128_2", "conv256_down", "conv256_1", "conv256_2", "conv256_down_out", "fc", "Vs", "extractorsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractScaleLayerParams", "prefix", "weights", "biases", "extractConvLayerParams", "filters", "bias", "scale", "extractResidualLayerParams", "extractParamsFromWeightMap", "conv32_down", "conv32_1", "conv32_2", "conv32_3", "conv64_down", "conv64_1", "conv64_2", "conv64_3", "conv128_down", "conv128_1", "conv128_2", "conv256_down", "conv256_1", "conv256_2", "conv256_down_out", "fc", "isTensor2D", "params", "disposeUnusedWeightTensors", "residual", "x", "params", "out", "conv", "convNoRelu", "X", "Fr", "residualDown", "convDown", "pooled", "Yl", "zeros", "Ne", "isPad", "padShapeX", "zerosW", "ne", "padShapeY", "zerosH", "FaceRecognitionNet", "NeuralNetwork", "input", "params", "B", "batchTensor", "J", "normalized", "normalize", "out", "convDown", "ru", "residual", "residualDown", "globalAvg", "Lt", "toNetInput", "_a", "dim", "netInput", "faceDescriptorTensors", "vr", "faceDescriptorsForBatch", "t", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "createFaceRecognitionNet", "weights", "net", "FaceRecognitionNet", "extendWithFaceDescriptor", "sourceObj", "descriptor", "isWithAge", "obj", "extendWithAge", "sourceObj", "age", "isWithGender", "obj", "isValidProbablitiy", "extendWithGender", "sourceObj", "gender", "genderProbability", "extractorsFactory", "extractWeights", "paramMappings", "extractDepthwiseConvParams", "numChannels", "mappedPrefix", "filters", "$_", "batch_norm_scale", "Me", "batch_norm_offset", "batch_norm_mean", "batch_norm_variance", "extractConvParams", "channelsIn", "channelsOut", "filterSize", "isPointwiseConv", "bias", "extractPointwiseConvParams", "extractConvPairParams", "depthwise_conv", "pointwise_conv", "extractMobilenetV1Params", "conv_0", "conv_1", "conv_2", "conv_3", "conv_4", "conv_5", "conv_6", "conv_7", "conv_8", "conv_9", "conv_10", "conv_11", "conv_12", "conv_13", "extractPredictionLayerParams", "box_encoding_0_predictor", "class_predictor_0", "box_encoding_1_predictor", "class_predictor_1", "box_encoding_2_predictor", "class_predictor_2", "box_encoding_3_predictor", "class_predictor_3", "box_encoding_4_predictor", "class_predictor_4", "box_encoding_5_predictor", "class_predictor_5", "extractParams", "weights", "getRemainingWeights", "extractWeightsFactory", "mobilenetv1", "prediction_layer", "output_layer", "rx", "extractorsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractPointwiseConvParams", "prefix", "idx", "mappedPrefix", "filters", "batch_norm_offset", "extractConvPairParams", "prefixDepthwiseConv", "mappedPrefixDepthwiseConv", "mappedPrefixPointwiseConv", "batch_norm_scale", "batch_norm_mean", "batch_norm_variance", "extractMobilenetV1Params", "extractConvParams", "bias", "extractBoxPredictorParams", "box_encoding_predictor", "class_predictor", "extractPredictionLayerParams", "extractParamsFromWeightMap", "extra_dim", "isTensor3D", "params", "disposeUnusedWeightTensors", "pointwiseConvLayer", "x", "params", "strides", "B", "out", "In", "X", "Cr", "epsilon", "depthwiseConvLayer", "x", "params", "strides", "B", "out", "Fi", "Di", "Cr", "getStridesForLayerIdx", "layerIdx", "idx", "mobileNetV1", "conv11", "pointwiseConvLayer", "param", "depthwiseConvStrides", "IOU", "boxes", "i", "j", "boxesData", "yminI", "xminI", "ymaxI", "xmaxI", "yminJ", "xminJ", "ymaxJ", "xmaxJ", "areaI", "areaJ", "intersectionYmin", "intersectionXmin", "intersectionYmax", "intersectionXmax", "intersectionArea", "nonMaxSuppression", "scores", "maxOutputSize", "iouThreshold", "scoreThreshold", "numBoxes", "outputSize", "candidates", "score", "boxIndex", "c", "c1", "c2", "suppressFunc", "x", "selected", "originalScore", "iou", "getCenterCoordinatesAndSizesLayer", "x", "vec", "vr", "Ot", "sizes", "ct", "centers", "X", "pt", "decodeBoxesLayer", "x0", "x1", "div0_out", "D", "er", "add0_out", "div1_out", "add1_out", "nr", "outputLayer", "boxPredictions", "classPredictions", "params", "B", "batchSize", "boxes", "R", "Dr", "scoresAndClasses", "Yr", "Rt", "scores", "boxesByBatch", "scoresByBatch", "boxPredictionLayer", "x", "params", "B", "batchSize", "boxPredictionEncoding", "R", "convLayer", "classPrediction", "predictionLayer", "x", "conv11", "params", "B", "conv0", "pointwiseConvLayer", "conv1", "conv2", "conv3", "conv4", "conv5", "conv6", "conv7", "boxPrediction0", "boxPredictionLayer", "boxPrediction1", "boxPrediction2", "boxPrediction3", "boxPrediction4", "boxPrediction5", "boxPredictions", "ne", "classPredictions", "SsdMobilenetv1Options", "minConfidence", "maxResults", "SsdMobilenetv1", "NeuralNetwork", "input", "params", "B", "batchTensor", "J", "x", "ct", "pt", "features", "mobileNetV1", "boxPredictions", "classPredictions", "predictionLayer", "outputLayer", "toNetInput", "options", "maxResults", "minConfidence", "SsdMobilenetv1Options", "netInput", "_boxes", "_scores", "boxes", "scores", "i", "scoresData", "indices", "nonMaxSuppression", "reshapedDims", "inputSize", "padX", "padY", "boxesData", "results", "idx", "top", "bottom", "val", "left", "right", "FaceDetection", "Rect", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "createSsdMobilenetv1", "weights", "net", "SsdMobilenetv1", "createFaceDetectionNet", "FaceDetectionNet", "IOU_THRESHOLD", "BOX_ANCHORS", "Point", "BOX_ANCHORS_SEPARABLE", "MEAN_RGB_SEPARABLE", "DEFAULT_MODEL_NAME", "DEFAULT_MODEL_NAME_SEPARABLE_CONV", "isNumber", "arg", "validateConfig", "config", "c", "a", "leaky", "x", "B", "min", "D", "mt", "X", "Fr", "ct", "convWithBatchNorm", "x", "params", "B", "out", "cn", "In", "ct", "D", "X", "leaky", "depthwiseSeparableConv", "x", "params", "B", "out", "cn", "mm", "X", "leaky", "extractorsFactory", "extractWeights", "paramMappings", "extractConvParams", "extractConvParamsFactory", "extractBatchNormParams", "size", "mappedPrefix", "sub", "Me", "truediv", "extractConvWithBatchNormParams", "channelsIn", "channelsOut", "conv", "bn", "extractSeparableConvParams", "extractSeparableConvParamsFactory", "extractParams", "weights", "config", "boxEncodingSize", "filterSizes", "getRemainingWeights", "extractWeightsFactory", "params", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "conv0", "conv1", "conv2", "conv3", "conv4", "conv5", "conv6", "conv7", "conv8", "extractorsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractBatchNormParams", "prefix", "sub", "truediv", "extractConvParams", "filters", "bias", "extractConvWithBatchNormParams", "conv", "bn", "extractSeparableConvParams", "loadSeparableConvParamsFactory", "extractParamsFromWeightMap", "config", "params", "numFilters", "disposeUnusedWeightTensors", "TinyYolov2Options", "inputSize", "scoreThreshold", "_TinyYolov2Base", "NeuralNetwork", "config", "validateConfig", "x", "params", "out", "convWithBatchNorm", "ru", "convLayer", "leaky", "depthwiseSeparableConv", "input", "inputSize", "B", "batchTensor", "J", "normalize", "toNetInput", "forwardParams", "scoreThreshold", "TinyYolov2Options", "netInput", "out0", "vr", "inputDimensions", "results", "boxes", "res", "scores", "classScores", "classNames", "nonMaxSuppression", "box", "idx", "ObjectDetection", "weightMap", "extractParamsFromWeightMap", "weights", "filterSizes", "numFilters", "extractParams", "outputTensor", "inputBlobDimensions", "width", "height", "correctionFactorX", "correctionFactorY", "numCells", "numBoxes", "boxesTensor", "scoresTensor", "classScoresTensor", "reshaped", "iu", "mt", "scoresData", "boxesData", "row", "col", "anchor", "score", "sigmoid", "ctX", "ctY", "widthLocal", "heightLocal", "y", "pos", "classScore", "label", "BoundingBox", "classesTensor", "classesData", "_", "i", "max", "curr", "TinyYolov2Base", "TinyYolov2", "TinyYolov2Base", "withSeparableConvs", "config", "IOU_THRESHOLD", "BOX_ANCHORS_SEPARABLE", "MEAN_RGB_SEPARABLE", "BOX_ANCHORS", "input", "forwardParams", "det", "FaceDetection", "DEFAULT_MODEL_NAME_SEPARABLE_CONV", "DEFAULT_MODEL_NAME", "weightMap", "createTinyYolov2", "weights", "withSeparableConvs", "net", "TinyYolov2", "TinyFaceDetectorOptions", "TinyYolov2Options", "ComposableTask", "onfulfilled", "extractAllFacesAndComputeResults", "parentResults", "input", "computeResults", "extractedFaces", "getRectForAlignment", "alignedRect", "faceBoxes", "parentResult", "isWithFaceLandmarks", "faces", "Ft", "extractFaceTensors", "extractFaces", "results", "f", "extractSingleFaceAndComputeResult", "computeResult", "IOU_THRESHOLD", "BOX_ANCHORS", "Point", "MEAN_RGB", "TinyFaceDetector", "TinyYolov2Base", "config", "IOU_THRESHOLD", "BOX_ANCHORS", "MEAN_RGB", "input", "forwardParams", "det", "FaceDetection", "weightMap", "nets", "SsdMobilenetv1", "TinyFaceDetector", "TinyYolov2", "FaceLandmark68Net", "FaceLandmark68TinyNet", "FaceRecognitionNet", "FaceExpressionNet", "AgeGenderNet", "ssdMobilenetv1", "input", "options", "tinyFaceDetector", "tinyYolov2", "detectFaceLandmarks", "detectFaceLandmarksTiny", "computeFaceDescriptor", "recognizeFaceExpressions", "predictAgeAndGender", "loadSsdMobilenetv1Model", "url", "loadTinyFaceDetectorModel", "loadTinyYolov2Model", "loadFaceLandmarkModel", "loadFaceLandmarkTinyModel", "loadFaceRecognitionModel", "loadFaceExpressionModel", "loadAgeGenderModel", "loadFaceDetectionModel", "locateFaces", "detectLandmarks", "PredictFaceExpressionsTaskBase", "ComposableTask", "parentTask", "input", "extractedFaces", "PredictAllFaceExpressionsTask", "parentResults", "faceExpressionsByFace", "extractAllFacesAndComputeResults", "faces", "face", "nets", "parentResult", "i", "extendWithFaceExpressions", "PredictAllAgeAndGenderTask", "PredictSingleFaceExpressionsTask", "faceExpressions", "extractSingleFaceAndComputeResult", "PredictSingleAgeAndGenderTask", "PredictAllFaceExpressionsWithFaceAlignmentTask", "PredictAllAgeAndGenderWithFaceAlignmentTask", "ComputeAllFaceDescriptorsTask", "PredictSingleFaceExpressionsWithFaceAlignmentTask", "PredictSingleAgeAndGenderWithFaceAlignmentTask", "ComputeSingleFaceDescriptorTask", "PredictAgeAndGenderTaskBase", "ComposableTask", "parentTask", "input", "extractedFaces", "PredictAllAgeAndGenderTask", "parentResults", "ageAndGenderByFace", "extractAllFacesAndComputeResults", "faces", "face", "nets", "parentResult", "i", "age", "gender", "genderProbability", "extendWithAge", "extendWithGender", "PredictAllFaceExpressionsTask", "PredictSingleAgeAndGenderTask", "extractSingleFaceAndComputeResult", "PredictSingleFaceExpressionsTask", "PredictAllAgeAndGenderWithFaceAlignmentTask", "PredictAllFaceExpressionsWithFaceAlignmentTask", "ComputeAllFaceDescriptorsTask", "PredictSingleAgeAndGenderWithFaceAlignmentTask", "PredictSingleFaceExpressionsWithFaceAlignmentTask", "ComputeSingleFaceDescriptorTask", "ComputeFaceDescriptorsTaskBase", "ComposableTask", "parentTask", "input", "ComputeAllFaceDescriptorsTask", "parentResults", "extractAllFacesAndComputeResults", "faces", "face", "nets", "parentResult", "descriptor", "i", "extendWithFaceDescriptor", "PredictAllFaceExpressionsWithFaceAlignmentTask", "PredictAllAgeAndGenderWithFaceAlignmentTask", "ComputeSingleFaceDescriptorTask", "extractSingleFaceAndComputeResult", "PredictSingleFaceExpressionsWithFaceAlignmentTask", "PredictSingleAgeAndGenderWithFaceAlignmentTask", "DetectFaceLandmarksTaskBase", "ComposableTask", "parentTask", "input", "useTinyLandmarkNet", "nets", "DetectAllFaceLandmarksTask", "parentResults", "detections", "res", "faces", "Ft", "extractFaceTensors", "extractFaces", "faceLandmarksByFace", "face", "f", "_parentResult", "i", "parentResult", "extendWithFaceLandmarks", "PredictAllFaceExpressionsWithFaceAlignmentTask", "PredictAllAgeAndGenderWithFaceAlignmentTask", "ComputeAllFaceDescriptorsTask", "DetectSingleFaceLandmarksTask", "detection", "landmarks", "PredictSingleFaceExpressionsWithFaceAlignmentTask", "PredictSingleAgeAndGenderWithFaceAlignmentTask", "ComputeSingleFaceDescriptorTask", "DetectFacesTaskBase", "ComposableTask", "input", "options", "SsdMobilenetv1Options", "DetectAllFacesTask", "result", "TinyFaceDetectorOptions", "nets", "TinyYolov2Options", "resolve", "reject", "detections", "detection", "extendWithFaceDetection", "err", "useTinyLandmarkNet", "DetectAllFaceLandmarksTask", "PredictAllFaceExpressionsTask", "PredictAllAgeAndGenderTask", "DetectSingleFaceTask", "faceDetections", "faceDetectionWithHighestScore", "faceDetection", "DetectSingleFaceLandmarksTask", "PredictSingleFaceExpressionsTask", "PredictSingleAgeAndGenderTask", "detectSingleFace", "input", "options", "SsdMobilenetv1Options", "DetectSingleFaceTask", "detectAllFaces", "DetectAllFacesTask", "allFacesSsdMobilenetv1", "input", "minConfidence", "detectAllFaces", "SsdMobilenetv1Options", "allFacesTinyYolov2", "forwardParams", "TinyYolov2Options", "allFaces", "euclideanDistance", "arr1", "arr2", "desc1", "desc2", "val", "i", "res", "diff", "FaceMatcher", "inputs", "distanceThreshold", "inputArray", "count", "createUniqueLabel", "desc", "LabeledFaceDescriptors", "queryDescriptor", "descriptors", "d", "euclideanDistance", "d1", "d2", "label", "FaceMatch", "best", "curr", "bestMatch", "ld", "json", "labeledDescriptors", "createTinyFaceDetector", "weights", "net", "TinyFaceDetector", "resizeResults", "results", "dimensions", "width", "height", "Dimensions", "obj", "isWithFaceLandmarks", "resizedDetection", "resizedLandmarks", "extendWithFaceLandmarks", "extendWithFaceDetection", "isWithFaceDetection", "FaceLandmarks", "FaceDetection", "version"] + "sourcesContent": ["/*\n Face-API\n homepage: \n author: '\n*/\n\nvar DU=Object.create;var QS=Object.defineProperty;var RU=Object.getOwnPropertyDescriptor;var FU=Object.getOwnPropertyNames;var OU=Object.getPrototypeOf,PU=Object.prototype.hasOwnProperty;var Pg=(r=>typeof require!=\"undefined\"?require:typeof Proxy!=\"undefined\"?new Proxy(r,{get:(t,e)=>(typeof require!=\"undefined\"?require:t)[e]}):r)(function(r){if(typeof require!=\"undefined\")return require.apply(this,arguments);throw new Error('Dynamic require of \"'+r+'\" is not supported')});var gr=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),Wt=(r,t)=>{for(var e in t)QS(r,e,{get:t[e],enumerable:!0})},LU=(r,t,e,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let o of FU(t))!PU.call(r,o)&&o!==e&&QS(r,o,{get:()=>t[o],enumerable:!(n=RU(t,o))||n.enumerable});return r};var Tl=(r,t,e)=>(e=r!=null?DU(OU(r)):{},LU(t||!r||!r.__esModule?QS(e,\"default\",{value:r,enumerable:!0}):e,r));var T1=gr((Elt,N1)=>{N1.exports=Ue;var mo=null;try{mo=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(r){}function Ue(r,t,e){this.low=r|0,this.high=t|0,this.unsigned=!!e}Ue.prototype.__isLong__;Object.defineProperty(Ue.prototype,\"__isLong__\",{value:!0});function Fn(r){return(r&&r.__isLong__)===!0}Ue.isLong=Fn;var g1={},x1={};function zu(r,t){var e,n,o;return t?(r>>>=0,(o=0<=r&&r<256)&&(n=x1[r],n)?n:(e=He(r,(r|0)<0?-1:0,!0),o&&(x1[r]=e),e)):(r|=0,(o=-128<=r&&r<128)&&(n=g1[r],n)?n:(e=He(r,r<0?-1:0,!1),o&&(g1[r]=e),e))}Ue.fromInt=zu;function fo(r,t){if(isNaN(r))return t?Mu:ho;if(t){if(r<0)return Mu;if(r>=C1)return v1}else{if(r<=-b1)return Rn;if(r+1>=b1)return S1}return r<0?fo(-r,t).neg():He(r%Vp|0,r/Vp|0,t)}Ue.fromNumber=fo;function He(r,t,e){return new Ue(r,t,e)}Ue.fromBits=He;var Bg=Math.pow;function mv(r,t,e){if(r.length===0)throw Error(\"empty string\");if(r===\"NaN\"||r===\"Infinity\"||r===\"+Infinity\"||r===\"-Infinity\")return ho;if(typeof t==\"number\"?(e=t,t=!1):t=!!t,e=e||10,e<2||360)throw Error(\"interior hyphen\");if(n===0)return mv(r.substring(1),t,e).neg();for(var o=fo(Bg(e,8)),s=ho,i=0;i>>0:this.low};gt.toNumber=function(){return this.unsigned?(this.high>>>0)*Vp+(this.low>>>0):this.high*Vp+(this.low>>>0)};gt.toString=function(t){if(t=t||10,t<2||36>>0,c=l.toString(t);if(i=u,i.isZero())return c+a;for(;c.length<6;)c=\"0\"+c;a=\"\"+c+a}};gt.getHighBits=function(){return this.high};gt.getHighBitsUnsigned=function(){return this.high>>>0};gt.getLowBits=function(){return this.low};gt.getLowBitsUnsigned=function(){return this.low>>>0};gt.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Rn)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,e=31;e>0&&(t&1<=0};gt.isOdd=function(){return(this.low&1)===1};gt.isEven=function(){return(this.low&1)===0};gt.equals=function(t){return Fn(t)||(t=Ls(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low};gt.eq=gt.equals;gt.notEquals=function(t){return!this.eq(t)};gt.neq=gt.notEquals;gt.ne=gt.notEquals;gt.lessThan=function(t){return this.comp(t)<0};gt.lt=gt.lessThan;gt.lessThanOrEqual=function(t){return this.comp(t)<=0};gt.lte=gt.lessThanOrEqual;gt.le=gt.lessThanOrEqual;gt.greaterThan=function(t){return this.comp(t)>0};gt.gt=gt.greaterThan;gt.greaterThanOrEqual=function(t){return this.comp(t)>=0};gt.gte=gt.greaterThanOrEqual;gt.ge=gt.greaterThanOrEqual;gt.compare=function(t){if(Fn(t)||(t=Ls(t)),this.eq(t))return 0;var e=this.isNegative(),n=t.isNegative();return e&&!n?-1:!e&&n?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1};gt.comp=gt.compare;gt.negate=function(){return!this.unsigned&&this.eq(Rn)?Rn:this.not().add(Bp)};gt.neg=gt.negate;gt.add=function(t){Fn(t)||(t=Ls(t));var e=this.high>>>16,n=this.high&65535,o=this.low>>>16,s=this.low&65535,i=t.high>>>16,a=t.high&65535,u=t.low>>>16,l=t.low&65535,c=0,p=0,m=0,f=0;return f+=s+l,m+=f>>>16,f&=65535,m+=o+u,p+=m>>>16,m&=65535,p+=n+a,c+=p>>>16,p&=65535,c+=e+i,c&=65535,He(m<<16|f,c<<16|p,this.unsigned)};gt.subtract=function(t){return Fn(t)||(t=Ls(t)),this.add(t.neg())};gt.sub=gt.subtract;gt.multiply=function(t){if(this.isZero())return ho;if(Fn(t)||(t=Ls(t)),mo){var e=mo.mul(this.low,this.high,t.low,t.high);return He(e,mo.get_high(),this.unsigned)}if(t.isZero())return ho;if(this.eq(Rn))return t.isOdd()?Rn:ho;if(t.eq(Rn))return this.isOdd()?Rn:ho;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(w1)&&t.lt(w1))return fo(this.toNumber()*t.toNumber(),this.unsigned);var n=this.high>>>16,o=this.high&65535,s=this.low>>>16,i=this.low&65535,a=t.high>>>16,u=t.high&65535,l=t.low>>>16,c=t.low&65535,p=0,m=0,f=0,d=0;return d+=i*c,f+=d>>>16,d&=65535,f+=s*c,m+=f>>>16,f&=65535,f+=i*l,m+=f>>>16,f&=65535,m+=o*c,p+=m>>>16,m&=65535,m+=s*l,p+=m>>>16,m&=65535,m+=i*u,p+=m>>>16,m&=65535,p+=n*c+o*l+s*u+i*a,p&=65535,He(f<<16|d,p<<16|m,this.unsigned)};gt.mul=gt.multiply;gt.divide=function(t){if(Fn(t)||(t=Ls(t)),t.isZero())throw Error(\"division by zero\");if(mo){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var e=(this.unsigned?mo.div_u:mo.div_s)(this.low,this.high,t.low,t.high);return He(e,mo.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Mu:ho;var n,o,s;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return Mu;if(t.gt(this.shru(1)))return I1;s=Mu}else{if(this.eq(Rn)){if(t.eq(Bp)||t.eq(pv))return Rn;if(t.eq(Rn))return Bp;var i=this.shr(1);return n=i.div(t).shl(1),n.eq(ho)?t.isNegative()?Bp:pv:(o=this.sub(t.mul(n)),s=n.add(o.div(t)),s)}else if(t.eq(Rn))return this.unsigned?Mu:ho;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();s=ho}for(o=this;o.gte(t);){n=Math.max(1,Math.floor(o.toNumber()/t.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),u=a<=48?1:Bg(2,a-48),l=fo(n),c=l.mul(t);c.isNegative()||c.gt(o);)n-=u,l=fo(n,this.unsigned),c=l.mul(t);l.isZero()&&(l=Bp),s=s.add(l),o=o.sub(c)}return s};gt.div=gt.divide;gt.modulo=function(t){if(Fn(t)||(t=Ls(t)),mo){var e=(this.unsigned?mo.rem_u:mo.rem_s)(this.low,this.high,t.low,t.high);return He(e,mo.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))};gt.mod=gt.modulo;gt.rem=gt.modulo;gt.not=function(){return He(~this.low,~this.high,this.unsigned)};gt.and=function(t){return Fn(t)||(t=Ls(t)),He(this.low&t.low,this.high&t.high,this.unsigned)};gt.or=function(t){return Fn(t)||(t=Ls(t)),He(this.low|t.low,this.high|t.high,this.unsigned)};gt.xor=function(t){return Fn(t)||(t=Ls(t)),He(this.low^t.low,this.high^t.high,this.unsigned)};gt.shiftLeft=function(t){return Fn(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?He(this.low<>>32-t,this.unsigned):He(0,this.low<>>t|this.high<<32-t,this.high>>t,this.unsigned):He(this.high>>t-32,this.high>=0?0:-1,this.unsigned)};gt.shr=gt.shiftRight;gt.shiftRightUnsigned=function(t){if(Fn(t)&&(t=t.toInt()),t&=63,t===0)return this;var e=this.high;if(t<32){var n=this.low;return He(n>>>t|e<<32-t,e>>>t,this.unsigned)}else return t===32?He(e,0,this.unsigned):He(e>>>t-32,0,this.unsigned)};gt.shru=gt.shiftRightUnsigned;gt.shr_u=gt.shiftRightUnsigned;gt.toSigned=function(){return this.unsigned?He(this.low,this.high,!1):this};gt.toUnsigned=function(){return this.unsigned?this:He(this.low,this.high,!0)};gt.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()};gt.toBytesLE=function(){var t=this.high,e=this.low;return[e&255,e>>>8&255,e>>>16&255,e>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]};gt.toBytesBE=function(){var t=this.high,e=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,e>>>24,e>>>16&255,e>>>8&255,e&255]};Ue.fromBytes=function(t,e,n){return n?Ue.fromBytesLE(t,e):Ue.fromBytesBE(t,e)};Ue.fromBytesLE=function(t,e){return new Ue(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,e)};Ue.fromBytesBE=function(t,e){return new Ue(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],e)}});var iE=gr(()=>{});var aE=gr(()=>{});var u_=gr((l_,r0)=>{(function(r,t,e){function n(a){var u=this,l=i();u.next=function(){var c=2091639*u.s0+u.c*23283064365386963e-26;return u.s0=u.s1,u.s1=u.s2,u.s2=c-(u.c=c|0)},u.c=1,u.s0=l(\" \"),u.s1=l(\" \"),u.s2=l(\" \"),u.s0-=l(a),u.s0<0&&(u.s0+=1),u.s1-=l(a),u.s1<0&&(u.s1+=1),u.s2-=l(a),u.s2<0&&(u.s2+=1),l=null}function o(a,u){return u.c=a.c,u.s0=a.s0,u.s1=a.s1,u.s2=a.s2,u}function s(a,u){var l=new n(a),c=u&&u.state,p=l.next;return p.int32=function(){return l.next()*4294967296|0},p.double=function(){return p()+(p()*2097152|0)*11102230246251565e-32},p.quick=p,c&&(typeof c==\"object\"&&o(c,l),p.state=function(){return o(l,{})}),p}function i(){var a=4022871197,u=function(l){l=String(l);for(var c=0;c>>0,p-=a,p*=a,a=p>>>0,p-=a,a+=p*4294967296}return(a>>>0)*23283064365386963e-26};return u}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.alea=s})(l_,typeof r0==\"object\"&&r0,typeof define==\"function\"&&define)});var p_=gr((c_,n0)=>{(function(r,t,e){function n(i){var a=this,u=\"\";a.x=0,a.y=0,a.z=0,a.w=0,a.next=function(){var c=a.x^a.x<<11;return a.x=a.y,a.y=a.z,a.z=a.w,a.w^=a.w>>>19^c^c>>>8},i===(i|0)?a.x=i:u+=i;for(var l=0;l>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l==\"object\"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xor128=s})(c_,typeof n0==\"object\"&&n0,typeof define==\"function\"&&define)});var f_=gr((m_,o0)=>{(function(r,t,e){function n(i){var a=this,u=\"\";a.next=function(){var c=a.x^a.x>>>2;return a.x=a.y,a.y=a.z,a.z=a.w,a.w=a.v,(a.d=a.d+362437|0)+(a.v=a.v^a.v<<4^(c^c<<1))|0},a.x=0,a.y=0,a.z=0,a.w=0,a.v=0,i===(i|0)?a.x=i:u+=i;for(var l=0;l>>4),a.next()}function o(i,a){return a.x=i.x,a.y=i.y,a.z=i.z,a.w=i.w,a.v=i.v,a.d=i.d,a}function s(i,a){var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l==\"object\"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xorwow=s})(m_,typeof o0==\"object\"&&o0,typeof define==\"function\"&&define)});var h_=gr((d_,s0)=>{(function(r,t,e){function n(i){var a=this;a.next=function(){var l=a.x,c=a.i,p,m,f;return p=l[c],p^=p>>>7,m=p^p<<24,p=l[c+1&7],m^=p^p>>>10,p=l[c+3&7],m^=p^p>>>3,p=l[c+4&7],m^=p^p<<7,p=l[c+7&7],p=p^p<<13,m^=p^p<<9,l[c]=m,a.i=c+1&7,m};function u(l,c){var p,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=\"\"+c,p=0;p0;--p)l.next()}u(a,i)}function o(i,a){return a.x=i.x.slice(),a.i=i.i,a}function s(i,a){i==null&&(i=+new Date);var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(l.x&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xorshift7=s})(d_,typeof s0==\"object\"&&s0,typeof define==\"function\"&&define)});var x_=gr((g_,i0)=>{(function(r,t,e){function n(i){var a=this;a.next=function(){var l=a.w,c=a.X,p=a.i,m,f;return a.w=l=l+1640531527|0,f=c[p+34&127],m=c[p=p+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[p]=f^m,a.i=p,f+(l^l>>>16)|0};function u(l,c){var p,m,f,d,h,g=[],x=128;for(c===(c|0)?(m=c,c=null):(c=c+\"\\0\",m=0,x=Math.max(x,c.length)),f=0,d=-32;d>>15,m^=m<<4,m^=m>>>13,d>=0&&(h=h+1640531527|0,p=g[d&127]^=m+h,f=p==0?f+1:0);for(f>=128&&(g[(c&&c.length||0)&127]=-1),f=127,d=4*128;d>0;--d)m=g[f+34&127],p=g[f=f+1&127],m^=m<<13,p^=p<<17,m^=m>>>15,p^=p>>>12,g[f]=m^p;l.w=h,l.X=g,l.i=f}u(a,i)}function o(i,a){return a.i=i.i,a.w=i.w,a.X=i.X.slice(),a}function s(i,a){i==null&&(i=+new Date);var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(l.X&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xor4096=s})(g_,typeof i0==\"object\"&&i0,typeof define==\"function\"&&define)});var b_=gr((y_,a0)=>{(function(r,t,e){function n(i){var a=this,u=\"\";a.next=function(){var c=a.b,p=a.c,m=a.d,f=a.a;return c=c<<25^c>>>7^p,p=p-m|0,m=m<<24^m>>>8^f,f=f-c|0,a.b=c=c<<20^c>>>12^p,a.c=p=p-m|0,a.d=m<<16^p>>>16^f,a.a=f-c|0},a.a=0,a.b=0,a.c=-1640531527,a.d=1367130551,i===Math.floor(i)?(a.a=i/4294967296|0,a.b=i|0):u+=i;for(var l=0;l>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l==\"object\"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.tychei=s})(y_,typeof a0==\"object\"&&a0,typeof define==\"function\"&&define)});var w_=gr(()=>{});var I_=gr((C_,Yx)=>{(function(r,t,e){var n=256,o=6,s=52,i=\"random\",a=e.pow(n,o),u=e.pow(2,s),l=u*2,c=n-1,p;function m(w,C,N){var _=[];C=C==!0?{entropy:!0}:C||{};var A=g(h(C.entropy?[w,b(t)]:w==null?x():w,3),_),$=new f(_),F=function(){for(var P=$.g(o),V=a,G=0;P=l;)P/=2,V/=2,G>>>=1;return(P+G)/V};return F.int32=function(){return $.g(4)|0},F.quick=function(){return $.g(4)/4294967296},F.double=F,g(b($.S),t),(C.pass||N||function(P,V,G,W){return W&&(W.S&&d(W,$),P.state=function(){return d($,{})}),G?(e[i]=P,V):P})(F,A,\"global\"in C?C.global:this==e,C.state)}function f(w){var C,N=w.length,_=this,A=0,$=_.i=_.j=0,F=_.S=[];for(N||(w=[N++]);A{var lj=u_(),uj=p_(),cj=f_(),pj=h_(),mj=x_(),fj=b_(),Ju=I_();Ju.alea=lj;Ju.xor128=uj;Ju.xorwow=cj;Ju.xorshift7=pj;Ju.xor4096=mj;Ju.tychei=fj;S_.exports=Ju});var gN=gr(()=>{});var Zb=gr(()=>{});var ig=gr(()=>{});var BW=gr(()=>{});var VW=gr(()=>{});var GW=gr(()=>{});var WW=gr((fI,Ok)=>{var Fk=(()=>{var r=typeof document!=\"undefined\"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!=\"undefined\"&&(r=r||__filename),function(t){t=t||{};function e(){return st.buffer!=jt&&qe(st.buffer),ke}function n(){return st.buffer!=jt&&qe(st.buffer),fe}function o(){return st.buffer!=jt&&qe(st.buffer),Ae}function s(){return st.buffer!=jt&&qe(st.buffer),_n}function i(){return st.buffer!=jt&&qe(st.buffer),or}function a(){return st.buffer!=jt&&qe(st.buffer),Hn}function u(){return st.buffer!=jt&&qe(st.buffer),Lr}var l=typeof t!=\"undefined\"?t:{},c,p;l.ready=new Promise(function(L,U){c=L,p=U});var m;typeof process!=\"undefined\"&&process.listeners&&(m={uncaughtException:process.listeners(\"uncaughtException\"),unhandledRejection:process.listeners(\"unhandledRejection\")});var f=Object.assign({},l),d=[],h=\"./this.program\",g=(L,U)=>{throw U},x=typeof window==\"object\",b=typeof importScripts==\"function\",w=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\",C=l.ENVIRONMENT_IS_PTHREAD||!1,N=\"\";function _(L){return l.locateFile?l.locateFile(L,N):N+L}var A,$,F,P;function V(L){if(L instanceof Ru)return;Y(\"exiting due to exception: \"+L)}if(w){b?N=ig().dirname(N)+\"/\":N=__dirname+\"/\";var G,W;typeof Pg==\"function\"&&(G=Zb(),W=ig()),A=(U,ut)=>(U=W.normalize(U),G.readFileSync(U,ut?void 0:\"utf8\")),F=U=>{var ut=A(U,!0);return ut.buffer||(ut=new Uint8Array(ut)),ut},$=(U,ut,xt)=>{U=W.normalize(U),G.readFile(U,function(Dt,ie){Dt?xt(Dt):ut(ie.buffer)})},process.argv.length>1&&(h=process.argv[1].replace(/\\\\/g,\"/\")),d=process.argv.slice(2),process.on(\"uncaughtException\",function(U){if(!(U instanceof Ru))throw U}),process.on(\"unhandledRejection\",function(U){throw U}),g=(U,ut)=>{if(Mo())throw process.exitCode=U,ut;V(ut),process.exit(U)},l.inspect=function(){return\"[Emscripten Module object]\"};let L;try{L=BW()}catch(U){throw console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?'),U}global.Worker=L.Worker}else(x||b)&&(b?N=self.location.href:typeof document!=\"undefined\"&&document.currentScript&&(N=document.currentScript.src),typeof r!=\"undefined\"&&r&&(N=r),N.indexOf(\"blob:\")!==0?N=N.substr(0,N.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):N=\"\",w||(A=L=>{var U=new XMLHttpRequest;return U.open(\"GET\",L,!1),U.send(null),U.responseText},b&&(F=L=>{var U=new XMLHttpRequest;return U.open(\"GET\",L,!1),U.responseType=\"arraybuffer\",U.send(null),new Uint8Array(U.response)}),$=(L,U,ut)=>{var xt=new XMLHttpRequest;xt.open(\"GET\",L,!0),xt.responseType=\"arraybuffer\",xt.onload=()=>{if(xt.status==200||xt.status==0&&xt.response){U(xt.response);return}ut()},xt.onerror=ut,xt.send(null)}),P=L=>document.title=L);w&&typeof performance==\"undefined\"&&(global.performance=VW().performance);var q=console.log.bind(console),H=console.warn.bind(console);w&&(q=L=>G.writeSync(1,L+`\n`),H=L=>G.writeSync(2,L+`\n`));var j=l.print||q,Y=l.printErr||H;Object.assign(l,f),f=null,l.arguments&&(d=l.arguments),l.thisProgram&&(h=l.thisProgram),l.quit&&(g=l.quit);var Z=4,et=Atomics.load,rt=Atomics.store,ot=Atomics.compareExchange,at;l.wasmBinary&&(at=l.wasmBinary);var nt=l.noExitRuntime||!0;typeof WebAssembly!=\"object\"&&Yc(\"no native wasm support detected\");var st,dt,ht=!1,bt;function kt(L,U){L||Yc(U)}var _t=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):void 0;function Vt(L,U,ut){for(var xt=U+ut,Dt=U;L[Dt]&&!(Dt>=xt);)++Dt;if(Dt-U>16&&L.buffer&&_t)return _t.decode(L.buffer instanceof SharedArrayBuffer?L.slice(U,Dt):L.subarray(U,Dt));for(var ie=\"\";U>10,56320|Xn&1023)}}return ie}function Zt(L,U){return L?Vt(n(),L,U):\"\"}function ce(L,U,ut,xt){if(!(xt>0))return 0;for(var Dt=ut,ie=ut+xt-1,Gt=0;Gt=55296&&Xt<=57343){var hr=L.charCodeAt(++Gt);Xt=65536+((Xt&1023)<<10)|hr&1023}if(Xt<=127){if(ut>=ie)break;U[ut++]=Xt}else if(Xt<=2047){if(ut+1>=ie)break;U[ut++]=192|Xt>>6,U[ut++]=128|Xt&63}else if(Xt<=65535){if(ut+2>=ie)break;U[ut++]=224|Xt>>12,U[ut++]=128|Xt>>6&63,U[ut++]=128|Xt&63}else{if(ut+3>=ie)break;U[ut++]=240|Xt>>18,U[ut++]=128|Xt>>12&63,U[ut++]=128|Xt>>6&63,U[ut++]=128|Xt&63}}return U[ut]=0,ut-Dt}function he(L,U,ut){return ce(L,n(),U,ut)}var jt,ke,fe,Ae,We,_n,or,Hn,Lr;C&&(jt=l.buffer);function qe(L){jt=L,l.HEAP8=ke=new Int8Array(L),l.HEAP16=Ae=new Int16Array(L),l.HEAP32=_n=new Int32Array(L),l.HEAPU8=fe=new Uint8Array(L),l.HEAPU16=We=new Uint16Array(L),l.HEAPU32=or=new Uint32Array(L),l.HEAPF32=Hn=new Float32Array(L),l.HEAPF64=Lr=new Float64Array(L)}var Mr=l.INITIAL_MEMORY||16777216;if(C)st=l.wasmMemory,jt=l.buffer;else if(l.wasmMemory)st=l.wasmMemory;else if(st=new WebAssembly.Memory({initial:Mr/65536,maximum:32768,shared:!0}),!(st.buffer instanceof SharedArrayBuffer))throw Y(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\"),w&&console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\"),Error(\"bad memory\");st&&(jt=st.buffer),Mr=jt.byteLength,qe(jt);var zr,qn=[],Kn=[],Xr=[],Zi=!1;function Mo(){return nt}function Il(){if(l.preRun)for(typeof l.preRun==\"function\"&&(l.preRun=[l.preRun]);l.preRun.length;)Rd(l.preRun.shift());Md(qn)}function Tr(){Zi=!0,!C&&Md(Kn)}function Ji(){if(!C){if(l.postRun)for(typeof l.postRun==\"function\"&&(l.postRun=[l.postRun]);l.postRun.length;)Gk(l.postRun.shift());Md(Xr)}}function Rd(L){qn.unshift(L)}function Fd(L){Kn.unshift(L)}function Gk(L){Xr.unshift(L)}var Sl=0,Xc=null,Qi=null;function Wk(L){Sl++,l.monitorRunDependencies&&l.monitorRunDependencies(Sl)}function Uk(L){if(Sl--,l.monitorRunDependencies&&l.monitorRunDependencies(Sl),Sl==0&&(Xc!==null&&(clearInterval(Xc),Xc=null),Qi)){var U=Qi;Qi=null,U()}}function Yc(L){C?postMessage({cmd:\"onAbort\",arg:L}):l.onAbort&&l.onAbort(L),L=\"Aborted(\"+L+\")\",Y(L),ht=!0,bt=1,L+=\". Build with -sASSERTIONS for more info.\";var U=new WebAssembly.RuntimeError(L);throw p(U),U}var gI=\"data:application/octet-stream;base64,\";function pg(L){return L.startsWith(gI)}function Od(L){return L.startsWith(\"file://\")}var en;en=\"tfjs-backend-wasm-threaded-simd.wasm\",pg(en)||(en=_(en));function mg(L){try{if(L==en&&at)return new Uint8Array(at);if(F)return F(L);throw\"both async and sync fetching of the wasm failed\"}catch(U){Yc(U)}}function xI(){if(!at&&(x||b)){if(typeof fetch==\"function\"&&!Od(en))return fetch(en,{credentials:\"same-origin\"}).then(function(L){if(!L.ok)throw\"failed to load wasm binary file at '\"+en+\"'\";return L.arrayBuffer()}).catch(function(){return mg(en)});if($)return new Promise(function(L,U){$(en,function(ut){L(new Uint8Array(ut))},U)})}return Promise.resolve().then(function(){return mg(en)})}function yI(){var L={env:vg,wasi_snapshot_preview1:vg};function U(Gt,Xt){var hr=Gt.exports;if(l.asm=hr,EI(l.asm._emscripten_tls_init),zr=l.asm.__indirect_function_table,Fd(l.asm.__wasm_call_ctors),dt=Xt,!C){var Xn=Kt.unusedWorkers.length;Kt.unusedWorkers.forEach(function(ea){Kt.loadWasmModuleToWorker(ea,function(){--Xn||Uk(\"wasm-instantiate\")})})}}C||Wk(\"wasm-instantiate\");function ut(Gt){U(Gt.instance,Gt.module)}function xt(Gt){return xI().then(function(Xt){return WebAssembly.instantiate(Xt,L)}).then(function(Xt){return Xt}).then(Gt,function(Xt){Y(\"failed to asynchronously prepare wasm: \"+Xt),Yc(Xt)})}function Dt(){return!at&&typeof WebAssembly.instantiateStreaming==\"function\"&&!pg(en)&&!Od(en)&&!w&&typeof fetch==\"function\"?fetch(en,{credentials:\"same-origin\"}).then(function(Gt){var Xt=WebAssembly.instantiateStreaming(Gt,L);return Xt.then(ut,function(hr){return Y(\"wasm streaming compile failed: \"+hr),Y(\"falling back to ArrayBuffer instantiation\"),xt(ut)})}):xt(ut)}if(l.instantiateWasm)try{var ie=l.instantiateWasm(L,U);return ie}catch(Gt){Y(\"Module.instantiateWasm callback failed with error: \"+Gt),p(Gt)}return Dt().catch(p),{}}var bI,Hk,wI={};function Ru(L){this.name=\"ExitStatus\",this.message=\"Program terminated with exit(\"+L+\")\",this.status=L}function CI(L){var U=Kt.pthreads[L];delete Kt.pthreads[L],U.terminate(),YS(L),Kt.runningWorkers.splice(Kt.runningWorkers.indexOf(U),1),U.pthread_ptr=0}function II(L){var U=Kt.pthreads[L];U.postMessage({cmd:\"cancel\"})}function Pd(L){var U=Kt.pthreads[L];kt(U),Kt.returnWorkerToPool(U)}function fg(L){var U=Kt.getNewWorker();if(!U)return 6;Kt.runningWorkers.push(U),Kt.pthreads[L.pthread_ptr]=U,U.pthread_ptr=L.pthread_ptr;var ut={cmd:\"run\",start_routine:L.startRoutine,arg:L.arg,pthread_ptr:L.pthread_ptr};return U.runPthread=()=>{ut.time=performance.now(),U.postMessage(ut,L.transferList)},U.loaded&&(U.runPthread(),delete U.runPthread),0}var dg={varargs:void 0,get:function(){dg.varargs+=4;var L=s()[dg.varargs-4>>2];return L},getStr:function(L){var U=Zt(L);return U}};function Ld(L){if(C)return vl(1,1,L);bt=L,Mo()||(Kt.terminateAllThreads(),l.onExit&&l.onExit(L),ht=!0),g(L,new Ru(L))}function qk(L,U){if(bt=L,!U&&C)throw gg(L),\"unwind\";Ld(L)}var hg=qk;function SI(L){if(L instanceof Ru||L==\"unwind\")return bt;g(1,L)}var Kt={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?Kt.initWorker():Kt.initMainThread()},initMainThread:function(){for(var L=8;L--;)Kt.allocateUnusedWorker()},initWorker:function(){nt=!1},setExitStatus:function(L){bt=L},terminateAllThreads:function(){for(var L of Object.values(Kt.pthreads))Kt.returnWorkerToPool(L);for(var L of Kt.unusedWorkers)L.terminate();Kt.unusedWorkers=[]},returnWorkerToPool:function(L){var U=L.pthread_ptr;delete Kt.pthreads[U],Kt.unusedWorkers.push(L),Kt.runningWorkers.splice(Kt.runningWorkers.indexOf(L),1),L.pthread_ptr=0,YS(U)},receiveObjectTransfer:function(L){},threadInitTLS:function(){Kt.tlsInitFunctions.forEach(L=>L())},loadWasmModuleToWorker:function(L,U){L.onmessage=ut=>{var xt=ut.data,Dt=xt.cmd;if(L.pthread_ptr&&(Kt.currentProxiedOperationCallerThread=L.pthread_ptr),xt.targetThread&&xt.targetThread!=Ag()){var ie=Kt.pthreads[xt.targetThread];ie?ie.postMessage(xt,xt.transferList):Y('Internal error! Worker sent a message \"'+Dt+'\" to target pthread '+xt.targetThread+\", but that thread no longer exists!\"),Kt.currentProxiedOperationCallerThread=void 0;return}Dt===\"processProxyingQueue\"?zd(xt.queue):Dt===\"spawnThread\"?fg(xt):Dt===\"cleanupThread\"?Pd(xt.thread):Dt===\"killThread\"?CI(xt.thread):Dt===\"cancelThread\"?II(xt.thread):Dt===\"loaded\"?(L.loaded=!0,U&&U(L),L.runPthread&&(L.runPthread(),delete L.runPthread)):Dt===\"print\"?j(\"Thread \"+xt.threadId+\": \"+xt.text):Dt===\"printErr\"?Y(\"Thread \"+xt.threadId+\": \"+xt.text):Dt===\"alert\"?alert(\"Thread \"+xt.threadId+\": \"+xt.text):xt.target===\"setimmediate\"?L.postMessage(xt):Dt===\"onAbort\"?l.onAbort&&l.onAbort(xt.arg):Dt&&Y(\"worker sent an unknown command \"+Dt),Kt.currentProxiedOperationCallerThread=void 0},L.onerror=ut=>{var xt=\"worker sent an error!\";throw Y(xt+\" \"+ut.filename+\":\"+ut.lineno+\": \"+ut.message),ut},w&&(L.on(\"message\",function(ut){L.onmessage({data:ut})}),L.on(\"error\",function(ut){L.onerror(ut)}),L.on(\"detachedExit\",function(){})),L.postMessage({cmd:\"load\",urlOrBlob:l.mainScriptUrlOrBlob||r,wasmMemory:st,wasmModule:dt})},allocateUnusedWorker:function(){var L=_(\"tfjs-backend-wasm-threaded-simd.worker.js\");Kt.unusedWorkers.push(new Worker(L))},getNewWorker:function(){return Kt.unusedWorkers.length==0&&(Kt.allocateUnusedWorker(),Kt.loadWasmModuleToWorker(Kt.unusedWorkers[0])),Kt.unusedWorkers.pop()}};l.PThread=Kt;function Md(L){for(;L.length>0;)L.shift()(l)}function vI(L){var U=ZS(),ut=L();return $g(U),ut}function Kk(L){return L}function jk(L){var U=/\\b_Z[\\w\\d_]+/g;return L.replace(U,function(ut){var xt=ut;return ut===xt?ut:xt+\" [\"+ut+\"]\"})}function NI(){var L=Ag(),U=s()[L+44>>2],ut=s()[L+48>>2],xt=U-ut;e1(U,xt),$g(U)}l.establishStackSpace=NI;function gg(L){if(C)return vl(2,0,L);try{hg(L)}catch(U){SI(U)}}var Zc=[];function TI(L){var U=Zc[L];return U||(L>=Zc.length&&(Zc.length=L+1),Zc[L]=U=zr.get(L)),U}function kI(L,U){var ut=TI(L)(U);Mo()?Kt.setExitStatus(ut):t1(ut)}l.invokeEntryPoint=kI;function Xk(){var L=new Error;if(!L.stack){try{throw new Error}catch(U){L=U}if(!L.stack)return\"(no stack trace available)\"}return L.stack.toString()}function EI(L){Kt.tlsInitFunctions.push(L)}function _I(L,U){e().set(L,U)}function AI(L){Zk(L,!b,1,!x),Kt.threadInitTLS()}function $I(L){C?postMessage({cmd:\"cleanupThread\",thread:L}):Pd(L)}function xg(L,U,ut,xt){return C?vl(3,1,L,U,ut,xt):yg(L,U,ut,xt)}function yg(L,U,ut,xt){if(typeof SharedArrayBuffer==\"undefined\")return Y(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\"),6;var Dt=[],ie=0;if(C&&(Dt.length===0||ie))return xg(L,U,ut,xt);if(ie)return ie;var Gt={startRoutine:ut,pthread_ptr:L,arg:xt,transferList:Dt};return C?(Gt.cmd=\"spawnThread\",postMessage(Gt,Dt),0):fg(Gt)}function DI(){return 2097152}var RI=!0;function FI(){return RI}function zd(L){Atomics.store(s(),L>>2,1),Ag()&&Qk(L),Atomics.compareExchange(s(),L>>2,1,0)}l.executeNotifiedProxyingQueue=zd;function OI(L,U,ut,xt){if(L==U)setTimeout(()=>zd(xt));else if(C)postMessage({targetThread:L,cmd:\"processProxyingQueue\",queue:xt});else{var Dt=Kt.pthreads[L];if(!Dt)return;Dt.postMessage({cmd:\"processProxyingQueue\",queue:xt})}return 1}function PI(L,U,ut){return-1}function LI(){Yc(\"\")}function Fu(L){Fu.shown||(Fu.shown={}),Fu.shown[L]||(Fu.shown[L]=1,w&&(L=\"warning: \"+L),Y(L))}function MI(){w||b||Fu(\"Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread\")}function zI(){return Date.now()}function bg(){return 2147483648}function BI(){return bg()}var Jc;w?Jc=()=>{var L=process.hrtime();return L[0]*1e3+L[1]/1e6}:C?Jc=()=>performance.now()-l.__performance_now_clock_drift:Jc=()=>performance.now();function VI(L,U,ut){n().copyWithin(L,U,U+ut)}function GI(){return w?GW().cpus().length:navigator.hardwareConcurrency}function vl(L,U){var ut=arguments.length-2,xt=arguments;return vI(()=>{for(var Dt=ut,ie=Dg(Dt*8),Gt=ie>>3,Xt=0;Xt>3,Dt=0;Dt>>16),qe(st.buffer),1}catch(U){}}function HI(L){var U=n().length;if(L=L>>>0,L<=U)return!1;var ut=bg();if(L>ut)return!1;let xt=(hr,Xn)=>hr+(Xn-hr%Xn)%Xn;for(var Dt=1;Dt<=4;Dt*=2){var ie=U*(1+.2/Dt);ie=Math.min(ie,L+100663296);var Gt=Math.min(ut,xt(Math.max(L,ie),65536)),Xt=UI(Gt);if(Xt)return!0}return!1}function qI(){throw\"unwind\"}function wg(L){return C?vl(4,1,L):52}function Cg(L,U,ut,xt,Dt){return C?vl(5,1,L,U,ut,xt,Dt):70}var KI=[null,[],[]];function jI(L,U){var ut=KI[L];U===0||U===10?((L===1?j:Y)(Vt(ut,0)),ut.length=0):ut.push(U)}function Ig(L,U,ut,xt){if(C)return vl(6,1,L,U,ut,xt);for(var Dt=0,ie=0;ie>2],Xt=i()[U+4>>2];U+=8;for(var hr=0;hr>2]=Dt,0}function Sg(L){var U=l[\"_\"+L];return U}function XI(L,U,ut,xt,Dt){var ie={string:An=>{var rp=0;if(An!=null&&An!==0){var o1=(An.length<<2)+1;rp=Dg(o1),he(An,rp,o1)}return rp},array:An=>{var rp=Dg(An.length);return _I(An,rp),rp}};function Gt(An){return U===\"string\"?Zt(An):U===\"boolean\"?Boolean(An):An}var Xt=Sg(L),hr=[],Xn=0;if(xt)for(var ea=0;eaGt===\"number\"||Gt===\"boolean\"),ie=U!==\"string\";return ie&&Dt&&!xt?Sg(L):function(){return XI(L,U,ut,arguments,xt)}}Kt.init();var ZI=[null,Ld,gg,xg,wg,Cg,Ig],vg={__emscripten_init_main_thread_js:AI,__emscripten_thread_cleanup:$I,__pthread_create_js:yg,_emscripten_default_pthread_stack_size:DI,_emscripten_get_now_is_monotonic:FI,_emscripten_notify_task_queue:OI,_emscripten_set_offscreencanvas_size:PI,abort:LI,emscripten_check_blocking_allowed:MI,emscripten_date_now:zI,emscripten_get_heap_max:BI,emscripten_get_now:Jc,emscripten_memcpy_big:VI,emscripten_num_logical_cores:GI,emscripten_receive_on_main_thread_js:WI,emscripten_resize_heap:HI,emscripten_unwind_to_js_event_loop:qI,exit:hg,fd_close:wg,fd_seek:Cg,fd_write:Ig,memory:st||l.wasmMemory},Yk=yI(),JI=l.___wasm_call_ctors=function(){return(JI=l.___wasm_call_ctors=l.asm.__wasm_call_ctors).apply(null,arguments)},QI=l._init=function(){return(QI=l._init=l.asm.init).apply(null,arguments)},tS=l._init_with_threads_count=function(){return(tS=l._init_with_threads_count=l.asm.init_with_threads_count).apply(null,arguments)},eS=l._get_threads_count=function(){return(eS=l._get_threads_count=l.asm.get_threads_count).apply(null,arguments)},rS=l._register_tensor=function(){return(rS=l._register_tensor=l.asm.register_tensor).apply(null,arguments)},nS=l._dispose_data=function(){return(nS=l._dispose_data=l.asm.dispose_data).apply(null,arguments)},oS=l._dispose=function(){return(oS=l._dispose=l.asm.dispose).apply(null,arguments)},sS=l._Abs=function(){return(sS=l._Abs=l.asm.Abs).apply(null,arguments)},iS=l._Add=function(){return(iS=l._Add=l.asm.Add).apply(null,arguments)},aS=l._AddN=function(){return(aS=l._AddN=l.asm.AddN).apply(null,arguments)},lS=l._All=function(){return(lS=l._All=l.asm.All).apply(null,arguments)},uS=l._Any=function(){return(uS=l._Any=l.asm.Any).apply(null,arguments)},cS=l._ArgMax=function(){return(cS=l._ArgMax=l.asm.ArgMax).apply(null,arguments)},pS=l._AvgPool=function(){return(pS=l._AvgPool=l.asm.AvgPool).apply(null,arguments)},mS=l._BatchMatMul=function(){return(mS=l._BatchMatMul=l.asm.BatchMatMul).apply(null,arguments)},fS=l._Ceil=function(){return(fS=l._Ceil=l.asm.Ceil).apply(null,arguments)},dS=l._ClipByValue=function(){return(dS=l._ClipByValue=l.asm.ClipByValue).apply(null,arguments)},hS=l._Conv2D=function(){return(hS=l._Conv2D=l.asm.Conv2D).apply(null,arguments)},gS=l._Conv2DBackpropInput=function(){return(gS=l._Conv2DBackpropInput=l.asm.Conv2DBackpropInput).apply(null,arguments)},xS=l._Cos=function(){return(xS=l._Cos=l.asm.Cos).apply(null,arguments)},yS=l._Cosh=function(){return(yS=l._Cosh=l.asm.Cosh).apply(null,arguments)},bS=l._CropAndResize=function(){return(bS=l._CropAndResize=l.asm.CropAndResize).apply(null,arguments)},wS=l._Cumprod=function(){return(wS=l._Cumprod=l.asm.Cumprod).apply(null,arguments)},CS=l._Cumsum=function(){return(CS=l._Cumsum=l.asm.Cumsum).apply(null,arguments)},IS=l._DepthToSpace=function(){return(IS=l._DepthToSpace=l.asm.DepthToSpace).apply(null,arguments)},SS=l._DepthwiseConv2dNative=function(){return(SS=l._DepthwiseConv2dNative=l.asm.DepthwiseConv2dNative).apply(null,arguments)},vS=l._Elu=function(){return(vS=l._Elu=l.asm.Elu).apply(null,arguments)},NS=l._Equal=function(){return(NS=l._Equal=l.asm.Equal).apply(null,arguments)},TS=l._Exp=function(){return(TS=l._Exp=l.asm.Exp).apply(null,arguments)},kS=l._FlipLeftRight=function(){return(kS=l._FlipLeftRight=l.asm.FlipLeftRight).apply(null,arguments)},ES=l._Floor=function(){return(ES=l._Floor=l.asm.Floor).apply(null,arguments)},_S=l._FloorDiv=function(){return(_S=l._FloorDiv=l.asm.FloorDiv).apply(null,arguments)},AS=l._FusedBatchNorm=function(){return(AS=l._FusedBatchNorm=l.asm.FusedBatchNorm).apply(null,arguments)},$S=l._FusedConv2D=function(){return($S=l._FusedConv2D=l.asm.FusedConv2D).apply(null,arguments)},DS=l._FusedDepthwiseConv2D=function(){return(DS=l._FusedDepthwiseConv2D=l.asm.FusedDepthwiseConv2D).apply(null,arguments)},RS=l._Gather=function(){return(RS=l._Gather=l.asm.Gather).apply(null,arguments)},FS=l._GatherNd=function(){return(FS=l._GatherNd=l.asm.GatherNd).apply(null,arguments)},OS=l._Greater=function(){return(OS=l._Greater=l.asm.Greater).apply(null,arguments)},PS=l._GreaterEqual=function(){return(PS=l._GreaterEqual=l.asm.GreaterEqual).apply(null,arguments)},LS=l._LeakyRelu=function(){return(LS=l._LeakyRelu=l.asm.LeakyRelu).apply(null,arguments)},MS=l._Less=function(){return(MS=l._Less=l.asm.Less).apply(null,arguments)},zS=l._LessEqual=function(){return(zS=l._LessEqual=l.asm.LessEqual).apply(null,arguments)},BS=l._Log=function(){return(BS=l._Log=l.asm.Log).apply(null,arguments)},VS=l._LogicalAnd=function(){return(VS=l._LogicalAnd=l.asm.LogicalAnd).apply(null,arguments)},GS=l._LogicalNot=function(){return(GS=l._LogicalNot=l.asm.LogicalNot).apply(null,arguments)},WS=l._LogicalOr=function(){return(WS=l._LogicalOr=l.asm.LogicalOr).apply(null,arguments)},US=l._LogicalXor=function(){return(US=l._LogicalXor=l.asm.LogicalXor).apply(null,arguments)},HS=l._Max=function(){return(HS=l._Max=l.asm.Max).apply(null,arguments)},Ng=l._MaxPool=function(){return(Ng=l._MaxPool=l.asm.MaxPool).apply(null,arguments)},Tg=l._Maximum=function(){return(Tg=l._Maximum=l.asm.Maximum).apply(null,arguments)},Vd=l._Mean=function(){return(Vd=l._Mean=l.asm.Mean).apply(null,arguments)},qS=l._Min=function(){return(qS=l._Min=l.asm.Min).apply(null,arguments)},KS=l._Minimum=function(){return(KS=l._Minimum=l.asm.Minimum).apply(null,arguments)},Qc=l._MirrorPad=function(){return(Qc=l._MirrorPad=l.asm.MirrorPad).apply(null,arguments)},kg=l._Multiply=function(){return(kg=l._Multiply=l.asm.Multiply).apply(null,arguments)},tp=l._Neg=function(){return(tp=l._Neg=l.asm.Neg).apply(null,arguments)},ep=l._NonMaxSuppressionV3=function(){return(ep=l._NonMaxSuppressionV3=l.asm.NonMaxSuppressionV3).apply(null,arguments)},jS=l._NonMaxSuppressionV4=function(){return(jS=l._NonMaxSuppressionV4=l.asm.NonMaxSuppressionV4).apply(null,arguments)},K=l._NonMaxSuppressionV5=function(){return(K=l._NonMaxSuppressionV5=l.asm.NonMaxSuppressionV5).apply(null,arguments)},lt=l._NotEqual=function(){return(lt=l._NotEqual=l.asm.NotEqual).apply(null,arguments)},At=l._OneHot=function(){return(At=l._OneHot=l.asm.OneHot).apply(null,arguments)},re=l._PadV2=function(){return(re=l._PadV2=l.asm.PadV2).apply(null,arguments)},Ke=l._Pow=function(){return(Ke=l._Pow=l.asm.Pow).apply(null,arguments)},je=l._Prelu=function(){return(je=l._Prelu=l.asm.Prelu).apply(null,arguments)},ee=l._Prod=function(){return(ee=l._Prod=l.asm.Prod).apply(null,arguments)},te=l._RealDiv=function(){return(te=l._RealDiv=l.asm.RealDiv).apply(null,arguments)},dr=l._Relu=function(){return(dr=l._Relu=l.asm.Relu).apply(null,arguments)},jn=l._Relu6=function(){return(jn=l._Relu6=l.asm.Relu6).apply(null,arguments)},ta=l._ResizeBilinear=function(){return(ta=l._ResizeBilinear=l.asm.ResizeBilinear).apply(null,arguments)},Eg=l._ResizeNearestNeighbor=function(){return(Eg=l._ResizeNearestNeighbor=l.asm.ResizeNearestNeighbor).apply(null,arguments)},Gd=l._Reverse=function(){return(Gd=l._Reverse=l.asm.Reverse).apply(null,arguments)},XS=l._RotateWithOffset=function(){return(XS=l._RotateWithOffset=l.asm.RotateWithOffset).apply(null,arguments)},rn=l._Round=function(){return(rn=l._Round=l.asm.Round).apply(null,arguments)},Nl=l._Rsqrt=function(){return(Nl=l._Rsqrt=l.asm.Rsqrt).apply(null,arguments)},_g=l._ScatterNd=function(){return(_g=l._ScatterNd=l.asm.ScatterNd).apply(null,arguments)},QW=l._SelectV2=function(){return(QW=l._SelectV2=l.asm.SelectV2).apply(null,arguments)},tU=l._Sigmoid=function(){return(tU=l._Sigmoid=l.asm.Sigmoid).apply(null,arguments)},eU=l._Sin=function(){return(eU=l._Sin=l.asm.Sin).apply(null,arguments)},rU=l._Softmax=function(){return(rU=l._Softmax=l.asm.Softmax).apply(null,arguments)},nU=l._SparseFillEmptyRows=function(){return(nU=l._SparseFillEmptyRows=l.asm.SparseFillEmptyRows).apply(null,arguments)},oU=l._SparseReshape=function(){return(oU=l._SparseReshape=l.asm.SparseReshape).apply(null,arguments)},sU=l._SparseSegmentReduction=function(){return(sU=l._SparseSegmentReduction=l.asm.SparseSegmentReduction).apply(null,arguments)},iU=l._Sqrt=function(){return(iU=l._Sqrt=l.asm.Sqrt).apply(null,arguments)},aU=l._Square=function(){return(aU=l._Square=l.asm.Square).apply(null,arguments)},lU=l._SquaredDifference=function(){return(lU=l._SquaredDifference=l.asm.SquaredDifference).apply(null,arguments)},uU=l._Step=function(){return(uU=l._Step=l.asm.Step).apply(null,arguments)},cU=l._StridedSlice=function(){return(cU=l._StridedSlice=l.asm.StridedSlice).apply(null,arguments)},pU=l._Sub=function(){return(pU=l._Sub=l.asm.Sub).apply(null,arguments)},mU=l._Sum=function(){return(mU=l._Sum=l.asm.Sum).apply(null,arguments)},fU=l._Tan=function(){return(fU=l._Tan=l.asm.Tan).apply(null,arguments)},dU=l._Tanh=function(){return(dU=l._Tanh=l.asm.Tanh).apply(null,arguments)},hU=l._Tile=function(){return(hU=l._Tile=l.asm.Tile).apply(null,arguments)},gU=l._TopK=function(){return(gU=l._TopK=l.asm.TopK).apply(null,arguments)},xU=l._Transform=function(){return(xU=l._Transform=l.asm.Transform).apply(null,arguments)},yU=l._Transpose=function(){return(yU=l._Transpose=l.asm.Transpose).apply(null,arguments)},bU=l.__FusedMatMul=function(){return(bU=l.__FusedMatMul=l.asm._FusedMatMul).apply(null,arguments)},wU=l._malloc=function(){return(wU=l._malloc=l.asm.malloc).apply(null,arguments)},CU=l._free=function(){return(CU=l._free=l.asm.free).apply(null,arguments)},IU=l.__emscripten_tls_init=function(){return(IU=l.__emscripten_tls_init=l.asm._emscripten_tls_init).apply(null,arguments)},Ag=l._pthread_self=function(){return(Ag=l._pthread_self=l.asm.pthread_self).apply(null,arguments)},SU=l.___errno_location=function(){return(SU=l.___errno_location=l.asm.__errno_location).apply(null,arguments)},Zk=l.__emscripten_thread_init=function(){return(Zk=l.__emscripten_thread_init=l.asm._emscripten_thread_init).apply(null,arguments)},vU=l.__emscripten_thread_crashed=function(){return(vU=l.__emscripten_thread_crashed=l.asm._emscripten_thread_crashed).apply(null,arguments)},NU=l._emscripten_main_thread_process_queued_calls=function(){return(NU=l._emscripten_main_thread_process_queued_calls=l.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},TU=l._emscripten_main_browser_thread_id=function(){return(TU=l._emscripten_main_browser_thread_id=l.asm.emscripten_main_browser_thread_id).apply(null,arguments)},Jk=l._emscripten_run_in_main_runtime_thread_js=function(){return(Jk=l._emscripten_run_in_main_runtime_thread_js=l.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},kU=l._emscripten_dispatch_to_thread_=function(){return(kU=l._emscripten_dispatch_to_thread_=l.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},Qk=l.__emscripten_proxy_execute_task_queue=function(){return(Qk=l.__emscripten_proxy_execute_task_queue=l.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},YS=l.__emscripten_thread_free_data=function(){return(YS=l.__emscripten_thread_free_data=l.asm._emscripten_thread_free_data).apply(null,arguments)},t1=l.__emscripten_thread_exit=function(){return(t1=l.__emscripten_thread_exit=l.asm._emscripten_thread_exit).apply(null,arguments)},e1=l._emscripten_stack_set_limits=function(){return(e1=l._emscripten_stack_set_limits=l.asm.emscripten_stack_set_limits).apply(null,arguments)},ZS=l.stackSave=function(){return(ZS=l.stackSave=l.asm.stackSave).apply(null,arguments)},$g=l.stackRestore=function(){return($g=l.stackRestore=l.asm.stackRestore).apply(null,arguments)},Dg=l.stackAlloc=function(){return(Dg=l.stackAlloc=l.asm.stackAlloc).apply(null,arguments)},EU=l.dynCall_iijjiiii=function(){return(EU=l.dynCall_iijjiiii=l.asm.dynCall_iijjiiii).apply(null,arguments)},_U=l.dynCall_jiji=function(){return(_U=l.dynCall_jiji=l.asm.dynCall_jiji).apply(null,arguments)};l.keepRuntimeAlive=Mo,l.wasmMemory=st,l.cwrap=YI,l.ExitStatus=Ru,l.PThread=Kt;var Rg;Qi=function L(){Rg||r1(),Rg||(Qi=L)};function r1(L){if(L=L||d,Sl>0)return;if(C){c(l),Tr(),postMessage({cmd:\"loaded\"});return}if(Il(),Sl>0)return;function U(){Rg||(Rg=!0,l.calledRun=!0,!ht&&(Tr(),c(l),l.onRuntimeInitialized&&l.onRuntimeInitialized(),Ji()))}l.setStatus?(l.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){l.setStatus(\"\")},1),U()},1)):U()}if(l.preInit)for(typeof l.preInit==\"function\"&&(l.preInit=[l.preInit]);l.preInit.length>0;)l.preInit.pop()();r1();var Fg;m&&(Fg={uncaughtException:process.listeners(\"uncaughtException\").filter(function(L){return!m.uncaughtException.indexOf(L)>-1}),unhandledRejection:process.listeners(\"unhandledRejection\").filter(function(L){return!m.unhandledRejection.indexOf(L)>-1})});var Og;if(typeof WasmBackendModule!=\"undefined\")Og=WasmBackendModule;else if(typeof t!=\"undefined\")Og=t;else throw new Error(\"Could not find wasm module in post.js\");if(Fg){var AU=Og._dispose;Og._dispose=function(){AU(),Fg.uncaughtException.forEach(function(L){process.removeListener(\"uncaughtException\",L)}),Fg.unhandledRejection.forEach(function(L){process.removeListener(\"unhandledRejection\",L)})}}return t.ready}})();typeof fI==\"object\"&&typeof Ok==\"object\"?Ok.exports=Fk:typeof define==\"function\"&&define.amd?define([],function(){return Fk}):typeof fI==\"object\"&&(fI.WasmBackendModuleThreadedSimd=Fk)});var HW=gr((G5e,UW)=>{UW.exports.wasmWorkerContents=`\"use strict\";var Module={};var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require(\"worker_threads\");var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",data=>onmessage({data:data}));var fs=require(\"fs\");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,\"utf8\"))},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+\"\n\");return}console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:Module[\"_pthread_self\"]()})}var err=threadPrintErr;self.alert=threadAlert;Module[\"instantiateWasm\"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);receiveInstance(instance);Module[\"wasmModule\"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.onmessage=e=>{try{if(e.data.cmd===\"load\"){Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob==\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance})}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;Module[\"__emscripten_thread_init\"](e.data.pthread_ptr,0,0,1);Module[\"establishStackSpace\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module[\"executeNotifiedProxyingQueue\"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module[\"invokeEntryPoint\"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!=\"unwind\"){if(ex instanceof Module[\"ExitStatus\"]){if(Module[\"keepRuntimeAlive\"]()){}else{Module[\"__emscripten_thread_exit\"](ex.status)}}else{throw ex}}}}else if(e.data.cmd===\"cancel\"){if(Module[\"_pthread_self\"]()){Module[\"__emscripten_thread_exit\"](-1)}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processProxyingQueue\"){if(initializedJS){Module[\"executeNotifiedProxyingQueue\"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){if(Module[\"__emscripten_thread_crashed\"]){Module[\"__emscripten_thread_crashed\"]()}throw ex}};`});var qW=gr((dI,Lk)=>{var Pk=(()=>{var r=typeof document!=\"undefined\"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!=\"undefined\"&&(r=r||__filename),function(t){t=t||{};var e=typeof t!=\"undefined\"?t:{},n,o;e.ready=new Promise(function(K,lt){n=K,o=lt});var s;typeof process!=\"undefined\"&&process.listeners&&(s={uncaughtException:process.listeners(\"uncaughtException\"),unhandledRejection:process.listeners(\"unhandledRejection\")});var i=Object.assign({},e),a=[],u=\"./this.program\",l=(K,lt)=>{throw lt},c=typeof window==\"object\",p=typeof importScripts==\"function\",m=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\",f=\"\";function d(K){return e.locateFile?e.locateFile(K,f):f+K}var h,g,x,b;function w(K){if(K instanceof Xc)return;A(\"exiting due to exception: \"+K)}if(m){p?f=ig().dirname(f)+\"/\":f=__dirname+\"/\";var C,N;typeof Pg==\"function\"&&(C=Zb(),N=ig()),h=(K,lt)=>(K=N.normalize(K),C.readFileSync(K,lt?void 0:\"utf8\")),x=K=>{var lt=h(K,!0);return lt.buffer||(lt=new Uint8Array(lt)),lt},g=(K,lt,At)=>{K=N.normalize(K),C.readFile(K,function(re,Ke){re?At(re):lt(Ke.buffer)})},process.argv.length>1&&(u=process.argv[1].replace(/\\\\/g,\"/\")),a=process.argv.slice(2),process.on(\"uncaughtException\",function(K){if(!(K instanceof Xc))throw K}),process.on(\"unhandledRejection\",function(K){throw K}),l=(K,lt)=>{if(fe())throw process.exitCode=K,lt;w(lt),process.exit(K)},e.inspect=function(){return\"[Emscripten Module object]\"}}else(c||p)&&(p?f=self.location.href:typeof document!=\"undefined\"&&document.currentScript&&(f=document.currentScript.src),r&&(f=r),f.indexOf(\"blob:\")!==0?f=f.substr(0,f.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):f=\"\",h=K=>{var lt=new XMLHttpRequest;return lt.open(\"GET\",K,!1),lt.send(null),lt.responseText},p&&(x=K=>{var lt=new XMLHttpRequest;return lt.open(\"GET\",K,!1),lt.responseType=\"arraybuffer\",lt.send(null),new Uint8Array(lt.response)}),g=(K,lt,At)=>{var re=new XMLHttpRequest;re.open(\"GET\",K,!0),re.responseType=\"arraybuffer\",re.onload=()=>{if(re.status==200||re.status==0&&re.response){lt(re.response);return}At()},re.onerror=At,re.send(null)},b=K=>document.title=K);var _=e.print||console.log.bind(console),A=e.printErr||console.warn.bind(console);Object.assign(e,i),i=null,e.arguments&&(a=e.arguments),e.thisProgram&&(u=e.thisProgram),e.quit&&(l=e.quit);var $=4,F;e.wasmBinary&&(F=e.wasmBinary);var P=e.noExitRuntime||!0;typeof WebAssembly!=\"object\"&&Xr(\"no native wasm support detected\");var V,G=!1,W;function q(K,lt){K||Xr(lt)}var H=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):void 0;function j(K,lt,At){for(var re=lt+At,Ke=lt;K[Ke]&&!(Ke>=re);)++Ke;if(Ke-lt>16&&K.buffer&&H)return H.decode(K.subarray(lt,Ke));for(var je=\"\";lt>10,56320|jn&1023)}}return je}function Y(K,lt){return K?j(at,K,lt):\"\"}function Z(K,lt,At,re){if(!(re>0))return 0;for(var Ke=At,je=At+re-1,ee=0;ee=55296&&te<=57343){var dr=K.charCodeAt(++ee);te=65536+((te&1023)<<10)|dr&1023}if(te<=127){if(At>=je)break;lt[At++]=te}else if(te<=2047){if(At+1>=je)break;lt[At++]=192|te>>6,lt[At++]=128|te&63}else if(te<=65535){if(At+2>=je)break;lt[At++]=224|te>>12,lt[At++]=128|te>>6&63,lt[At++]=128|te&63}else{if(At+3>=je)break;lt[At++]=240|te>>18,lt[At++]=128|te>>12&63,lt[At++]=128|te>>6&63,lt[At++]=128|te&63}}return lt[At]=0,At-Ke}function et(K,lt,At){return Z(K,at,lt,At)}var rt,ot,at,nt,st,dt,ht,bt,kt;function _t(K){rt=K,e.HEAP8=ot=new Int8Array(K),e.HEAP16=nt=new Int16Array(K),e.HEAP32=dt=new Int32Array(K),e.HEAPU8=at=new Uint8Array(K),e.HEAPU16=st=new Uint16Array(K),e.HEAPU32=ht=new Uint32Array(K),e.HEAPF32=bt=new Float32Array(K),e.HEAPF64=kt=new Float64Array(K)}var Vt=e.INITIAL_MEMORY||16777216,Zt,ce=[],he=[],jt=[],ke=!1;function fe(){return P}function Ae(){if(e.preRun)for(typeof e.preRun==\"function\"&&(e.preRun=[e.preRun]);e.preRun.length;)or(e.preRun.shift());Qi(ce)}function We(){ke=!0,Qi(he)}function _n(){if(e.postRun)for(typeof e.postRun==\"function\"&&(e.postRun=[e.postRun]);e.postRun.length;)Lr(e.postRun.shift());Qi(jt)}function or(K){ce.unshift(K)}function Hn(K){he.unshift(K)}function Lr(K){jt.unshift(K)}var qe=0,Mr=null,zr=null;function qn(K){qe++,e.monitorRunDependencies&&e.monitorRunDependencies(qe)}function Kn(K){if(qe--,e.monitorRunDependencies&&e.monitorRunDependencies(qe),qe==0&&(Mr!==null&&(clearInterval(Mr),Mr=null),zr)){var lt=zr;zr=null,lt()}}function Xr(K){e.onAbort&&e.onAbort(K),K=\"Aborted(\"+K+\")\",A(K),G=!0,W=1,K+=\". Build with -sASSERTIONS for more info.\";var lt=new WebAssembly.RuntimeError(K);throw o(lt),lt}var Zi=\"data:application/octet-stream;base64,\";function Mo(K){return K.startsWith(Zi)}function Il(K){return K.startsWith(\"file://\")}var Tr;Tr=\"tfjs-backend-wasm.wasm\",Mo(Tr)||(Tr=d(Tr));function Ji(K){try{if(K==Tr&&F)return new Uint8Array(F);if(x)return x(K);throw\"both async and sync fetching of the wasm failed\"}catch(lt){Xr(lt)}}function Rd(){if(!F&&(c||p)){if(typeof fetch==\"function\"&&!Il(Tr))return fetch(Tr,{credentials:\"same-origin\"}).then(function(K){if(!K.ok)throw\"failed to load wasm binary file at '\"+Tr+\"'\";return K.arrayBuffer()}).catch(function(){return Ji(Tr)});if(g)return new Promise(function(K,lt){g(Tr,function(At){K(new Uint8Array(At))},lt)})}return Promise.resolve().then(function(){return Ji(Tr)})}function Fd(){var K={env:Ld,wasi_snapshot_preview1:Ld};function lt(ee,te){var dr=ee.exports;e.asm=dr,V=e.asm.memory,_t(V.buffer),Zt=e.asm.__indirect_function_table,Hn(e.asm.__wasm_call_ctors),Kn(\"wasm-instantiate\")}qn(\"wasm-instantiate\");function At(ee){lt(ee.instance)}function re(ee){return Rd().then(function(te){return WebAssembly.instantiate(te,K)}).then(function(te){return te}).then(ee,function(te){A(\"failed to asynchronously prepare wasm: \"+te),Xr(te)})}function Ke(){return!F&&typeof WebAssembly.instantiateStreaming==\"function\"&&!Mo(Tr)&&!Il(Tr)&&!m&&typeof fetch==\"function\"?fetch(Tr,{credentials:\"same-origin\"}).then(function(ee){var te=WebAssembly.instantiateStreaming(ee,K);return te.then(At,function(dr){return A(\"wasm streaming compile failed: \"+dr),A(\"falling back to ArrayBuffer instantiation\"),re(At)})}):re(At)}if(e.instantiateWasm)try{var je=e.instantiateWasm(K,lt);return je}catch(ee){A(\"Module.instantiateWasm callback failed with error: \"+ee),o(ee)}return Ke().catch(o),{}}var Gk,Sl;function Xc(K){this.name=\"ExitStatus\",this.message=\"Program terminated with exit(\"+K+\")\",this.status=K}function Qi(K){for(;K.length>0;)K.shift()(e)}function Wk(K){return K}function Uk(K){var lt=/\\b_Z[\\w\\d_]+/g;return K.replace(lt,function(At){var re=At;return At===re?At:re+\" [\"+At+\"]\"})}function Yc(){var K=new Error;if(!K.stack){try{throw new Error}catch(lt){K=lt}if(!K.stack)return\"(no stack trace available)\"}return K.stack.toString()}function gI(K,lt){ot.set(K,lt)}function pg(){Xr(\"\")}function Od(){return 2147483648}function en(){return Od()}function mg(K,lt,At){at.copyWithin(K,lt,lt+At)}function xI(K){try{return V.grow(K-rt.byteLength+65535>>>16),_t(V.buffer),1}catch(lt){}}function yI(K){var lt=at.length;K=K>>>0;var At=Od();if(K>At)return!1;let re=(dr,jn)=>dr+(jn-dr%jn)%jn;for(var Ke=1;Ke<=4;Ke*=2){var je=lt*(1+.2/Ke);je=Math.min(je,K+100663296);var ee=Math.min(At,re(Math.max(K,je),65536)),te=xI(ee);if(te)return!0}return!1}var bI={varargs:void 0,get:function(){bI.varargs+=4;var K=dt[bI.varargs-4>>2];return K},getStr:function(K){var lt=Y(K);return lt}};function Hk(K){return 52}function wI(K,lt,At,re,Ke){return 70}var Ru=[null,[],[]];function CI(K,lt){var At=Ru[K];lt===0||lt===10?((K===1?_:A)(j(At,0)),At.length=0):At.push(lt)}function II(K,lt,At,re){for(var Ke=0,je=0;je>2],te=ht[lt+4>>2];lt+=8;for(var dr=0;dr>2]=Ke,0}function Pd(K){var lt=e[\"_\"+K];return lt}function fg(K,lt,At,re,Ke){var je={string:rn=>{var Nl=0;if(rn!=null&&rn!==0){var _g=(rn.length<<2)+1;Nl=Vd(_g),et(rn,Nl,_g)}return Nl},array:rn=>{var Nl=Vd(rn.length);return gI(rn,Nl),Nl}};function ee(rn){return lt===\"string\"?Y(rn):lt===\"boolean\"?Boolean(rn):rn}var te=Pd(K),dr=[],jn=0;if(re)for(var ta=0;taee===\"number\"||ee===\"boolean\"),je=lt!==\"string\";return je&&Ke&&!re?Pd(K):function(){return fg(K,lt,At,arguments,re)}}var Ld={abort:pg,emscripten_get_heap_max:en,emscripten_memcpy_big:mg,emscripten_resize_heap:yI,fd_close:Hk,fd_seek:wI,fd_write:II},qk=Fd(),hg=e.___wasm_call_ctors=function(){return(hg=e.___wasm_call_ctors=e.asm.__wasm_call_ctors).apply(null,arguments)},SI=e._init=function(){return(SI=e._init=e.asm.init).apply(null,arguments)},Kt=e._init_with_threads_count=function(){return(Kt=e._init_with_threads_count=e.asm.init_with_threads_count).apply(null,arguments)},Md=e._get_threads_count=function(){return(Md=e._get_threads_count=e.asm.get_threads_count).apply(null,arguments)},vI=e._register_tensor=function(){return(vI=e._register_tensor=e.asm.register_tensor).apply(null,arguments)},Kk=e._dispose_data=function(){return(Kk=e._dispose_data=e.asm.dispose_data).apply(null,arguments)},jk=e._dispose=function(){return(jk=e._dispose=e.asm.dispose).apply(null,arguments)},NI=e._Abs=function(){return(NI=e._Abs=e.asm.Abs).apply(null,arguments)},gg=e._Add=function(){return(gg=e._Add=e.asm.Add).apply(null,arguments)},Zc=e._AddN=function(){return(Zc=e._AddN=e.asm.AddN).apply(null,arguments)},TI=e._All=function(){return(TI=e._All=e.asm.All).apply(null,arguments)},kI=e._Any=function(){return(kI=e._Any=e.asm.Any).apply(null,arguments)},Xk=e._ArgMax=function(){return(Xk=e._ArgMax=e.asm.ArgMax).apply(null,arguments)},EI=e._AvgPool=function(){return(EI=e._AvgPool=e.asm.AvgPool).apply(null,arguments)},_I=e._BatchMatMul=function(){return(_I=e._BatchMatMul=e.asm.BatchMatMul).apply(null,arguments)},AI=e._Ceil=function(){return(AI=e._Ceil=e.asm.Ceil).apply(null,arguments)},$I=e._ClipByValue=function(){return($I=e._ClipByValue=e.asm.ClipByValue).apply(null,arguments)},xg=e._Conv2D=function(){return(xg=e._Conv2D=e.asm.Conv2D).apply(null,arguments)},yg=e._Conv2DBackpropInput=function(){return(yg=e._Conv2DBackpropInput=e.asm.Conv2DBackpropInput).apply(null,arguments)},DI=e._Cos=function(){return(DI=e._Cos=e.asm.Cos).apply(null,arguments)},RI=e._Cosh=function(){return(RI=e._Cosh=e.asm.Cosh).apply(null,arguments)},FI=e._CropAndResize=function(){return(FI=e._CropAndResize=e.asm.CropAndResize).apply(null,arguments)},zd=e._Cumprod=function(){return(zd=e._Cumprod=e.asm.Cumprod).apply(null,arguments)},OI=e._Cumsum=function(){return(OI=e._Cumsum=e.asm.Cumsum).apply(null,arguments)},PI=e._DepthToSpace=function(){return(PI=e._DepthToSpace=e.asm.DepthToSpace).apply(null,arguments)},LI=e._DepthwiseConv2dNative=function(){return(LI=e._DepthwiseConv2dNative=e.asm.DepthwiseConv2dNative).apply(null,arguments)},Fu=e._Elu=function(){return(Fu=e._Elu=e.asm.Elu).apply(null,arguments)},MI=e._Equal=function(){return(MI=e._Equal=e.asm.Equal).apply(null,arguments)},zI=e._Exp=function(){return(zI=e._Exp=e.asm.Exp).apply(null,arguments)},bg=e._FlipLeftRight=function(){return(bg=e._FlipLeftRight=e.asm.FlipLeftRight).apply(null,arguments)},BI=e._Floor=function(){return(BI=e._Floor=e.asm.Floor).apply(null,arguments)},Jc=e._FloorDiv=function(){return(Jc=e._FloorDiv=e.asm.FloorDiv).apply(null,arguments)},VI=e._FusedBatchNorm=function(){return(VI=e._FusedBatchNorm=e.asm.FusedBatchNorm).apply(null,arguments)},GI=e._FusedConv2D=function(){return(GI=e._FusedConv2D=e.asm.FusedConv2D).apply(null,arguments)},vl=e._FusedDepthwiseConv2D=function(){return(vl=e._FusedDepthwiseConv2D=e.asm.FusedDepthwiseConv2D).apply(null,arguments)},Bd=e._Gather=function(){return(Bd=e._Gather=e.asm.Gather).apply(null,arguments)},WI=e._GatherNd=function(){return(WI=e._GatherNd=e.asm.GatherNd).apply(null,arguments)},UI=e._Greater=function(){return(UI=e._Greater=e.asm.Greater).apply(null,arguments)},HI=e._GreaterEqual=function(){return(HI=e._GreaterEqual=e.asm.GreaterEqual).apply(null,arguments)},qI=e._LeakyRelu=function(){return(qI=e._LeakyRelu=e.asm.LeakyRelu).apply(null,arguments)},wg=e._Less=function(){return(wg=e._Less=e.asm.Less).apply(null,arguments)},Cg=e._LessEqual=function(){return(Cg=e._LessEqual=e.asm.LessEqual).apply(null,arguments)},KI=e._Log=function(){return(KI=e._Log=e.asm.Log).apply(null,arguments)},jI=e._LogicalAnd=function(){return(jI=e._LogicalAnd=e.asm.LogicalAnd).apply(null,arguments)},Ig=e._LogicalNot=function(){return(Ig=e._LogicalNot=e.asm.LogicalNot).apply(null,arguments)},Sg=e._LogicalOr=function(){return(Sg=e._LogicalOr=e.asm.LogicalOr).apply(null,arguments)},XI=e._LogicalXor=function(){return(XI=e._LogicalXor=e.asm.LogicalXor).apply(null,arguments)},YI=e._Max=function(){return(YI=e._Max=e.asm.Max).apply(null,arguments)},ZI=e._MaxPool=function(){return(ZI=e._MaxPool=e.asm.MaxPool).apply(null,arguments)},vg=e._Maximum=function(){return(vg=e._Maximum=e.asm.Maximum).apply(null,arguments)},Yk=e._Mean=function(){return(Yk=e._Mean=e.asm.Mean).apply(null,arguments)},JI=e._Min=function(){return(JI=e._Min=e.asm.Min).apply(null,arguments)},QI=e._Minimum=function(){return(QI=e._Minimum=e.asm.Minimum).apply(null,arguments)},tS=e._MirrorPad=function(){return(tS=e._MirrorPad=e.asm.MirrorPad).apply(null,arguments)},eS=e._Multiply=function(){return(eS=e._Multiply=e.asm.Multiply).apply(null,arguments)},rS=e._Neg=function(){return(rS=e._Neg=e.asm.Neg).apply(null,arguments)},nS=e._NonMaxSuppressionV3=function(){return(nS=e._NonMaxSuppressionV3=e.asm.NonMaxSuppressionV3).apply(null,arguments)},oS=e._NonMaxSuppressionV4=function(){return(oS=e._NonMaxSuppressionV4=e.asm.NonMaxSuppressionV4).apply(null,arguments)},sS=e._NonMaxSuppressionV5=function(){return(sS=e._NonMaxSuppressionV5=e.asm.NonMaxSuppressionV5).apply(null,arguments)},iS=e._NotEqual=function(){return(iS=e._NotEqual=e.asm.NotEqual).apply(null,arguments)},aS=e._OneHot=function(){return(aS=e._OneHot=e.asm.OneHot).apply(null,arguments)},lS=e._PadV2=function(){return(lS=e._PadV2=e.asm.PadV2).apply(null,arguments)},uS=e._Pow=function(){return(uS=e._Pow=e.asm.Pow).apply(null,arguments)},cS=e._Prelu=function(){return(cS=e._Prelu=e.asm.Prelu).apply(null,arguments)},pS=e._Prod=function(){return(pS=e._Prod=e.asm.Prod).apply(null,arguments)},mS=e._RealDiv=function(){return(mS=e._RealDiv=e.asm.RealDiv).apply(null,arguments)},fS=e._Relu=function(){return(fS=e._Relu=e.asm.Relu).apply(null,arguments)},dS=e._Relu6=function(){return(dS=e._Relu6=e.asm.Relu6).apply(null,arguments)},hS=e._ResizeBilinear=function(){return(hS=e._ResizeBilinear=e.asm.ResizeBilinear).apply(null,arguments)},gS=e._ResizeNearestNeighbor=function(){return(gS=e._ResizeNearestNeighbor=e.asm.ResizeNearestNeighbor).apply(null,arguments)},xS=e._Reverse=function(){return(xS=e._Reverse=e.asm.Reverse).apply(null,arguments)},yS=e._RotateWithOffset=function(){return(yS=e._RotateWithOffset=e.asm.RotateWithOffset).apply(null,arguments)},bS=e._Round=function(){return(bS=e._Round=e.asm.Round).apply(null,arguments)},wS=e._Rsqrt=function(){return(wS=e._Rsqrt=e.asm.Rsqrt).apply(null,arguments)},CS=e._ScatterNd=function(){return(CS=e._ScatterNd=e.asm.ScatterNd).apply(null,arguments)},IS=e._SelectV2=function(){return(IS=e._SelectV2=e.asm.SelectV2).apply(null,arguments)},SS=e._Sigmoid=function(){return(SS=e._Sigmoid=e.asm.Sigmoid).apply(null,arguments)},vS=e._Sin=function(){return(vS=e._Sin=e.asm.Sin).apply(null,arguments)},NS=e._Softmax=function(){return(NS=e._Softmax=e.asm.Softmax).apply(null,arguments)},TS=e._SparseFillEmptyRows=function(){return(TS=e._SparseFillEmptyRows=e.asm.SparseFillEmptyRows).apply(null,arguments)},kS=e._SparseReshape=function(){return(kS=e._SparseReshape=e.asm.SparseReshape).apply(null,arguments)},ES=e._SparseSegmentReduction=function(){return(ES=e._SparseSegmentReduction=e.asm.SparseSegmentReduction).apply(null,arguments)},_S=e._Sqrt=function(){return(_S=e._Sqrt=e.asm.Sqrt).apply(null,arguments)},AS=e._Square=function(){return(AS=e._Square=e.asm.Square).apply(null,arguments)},$S=e._SquaredDifference=function(){return($S=e._SquaredDifference=e.asm.SquaredDifference).apply(null,arguments)},DS=e._Step=function(){return(DS=e._Step=e.asm.Step).apply(null,arguments)},RS=e._StridedSlice=function(){return(RS=e._StridedSlice=e.asm.StridedSlice).apply(null,arguments)},FS=e._Sub=function(){return(FS=e._Sub=e.asm.Sub).apply(null,arguments)},OS=e._Sum=function(){return(OS=e._Sum=e.asm.Sum).apply(null,arguments)},PS=e._Tan=function(){return(PS=e._Tan=e.asm.Tan).apply(null,arguments)},LS=e._Tanh=function(){return(LS=e._Tanh=e.asm.Tanh).apply(null,arguments)},MS=e._Tile=function(){return(MS=e._Tile=e.asm.Tile).apply(null,arguments)},zS=e._TopK=function(){return(zS=e._TopK=e.asm.TopK).apply(null,arguments)},BS=e._Transform=function(){return(BS=e._Transform=e.asm.Transform).apply(null,arguments)},VS=e._Transpose=function(){return(VS=e._Transpose=e.asm.Transpose).apply(null,arguments)},GS=e.__FusedMatMul=function(){return(GS=e.__FusedMatMul=e.asm._FusedMatMul).apply(null,arguments)},WS=e._malloc=function(){return(WS=e._malloc=e.asm.malloc).apply(null,arguments)},US=e._free=function(){return(US=e._free=e.asm.free).apply(null,arguments)},HS=e.___errno_location=function(){return(HS=e.___errno_location=e.asm.__errno_location).apply(null,arguments)},Ng=e.stackSave=function(){return(Ng=e.stackSave=e.asm.stackSave).apply(null,arguments)},Tg=e.stackRestore=function(){return(Tg=e.stackRestore=e.asm.stackRestore).apply(null,arguments)},Vd=e.stackAlloc=function(){return(Vd=e.stackAlloc=e.asm.stackAlloc).apply(null,arguments)},qS=e.dynCall_iijjiiii=function(){return(qS=e.dynCall_iijjiiii=e.asm.dynCall_iijjiiii).apply(null,arguments)},KS=e.dynCall_jiji=function(){return(KS=e.dynCall_jiji=e.asm.dynCall_jiji).apply(null,arguments)};e.cwrap=dg;var Qc;zr=function K(){Qc||kg(),Qc||(zr=K)};function kg(K){if(K=K||a,qe>0||(Ae(),qe>0))return;function lt(){Qc||(Qc=!0,e.calledRun=!0,!G&&(We(),n(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),_n()))}e.setStatus?(e.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){e.setStatus(\"\")},1),lt()},1)):lt()}if(e.preInit)for(typeof e.preInit==\"function\"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();kg();var tp;s&&(tp={uncaughtException:process.listeners(\"uncaughtException\").filter(function(K){return!s.uncaughtException.indexOf(K)>-1}),unhandledRejection:process.listeners(\"unhandledRejection\").filter(function(K){return!s.unhandledRejection.indexOf(K)>-1})});var ep;if(typeof t!=\"undefined\")ep=t;else if(typeof WasmBackendModuleThreadedSimd!=\"undefined\")ep=WasmBackendModuleThreadedSimd;else throw new Error(\"Could not find wasm module in post.js\");if(tp){var jS=ep._dispose;ep._dispose=function(){jS(),tp.uncaughtException.forEach(function(K){process.removeListener(\"uncaughtException\",K)}),tp.unhandledRejection.forEach(function(K){process.removeListener(\"unhandledRejection\",K)})}}return t.ready}})();typeof dI==\"object\"&&typeof Lk==\"object\"?Lk.exports=Pk:typeof define==\"function\"&&define.amd?define([],function(){return Pk}):typeof dI==\"object\"&&(dI.WasmBackendModule=Pk)});var ra=class{constructor(t,e){this.backend=t,this.dataMover=e,this.data=new WeakMap,this.dataIdsCount=0}get(t){return this.data.has(t)||this.dataMover.moveData(this.backend,t),this.data.get(t)}set(t,e){this.dataIdsCount++,this.data.set(t,e)}has(t){return this.data.has(t)}delete(t){return this.dataIdsCount--,this.data.delete(t)}numDataIds(){return this.dataIdsCount}},zo=class{refCount(t){return $n(\"refCount\")}incRef(t){return $n(\"incRef\")}timerAvailable(){return!0}time(t){return $n(\"time\")}read(t){return $n(\"read\")}readSync(t){return $n(\"readSync\")}readToGPU(t,e){return $n(\"readToGPU\")}numDataIds(){return $n(\"numDataIds\")}disposeData(t,e){return $n(\"disposeData\")}write(t,e,n){return $n(\"write\")}move(t,e,n,o,s){return $n(\"move\")}createTensorFromTexture(t,e,n){return $n(\"createTensorFromTexture\")}memory(){return $n(\"memory\")}floatPrecision(){return $n(\"floatPrecision\")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return $n(\"dispose\")}};function $n(r){throw new Error(`'${r}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function s1(r){let t=r.length,e=0;for(;t>0;)e=Math.random()*t|0,t--,Lg(r,t,e)}function MU(r,t){if(r.length!==t.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${r.length}Second array length was ${t.length}`);let e=r.length,n=0;for(;e>0;)n=Math.random()*e|0,e--,Lg(r,e,n),Lg(t,e,n)}function np(r,t,e){return Math.max(r,Math.min(t,e))}function zU(r){return r%2===0?r:r+1}function Lg(r,t,e){let n=r[t];r[t]=r[e],r[e]=n}function BU(r){let t=0;for(let e=0;ee+` Shapes ${r} and ${t} must match`)}function Yn(r){E(r!=null,()=>\"The input to the tensor constructor must be a non-null value.\")}function Bo(r,t=[],e=!1){if(t==null&&(t=[]),Array.isArray(r)||xr(r)&&!e)for(let n=0;n0,e,n){return new Promise((o,s)=>{let i=0,a=()=>{if(r()){o();return}i++;let u=t(i);if(e!=null&&i>=e){s();return}n!=null?n(a,u):setTimeout(a,u)};a()})}function jU(r,t){let e=1,n=-1;for(let s=0;s=0)e*=r[s];else if(r[s]===-1){if(n!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${n} and dim ${s}`);n=s}else if(r[s]<0)throw Error(`Shapes can not be < 0. Found ${r[s]} at dim ${s}`);if(n===-1){if(t>0&&t!==e)throw Error(`Size(${t}) must match the product of shape ${r}`);return r}if(e===0)throw Error(`Cannot infer the missing size in [${r}] when there are 0 elements`);if(t%e!==0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${e}`);let o=r.slice();return o[n]=t/e,o}function lr(r,t){let e=t.length;return r=r==null?t.map((n,o)=>o):[].concat(r),E(r.every(n=>n>=-e&&n`All values in axis param must be in range [-${e}, ${e}) but got axis ${r}`),E(r.every(n=>na(n)),()=>`All values in axis param must be integers but got axis ${r}`),r.map(n=>n<0?e+n:n)}function tv(r,t){let e=[],n=[],o=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||o?null:lr(t,r).sort(),i=0;for(let a=0;aa)&&r[a]===1&&(e.push(r[a]),n.push(a)),s[i]<=a&&i++}r[a]!==1&&(e.push(r[a]),n.push(a))}return{newShape:e,keptDims:n}}function ev(r,t){let e=null;if(r==null||r===\"float32\")e=new Float32Array(t);else if(r===\"int32\")e=new Int32Array(t);else if(r===\"bool\")e=new Uint8Array(t);else throw new Error(`Unknown data type ${r}`);return e}function rv(r,t){let e=null;if(r==null||r===\"float32\")e=new Float32Array(t);else if(r===\"int32\")e=new Int32Array(t);else if(r===\"bool\")e=new Uint8Array(t);else if(r===\"string\")e=new Array(t);else throw new Error(`Unknown data type ${r}`);return e}function nv(r,t){for(let e=0;et+=e.length),t}function Vo(r){return typeof r==\"string\"||r instanceof String}function i1(r){return typeof r==\"boolean\"}function a1(r){return typeof r==\"number\"}function op(r){return Array.isArray(r)?op(r[0]):r instanceof Float32Array?\"float32\":r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray?\"int32\":a1(r)?\"float32\":Vo(r)?\"string\":i1(r)?\"bool\":\"float32\"}function oi(r){return!!(r&&r.constructor&&r.call&&r.apply)}function sp(r,t){for(let e=t;e=0;--n)e[n]=e[n+1]*r[n+1];return e}function l1(r,t,e,n=!1){let o=new Array;if(t.length===1){let s=t[0]*(n?2:1);for(let i=0;iu*l)*(n?2:1);for(let u=0;uo*s)*(e?2:1);if(n===0)return[];if(n!==t.length)throw new Error(`[${r}] does not match the input size ${t.length}${e?\" for a complex tensor\":\"\"}.`);return l1(0,r,t,e)}function Wd(r,t){let e=ip(r,t);for(let n=0;nn*o,1);if(t==null||t===\"float32\")return Ou(r,new Float32Array(e));if(t===\"int32\")return Ou(r,new Int32Array(e));if(t===\"bool\")return Ou(r,new Uint8Array(e));throw new Error(`Unknown data type ${t}`)}function Ud(r){r.forEach(t=>{E(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${r}].`)})}function ZU(r,t,e){if(t===0)return 0;if(t===1)return r[0];let n=r[r.length-1];for(let o=0;o{let[o,s]=n.split(\":\");this.urlFlags[o]=r4(o,s)})}};function t4(r){let t={};return r.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(e,...n)=>(e4(t,n[0],n[1]),n.join(\"=\"))),t}function e4(r,t,e){r[decodeURIComponent(t)]=decodeURIComponent(e||\"\")}function r4(r,t){if(t=t.toLowerCase(),t===\"true\"||t===\"false\")return t===\"true\";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${r}.`)}function z(){return iv}var iv=null;function c1(r){iv=r}var av;function lv(){if(av==null){let r;if(typeof window!=\"undefined\")r=window;else if(typeof global!=\"undefined\")r=global;else if(typeof process!=\"undefined\")r=process;else if(typeof self!=\"undefined\")r=self;else throw new Error(\"Could not find a global object\");av=r}return av}function n4(){let r=lv();return r._tfGlobals==null&&(r._tfGlobals=new Map),r._tfGlobals}function Kd(r,t){let e=n4();if(e.has(r))return e.get(r);{let n=t();return e.set(r,n),e.get(r)}}var ii=\"Abs\",oa=\"Acos\",sa=\"Acosh\",Zn=\"Add\",Go=\"AddN\",ia=\"All\",aa=\"Any\",Wo=\"ArgMax\",kl=\"ArgMin\",la=\"Asin\",ua=\"Asinh\",ca=\"Atan\",pa=\"Atanh\",ma=\"Atan2\",Uo=\"AvgPool\",ap=\"AvgPoolGrad\",El=\"AvgPool3D\",lp=\"AvgPool3DGrad\",Ho=\"BatchMatMul\",ai=\"BatchToSpaceND\",up=\"Bincount\",p1=\"BroadcastTo\",cp=\"BroadcastArgs\",lo=\"Cast\",qo=\"Ceil\",uo=\"ClipByValue\",pp=\"Complex\",_l=\"ComplexAbs\",li=\"Concat\",Ko=\"Conv2D\",mp=\"Conv2DBackpropFilter\",jo=\"Conv2DBackpropInput\",Al=\"Conv3D\",fp=\"Conv3DBackpropFilterV2\",dp=\"Conv3DBackpropInputV2\",Xo=\"Cos\",Yo=\"Cosh\",fa=\"Cumprod\",Zo=\"Cumsum\",da=\"CropAndResize\",hp=\"DenseBincount\",ha=\"DepthToSpace\",Jo=\"DepthwiseConv2dNative\",gp=\"DepthwiseConv2dNativeBackpropFilter\",xp=\"DepthwiseConv2dNativeBackpropInput\",yp=\"Diag\",$l=\"Dilation2D\",jd=\"Dilation2DBackpropInput\",Xd=\"Dilation2DBackpropFilter\",Qo=\"RealDiv\",bp=\"Einsum\",ts=\"Elu\",wp=\"EluGrad\",ga=\"Erf\",xa=\"Equal\",es=\"Exp\",ui=\"ExpandDims\",ya=\"Expm1\",Cp=\"FFT\",Dl=\"Fill\",ba=\"FlipLeftRight\",rs=\"Floor\",ns=\"FloorDiv\",os=\"FusedBatchNorm\",ci=\"GatherV2\",wa=\"GatherNd\",Ca=\"Greater\",ss=\"GreaterEqual\",co=\"Identity\",Ip=\"IFFT\",Sp=\"Imag\",Ia=\"IsFinite\",Sa=\"IsInf\",va=\"IsNan\",is=\"LeakyRelu\",Na=\"Less\",Ta=\"LessEqual\",vp=\"LinSpace\",as=\"Log\",ka=\"Log1p\",Ea=\"LogicalAnd\",_a=\"LogicalNot\",Aa=\"LogicalOr\",m1=\"LogicalXor\",f1=\"LogSoftmax\",xlt=\"LowerBound\",Rl=\"LRN\",Np=\"LRNGrad\",ls=\"Max\",us=\"Maximum\",cs=\"MaxPool\",Tp=\"MaxPoolGrad\",Fl=\"MaxPool3D\",kp=\"MaxPool3DGrad\",Ep=\"MaxPoolWithArgmax\",ps=\"Mean\",ms=\"Min\",fs=\"Minimum\",ds=\"MirrorPad\",$a=\"Mod\",_p=\"Multinomial\",hs=\"Multiply\",pi=\"Neg\",Da=\"NotEqual\",Ra=\"NonMaxSuppressionV3\",Fa=\"NonMaxSuppressionV4\",Oa=\"NonMaxSuppressionV5\",mi=\"OnesLike\",gs=\"OneHot\",fi=\"Pack\",xs=\"PadV2\",ylt=\"Pool\",ys=\"Pow\",bs=\"Prelu\",ws=\"Prod\",Ap=\"RaggedGather\",$p=\"RaggedRange\",Dp=\"RaggedTensorToTensor\",Ol=\"Range\",Rp=\"Real\",Pa=\"Reciprocal\",Cs=\"Relu\",di=\"Reshape\",Is=\"ResizeNearestNeighbor\",Fp=\"ResizeNearestNeighborGrad\",Ss=\"ResizeBilinear\",Op=\"ResizeBilinearGrad\",vs=\"Relu6\",Ns=\"Reverse\",Ts=\"Round\",ks=\"Rsqrt\",La=\"ScatterNd\",Pp=\"SearchSorted\",hi=\"Select\",Ma=\"Selu\",gi=\"Slice\",Es=\"Sin\",za=\"Sinh\",Ba=\"Sign\",_s=\"Sigmoid\",Va=\"Softplus\",As=\"Sqrt\",$s=\"Sum\",xi=\"SpaceToBatchND\",yi=\"SplitV\",Ds=\"Softmax\",Pl=\"SparseFillEmptyRows\",Ga=\"SparseReshape\",Ll=\"SparseSegmentMean\",Ml=\"SparseSegmentSum\",Lp=\"SparseToDense\",Rs=\"SquaredDifference\",zl=\"Square\",Wa=\"StridedSlice\",Bl=\"StringNGrams\",Vl=\"StringSplit\",Gl=\"StringToHashBucketFast\",Fs=\"Sub\",Os=\"Tan\",Ps=\"Tanh\",Jn=\"Tile\",Ua=\"TopK\",Ha=\"Transform\",Qn=\"Transpose\",Mp=\"Unique\",bi=\"Unpack\",Wl=\"UnsortedSegmentSum\",blt=\"UpperBound\",wi=\"ZerosLike\",po=\"Step\",Yd=\"FromPixels\",qa=\"RotateWithOffset\",Ci=\"_FusedMatMul\",Ii=\"FusedConv2D\",Si=\"FusedDepthwiseConv2D\";function vi(...r){z().getBool(\"IS_TEST\")||z().getBool(\"PROD\")||console.warn(...r)}function o4(...r){z().getBool(\"IS_TEST\")||z().getBool(\"PROD\")||console.log(...r)}var zp=Kd(\"kernelRegistry\",()=>new Map),Zd=Kd(\"gradRegistry\",()=>new Map);function Jd(r,t){let e=cv(r,t);return zp.get(e)}function uv(r){return Zd.get(r)}function zg(r){let t=zp.entries(),e=[];for(;;){let{done:n,value:o}=t.next();if(n)break;let[s,i]=o,[a]=s.split(\"_\");a===r&&e.push(i)}return e}function Lu(r){let{kernelName:t,backendName:e}=r,n=cv(t,e);zp.has(n)&&vi(`The kernel '${t}' for backend '${e}' is already registered`),zp.set(n,r)}function h1(r){let{kernelName:t}=r;Zd.has(t)&&z().getBool(\"DEBUG\")&&vi(`Overriding the gradient for '${t}'`),Zd.set(t,r)}function vlt(r,t){let e=cv(r,t);if(!zp.has(e))throw new Error(`The kernel '${r}' for backend '${t}' is not registered`);zp.delete(e)}function Nlt(r){if(!Zd.has(r))throw new Error(`The gradient '${r}' for backend is not registered`);Zd.delete(r)}function Tlt(r,t){zg(r).forEach(n=>{let o=Object.assign({},n,{backendName:t});Lu(o)})}function cv(r,t){return`${t}_${r}`}var y={};Wt(y,{arraysEqual:()=>Dn,assert:()=>E,assertNonNegativeIntegerDimensions:()=>Ud,assertNonNull:()=>Yn,assertShapesMatch:()=>$e,bytesFromStringArray:()=>sv,bytesPerElement:()=>Mg,checkConversionForErrors:()=>nv,clamp:()=>np,computeStrides:()=>si,createScalarValue:()=>p4,createShuffledIndices:()=>qU,decodeString:()=>Wp,distSquared:()=>GU,encodeString:()=>Hl,fetch:()=>f4,fingerPrint64:()=>c4,flatten:()=>Bo,getArrayFromDType:()=>rv,getTypedArrayFromDType:()=>ev,hasEncodingLoss:()=>XU,hexToLong:()=>Qd,indexToLoc:()=>JU,inferDtype:()=>op,inferFromImplicitShape:()=>jU,isBoolean:()=>i1,isFunction:()=>oi,isInt:()=>na,isNumber:()=>a1,isPromise:()=>Hd,isScalarShape:()=>WU,isString:()=>Vo,isTypedArray:()=>xr,isValidDtype:()=>ov,locToIndex:()=>ZU,makeOnesTypedArray:()=>Wd,makeZerosNestedTypedArray:()=>YU,makeZerosTypedArray:()=>ip,nearestDivisor:()=>sp,nearestLargerEven:()=>zU,now:()=>Gu,parseAxisParam:()=>lr,randUniform:()=>VU,repeatedTry:()=>KU,rightPad:()=>Pu,shuffle:()=>s1,shuffleCombo:()=>MU,sizeFromShape:()=>Jt,sizeToSquarishShape:()=>HU,squeezeShape:()=>tv,sum:()=>BU,swap:()=>Lg,tanh:()=>UU,toNestedArray:()=>Ou,toTypedArray:()=>Gp});var dv=Tl(T1());var Vu=dv.default||dv;function Qd(r){return Vu.fromString(r,!0,16)}var E1=Qd(\"c3a5c85c97cb3127\"),Bu=Qd(\"b492b66fbe98f273\"),nn=Qd(\"9ae16a3b2f90404f\");function fv(r){return r.xor(r.shru(47))}function _1(r,t,e){let n=r.slice(t,t+e);return Vu.fromBytes(Array.from(n),!0,!0)}function Pe(r,t){return _1(r,t,8)}function k1(r,t){return _1(r,t,4)}function kr(r,t){return t===0?r:r.shru(t).or(r.shl(64-t))}function Ul(r,t,e=Qd(\"9ddfea08eb382d69\")){let n=r.xor(t).mul(e);n=n.xor(n.shru(47));let o=t.xor(n).mul(e);return o=o.xor(o.shru(47)),o=o.mul(e),o}function i4(r,t,e,n,o,s){o=o.add(r),s=kr(s.add(o).add(n),21);let i=o;return o=o.add(t),o=o.add(e),s=s.add(kr(o,44)),[o.add(n),s.add(i)]}function Vg(r,t,e,n){return i4(Pe(r,t),Pe(r,t+8),Pe(r,t+16),Pe(r,t+24),e,n)}function a4(r,t=r.length){if(t>=8){let e=nn.add(t*2),n=Pe(r,0).add(nn),o=Pe(r,t-8),s=kr(o,37).mul(e).add(n),i=kr(n,25).add(o).mul(e);return Ul(s,i,e)}if(t>=4){let e=nn.add(t*2),n=k1(r,0);return Ul(n.shl(3).add(t),k1(r,t-4),e)}if(t>0){let e=r[0],n=r[t>>1],o=r[t-1],s=e+(n<<8),i=t+(o<<2);return fv(nn.mul(s).xor(E1.mul(i))).mul(nn)}return nn}function l4(r,t=r.length){let e=nn.add(t*2),n=Pe(r,0).mul(Bu),o=Pe(r,8),s=Pe(r,t-8).mul(e),i=Pe(r,t-16).mul(nn);return Ul(kr(n.add(o),43).add(kr(s,30)).add(i),n.add(kr(o.add(nn),18)).add(s),e)}function u4(r,t=r.length){let e=nn.add(t*2),n=Pe(r,0).mul(nn),o=Pe(r,8),s=Pe(r,t-8).mul(e),i=Pe(r,t-16).mul(nn),a=kr(n.add(o),43).add(kr(s,30)).add(i),u=Ul(a,n.add(kr(o.add(nn),18)).add(s),e),l=Pe(r,16).mul(e),c=Pe(r,24),p=a.add(Pe(r,t-32)).mul(e),m=u.add(Pe(r,t-24)).mul(e);return Ul(kr(l.add(c),43).add(kr(p,30)).add(m),l.add(kr(c.add(n),18)).add(p),e)}function c4(r,t=r.length){let e=Vu.fromNumber(81,!0);if(t<=32)return t<=16?a4(r,t):l4(r,t);if(t<=64)return u4(r,t);let n=e,o=e.mul(Bu).add(113),s=fv(o.mul(nn).add(113)).mul(nn),i=[Vu.UZERO,Vu.UZERO],a=[Vu.UZERO,Vu.UZERO];n=n.mul(nn).add(Pe(r,0));let u=0,l=(t-1>>6)*64,c=l+(t-1&63)-63;do n=kr(n.add(o).add(i[0]).add(Pe(r,u+8)),37).mul(Bu),o=kr(o.add(i[1]).add(Pe(r,u+48)),42).mul(Bu),n=n.xor(a[1]),o=o.add(i[0]).add(Pe(r,u+40)),s=kr(s.add(a[0]),33).mul(Bu),i=Vg(r,u,i[1].mul(Bu),n.add(a[0])),a=Vg(r,u+32,s.add(a[1]),o.add(Pe(r,u+16))),[s,n]=[n,s],u+=64;while(u!==l);let p=Bu.add(s.and(255).shl(1));return u=c,a[0]=a[0].add(t-1&63),i[0]=i[0].add(a[0]),a[0]=a[0].add(i[0]),n=kr(n.add(o).add(i[0]).add(Pe(r,u+8)),37).mul(p),o=kr(o.add(i[1]).add(Pe(r,u+48)),42).mul(p),n=n.xor(a[1].mul(9)),o=o.add(i[0].mul(9).add(Pe(r,u+40))),s=kr(s.add(a[0]),33).mul(p),i=Vg(r,u,i[1].mul(p),n.add(a[0])),a=Vg(r,u+32,s.add(a[1]),o.add(Pe(r,u+16))),[s,n]=[n,s],Ul(Ul(i[0],a[0],p).add(fv(o).mul(E1)).add(s),Ul(i[1],a[1],p).add(n),p)}function p4(r,t){return t===\"string\"?Hl(r):Gp([r],t)}function m4(r,t){return r instanceof Float32Array&&t===\"float32\"||r instanceof Int32Array&&t===\"int32\"||r instanceof Uint8Array&&t===\"bool\"}function Gp(r,t){if(t===\"string\")throw new Error(\"Cannot convert a string[] to a TypedArray\");if(Array.isArray(r)&&(r=Bo(r)),z().getBool(\"DEBUG\")&&nv(r,t),m4(r,t))return r;if(t==null||t===\"float32\"||t===\"complex64\")return new Float32Array(r);if(t===\"int32\")return new Int32Array(r);if(t===\"bool\"){let e=new Uint8Array(r.length);for(let n=0;n{o=n()},i,a=Gu();if(this.backendTimer.timerAvailable())i=this.backendTimer.time(s);else{s();for(let l of o)l.dataSync();i=Promise.resolve({kernelMs:Gu()-a})}if(z().getBool(\"CHECK_COMPUTATION_FOR_ERRORS\"))for(let l=0;l{d4(p,c.dtype,t)})}return{kernelName:t,outputs:o,inputs:e,timeMs:i.then(l=>l.kernelMs),extraInfo:i.then(l=>l.getExtraProfileInfo!=null?l.getExtraProfileInfo():\"\")}}logKernelProfile(t){let{kernelName:e,outputs:n,timeMs:o,inputs:s,extraInfo:i}=t;n.forEach(a=>{Promise.all([a.data(),o,i]).then(u=>{this.logger.logKernelProfile(e,a,u[0],u[1],s,u[2])})})}};function d4(r,t,e){if(t!==\"float32\")return!1;for(let n=0;n0?h:\"\"} `}}console.log(`%c${u}\t%c${a}\t%c${l}D ${p}\t%c${c}\t%c${m}\t%c${i}`,\"font-weight:bold\",\"color:red\",\"color:blue\",\"color: orange\",\"color: green\",\"color: steelblue\")}};function A1(r,t,e){let n={},o={};for(let u=0;un[h.id]=!0),f=!0,o[l.id]=!0;break}if(f)break}}let s={};s[e.id]=!0;let i={};for(let u=r.length-1;u>=0;u--){let l=r[u],c=l.inputs;for(let p=0;p=0;o--){let s=t[o],i=[];if(s.outputs.forEach(u=>{let l=r[u.id];l!=null?i.push(l):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let a=s.gradient(i);for(let u in s.inputs){if(!(u in a))throw new Error(`Cannot backprop through input ${u}. Available gradients found: ${Object.keys(a)}.`);let l=e(()=>a[u]());if(l.dtype!==\"float32\")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${u} must have 'float32' dtype, but has '${l.dtype}'`);let c=s.inputs[u];if(!Dn(l.shape,c.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${u}' has shape '${l.shape}', which does not match the shape of the input '${c.shape}'`);if(r[c.id]==null)r[c.id]=l;else{let p=r[c.id];r[c.id]=n(p,l),p.dispose()}}}}var D1=20,th=3,gv=7;function R1(r,t,e,n){let o=si(t),s=h4(r,t,e,o),i=t.length,a=Wg(r,t,e,o,s),u=[\"Tensor\"];return n&&(u.push(` dtype: ${e}`),u.push(` rank: ${i}`),u.push(` shape: [${t}]`),u.push(\" values:\")),u.push(a.map(l=>\" \"+l).join(`\n`)),u.join(`\n`)}function h4(r,t,e,n){let o=Jt(t),s=n[n.length-1],i=new Array(s).fill(0),a=t.length,u=e===\"complex64\"?rh(r):r;if(a>1)for(let l=0;lD1){let g=th*i,x=Array.from(r.slice(0,g)),b=Array.from(r.slice((a-th)*i,a*i));return e===\"complex64\"&&(x=rh(x),b=rh(b)),[\"[\"+x.map((w,C)=>eh(w,o[C],e)).join(\", \")+\", ..., \"+b.map((w,C)=>eh(w,o[a-th+C],e)).join(\", \")+\"]\"]}return[\"[\"+(e===\"complex64\"?rh(r):Array.from(r)).map((g,x)=>eh(g,o[x],e)).join(\", \")+\"]\"]}let l=t.slice(1),c=n.slice(1),p=n[0]*i,m=[];if(a>D1){for(let h=0;h`Length of values '${o}' does not match the size inferred by the shape '${this.size}'.`)}if(e===\"complex64\")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||rv(e,this.size),this.strides=si(t)}set(t,...e){e.length===0&&(e=[0]),E(e.length===this.rank,()=>`The number of provided coordinates (${e.length}) must match the rank (${this.rank})`);let n=this.locToIndex(e);this.values[n]=t}get(...t){t.length===0&&(t=[0]);let e=0;for(let o of t){if(o<0||o>=this.shape[e]){let s=`Requested out of range element at ${t}. Buffer shape=${this.shape}`;throw new Error(s)}e++}let n=t[t.length-1];for(let o=0;oWp(n))}catch(n){throw new Error(\"Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().\")}}return t}dataToGPU(t){return this.throwIfDisposed(),Ms().readToGPU(this.dataId,t)}dataSync(){this.throwIfDisposed();let t=Ms().readSync(this.dataId);if(this.dtype===\"string\")try{return t.map(e=>Wp(e))}catch(e){throw new Error(\"Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().\")}return t}async bytes(){this.throwIfDisposed();let t=await Ms().read(this.dataId);return this.dtype===\"string\"?t:new Uint8Array(t.buffer)}dispose(){this.isDisposed||(Ms().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error(\"Tensor is disposed.\")}print(t=!1){return Up.print(this,t)}clone(){return this.throwIfDisposed(),Up.clone(this)}toString(t=!1){let e=this.dataSync();return R1(e,this.shape,this.dtype,t)}cast(t){return this.throwIfDisposed(),Up.cast(this,t)}variable(t=!0,e,n){return this.throwIfDisposed(),Ms().makeVariable(this,t,e,n)}};Object.defineProperty(Ft,Symbol.hasInstance,{value:r=>!!r&&r.data!=null&&r.dataSync!=null&&r.throwIfDisposed!=null});function O(){return Kd(\"Tensor\",()=>Ft)}O();var Ka=class extends Ft{constructor(t,e,n,o){super(t.shape,t.dtype,t.dataId,o),this.trainable=e,this.name=n}assign(t){if(t.dtype!==this.dtype)throw new Error(`dtype of the new value (${t.dtype}) and previous value (${this.dtype}) must match`);if(!Dn(t.shape,this.shape))throw new Error(`shape of the new value (${t.shape}) and previous value (${this.shape}) must match`);Ms().disposeTensor(this),this.dataId=t.dataId,Ms().incRef(this,null)}dispose(){Ms().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(Ka,Symbol.hasInstance,{value:r=>r instanceof Ft&&r.assign!=null&&r.assign instanceof Function});var go={};Wt(go,{assertTypesMatch:()=>Iv,getTensorsInContainer:()=>nh,isTensorInList:()=>y4,makeTypesMatch:()=>Ut});var xv;(function(r){r.R0=\"R0\",r.R1=\"R1\",r.R2=\"R2\",r.R3=\"R3\",r.R4=\"R4\",r.R5=\"R5\",r.R6=\"R6\"})(xv||(xv={}));var yv;(function(r){r.float32=\"float32\",r.int32=\"int32\",r.bool=\"int32\",r.complex64=\"complex64\"})(yv||(yv={}));var bv;(function(r){r.float32=\"float32\",r.int32=\"int32\",r.bool=\"bool\",r.complex64=\"complex64\"})(bv||(bv={}));var wv;(function(r){r.float32=\"float32\",r.int32=\"float32\",r.bool=\"float32\",r.complex64=\"complex64\"})(wv||(wv={}));var Cv;(function(r){r.float32=\"complex64\",r.int32=\"complex64\",r.bool=\"complex64\",r.complex64=\"complex64\"})(Cv||(Cv={}));var x4={float32:wv,int32:yv,bool:bv,complex64:Cv};function sr(r,t){if(r===\"string\"||t===\"string\"){if(r===\"string\"&&t===\"string\")return\"string\";throw new Error(`Can not upcast ${r} with ${t}`)}return x4[r][t]}function Wu(r){return sr(r,\"int32\")}function Ut(r,t){if(r.dtype===t.dtype)return[r,t];let e=sr(r.dtype,t.dtype);return[r.cast(e),t.cast(e)]}function Iv(r,t){E(r.dtype===t.dtype,()=>`The dtypes of the first(${r.dtype}) and second(${t.dtype}) input must match`)}function y4(r,t){return t.some(e=>e.id===r.id)}function nh(r){let t=[];return M1(r,t,new Set),t}function M1(r,t,e){if(r==null)return;if(r instanceof Ft){t.push(r);return}if(!b4(r))return;let n=r;for(let o in n){let s=n[o];e.has(s)||(e.add(s),M1(s,t,e))}}function b4(r){return Array.isArray(r)||typeof r==\"object\"}function Sv(r){return r.kernelName!=null}var Ug=class{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(t=>t.name)))}}}dispose(){for(let t in this.registeredVariables)this.registeredVariables[t].dispose()}},ql=class{constructor(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Ug}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let t=this.getSortedBackends();for(let e=0;e{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(t){zg(t).forEach(n=>{n.disposeFunc!=null&&n.disposeFunc(this.registry[t])})}initializeBackend(t){let e=this.registryFactory[t];if(e==null)throw new Error(`Cannot initialize backend ${t}, no registration found.`);try{let n=e.factory();if(n&&!(n instanceof zo)&&typeof n.then==\"function\"){let o=++this.pendingBackendInitId,s=n.then(i=>o(othis.registryFactory[e].priority-this.registryFactory[t].priority)}initializeBackendsAndReturnBest(){let t=this.getSortedBackends();for(let e=0;ethis.startScope(n),()=>this.endScope(o),()=>(o=e(),o instanceof Promise&&console.error(\"Cannot return a Promise inside of tidy.\"),o))}scopedRun(t,e,n){t();try{let o=n();return e(),o}catch(o){throw e(),o}}nextTensorId(){return ql.nextTensorId++}nextVariableId(){return ql.nextVariableId++}clone(t){let e=k.runKernel(co,{x:t}),n={x:t},o=i=>({x:()=>{let a=\"float32\",u={x:i},l={dtype:a};return k.runKernel(lo,u,l)}}),s=[];return this.addTapeNode(this.state.activeScope.name,n,[e],o,s,{}),e}runKernel(t,e,n){if(this.backendName==null&&this.backend,!(Jd(t,this.backendName)!=null))throw new Error(`Kernel '${t}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:t,inputs:e,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool(\"IS_TEST\")}checkKernelForMemLeak(t,e,n){let o=this.backend.numDataIds(),s=0;n.forEach(u=>{s+=u.dtype===\"complex64\"?3:1});let i=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],a=o-e-s-i;if(a>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${a} data ids) after running '${t}'`)}runKernelFunc(t){let e,n=[],o=this.isTapeOn(),s=this.state.numBytes,i=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let a;this.backendName==null&&this.backend;let u,l=Sv(t)?t.kernelName:this.state.activeScope!=null?this.state.activeScope.name:\"\";if(Sv(t)){let{kernelName:d,inputs:h,attrs:g}=t;this.backendName==null&&this.backend;let x=Jd(d,this.backendName);E(x!=null,()=>`Cannot find registered kernel '${d}' for backend '${this.backendName}'`),a=()=>{let b=this.backend.numDataIds();u=x.kernelFunc({inputs:h,attrs:g,backend:this.backend});let w=Array.isArray(u)?u:[u];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(d,b,w);let C=w.map(N=>N.rank!=null?N:this.makeTensorFromTensorInfo(N));if(o){let N=this.getTensorsForGradient(d,h,C);n=this.saveTensorsForBackwardMode(N)}return C}}else{let{forwardFunc:d}=t,h=g=>{!o||(n=g.map(x=>this.keep(this.clone(x))))};a=()=>{let g=this.backend.numDataIds();u=this.tidy(()=>d(this.backend,h));let x=Array.isArray(u)?u:[u];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,g,x),x}}let{inputs:c,attrs:p}=t,m=Sv(t)?null:t.backwardsFunc,f;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool(\"DEBUG\")&&!this.state.profiling?e=a():(f=this.profiler.profileKernel(l,c,()=>a()),this.ENV.getBool(\"DEBUG\")&&this.profiler.logKernelProfile(f),e=f.outputs)}),o&&this.addTapeNode(l,c,e,m,n,p),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-s,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-i,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(d=>c[d]!=null?c[d].shape:null),outputShapes:e.map(d=>d.shape),kernelTimeMs:f.timeMs,extraInfo:f.extraInfo}),Array.isArray(u)?e:e[0]}saveTensorsForBackwardMode(t){return t.map(n=>this.keep(this.clone(n)))}getTensorsForGradient(t,e,n){let o=uv(t);if(o!=null){let s=o.inputsToSave||[],i=o.outputsToSave||[],a;o.saveAllInputs?(E(Array.isArray(e),()=>\"saveAllInputs is true, expected inputs to be an array.\"),a=Object.keys(e).map(l=>e[l])):a=s.map(l=>e[l]);let u=n.filter((l,c)=>i[c]);return a.concat(u)}return[]}makeTensor(t,e,n,o){if(t==null)throw new Error(\"Values passed to engine.makeTensor() are null\");n=n||\"float32\",o=o||this.backend;let s=t;n===\"string\"&&Vo(t[0])&&(s=t.map(u=>Hl(u)));let i=o.write(s,e,n),a=new Ft(e,n,i,this.nextTensorId());if(this.trackTensor(a,o),n===\"string\"){let u=this.state.tensorInfo.get(i),l=sv(s);this.state.numBytes+=l-u.bytes,u.bytes=l}return a}makeTensorFromDataId(t,e,n,o){n=n||\"float32\";let s={dataId:t,shape:e,dtype:n};return this.makeTensorFromTensorInfo(s,o)}makeTensorFromTensorInfo(t,e){let{dataId:n,shape:o,dtype:s}=t,i=new Ft(o,s,n,this.nextTensorId());return this.trackTensor(i,e),i}makeVariable(t,e=!0,n,o){n=n||this.nextVariableId().toString(),o!=null&&o!==t.dtype&&(t=t.cast(o));let s=new Ka(t,e,n,this.nextTensorId());if(this.state.registeredVariables[s.name]!=null)throw new Error(`Variable with name ${s.name} was already registered`);return this.state.registeredVariables[s.name]=s,this.incRef(s,this.backend),s}trackTensor(t,e){this.state.numTensors++,t.dtype===\"string\"&&this.state.numStringTensors++;let n=0;t.dtype!==\"complex64\"&&t.dtype!==\"string\"&&(n=t.size*Mg(t.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(t.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(t.dataId,{backend:e||this.backend,dtype:t.dtype,shape:t.shape,bytes:n})),t instanceof Ka||this.track(t)}incRef(t,e){this.trackTensor(t,e),this.backend.incRef(t.dataId)}removeDataId(t,e){this.state.tensorInfo.has(t)&&this.state.tensorInfo.get(t).backend===e&&(this.state.tensorInfo.delete(t),this.state.numDataBuffers--)}disposeTensor(t){if(!this.state.tensorInfo.has(t.dataId))return;let e=this.state.tensorInfo.get(t.dataId);if(this.state.numTensors--,t.dtype===\"string\"&&(this.state.numStringTensors--,this.state.numBytes-=e.bytes),t.dtype!==\"complex64\"&&t.dtype!==\"string\"){let n=t.size*Mg(t.dtype);this.state.numBytes-=n}e.backend.disposeData(t.dataId)&&this.removeDataId(t.dataId,e.backend)}disposeVariables(){for(let t in this.state.registeredVariables){let e=this.state.registeredVariables[t];this.disposeVariable(e)}}disposeVariable(t){this.disposeTensor(t),this.state.registeredVariables[t.name]!=null&&delete this.state.registeredVariables[t.name]}memory(){let t=this.backend.memory();return t.numTensors=this.state.numTensors,t.numDataBuffers=this.state.numDataBuffers,t.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(t.unreliable=!0,t.reasons==null&&(t.reasons=[]),t.reasons.push(\"Memory usage by string tensors is approximate (2 bytes per character)\")),t}async profile(t){this.state.profiling=!0;let e=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await t(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(o=>o.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-e,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let o of this.state.activeProfile.kernels)o.kernelTimeMs=await o.kernelTimeMs,o.extraInfo=await o.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(t,e,n,o,s,i){let a={id:this.state.nextTapeNodeId++,kernelName:t,inputs:e,outputs:n,saved:s},u=uv(t);u!=null&&(o=u.gradFunc),o!=null&&(a.gradient=l=>(l=l.map((c,p)=>{if(c==null){let m=n[p],f=ip(m.size,m.dtype);return this.makeTensor(f,m.shape,m.dtype)}return c}),o(l.length>1?l:l[0],s,i))),this.state.activeTape.push(a)}keep(t){return t.kept=!0,t}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(t){let e={track:[],name:\"unnamed scope\",id:this.state.nextScopeId++};t&&(e.name=t),this.state.scopeStack.push(e),this.state.activeScope=e}endScope(t){let e=nh(t),n=new Set(e.map(s=>s.id));for(let s=0;s{!s.kept&&s.scopeId===o.id&&this.track(s)})}gradients(t,e,n,o=!1){if(E(e.length>0,()=>\"gradients() received an empty list of xs.\"),n!=null&&n.dtype!==\"float32\")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);let s=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy(\"forward\",t));E(s instanceof Ft,()=>\"The result y returned by f() must be a tensor.\");let i=A1(this.state.activeTape,e,s);if(!o&&i.length===0&&e.length>0)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\",()=>{let a={};a[s.id]=n==null?w4(s.shape):n,$1(a,i,l=>this.tidy(l),C4);let u=e.map(l=>a[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let c of l.saved)c.dispose()}),this.state.activeTape=null),{value:s,grads:u}})}customGrad(t){return E(oi(t),()=>\"The f passed in customGrad(f) must be a function.\"),(...e)=>{E(e.every(a=>a instanceof Ft),()=>\"The args passed in customGrad(f)(x1, x2,...) must all be tensors\");let n,o={};e.forEach((a,u)=>{o[u]=a});let s=(a,u)=>(n=t(...e,u),E(n.value instanceof Ft,()=>\"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor\"),E(oi(n.gradFunc),()=>\"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function.\"),n.value),i=(a,u)=>{let l=n.gradFunc(a,u),c=Array.isArray(l)?l:[l];E(c.length===e.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(...).\"),E(c.every(m=>m instanceof Ft),()=>\"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.\");let p={};return c.forEach((m,f)=>{p[f]=()=>m}),p};return this.runKernelFunc({forwardFunc:s,backwardsFunc:i,inputs:o})}}readSync(t){return this.state.tensorInfo.get(t).backend.readSync(t)}read(t){return this.state.tensorInfo.get(t).backend.read(t)}readToGPU(t,e){return this.state.tensorInfo.get(t).backend.readToGPU(t,e)}async time(t){let e=Gu(),n=await this.backend.time(t);return n.wallMs=Gu()-e,n}track(t){return this.state.activeScope!=null&&(t.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(t)),t}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new Ug;for(let t in this.registry)this.disposeRegisteredKernels(t),this.registry[t].dispose(),delete this.registry[t];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};ql.nextTensorId=0;ql.nextVariableId=0;function w4(r){let t=Wd(Jt(r),\"float32\");return k.makeTensor(t,r,\"float32\")}function vv(){let r=lv();if(r._tfengine==null){let t=new qd(r);r._tfengine=new ql(t)}return c1(r._tfengine.ENV),O1(()=>r._tfengine),r._tfengine}var k=vv();function C4(r,t){let e={a:r,b:t};return k.runKernel(Zn,e)}var Kl={};Wt(Kl,{isBrowser:()=>Tv,isMobile:()=>v4,mockIsMobile:()=>S4});function I4(){return typeof navigator!=\"undefined\"&&navigator!=null}var Nv;function S4(r){Nv=r}function v4(r){if(Nv!==void 0)return Nv;if(r||I4()){if(r||(r=navigator),r.product===\"ReactNative\")return!0;let t=r.userAgent||r.vendor||(typeof window!=\"undefined\"?window.opera:\"\");if(!t){let e=r;return e.userAgentData&&e.userAgentData.mobile}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(t)||/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(t.substr(0,4))}return!1}function Tv(){return typeof window!=\"undefined\"&&window.document!=null||typeof WorkerGlobalScope!=\"undefined\"}var On=z();On.registerFlag(\"DEBUG\",()=>!1,r=>{r&&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.\")});On.registerFlag(\"IS_BROWSER\",()=>Tv());On.registerFlag(\"IS_NODE\",()=>typeof process!=\"undefined\"&&typeof process.versions!=\"undefined\"&&typeof process.versions.node!=\"undefined\");On.registerFlag(\"IS_CHROME\",()=>typeof navigator!=\"undefined\"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));On.registerFlag(\"PROD\",()=>!1);On.registerFlag(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\",()=>On.getBool(\"DEBUG\"));On.registerFlag(\"DEPRECATION_WARNINGS_ENABLED\",()=>!0);On.registerFlag(\"IS_TEST\",()=>!1);On.registerFlag(\"CHECK_COMPUTATION_FOR_ERRORS\",()=>!0);On.registerFlag(\"WRAP_TO_IMAGEBITMAP\",()=>!1);On.registerFlag(\"ENGINE_COMPILE_ONLY\",()=>!1);On.registerFlag(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\",()=>!1);On.registerFlag(\"USE_SETTIMEOUTCUSTOM\",()=>!1);function Br(r,t){let e=r;if(xr(r))return t===\"string\"?[]:[r.length];if(typeof r==\"object\"&&\"texture\"in r){let o=r.channels||\"RGBA\";return[r.height,r.width*o.length]}if(!Array.isArray(r))return[];let n=[];for(;Array.isArray(e)||xr(e)&&t!==\"string\";)n.push(e.length),e=e[0];return Array.isArray(r)&&z().getBool(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\")&&B1(r,n,[]),n}function B1(r,t,e){if(e=e||[],!Array.isArray(r)&&!xr(r)){E(t.length===0,()=>`Element arr[${e.join(\"][\")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}E(t.length>0,()=>`Element arr[${e.join(\"][\")}] should be a primitive, but is an array of ${r.length} elements`),E(r.length===t[0],()=>`Element arr[${e.join(\"][\")}] should have ${t[0]} elements, but has ${r.length} elements`);let n=t.slice(1);for(let o=0;o=0&&(o=n),z1(n,o,t,e),r==null||!xr(r)&&!Array.isArray(r)&&typeof r!=\"number\"&&typeof r!=\"boolean\"&&typeof r!=\"string\"){let u=r==null?\"null\":r.constructor.name;throw new Error(`Argument '${t}' passed to '${e}' must be a Tensor or TensorLike, but got '${u}'`)}let s=Br(r,o);!xr(r)&&!Array.isArray(r)&&(r=[r]);let a=o!==\"string\"?Gp(r,o):Bo(r,[],!0);return k.makeTensor(a,s,o)}function ja(r,t,e,n=\"numeric\"){if(!Array.isArray(r))throw new Error(`Argument ${t} passed to ${e} must be a \\`Tensor[]\\` or \\`TensorLike[]\\``);return r.map((s,i)=>I(s,`${t}[${i}]`,e,n))}var kv=\"__op\";function T(r){let t=Object.keys(r);if(t.length!==1)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 e=t[0],n=r[e];e.endsWith(\"_\")&&(e=e.substring(0,e.length-1)),e=e+kv;let o=(...s)=>{k.startScope(e);try{let i=n(...s);return Hd(i)&&console.error(\"Cannot return a Promise inside of tidy.\"),k.endScope(i),i}catch(i){throw k.endScope(null),i}};return Object.defineProperty(o,\"name\",{value:e,configurable:!0}),o}function N4(r,t){let e=I(r,\"real\",\"complex\"),n=I(t,\"imag\",\"complex\");$e(e.shape,n.shape,`real and imag shapes, ${e.shape} and ${n.shape}, must match in call to tf.complex().`);let o={real:e,imag:n};return k.runKernel(pp,o)}var wn=T({complex_:N4});function on(r,t,e,n){if(n==null&&(n=op(r)),n===\"complex64\")throw new Error(\"Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).\");if(typeof r==\"object\"&&\"texture\"in r){if(n!==\"float32\"&&n!==\"int32\")throw new Error(`Creating tensor from texture only supports 'float32'|'int32' dtype, while the dtype is ${n}.`);return r.channels=r.channels||\"RGBA\",k.backend.createTensorFromTexture(r,t||e,n)}if(!xr(r)&&!Array.isArray(r)&&typeof r!=\"number\"&&typeof r!=\"boolean\"&&typeof r!=\"string\")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(t!=null){Ud(t);let o=Jt(t),s=Jt(e);E(o===s,()=>`Based on the provided shape, [${t}], the tensor should have ${o} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${e}) does not match the provided shape (${t}). `)}}return!xr(r)&&!Array.isArray(r)&&(r=[r]),t=t||e,r=n!==\"string\"?Gp(r,n):Bo(r,[],!0),k.makeTensor(r,t,n)}function ur(r,t,e){let n=Br(r,e);return on(r,t,n,e)}var oh={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};var Hg=4;async function G1(r,t){let e=[],n=[],o=Array.isArray(r)?r.map(i=>i.name):Object.keys(r);for(let i=0;i{let m=await u.bytes(),f=m.reduce((g,x)=>g+x.length,0)+Hg*m.length,d=new Uint8Array(f),h=0;for(let g=0;g{if(t+=s.byteLength,e.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let n=new Uint8Array(t),o=0;return e.forEach(s=>{n.set(new Uint8Array(s.buffer),o),o+=s.byteLength}),n.buffer}var Ev=typeof Buffer!=\"undefined\"&&(typeof Blob==\"undefined\"||typeof atob==\"undefined\"||typeof btoa==\"undefined\");function V1(r){return Ev?Buffer.byteLength(r):new Blob([r]).size}function W1(r){if(Ev)return Buffer.from(r).toString(\"base64\");let t=new Uint8Array(r),e=\"\";for(let n=0,o=t.length;n{t+=o.byteLength});let e=new Uint8Array(t),n=0;return r.forEach(o=>{e.set(new Uint8Array(o),n),n+=o.byteLength}),e.buffer}function _v(r){let t=\"/\";for(r=r.trim();r.endsWith(t);)r=r.slice(0,r.length-1);let e=r.split(t);return e[e.length-1]}function Kg(r,t){let e={modelTopology:r.modelTopology,format:r.format,generatedBy:r.generatedBy,convertedBy:r.convertedBy,weightsManifest:t};return r.signature!=null&&(e.signature=r.signature),r.userDefinedMetadata!=null&&(e.userDefinedMetadata=r.userDefinedMetadata),r.modelInitializer!=null&&(e.modelInitializer=r.modelInitializer),r.initializerSignature!=null&&(e.initializerSignature=r.initializerSignature),r.trainingConfig!=null&&(e.trainingConfig=r.trainingConfig),e}function Av(r,t,e){let n={modelTopology:r.modelTopology,format:r.format,generatedBy:r.generatedBy,convertedBy:r.convertedBy};if(r.trainingConfig!=null&&(n.trainingConfig=r.trainingConfig),r.weightsManifest!=null){if(!t)throw new Error(\"modelJSON has weightsManifest but weightSpecs is null\");if(!e)throw new Error(\"modelJSON has weightsManifest but weightData is null\");n.weightSpecs=t,n.weightData=e}return r.signature!=null&&(n.signature=r.signature),r.userDefinedMetadata!=null&&(n.userDefinedMetadata=r.userDefinedMetadata),r.modelInitializer!=null&&(n.modelInitializer=r.modelInitializer),r.initializerSignature!=null&&(n.initializerSignature=r.initializerSignature),n}async function qp(r,t){let e,n;return r.weightsManifest!=null&&([e,n]=await t(r.weightsManifest)),Av(r,e,n)}function Ni(r){if(r.modelTopology instanceof ArrayBuffer)throw new Error(\"Expected JSON model topology, received ArrayBuffer.\");return{dateSaved:new Date,modelTopologyType:\"JSON\",modelTopologyBytes:r.modelTopology==null?0:V1(JSON.stringify(r.modelTopology)),weightSpecsBytes:r.weightSpecs==null?0:V1(JSON.stringify(r.weightSpecs)),weightDataBytes:r.weightData==null?0:r.weightData.byteLength}}function jg(r){let t=[];for(let e of r)t.push(...e.weights);return t}function k4(){let r=e=>{let n=e<<13,o=0;for(;(n&8388608)===0;)o-=8388608,n<<=1;return n&=-8388609,o+=947912704,n|o},t=new Uint32Array(2048);t[0]=0;for(let e=1;e<1024;e++)t[e]=r(e);for(let e=1024;e<2048;e++)t[e]=939524096+(e-1024<<13);return t}function E4(){let r=new Uint32Array(64);r[0]=0,r[31]=1199570944,r[32]=2147483648,r[63]=3347054592;for(let t=1;t<31;t++)r[t]=t<<23;for(let t=33;t<63;t++)r[t]=2147483648+(t-32<<23);return r}function _4(){let r=new Uint32Array(64);for(let t=0;t<64;t++)r[t]=1024;return r[0]=r[32]=0,r}function A4(){let r=k4(),t=E4(),e=_4();return n=>{let o=new ArrayBuffer(4*n.length),s=new Uint32Array(o);for(let i=0;i>10]+(a&1023)]+t[a>>10];s[i]=u}return new Float32Array(o)}}var Ce=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Ce.instance==null&&(Ce.instance=new Ce),Ce.instance}static registerSaveRouter(t){Ce.getInstance().saveRouters.push(t)}static registerLoadRouter(t){Ce.getInstance().loadRouters.push(t)}static getSaveHandlers(t){return Ce.getHandlers(t,\"save\")}static getLoadHandlers(t,e){return Ce.getHandlers(t,\"load\",e)}static getHandlers(t,e,n){let o=[];return(e===\"load\"?Ce.getInstance().loadRouters:Ce.getInstance().saveRouters).forEach(i=>{let a=i(t,n);a!==null&&o.push(a)}),o}},H1=r=>Ce.registerSaveRouter(r),q1=r=>Ce.registerLoadRouter(r),K1=r=>Ce.getSaveHandlers(r),j1=(r,t)=>Ce.getLoadHandlers(r,t);var $v=\"tensorflowjs\",Dv=1,Uu=\"models_store\",jl=\"model_info_store\";function X1(){if(!z().getBool(\"IS_BROWSER\"))throw new Error(\"Failed to obtain IndexedDB factory because the current environmentis not a web browser.\");let r=typeof window==\"undefined\"?self:window,t=r.indexedDB||r.mozIndexedDB||r.webkitIndexedDB||r.msIndexedDB||r.shimIndexedDB;if(t==null)throw new Error(\"The current browser does not appear to support IndexedDB.\");return t}function Rv(r){let t=r.result;t.createObjectStore(Uu,{keyPath:\"modelPath\"}),t.createObjectStore(jl,{keyPath:\"modelPath\"})}var Ti=class{constructor(t){if(this.indexedDB=X1(),t==null||!t)throw new Error(\"For IndexedDB, modelPath must not be null, undefined or empty.\");this.modelPath=t}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserLocalStorage.save() does not support saving model topology in binary formats yet.\");return this.databaseAction(this.modelPath,t)}async load(){return this.databaseAction(this.modelPath)}databaseAction(t,e){return new Promise((n,o)=>{let s=this.indexedDB.open($v,Dv);s.onupgradeneeded=()=>Rv(s),s.onsuccess=()=>{let i=s.result;if(e==null){let a=i.transaction(Uu,\"readonly\"),l=a.objectStore(Uu).get(this.modelPath);l.onsuccess=()=>{if(l.result==null)return i.close(),o(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(l.result.modelArtifacts)},l.onerror=c=>(i.close(),o(l.error)),a.oncomplete=()=>i.close()}else{let a=Ni(e),u=i.transaction(jl,\"readwrite\"),l=u.objectStore(jl),c=l.put({modelPath:this.modelPath,modelArtifactsInfo:a}),p;c.onsuccess=()=>{p=i.transaction(Uu,\"readwrite\");let f=p.objectStore(Uu).put({modelPath:this.modelPath,modelArtifacts:e,modelArtifactsInfo:a});f.onsuccess=()=>n({modelArtifactsInfo:a}),f.onerror=d=>{l=u.objectStore(jl);let h=l.delete(this.modelPath);h.onsuccess=()=>(i.close(),o(f.error)),h.onerror=g=>(i.close(),o(f.error))}},c.onerror=m=>(i.close(),o(c.error)),u.oncomplete=()=>{p==null?i.close():p.oncomplete=()=>i.close()}}},s.onerror=i=>o(s.error)})}};Ti.URL_SCHEME=\"indexeddb://\";var Y1=r=>z().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(Ti.URL_SCHEME)?$4(r.slice(Ti.URL_SCHEME.length)):null;Ce.registerSaveRouter(Y1);Ce.registerLoadRouter(Y1);function $4(r){return new Ti(r)}function D4(r){return r.startsWith(Ti.URL_SCHEME)?r.slice(Ti.URL_SCHEME.length):r}var Xg=class{constructor(){this.indexedDB=X1()}async listModels(){return new Promise((t,e)=>{let n=this.indexedDB.open($v,Dv);n.onupgradeneeded=()=>Rv(n),n.onsuccess=()=>{let o=n.result,s=o.transaction(jl,\"readonly\"),a=s.objectStore(jl).getAll();a.onsuccess=()=>{let u={};for(let l of a.result)u[l.modelPath]=l.modelArtifactsInfo;t(u)},a.onerror=u=>(o.close(),e(a.error)),s.oncomplete=()=>o.close()},n.onerror=o=>e(n.error)})}async removeModel(t){return t=D4(t),new Promise((e,n)=>{let o=this.indexedDB.open($v,Dv);o.onupgradeneeded=()=>Rv(o),o.onsuccess=()=>{let s=o.result,i=s.transaction(jl,\"readwrite\"),a=i.objectStore(jl),u=a.get(t),l;u.onsuccess=()=>{if(u.result==null)return s.close(),n(new Error(`Cannot find model with path '${t}' in IndexedDB.`));{let c=a.delete(t),p=()=>{l=s.transaction(Uu,\"readwrite\");let f=l.objectStore(Uu).delete(t);f.onsuccess=()=>e(u.result.modelArtifactsInfo),f.onerror=d=>n(u.error)};c.onsuccess=p,c.onerror=m=>(p(),s.close(),n(u.error))}},u.onerror=c=>(s.close(),n(u.error)),i.oncomplete=()=>{l==null?s.close():l.oncomplete=()=>s.close()}},o.onerror=s=>n(o.error)})}};var Xa=\"/\",Kp=\"tensorflowjs_models\",Z1=\"info\",R4=\"model_topology\",F4=\"weight_specs\",O4=\"weight_data\",P4=\"model_metadata\";function J1(r){return{info:[Kp,r,Z1].join(Xa),topology:[Kp,r,R4].join(Xa),weightSpecs:[Kp,r,F4].join(Xa),weightData:[Kp,r,O4].join(Xa),modelMetadata:[Kp,r,P4].join(Xa)}}function Q1(r){for(let t of Object.values(r))window.localStorage.removeItem(t)}function L4(r){let t=r.split(Xa);if(t.length<3)throw new Error(`Invalid key format: ${r}`);return t.slice(1,t.length-1).join(Xa)}function M4(r){return r.startsWith(ki.URL_SCHEME)?r.slice(ki.URL_SCHEME.length):r}var ki=class{constructor(t){if(!z().getBool(\"IS_BROWSER\")||typeof window==\"undefined\"||typeof window.localStorage==\"undefined\")throw new Error(\"The current environment does not support local storage.\");if(this.LS=window.localStorage,t==null||!t)throw new Error(\"For local storage, modelPath must not be null, undefined or empty.\");this.modelPath=t,this.keys=J1(this.modelPath)}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserLocalStorage.save() does not support saving model topology in binary formats yet.\");{let e=JSON.stringify(t.modelTopology),n=JSON.stringify(t.weightSpecs),o=Ni(t);try{this.LS.setItem(this.keys.info,JSON.stringify(o)),this.LS.setItem(this.keys.topology,e),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,W1(t.weightData));let s={format:t.format,generatedBy:t.generatedBy,convertedBy:t.convertedBy,signature:t.signature!=null?t.signature:void 0,userDefinedMetadata:t.userDefinedMetadata!=null?t.userDefinedMetadata:void 0,modelInitializer:t.modelInitializer!=null?t.modelInitializer:void 0,initializerSignature:t.initializerSignature!=null?t.initializerSignature:void 0,trainingConfig:t.trainingConfig!=null?t.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(s)),{modelArtifactsInfo:o}}catch(s){throw Q1(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${o.modelTopologyBytes}, weightSpecsBytes=${o.weightSpecsBytes}, weightDataBytes=${o.weightDataBytes}.`)}}}async load(){let t=JSON.parse(this.LS.getItem(this.keys.info));if(t==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(t.modelTopologyType!==\"JSON\")throw new Error(\"BrowserLocalStorage does not support loading non-JSON model topology yet.\");let e={},n=JSON.parse(this.LS.getItem(this.keys.topology));if(n==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);e.modelTopology=n;let o=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(o==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);e.weightSpecs=o;let s=this.LS.getItem(this.keys.modelMetadata);if(s!=null){let a=JSON.parse(s);e.format=a.format,e.generatedBy=a.generatedBy,e.convertedBy=a.convertedBy,a.signature!=null&&(e.signature=a.signature),a.userDefinedMetadata!=null&&(e.userDefinedMetadata=a.userDefinedMetadata),a.modelInitializer!=null&&(e.modelInitializer=a.modelInitializer),a.initializerSignature!=null&&(e.initializerSignature=a.initializerSignature),a.trainingConfig!=null&&(e.trainingConfig=a.trainingConfig)}let i=this.LS.getItem(this.keys.weightData);if(i==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return e.weightData=U1(i),e}};ki.URL_SCHEME=\"localstorage://\";var tE=r=>z().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(ki.URL_SCHEME)?z4(r.slice(ki.URL_SCHEME.length)):null;Ce.registerSaveRouter(tE);Ce.registerLoadRouter(tE);function z4(r){return new ki(r)}var Yg=class{constructor(){E(z().getBool(\"IS_BROWSER\"),()=>\"Current environment is not a web browser\"),E(typeof window==\"undefined\"||typeof window.localStorage!=\"undefined\",()=>\"Current browser does not appear to support localStorage\"),this.LS=window.localStorage}async listModels(){let t={},e=Kp+Xa,n=Xa+Z1;for(let o=0;o\"scheme must not be undefined or null.\"),t.endsWith(jp)&&(t=t.slice(0,t.indexOf(jp))),E(t.length>0,()=>\"scheme must not be an empty string.\");let n=Er.getInstance();E(n.managers[t]==null,()=>`A model store manager is already registered for scheme '${t}'.`),n.managers[t]=e}static getManager(t){let e=Er.getInstance().managers[t];if(e==null)throw new Error(`Cannot find model manager for scheme '${t}'`);return e}static getSchemes(){return Object.keys(Er.getInstance().managers)}};function Zg(r){if(r.indexOf(jp)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Er.getSchemes().join(\",\")}`);return{scheme:r.split(jp)[0],path:r.split(jp)[1]}}async function eE(r,t,e=!1){E(r!==t,()=>`Old path and new path are the same: '${r}'`);let n=Ce.getLoadHandlers(r);E(n.length>0,()=>`Copying failed because no load handler is found for source URL ${r}.`),E(n.length<2,()=>`Copying failed because more than one (${n.length}) load handlers for source URL ${r}.`);let o=n[0],s=Ce.getSaveHandlers(t);E(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),E(s.length<2,()=>`Copying failed because more than one (${n.length}) save handlers for destination URL ${t}.`);let i=s[0],a=Zg(r).scheme,u=Zg(r).path,l=a===Zg(r).scheme,c=await o.load();e&&l&&await Er.getManager(a).removeModel(u);let p=await i.save(c);return e&&!l&&await Er.getManager(a).removeModel(u),p.modelArtifactsInfo}async function rE(){let r=Er.getSchemes(),t={};for(let e of r){let n=await Er.getManager(e).listModels();for(let o in n){let s=e+jp+o;t[s]=n[o]}}return t}async function nE(r){let t=Zg(r);return Er.getManager(t.scheme).removeModel(t.path)}async function oE(r,t){return eE(r,t,!1)}async function sE(r,t){return eE(r,t,!0)}var Fv=class{constructor(){this.messageName=\"setTimeoutCustom\",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(t,e){return fetch(t,e)}now(){return performance.now()}encode(t,e){if(e!==\"utf-8\"&&e!==\"utf8\")throw new Error(`Browser's encoder only supports utf-8, but got ${e}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(t)}decode(t,e){return new TextDecoder(e).decode(t)}setTimeoutCustom(t,e){if(typeof window==\"undefined\"||!z().getBool(\"USE_SETTIMEOUTCUSTOM\")){setTimeout(t,e);return}this.functionRefs.push(t),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},\"*\")},e),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener(\"message\",n=>{if(n.source===window&&n.data.name===this.messageName){n.stopPropagation();let o=this.functionRefs[n.data.index];o(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}},!0))}};if(z().get(\"IS_BROWSER\")){z().setPlatform(\"browser\",new Fv);try{Er.registerManager(ki.URL_SCHEME,new Yg)}catch(r){}try{Er.registerManager(Ti.URL_SCHEME,new Xg)}catch(r){}}var B4={importFetch:()=>iE()},Ov;var Pv=class{constructor(){this.util=aE(),this.textEncoder=new this.util.TextEncoder}fetch(t,e){return z().global.fetch!=null?z().global.fetch(t,e):(Ov==null&&(Ov=B4.importFetch()),Ov(t,e))}now(){let t=process.hrtime();return t[0]*1e3+t[1]/1e6}encode(t,e){if(e!==\"utf-8\"&&e!==\"utf8\")throw new Error(`Node built-in encoder only supports utf-8, but got ${e}`);return this.textEncoder.encode(t)}decode(t,e){return t.length===0?\"\":new this.util.TextDecoder(e).decode(t)}};z().get(\"IS_NODE\")&&!z().get(\"IS_BROWSER\")&&z().setPlatform(\"node\",new Pv);function wt(r,t=\"float32\",e){return t=t||\"float32\",Ud(r),new pe(r,t,e)}function V4(r,t){let e=I(r,\"x\",\"cast\");if(!ov(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t===\"string\"&&e.dtype!==\"string\"||t!==\"string\"&&e.dtype===\"string\")throw new Error(\"Only strings can be casted to strings\");let n={x:e},o={dtype:t};return k.runKernel(lo,n,o)}var J=T({cast_:V4});function G4(r){let e={x:I(r,\"x\",\"clone\",\"string_or_numeric\")};return k.runKernel(co,e)}var sn=T({clone_:G4});function Jg(r,t=!1){console.log(r.toString(t))}vv();var W4={buffer:wt,cast:J,clone:sn,print:Jg};P1(W4);var _r={};Wt(_r,{browserFiles:()=>uE,browserHTTPRequest:()=>mE,concatenateArrayBuffers:()=>Hp,copyModel:()=>oE,decodeWeights:()=>qg,encodeWeights:()=>G1,fromMemory:()=>fE,fromMemorySync:()=>Gv,getLoadHandlers:()=>j1,getModelArtifactsForJSON:()=>qp,getModelArtifactsForJSONSync:()=>Av,getModelArtifactsInfoForJSON:()=>Ni,getSaveHandlers:()=>K1,getWeightSpecs:()=>jg,http:()=>tx,isHTTPScheme:()=>Qg,listModels:()=>rE,loadWeights:()=>cE,moveModel:()=>sE,registerLoadRouter:()=>q1,registerSaveRouter:()=>H1,removeModel:()=>nE,weightsLoaderFactory:()=>Bv,withSaveHandler:()=>dE,withSaveHandlerSync:()=>hE});var U4=\"model\",H4=\".json\",q4=\".weights.bin\";function lE(r){return new Promise(t=>setTimeout(t)).then(r)}var Ya=class{constructor(t){if(!z().getBool(\"IS_BROWSER\"))throw new Error(\"browserDownloads() cannot proceed because the current environment is not a browser.\");t.startsWith(Ya.URL_SCHEME)&&(t=t.slice(Ya.URL_SCHEME.length)),(t==null||t.length===0)&&(t=U4),this.modelJsonFileName=t+H4,this.weightDataFileName=t+q4}async save(t){if(typeof document==\"undefined\")throw new Error(\"Browser downloads are not supported in this environment since `document` is not present\");let e=window.URL.createObjectURL(new Blob([t.weightData],{type:\"application/octet-stream\"}));if(t.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserDownloads.save() does not support saving model topology in binary formats yet.\");{let n=[{paths:[\"./\"+this.weightDataFileName],weights:t.weightSpecs}],o=Kg(t,n),s=window.URL.createObjectURL(new Blob([JSON.stringify(o)],{type:\"application/json\"})),i=this.modelJsonAnchor==null?document.createElement(\"a\"):this.modelJsonAnchor;if(i.download=this.modelJsonFileName,i.href=s,await lE(()=>i.dispatchEvent(new MouseEvent(\"click\"))),t.weightData!=null){let a=this.weightDataAnchor==null?document.createElement(\"a\"):this.weightDataAnchor;a.download=this.weightDataFileName,a.href=e,await lE(()=>a.dispatchEvent(new MouseEvent(\"click\")))}return{modelArtifactsInfo:Ni(t)}}}};Ya.URL_SCHEME=\"downloads://\";var Lv=class{constructor(t){if(t==null||t.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${t}`);this.jsonFile=t[0],this.weightsFiles=t.slice(1)}async load(){return new Promise((t,e)=>{let n=new FileReader;n.onload=o=>{let s=JSON.parse(o.target.result),i=s.modelTopology;if(i==null){e(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(s.weightsManifest==null){e(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){t({modelTopology:i});return}let u=qp(s,l=>this.loadWeights(l));t(u)},n.onerror=o=>e(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)})}loadWeights(t){let e=[],n=[];for(let i of t)e.push(...i.weights),n.push(...i.paths);let o=this.checkManifestAndWeightFiles(t),s=n.map(i=>this.loadWeightsFile(i,o[i]));return Promise.all(s).then(i=>[e,Hp(i)])}loadWeightsFile(t,e){return new Promise((n,o)=>{let s=new FileReader;s.onload=i=>{let a=i.target.result;n(a)},s.onerror=i=>o(`Failed to weights data from file of path '${t}'.`),s.readAsArrayBuffer(e)})}checkManifestAndWeightFiles(t){let e=[],n=this.weightsFiles.map(s=>_v(s.name)),o={};for(let s of t)s.paths.forEach(i=>{let a=_v(i);if(e.indexOf(a)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${a}'`);if(e.push(a),n.indexOf(a)===-1)throw new Error(`Weight file with basename '${a}' is not provided.`);o[i]=this.weightsFiles[n.indexOf(a)]});if(e.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${e.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return o}},K4=r=>z().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(Ya.URL_SCHEME)?j4(r.slice(Ya.URL_SCHEME.length)):null;Ce.registerSaveRouter(K4);function j4(r=\"model\"){return new Ya(r)}function uE(r){return new Lv(r)}function Mv(r,t,e,n){i(r),e=e==null?0:e,n=n==null?1:n,a(e,n);let o=0,s=u=>(u.then(l=>{let c=e+ ++o/r.length*(n-e);return t(c),l}),u);function i(u){E(u!=null&&Array.isArray(u)&&u.length>0,()=>\"promises must be a none empty array\")}function a(u,l){E(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${u}`),E(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${l}`),E(l>=u,()=>`startFraction must be no more than endFraction, but got startFraction ${u} and endFraction ${l}`)}return Promise.all(r.map(s))}async function zv(r,t){t==null&&(t={});let e=t.fetchFunc==null?z().platform.fetch:t.fetchFunc,n=r.map(p=>e(p,t.requestInit,{isBinary:!0})),o=0,s=.5,a=(t.onProgress==null?await Promise.all(n):await Mv(n,t.onProgress,o,s)).map(p=>p.arrayBuffer()),u=.5,l=1;return t.onProgress==null?await Promise.all(a):await Mv(a,t.onProgress,u,l)}async function cE(r,t=\"\",e,n){return Bv(i=>zv(i,{requestInit:n}))(r,t,e)}function Bv(r){return async(t,e=\"\",n)=>{let o=t.map(()=>!1),s={},i=n!=null?n.map(()=>!1):[],a=[];if(t.forEach((f,d)=>{let h=0;f.weights.forEach(g=>{let x=\"quantization\"in g?g.quantization.dtype:g.dtype,b=oh[x]*Jt(g.shape),w=()=>{o[d]=!0,s[d]==null&&(s[d]=[]),s[d].push({manifestEntry:g,groupOffset:h,sizeBytes:b})};n!=null?n.forEach((C,N)=>{C===g.name&&(w(),i[N]=!0)}):w(),a.push(g.name),h+=b})}),!i.every(f=>f)){let f=n.filter((d,h)=>!i[h]);throw new Error(`Could not find weights in manifest with names: ${f.join(\", \")}. \nManifest JSON has weights with names: ${a.join(\", \")}.`)}let u=o.reduce((f,d,h)=>(d&&f.push(h),f),[]),l=[];u.forEach(f=>{t[f].paths.forEach(d=>{let h=e+(e.endsWith(\"/\")?\"\":\"/\")+d;l.push(h)})});let c=await r(l),p={},m=0;return u.forEach(f=>{let d=t[f].paths.length,h=0;for(let C=0;C{let N=g.slice(C.groupOffset,C.groupOffset+C.sizeBytes),_=qg(N,[C.manifestEntry]);for(let A in _)p[A]=_[A]}),m+=d}),p}}var X4=\"application/octet-stream\",Y4=\"application/json\",sh=class{constructor(t,e){if(this.DEFAULT_METHOD=\"POST\",e==null&&(e={}),this.weightPathPrefix=e.weightPathPrefix,this.onProgress=e.onProgress,this.weightUrlConverter=e.weightUrlConverter,e.fetchFunc!=null?(E(typeof e.fetchFunc==\"function\",()=>\"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)\"),this.fetch=e.fetchFunc):this.fetch=z().platform.fetch,E(t!=null&&t.length>0,()=>\"URL path for http must not be null, undefined or empty.\"),Array.isArray(t)&&E(t.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${t.length}).`),this.path=t,e.requestInit!=null&&e.requestInit.body!=null)throw new Error(\"requestInit is expected to have no pre-existing body, but has one.\");this.requestInit=e.requestInit||{}}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.\");let e=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);e.body=new FormData;let n=[{paths:[\"./model.weights.bin\"],weights:t.weightSpecs}],o=Kg(t,n);e.body.append(\"model.json\",new Blob([JSON.stringify(o)],{type:Y4}),\"model.json\"),t.weightData!=null&&e.body.append(\"model.weights.bin\",new Blob([t.weightData],{type:X4}),\"model.weights.bin\");let s=await this.fetch(this.path,e);if(s.ok)return{modelArtifactsInfo:Ni(t),responses:[s]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${s.status}.`)}async load(){let t=await this.fetch(this.path,this.requestInit);if(!t.ok)throw new Error(`Request to ${this.path} failed with status code ${t.status}. Please verify this URL points to the model JSON of the model to load.`);let e;try{e=await t.json()}catch(s){let i=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(\".pb\")?i+=\" 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.\":i+=\" Please make sure the server is serving valid JSON for this request.\",new Error(i)}let n=e.modelTopology,o=e.weightsManifest;if(n==null&&o==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return qp(e,s=>this.loadWeights(s))}async loadWeights(t){let e=Array.isArray(this.path)?this.path[1]:this.path,[n,o]=Z4(e),s=this.weightPathPrefix||n,i=jg(t),a=[],u=[];for(let c of t)for(let p of c.paths)this.weightUrlConverter!=null?u.push(this.weightUrlConverter(p)):a.push(s+p+o);this.weightUrlConverter&&a.push(...await Promise.all(u));let l=await zv(a,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[i,Hp(l)]}};sh.URL_SCHEME_REGEX=/^https?:\\/\\//;function Z4(r){let t=r.lastIndexOf(\"/\"),e=r.lastIndexOf(\"?\"),n=r.substring(0,t),o=e>t?r.substring(e):\"\";return[n+\"/\",o]}function Qg(r){return r.match(sh.URL_SCHEME_REGEX)!=null}var pE=(r,t)=>{if(typeof fetch==\"undefined\"&&(t==null||t.fetchFunc==null))return null;{let e=!0;if(Array.isArray(r)?e=r.every(n=>Qg(n)):e=Qg(r),e)return tx(r,t)}return null};Ce.registerSaveRouter(pE);Ce.registerLoadRouter(pE);function tx(r,t){return new sh(r,t)}function mE(r,t){return tx(r,t)}var ih=class{constructor(t){this.modelArtifacts=t}load(){return this.modelArtifacts}},ex=class{constructor(t){this.saveHandler=t}save(t){return this.saveHandler(t)}},Vv=class{constructor(t){t.load&&(this.load=()=>Promise.resolve(t.load())),t.save&&(this.save=e=>Promise.resolve(t.save(e)))}};function fE(r,t,e,n){let o=arguments;return new Vv(Gv(...o))}function Gv(r,t,e,n){return arguments.length===1?r.modelTopology!=null||r.weightSpecs!=null?new ih(r):(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 ih({modelTopology:r})):(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 ih({modelTopology:r,weightSpecs:t,weightData:e,trainingConfig:n}))}function dE(r){return new ex(r)}function hE(r){return new ex(r)}var yE={};Wt(yE,{confusionMatrix:()=>xE});function J4(r,t,e=!1,n=!1){let o=I(r,\"a\",\"matMul\"),s=I(t,\"b\",\"matMul\");[o,s]=Ut(o,s);let i={a:o,b:s},a={transposeA:e,transposeB:n};return k.runKernel(Ho,i,a)}var Lt=T({matMul_:J4});function Q4(r,t,e=1,n=0,o=\"int32\"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let i={indices:I(r,\"indices\",\"oneHot\",\"int32\")},a={dtype:o,depth:t,onValue:e,offValue:n};return k.runKernel(gs,i,a)}var Ei=T({oneHot_:Q4});function dpt(){z().set(\"PROD\",!0)}function hpt(){z().set(\"DEBUG\",!0)}function gpt(){z().set(\"DEPRECATION_WARNINGS_ENABLED\",!1),console.warn(\"TensorFlow.js deprecation warnings have been disabled.\")}function Wv(r){z().getBool(\"DEPRECATION_WARNINGS_ENABLED\")&&console.warn(r+\" You can disable deprecation warnings with tf.disableDeprecationWarnings().\")}L1(Wv);function xpt(){k.disposeVariables()}function Pn(){return k}function ah(){return k.memory()}function ypt(r){return k.profile(r)}function B(r,t){return k.tidy(r,t)}function vt(r){nh(r).forEach(e=>e.dispose())}function De(r){return k.keep(r)}function bpt(r){return k.time(r)}function tH(r){return k.setBackend(r)}function wpt(){return k.ready()}function Cpt(){return k.backendName}function Ipt(r){k.removeBackend(r)}function Spt(r){return k.findBackend(r)}function vpt(r){return k.findBackendFactory(r)}function Xp(r,t,e=1){return k.registerBackend(r,t,e)}function gE(){return k.backend}function Npt(r,t){z().setPlatform(r,t)}function eH(r){let e={input:I(r,\"input\",\"imag\")};return k.runKernel(Sp,e)}var Xl=T({imag_:eH});function rH(r){let e={x:I(r,\"x\",\"neg\")};return k.runKernel(pi,e)}var Ht=T({neg_:rH});function nH(r){let e={input:I(r,\"input\",\"real\")};return k.runKernel(Rp,e)}var Za=T({real_:nH});function oH(r,t,e){let n=I(r,\"x\",\"transpose\");if(t==null&&(t=n.shape.map((i,a)=>a).reverse()),E(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(i=>{E(i>=0&&i`All entries in 'perm' must be between 0 and ${n.rank-1} but got ${t}`)}),n.rank<=1)return n.clone();let o={x:n},s={perm:t};return n.dtype===\"complex64\"?B(()=>{let i=Za(n),a=Xl(n);return i=k.runKernel(Qn,{x:i},s),a=k.runKernel(Qn,{x:a},s),e&&(a=Ht(a)),wn(i,a)}):k.runKernel(Qn,o,s)}var Ot=T({transpose_:oH});function sH(r,t,e){let n=I(r,\"labels\",\"confusionMatrix\"),o=I(t,\"predictions\",\"confusionMatrix\");E(e==null||e>0&&Number.isInteger(e),()=>`If provided, numClasses must be a positive integer, but got ${e}`),E(n.rank===1,()=>`Expected the rank of labels to be 1, but got ${n.rank}`),E(o.rank===1,()=>`Expected the rank of predictions to be 1, but got ${o.rank}`),E(n.shape[0]===o.shape[0],()=>`Mismatch in the number of examples: ${n.shape[0]} vs. ${o.shape[0]}. Labels and predictions should have the same number of elements.`),E(e>0&&Number.isInteger(e),()=>`numClasses is required to be a positive integer, but got ${e}`);let s=Ei(J(n,\"int32\"),e),i=Ei(J(o,\"int32\"),e),a=Ot(s),u=Lt(a,i);return J(u,\"int32\")}var xE=T({confusionMatrix_:sH});var Vr={};Wt(Vr,{assertAndGetBroadcastShape:()=>Pt,getBroadcastDims:()=>bE,getReductionAxes:()=>ge});function bE(r,t){let e=r.length,n=[];for(let o=0;o1&&i===1&&n.unshift(s)}return n}function ge(r,t){let e=[];for(let n=0;n1)&&e.unshift(s)}return e}function Pt(r,t){let e=[],n=Math.max(r.length,t.length);for(let o=0;omH,fromPixelsAsync:()=>cH,toPixels:()=>pH});function rx(r,t,e){if(Yn(r),t!=null&&t.length!==3)throw new Error(\"tensor3d() requires shape to have three numbers\");let n=Br(r,e);if(n.length!==3&&n.length!==1)throw new Error(\"tensor3d() requires values to be number[][][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor3d() requires shape to be provided when `values` are a flat array\");return on(r,t,n,e)}var Hu;function wE(r,t=3){if(t>4)throw new Error(\"Cannot construct Tensor with more than 4 channels from pixels.\");if(r==null)throw new Error(\"pixels passed to tf.browser.fromPixels() can not be null\");let e=!1,n=!1,o=!1,s=!1,i=!1,a=!1;if(r.data instanceof Uint8Array)e=!0;else if(typeof ImageData!=\"undefined\"&&r instanceof ImageData)n=!0;else if(typeof HTMLVideoElement!=\"undefined\"&&r instanceof HTMLVideoElement)o=!0;else if(typeof HTMLImageElement!=\"undefined\"&&r instanceof HTMLImageElement)s=!0;else if(r.getContext!=null)i=!0;else if(typeof ImageBitmap!=\"undefined\"&&r instanceof ImageBitmap)a=!0;else 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 ${r.constructor.name}`);if(Jd(Yd,k.backendName)!=null){let d={pixels:r},h={numChannels:t};return k.runKernel(Yd,d,h)}let[l,c]=o?[r.videoWidth,r.videoHeight]:[r.width,r.height],p;if(i)p=r.getContext(\"2d\").getImageData(0,0,l,c).data;else if(n||e)p=r.data;else if(s||o||a){if(Hu==null)if(typeof document==\"undefined\")if(typeof OffscreenCanvas!=\"undefined\"&&typeof OffscreenCanvasRenderingContext2D!=\"undefined\")Hu=new OffscreenCanvas(1,1).getContext(\"2d\");else throw new Error(\"Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.\");else Hu=document.createElement(\"canvas\").getContext(\"2d\",{willReadFrequently:!0});Hu.canvas.width=l,Hu.canvas.height=c,Hu.drawImage(r,0,0,l,c),p=Hu.getImageData(0,0,l,c).data}let m;if(t===4)m=new Int32Array(p);else{let d=l*c;m=new Int32Array(d*t);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(e.dtype!==\"float32\"&&e.dtype!==\"int32\")throw new Error(`Unsupported type for toPixels: ${e.dtype}. Please use float32 or int32 tensors.`);let i=await e.data(),a=e.dtype===\"float32\"?255:1,u=new Uint8ClampedArray(o*n*4);for(let l=0;l1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${f}.`)}else if(e.dtype===\"int32\"&&(f<0||f>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${f}.`);s===1?(c[0]=f*a,c[1]=f*a,c[2]=f*a):c[m]=f*a}let p=l*4;u[p+0]=Math.round(c[0]),u[p+1]=Math.round(c[1]),u[p+2]=Math.round(c[2]),u[p+3]=Math.round(c[3])}if(t!=null){t.width=o,t.height=n;let l=t.getContext(\"2d\"),c=new ImageData(u,o,n);l.putImageData(c,0,0)}return e!==r&&e.dispose(),u}var mH=T({fromPixels_:wE});var ox={};Wt(ox,{prepareAndValidate:()=>CE});function CE(r,t){let e=r.shape.length,n=t.shape.length;if(e<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${e}.`);if(n<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${n}.`);if(t.dtype!==\"int32\")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[n-1]>e)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[n-1]} vs. ${e}`);if(Jt(r.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${r.shape}.`);let o=t.shape,s=o[o.length-1],i=1;for(let p=0;pp/l),1].slice(0,s);return[u,i,l,c]}var lh={};Wt(lh,{calculateShapes:()=>IE,validateInput:()=>sx,validateUpdateShape:()=>Uv});function Uv(r,t,e){let n=t.rank>1?t.shape[t.rank-1]:1,o=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${e.shape}, indices.shape: ${t.shape}, shape: ${r}, sliceDim: ${n}, and batchDim: ${o}.`;if(e.rank1?t.shape[n-1]:1,s=e.length,i=1;for(let p=o;pdH,computeFlatOffset:()=>bH,computeOutShape:()=>gH,getNormalizedAxes:()=>xH,isSliceContinous:()=>yH,maskToAxes:()=>hH,parseSliceParams:()=>qv,sliceInfo:()=>wH,startForAxis:()=>AE,startIndicesWithElidedDims:()=>kE,stopForAxis:()=>$E,stopIndicesWithElidedDims:()=>EE,stridesForAxis:()=>_E,stridesWithElidedDims:()=>vE});var Hv=-2,fH=-1;function dH(r,t,e){let n=r.shape.length;E(n===t.length,()=>`Error in slice${n}D: Length of begin ${t} must match the rank of the array (${n}).`),E(n===e.length,()=>`Error in slice${n}D: Length of size ${e} must match the rank of the array (${n}).`);for(let o=0;o`Error in slice${n}D: begin[${o}] + size[${o}] (${t[o]+e[o]}) would overflow input.shape[${o}] (${r.shape[o]})`)}function hH(r){let t=[],e=0;for(;r>0;)r&1&&t.push(e),r/=2,e++;return t}function gH(r,t,e){let n=[];for(let o=0;o0){let f=t[0],d=e+1;c=kE(i,f,d,n,r),p=EE(a,f,d,o,r),m=vE(s,f,d,r)}else for(let f=0;f-1)s[a]=0;else{let u=NE(t,e,a),l=n[u];r&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{let u=NE(t,e,a),l=n[u];r&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let u=n[o];return i<0&&(i+=u),i=np(0,i,u-1),i}function $E(r,t,e,n,o,s){let i=t[o],a=e[o]||1;(r&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let u=n[o];return i<0&&(i+=u),a>0?i=np(0,i,u):i=np(-1,i,u-1),i}function yH(r,t,e){let n=e.length;for(let o=0;o1){n=o;break}for(let o=n+1;o0||e[o]!==r[o])return!1;return!0}function bH(r,t){let e=r.length>0?r[r.length-1]:1;for(let n=0;n{E(i!==-1,()=>\"slice() does not support negative begin indexing.\")});let s;return e==null?s=new Array(o).fill(-1):typeof e==\"number\"?s=[e,...new Array(o-1).fill(-1)]:e.lengthi>=0?i:(E(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${a}.`),r.shape[a]-n[a])),[n,s]}function wH(r,t,e,n,o,s,i,a,u){let l;if(n==null?(l=new Array(t.length),l.fill(1)):l=n,i!=null&&(i&i-1)!==0)throw new Error(\"Multiple ellipses in slice is not allowed.\");let c=!1,p={dims:l.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:e.slice(),strides:l.slice(),beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};for(let w=0;w0?0:-1,m.strides[w]>0?N:N-1];if(C&&m.strides[w]<=0)throw Error(\"only stride 1 allowed on non-range indexing.\");h=h&&m.strides[w]===1;let $=!!(m.beginMask&1<=N)throw Error(`slice index ${m.begin[w]} of dimension ${w} out of bounds.`)}else m.begin[w]=SE(m.begin[w],0,m.strides[w],N,_,A),m.end[w]=SE(m.end[w],1,m.strides[w],N,_,A);let V=m.strides[w]===1&&m.begin[w]===0&&m.end[w]===N;f=f&&V,d=d&&(w===0&&m.strides[w]===1||V)}else f=f&&m.strides[w]===1&&$,d=d&&(w===0&&m.strides[w]===1||$);let F,P=!1;if(m.beginValid&&m.endValid?(F=m.end[w]-m.begin[w],P=!0):C?(F=1,P=!0):$&&N>=0&&(m.strides[w]<0?F=-N:F=N,P=!0),P){let V;F===0||F<0!=m.strides[w]<0?V=0:V=Math.trunc(F/m.strides[w])+(F%m.strides[w]!==0?1:0),g.push(V)}else g.push(-1)}for(let w=0;w=0?x.push(g[C]):C===Hv&&x.push(1)}return{finalShapeSparse:x.filter((w,C)=>m.finalShapeGatherIndices[C]!==Hv),finalShape:x,isIdentity:f,sliceDim0:d,isSimpleSlice:h,begin:m.begin,end:m.end,strides:m.strides}}function CH(r,t){t.beginMask=0,t.endMask=0,t.shrinkAxisMask=0;let e=0;t.beginValid=r.begin!=null,t.endValid=r.end!=null,t.begin=new Array(t.dims),t.end=new Array(t.dims),t.strides=new Array(t.dims),t.finalShapeGatherIndices=[],t.finalShapeGatherIndicesSparse=[],t.inputShapeGatherIndicesSparse=new Array(t.dims);for(let n=0;n0?s[t]:s[t+1&1];{let i=r<0?n+r:r;return is[1]?s[1]:i}}var Q={};Wt(Q,{Serializable:()=>uh,SerializationMap:()=>_i,registerClass:()=>Cn});var uh=class{getClassName(){return this.constructor.className}static fromConfig(t,e){return new t(e)}},_i=class{constructor(){this.classNameMap={}}static getMap(){return _i.instance==null&&(_i.instance=new _i),_i.instance}static register(t){_i.getMap().classNameMap[t.className]=[t,t.fromConfig]}};function Cn(r){E(r.className!=null,()=>\"Class being registered does not have the static className property defined.\"),E(typeof r.className==\"string\",()=>\"className is required to be a string, but got type \"+typeof r.className),E(r.className.length>0,()=>\"Class being registered has an empty-string as its className, which is disallowed.\"),_i.register(r)}var OE={};Wt(OE,{TEST_EPSILON_FLOAT16:()=>DE,createVideoElement:()=>EH,encodeStrings:()=>FE,expectArrayBuffersEqual:()=>kH,expectArraysClose:()=>SH,expectArraysEqual:()=>NH,expectNumbersClose:()=>RE,expectPromiseToFail:()=>vH,expectValuesInRange:()=>TH,play:()=>_H,testEpsilon:()=>ix});var IH=.001,DE=.1;function SH(r,t,e){return e==null&&(e=ix()),Kv(r,t,(n,o)=>jv(n,o,e))}function ix(){return k.backend.floatPrecision()===32?IH:DE}function Kv(r,t,e){let n=!0;if((xr(r)||xr(t))&&(n=!1),xr(r)&&xr(t)&&(n=!0),n){let i=r.constructor.name,a=t.constructor.name;if(i!==a)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${a}`)}if(Array.isArray(r)&&Array.isArray(t)){let i=Br(r),a=Br(t);if(!Dn(i,a))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${a}]`)}let o=xr(r)?r:Bo(r),s=xr(t)?t:Bo(t);if(o.length!==s.length)throw new Error(`Arrays have different lengths actual: ${o.length} vs expected: ${s.length}.\nActual: ${o}.\nExpected: ${s}.`);for(let i=0;it.fail(),()=>t()),typeof expect!=\"undefined\"&&expect().nothing()}function NH(r,t){let e=typeof t==\"string\"||typeof t==\"number\"||typeof t==\"boolean\"?[t]:t;return Vo(r)||Vo(r[0])||Vo(t)||Vo(t[0])?Kv(r,e,(n,o)=>n==o):Kv(r,t,(n,o)=>jv(n,o,0))}function RE(r,t,e){if(e==null&&(e=ix()),!jv(r,t,e))throw new Error(`Numbers differ: actual === ${r}, expected === ${t}`);typeof expect!=\"undefined\"&&expect().nothing()}function jv(r,t,e){return!isFinite(r)&&!isFinite(t)?!0:!(isNaN(r)||isNaN(t)||Math.abs(r-t)>e)}function TH(r,t,e){for(let n=0;ne)throw new Error(`Value out of range:${r[n]} low: ${t}, high: ${e}`)}function kH(r,t){let e=new Float32Array(r),n=new Float32Array(t);if(e.length!==n.length)throw new Error(`Expected ArrayBuffer to be of length ${n.length}, but it was ${e.length}`);for(let o=0;o{t.addEventListener(\"loadeddata\",n=>e(t)),t.load()})}async function _H(r){await r.play(),\"requestVideoFrameCallback\"in r&&await new Promise(t=>{r.requestVideoFrameCallback(t)})}var PE=\"4.0.0\";function AH(r,t){let e=I(r,\"a\",\"add\"),n=I(t,\"b\",\"add\");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(Zn,o)}var X=T({add_:AH});function $H(r,t){let e=I(r,\"a\",\"floorDiv\"),n=I(t,\"b\",\"floorDiv\");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(ns,o)}var Yp=T({floorDiv_:$H});function DH(r,t){let e=I(r,\"a\",\"div\"),n=I(t,\"b\",\"div\");if([e,n]=Ut(e,n),e.dtype===\"int32\"&&n.dtype===\"int32\")return Yp(e,n);let o={a:e,b:n},s={};return k.runKernel(Qo,o,s)}var pt=T({div_:DH});function RH(r,t){let e=I(r,\"a\",\"mul\"),n=I(t,\"b\",\"mul\");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(hs,o)}var D=T({mul_:RH});function FH(r){let t=I(r,\"x\",\"abs\");if(t.dtype===\"complex64\"){let e={x:t};return k.runKernel(_l,e)}else{let e={x:t};return k.runKernel(ii,e)}}var Ee=T({abs_:FH});function OH(r){let e={x:I(r,\"x\",\"acos\")};return k.runKernel(oa,e)}var ax=T({acos_:OH});function PH(r){let e={x:I(r,\"x\",\"acosh\")};return k.runKernel(sa,e)}var lx=T({acosh_:PH});function LH(r){E(Array.isArray(r),()=>\"The argument passed to tf.addN() must be a list of tensors\"),E(r.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${r.length}`);let t=r.map((o,s)=>I(o,`tensors${s}`,\"addN\")),e=t[0];t.forEach(o=>{if(o.dtype!==e.dtype)throw new Error(\"All tensors passed to tf.addN() must have the same dtype\")}),t.forEach(o=>{if(!Dn(o.shape,e.shape))throw new Error(\"All tensors passed to tf.addN() must have the same shape\")});let n=t;return k.runKernel(Go,n)}var LE=T({addN_:LH});function MH(r,t=null,e=!1){let o={x:I(r,\"x\",\"all\",\"bool\")},s={axis:t,keepDims:e};return k.runKernel(ia,o,s)}var Zp=T({all_:MH});function zH(r,t=null,e=!1){let o={x:I(r,\"x\",\"any\",\"bool\")},s={axis:t,keepDims:e};return k.runKernel(aa,o,s)}var qu=T({any_:zH});function BH(r,t=0){let n={x:I(r,\"x\",\"argMax\")},o={axis:t};return k.runKernel(Wo,n,o)}var Ai=T({argMax_:BH});function VH(r,t=0){let n={x:I(r,\"x\",\"argMin\")},o={axis:t};return k.runKernel(kl,n,o)}var ux=T({argMin_:VH});function GH(r){let e={x:I(r,\"x\",\"asin\")};return k.runKernel(la,e)}var cx=T({asin_:GH});function WH(r){let e={x:I(r,\"x\",\"asinh\")};return k.runKernel(ua,e)}var px=T({asinh_:WH});function UH(r){let e={x:I(r,\"x\",\"atan\")};return k.runKernel(ca,e)}var mx=T({atan_:UH});function HH(r,t){let e=I(r,\"a\",\"atan2\"),n=I(t,\"b\",\"atan2\");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(ma,o)}var fx=T({atan2_:HH});function qH(r){let e={x:I(r,\"x\",\"atanh\")};return k.runKernel(pa,e)}var dx=T({atanh_:qH});function KH(r,t,e,n,o=\"NHWC\",s){let i=r[3],a=[...t,i],u=zE(o);return ju(r,a,e,s,n,null,null,u)}function Yv(r,t,e,n,o,s,i=\"channelsLast\"){let[a,u]=hx(t),l;if(i===\"channelsLast\")l=[a,u,r[3],r[3]];else if(i===\"channelsFirst\")l=[a,u,r[1],r[1]];else throw new Error(`Unknown dataFormat ${i}`);return ju(r,l,e,n,o,s,!1,i)}function jH(r,t,e,n,o,s,i=\"NDHWC\"){let[a,u,l]=Xv(t),c,p;if(i===\"NDHWC\")p=\"channelsLast\",c=[a,u,l,r[4],r[4]];else if(i===\"NCDHW\")p=\"channelsFirst\",c=[a,u,l,r[1],r[1]];else throw new Error(`Unknown dataFormat ${i}`);return ME(r,c,e,n,o,!1,p,s)}function ju(r,t,e,n,o,s,i=!1,a=\"channelsLast\"){let[u,l,c,p]=[-1,-1,-1,-1];if(a===\"channelsLast\")[u,l,c,p]=r;else if(a===\"channelsFirst\")[u,p,l,c]=r;else throw new Error(`Unknown dataFormat ${a}`);let[m,f,,d]=t,[h,g]=hx(e),[x,b]=hx(n),w=Jp(m,x),C=Jp(f,b),{padInfo:N,outHeight:_,outWidth:A}=ZH(o,l,c,h,g,w,C,s,a),$=i?d*p:d,F;return a===\"channelsFirst\"?F=[u,$,_,A]:a===\"channelsLast\"&&(F=[u,_,A,$]),{batchSize:u,dataFormat:a,inHeight:l,inWidth:c,inChannels:p,outHeight:_,outWidth:A,outChannels:$,padInfo:N,strideHeight:h,strideWidth:g,filterHeight:m,filterWidth:f,effectiveFilterHeight:w,effectiveFilterWidth:C,dilationHeight:x,dilationWidth:b,inShape:r,outShape:F,filterShape:t}}function ME(r,t,e,n,o,s=!1,i=\"channelsLast\",a){let[u,l,c,p,m]=[-1,-1,-1,-1,-1];if(i===\"channelsLast\")[u,l,c,p,m]=r;else if(i===\"channelsFirst\")[u,m,l,c,p]=r;else throw new Error(`Unknown dataFormat ${i}`);let[f,d,h,,g]=t,[x,b,w]=Xv(e),[C,N,_]=Xv(n),A=Jp(f,C),$=Jp(d,N),F=Jp(h,_),{padInfo:P,outDepth:V,outHeight:G,outWidth:W}=JH(o,l,c,p,x,b,w,A,$,F,a),q=s?g*m:g,H;return i===\"channelsFirst\"?H=[u,q,V,G,W]:i===\"channelsLast\"&&(H=[u,V,G,W,q]),{batchSize:u,dataFormat:i,inDepth:l,inHeight:c,inWidth:p,inChannels:m,outDepth:V,outHeight:G,outWidth:W,outChannels:q,padInfo:P,strideDepth:x,strideHeight:b,strideWidth:w,filterDepth:f,filterHeight:d,filterWidth:h,effectiveFilterDepth:A,effectiveFilterHeight:$,effectiveFilterWidth:F,dilationDepth:C,dilationHeight:N,dilationWidth:_,inShape:r,outShape:H,filterShape:t}}function XH(r,t,e,n,o){n==null&&(n=Zv(r,t,e));let s=r[0],i=r[1],a=Ku((s-t+2*n)/e+1,o),u=Ku((i-t+2*n)/e+1,o);return[a,u]}function YH(r,t,e,n,o,s){o==null&&(o=Zv(r,t,n));let i=r[0],a=r[1],u=r[2],l=Ku((i-t+2*o)/n+1,s),c=Ku((a-t+2*o)/n+1,s),p=Ku((u-t+2*o)/n+1,s);return[l,c,p,e]}function Zv(r,t,e,n=1){let o=Jp(t,n);return Math.floor((r[0]*(e-1)-e+o)/2)}function hx(r){return typeof r==\"number\"?[r,r,r]:r.length===2?[r[0],r[1],1]:r}function Xv(r){return typeof r==\"number\"?[r,r,r]:r}function Jp(r,t){return t<=1?r:r+(r-1)*(t-1)}function ZH(r,t,e,n,o,s,i,a,u){let l,c,p;if(typeof r==\"number\"){l={top:r,bottom:r,left:r,right:r,type:r===0?\"VALID\":\"NUMBER\"};let f=XH([t,e],s,n,r,a);c=f[0],p=f[1]}else if(r===\"same\"){c=Math.ceil(t/n),p=Math.ceil(e/o);let m=Math.max(0,(c-1)*n+s-t),f=Math.max(0,(p-1)*o+i-e),d=Math.floor(m/2),h=m-d,g=Math.floor(f/2),x=f-g;l={top:d,bottom:h,left:g,right:x,type:\"SAME\"}}else if(r===\"valid\")l={top:0,bottom:0,left:0,right:0,type:\"VALID\"},c=Math.ceil((t-s+1)/n),p=Math.ceil((e-i+1)/o);else if(typeof r==\"object\"){let m=u===\"channelsLast\"?r[1][0]:r[2][0],f=u===\"channelsLast\"?r[1][1]:r[2][1],d=u===\"channelsLast\"?r[2][0]:r[3][0],h=u===\"channelsLast\"?r[2][1]:r[3][1];l={top:m,bottom:f,left:d,right:h,type:m===0&&f===0&&d===0&&h===0?\"VALID\":\"EXPLICIT\"},c=Ku((t-s+m+f)/n+1,a),p=Ku((e-i+d+h)/o+1,a)}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:l,outHeight:c,outWidth:p}}function JH(r,t,e,n,o,s,i,a,u,l,c){let p,m,f,d;if(typeof r==\"number\"){p={top:r,bottom:r,left:r,right:r,front:r,back:r,type:r===0?\"VALID\":\"NUMBER\"};let g=YH([t,e,n,1],a,1,o,r,c);m=g[0],f=g[1],d=g[2]}else if(r===\"same\"){m=Math.ceil(t/o),f=Math.ceil(e/s),d=Math.ceil(n/i);let h=(m-1)*o+a-t,g=(f-1)*s+u-e,x=(d-1)*i+l-n,b=Math.floor(h/2),w=h-b,C=Math.floor(g/2),N=g-C,_=Math.floor(x/2),A=x-_;p={top:C,bottom:N,left:_,right:A,front:b,back:w,type:\"SAME\"}}else if(r===\"valid\")p={top:0,bottom:0,left:0,right:0,front:0,back:0,type:\"VALID\"},m=Math.ceil((t-a+1)/o),f=Math.ceil((e-u+1)/s),d=Math.ceil((n-l+1)/i);else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:p,outDepth:m,outHeight:f,outWidth:d}}function Ku(r,t){if(!t)return Math.trunc(r);switch(t){case\"round\":return Math.round(r);case\"ceil\":return Math.ceil(r);case\"floor\":return Math.floor(r);default:throw new Error(`Unknown roundingMode ${t}`)}}function to(r){let[t,e,n]=hx(r);return t===1&&e===1&&n===1}function Ar(r,t){return to(r)||to(t)}function zE(r){if(r===\"NHWC\")return\"channelsLast\";if(r===\"NCHW\")return\"channelsFirst\";throw new Error(`Unknown dataFormat ${r}`)}function Ie(r,t,e){if(e!=null){if(typeof t==\"string\")throw Error(`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t}.`);if(typeof t==\"number\")E(na(t),()=>`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t}.`);else if(typeof t==\"object\")t.forEach(n=>{n.forEach(o=>{E(na(o),()=>`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${o}.`)})});else throw Error(`Error in ${r}: Unknown padding parameter: ${t}`)}}function QH(r,t){let n={x:I(r,\"x\",\"reshape\",\"string_or_numeric\")},o={shape:t};return k.runKernel(di,n,o)}var R=T({reshape_:QH});function tq(r,t,e,n,o){let s=I(r,\"x\",\"avgPool\",\"float32\"),i=1;E(Ar(e,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`);let a=s,u=!1;s.rank===3&&(u=!0,a=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),E(a.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${a.rank}.`),Ie(\"avgPool\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=k.runKernel(Uo,l,c);return p=J(p,s.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Yl=T({avgPool_:tq});function eq(r,t,e,n,o,s=\"NDHWC\"){let i=I(r,\"x\",\"avgPool3d\",\"float32\"),a=i,u=!1;i.rank===4&&(u=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),E(a.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${a.rank}.`),E(s===\"NDHWC\",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Ie(\"avgPool3d\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=k.runKernel(El,l,c);return p=J(p,a.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var gx=T({avgPool3d_:eq});function rq(r,t=0){E(r.length>=1,()=>\"Pass at least one tensor to concat\");let e=ja(r,\"tensors\",\"concat\",\"string_or_numeric\");if(e[0].dtype===\"complex64\"&&e.forEach(s=>{if(s.dtype!==\"complex64\")throw new Error(`Cannot concatenate complex64 tensors with a tensor\n with dtype ${s.dtype}. `)}),e.length===1)return sn(e[0]);let n=e,o={axis:t};return k.runKernel(li,n,o)}var ne=T({concat_:rq});function nq(r){let e={x:I(r,\"x\",\"sigmoid\",\"float32\")};return k.runKernel(_s,e)}var Yr=T({sigmoid_:nq});function oq(r,t,e){let n=I(r,\"x\",\"slice\",\"string_or_numeric\");if(n.rank===0)throw new Error(\"Slicing scalar is not possible\");let o={x:n},s={begin:t,size:e};return k.runKernel(gi,o,s)}var Rt=T({slice_:oq});function sq(r){let e={x:I(r,\"x\",\"tanh\",\"float32\")};return k.runKernel(Ps,e)}var $i=T({tanh_:sq});function iq(r,t,e,n,o,s){let i=I(r,\"forgetBias\",\"basicLSTMCell\"),a=I(t,\"lstmKernel\",\"basicLSTMCell\"),u=I(e,\"lstmBias\",\"basicLSTMCell\"),l=I(n,\"data\",\"basicLSTMCell\"),c=I(o,\"c\",\"basicLSTMCell\"),p=I(s,\"h\",\"basicLSTMCell\"),m=ne([l,p],1),f=Lt(m,a),d=X(f,u),h=d.shape[0],g=d.shape[1]/4,x=[h,g],b=Rt(d,[0,0],x),w=Rt(d,[0,g],x),C=Rt(d,[0,g*2],x),N=Rt(d,[0,g*3],x),_=X(D(Yr(b),$i(w)),D(c,Yr(X(i,C)))),A=D($i(_),Yr(N));return[_,A]}var BE=T({basicLSTMCell_:iq});function aq(r,t,e){let n=I(r,\"x\",\"batchToSpaceND\"),o=t.reduce((a,u)=>a*u);E(n.rank>=1+t.length,()=>`input rank is ${n.rank} but should be > than blockShape.length ${t.length}`),E(e.length===t.length,()=>`crops.length is ${e.length} but should be equal to blockShape.length ${t.length}`),E(n.shape[0]%o===0,()=>`input tensor batch is ${n.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(\" * \")} === ${o}`);let s={x:n},i={blockShape:t,crops:e};return k.runKernel(ai,s,i)}var Zl=T({batchToSpaceND_:aq});function VE(r){let t;return r.rank===0||r.rank===1?t=R(r,[1,1,1,r.size]):r.rank===2?t=R(r,[1,1,r.shape[0],r.shape[1]]):r.rank===3?t=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]):t=r,t}function lq(r,t,e,n,o,s){s==null&&(s=.001);let i=I(r,\"x\",\"batchNorm\"),a=I(t,\"mean\",\"batchNorm\"),u=I(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=I(o,\"scale\",\"batchNorm\"));let c;n!=null&&(c=I(n,\"offset\",\"batchNorm\")),E(a.rank===u.rank,()=>\"Batch normalization gradient requires mean and variance to have equal ranks.\"),E(c==null||a.rank===c.rank,()=>\"Batch normalization gradient requires mean and offset to have equal ranks.\"),E(l==null||a.rank===l.rank,()=>\"Batch normalization gradient requires mean and scale to have equal ranks.\");let m={x:VE(i),scale:l,offset:c,mean:a,variance:u},f={varianceEpsilon:s},d=k.runKernel(os,m,f);return R(d,i.shape)}var Di=T({batchNorm_:lq});function uq(r,t,e,n,o,s){let i=I(r,\"x\",\"batchNorm\"),a=I(t,\"mean\",\"batchNorm\"),u=I(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=I(o,\"scale\",\"batchNorm\"));let c;return n!=null&&(c=I(n,\"offset\",\"batchNorm\")),E(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),E(a.rank===2||a.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${a.rank}.`),E(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${u.rank}.`),l!=null&&E(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${l.rank}.`),c!=null&&E(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${c.rank}.`),Di(i,a,u,c,l,s)}var xx=T({batchNorm2d_:uq});function cq(r,t,e,n,o,s){let i=I(r,\"x\",\"batchNorm\"),a=I(t,\"mean\",\"batchNorm\"),u=I(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=I(o,\"scale\",\"batchNorm\"));let c;return n!=null&&(c=I(n,\"offset\",\"batchNorm\")),E(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),E(a.rank===3||a.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${a.rank}.`),E(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${u.rank}.`),l!=null&&E(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${l.rank}.`),c!=null&&E(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${c.rank}.`),Di(i,a,u,c,l,s)}var yx=T({batchNorm3d_:cq});function pq(r,t,e,n,o,s){let i=I(r,\"x\",\"batchNorm\"),a=I(t,\"mean\",\"batchNorm\"),u=I(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=I(o,\"scale\",\"batchNorm\"));let c;return n!=null&&(c=I(n,\"offset\",\"batchNorm\")),E(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),E(a.rank===4||a.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${a.rank}.`),E(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${u.rank}.`),l!=null&&E(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${l.rank}.`),c!=null&&E(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${c.rank}.`),Di(i,a,u,c,l,s)}var bx=T({batchNorm4d_:pq});function mq(r,t,e){let n=I(r,\"x\",\"bincount\"),o=I(t,\"weights\",\"bincount\");E(n.dtype===\"int32\",()=>`Error in bincount: input dtype must be int32, but got ${n.dtype}`),E(e>=0,()=>`size must be non-negative, but got ${e}.`),E(o.size===n.size||o.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${n.shape}, weights shape: ${o.shape}.`);let s={x:n,weights:o},i={size:e};return k.runKernel(up,s,i)}var wx=T({bincount_:mq});function fq(r,t){let e=I(r,\"s0\",\"broadcastArgs\",\"int32\"),n=I(t,\"s1\",\"broadcastArgs\",\"int32\");if(e.rank!==1)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${e.rank}`);if(n.rank!==1)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${n.rank}`);let o={s0:e,s1:n};return k.runKernel(cp,o)}var GE=T({broadcastArgs_:fq});function dq(r,t){let e=I(r,\"broadcastTo\",\"x\"),n=e.shape;if(t.some(l=>!(l>0)||l%1!==0))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengthe.rank){let l=e.shape.slice();for(;l.length=0;l--)if(o[l]===t[l])s[l]=1;else if(e.shape[l]!==1)throw new Error(`broadcastTo(): [${n}] cannot be broadcast to [${t}].`);if(s.map((l,c)=>l>1?c:-1).filter(l=>l>=0).length===0)return sn(e);let a={x:e},u={reps:s};return k.runKernel(Jn,a,u)}var Ri=T({broadcastTo_:dq});function hq(r){let e={x:I(r,\"x\",\"ceil\",\"float32\")};return k.runKernel(qo,e)}var Cx=T({ceil_:hq});function xo(r,t,e){let n={shape:r,value:t,dtype:e};return k.runKernel(Dl,{},n)}function gq(r,t,e){let n=I(r,\"x\",\"clipByValue\");if(E(t<=e,()=>`Error in clip: min (${t}) must be less than or equal to max (${e}).`),t===e)return xo(n.shape,t,n.dtype);let o={x:n},s={clipValueMin:t,clipValueMax:e};return k.runKernel(uo,o,s)}var Cr=T({clipByValue_:gq});function xq(r){return ne(r,0)}var Ix=T({concat1d_:xq});function yq(r,t){return ne(r,t)}var Sx=T({concat2d_:yq});function bq(r,t){return ne(r,t)}var vx=T({concat3d_:bq});function wq(r,t){return ne(r,t)}var Nx=T({concat4d_:wq});function Cq(r,t,e,n,o=\"NHWC\",s=[1,1],i){let a=I(r,\"x\",\"conv2d\",\"float32\"),u=I(t,\"filter\",\"conv2d\",\"float32\"),l=a,c=!1;a.rank===3&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),E(l.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${l.rank}.`),E(u.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${u.rank}.`),Ie(\"conv2d\",n,i);let p=o===\"NHWC\"?l.shape[3]:l.shape[1];E(p===u.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${u.shape[2]}.`),E(Ar(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=k.runKernel(Ko,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var In=T({conv2d_:Cq});function Iq(r,t,e,n,o=\"NWC\",s=1,i){let a=I(r,\"x\",\"conv1d\"),u=I(t,\"filter\",\"conv1d\"),l=a,c=!1;a.rank===2&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1]])),E(l.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${l.rank}.`),E(u.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${u.rank}.`),Ie(\"conv1d\",n,i),E(l.shape[2]===u.shape[1],()=>`Error in conv1d: depth of input (${l.shape[2]}) must match input depth for filter ${u.shape[1]}.`),E(Ar(e,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${e} and dilation '${s}'`),E(o===\"NWC\",()=>`Error in conv1d: got dataFormat of ${o} but only NWC is currently supported.`);let p=R(u,[1,u.shape[0],u.shape[1],u.shape[2]]),m=R(l,[l.shape[0],1,l.shape[1],l.shape[2]]),g=In(m,p,[1,e],n,\"NHWC\",[1,s],i);return c?R(g,[g.shape[2],g.shape[3]]):R(g,[g.shape[0],g.shape[2],g.shape[3]])}var Qp=T({conv1d_:Iq});function Sq(r,t,e,n,o,s=\"NHWC\",i){E(r.length===t.rank,()=>`Length of inShape (${r.length}) and rank of dy (${t.rank}) must match`);let a=r,u=t,l=!1;t.rank===3&&(l=!0,u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]),a=[1,r[0],r[1],r[2]]),E(a.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${a.length}.`),E(u.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${u.rank}`),E(e.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${e.rank}`);let c=s===\"NHWC\"?a[3]:a[1],p=s===\"NHWC\"?u.shape[3]:u.shape[1];E(c===e.shape[2],()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${e.shape[2]}.`),E(p===e.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${e.shape[3]}.`),Ie(\"conv2dDerInput\",o,i);let m={dy:u,filter:e},f={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,inputShape:a},d=k.runKernel(jo,m,f);return l?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var tm=T({conv2DBackpropInput_:Sq});function vq(r,t,e,n,o,s){let i=I(r,\"x\",\"conv2dTranspose\"),a=I(t,\"filter\",\"conv2dTranspose\");return tm(e,i,a,n,o,\"NHWC\",s)}var em=T({conv2dTranspose_:vq});function Nq(r,t,e,n,o=\"NDHWC\",s=[1,1,1]){let i=I(r,\"x\",\"conv3d\"),a=I(t,\"filter\",\"conv3d\"),u=i,l=!1;i.rank===4&&(l=!0,u=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),E(u.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${u.rank}.`),E(a.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${a.rank}.`),E(u.shape[4]===a.shape[3],()=>`Error in conv3d: depth of input (${u.shape[4]}) must match input depth for filter ${a.shape[3]}.`),E(Ar(e,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),E(o===\"NDHWC\",()=>`Error in conv3d: got dataFormat of ${o} but only NDHWC is currently supported.`);let c={x:u,filter:a},p={strides:e,pad:n,dataFormat:o,dilations:s},m=k.runKernel(Al,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Tx=T({conv3d_:Nq});function Tq(r,t,e,n,o){E(r.length===t.rank,()=>`Length of inShape (${r.length}) and rank of dy (${t.rank}) must match`);let s=r,i=t,a=!1;t.rank===4&&(a=!0,i=R(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,r[0],r[1],r[2],r[3]]);let u=s[4],l=i.shape[4];E(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),E(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),E(e.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${e.rank}`),E(u===e.shape[3],()=>`Error in conv3dDerInput: depth of input (${u}) must match input depth for filter ${e.shape[3]}.`),E(l===e.shape[4],()=>`Error in conv3dDerInput: depth of output (${l}) must match output depth for filter ${e.shape[4]}.`);let c={dy:i,filter:e},p={pad:o,strides:n,inputShape:s},m=k.runKernel(dp,c,p);return a?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var kx=T({conv3DBackpropInput_:Tq});function kq(r,t,e,n,o){let s=I(r,\"x\",\"conv3dTranspose\"),i=I(t,\"filter\",\"conv3dTranspose\");return kx(e,s,i,n,o)}var Ex=T({conv3dTranspose_:kq});function Eq(r){let e={x:I(r,\"x\",\"cos\",\"float32\")};return k.runKernel(Xo,e)}var Jl=T({cos_:Eq});function _q(r){let e={x:I(r,\"x\",\"cosh\",\"float32\")};return k.runKernel(Yo,e)}var rm=T({cosh_:_q});function Aq(r,t=0,e=!1,n=!1){let s={x:I(r,\"x\",\"cumprod\")},i={axis:t,exclusive:e,reverse:n};return k.runKernel(fa,s,i)}var Xu=T({cumprod_:Aq});function $q(r,t=0,e=!1,n=!1){let s={x:I(r,\"x\",\"cumsum\")},i={axis:t,exclusive:e,reverse:n};return k.runKernel(Zo,s,i)}var nm=T({cumsum_:$q});function Dq(r,t,e,n=!1){let o=I(r,\"x\",\"denseBincount\"),s=I(t,\"weights\",\"denseBincount\");E(o.dtype===\"int32\",()=>`Error in denseBincount: input dtype must be int32, but got ${o.dtype}`),E(o.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${o.rank}.`),E(e>=0,()=>`size must be non-negative, but got ${e}.`),E(s.size===o.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${o.shape}, weights shape: ${s.shape}.`);let i={x:o,weights:s},a={size:e,binaryOutput:n};return k.runKernel(hp,i,a)}var ch=T({denseBincount_:Dq});function Rq(r,t,e=\"NHWC\"){let n=I(r,\"x\",\"depthToSpace\",\"float32\"),o=e===\"NHWC\"?n.shape[1]:n.shape[2],s=e===\"NHWC\"?n.shape[2]:n.shape[3],i=e===\"NHWC\"?n.shape[3]:n.shape[1];E(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),E(o*t>=0,()=>`Negative dimension size caused by overflow when multiplying\n ${o} and ${t} for depthToSpace with input shape\n ${n.shape}`),E(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying\n ${s} and ${t} for depthToSpace with input shape\n ${n.shape}`),E(i%(t*t)===0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${n.shape}`);let a={x:n},u={blockSize:t,dataFormat:e};return k.runKernel(ha,a,u)}var _x=T({depthToSpace_:Rq});function Fq(r,t,e,n,o=\"NHWC\",s=[1,1],i){let a=I(r,\"x\",\"depthwiseConv2d\",\"float32\"),u=I(t,\"filter\",\"depthwiseConv2d\",\"float32\"),l=a,c=!1;a.rank===3&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),E(l.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${l.rank}.`),E(u.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${u.rank}.`);let p=o===\"NHWC\"?l.shape[3]:l.shape[1];E(p===u.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${p}) must match the inChannels dimension in filter ${u.shape[2]}.`),Ie(\"depthwiseConv2d\",n,i);let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=k.runKernel(Jo,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Fi=T({depthwiseConv2d_:Fq});function Oq(r){let e={x:I(r,\"x\",\"diag\")};return k.runKernel(yp,e)}var WE=T({diag_:Oq});function Pq(r,t,e,n,o=[1,1],s=\"NHWC\"){let i=I(r,\"x\",\"dilation2d\"),a=I(t,\"filter\",\"dilation2d\");E(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),E(a.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${a.rank}.`),E(s===\"NHWC\",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let u=i,l=!1;i.rank===3&&(u=R(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=!0);let c={x:u,filter:a},p={strides:e,pad:n,dilations:o},m=k.runKernel($l,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Ax=T({dilation2d_:Pq});function Lq(r,t){let e=I(r,\"a\",\"equal\",\"string_or_numeric\"),n=I(t,\"b\",\"equal\",\"string_or_numeric\");[e,n]=Ut(e,n),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(xa,o)}var $r=T({equal_:Lq});function Mq(r,t,e){let n=I(t,\"a\",\"where\"),o=I(e,\"b\",\"where\"),s=I(r,\"condition\",\"where\",\"bool\"),i=Pt(Pt(s.shape,n.shape),o.shape),a=Ri(s,i),u=Ri(n,i),l=Ri(o,i),c={condition:a,t:u,e:l};return k.runKernel(hi,c)}var _e=T({where_:Mq});function zq(r){let e={x:I(r,\"x\",\"zerosLike\")};return k.runKernel(wi,e)}var It=T({zerosLike_:zq});function Bq(r,t){let e=I(r,\"a\",\"div\"),n=I(t,\"b\",\"div\");[e,n]=Ut(e,n);let o=pt(e,n),s=It(o),i=$r(n,s);return _e(i,s,o)}var $x=T({divNoNan_:Bq});function Vq(r,t){let e=I(r,\"t1\",\"dot\"),n=I(t,\"t2\",\"dot\");E((e.rank===1||e.rank===2)&&(n.rank===1||n.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${e.rank} and ${n.rank}.`);let o=e.rank===1?e.size:e.shape[1],s=n.rank===1?n.size:n.shape[0];if(E(o===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${o} and ${s}.`),e.rank===1&&n.rank===1){let i=R(e,[1,-1]),a=R(n,[-1,1]),u=Lt(i,a);return R(u,[])}else if(e.rank===1&&n.rank===2){let i=R(e,[1,-1]),a=R(n,[n.shape[0],n.shape[1]]),u=Lt(i,a);return R(u,[u.size])}else if(e.rank===2&&n.rank===1){let i=R(n,[-1,1]),a=Lt(e,i);return R(a,[a.size])}else{let i=R(n,[n.shape[0],n.shape[1]]);return Lt(e,i)}}var Dx=T({dot_:Vq});function Gq(r,...t){let e=t.map((o,s)=>I(o,`tensors${s}`,\"einsum\")),n={equation:r};return k.runKernel(bp,e,n)}var UE=T({einsum_:Gq});function Wq(r){let e={x:I(r,\"x\",\"elu\",\"float32\")};return k.runKernel(ts,e)}var Oi=T({elu_:Wq});function Uq(r){let t=I(r,\"x\",\"erf\");E(t.dtype===\"int32\"||t.dtype===\"float32\",()=>\"Input dtype must be `int32` or `float32`.\"),t.dtype===\"int32\"&&(t=J(t,\"float32\"));let e={x:t};return k.runKernel(ga,e)}var Rx=T({erf_:Uq});function Jv(r,t){for(let e=0;er[s]);return[e,o]}function yo(r,t){let e=t.map(n=>1);return HE(r,e,t)}function Hq(r,t,e){E(Jv(t,e),()=>`${r} supports only inner-most axes for now. Got axes ${t} and rank-${e} input.`)}function t0(r,t){if(Jv(r,t))return null;let e=[];for(let n=0;ne.push(n)),e}function ph(r){return r.map((t,e)=>[e,t]).sort((t,e)=>t[1]-e[1]).map(t=>t[0])}function qq(r,t){let e=[];for(let n=t-r;n\"Axis must be <= rank of the tensor\");let n={input:e},o={dim:t};return k.runKernel(ui,n,o)}var rr=T({expandDims_:rK});function nK(r){let e={x:I(r,\"x\",\"expm1\")};return k.runKernel(ya,e)}var Ox=T({expm1_:nK});function oK(r,t){let e=I(r,\"x\",\"tile\",\"string_or_numeric\");E(e.rank===t.length,()=>`Error in transpose: rank of input ${e.rank} must match length of reps ${t}.`);let n={x:e},o={reps:t};return k.runKernel(Jn,n,o)}var Dr=T({tile_:oK});function sK(r,t,e,n=\"float32\"){t==null&&(t=r);let o=wt([r,t],n),s=r<=t?r:t;for(let a=0;a`Error in localResponseNormalization: x must be rank 3 or 4 but got\n rank ${s.rank}.`),E(na(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,a=!1;s.rank===3&&(a=!0,i=R(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let u={x:i},l={depthRadius:t,bias:e,alpha:n,beta:o},c=k.runKernel(Rl,u,l);return a?R(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var zx=T({localResponseNormalization_:gK});function xK(r){let e={x:I(r,\"x\",\"log\",\"float32\")};return k.runKernel(as,e)}var Sr=T({log_:xK});function yK(r){let e={x:I(r,\"x\",\"log1p\")};return k.runKernel(ka,e)}var tu=T({log1p_:yK});function bK(r){return E(oi(r),()=>\"The f passed in grad(f) must be a function\"),(t,e)=>{let n=I(t,\"x\",\"tf.grad\",\"string_or_numeric\"),o=e!=null?I(e,\"dy\",\"tf.grad\"):null;return k.tidy(()=>{let{value:s,grads:i}=k.gradients(()=>r(n),[n],o);return o!=null&&$e(s.shape,o.shape,\"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)\"),Vx(i),i[0]})}}function wK(r){return E(oi(r),()=>\"The f passed in grads(f) must be a function\"),(t,e)=>{E(Array.isArray(t),()=>\"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s\");let n=ja(t,\"args\",\"tf.grads\",\"string_or_numeric\"),o=e!=null?I(e,\"dy\",\"tf.grads\"):null;return k.tidy(()=>{let{value:s,grads:i}=k.gradients(()=>r(...n),n,o);return o!=null&&$e(s.shape,o.shape,\"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])\"),Vx(i),i})}}function CK(r){return E(oi(r),()=>\"The f passed in valueAndGrad(f) must be a function\"),(t,e)=>{E(t instanceof Ft,()=>\"The x passed in valueAndGrad(f)(x) must be a tensor\"),E(e==null||e instanceof Ft,()=>\"The dy passed in valueAndGrad(f)(x, dy) must be a tensor\");let{grads:n,value:o}=k.gradients(()=>r(t),[t],e);return Vx(n),{grad:n[0],value:o}}}function IK(r){return E(oi(r),()=>\"The f passed in valueAndGrads(f) must be a function\"),(t,e)=>{E(Array.isArray(t)&&t.every(o=>o instanceof Ft),()=>\"The args passed in valueAndGrads(f)(args) must be array of tensors\"),E(e==null||e instanceof Ft,()=>\"The dy passed in valueAndGrads(f)(args, dy) must be a tensor\");let n=k.gradients(()=>r(...t),t,e);return e!=null&&$e(n.value.shape,e.shape,\"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])\"),Vx(n.grads),n}}function Bx(r,t){E(oi(r),()=>\"The f passed in variableGrads(f) must be a function\"),E(t==null||Array.isArray(t)&&t.every(l=>l instanceof Ka),()=>\"The varList passed in variableGrads(f, varList) must be an array of variables\");let e=t!=null;if(!e){t=[];for(let l in k.registeredVariables)t.push(k.registeredVariables[l])}let n=e?t.filter(l=>!l.trainable):null,o=t.length;t=t.filter(l=>l.trainable),E(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${o} variables is trainable.`);let s=!0,{value:i,grads:a}=k.gradients(r,t,null,s);E(a.some(l=>l!=null),()=>\"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().\"),E(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let u={};return t.forEach((l,c)=>{a[c]!=null&&(u[l.name]=a[c])}),n!=null&&n.forEach(l=>u[l.name]=null),{value:i,grads:u}}function un(r){return k.customGrad(r)}function Vx(r){if(r.filter(e=>e==null).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 SK(r){let e={x:I(r,\"x\",\"softplus\")};return k.runKernel(Va,e)}var zs=T({softplus_:SK});function vK(r){let t=I(r,\"x\",\"logSigmoid\");return un(n=>({value:Ht(zs(Ht(n))),gradFunc:i=>D(i,Yr(Ht(n)))}))(t)}var Gx=T({logSigmoid_:vK});function NK(r,t){let e=I(r,\"a\",\"sub\"),n=I(t,\"b\",\"sub\");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(Fs,o)}var ct=T({sub_:NK});function TK(r,t=-1){let e=I(r,\"logits\",\"logSoftmax\");if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and axis was ${t}`);return un((o,s)=>{let a=Ir(o,t,!0),u=ct(o,a),l=ct(J(u,\"float32\"),Sr(ft(er(u),t,!0)));return s([l]),{value:l,gradFunc:(p,m)=>{let[f]=m,d=!0,h=er(f);return ct(p,D(ft(p,t,d),h))}}})(e)}var sm=T({logSoftmax_:TK});function kK(r,t=null,e=!1){let n=I(r,\"x\",\"logSumExp\"),o=lr(t,n.shape),s=Ir(n,o,!0),i=ct(n,s),a=er(i),u=ft(a,o),l=Sr(u),c=X(R(s,l.shape),l);if(e){let p=yo(c.shape,o);return R(c,p)}return c}var im=T({logSumExp_:kK});function EK(r,t){let e=I(r,\"a\",\"logicalAnd\",\"bool\"),n=I(t,\"b\",\"logicalAnd\",\"bool\");Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Ea,o)}var Rr=T({logicalAnd_:EK});function _K(r){let e={x:I(r,\"x\",\"logicalNot\",\"bool\")};return k.runKernel(_a,e)}var eu=T({logicalNot_:_K});function AK(r,t){let e=I(r,\"a\",\"logicalOr\",\"bool\"),n=I(t,\"b\",\"logicalOr\",\"bool\");Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Aa,o)}var am=T({logicalOr_:AK});function $K(r,t){let e=I(r,\"a\",\"logicalXor\",\"bool\"),n=I(t,\"b\",\"logicalXor\",\"bool\");return Pt(e.shape,n.shape),Rr(am(r,t),eu(Rr(r,t)))}var Wx=T({logicalXor_:$K});var Ux=2147483648;function DK(r,t,e=\"left\"){let n=I(r,\"sortedSequence\",\"searchSorted\"),o=I(t,\"values\",\"searchSorted\"),s=n.shape[n.shape.length-1],i=o.shape[o.shape.length-1],a=R(n,[-1,s]),u=R(o,[-1,i]);if(a.rank<2)throw new Error(\"Sorted input argument must be at least 2-dimensional\");if(a.shape[0]!==u.shape[0])throw new Error(\"Leading dimension of 'sortedSequence' and 'values' must match.\");if(Jt(u.shape)>=Ux)throw new Error(`values tensor size must less than ${Ux}`);if(a.shape[1]>=Ux)throw new Error(`trailing dim_size must less than ${Ux} for int32 output type, was ${a.shape[1]}`);let l={sortedSequence:a,values:u},c={side:e};return k.runKernel(Pp,l,c)}var mh=T({searchSorted_:DK});function jE(r,t){return mh(r,t,\"left\")}function RK(r,t,e,n,o){let s=I(r,\"x\",\"maxPool\"),i=1,a=s,u=!1;s.rank===3&&(u=!0,a=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),E(a.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.rank}.`),E(Ar(e,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`),Ie(\"maxPool\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=k.runKernel(cs,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var ru=T({maxPool_:RK});function FK(r,t=[1,1,1],e,n,o,s=\"NDHWC\"){let i=I(r,\"x\",\"maxPool3d\"),a=i,u=!1;i.rank===4&&(u=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),E(a.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${a.rank}.`),E(s===\"NDHWC\",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Ie(\"maxPool3d\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=k.runKernel(Fl,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Hx=T({maxPool3d_:FK});function OK(r,t,e,n,o=!1){let i={x:I(r,\"x\",\"maxPoolWithArgmax\")},a={filterSize:t,strides:e,pad:n,includeBatchInIndex:o},u=k.runKernel(Ep,i,a);return{result:u[0],indexes:u[1]}}var XE=T({maxPoolWithArgmax_:OK});function PK(r,t){let e=I(r,\"a\",\"maximum\"),n=I(t,\"b\",\"maximum\");[e,n]=Ut(e,n),e.dtype===\"bool\"&&(e=J(e,\"int32\"),n=J(n,\"int32\")),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(us,o)}var Sn=T({maximum_:PK});function LK(r,t=null,e=!1){let o={x:I(r,\"x\",\"mean\")},s={axis:t,keepDims:e};return k.runKernel(ps,o,s)}var ve=T({mean_:LK});function Ne(r,t=\"float32\"){if(t===\"complex64\"){let n=Ne(r,\"float32\"),o=Ne(r,\"float32\");return wn(n,o)}let e=ip(Jt(r),t);return k.makeTensor(e,r,t)}function cr(r,t=\"float32\"){if(t===\"complex64\"){let n=cr(r,\"float32\"),o=Ne(r,\"float32\");return wn(n,o)}let e=Wd(Jt(r),t);return k.makeTensor(e,r,t)}function YE(r,t,{indexing:e=\"xy\"}={}){if(e!==\"xy\"&&e!==\"ij\")throw new TypeError(`${e} is not a valid third argument to meshgrid`);if(r===void 0)return[];let n=I(r,\"x\",\"meshgrid\",r instanceof Ft?r.dtype:\"float32\");if(t===void 0)return[n];let o=I(t,\"y\",\"meshgrid\",t instanceof Ft?t.dtype:\"float32\"),s=Jt(n.shape),i=Jt(o.shape);return e===\"xy\"?(n=R(n,[1,-1]),o=R(o,[-1,1]),[Lt(cr([i,1],n.dtype),n),Lt(o,cr([1,s],o.dtype))]):(n=R(n,[-1,1]),o=R(o,[1,-1]),[Lt(n,cr([1,i],n.dtype)),Lt(cr([s,1],o.dtype),o)])}function MK(r,t){let e=I(r,\"a\",\"minimum\"),n=I(t,\"b\",\"minimum\");[e,n]=Ut(e,n),e.dtype===\"bool\"&&(e=J(e,\"int32\"),n=J(n,\"int32\")),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(fs,o)}var Mi=T({minimum_:MK});function zK(r,t,e){E(e===\"reflect\"||e===\"symmetric\",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${e}.`);let n=I(r,\"x\",\"mirrorPad\");if(n.rank===0)throw new Error(\"mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad\");E(t.length===n.rank,()=>`Padding doesn't match input. Must be ${n.rank}. Got ${t.length}.`);let o=e===\"reflect\"?1:0;for(let a=0;a\"Invalid number of paddings. Must be length of 2 each.\"),E(t[a][0]>=0&&t[a][0]<=n.shape[a]-o&&t[a][1]>=0&&t[a][1]<=n.shape[a]-o,()=>`Padding in dimension ${a} cannot be greater than or equal to ${n.shape[a]-o} or less than 0 for input of shape ${n.shape}`);let s={paddings:t,mode:e},i={x:n};return k.runKernel(ds,i,s)}var qx=T({mirrorPad_:zK});function BK(r,t){let e=I(r,\"a\",\"mod\"),n=I(t,\"b\",\"mod\");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel($a,o)}var Kx=T({mod_:BK});function VK(r,t=null,e=!1){r=I(r,\"x\",\"moments\");let n=lr(t,r.shape),o=ve(r,n,e),s=o.shape;e||(s=yo(o.shape,n));let i=Mt(ct(J(r,\"float32\"),R(o,s))),a=ve(i,n,e);return{mean:o,variance:a}}var Zu=T({moments_:VK});function GK(r,t,e,n){let o=I(t,\"data\",\"multiRNNCell\"),s=ja(e,\"c\",\"multiRNNCell\"),i=ja(n,\"h\",\"multiRNNCell\"),a=o,u=[];for(let p=0;p2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);e=e||Math.random();let u={logits:i===1?R(o,[1,-1]):o},l={numSamples:t,seed:e,normalized:n},c=k.runKernel(_p,u,l);return i===1?R(c,[c.size]):c}var JE=T({multinomial_:WK});function UK(r,t){let e=I(r,\"a\",\"notEqual\",\"string_or_numeric\"),n=I(t,\"b\",\"notEqual\",\"string_or_numeric\");[e,n]=Ut(e,n),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Da,o)}var Bs=T({notEqual_:UK});function HK(r){let e={x:I(r,\"x\",\"onesLike\")};return k.runKernel(mi,e)}var yr=T({onesLike_:HK});function qK(r,t){let e=I(r,\"v1\",\"outerProduct\"),n=I(t,\"v2\",\"outerProduct\");E(e.rank===1&&n.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${e.rank} and ${n.rank}.`);let o=R(e,[-1,1]),s=R(n,[1,-1]);return Lt(o,s)}var QE=T({outerProduct_:qK});function KK(r,t,e=0){let n=I(r,\"x\",\"pad\");if(n.rank===0)throw new Error(\"pad(scalar) is not defined. Pass non-scalar to pad\");let o={paddings:t,constantValue:e},s={x:n};return k.runKernel(xs,s,o)}var cn=T({pad_:KK});function jK(r,t,e=0){return E(t.length===2,()=>\"Invalid number of paddings. Must be length of 2.\"),cn(r,[t],e)}var t_=T({pad1d_:jK});function XK(r,t,e=0){return E(t.length===2&&t[0].length===2&&t[1].length===2,()=>\"Invalid number of paddings. Must be length of 2 each.\"),cn(r,t,e)}var e_=T({pad2d_:XK});function YK(r,t,e=0){return E(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>\"Invalid number of paddings. Must be length of 2 each.\"),cn(r,t,e)}var r_=T({pad3d_:YK});function ZK(r,t,e=0){return E(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>\"Invalid number of paddings. Must be length of 2 each.\"),cn(r,t,e)}var n_=T({pad4d_:ZK});function JK(r,t,e){let n=I(r,\"x\",\"spaceToBatchND\");E(n.rank>=1+t.length,()=>`input rank ${n.rank} should be > than [blockShape] ${t.length}`),E(e.length===t.length,()=>`paddings.shape[0] ${e.length} must be equal to [blockShape] ${t.length}`),E(n.shape.reduce((i,a,u)=>u>0&&u<=t.length?i&&(a+e[u-1][0]+e[u-1][1])%t[u-1]===0:i,!0),()=>`input spatial dimensions ${n.shape.slice(1)} with paddings ${e.toString()} must be divisible by blockShapes ${t.toString()}`);let o={x:n},s={blockShape:t,paddings:e};return k.runKernel(xi,o,s)}var nu=T({spaceToBatchND_:JK});function QK(r,t,e,n,o,s,i){o==null&&(o=[1,1]),s==null&&(s=1),n===0&&(n=\"valid\");let a=I(r,\"x\",\"maxPool\"),u=a,l=!1;a.rank===3&&(l=!0,u=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),E(Ar(s,o),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`);let c=Yv(u.shape,t,s,o,n),p=[c.dilationHeight,c.dilationWidth],m;n===\"same\"?m=ej([c.filterHeight,c.filterWidth],p):m=[[0,0],[0,0]];let f=p[0]===1&&p[1]===1,[d,h]=tj([c.inHeight,c.inWidth],p,m),g=f?n:\"valid\",x=f?u:nu(u,p,d),w=(e===\"avg\"?()=>Yl(x,t,s,g,i):()=>ru(x,t,s,g,i))(),C=f?w:Zl(w,p,h);return l?R(C,[C.shape[1],C.shape[2],C.shape[3]]):C}function tj(r,t,e){let n=e.map(c=>c[0]),o=e.map(c=>c[1]),s=r.concat(n,o),i=t.map((c,p)=>(c-s[p]%c)%c),a=o.map((c,p)=>c+i[p]),u=t.map((c,p)=>[n[p],a[p]]),l=t.map((c,p)=>[0,i[p]]);return[u,l]}function ej(r,t){let n=r.map((i,a)=>i+(i-1)*(t[a]-1)).map(i=>i-1),o=n.map(i=>Math.floor(i/2)),s=n.map((i,a)=>i-o[a]);return n.map((i,a)=>[o[a],s[a]])}var jx=T({pool_:QK});function rj(r,t){let e=I(r,\"x\",\"prelu\"),n=I(t,\"alpha\",\"prelu\"),o={x:e,alpha:n};return k.runKernel(bs,o)}var ou=T({prelu_:rj});function nj(r,t=null,e=!1){let n=I(r,\"x\",\"prod\");n.dtype===\"bool\"&&(n=J(n,\"int32\"));let o={x:n},s={axis:t,keepDims:e};return k.runKernel(ws,o,s)}var Xx=T({prod_:nj});function oj(r,t,e,n){let o=r.map((c,p)=>I(c,`tensors${p}`,\"raggedGather\",\"int32\")),s=I(t,\"paramsDenseValues\",\"raggedGather\"),i=I(e,\"indices\",\"raggedGather\",\"int32\"),a={paramsNestedSplits:o,paramsDenseValues:s,indices:i},u={outputRaggedRank:n},l=k.runKernel(Ap,a,u);return{outputNestedSplits:l.slice(0,l.length-1),outputDenseValues:l[l.length-1]}}var o_=T({raggedGather_:oj});function sj(r,t,e){let n=I(r,\"starts\",\"raggedRange\"),o=I(t,\"limits\",\"raggedRange\",n.dtype),s=I(e,\"deltas\",\"raggedRange\",n.dtype),i={starts:n,limits:o,deltas:s},a=k.runKernel($p,i);return{rtNestedSplits:a[0],rtDenseValues:a[1]}}var s_=T({raggedRange_:sj});function ij(r,t,e,n,o){let s=I(r,\"shape\",\"raggedTensorToTensor\",\"int32\"),i=I(t,\"values\",\"raggedTensorToTensor\"),a=I(e,\"defaultValue\",\"raggedTensorToTensor\",i.dtype),u=n.map((p,m)=>I(p,`tensors${m}`,\"raggedTensorToTensor\",\"int32\")),l={shape:s,values:i,defaultValue:a,rowPartitionTensors:u},c={rowPartitionTypes:o};return k.runKernel(Dp,l,c)}var i_=T({raggedTensorToTensor_:ij});function aj(r,t,e){let n=Jt(r),o=null;if(e==null||e===\"float32\")o=new Float32Array(n);else if(e===\"int32\")o=new Int32Array(n);else if(e===\"bool\")o=new Uint8Array(n);else throw new Error(`Unknown data type ${e}`);for(let s=0;s=1||i===0);let a=Math.sqrt(-2*Math.log(i)/i);t=this.mean+this.stdDev*o*a,e=this.mean+this.stdDev*s*a,(!this.truncated||this.isValidTruncated(t))&&(n=!0)}return(!this.truncated||this.isValidTruncated(e))&&(this.nextVal=this.convertValue(e)),this.convertValue(t)}convertValue(t){return this.dtype==null||this.dtype===\"float32\"?t:Math.round(t)}isValidTruncated(t){return t<=this.upper&&t>=this.lower}},Zx=class{constructor(t,e,n,o){this.alpha=t,this.beta=1/e,this.dtype=n;let s=o||Math.random();this.randu=Qx.alea(s.toString()),this.randn=new Qu(0,1,n,!1,this.randu()),t<1?this.d=t+2/3:this.d=t-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let t,e,n,o,s,i;for(;;){do o=this.randn.nextValue(),i=1+this.c*o;while(i<=0);if(i*=i*i,t=o*o,e=1-.331*t*t,n=.5*t+this.d*(1-i+Math.log(i)),s=this.randu(),sthis.dtype==null||this.dtype===\"float32\",this.min=t,this.range=e-t,this.dtype=n,o==null&&(o=Math.random()),typeof o==\"number\"&&(o=o.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${t} - ${e} <= 1 and dtype is not float`);this.random=Qx.alea(o)}convertValue(t){return this.canReturnFloat()?t:Math.round(t)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function dj(r,t,e=1,n=\"float32\",o){if(e==null&&(e=1),n==null&&(n=\"float32\"),n!==\"float32\"&&n!==\"int32\")throw new Error(`Unsupported data type ${n}`);let s=new Zx(t,e,n,o),i=wt(r,n);for(let a=0;a`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),pr(t,0)}var T_=T({reverse1d_:Ij});function Sj(r,t){let e=I(r,\"x\",\"reverse\");return E(e.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${e.rank}.`),pr(e,t)}var k_=T({reverse2d_:Sj});function vj(r,t){let e=I(r,\"x\",\"reverse\");return E(e.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${e.rank}.`),pr(e,t)}var E_=T({reverse3d_:vj});function Nj(r,t){let e=I(r,\"x\",\"reverse\");return E(e.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${e.rank}.`),pr(e,t)}var __=T({reverse4d_:Nj});function Tj(r){let e={x:I(r,\"x\",\"round\")};return k.runKernel(Ts,e)}var um=T({round_:Tj});function kj(r){let e={x:I(r,\"x\",\"rsqrt\",\"float32\")};return k.runKernel(ks,e)}var cm=T({rsqrt_:kj});function Ej(r){let e={x:I(r,\"x\",\"selu\")};return k.runKernel(Ma,e)}var pm=T({selu_:Ej});function _j(r,t,e,n,o,s=[1,1],i=\"NHWC\"){let a=I(r,\"x\",\"separableConv2d\"),u=I(t,\"depthwiseFilter\",\"separableConv2d\"),l=I(e,\"pointwiseFilter\",\"separableConv2d\"),c=a,p=!1;if(a.rank===3&&(p=!0,c=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),i===\"NCHW\")throw new Error(\"separableConv2d currently does not support dataFormat NCHW; only NHWC is supported\");E(c.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${c.rank}.`),E(u.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${u.rank}.`),E(l.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${u.rank}.`),E(l.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${l.shape[0]}.`),E(l.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${l.shape[1]}.`);let m=u.shape[2],f=u.shape[3];E(l.shape[2]===m*f,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${m*f}, but got ${l.shape[2]}.`);let d=Fi(c,u,n,o,i,s),g=In(d,l,1,\"valid\",i);return p?R(g,[g.shape[1],g.shape[2],g.shape[3]]):g}var mm=T({separableConv2d_:_j});async function Aj(r,t){let e=I(r,\"x\",\"setdiff1d\"),n=I(t,\"y\",\"setdiff1d\");E(e.dtype===n.dtype,()=>`x and y should have the same dtype, but got x (${e.dtype}) and y (${n.dtype}).`),E(e.rank===1,()=>`x should be 1D tensor, but got x (${e.shape}).`),E(n.rank===1,()=>`y should be 1D tensor, but got y (${n.shape}).`);let o=await e.data(),s=await n.data(),i=new Set(s),a=0;for(let c=0;c`slice1d expects a rank-1 tensor, but got a rank-${n.rank} tensor`),Rt(n,[t],[e])}var hm=T({slice1d_:Fj});function Oj(r,t,e){let n=I(r,\"x\",\"slice2d\");return E(n.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`),Rt(n,t,e)}var dh=T({slice2d_:Oj});function Pj(r,t,e){let n=I(r,\"x\",\"slice3d\");return E(n.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`),Rt(n,t,e)}var gm=T({slice3d_:Pj});function Lj(r,t,e){let n=I(r,\"x\",\"slice4d\");return E(n.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`),Rt(n,t,e)}var ec=T({slice4d_:Lj});function Mj(r,t=-1){let e=I(r,\"logits\",\"softmax\",\"float32\");if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and dim was ${t}`);let n={logits:e},o={dim:t};return k.runKernel(Ds,n,o)}var iu=T({softmax_:Mj});function zj(r){E(r.dtype===\"complex64\",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${r.dtype}.`);let t={input:r};return k.runKernel(Cp,t)}var au=T({fft_:zj});function Bj(r){E(r.dtype===\"complex64\",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${r.dtype}.`);let t={input:r};return k.runKernel(Ip,t)}var tl=T({ifft_:Bj});function Vj(r){let t=r.shape[r.shape.length-1],e=r.size/t,n;if(t<=2){let o=R(r,[e,t]);n=tl(o)}else{let o=[e,2*(t-1)],s=R(Za(r),[e,t]),i=R(Xl(r),[e,t]),a=pr(Rt(s,[0,1],[e,t-2]),1),u=D(pr(Rt(i,[0,1],[e,t-2]),1),mt(-1)),l=ne([s,a],1),c=ne([i,u],1),p=R(wn(l,c),[o[0],o[1]]);n=tl(p)}if(n=Za(n),r.rank===3&&r.shape[0]!==0){let o=n,s=r.shape[0];n=R(n,[s,n.shape[0]/s,n.shape[1]]),o.dispose()}return n}var xm=T({irfft_:Vj});function Gj(r,t,e=0){let o={x:I(r,\"x\",\"split\")},s={numOrSizeSplits:t,axis:e};return k.runKernel(yi,o,s)}var mr=T({split_:Gj});function Wj(r,t){E(r.dtype===\"float32\",()=>`The dtype for rfft() must be real value but got ${r.dtype}`);let e=r.shape[r.shape.length-1],n=r.size/e,o;if(t!=null&&t0),h=r.shape.map(g=>g);h[r.shape.length-1]=t,o=Rt(r,d,h),e=t}else if(t!=null&&t>e){let d=r.shape.map(h=>h);d[r.shape.length-1]=t-e,o=ne([r,Ne(d)],r.shape.length-1),e=t}else o=r;let s=It(o),i=R(wn(o,s),[n,e]),a=au(i),u=Math.floor(e/2)+1,l=Za(a),c=Xl(a),p=mr(l,[u,e-u],l.shape.length-1),m=mr(c,[u,e-u],c.shape.length-1),f=o.shape.slice();return f[o.shape.length-1]=u,R(wn(p[0],m[0]),f)}var lu=T({rfft_:Wj});function Uj(r,t){let e=I(r,\"a\",\"squaredDifference\"),n=I(t,\"b\",\"squaredDifference\");[e,n]=Ut(e,n),Pt(e.shape,n.shape);let o={a:e,b:n},s={};return k.runKernel(Rs,o,s)}var ym=T({squaredDifference_:Uj});function Hj(r,t){let e=I(r,\"x\",\"squeeze\",\"string_or_numeric\");return R(e,tv(e.shape,t).newShape)}var Mn=T({squeeze_:Hj});function qj(r,t=0){let e=ja(r,\"tensors\",\"stack\",\"string_or_numeric\");E(e.length>=1,()=>\"Pass at least one tensor to tf.stack\"),e.length>0&&E(t<=e[0].rank,()=>\"Axis must be <= rank of the tensor\");let n=e,o={axis:t};return k.runKernel(fi,n,o)}var nr=T({stack_:qj});function Kj(r,t=0){let n={x:I(r,\"x\",\"step\")},o={alpha:t};return k.runKernel(po,n,o)}var bo=T({step_:Kj});function jj(r,t,e,n,o=0,s=0,i=0,a=0,u=0){let c={x:I(r,\"x\",\"stridedSlice\",\"string_or_numeric\")},p={begin:t,end:e,strides:n,beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};return k.runKernel(Wa,c,p)}var ry=T({stridedSlice_:jj});function Xj(r){let e={x:I(r,\"x\",\"tan\",\"float32\")};return k.runKernel(Os,e)}var ny=T({tan_:Xj});function Me(r,t){Yn(r);let e=Br(r,t);if(e.length!==1)throw new Error(\"tensor1d() requires values to be a flat/TypedArray\");return on(r,null,e,t)}function Vs(r,t,e){if(Yn(r),t!=null&&t.length!==2)throw new Error(\"tensor2d() requires shape to have two numbers\");let n=Br(r,e);if(n.length!==2&&n.length!==1)throw new Error(\"tensor2d() requires values to be number[][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor2d() requires shape to be provided when `values` are a flat/TypedArray\");return on(r,t,n,e)}function $_(r,t,e){if(Yn(r),t!=null&&t.length!==4)throw new Error(\"tensor4d() requires shape to have four numbers\");let n=Br(r,e);if(n.length!==4&&n.length!==1)throw new Error(\"tensor4d() requires values to be number[][][][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor4d() requires shape to be provided when `values` are a flat array\");return on(r,t,n,e)}function D_(r,t,e){if(Yn(r),t!=null&&t.length!==5)throw new Error(\"tensor5d() requires shape to have five numbers\");let n=Br(r,e);if(n.length!==5&&n.length!==1)throw new Error(\"tensor5d() requires values to be number[][][][][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor5d() requires shape to be provided when `values` are a flat array\");return on(r,t,n,e)}function R_(r,t,e){if(Yn(r),t!=null&&t.length!==6)throw new Error(\"tensor6d() requires shape to have six numbers\");let n=Br(r,e);if(n.length!==6&&n.length!==1)throw new Error(\"tensor6d() requires values to be number[][][][][][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor6d() requires shape to be provided when `values` are a flat array\");return t=t||n,on(r,t,n,e)}function Yj(r,t=1,e=!0){let n=I(r,\"x\",\"topk\");if(n.rank===0)throw new Error(\"topk() expects the input to be of rank 1 or higher\");let o=n.shape[n.shape.length-1];if(t<0)throw new Error(`'k' passed to topk() must be >= 0 but got ${t}`);if(t>o)throw new Error(`'k' passed to topk() must be <= the last dimension (${o}) but got ${t}`);let s={x:n},i={k:t,sorted:e},[a,u]=k.runKernel(Ua,s,i);return{values:a,indices:u}}var oy=T({topk_:Yj});function Zj(r,t=0,e=1,n,o){if(n!=null&&n===\"bool\")throw new Error(\"Unsupported data type $ { dtype }\");let s=new Qu(t,e,n,!0,o),i=wt(r,n);for(let a=0;a0,()=>\"The input tensor must be at least 1D\");let n={x:e},o={axis:t},[s,i]=k.runKernel(Mp,n,o);return{values:s,indices:i}}var sy=T({unique_:Jj});function Qj(r,t,e){let n=I(r,\"x\",\"unsortedSegmentSum\"),o=I(t,\"segmentIds\",\"unsortedSegmentSum\",\"int32\");E(na(e),()=>\"numSegments must be of dtype int\");let s={x:n,segmentIds:o},i={numSegments:e};return k.runKernel(Wl,s,i)}var wm=T({unsortedSegmentSum_:Qj});function t6(r,t=0){let e=I(r,\"x\",\"unstack\",\"string_or_numeric\");E(t>=-e.shape.length&&t`Axis = ${t} is not in [-${e.shape.length}, ${e.shape.length})`);let n={value:e},o={axis:t};return k.runKernel(bi,n,o)}var vr=T({unstack_:t6});function F_(r,t){return mh(r,t,\"right\")}function iy(r,t=!0,e,n){return k.makeVariable(r,t,e,n)}function ay(r,t){let e=[];for(let s=0;s0,()=>\"mask cannot be scalar\"),$e(a.slice(s,s+i),o.shape,\"mask's shape must match the first K dimensions of tensor's shape,\");let u=1;for(let h=s;h\"Shape mismatch in v and x\");let u=mt(1),l=ct(u,a),c=D(ct(i,s),l);if(o){E(n!=null,()=>\"When using zeroDebias: true, step is required.\");let p=I(n,\"step\",\"movingAverage\");c=pt(c,ct(u,an(a,p)))}return X(s,c)}var s6=T({movingAverage_:o6});function i6(r,t,e){let n=I(r,\"indices\",\"scatterND\",\"int32\"),o=I(t,\"updates\",\"scatterND\");sx(o,n,e);let s={indices:n,updates:o},i={shape:e};return k.runKernel(La,s,i)}var a6=T({scatterND_:i6});function O_(r,t,e,n){if(r.dtype!==\"int32\")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${r.dtype}.`);if(r.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${r.shape}.`);let o=r.rank>0?r.shape[0]:1,s=r.rank>1?r.shape[1]:1;if(e.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${e.length}, should be: ${s}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===o))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${o}]`);if(t.dtype!==n.dtype)throw new Error(\"sparseValues.dtype must match defaultValues.dtype\")}function u6(r,t,e,n=0){let o=I(r,\"sparseIndices\",\"sparseToDense\",\"int32\"),s=I(t,\"sparseValues\",\"sparseToDense\",\"string_or_numeric\"),i=I(n,\"defaultValue\",\"sparseToDense\",s.dtype);O_(o,s,e,i);let a={sparseIndices:o,sparseValues:s,defaultValue:i},u={outputShape:e};return k.runKernel(Lp,a,u)}var c6=T({sparseToDense_:u6});function p6(r,t){let e=I(t,\"indices\",\"gatherND\",\"int32\"),o={params:I(r,\"x\",\"gatherND\",\"string_or_numeric\"),indices:e};return k.runKernel(wa,o)}var m6=T({gatherND_:p6});function P_(r,t){if(t==null)return r.shape.slice();if(Dn(r.shape,t))return t;if(r.shape.length===t.length){let e=[];for(let n=0;n`x has to be a floating point tensor since it's going to be scaled, but got a ${o.dtype} tensor instead.`),E(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return r instanceof Ft?o.clone():o;let s=P_(o,e),i=1-t,a=pt(Pi(X(zi(s,0,1,\"float32\",n),i)),i);return D(o,a)}var l0=T({dropout_:f6});function u0(r){return Math.floor(Math.pow(2,Math.ceil(Math.log(r)/Math.log(2))))}function hh(r,t,e){let n=1-r%2,o=new Float32Array(r);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${n.rank}`),E(n.rank-1===o.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${n.rank} and targets rank ${o.rank}`),$e(n.shape.slice(0,n.shape.length-1),o.shape,\"predictions's shape should be align with the targets' shape, except the last dimension.\");let s=n.shape[n.shape.length-1];E(e>0&&e<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${e}`);let i=await n.data(),a=await o.data(),[u,l]=[i.length/s,s],c=ev(\"bool\",u);for(let p=0;pg.value-h.value),c[p]=0;for(let h=0;hL_,depthwiseConv2d:()=>M_,matMul:()=>z_});function g6(r,t,e,n,o,s=\"NHWC\",i){let a=r;r.rank===3&&(a=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]])),E(a.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${a.shape}.`),E(u.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${u.shape}.`),E(e.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${e}.`);let l=s===\"NHWC\"?a.shape[3]:a.shape[1],c=s===\"NHWC\"?u.shape[3]:u.shape[1];E(l===e[2],()=>`Error in conv2dDerFilter: depth of input ${l}) must match input depth in filter (${e[2]}.`),E(c===e[3],()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${e[3]}).`),Ie(\"conv2dDerFilter\",o,i);let p={x:a,dy:u},m={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,filterShape:e};return k.runKernel(mp,p,m)}var Cm=T({conv2DBackpropFilter_:g6});function rc(r,t,e){if(e==null||e===\"linear\")return r;if(e===\"relu\")return D(r,bo(t));throw new Error(`Cannot compute gradient for fused activation ${e}.`)}function nc(r,t){let e=t,n=ge(r.shape,t.shape);return n.length>0&&(e=ft(e,n)),R(e,r.shape)}function oc(r,t,e,n){if(t===\"linear\")return r;if(t===\"relu\")return Fr(r);if(t===\"elu\")return Oi(r);if(t===\"relu6\")return lm(r);if(t===\"prelu\")return ou(r,e);if(t===\"leakyrelu\")return Ql(r,n);if(t===\"sigmoid\")return Yr(r);throw new Error(`Unknown fused activation ${t}.`)}var sc=(r,t)=>!(r>0)||t===\"linear\";function x6({x:r,filter:t,strides:e,pad:n,dataFormat:o=\"NHWC\",dilations:s=[1,1],dimRoundingMode:i,bias:a,activation:u=\"linear\",preluActivationWeights:l,leakyreluAlpha:c}){if(u=u||\"linear\",sc(k.state.gradientDepth,u)===!1){E(o===\"NHWC\",()=>`Error in fused conv2d: got dataFormat of ${o} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let _=In(r,t,e,n,o,s,i);return a!=null&&(_=X(_,a)),oc(_,u,l,c)}let p=I(r,\"x\",\"conv2d\",\"float32\"),m=I(t,\"filter\",\"conv2d\",\"float32\"),f=p,d=!1;p.rank===3&&(d=!0,f=R(p,[1,p.shape[0],p.shape[1],p.shape[2]])),E(f.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${f.rank}.`),E(m.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${m.rank}.`),Ie(\"fused conv2d\",n,i);let h=o===\"NHWC\"?f.shape[3]:f.shape[1];E(m.shape[2]===h,()=>`Error in conv2d: depth of input (${h}) must match input depth for filter ${m.shape[2]}.`),E(Ar(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let g=ju(f.shape,m.shape,e,s,n,i),x;a!=null&&(x=I(a,\"bias\",\"fused conv2d\"),[x]=Ut(x,p),o===\"NHWC\"?Pt(g.outShape,x.shape):(E(x.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${x.shape.length}.`),E(x.shape.length===0||x.shape[0]===g.outChannels||x.shape[0]===1,()=>`Error in fused conv2d: bias shape (${x.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let b;if(l!=null){let _=l.shape;if(E(_.length<=1||_.length===3,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${_.length}.`),_.length===1)E(_[0]===1||_[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${_}) is not compatible with the number of output channels (${g.outChannels}).`);else if(_.length===3)try{Pt(_,g.outShape)}catch(A){let $=`Error in fused conv2d: PReLU activation weights (${_}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error($)}b=I(l,\"prelu weights\",\"fused conv2d\")}let w=(_,A)=>{E(o===\"NHWC\",()=>`Error in gradient of fused conv2D: got dataFormat of ${o} but only NHWC is currently supported.`);let[$,F,P,V]=A,G=rc(_,P,u);E(to(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let W=tm(F.shape,G,$,e,n),q=Cm(F,G,$.shape,e,n),H=[W,q];if(V!=null){let j=nc(V,G);H.push(j)}return H},C={x:f,filter:m,bias:x,preluActivationWeights:b},N={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?un((A,$,F)=>{let P=k.runKernel(Ii,C,N);return F([$,A,P]),d&&(P=R(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:w}})(f,m):un((A,$,F,P)=>{let V=k.runKernel(Ii,C,N);return P([$,A,V,F]),d&&(V=R(V,[V.shape[1],V.shape[2],V.shape[3]])),{value:V,gradFunc:w}})(f,m,x)}var L_=T({fusedConv2d_:x6});function y6(r,t,e,n,o,s=[1,1],i){let a=r;r.rank===3&&(a=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let l={x:a,dy:u},c={strides:n,pad:o,dimRoundingMode:i,dilations:s,filterShape:e};return k.runKernel(gp,l,c)}var uy=T({depthwiseConv2dNativeBackpropFilter_:y6});function b6(r,t,e,n,o,s=[1,1],i){let a=t,u=!1;t.rank===3&&(u=!0,a=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let l={dy:a,filter:e},c={strides:n,pad:o,dimRoundingMode:i,dilations:s,inputShape:r},p=k.runKernel(xp,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var cy=T({depthwiseConv2dNativeBackpropInput_:b6});function w6({x:r,filter:t,strides:e,pad:n,dataFormat:o=\"NHWC\",dilations:s=[1,1],dimRoundingMode:i,bias:a,activation:u=\"linear\",preluActivationWeights:l,leakyreluAlpha:c}){if(sc(k.state.gradientDepth,u)===!1){let N=Fi(r,t,e,n,o,s,i);return a!=null&&(N=X(N,a)),oc(N,u,l,c)}let p=I(r,\"x\",\"depthwiseConv2d\",\"float32\"),m=I(t,\"filter\",\"depthwiseConv2d\",\"float32\"),f=p,d=!1;p.rank===3&&(d=!0,f=R(p,[1,p.shape[0],p.shape[1],p.shape[2]])),E(f.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${f.rank}.`),E(m.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${m.rank}.`),E(f.shape[3]===m.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${f.shape[3]}) must match the inChannels dimension in filter ${m.shape[2]}.`),s==null&&(s=[1,1]),E(Ar(e,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),Ie(\"fused depthwiseConv2d\",n,i);let h=ju(f.shape,m.shape,e,s,n,i,!0),g;a!=null&&(g=I(a,\"bias\",\"fused conv2d\"),[g]=Ut(g,p),Pt(h.outShape,g.shape));let x;l!=null&&(x=I(l,\"prelu weights\",\"fused depthwiseConv2d\"));let b=(N,_)=>{E(to(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[A,$,F,P]=_,V=rc(N,F,u),G=cy($.shape,V,A,e,n,s,i),W=uy($,V,A.shape,e,n,s,i);if(P!=null){let q=nc(g,V);return[G,W,q]}return[G,W]},w={x:f,filter:m,bias:g,preluActivationWeights:x},C={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?un((_,A,$)=>{let F=k.runKernel(Si,w,C);return $([A,_,F]),d&&(F=R(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(f,m):un((_,A,$,F)=>{let P=k.runKernel(Si,w,C);return F([A,_,P,$]),d&&(P=R(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:b}})(f,m,g)}var M_=T({fusedDepthwiseConv2d_:w6});function C6({a:r,b:t,transposeA:e=!1,transposeB:n=!1,bias:o,activation:s=\"linear\",preluActivationWeights:i,leakyreluAlpha:a=.2}){if(sc(k.state.gradientDepth,s)===!1){let V=Lt(r,t,e,n);return o!=null&&(V=X(V,o)),oc(V,s,i,a)}let u=I(r,\"a\",\"fused matMul\"),l=I(t,\"b\",\"fused matMul\");[u,l]=Ut(u,l);let c=e?u.shape[u.rank-2]:u.shape[u.rank-1],p=n?l.shape[l.rank-1]:l.shape[l.rank-2],m=e?u.shape[u.rank-1]:u.shape[u.rank-2],f=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=u.shape.slice(0,-2),h=l.shape.slice(0,-2),g=Jt(d),x=Jt(h);E(c===p,()=>`Error in fused matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${u.shape} and ${l.shape} and transposeA=${e} and transposeB=${n} must match.`);let w=Pt(u.shape.slice(0,-2),l.shape.slice(0,-2)).concat([m,f]),C=e?R(u,[g,c,m]):R(u,[g,m,c]),N=n?R(l,[x,f,p]):R(l,[x,p,f]),_;o!=null&&(_=I(o,\"bias\",\"fused matMul\"),[_]=Ut(_,u),Pt(w,_.shape));let A;i!=null&&(A=I(i,\"prelu weights\",\"fused matMul\"));let $=(V,G)=>{let[W,q,H,j]=G,Y=rc(R(V,H.shape),H,s),Z,et;if(!e&&!n?(Z=Lt(Y,q,!1,!0),et=Lt(W,Y,!0,!1)):!e&&n?(Z=Lt(Y,q,!1,!1),et=Lt(Y,W,!0,!1)):e&&!n?(Z=Lt(q,Y,!1,!0),et=Lt(W,Y,!1,!1)):(Z=Lt(q,Y,!0,!0),et=Lt(Y,W,!0,!0)),o!=null){let rt=nc(j,Y);return[Z,et,rt]}else return[Z,et]},F={a:C,b:N,bias:_,preluActivationWeights:A},P={transposeA:e,transposeB:n,activation:s,leakyreluAlpha:a};return o==null?un((G,W,q)=>{let H=k.runKernel(Ci,F,P);return q([G,W,H]),{value:R(H,w),gradFunc:$}})(C,N):un((G,W,q,H)=>{let j=k.runKernel(Ci,F,P);return H([G,W,j,q]),{value:R(j,w),gradFunc:$}})(C,N,_)}var z_=T({fusedMatMul_:C6});function I6(r){return hh(r,.54,.46)}var B_=T({hammingWindow_:I6});function S6(r){return hh(r,.5,.5)}var py=T({hannWindow_:S6});function v6(r,t,e,n=!1,o=0){let s=0,i=[];for(;s+t<=r.size;)i.push(Rt(r,s,t)),s+=e;if(n)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),E(a.rank===2&&a.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${l},4] but had shape ${a.shape}.`),E(u.rank===1&&u.shape[0]===l,()=>`Error in cropAndResize: boxInd must be have size [${l}] but had shape ${a.shape}.`),E(n.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${n.length}.`),E(n[0]>=1&&n[1]>=1,()=>`cropSize must be atleast [1,1], but was ${n}`),E(o===\"bilinear\"||o===\"nearest\",()=>`method must be bilinear or nearest, but was ${o}`);let c={image:i,boxes:a,boxInd:u},p={method:o,extrapolationValue:s,cropSize:n};return k.runKernel(da,c,p)}var G_=T({cropAndResize_:T6});function k6(r){let t=I(r,\"image\",\"flipLeftRight\",\"float32\");E(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let e={image:t};return k.runKernel(ba,e,{})}var W_=T({flipLeftRight_:k6});function E6(r){let t=I(r,\"image\",\"grayscaleToRGB\"),e=t.rank-1,n=t.shape[e];E(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),E(n===1,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${n}.`);let o=new Array(t.rank);return o.fill(1,0,e),o[e]=3,Dr(t,o)}var U_=T({grayscaleToRGB_:E6});function _6(r,t,e=0,n=.5){let o=I(r,\"image\",\"rotateWithOffset\",\"float32\");E(o.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${o.rank}.`);let s={image:o},i={radians:t,fillValue:e,center:n};return k.runKernel(qa,s,i)}var H_=T({rotateWithOffset_:_6});function wo(r,t,e,n,o,s){n==null&&(n=.5),o==null&&(o=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=r.shape[0];return e=Math.min(e,i),E(0<=n&&n<=1,()=>`iouThreshold must be in [0, 1], but was '${n}'`),E(r.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${r.rank}'`),E(r.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${r.shape[1]}`),E(t.rank===1,()=>\"scores must be a 1D tensor\"),E(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),E(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s}}function A6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=I(r,\"boxes\",\"nonMaxSuppression\",\"float32\"),i=I(t,\"scores\",\"nonMaxSuppression\",\"float32\"),a=wo(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u={maxOutputSize:e,iouThreshold:n,scoreThreshold:o};return k.runKernel(Ra,{boxes:s,scores:i},u)}var q_=T({nonMaxSuppression_:A6});function K_(r,t,e){let n=$6(r,t,e),o=n<0?-(n+1):n;r.splice(o,0,t)}function $6(r,t,e){return R6(r,t,e||D6)}function D6(r,t){return r>t?1:r>>1);let a=e(t,r[s]);a>0?n=s+1:(o=s,i=!a)}return i?n:-n-1}function fy(r,t,e,n,o){return c0(r,t,e,n,o,0)}function dy(r,t,e,n,o,s){return c0(r,t,e,n,o,0,!1,s,!0)}function hy(r,t,e,n,o,s){return c0(r,t,e,n,o,s,!0)}function c0(r,t,e,n,o,s,i=!1,a=!1,u=!1){let l=[];for(let g=0;go&&l.push({score:t[g],boxIndex:g,suppressBeginIndex:0});l.sort(j_);let c=s>0?-.5/s:0,p=[],m=[];for(;p.length0;){let g=l.pop(),{score:x,boxIndex:b,suppressBeginIndex:w}=g;if(x=w;--N){let _=F6(r,b,p[N]);if(_>=n){C=!0;break}if(g.score=g.score*O6(n,c,_),g.score<=o)break}g.suppressBeginIndex=p.length,C||(g.score===x?(p.push(b),m.push(g.score)):g.score>o&&K_(l,g,j_))}let f=p.length,d=e-f;a&&d>0&&(p.push(...new Array(d).fill(0)),m.push(...new Array(d).fill(0)));let h={selectedIndices:p};return i&&(h.selectedScores=m),u&&(h.validOutputs=f),h}function F6(r,t,e){let n=r.subarray(t*4,t*4+4),o=r.subarray(e*4,e*4+4),s=Math.min(n[0],n[2]),i=Math.min(n[1],n[3]),a=Math.max(n[0],n[2]),u=Math.max(n[1],n[3]),l=Math.min(o[0],o[2]),c=Math.min(o[1],o[3]),p=Math.max(o[0],o[2]),m=Math.max(o[1],o[3]),f=(a-s)*(u-i),d=(p-l)*(m-c);if(f<=0||d<=0)return 0;let h=Math.max(s,l),g=Math.max(i,c),x=Math.min(a,p),b=Math.min(u,m),w=Math.max(x-h,0)*Math.max(b-g,0);return w/(f+d-w)}function O6(r,t,e){let n=Math.exp(t*e*e);return e<=r?n:0}function j_(r,t){return r.score-t.score||r.score===t.score&&t.boxIndex-r.boxIndex}async function P6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=I(r,\"boxes\",\"nonMaxSuppressionAsync\"),i=I(t,\"scores\",\"nonMaxSuppressionAsync\"),a=wo(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u=await Promise.all([s.data(),i.data()]),l=u[0],c=u[1],{selectedIndices:p}=fy(l,c,e,n,o);return s!==r&&s.dispose(),i!==t&&i.dispose(),Me(p,\"int32\")}var X_=P6;function L6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=I(r,\"boxes\",\"nonMaxSuppression\"),a=I(t,\"scores\",\"nonMaxSuppression\"),u=wo(i,a,e,n,o,s);e=u.maxOutputSize,n=u.iouThreshold,o=u.scoreThreshold,s=u.softNmsSigma;let l={boxes:i,scores:a},c={maxOutputSize:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s},p=k.runKernel(Oa,l,c);return{selectedIndices:p[0],selectedScores:p[1]}}var Y_=T({nonMaxSuppressionWithScore_:L6});async function M6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=I(r,\"boxes\",\"nonMaxSuppressionAsync\"),a=I(t,\"scores\",\"nonMaxSuppressionAsync\"),u=wo(i,a,e,n,o,s);e=u.maxOutputSize,n=u.iouThreshold,o=u.scoreThreshold,s=u.softNmsSigma;let l=await Promise.all([i.data(),a.data()]),c=l[0],p=l[1],{selectedIndices:m,selectedScores:f}=hy(c,p,e,n,o,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Me(m,\"int32\"),selectedScores:Me(f)}}var Z_=M6;function z6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=I(r,\"boxes\",\"nonMaxSuppression\"),a=I(t,\"scores\",\"nonMaxSuppression\"),u=wo(i,a,e,n,o,null),l=u.maxOutputSize,c=u.iouThreshold,p=u.scoreThreshold,m={boxes:i,scores:a},f={maxOutputSize:l,iouThreshold:c,scoreThreshold:p,padToMaxOutputSize:s},d=k.runKernel(Fa,m,f);return{selectedIndices:d[0],validOutputs:d[1]}}var J_=T({nonMaxSuppressionPadded_:z6});async function B6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=I(r,\"boxes\",\"nonMaxSuppressionAsync\"),a=I(t,\"scores\",\"nonMaxSuppressionAsync\"),u=wo(i,a,e,n,o,null),l=u.maxOutputSize,c=u.iouThreshold,p=u.scoreThreshold,[m,f]=await Promise.all([i.data(),a.data()]),{selectedIndices:d,validOutputs:h}=dy(m,f,l,c,p,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Me(d,\"int32\"),validOutputs:mt(h,\"int32\")}}var Q_=B6;function V6(r,t,e=!1,n=!1){let o=I(r,\"images\",\"resizeBilinear\");E(o.rank===3||o.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${o.rank}.`),E(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),E(n===!1||e===!1,()=>\"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.\");let s=o,i=!1;o.rank===3&&(i=!0,s=R(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=k.runKernel(Ss,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var gy=T({resizeBilinear_:V6});function G6(r,t,e=!1,n=!1){let o=I(r,\"images\",\"resizeNearestNeighbor\");E(o.rank===3||o.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${o.rank}.`),E(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),E(o.dtype===\"float32\"||o.dtype===\"int32\",()=>\"`images` must have `int32` or `float32` as dtype\"),E(n===!1||e===!1,()=>\"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.\");let s=o,i=!1;o.rank===3&&(i=!0,s=R(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=k.runKernel(Is,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var xy=T({resizeNearestNeighbor_:G6});function W6(r,t=\"binary\",e=!1,n=.5){let o=I(r,\"image\",\"threshold\"),s=.2989,i=.587,a=.114,u=o.shape[0]*o.shape[1],l=D(Me([n]),255),c,p,m,f;if(E(o.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${o.rank}.`),E(o.shape[2]===3||o.shape[2]===1,()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${o.shape[2]}.`),E(o.dtype===\"int32\"||o.dtype===\"float32\",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${o.dtype}.`),E(t===\"otsu\"||t===\"binary\",()=>`Method must be binary or otsu, but was ${t}`),o.shape[2]===3){[c,p,m]=mr(o,[1,1,1],-1);let g=D(c,s),x=D(p,i),b=D(m,a);f=X(X(g,x),b)}else f=r;if(t===\"otsu\"){let g=wx(J(um(f),\"int32\"),ur([]),256);l=U6(g,u)}let d=e?Ln(f,l):Re(f,l);return J(D(d,255),\"int32\")}function U6(r,t){let e=Me([-1]),n=Me([0]),o=Me([0]),s,i,a,u,l,c;for(let p=0;p`Error in transform: image must be rank 4,but got rank ${i.rank}.`),E(a.rank===2&&(a.shape[0]===i.shape[0]||a.shape[0]===1)&&a.shape[1]===8,()=>\"Error in transform: Input transform should be batch x 8 or 1 x 8\"),E(s==null||s.length===2,()=>`Error in transform: outputShape must be [height, width] or null, but got ${s}.`);let u={image:i,transforms:a},l={interpolation:e,fillMode:n,fillValue:o,outputShape:s};return k.runKernel(Ha,u,l)}var eA=T({transform_:H6});function q6(r,t,e){E(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),E(e%1===0,()=>`bandPart(): numUpper must be an integer, got ${e}.`);let n=I(r,\"a\",\"bandPart\");E(n.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${n.rank}.`);let o=n.shape,[s,i]=n.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(e<=i))throw new Error(`bandPart(): numUpper (${e}) must not be greater than the number of columns (${i}).`);t<0&&(t=s),e<0&&(e=i);let a=R(su(0,s,1,\"int32\"),[-1,1]),u=su(0,i,1,\"int32\"),l=ct(a,u),c=Rr(Ln(l,mt(+t,\"int32\")),ln(l,mt(-e,\"int32\"))),p=Ne([s,i],n.dtype);return R(nr(vr(R(n,[-1,s,i])).map(m=>_e(c,m,p))),o)}var rA=T({bandPart_:q6});function K6(r){let t;if(Array.isArray(r)){t=!1,E(r!=null&&r.length>0,()=>\"Gram-Schmidt process: input must not be null, undefined, or empty\");let o=r[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${r[s].shape[0]} vs. ${o})`)}else t=!0,r=mr(r,r.shape[0],0).map(o=>Mn(o,[0]));E(r.length<=r[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${r.length}) exceeds number of dimensions (${r[0].shape[0]}).`);let e=[],n=r;for(let o=0;o{let s=n[o];if(o>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${r.rank}`),r.rank===2)return oA(r,t);{let e=r.shape.slice(0,r.shape.length-2).reduce((u,l)=>u*l),n=vr(R(r,[e,r.shape[r.shape.length-2],r.shape[r.shape.length-1]]),0),o=[],s=[];n.forEach(u=>{let[l,c]=oA(u,t);o.push(l),s.push(c)});let i=R(nr(o,0),r.shape),a=R(nr(s,0),r.shape);return[i,a]}}function oA(r,t=!1){return k.tidy(()=>{E(r.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${r.shape.length}D Tensor.`);let e=r.shape[0],n=r.shape[1],o=Yu(e),s=sn(r),i=Vs([[1]],[1,1]),a=sn(i),u=e>=n?n:e;for(let l=0;l{let f=Rt(s,[l,l],[e-l,1]),d=Qa(f),h=Rt(s,[l,l],[1,1]),g=_e(Re(h,0),Vs([[-1]]),Vs([[1]])),x=ct(h,D(g,d)),b=pt(f,x);b.shape[0]===1?a=sn(i):a=ne([i,Rt(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let w=Ht(pt(Lt(g,x),d)),C=Rt(s,[l,0],[e-l,n]),N=D(w,a),_=Ot(a);if(l===0)s=ct(C,Lt(N,Lt(_,C)));else{let F=ct(C,Lt(N,Lt(_,C)));s=ne([Rt(s,[0,0],[l,n]),F],0)}let A=Ot(N),$=Rt(o,[0,l],[e,o.shape[1]-l]);if(l===0)o=ct($,Lt(Lt($,a),A));else{let F=ct($,Lt(Lt($,a),A));o=ne([Rt(o,[0,0],[e,l]),F],1)}return[a,s,o]}),vt([c,p,m])}return!t&&e>n&&(o=Rt(o,[0,0],[e,n]),s=Rt(s,[0,0],[n,n])),[o,s]})}var sA=T({qr_:j6});var Xe;(function(r){r[r.NONE=0]=\"NONE\",r[r.MEAN=1]=\"MEAN\",r[r.SUM=2]=\"SUM\",r[r.SUM_BY_NONZERO_WEIGHTS=3]=\"SUM_BY_NONZERO_WEIGHTS\"})(Xe||(Xe={}));function X6(r,t,e=Xe.SUM_BY_NONZERO_WEIGHTS){let n=I(r,\"losses\",\"computeWeightedLoss\"),o=null;t!=null&&(o=I(t,\"weights\",\"computeWeightedLoss\"));let s=o==null?n:D(n,o);if(e===Xe.NONE)return s;if(e===Xe.SUM)return ft(s);if(e===Xe.MEAN){if(o==null)return ve(s);{let i=n.size/o.size,a=pt(ft(s),ft(o));return i>1?pt(a,mt(i)):a}}if(e===Xe.SUM_BY_NONZERO_WEIGHTS){if(o==null)return pt(ft(s),mt(n.size));{let i=D(o,cr(n.shape)),a=J(ft(Bs(i,mt(0))),\"float32\");return pt(ft(s),a)}}throw Error(`Unknown reduction: ${e}`)}var Gr=T({computeWeightedLoss_:X6});function Y6(r,t,e,n=Xe.SUM_BY_NONZERO_WEIGHTS){let o=I(r,\"labels\",\"absoluteDifference\"),s=I(t,\"predictions\",\"absoluteDifference\"),i=null;e!=null&&(i=I(e,\"weights\",\"absoluteDifference\")),$e(o.shape,s.shape,\"Error in absoluteDifference: \");let a=Ee(ct(o,s));return Gr(a,i,n)}var iA=T({absoluteDifference_:Y6});function Z6(r,t,e,n,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,\"labels\",\"cosineDistance\"),i=I(t,\"predictions\",\"cosineDistance\"),a=null;n!=null&&(a=I(n,\"weights\",\"cosineDistance\")),$e(s.shape,i.shape,\"Error in cosineDistance: \");let u=mt(1),l=ct(u,ft(D(s,i),e,!0));return Gr(l,a,o)}var aA=T({cosineDistance_:Z6});function J6(r,t,e,n=Xe.SUM_BY_NONZERO_WEIGHTS){let o=I(r,\"labels\",\"hingeLoss\"),s=I(t,\"predictions\",\"hingeLoss\"),i=null;e!=null&&(i=I(e,\"weights\",\"hingeLoss\")),$e(o.shape,s.shape,\"Error in hingeLoss: \");let a=mt(1);o=ct(D(mt(2),o),a);let u=Fr(ct(a,D(o,s)));return Gr(u,i,n)}var lA=T({hingeLoss_:J6});function Q6(r,t,e,n=1,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,\"labels\",\"huberLoss\"),i=I(t,\"predictions\",\"huberLoss\"),a=null;e!=null&&(a=I(e,\"weights\",\"huberLoss\")),$e(s.shape,i.shape,\"Error in huberLoss: \");let u=mt(n),l=Ee(ct(i,s)),c=Mi(l,u),p=ct(l,c),m=X(D(mt(.5),Mt(c)),D(u,p));return Gr(m,a,o)}var uA=T({huberLoss_:Q6});function tX(r,t,e,n=1e-7,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,\"labels\",\"logLoss\"),i=I(t,\"predictions\",\"logLoss\"),a=null;e!=null&&(a=I(e,\"weights\",\"logLoss\")),$e(s.shape,i.shape,\"Error in logLoss: \");let u=mt(1),l=mt(n),c=Ht(D(s,Sr(X(i,l)))),p=D(ct(u,s),Sr(X(ct(u,i),l))),m=ct(c,p);return Gr(m,a,o)}var cA=T({logLoss_:tX});function eX(r,t,e,n=Xe.SUM_BY_NONZERO_WEIGHTS){let o=I(r,\"labels\",\"meanSquaredError\"),s=I(t,\"predictions\",\"meanSquaredError\"),i=null;e!=null&&(i=I(e,\"weights\",\"meanSquaredError\")),$e(o.shape,s.shape,\"Error in meanSquaredError: \");let a=ym(o,s);return Gr(a,i,n)}var pA=T({meanSquaredError_:eX});function rX(r,t){let e=I(r,\"labels\",\"sigmoidCrossEntropyWithLogits\"),n=I(t,\"logits\",\"sigmoidCrossEntropyWithLogits\");$e(e.shape,n.shape,\"Error in sigmoidCrossEntropyWithLogits: \");let o=Fr(n),s=D(n,e),i=tu(er(Ht(Ee(n))));return X(ct(o,s),i)}function nX(r,t,e,n=0,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,\"multiClassLabels\",\"sigmoidCrossEntropy\"),i=I(t,\"logits\",\"sigmoidCrossEntropy\"),a=null;if(e!=null&&(a=I(e,\"weights\",\"sigmoidCrossEntropy\")),$e(s.shape,i.shape,\"Error in sigmoidCrossEntropy: \"),n>0){let l=mt(n),c=mt(1),p=mt(.5);s=X(D(s,ct(c,l)),D(p,l))}let u=rX(s,i);return Gr(u,a,o)}var mA=T({sigmoidCrossEntropy_:nX});function oX(r,t,e=-1){if(e===-1&&(e=t.rank-1),e!==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 ${e}`);return un((o,s,i)=>{let u=im(s,[e],!0),l=ct(J(s,\"float32\"),u);i([o,l]);let c=Ht(D(l,o));return{value:ft(c,[e]),gradFunc:(f,d)=>{let[h,g]=d,x=yo(f.shape,[e]);return[D(R(f,x),ct(J(h,\"float32\"),er(g))),D(R(f,x),ct(er(g),J(h,\"float32\")))]}}})(r,t)}function sX(r,t,e,n=0,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,\"onehotLabels\",\"softmaxCrossEntropy\"),i=I(t,\"logits\",\"softmaxCrossEntropy\"),a=null;if(e!=null&&(a=I(e,\"weights\",\"softmaxCrossEntropy\")),$e(s.shape,i.shape,\"Error in softmaxCrossEntropy: \"),n>0){let l=mt(n),c=mt(1),p=mt(s.shape[1]);s=X(D(s,ct(c,l)),pt(l,p))}let u=oX(s,i);return Gr(u,a,o)}var fA=T({softmaxCrossEntropy_:sX});function iX(r,t,e,n){let o=I(r,\"indices\",\"sparseFillEmptyRows\",\"int32\"),s=I(t,\"values\",\"sparseFillEmptyRows\"),i=I(e,\"denseShape\",\"sparseFillEmptyRows\",\"int32\"),a=I(n,\"defaultValue\",\"sparseFillEmptyRows\",s.dtype);if(o.rank!==2)throw new Error(`Indices should be Tensor2D but received shape\n ${o.shape}`);if(s.rank!==1)throw new Error(`Values should be Tensor1D but received shape ${s.shape}`);if(i.rank!==1)throw new Error(`Dense shape should be Tensor1D but received shape ${i.shape}`);if(a.rank!==0)throw new Error(`Default value should be a scalar but received shape ${a.shape}`);let u={indices:o,values:s,denseShape:i,defaultValue:a},l=k.runKernel(Pl,u);return{outputIndices:l[0],outputValues:l[1],emptyRowIndicator:l[2],reverseIndexMap:l[3]}}var dA=T({sparseFillEmptyRows_:iX});function aX(r,t,e){let n=I(r,\"inputIndices\",\"sparseReshape\",\"int32\"),o=I(t,\"inputShape\",\"sparseReshape\",\"int32\"),s=I(e,\"newShape\",\"sparseReshape\",\"int32\");if(n.rank!==2)throw new Error(`Input indices should be Tensor2D but received shape\n ${n.shape}`);if(o.rank!==1)throw new Error(`Input shape should be Tensor1D but received shape ${o.shape}`);if(s.rank!==1)throw new Error(`New shape should be Tensor1D but received shape ${s.shape}`);let i={inputIndices:n,inputShape:o,newShape:s},a=k.runKernel(Ga,i);return{outputIndices:a[0],outputShape:a[1]}}var hA=T({sparseReshape_:aX});function lX(r,t,e){let n=I(r,\"data\",\"sparseSegmentMean\"),o=I(t,\"indices\",\"sparseSegmentMean\",\"int32\"),s=I(e,\"segmentIds\",\"sparseSegmentMean\",\"int32\");if(n.rank<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.rank!==1)throw new Error(`Indices should be Tensor1D but received shape\n ${o.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape\n ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return k.runKernel(Ll,i)}var gA=T({sparseSegmentMean_:lX});function uX(r,t,e){let n=I(r,\"data\",\"sparseSegmentSum\"),o=I(t,\"indices\",\"sparseSegmentSum\",\"int32\"),s=I(e,\"segmentIds\",\"sparseSegmentSum\",\"int32\");if(n.rank<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.rank!==1)throw new Error(`Indices should be Tensor1D but received shape\n ${o.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape\n ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return k.runKernel(Ml,i)}var xA=T({sparseSegmentSum_:uX});function cX(r,t,e,n,o,s,i,a){let u=I(r,\"data\",\"stringNGrams\",\"string\");if(u.dtype!==\"string\")throw new Error(\"Data must be of datatype string\");if(u.shape.length!==1)throw new Error(`Data must be a vector, saw: ${u.shape}`);let l=I(t,\"dataSplits\",\"stringNGrams\");if(l.dtype!==\"int32\")throw new Error(\"Data splits must be of datatype int32\");let c={separator:e,nGramWidths:n,leftPad:o,rightPad:s,padWidth:i,preserveShortSequences:a},p={data:u,dataSplits:l},m=k.runKernel(Bl,p,c);return{nGrams:m[0],nGramsSplits:m[1]}}var yA=T({stringNGrams_:cX});function pX(r,t,e=!0){let n=I(r,\"input\",\"stringSplit\",\"string\"),o=I(t,\"delimiter\",\"stringSplit\",\"string\");if(n.rank!==1)throw new Error(`Input should be Tensor1D but received shape ${n.shape}`);if(o.rank!==0)throw new Error(`Delimiter should be a scalar but received shape ${o.shape}`);let s={skipEmpty:e},i={input:n,delimiter:o},a=k.runKernel(Vl,i,s);return{indices:a[0],values:a[1],shape:a[2]}}var bA=T({stringSplit_:pX});function mX(r,t){let e=I(r,\"input\",\"stringToHashBucketFast\",\"string\"),n={numBuckets:t};if(t<=0)throw new Error(\"Number of buckets must be at least 1\");let o={input:e};return k.runKernel(Gl,o,n)}var wA=T({stringToHashBucketFast_:mX});var fX={fft:au,ifft:tl,rfft:lu,irfft:xm},dX={hammingWindow:B_,hannWindow:py,frame:my,stft:V_},Gs={flipLeftRight:W_,grayscaleToRGB:U_,resizeNearestNeighbor:xy,resizeBilinear:gy,rotateWithOffset:H_,cropAndResize:G_,nonMaxSuppression:q_,nonMaxSuppressionAsync:X_,nonMaxSuppressionWithScore:Y_,nonMaxSuppressionWithScoreAsync:Z_,nonMaxSuppressionPadded:J_,nonMaxSuppressionPaddedAsync:Q_,threshold:tA,transform:eA},p0={bandPart:rA,gramSchmidt:nA,qr:sA},hX={absoluteDifference:iA,computeWeightedLoss:Gr,cosineDistance:aA,hingeLoss:lA,huberLoss:uA,logLoss:cA,meanSquaredError:pA,sigmoidCrossEntropy:mA,softmaxCrossEntropy:fA},gX={sparseFillEmptyRows:dA,sparseReshape:hA,sparseSegmentMean:gA,sparseSegmentSum:xA},xX={stringNGrams:yA,stringSplit:bA,stringToHashBucketFast:wA};var Wr=class extends uh{minimize(t,e=!1,n){let{value:o,grads:s}=this.computeGradients(t,n);if(n!=null){let i=n.map(a=>({name:a.name,tensor:s[a.name]}));this.applyGradients(i)}else this.applyGradients(s);return vt(s),e?o:(o.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(t,e){return Bx(t,e)}dispose(){this.iterations_!=null&&vt(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:\"iter\",tensor:mt(this.iterations_,\"int32\")}}async getWeights(){throw new Error(\"getWeights() is not implemented for this optimizer yet.\")}async setWeights(t){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(t){return this.iterations_=(await t[0].tensor.data())[0],t.slice(1)}};Object.defineProperty(Wr,Symbol.hasInstance,{value:r=>r.minimize!=null&&r.computeGradients!=null&&r.applyGradients!=null});var cu=class extends Wr{constructor(t,e,n=null){super(),this.learningRate=t,this.rho=e,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=k.backend.epsilon())}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n],i=!1;this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accum_grad`,variable:B(()=>It(s).variable(i))}),this.accumulatedUpdates[o]==null&&(this.accumulatedUpdates[o]={originalName:`${n}/accum_var`,variable:B(()=>It(s).variable(i))});let a=Array.isArray(t)?t[o].tensor:t[n];if(a==null)return;let u=this.accumulatedGrads[o].variable,l=this.accumulatedUpdates[o].variable;B(()=>{let c=X(D(u,this.rho),D(Mt(a),1-this.rho)),p=D(pt(Se(X(l,this.epsilon)),Se(X(u,this.epsilon))),a),m=X(D(l,this.rho),D(Mt(p),1-this.rho));u.assign(c),l.assign(m);let f=X(D(p,-this.learningRate),s);s.assign(f)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(vt(this.accumulatedGrads.map(t=>t.variable)),vt(this.accumulatedUpdates.map(t=>t.variable)))}async getWeights(){let t=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=t.length/2,n=!1;this.accumulatedGrads=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedUpdates=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(t,e){return new t(e.learningRate,e.rho,e.epsilon)}};cu.className=\"Adadelta\";Cn(cu);var pu=class extends Wr{constructor(t,e=.1){super(),this.learningRate=t,this.initialAccumulatorValue=e,this.accumulatedGrads=[]}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n];this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accumulator`,variable:B(()=>xo(s.shape,this.initialAccumulatorValue).variable(!1))});let i=Array.isArray(t)?t[o].tensor:t[n];if(i==null)return;let a=this.accumulatedGrads[o].variable;B(()=>{let u=X(a,Mt(i));a.assign(u);let l=X(D(pt(i,Se(X(u,k.backend.epsilon()))),-this.learningRate),s);s.assign(l)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&vt(this.accumulatedGrads.map(t=>t.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=!1;this.accumulatedGrads=t.map(n=>({originalName:n.name,variable:n.tensor.variable(e)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(t,e){return new t(e.learningRate,e.initialAccumulatorValue)}};pu.className=\"Adagrad\";Cn(pu);var mu=class extends Wr{constructor(t,e,n,o=null){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],B(()=>{this.accBeta1=mt(e).variable(),this.accBeta2=mt(n).variable()}),o==null&&(this.epsilon=k.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=ct(1,this.accBeta1),o=ct(1,this.accBeta2);e.forEach((s,i)=>{let a=k.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:B(()=>It(a).variable(u))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${s}/v`,variable:B(()=>It(a).variable(u))});let l=Array.isArray(t)?t[i].tensor:t[s];if(l==null)return;let c=this.accumulatedFirstMoment[i].variable,p=this.accumulatedSecondMoment[i].variable,m=X(D(c,this.beta1),D(l,1-this.beta1)),f=X(D(p,this.beta2),D(Mt(l),1-this.beta2)),d=pt(m,n),h=pt(f,o);c.assign(m),p.assign(f);let g=X(D(pt(d,X(Se(h),this.epsilon)),-this.learningRate),a);a.assign(g)}),this.accBeta1.assign(D(this.accBeta1,this.beta1)),this.accBeta2.assign(D(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&vt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedSecondMoment!=null&&vt(this.accumulatedSecondMoment.map(t=>t.variable))}async getWeights(){let t=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t),B(()=>{this.accBeta1.assign(an(this.beta1,this.iterations_+1)),this.accBeta2.assign(an(this.beta2,this.iterations_+1))});let e=t.length/2,n=!1;this.accumulatedFirstMoment=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedSecondMoment=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon)}};mu.className=\"Adam\";Cn(mu);var fu=class extends Wr{constructor(t,e,n,o=null,s=0){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.decay=s,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],B(()=>{this.iteration=mt(0).variable(),this.accBeta1=mt(e).variable()}),o==null&&(this.epsilon=k.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=ct(1,this.accBeta1),o=pt(-this.learningRate,X(D(this.iteration,this.decay),1));e.forEach((s,i)=>{let a=k.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:It(a).variable(u)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${s}/v`,variable:It(a).variable(u)});let l=Array.isArray(t)?t[i].tensor:t[s];if(l==null)return;let c=this.accumulatedFirstMoment[i].variable,p=this.accumulatedWeightedInfNorm[i].variable,m=X(D(c,this.beta1),D(l,1-this.beta1)),f=D(p,this.beta2),d=Ee(l),h=Sn(f,d);c.assign(m),p.assign(h);let g=X(D(pt(o,n),pt(m,X(h,this.epsilon))),a);a.assign(g)}),this.iteration.assign(X(this.iteration,1)),this.accBeta1.assign(D(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&vt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedWeightedInfNorm!=null&&vt(this.accumulatedWeightedInfNorm.map(t=>t.variable))}async getWeights(){throw new Error(\"getWeights() is not implemented for Adamax yet.\")}async setWeights(t){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(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon,e.decay)}};fu.className=\"Adamax\";Cn(fu);var Bi=class extends Wr{constructor(t){super(),this.learningRate=t,this.setLearningRate(t)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=Array.isArray(t)?t[o].tensor:t[n];if(s==null)return;let i=k.registeredVariables[n];B(()=>{let a=X(D(this.c,s),i);i.assign(a)})}),this.incrementIterations()}setLearningRate(t){this.learningRate=t,this.c!=null&&this.c.dispose(),this.c=De(mt(-t))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(t){if(t=await this.extractIterations(t),t.length!==0)throw new Error(\"SGD optimizer does not have settable weights.\")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(t,e){return new t(e.learningRate)}};Bi.className=\"SGD\";Cn(Bi);var du=class extends Bi{constructor(t,e,n=!1){super(t),this.learningRate=t,this.momentum=e,this.useNesterov=n,this.accumulations=[],this.m=mt(this.momentum)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n];this.accumulations[o]==null&&(this.accumulations[o]={originalName:`${n}/momentum`,variable:B(()=>It(s).variable(!1))});let i=this.accumulations[o].variable,a=Array.isArray(t)?t[o].tensor:t[n];a!=null&&B(()=>{let u,l=X(D(this.m,i),a);this.useNesterov?u=X(D(this.c,X(a,D(l,this.m))),s):u=X(D(this.c,l),s),i.assign(l),s.assign(u)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&vt(this.accumulations.map(t=>t.variable))}setMomentum(t){this.momentum=t}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=!1;this.accumulations=t.map(n=>({originalName:n.name,variable:n.tensor.variable(e)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(t,e){return new t(e.learningRate,e.momentum,e.useNesterov)}};du.className=\"Momentum\";Cn(du);var hu=class extends Wr{constructor(t,e=.9,n=0,o=null,s=!1){if(super(),this.learningRate=t,this.decay=e,this.momentum=n,this.epsilon=o,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=s,o==null&&(this.epsilon=k.backend.epsilon()),t==null)throw new Error(\"learningRate for RMSPropOptimizer must be defined.\")}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n],i=!1;this.accumulatedMeanSquares[o]==null&&(this.accumulatedMeanSquares[o]={originalName:`${n}/rms`,variable:B(()=>It(s).variable(i))}),this.accumulatedMoments[o]==null&&(this.accumulatedMoments[o]={originalName:`${n}/momentum`,variable:B(()=>It(s).variable(i))}),this.accumulatedMeanGrads[o]==null&&this.centered&&(this.accumulatedMeanGrads[o]={originalName:`${n}/mg`,variable:B(()=>It(s).variable(i))});let a=Array.isArray(t)?t[o].tensor:t[n];if(a==null)return;let u=this.accumulatedMeanSquares[o].variable,l=this.accumulatedMoments[o].variable;B(()=>{let c=X(D(u,this.decay),D(Mt(a),1-this.decay));if(this.centered){let p=this.accumulatedMeanGrads[o].variable,m=X(D(p,this.decay),D(a,1-this.decay)),f=pt(D(a,this.learningRate),Se(ct(c,X(Mt(m),this.epsilon)))),d=X(D(l,this.momentum),f);u.assign(c),p.assign(m),l.assign(d);let h=ct(s,d);s.assign(h)}else{let p=X(D(u,this.decay),D(Mt(a),1-this.decay)),m=X(D(l,this.momentum),pt(D(a,this.learningRate),Se(X(p,this.epsilon))));u.assign(p),l.assign(m);let f=ct(s,m);s.assign(f)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&vt(this.accumulatedMeanSquares.map(t=>t.variable)),this.accumulatedMeanGrads!=null&&this.centered&&vt(this.accumulatedMeanGrads.map(t=>t.variable)),this.accumulatedMoments!=null&&vt(this.accumulatedMoments.map(t=>t.variable))}async getWeights(){let t=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&t.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=this.centered?t.length/3:t.length/2,n=!1;this.accumulatedMeanSquares=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedMoments=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=t.slice(e*2,e*3).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(t,e){return new t(e.learningRate,e.decay,e.momentum,e.epsilon,e.centered)}};hu.className=\"RMSProp\";Cn(hu);var Ws=class{static sgd(t){return new Bi(t)}static momentum(t,e,n=!1){return new du(t,e,n)}static rmsprop(t,e=.9,n=0,o=null,s=!1){return new hu(t,e,n,o,s)}static adam(t=.001,e=.9,n=.999,o=null){return new mu(t,e,n,o)}static adadelta(t=.001,e=.95,n=null){return new cu(t,e,n)}static adamax(t=.002,e=.9,n=.999,o=null,s=0){return new fu(t,e,n,o,s)}static adagrad(t,e=.1){return new pu(t,e)}};var ic={sgd:Ws.sgd,momentum:Ws.momentum,adadelta:Ws.adadelta,adagrad:Ws.adagrad,rmsprop:Ws.rmsprop,adamax:Ws.adamax,adam:Ws.adam};var yX=(()=>typeof requestAnimationFrame!=\"undefined\"?requestAnimationFrame:typeof setImmediate!=\"undefined\"?setImmediate:r=>r())();function gh(){return new Promise(r=>yX(()=>r()))}var v={};Wt(v,{ERF_A1:()=>RX,ERF_A2:()=>FX,ERF_A3:()=>OX,ERF_A4:()=>PX,ERF_A5:()=>LX,ERF_P:()=>DX,PARALLELIZE_THRESHOLD:()=>yy,RowPartitionType:()=>Vi,SELU_SCALE:()=>f0,SELU_SCALEALPHA:()=>m0,applyActivation:()=>oc,assertAndGetBroadcastShape:()=>Pt,assertAxesAreInnerMostDims:()=>Hq,assertParamsConsistent:()=>bX,assignToTypedArray:()=>WX,axesAreInnerMostDims:()=>Jv,calculateShapes:()=>IE,checkEinsumDimSizes:()=>XX,checkPadOnDimRoundingMode:()=>Ie,combineLocations:()=>HE,combineRaggedTensorToTensorShapes:()=>CX,complexWithEvenIndex:()=>BX,complexWithOddIndex:()=>VX,computeConv2DInfo:()=>ju,computeConv3DInfo:()=>ME,computeDefaultPad:()=>Zv,computeDilation2DInfo:()=>KH,computeOptimalWindowSize:()=>NX,computeOutAndReduceShapes:()=>Qv,computeOutShape:()=>wX,computePool2DInfo:()=>Yv,computePool3DInfo:()=>jH,convertConv2DDataFormat:()=>zE,decodeEinsumEquation:()=>KX,eitherStridesOrDilationsAreOne:()=>Ar,expandShapeToKeepDim:()=>yo,exponent:()=>HX,exponents:()=>UX,fromStringArrayToUint8:()=>g5,fromUint8ToStringArray:()=>h5,getAxesPermutation:()=>t0,getBroadcastDims:()=>bE,getComplexWithIndex:()=>GX,getEinsumComputePath:()=>YX,getEinsumPermutation:()=>jX,getFusedBiasGradient:()=>nc,getFusedDyActivation:()=>rc,getImageCenter:()=>TX,getInnerMostAxes:()=>qq,getPermuted:()=>EX,getRaggedRank:()=>SX,getReductionAxes:()=>ge,getReshaped:()=>kX,getReshapedPermuted:()=>_X,getRowPartitionTypesHelper:()=>IX,getSliceBeginCoords:()=>AX,getSliceSize:()=>$X,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>t5,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>e5,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>r5,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>s5,getSparseReshapeInputOutputMismatchErrorMessage:()=>a5,getSparseReshapeInputOutputMultipleErrorMessage:()=>i5,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>n5,getSparseReshapeNegativeOutputDimErrorMessage:()=>o5,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>p5,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>l5,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>u5,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>c5,getUndoAxesPermutation:()=>ph,isIdentityPermutation:()=>ZX,log:()=>o4,mergeRealAndImagArrays:()=>MX,prepareAndValidate:()=>CE,prepareSplitSize:()=>QX,segment_util:()=>h0,shouldFuse:()=>sc,slice_util:()=>Le,splitRealAndImagArrays:()=>zX,tupleValuesAreOne:()=>to,upcastType:()=>sr,validateDefaultValueShape:()=>vX,validateInput:()=>sx,validateUpdateShape:()=>Uv,warn:()=>vi});function bX(r,t){let e=r[0].length;r.forEach((o,s)=>{E(o.length===e,()=>`Error in concat${e}D: rank of tensors[${s}] must be the same as the rank of the rest (${e})`)}),E(t>=0&&t`Error in concat${e}D: axis must be between 0 and ${e-1}.`);let n=r[0];r.forEach((o,s)=>{for(let i=0;i`Error in concat${e}D: Shape of tensors[${s}] (${o}) does not match the shape of the rest (${n}) along the non-concatenated axis ${s}.`)})}function wX(r,t){let e=r[0].slice();for(let n=1;n=0)if(a>=0){if(a!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${o+r}] = ${s} but shape[${o+r}] = ${a}`)}else n[i]=s}return n}function IX(r){let t={FIRST_DIM_SIZE:Vi.FIRST_DIM_SIZE,VALUE_ROWIDS:Vi.VALUE_ROWIDS,ROW_LENGTHS:Vi.ROW_LENGTHS,ROW_SPLITS:Vi.ROW_SPLITS,ROW_LIMITS:Vi.ROW_LIMITS,ROW_STARTS:Vi.ROW_STARTS},e=[];for(let n of r)if(n in t)e.push(t[n]);else break;return e}function SX(r){return r.length===0?0:r[0]===Vi.FIRST_DIM_SIZE?r.length-1:r.length}function vX(r,t){if(r==null||t==null)return;let e=r.length,n=t.length;if(e>=n)throw new Error(`defaultValue.shape=${r} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${e} must be less than ragged tensor input flatValues.rank = ${n})`);for(let o=0;o=0&&i>=0&&s!==1&&s!==i)throw new Error(`defaultValue.shape=${r}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${o-r.length}] = ${s} but ragged tensor input.flatValues.shape[${o-r.length}] = ${i}`)}}var yy=30;function NX(r){return r<=yy?r:sp(r,Math.floor(Math.sqrt(r)))}function TX(r,t,e){let n=e*(typeof r==\"number\"?r:r[0]),o=t*(typeof r==\"number\"?r:r[1]);return[n,o]}function kX(r,t,e,n=!0){let o=[];if(n)o=o.concat(t.slice(0)),o.push(r[0]/e),o=o.concat(r.slice(1));else{o=o.concat(r[0]);let s=t.length;for(let i=0;i=t*2+1||i%2===1?s.push(i):o.push(i);n.push(...o),n.push(0),n.push(...s)}return n}function _X(r,t,e,n=!0){let o=[];n?o.push(r[0]/e):o.push(r[0]*e);for(let s=1;s\",qX=/->/g,CA=\",\",IA=\"...\";function KX(r,t){r=r.replace(/\\s/g,\"\");let e=(r.length-r.replace(qX,\"\").length)/d0.length;if(e<1)throw new Error(\"Equations without an arrow are not supported.\");if(e>1)throw new Error(`Equation must contain exactly one arrow (\"${d0}\").`);let[n,o]=r.split(d0);E(n.indexOf(IA)===-1,()=>`The ellipsis notation (\"${IA}\") is not supported yet.`);let s=n.split(CA),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error(\"Support for more than 2 input tensors is not implemented yet.\");let a=[];for(let m=0;md.indexOf(f)!==-1))throw new Error(`Output subscripts contain the label ${f} not present in the input subscripts.`);a.indexOf(f)===-1&&a.push(f)}for(let m=0;mo!==-1),{permutationIndices:e,expandDims:n}}function XX(r,t,e){let n=new Array(r);for(let o=0;o`Expected dimension ${n[t[o][i]]} at axis ${i} of input shaped ${JSON.stringify(s)}, but got dimension ${s[i]}`)}}function YX(r,t){let e=r,n=[],o=0;r.length===0&&e.push(-1),o=r.length+1;for(let i=0;it===e)}function JX(r,t){let e=[];for(let n=0;n\"Number of splits must evenly divide the axis.\"),n=new Array(t).fill(r.shape[e]/t);else{let o=t.reduce((i,a)=>(a===-1&&(i+=1),i),0);E(o<=1,()=>\"There should be only one negative value in split array.\");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((a,u)=>u>0?a+u:a);t[s]=r.shape[e]-i}E(r.shape[e]===t.reduce((i,a)=>i+a),()=>\"The sum of sizes must match the size of the axis dimension.\"),n=t}return n}function t5(r){return`Received SparseTensor with denseShape[0] = 0 but\n indices.shape[0] = ${r}`}function e5(r,t){return`indices(${r}, 0) is invalid: ${t} < 0`}function r5(r,t,e){return`indices(${r}, 0) is invalid: ${t} >= ${e}`}function n5(r,t){return`only one output dimension may be -1, not both ${r} and ${t}`}function o5(r,t){return`size ${r} must be non-negative, not ${t}`}function s5(){return\"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero\"}function i5(r,t){let e=Jt(r),n=Jt(t);return`Input to reshape is a SparseTensor with ${e}\n dense values, but the requested shape requires a multiple of ${n}. inputShape=${r} outputShape= ${t}`}function a5(r,t){let e=Jt(r),n=Jt(t);return`Input to reshape is a tensor with ${e} dense values, but the requested shape has ${n}. inputShape=${r} outputShape=${t}`}function l5(){return\"segment ids must be >= 0\"}function u5(){return\"segment ids are not increasing\"}function c5(r,t){return`Segment id ${r} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function p5(r,t,e){return`Bad: indices[${r}] == ${t} out of range [0, ${e})`}var h0={};Wt(h0,{collectGatherOpShapeInfo:()=>d5,computeOutShape:()=>f5,segOpComputeOptimalWindowSize:()=>m5});function m5(r,t){let e=!1,n;for(r<=yy?(n=r,e=!0):n=sp(r,Math.floor(Math.sqrt(r)));!e;)n>t||n===r?e=!0:n=sp(r,n+1);return n}function f5(r,t,e){let n=[],o=r.length;for(let s=0;so))throw new Error(`Expect batchDims in the range of [-${o}, ${o}], but got ${n}`);if(n<0&&(n+=o),n>s)throw new Error(`batchDims (${n}) must be less than rank(x) (\n ${s}).`);if(eWp(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function g5(r){return r.map(t=>Hl(t))}var Ur={};Wt(Ur,{nonMaxSuppressionV3Impl:()=>fy,nonMaxSuppressionV4Impl:()=>dy,nonMaxSuppressionV5Impl:()=>hy,whereImpl:()=>ay});var by={kernelName:ii,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,bo(J(e,\"float32\"),-1))}}};var SA={kernelName:oa,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Mt(J(e,\"float32\")),o=Se(ct(mt(1),n));return Ht(pt(r,o))}}}};var vA={kernelName:sa,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Se(ct(Mt(J(e,\"float32\")),1));return pt(r,n)}}}};var NA={kernelName:Zn,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=r,u=ge(e.shape,o);return u.length>0&&(a=ft(a,u)),R(a,e.shape)},b:()=>{let a=r,u=ge(n.shape,o);return u.length>0&&(a=ft(a,u)),R(a,n.shape)}}}};var TA={kernelName:Go,saveAllInputs:!0,gradFunc:(r,t)=>{let e={};return t.forEach((n,o)=>{e[o]=()=>r.clone()}),e}};var kA={kernelName:Wo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>It(e)}}};var EA={kernelName:kl,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>It(e)}}};var _A={kernelName:la,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Se(ct(mt(1),Mt(J(e,\"float32\")))))}}};var AA={kernelName:ua,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Se(X(mt(1),Mt(J(e,\"float32\"))));return pt(r,n)}}}};var $A={kernelName:ma,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=X(Mt(e),Mt(n)),u=D(r,pt(n,a)),l=ge(e.shape,o);return l.length>0&&(u=ft(u,l)),R(u,e.shape)},b:()=>{let a=X(Mt(e),Mt(n)),u=Ht(D(r,pt(e,a))),l=ge(n.shape,o);return l.length>0&&(u=ft(u,l)),R(u,n.shape)}}}};var DA={kernelName:ca,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,X(Mt(J(e,\"float32\")),1))}}};var RA={kernelName:pa,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,ct(mt(1),Mt(J(e,\"float32\"))))}}};function x5(r,t,e,n,o,s){let i=I(r,\"dy\",\"avgPool3dGrad\"),a=I(t,\"input\",\"avgPool3dGrad\"),u=i,l=a,c=!1;a.rank===4&&(c=!0,u=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),l=R(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),E(u.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${u.rank}.`),E(l.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${l.rank}.`),Ie(\"avgPool3dGrad\",o,s);let p={dy:u,input:l},m={filterSize:e,strides:n,pad:o,dimRoundingMode:s},f=k.runKernel(lp,p,m);return c?R(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}var FA=T({avgPool3dGrad_:x5});var OA={kernelName:El,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i,dimRoundingMode:a}=e;return{x:()=>FA(r,n,o,s,i,a)}}};function y5(r,t,e,n,o){let s=I(r,\"dy\",\"avgPoolGrad\"),i=I(t,\"input\",\"avgPoolGrad\");E(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let a=i,u=s,l=!1;i.rank===3&&(l=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),E(u.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${u.rank}.`),E(a.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${a.rank}.`);let c={dy:u,input:a},p={filterSize:e,strides:n,pad:o},m=k.runKernel(ap,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var PA=T({avgPoolGrad_:y5});var LA={kernelName:Uo,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i}=e;return{x:()=>PA(r,n,o,s,i)}}};var MA={kernelName:Ho,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t,e)=>{let[n,o]=t,{transposeA:s,transposeB:i}=e;return!s&&!i?{a:()=>Lt(r,o,!1,!0),b:()=>Lt(n,r,!0,!1)}:!s&&i?{a:()=>Lt(r,o,!1,!1),b:()=>Lt(r,n,!0,!1)}:s&&!i?{a:()=>Lt(o,r,!1,!0),b:()=>Lt(n,r,!1,!1)}:{a:()=>Lt(o,r,!0,!0),b:()=>Lt(r,n,!0,!0)}}};var zA={kernelName:ai,gradFunc:(r,t,e)=>{let{blockShape:n,crops:o}=e;return{x:()=>nu(r,n,o)}}};var BA={kernelName:p1,gradFunc:(r,t,e)=>{let n=e,o=n.inputShape,s=n.shape,i=Array.from(s);for(let u=o.length-1;u>=0;u--)if(o[u]===s[u])i[u]=1;else if(o[u]!==1)throw new Error(`broadcastTo(): [${o}] cannot be broadcast to [${s}].`);let a=[];for(let u=0;u1&&a.push(u);return{x:()=>ft(r,a,!0)}}};var VA={kernelName:lo,gradFunc:r=>({x:()=>r.clone()})};var GA={kernelName:qo,gradFunc:r=>({x:()=>It(r)})};var WA={kernelName:uo,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{clipValueMin:o,clipValueMax:s}=e;return{x:()=>_e(Rr(ln(n,o),Ln(n,s)),r,It(r))}}};var UA={kernelName:_l,inputsToSave:[\"x\"],gradFunc:by.gradFunc};var HA={kernelName:li,saveAllInputs:!0,gradFunc:(r,t,e)=>{let n=t.map(u=>u.shape),{axis:o}=e,s=lr(o,t[0].shape)[0],i=n.map(u=>u[s]);return mr(r,i,s).map(u=>()=>u)}};var qA={kernelName:Ko,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,{dilations:s,strides:i,pad:a,dataFormat:u}=e;return E(to(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>tm(n.shape,r,o,i,a,u),filter:()=>Cm(n,r,o.shape,i,a,u)}}};var KA={kernelName:jo,inputsToSave:[\"dy\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,{strides:s,pad:i,dataFormat:a,dimRoundingMode:u}=e;return{dy:()=>In(r,o,s,i,a,1,u),filter:()=>Cm(r,n,o.shape,s,i,a,u)}}};function b5(r,t,e,n,o){let s=r;r.rank===4&&(s=R(r,[1,r.shape[0],r.shape[1],r.shape[2],r.shape[3]]));let i=t;i.rank===4&&(i=R(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),E(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),E(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),E(e.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${e}.`),E(s.shape[4]===e[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${e[3]}.`),E(i.shape[4]===e[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${e[4]}).`);let a={x:s,dy:i},u={strides:n,pad:o,filterShape:e};return k.runKernel(fp,a,u)}var jA=T({conv3DBackpropFilter_:b5});var XA={kernelName:Al,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s}=e;E(to(n),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${n}'`);let[i,a]=t;return{x:()=>kx(i.shape,r,a,o,s),filter:()=>jA(i,r,a.shape,o,s)}}};var YA={kernelName:Xo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(Ht(fm(J(e,\"float32\"))),r)}}};var ZA={kernelName:Yo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(dm(J(e,\"float32\")),r)}}};var JA={kernelName:Zo,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o,exclusive:s,reverse:i}=e;return{x:()=>{let a=t0([o],n.rank),u=nm(r,o,s,!i);return a!=null&&(u=Ot(u,a)),u}}}};var QA={kernelName:Jo,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s,dimRoundingMode:i}=e,a=n==null?[1,1]:n;E(to(a),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${a}'`);let[u,l]=t;return E(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${u.rank}.`),E(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${l.rank}.`),E(u.shape[3]===l.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${u.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),E(Ar(o,a),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${o} and dilations '${a}'.`),Ie(\"depthwiseConv2d\",s,i),{x:()=>cy(u.shape,r,l,o,s,a,i),filter:()=>uy(u,r,l.shape,o,s,a,i)}}};var t2={kernelName:$l,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,s={x:n,filter:o,dy:r},i={x:n,filter:o,dy:r};return{x:()=>k.runKernel(jd,s,e),filter:()=>k.runKernel(Xd,i,e)}}};var e2={kernelName:ts,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t,n={dy:r,y:e};return{x:()=>k.runKernel(wp,n)}}};var r2={kernelName:ga,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t,n=D(er(Ht(Mt(e))),2/Math.sqrt(Math.PI));return{x:()=>D(r,n)}}};var n2={kernelName:es,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,e)}}};var o2={kernelName:ui,inputsToSave:[\"input\"],gradFunc:(r,t)=>{let[e]=t;return{input:()=>R(r,e.shape)}}};var s2={kernelName:ya,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,er(e))}}};var i2={kernelName:rs,gradFunc:r=>({x:()=>It(r)})};var a2={kernelName:ns,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=pt(r,J(n,\"float32\")),u=ge(e.shape,o);return u.length>0?R(ft(a,u),e.shape):a},b:()=>{let a=D(r,J(e,\"float32\")),u=ge(n.shape,o);u.length>0&&(a=R(ft(a,u),n.shape));let l=Mt(n);return Ht(pt(a,J(l,\"float32\")))}}}};var l2={kernelName:os,inputsToSave:[\"x\",\"mean\",\"variance\",\"scale\"],gradFunc:(r,t,e)=>{let{varianceEpsilon:n}=e,[o,s,i,a]=t,u=a==null?mt(1):a,l=ge(s.shape,o.shape),c=[];if(s.rank===1){for(let C=0;Cs.rank===1?R(D(D(r,Dr(R(f,[1,1,1,s.shape[0]]),c)),u),o.shape):R(D(D(r,f),u),o.shape),mean:()=>{let C=D(D(f,mt(-1)),m);return s.rank===1&&(C=ft(C,l)),R(C,s.shape)},variance:()=>{let C=D(D(d,p),m);return s.rank===1&&(C=ft(C,l)),R(C,s.shape)},scale:()=>{let C=D(p,f),N=D(r,C);return s.rank===1&&(N=ft(N,l)),R(N,s.shape)},offset:()=>{let C=r;return s.rank===1&&(C=ft(C,l)),R(C,s.shape)}}}};var p2={kernelName:ci,inputsToSave:[\"x\",\"indices\"],gradFunc:(r,t,e)=>{let[n,o]=t,{axis:s}=e,i=lr(s,n.shape)[0];return{x:()=>{let u=n.shape,l=o.size,c=u.slice(0,i),p=c.length,m=u.slice(s,u.length).slice(1),f=m.length,d=u2(0,p),h=u2(p+1,p+1+f),g=c2([c,[l],m]),x=R(r,g),b=R(o,[l]),w=c2([[p],d,h]),C=Ot(x,w),N=wm(C,b,n.shape[i]),_=ph(w);return N=Ot(N,_),N},indices:()=>o}}};function u2(r,t){let e=[];for(let n=r;n{let[e,n]=t;return{a:()=>It(e),b:()=>It(n)}}};var f2={kernelName:co,gradFunc:r=>({x:()=>J(r,\"float32\")})};var d2={kernelName:Ia,gradFunc:r=>({x:()=>It(r)})};var h2={kernelName:Sa,gradFunc:r=>({x:()=>It(r)})};var g2={kernelName:va,gradFunc:r=>({x:()=>It(r)})};var x2={kernelName:is,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{alpha:o}=e,s=Re(n,0);return{x:()=>_e(s,r,D(r,o))}}};var y2={kernelName:ka,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,X(e,1))}}};var b2={kernelName:as,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,J(e,\"float32\"))}}};var w2={kernelName:f1,inputsToSave:[],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e;return{logits:()=>{let i=er(n);return ct(r,D(ft(r,o,!0),i))}}}};function w5(r,t,e,n=5,o=1,s=1,i=.5){let a={x:r,y:t,dy:e},u={depthRadius:n,bias:o,alpha:s,beta:i};return k.runKernel(Np,a,u)}var C2=T({localResponseNormalizationBackprop_:w5});var I2={kernelName:Rl,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{depthRadius:s,bias:i,alpha:a,beta:u}=e;return{x:()=>C2(n,o,r,s,i,a,u)}}};function wy(r,t,e,n){return t.rankD(r,J($r(e,t),r.dtype))}}var g0={kernelName:ls,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{reductionIndices:o}=n,s=t[0],i=t[1],a=lr(o,s.shape),u=wy(r,i,s,a);return{x:()=>u.x()}}};var S2={kernelName:us,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>D(r,J(ln(e,n),\"float32\")),b:()=>D(r,J(om(e,n),\"float32\"))}}};function C5(r,t,e,n,o,s,i){let a=I(r,\"dy\",\"maxPool3dGrad\"),u=I(t,\"input\",\"maxPool3dGrad\"),l=I(e,\"output\",\"maxPool3dGrad\"),c=a,p=u,m=l,f=!1;u.rank===4&&(f=!0,c=R(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),p=R(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]]),m=R(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]])),E(c.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${c.rank}.`),E(p.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${p.rank}.`),E(m.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${m.rank}.`),Ie(\"maxPool3dGrad\",s,i);let d={dy:c,input:p,output:m},h={filterSize:n,strides:o,pad:s,dimRoundingMode:i},g=k.runKernel(kp,d,h);return f?R(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var v2=T({maxPool3dGrad_:C5});var N2={kernelName:Fl,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=e;return{x:()=>v2(r,n,o,s,i,a,u)}}};function I5(r,t,e,n,o,s,i){let a=I(r,\"dy\",\"maxPoolGrad\"),u=I(t,\"input\",\"maxPoolGrad\"),l=I(e,\"output\",\"maxPoolGrad\");E(u.rank===a.rank,()=>`Rank of input (${u.rank}) does not match rank of dy (${a.rank})`),E(a.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${a.rank}.`),E(u.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${u.rank}.`),Ie(\"maxPoolGrad\",s,i);let c={dy:a,input:u,output:l},p={filterSize:n,strides:o,pad:s,dimRoundingMode:i};return k.runKernel(Tp,c,p)}var T2=T({maxPoolGrad_:I5});var k2={kernelName:cs,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a}=e;return{x:()=>T2(r,n,o,s,i,a)}}};var E2={kernelName:ps,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=lr(o,n.shape),a=Qv(n.shape,s)[1],u=Jt(a);return{x:()=>{let c=n.shape.slice();s.forEach(f=>{c[f]=1});let p=R(r,c);return pt(D(p,cr(n.shape,\"float32\")),u)}}}};var _2={kernelName:ms,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{axis:o}=n,[s,i]=t,a=lr(o,s.shape),u=wy(r,i,s,a);return{x:()=>u.x()}}};var A2={kernelName:fs,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>D(r,J(Ln(e,n),\"float32\")),b:()=>D(r,J(Re(e,n),\"float32\"))}}};var $2={kernelName:ds,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Rt(r,s,n.shape)}}};var D2={kernelName:$a,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=ge(e.shape,o);return a.length>0?R(ft(r,a),e.shape):r},b:()=>{let a=D(r,Ht(Pi(pt(e,n)))),u=ge(n.shape,o);return u.length>0?R(ft(a,u),n.shape):a}}}};var R2={kernelName:hs,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=D(r,J(n,\"float32\")),u=ge(e.shape,o);return u.length>0?R(ft(a,u),e.shape):a},b:()=>{let a=D(r,J(e,\"float32\")),u=ge(n.shape,o);return u.length>0?R(ft(a,u),n.shape):a}}}};var F2={kernelName:pi,gradFunc:r=>({x:()=>Ht(r)})};var O2={kernelName:gs,inputsToSave:[\"indices\"],gradFunc:(r,t)=>{let e=t[0];return{indices:()=>Ne(e.shape,\"float32\")}}};var P2={kernelName:mi,gradFunc:r=>({x:()=>It(r)})};var L2={kernelName:fi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let{axis:n}=e;return vr(r,n).map(s=>()=>s)}};var x0={kernelName:xs,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Rt(r,s,n.shape)}}};var M2={kernelName:ys,inputsToSave:[\"a\",\"b\"],outputsToSave:[!0],gradFunc:(r,t)=>{let[e,n,o]=t,s=e,i=n,a=Pt(s.shape,i.shape);return{a:()=>{let c=J(i,\"float32\"),p=D(r,D(c,an(s,ct(c,mt(1))))),m=ge(s.shape,a);return m.length>0&&(p=ft(p,m)),R(p,s.shape)},b:()=>{let c=Re(s,0),p=_e(c,Sr(s),It(s)),m=D(r,D(o,p)),f=ge(i.shape,a);return f.length>0&&(m=ft(m,f)),R(m,i.shape)}}}};var z2={kernelName:bs,inputsToSave:[\"x\",\"alpha\"],gradFunc:(r,t)=>{let[e,n]=t,o=Re(e,0);return{x:()=>_e(o,r,D(r,n)),alpha:()=>{let s=_e(o,It(r),D(r,e)),i=ge(n.shape,r.shape);return i.length>0&&(s=ft(s,i)),R(s,n.shape)}}}};function S5(r,t,e){let n=r.shape.slice();n[e]=1;let o=R(t,n),s=Xu(r,e,!0,!1),i=Xu(r,e,!0,!0),a=D(s,i);return D(o,a)}function v5(r,t,e){let n=r.shape.length,o=n-e.length,s=v.getAxesPermutation(e,n),i=r;s!=null&&(i=Ot(r,s));let a=i.shape.slice(),l=a.splice(n-e.length,e.length).reduce((m,f)=>m*f,1);a.push(l);let c=i.reshape(a),p=S5(c,t,o);if(p=p.reshape(i.shape),s!=null){let m=v.getUndoAxesPermutation(s);p=Ot(p,m)}return p}var B2={kernelName:ws,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=[];return o==null?s=n.shape.map((i,a)=>a):typeof o==\"number\"?s=[o]:s=o,{x:()=>v5(n,r,s)}}};var V2={kernelName:Qo,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=pt(r,J(n,\"float32\")),u=ge(e.shape,o);return u.length>0?R(ft(a,u),e.shape):a},b:()=>{let a=D(r,J(e,\"float32\")),u=ge(n.shape,o);u.length>0&&(a=R(ft(a,u),n.shape));let l=Mt(n);return Ht(pt(a,J(l,\"float32\")))}}}};var G2={kernelName:Pa,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Ht(Mt(e)))}}};var W2={kernelName:vs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t,n=D(Ln(e,6),bo(e));return{x:()=>D(r,J(n,\"float32\"))}}};var U2={kernelName:Cs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,J(bo(e),\"float32\"))}}};var H2={kernelName:di,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,e.shape)}}};var q2={kernelName:Ss,inputsToSave:[\"images\"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>k.runKernel(Op,o,e)}}};var K2={kernelName:Is,inputsToSave:[\"images\"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>k.runKernel(Fp,o,e)}}};var j2={kernelName:Ns,gradFunc:(r,t,e)=>{let{dims:n}=e,o=lr(n,r.shape);return{x:()=>pr(r,o)}}};var X2={kernelName:Ts,gradFunc:r=>({x:()=>It(r)})};var Y2={kernelName:ks,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>Ht(pt(r,D(an(e,1.5),2)))}}};var Z2={kernelName:hi,inputsToSave:[\"condition\"],gradFunc:(r,t)=>{let[e]=t;return{condition:()=>J(It(e),\"float32\"),t:()=>D(r,J(e,r.dtype)),e:()=>D(r,J(eu(e),r.dtype))}}};var J2={kernelName:Ma,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Re(e,mt(0)),o=mt(m0),s=mt(f0),i=D(r,s),a=D(D(r,o),er(J(e,\"float32\")));return _e(n,i,a)}}}};var Q2={kernelName:_s,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,D(e,ct(mt(1),e)))}}};var t$={kernelName:Ba,gradFunc:r=>({x:()=>It(r)})};var e$={kernelName:Es,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(Jl(J(e,\"float32\")),r)}}};var r$={kernelName:za,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(rm(J(e,\"float32\")),r)}}};var n$={kernelName:gi,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{begin:o,size:s}=e,i=n.shape,[a,u]=qv(n,o,s),l=[];for(let c=0;ccn(r,l)}}};var o$={kernelName:Ds,outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{dim:o}=e,s=!0,i=D(r,n);return{logits:()=>ct(i,D(ft(i,[o],s),n))}}};var s$={kernelName:Va,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,Yr(e))}}};var y0={kernelName:xi,gradFunc:(r,t,e)=>{let{blockShape:n,paddings:o}=e;return{x:()=>Zl(r,n,o)}}};var b0={kernelName:yi,gradFunc:(r,t,e)=>{let{axis:n}=e;return{x:()=>ne(r,n)}}};var i$={kernelName:As,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,D(Se(J(e,\"float32\")),2))}}};var a$={kernelName:zl,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,D(J(e,\"float32\"),2))}}};var l$={kernelName:Rs,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=mt(2);return{a:()=>D(r,D(o,ct(e,n))),b:()=>D(r,D(o,ct(n,e)))}}};var u$={kernelName:po,gradFunc:r=>({x:()=>It(r)})};var c$={kernelName:Fs,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=r,u=ge(e.shape,o);return u.length>0&&(a=ft(a,u)),R(a,e.shape)},b:()=>{let a=r,u=ge(n.shape,o);return u.length>0&&(a=ft(a,u)),R(Ht(a),n.shape)}}}};var p$={kernelName:$s,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,o=n.shape.slice(),{axis:s}=e;lr(s,n.shape).forEach(l=>{o[l]=1});let a=R(r,o),u=D(a,cr(n.shape,\"float32\"));return{x:()=>u}}};var m$={kernelName:Os,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Mt(Jl(e)))}}};var f$={kernelName:Ps,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(ct(mt(1),Mt(e)),r)}}};var d$={kernelName:Jn,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{reps:o}=e;return{x:()=>{let i=It(n);if(n.rank===1)for(let a=0;a{let n=e,{perm:o}=n,s=ph(o);return{x:()=>Ot(r,s)}}};var g$={kernelName:bi,gradFunc:(r,t,e)=>{let n=e,{axis:o}=n;return{value:()=>nr(r,o)}}};var x$={kernelName:Wl,inputsToSave:[\"segmentIds\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>N5(r,e)}}};function N5(r,t){let e=Sn(t,It(t)),n=Li(r,e),o=ln(t,mt(0,\"int32\")),s=n.rank-o.rank;for(let a=0;a({x:()=>It(r)})};var T5=[by,SA,vA,NA,TA,kA,EA,_A,AA,$A,DA,RA,OA,LA,MA,zA,BA,VA,GA,WA,UA,HA,KA,qA,XA,YA,ZA,JA,QA,t2,V2,e2,r2,n2,o2,s2,a2,i2,l2,p2,m2,f2,d2,h2,g2,x2,y2,b2,w2,I2,g0,g0,S2,N2,k2,E2,_2,A2,$2,D2,R2,F2,O2,P2,L2,x0,x0,M2,z2,B2,G2,W2,U2,H2,q2,K2,j2,X2,Y2,Z2,J2,Q2,t$,e$,r$,n$,o$,s$,y0,y0,b0,b0,i$,l$,a$,u$,c$,p$,m$,f$,d$,h$,g$,x$,y$];for(let r of T5)h1(r);O().prototype.abs=function(){return this.throwIfDisposed(),Ee(this)};O().prototype.acos=function(){return this.throwIfDisposed(),ax(this)};O().prototype.acosh=function(){return this.throwIfDisposed(),lx(this)};O().prototype.add=function(r){return this.throwIfDisposed(),X(this,r)};O().prototype.all=function(r,t){return this.throwIfDisposed(),Zp(this,r,t)};O().prototype.any=function(r,t){return this.throwIfDisposed(),qu(this,r,t)};O().prototype.argMax=function(r){return this.throwIfDisposed(),Ai(this,r)};O().prototype.argMin=function(r){return this.throwIfDisposed(),ux(this,r)};O().prototype.asScalar=function(){return this.throwIfDisposed(),E(this.size===1,()=>\"The array must have only 1 element.\"),R(this,[])};O().prototype.asType=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.as1D=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.as2D=function(r,t){return this.throwIfDisposed(),R(this,[r,t])};O().prototype.as3D=function(r,t,e){return this.throwIfDisposed(),R(this,[r,t,e])};O().prototype.as4D=function(r,t,e,n){return this.throwIfDisposed(),R(this,[r,t,e,n])};O().prototype.as5D=function(r,t,e,n,o){return this.throwIfDisposed(),R(this,[r,t,e,n,o])};O().prototype.asin=function(){return this.throwIfDisposed(),cx(this)};O().prototype.asinh=function(){return this.throwIfDisposed(),px(this)};O().prototype.atan=function(){return this.throwIfDisposed(),mx(this)};O().prototype.atan2=function(r){return this.throwIfDisposed(),fx(this,r)};O().prototype.atanh=function(){return this.throwIfDisposed(),dx(this)};O().prototype.avgPool=function(r,t,e,n){return this.throwIfDisposed(),Yl(this,r,t,e,n)};O().prototype.batchToSpaceND=function(r,t){return this.throwIfDisposed(),Zl(this,r,t)};O().prototype.batchNorm=function(r,t,e,n,o){return this.throwIfDisposed(),Di(this,r,t,e,n,o)};O().prototype.broadcastTo=function(r){return this.throwIfDisposed(),Ri(this,r)};O().prototype.cast=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.ceil=function(){return this.throwIfDisposed(),Cx(this)};O().prototype.clipByValue=function(r,t){return this.throwIfDisposed(),Cr(this,r,t)};O().prototype.concat=function(r,t){return this.throwIfDisposed(),r instanceof Ft&&(r=[r]),ne([this,...r],t)};O().prototype.conv1d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Qp(this,r,t,e,n,o,s)};O().prototype.conv2dTranspose=function(r,t,e,n,o){return this.throwIfDisposed(),em(this,r,t,e,n,o)};O().prototype.conv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),In(this,r,t,e,n,o,s)};O().prototype.cos=function(){return this.throwIfDisposed(),Jl(this)};O().prototype.cosh=function(){return this.throwIfDisposed(),rm(this)};O().prototype.cumprod=function(r,t,e){return this.throwIfDisposed(),Xu(this,r,t,e)};O().prototype.cumsum=function(r,t,e){return this.throwIfDisposed(),nm(this,r,t,e)};O().prototype.depthToSpace=function(r,t){return this.throwIfDisposed(),_x(this,r,t)};O().prototype.depthwiseConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Fi(this,r,t,e,n,o,s)};O().prototype.dilation2d=function(r,t,e,n,o){return this.throwIfDisposed(),Ax(this,r,t,e,n,o)};O().prototype.divNoNan=function(r){return this.throwIfDisposed(),$x(this,r)};O().prototype.div=function(r){return this.throwIfDisposed(),pt(this,r)};O().prototype.dot=function(r){return this.throwIfDisposed(),Dx(this,r)};O().prototype.elu=function(){return this.throwIfDisposed(),Oi(this)};O().prototype.equal=function(r){return this.throwIfDisposed(),$r(this,r)};O().prototype.erf=function(){return this.throwIfDisposed(),Rx(this)};O().prototype.euclideanNorm=function(r,t){return this.throwIfDisposed(),Fx(this,r,t)};O().prototype.exp=function(){return this.throwIfDisposed(),er(this)};O().prototype.expandDims=function(r){return this.throwIfDisposed(),rr(this,r)};O().prototype.expm1=function(){return this.throwIfDisposed(),Ox(this)};O().prototype.fft=function(){return this.throwIfDisposed(),au(this)};O().prototype.flatten=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.floor=function(){return this.throwIfDisposed(),Pi(this)};O().prototype.floorDiv=function(r){return this.throwIfDisposed(),Yp(this,r)};O().prototype.gather=function(r,t){return this.throwIfDisposed(),Li(this,r,t)};O().prototype.greaterEqual=function(r){return this.throwIfDisposed(),ln(this,r)};O().prototype.greater=function(r){return this.throwIfDisposed(),Re(this,r)};O().prototype.ifft=function(){return this.throwIfDisposed(),tl(this)};O().prototype.irfft=function(){return this.throwIfDisposed(),xm(this)};O().prototype.isFinite=function(){return this.throwIfDisposed(),Px(this)};O().prototype.isInf=function(){return this.throwIfDisposed(),Lx(this)};O().prototype.isNaN=function(){return this.throwIfDisposed(),Mx(this)};O().prototype.leakyRelu=function(r){return this.throwIfDisposed(),Ql(this,r)};O().prototype.lessEqual=function(r){return this.throwIfDisposed(),Ln(this,r)};O().prototype.less=function(r){return this.throwIfDisposed(),om(this,r)};O().prototype.localResponseNormalization=function(r,t,e,n){return this.throwIfDisposed(),zx(this,r,t,e,n)};O().prototype.logSigmoid=function(){return this.throwIfDisposed(),Gx(this)};O().prototype.logSoftmax=function(r){return this.throwIfDisposed(),sm(this,r)};O().prototype.logSumExp=function(r,t){return this.throwIfDisposed(),im(this,r,t)};O().prototype.log=function(){return this.throwIfDisposed(),Sr(this)};O().prototype.log1p=function(){return this.throwIfDisposed(),tu(this)};O().prototype.logicalAnd=function(r){return this.throwIfDisposed(),Rr(this,r)};O().prototype.logicalNot=function(){return this.throwIfDisposed(),eu(this)};O().prototype.logicalOr=function(r){return this.throwIfDisposed(),am(this,r)};O().prototype.logicalXor=function(r){return this.throwIfDisposed(),Wx(this,r)};O().prototype.matMul=function(r,t,e){return this.throwIfDisposed(),Lt(this,r,t,e)};O().prototype.maxPool=function(r,t,e,n){return this.throwIfDisposed(),ru(this,r,t,e,n)};O().prototype.max=function(r,t){return this.throwIfDisposed(),Ir(this,r,t)};O().prototype.maximum=function(r){return this.throwIfDisposed(),Sn(this,r)};O().prototype.mean=function(r,t){return this.throwIfDisposed(),ve(this,r,t)};O().prototype.min=function(r,t){return this.throwIfDisposed(),Ja(this,r,t)};O().prototype.minimum=function(r){return this.throwIfDisposed(),Mi(this,r)};O().prototype.mirrorPad=function(r,t){return this.throwIfDisposed(),qx(this,r,t)};O().prototype.mod=function(r){return this.throwIfDisposed(),Kx(this,r)};O().prototype.mul=function(r){return this.throwIfDisposed(),D(this,r)};O().prototype.neg=function(){return this.throwIfDisposed(),Ht(this)};O().prototype.norm=function(r,t,e){return this.throwIfDisposed(),Qa(this,r,t,e)};O().prototype.notEqual=function(r){return this.throwIfDisposed(),Bs(this,r)};O().prototype.oneHot=function(r,t=1,e=0){return this.throwIfDisposed(),Ei(this,r,t,e)};O().prototype.onesLike=function(){return this.throwIfDisposed(),yr(this)};O().prototype.pad=function(r,t){return this.throwIfDisposed(),cn(this,r,t)};O().prototype.pool=function(r,t,e,n,o,s){return this.throwIfDisposed(),jx(this,r,t,e,n,o,s)};O().prototype.pow=function(r){return this.throwIfDisposed(),an(this,r)};O().prototype.prelu=function(r){return this.throwIfDisposed(),ou(this,r)};O().prototype.prod=function(r,t){return this.throwIfDisposed(),Xx(this,r,t)};O().prototype.reciprocal=function(){return this.throwIfDisposed(),ty(this)};O().prototype.relu=function(){return this.throwIfDisposed(),Fr(this)};O().prototype.relu6=function(){return this.throwIfDisposed(),lm(this)};O().prototype.reshapeAs=function(r){return this.throwIfDisposed(),R(this,r.shape)};O().prototype.reshape=function(r){return this.throwIfDisposed(),R(this,r)};O().prototype.resizeBilinear=function(r,t,e){return this.throwIfDisposed(),gy(this,r,t,e)};O().prototype.resizeNearestNeighbor=function(r,t,e){return this.throwIfDisposed(),xy(this,r,t,e)};O().prototype.reverse=function(r){return this.throwIfDisposed(),pr(this,r)};O().prototype.rfft=function(){return this.throwIfDisposed(),lu(this)};O().prototype.round=function(){return this.throwIfDisposed(),um(this)};O().prototype.rsqrt=function(){return this.throwIfDisposed(),cm(this)};O().prototype.selu=function(){return this.throwIfDisposed(),pm(this)};O().prototype.separableConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),mm(this,r,t,e,n,o,s)};O().prototype.sigmoid=function(){return this.throwIfDisposed(),Yr(this)};O().prototype.sign=function(){return this.throwIfDisposed(),ey(this)};O().prototype.sin=function(){return this.throwIfDisposed(),fm(this)};O().prototype.sinh=function(){return this.throwIfDisposed(),dm(this)};O().prototype.slice=function(r,t){return this.throwIfDisposed(),Rt(this,r,t)};O().prototype.softmax=function(r){return this.throwIfDisposed(),iu(this,r)};O().prototype.softplus=function(){return this.throwIfDisposed(),zs(this)};O().prototype.spaceToBatchND=function(r,t){return this.throwIfDisposed(),nu(this,r,t)};O().prototype.split=function(r,t){return this.throwIfDisposed(),mr(this,r,t)};O().prototype.sqrt=function(){return this.throwIfDisposed(),Se(this)};O().prototype.square=function(){return this.throwIfDisposed(),Mt(this)};O().prototype.squaredDifference=function(r){return this.throwIfDisposed(),ym(this,r)};O().prototype.squeeze=function(r){return this.throwIfDisposed(),Mn(this,r)};O().prototype.stack=function(r,t){this.throwIfDisposed();let e=r instanceof Ft?[this,r]:[this,...r];return nr(e,t)};O().prototype.step=function(r){return this.throwIfDisposed(),bo(this,r)};O().prototype.stridedSlice=function(r,t,e,n,o,s,i,a){return this.throwIfDisposed(),ry(this,r,t,e,n,o,s,i,a)};O().prototype.sub=function(r){return this.throwIfDisposed(),ct(this,r)};O().prototype.sum=function(r,t){return this.throwIfDisposed(),ft(this,r,t)};O().prototype.tan=function(){return this.throwIfDisposed(),ny(this)};O().prototype.tanh=function(){return this.throwIfDisposed(),$i(this)};O().prototype.tile=function(r){return this.throwIfDisposed(),Dr(this,r)};O().prototype.toBool=function(){return this.throwIfDisposed(),J(this,\"bool\")};O().prototype.toFloat=function(){return this.throwIfDisposed(),J(this,\"float32\")};O().prototype.toInt=function(){return this.throwIfDisposed(),J(this,\"int32\")};O().prototype.topk=function(r,t){return this.throwIfDisposed(),oy(this,r,t)};O().prototype.transpose=function(r){return this.throwIfDisposed(),Ot(this,r)};O().prototype.unique=function(r){return this.throwIfDisposed(),sy(this,r)};O().prototype.unsortedSegmentSum=function(r,t){return this.throwIfDisposed(),wm(this,r,t)};O().prototype.unstack=function(r){return this.throwIfDisposed(),vr(this,r)};O().prototype.where=function(r,t){return this.throwIfDisposed(),_e(r,this,t)};O().prototype.zerosLike=function(){return this.throwIfDisposed(),It(this)};var vn=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,vn.prototype)}},Hr=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Hr.prototype)}},M=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,M.prototype)}},St=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,St.prototype)}},Im=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Im.prototype)}};var xh=class{constructor(t){this.maxEntries=t||100,this.cache=new Map}get(t){let e;return this.cache.has(t)&&(e=this.cache.get(t),this.cache.delete(t),this.cache.set(t,e)),e}put(t,e){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxEntries){let n=this.cache.keys().next().value;this.cache.delete(n)}this.cache.set(t,e)}getMaxEntries(){return this.maxEntries}setMaxEntries(t){if(t<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${t}.`);if(this.maxEntries>t)for(let e=0;ee.toUpperCase())}var Co={};function Sm(r){if(r==null)return null;let t={};return t.className=r.getClassName(),t.config=r.getConfig(),t}function w0(r){if(!(r==null||typeof r!=\"object\"))if(Array.isArray(r))r.forEach(t=>w0(t));else{let t=Object.keys(r);for(let e of t){let n=r[e];n!=null&&typeof n==\"object\"&&(!Array.isArray(n)&&n.type===\"ndarray\"&&typeof n.value==\"number\"?r[e]=n.value:w0(n))}}}function Gi(r,t={},e={},n=\"object\",o=!1){if(typeof r==\"string\"){let s=r,i;if(s in e)i=e[s];else if(s in Co)i=Co[s];else if(i=t[s],i==null)throw new M(`Unknown ${n}: ${r}. This may be due to one of the following reasons:\n1. The ${n} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return i}else{let s=r;if(s.className==null||s.config==null)throw new M(`${n}: Improper config format: ${JSON.stringify(s)}.\n'className' and 'config' must set.`);let i=s.className,a,u;if(i in e?[a,u]=e[i]:i in Co?[a,u]=Co.className:i in t&&([a,u]=t[i]),a==null)throw new M(`Unknown ${n}: ${i}. This may be due to one of the following reasons:\n1. The ${n} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(u!=null){let l={};for(let f of Object.keys(Co))l[f]=Co[f];for(let f of Object.keys(e))l[f]=e[f];let c=s.config;c.customObjects=l;let p=Object.assign({},Co);for(let f of Object.keys(e))Co[f]=e[f];w0(s.config);let m=u(a,s.config,e,o);return Co=Object.assign({},p),m}else{let l=Object.assign({},Co);for(let p of Object.keys(e))Co[p]=e[p];let c=new a(s.config);return Co=Object.assign({},l),c}}}function k5(r,t){return rt?1:0}function yh(r,t){return-1*k5(r,t)}function vo(r){if(r==null)return r;let t=[];for(let e of r)t.indexOf(e)===-1&&t.push(e);return t}function b$(r){if(r==null)throw new M(`Invalid value in obj: ${JSON.stringify(r)}`);for(let t in r)if(r.hasOwnProperty(t))return!1;return!0}function Wi(r,t,e){if(e!=null&&r.indexOf(e)<0)throw new M(`${e} is not a valid ${t}. Valid values are ${r} or null/undefined.`)}function Cy(r,t,e=0,n=1/0){return ro(e>=0),ro(n>=e),Array.isArray(r)&&r.length>=e&&r.length<=n&&r.every(o=>typeof o===t)}function Ze(r,t){Array.isArray(r)?(y.assert(r.length>0,()=>`${t} is unexpectedly an empty array.`),r.forEach((e,n)=>Ze(e,`element ${n+1} of ${t}`))):y.assert(Number.isInteger(r)&&r>0,()=>`Expected ${t} to be a positive integer, but got ${w$(r)}.`)}function w$(r){return r===null?\"null\":Array.isArray(r)?\"[\"+r.map(t=>w$(t)).join(\",\")+\"]\":typeof r==\"string\"?`\"${r}\"`:`${r}`}function C$(r,t,e){let n=e!=null?e():y.now(),o;return(...i)=>{let a=e!=null?e():y.now();return a-n0){let e=`${r}_${t}`;return vm.set(e,1),e}else return r}var A5=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\\._\\/]*$/);function _$(r){return!!r.match(A5)}function A$(r){return r===parseInt(r.toString(),10)}function No(r,t,e){t==null&&(t=0),e==null&&(e=r.length);let n=1;for(let o=t;ot&&(t=n)}return t}function Zr(r,t){if(t{if(r.shape.length!==2)throw new M(`repeat() expects a rank-2 tensor, but received a rank-${r.shape.length} tensor.`);let e=nl(r,1);return Ey(e,[1,t,1])})}function D$(r){let t=[No(r.shape)];return R(r,t)}function R$(r){if(r.rank<=1)throw new M(`batchFlatten requires a minimum rank of 2. Got rank: ${r.rank}.`);let t=[r.shape[0],No(r.shape,1)];return R(r,t)}function rl(r,t,e){return B(()=>{switch(r.rank){case 1:return hm(r,t,e);case 2:return dh(r,[t,0],[e,r.shape[1]]);case 3:return gm(r,[t,0,0],[e,r.shape[1],r.shape[2]]);case 4:return ec(r,[t,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3]]);case 5:return Rt(r,[t,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4]]);case 6:return Rt(r,[t,0,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4],r.shape[5]]);default:throw new M(`sliceAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}})}function v0(r,t,e){return B(()=>{switch(r.rank){case 1:return hm(r,t,e);case 2:return dh(r,[0,t],[r.shape[0],e]);case 3:return gm(r,[0,0,t],[r.shape[0],r.shape[1],e]);case 4:return ec(r,[0,0,0,t],[r.shape[0],r.shape[1],r.shape[2],e]);default:throw new M(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function wh(r,t,e,n){return B(()=>{switch(r.rank){case 1:return hm(r,t,e);case 2:switch(n){case 1:return rl(r,t,e);case 2:return v0(r,t,e);default:throw new M(`The axis is not within the rank of the tensor ${n}`)}case 3:switch(n){case 1:return rl(r,t,e);case 2:return gm(r,[0,t,0],[r.shape[0],e,r.shape[2]]);case 3:return v0(r,t,e);default:throw new M(`The axis is not within the rank of the tensor ${n}`)}case 4:switch(n){case 1:return rl(r,t,e);case 2:return ec(r,[0,t,0,0],[r.shape[0],e,r.shape[2],r.shape[3]]);case 3:return ec(r,[0,0,t,0],[r.shape[0],r.shape[1],e,r.shape[3]]);case 4:return v0(r,t,e);default:throw new M(`The axis is not within the rank of the tensor ${n}`)}default:throw new M(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function Nm(r,t=-1){let e;return t<0&&(e=r[0].rank,e!==0?t=e:t=0),t===r[0].rank&&(t=-1),ne(r,t)}function T0(r,t){switch(r.rank){case 1:return Ix([r,t]);case 2:return Sx([r,t],0);case 3:return vx([r,t],0);case 4:return Nx([r,t],0);default:throw new M(`concatAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}}function Ey(r,t){if(Array.isArray(t)||(t=[t]),r.rank!==t.length)throw new M(`The length of input n (${t.length}) does not match the number of dimensions in input x (${r.rank})`);return Dr(r,t)}function Tm(r,t=0,e=1,n,o){return tc(r,t,e,n,o)}function To(r,t,e,n){if(r.rank<2||t.rank<2)throw new St(`dot requires both inputs to be rank >= 2 but got x shape = ${r.shape} and y shape = ${t.shape}`);if(t.rank>=3){let o=r.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(o!==s)throw new St(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${r.shape} and y shape = ${t.shape}`)}if(r.rank===2&&t.rank===2)return uu.matMul({a:r,b:t,transposeA:!1,transposeB:!1,bias:n?N0(r.rank,n,mn()):null,activation:e});{let o=r.shape.slice(),s=o.pop();r=R(r,[-1,s]);let i=t.shape.slice(),a=i.pop(),u=i.pop(),l=[...i,a],c=Array.from({length:t.rank},(d,h)=>h===0?t.rank-2:h<=t.rank-2?h-1:h);t=R(Ot(t,c),[u,-1]);let p=[...o,...l],m=!1,f=!1;return R(uu.matMul({a:r,b:t,transposeA:m,transposeB:f,bias:n?N0(r.rank,n,mn()):null,activation:e}),p)}}function _y(r,t,e){return B(()=>(Array.isArray(t)?t=Me(t,\"int32\"):t=J(t,\"int32\"),Li(r,t,e)))}function lc(r){return D(r,r)}function N0(r,t,e){let n=t.shape;if(t.rank!==1&&t.rank!==r)throw new M(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${r}`);if(r===5){if(e===\"channelsFirst\")return n.length===1?R(t,[1,n[0],1,1,1]):R(t,[1,n[3],n[0],n[1],n[2]]);if(e===\"channelsLast\")return n.length===1?R(t,[1,1,1,1,n[0]]):R(t,[1].concat(n))}else if(r===4){if(e===\"channelsFirst\")return n.length===1?R(t,[1,n[0],1,1]):R(t,[1,n[2],n[0],n[1]]);if(e===\"channelsLast\")return n.length===1?R(t,[1,1,1,n[0]]):R(t,[1].concat(n))}else if(r===3){if(e===\"channelsFirst\")return n.length===1?R(t,[1,n[0],1]):R(t,[1,n[1],n[0]]);if(e===\"channelsLast\")return n.length===1?R(t,[1,1,n[0]]):R(t,[1].concat(n))}else if(r<3)return t;throw new M(`Unsupported input rank by biasAdd: ${t.rank}`)}function fn(r,t,e){return B(()=>(e==null&&(e=mn()),Fe(e),X(r,N0(r.rank,t,e))))}function F$(r,t=1){if(t!==1)throw new St(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Oi(r)}function O$(r){return B(()=>pt(r,X(Ee(r),1)))}function Ay(r,t,e,n){return B(()=>l0(r,t,e,n))}function P$(r){return B(()=>{let t=X(.5,D(.2,r));return Cr(t,0,1)})}function xu(r,t,e=!1){return e?r():t()}var L$=[\"fanIn\",\"fanOut\",\"fanAvg\"],M$=[\"normal\",\"uniform\",\"truncatedNormal\"];function $5(r){Wi(L$,\"FanMode\",r)}function D5(r){Wi(M$,\"Distribution\",r)}var dn=class extends Q.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},km=class extends dn{apply(t,e){return Ne(t,e)}};km.className=\"Zeros\";Q.registerClass(km);var yu=class extends dn{apply(t,e){return cr(t,e)}};yu.className=\"Ones\";Q.registerClass(yu);var Em=class extends dn{constructor(t){if(super(),typeof t!=\"object\")throw new M(`Expected argument of type ConstantConfig but got ${t}`);if(t.value===void 0)throw new M(`config must have value set but got ${t}`);this.value=t.value}apply(t,e){return B(()=>D(mt(this.value),cr(t,e)))}getConfig(){return{value:this.value}}};Em.className=\"Constant\";Q.registerClass(Em);var _m=class extends dn{constructor(t){super(),this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=t.minval||this.DEFAULT_MINVAL,this.maxval=t.maxval||this.DEFAULT_MAXVAL,this.seed=t.seed}apply(t,e){return zi(t,this.minval,this.maxval,e)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};_m.className=\"RandomUniform\";Q.registerClass(_m);var Am=class extends dn{constructor(t){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=t.mean||this.DEFAULT_MEAN,this.stddev=t.stddev||this.DEFAULT_STDDEV,this.seed=t.seed}apply(t,e){if(e=e||\"float32\",e!==\"float32\"&&e!==\"int32\")throw new St(`randomNormal does not support dType ${e}.`);return Tm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Am.className=\"RandomNormal\";Q.registerClass(Am);var $m=class extends dn{constructor(t){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=t.mean||this.DEFAULT_MEAN,this.stddev=t.stddev||this.DEFAULT_STDDEV,this.seed=t.seed}apply(t,e){if(e=e||\"float32\",e!==\"float32\"&&e!==\"int32\")throw new St(`truncatedNormal does not support dType ${e}.`);return bm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};$m.className=\"TruncatedNormal\";Q.registerClass($m);var Dm=class extends dn{constructor(t){super(),this.gain=t.gain!=null?t.gain:1}apply(t,e){return B(()=>{if(t.length!==2||t[0]!==t[1])throw new M(\"Identity matrix initializer can only be used for 2D square matrices.\");return D(this.gain,Yu(t[0]))})}getConfig(){return{gain:this.gain}}};Dm.className=\"Identity\";Q.registerClass(Dm);function R5(r,t=\"channelsLast\"){let e,n;if(Fe(t),r.length===2)e=r[0],n=r[1];else if([3,4,5].indexOf(r.length)!==-1){if(t===\"channelsFirst\"){let o=No(r,2);e=r[1]*o,n=r[0]*o}else if(t===\"channelsLast\"){let o=No(r,0,r.length-2);e=r[r.length-2]*o,n=r[r.length-1]*o}}else{let o=No(r);e=Math.sqrt(o),n=Math.sqrt(o)}return[e,n]}var qr=class extends dn{constructor(t){if(super(),t.scale<0)throw new M(`scale must be a positive float. Got: ${t.scale}`);this.scale=t.scale==null?1:t.scale,this.mode=t.mode==null?\"fanIn\":t.mode,$5(this.mode),this.distribution=t.distribution==null?\"normal\":t.distribution,D5(this.distribution),this.seed=t.seed}apply(t,e){let n=R5(t),o=n[0],s=n[1],i=this.scale;if(this.mode===\"fanIn\"?i/=Math.max(1,o):this.mode===\"fanOut\"?i/=Math.max(1,s):i/=Math.max(1,(o+s)/2),this.distribution===\"normal\"){let a=Math.sqrt(i);if(e=e||\"float32\",e!==\"float32\"&&e!==\"int32\")throw new St(`${this.getClassName()} does not support dType ${e}.`);return bm(t,0,a,e,this.seed)}else{let a=Math.sqrt(3*i);return zi(t,-a,a,e)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};qr.className=\"VarianceScaling\";Q.registerClass(qr);var uc=class extends qr{constructor(t){super({scale:1,mode:\"fanAvg\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return qr.className}};uc.className=\"GlorotUniform\";Q.registerClass(uc);var cc=class extends qr{constructor(t){super({scale:1,mode:\"fanAvg\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return qr.className}};cc.className=\"GlorotNormal\";Q.registerClass(cc);var pc=class extends qr{constructor(t){super({scale:2,mode:\"fanIn\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return qr.className}};pc.className=\"HeNormal\";Q.registerClass(pc);var mc=class extends qr{constructor(t){super({scale:2,mode:\"fanIn\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return qr.className}};mc.className=\"HeUniform\";Q.registerClass(mc);var fc=class extends qr{constructor(t){super({scale:1,mode:\"fanIn\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return qr.className}};fc.className=\"LeCunNormal\";Q.registerClass(fc);var dc=class extends qr{constructor(t){super({scale:1,mode:\"fanIn\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return qr.className}};dc.className=\"LeCunNormal\";Q.registerClass(dc);var Rm=class extends dn{constructor(t){if(super(),this.DEFAULT_GAIN=1,this.gain=t.gain==null?this.DEFAULT_GAIN:t.gain,this.seed=t.seed,this.seed!=null)throw new St(\"Random seed is not implemented for Orthogonal Initializer yet.\")}apply(t,e){return B(()=>{if(t.length<2)throw new St(\"Shape must be at least 2D.\");t[0]*t[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${t[0]*t[1]}) elements: Slowness may result.`);let n=t[0]>t[1]?[t[1],t[0]]:t,o=Tm(n,0,1,\"float32\"),s=p0.gramSchmidt(o);return t[0]>t[1]&&(s=Ot(s)),D(this.gain,s)})}getConfig(){return{gain:this.gain,seed:this.seed}}};Rm.className=\"Orthogonal\";Q.registerClass(Rm);var z$={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 B$(r,t={}){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,\"initializer\")}function Te(r){return Sm(r)}function de(r){if(typeof r==\"string\"){let t=r in z$?z$[r]:r;if(t===\"GlorotNormal\")return new cc;if(t===\"GlorotUniform\")return new uc;if(t===\"HeNormal\")return new pc;if(t===\"HeUniform\")return new mc;if(t===\"LeCunNormal\")return new fc;if(t===\"LeCunUniform\")return new dc;{let e={};return e.className=t,e.config={},B$(e)}}else return r instanceof dn?r:B$(r)}function $y(r){return Array.isArray(r)&&Array.isArray(r[0])}function Fm(r){return r.length===0?[]:Array.isArray(r[0])?r:[r]}function Nt(r){let t;if(Array.isArray(r)){if(r.length!==1)throw new M(`Expected Tensor length to be 1; got ${r.length}`);t=r[0]}else t=r;return t}function Bt(r){if(Array.isArray(r)&&Array.isArray(r[0])){if(r.length===1)return r=r,r[0];throw new M(`Expected exactly 1 Shape; got ${r.length}`)}else return r}function Om(r){let t=0;for(let e of r)e.shape.length===0?t+=1:t+=e.shape.reduce((n,o)=>n*o);return t}var G$=\"Variable\",Ch=class{constructor(t,e=\"float32\",n=G$,o=!0,s=null){this.dtype=e==null?\"float32\":e,this.shape=t.shape,this.id=vy(),n=n==null?G$:n,this.originalName=Ny(n),this.name=Ty(this.originalName),this.trainable_=o,this.constraint=s,this.val=iy(t,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(t){return this.assertNotDisposed(),O5(this.val,t),this.val.id!==t.id&&(this.val.assign(t),this.constraint!=null&&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(t){this.trainable_=t,this.val.trainable=t}};function O5(r,t){if(r.shape.toString()!==t.shape.toString())throw new Error(\"Shape mismatch: \"+JSON.stringify(r.shape)+\" vs. \"+JSON.stringify(t.shape))}function Ih(r){return r.map(t=>t.read())}function Pm(r){r.forEach(t=>{t[0].write(t[1])})}var ye=class{constructor(t){this.dtype=t.dtype,this.shape=t.shape,t.shape!=null?this.ndim=t.shape.length:this.ndim=t.ndim,this.maxNDim=t.maxNDim,this.minNDim=t.minNDim,this.axes=t.axes||{}}},Jr=class{constructor(t,e,n,o,s,i,a){this.dtype=t,this.shape=e,this.sourceLayer=n,this.inputs=o,this.callArgs=s,this.outputTensorIndex=a,this.id=vy(),i!=null&&(this.originalName=Ny(i),this.name=Ty(this.originalName)),this.rank=e.length}},P5=0,ol=class{constructor(t,e){this.callArgs=e,this.id=P5++,this.outboundLayer=t.outboundLayer,this.inboundLayers=t.inboundLayers,this.nodeIndices=t.nodeIndices,this.tensorIndices=t.tensorIndices,this.inputTensors=t.inputTensors,this.outputTensors=t.outputTensors,this.inputMasks=t.inputMasks,this.outputMasks=t.outputMasks,this.inputShapes=t.inputShapes,this.outputShapes=t.outputShapes;for(let n of t.inboundLayers)n!=null&&n.outboundNodes.push(this);t.outboundLayer.inboundNodes.push(this)}getConfig(){let t=[];for(let e of this.inboundLayers)e!=null?t.push(e.name):t.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:t,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},L5=0,$t=class extends Q.Serializable{constructor(t={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=L5++,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 e=t.name;if(!e){let n=this.getClassName();e=So(n)+\"_\"+gu(n)}if(this.name=e,this.trainable_=t.trainable==null?!0:t.trainable,t.inputShape!=null||t.batchInputShape!=null){let n;if(t.batchInputShape!=null)n=t.batchInputShape;else if(t.inputShape!=null){let s=null;t.batchSize!=null&&(s=t.batchSize),n=[s].concat(t.inputShape)}this.batchInputShape=n;let o=t.dtype;o==null&&(o=t.inputDType),o==null&&(o=\"float32\"),this.dtype=o}t.weights!=null?this.initialWeights=t.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(t,e){return t.name+\"_ib-\"+e.toString()}getNodeAtIndex(t,e){if(this.inboundNodes.length===0)throw new Hr(`The layer has never been called and thus has no defined ${e}.`);if(this.inboundNodes.length<=t)throw new M(`Asked to get ${e} at node ${t}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[t]}getInputAt(t){return Nr(this.getNodeAtIndex(t,\"input\").inputTensors)}getOutputAt(t){return Nr(this.getNodeAtIndex(t,\"output\").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new vn(`Layer ${this.name} has multiple inbound nodes, hence the notion of \"layer input\" is ill-defined. Use \\`getInputAt(nodeIndex)\\` instead.`);if(this.inboundNodes.length===0)throw new vn(`Layer ${this.name} is not connected, no input to return.`);return Nr(this.getNodeAtIndex(0,\"input\").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new vn(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new vn(`Layer ${this.name} has multiple inbound nodes, hence the notion of \"layer output\" is ill-defined. Use \\`getOutputAt(nodeIndex)\\` instead.`);return Nr(this.getNodeAtIndex(0,\"output\").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(t=>t())}get updates(){return this._updates}get built(){return this._built}set built(t){this._built=t}get trainable(){return this.trainable_}set trainable(t){this._trainableWeights.forEach(e=>e.trainable=t),this.trainable_=t}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(t=>t.trainable):[]}set trainableWeights(t){this._trainableWeights=t}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(t=>!t.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(t){this._nonTrainableWeights=t}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(t){if(t=xe(t),this.inputSpec==null||this.inputSpec.length===0)return;let e=xe(this.inputSpec);if(t.length!==e.length)throw new M(`Layer ${this.name} expects ${e.length} inputs, but it received ${t.length} input tensors. Input received: ${t}`);for(let n=0;ns.maxNDim)throw new M(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${s.maxNDim}, found ndim=${i}`);if(s.minNDim!=null&&i=0?a[l]:a[a.length+l];if(c!=null&&[c,null].indexOf(p)===-1)throw new M(`Input ${n} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${c} but got shape ${a}.`)}}if(s.shape!=null)for(let a=0;a{if(!this.built){this.assertInputCompatibility(t);let i=[];for(let a of xe(t))i.push(a.shape);this.build(Nr(i)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&s&&(this._refCount=1)}if(this.assertInputCompatibility(t),s){let i=this.call(t,e),a=xe(i),u=[];for(let l of a)n.indexOf(l)!==-1&&(l=l.clone()),u.push(l);if(i=Nr(u),this.activityRegularizer!=null)throw new St(\"Layer invocation in the presence of activity regularizer(s) is not supported yet.\");return i}else{let i=M5(t),a=this.computeOutputShape(i),u,l=z5(t);if(this.warnOnIncompatibleInputShape(Array.isArray(t)?i[0]:i),a!=null&&a.length>0&&Array.isArray(a[0])?u=a.map((c,p)=>new Jr(l,c,this,xe(t),e,this.name,p)):u=new Jr(l,a,this,xe(t),e,this.name),this.addInboundNode(t,u,null,null,i,a,e),this._refCount++,this.activityRegularizer!=null)throw new St(\"Layer invocation in the presence of activity regularizer(s) is not supported yet.\");return u}})}warnOnIncompatibleInputShape(t){if(this.batchInputShape!=null)if(t.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(t)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let e=!1;this.batchInputShape.forEach((n,o)=>{n!=null&&t[o]!=null&&t[o]!==n&&(e=!0)}),e&&console.warn(`The shape of the input tensor (${JSON.stringify(t)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new vn(`The layer ${this.name} has never been called and thus has no defined output shape.`);let t=[];for(let e of this.inboundNodes){let n=JSON.stringify(e.outputShapes);t.indexOf(n)===-1&&t.push(n)}if(t.length===1){let e=this.inboundNodes[0].outputShapes;return Array.isArray(e)&&Array.isArray(e[0])&&e.length===1?e[0]:e}else throw new vn(`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 Hr(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Om(this.weights)}build(t){this.built=!0}getWeights(t=!1){return Ih(t?this.trainableWeights:this.weights)}setWeights(t){B(()=>{let e=this.weights;if(e.length!==t.length)throw new M(`You called setWeights(weights) on layer \"${this.name}\" with a weight list of length ${t.length}, but the layer was expecting ${e.length} weights. Provided weights: ${t}...`);if(e.length===0)return;let n=[],o=Ih(e);for(let s=0;ss.apply(c.read())),i==null&&(i=!0),i?this._trainableWeights.push(c):this._nonTrainableWeights.push(c),c}setFastWeightInitDuringBuild(t){this.fastWeightInitDuringBuild=t}addLoss(t){t==null||Array.isArray(t)&&t.length===0||(t=xe(t),this._losses!==void 0&&this._losses!==null&&this.losses.push(...t))}computeOutputShape(t){return t}computeMask(t,e){if(!this.supportsMasking){if(e!=null)if(Array.isArray(e))e.forEach(n=>{if(n!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return e}addInboundNode(t,e,n,o,s,i,a=null){let u=xe(t);e=xe(e),n=xe(n),o=xe(o),s=Fm(s),i=Fm(i);let l=[],c=[],p=[];for(let m of u)l.push(m.sourceLayer),c.push(m.nodeIndex),p.push(m.tensorIndex);new ol({outboundLayer:this,inboundLayers:l,nodeIndices:c,tensorIndices:p,inputTensors:u,outputTensors:e,inputMasks:n,outputMasks:o,inputShapes:s,outputShapes:i},a);for(let m=0;mt.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)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(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let t=0;return--this._refCount===0&&(t=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:t}}};function M5(r){r=xe(r);let t=[];for(let e of r)t.push(e.shape);return Nr(t)}function z5(r){return\"float32\"}function k0(r,t,e){if((t==null||e!=null&&e>0)&&(t=r.sourceLayer,e=r.nodeIndex),t.inboundNodes.length===0)return[r];{let n=t.inboundNodes[e];if(n.inboundLayers.length===0)return n.inputTensors;{let o=[];for(let s=0;sd.name),u=[],l=t.names();for(let d of a)l.indexOf(d)!==-1?u.push(t.getValue(d)):u.push(null);n!=null&&(n.maxNumTensors=-1/0,n.minNumTensors=1/0);let c=a.join(\",\")+\"|\"+t.names().sort().join(\",\"),p=Ry.get(c),m;if(p==null){let d=V5(i,t);p=d.sorted,m=d.recipientCounts,Ry.put(c,p),Fy.put(c,m)}m={},o||Object.assign(m,Fy.get(c));let f=new ko(t);for(let d=0;dn.maxNumTensors&&(n.maxNumTensors=F),F0,()=>\"Expected at least one fetch, got none\");let e=[],n={};if(r.length===1){let o=W$(r[0],t);e=o.sorted,n=o.recipientMap}else{let o=new Set;for(let s of r){let{sorted:i,recipientMap:a}=W$(s,t);for(let u of i)o.has(u.name)||(e.push(u),o.add(u.name));for(let u in a)n[u]==null&&(n[u]=new Set),a[u].forEach(l=>n[u].add(l))}}return{sorted:e,recipientCounts:G5(n)}}function G5(r){let t={};for(let e in r)t[e]=r[e].size;return t}function W$(r,t){let e=new Set,n=[],o={};for(let a of t.names())e.add(a);let s=[],i=[];for(s.push(r);s.length>0;){let a=s[s.length-1];if(e.has(a.name)){s.pop();continue}let u=i[i.length-1]===s.length-1;if(a.inputs.length===0||u)s.pop(),n.push(a),e.add(a.name),u&&i.pop();else{i.push(s.length-1);for(let l of a.inputs)o[l.name]==null&&(o[l.name]=new Set),o[l.name].add(a.name),!e.has(l.name)&&s.push(l)}}return{sorted:n,recipientMap:o}}function W5(r){let t;if(r.sourceLayer.inboundNodes.length===1)t=r.sourceLayer.output;else{let e=null;for(let n=0;n100,U$);var K$={};Wt(K$,{maxNorm:()=>H5,minMaxNorm:()=>j5,nonNeg:()=>K5,unitNorm:()=>q5});function E0(r,t){return B(()=>Se(ft(D(r,r),t,!0)))}var gc=class extends Q.Serializable{getConfig(){return{}}},Lm=class extends gc{constructor(t){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=t.maxValue!=null?t.maxValue:this.defaultMaxValue,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>{let e=E0(t,this.axis),n=Cr(e,0,this.maxValue);return D(t,pt(n,X(ir(),e)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};Lm.className=\"MaxNorm\";Q.registerClass(Lm);var Mm=class extends gc{constructor(t){super(),this.defaultAxis=0,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>pt(t,X(ir(),E0(t,this.axis))))}getConfig(){return{axis:this.axis}}};Mm.className=\"UnitNorm\";Q.registerClass(Mm);var zm=class extends gc{apply(t){return Fr(t)}};zm.className=\"NonNeg\";Q.registerClass(zm);var Bm=class extends gc{constructor(t){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=t.minValue!=null?t.minValue:this.defaultMinValue,this.maxValue=t.maxValue!=null?t.maxValue:this.defaultMaxValue,this.rate=t.rate!=null?t.rate:this.defaultRate,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>{let e=E0(t,this.axis),n=X(D(this.rate,Cr(e,this.minValue,this.maxValue)),D(1-this.rate,e));return D(t,pt(n,X(ir(),e)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};Bm.className=\"MinMaxNorm\";Q.registerClass(Bm);var H$={maxNorm:\"MaxNorm\",minMaxNorm:\"MinMaxNorm\",nonNeg:\"NonNeg\",unitNorm:\"UnitNorm\"};function ze(r){return Sm(r)}function q$(r,t={}){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,\"constraint\")}function Be(r){if(r==null)return null;if(typeof r==\"string\"){let e={className:r in H$?H$[r]:r,config:{}};return q$(e)}else return r instanceof gc?r:q$(r)}function H5(r){return new Lm(r)}function q5(r){return new Mm(r)}function K5(){return new zm}function j5(r){return new Bm(r)}var j$={};Wt(j$,{constant:()=>Z5,glorotNormal:()=>o8,glorotUniform:()=>n8,heNormal:()=>s8,heUniform:()=>i8,identity:()=>e8,leCunNormal:()=>a8,leCunUniform:()=>l8,ones:()=>Y5,orthogonal:()=>u8,randomNormal:()=>Q5,randomUniform:()=>J5,truncatedNormal:()=>t8,varianceScaling:()=>r8,zeros:()=>X5});function X5(){return new km}function Y5(){return new yu}function Z5(r){return new Em(r)}function J5(r){return new _m(r)}function Q5(r){return new Am(r)}function t8(r){return new $m(r)}function e8(r){return new Dm(r)}function r8(r){return new qr(r)}function n8(r){return new uc(r)}function o8(r){return new cc(r)}function s8(r){return new pc(r)}function i8(r){return new mc(r)}function a8(r){return new fc(r)}function l8(r){return new dc(r)}function u8(r){return new Rm(r)}var ED={};Wt(ED,{Layer:()=>$t,RNN:()=>Tn,RNNCell:()=>ll,activation:()=>NY,add:()=>FY,alphaDropout:()=>xZ,average:()=>OY,averagePooling1d:()=>G0,averagePooling2d:()=>W0,averagePooling3d:()=>U0,avgPool1d:()=>UY,avgPool2d:()=>qY,avgPool3d:()=>jY,avgPooling1d:()=>HY,avgPooling2d:()=>KY,avgPooling3d:()=>XY,batchNormalization:()=>VY,bidirectional:()=>uZ,categoryEncoding:()=>CZ,concatenate:()=>PY,conv1d:()=>gY,conv2d:()=>xY,conv2dTranspose:()=>yY,conv3d:()=>bY,conv3dTranspose:()=>wY,convLstm2d:()=>sZ,convLstm2dCell:()=>iZ,cropping2D:()=>IY,dense:()=>TY,depthwiseConv2d:()=>vY,dot:()=>BY,dropout:()=>kY,elu:()=>cY,embedding:()=>RY,flatten:()=>_Y,gaussianDropout:()=>gZ,gaussianNoise:()=>hZ,globalAveragePooling1d:()=>YY,globalAveragePooling2d:()=>ZY,globalMaxPool1d:()=>pZ,globalMaxPool2d:()=>mZ,globalMaxPooling1d:()=>vD,globalMaxPooling2d:()=>ND,gru:()=>QY,gruCell:()=>tZ,input:()=>P0,inputLayer:()=>uY,layerNormalization:()=>GY,leakyReLU:()=>mY,lstm:()=>eZ,lstmCell:()=>rZ,masking:()=>yZ,maxPool1d:()=>fZ,maxPool2d:()=>dZ,maxPooling1d:()=>TD,maxPooling2d:()=>kD,maxPooling3d:()=>JY,maximum:()=>LY,minimum:()=>MY,multiply:()=>zY,permute:()=>DY,prelu:()=>fY,reLU:()=>pY,repeatVector:()=>AY,rescaling:()=>bZ,reshape:()=>$Y,resizing:()=>wZ,rnn:()=>aZ,separableConv2d:()=>CY,simpleRNN:()=>nZ,simpleRNNCell:()=>oZ,softmax:()=>dY,spatialDropout1d:()=>EY,stackedRNNCells:()=>lZ,thresholdedReLU:()=>hY,timeDistributed:()=>cZ,upSampling2d:()=>SY,zeroPadding2d:()=>WY});async function Ui(r){if(r==null)return;let t=[],e=[],n=[];for(let o in r){let s=r[o];if(typeof s!=\"number\"){let i=s;t.push(i.data()),e.push(o),n.push(i)}}if(t.length>0){let o=await Promise.all(t);for(let s=0;sX(this.totals[o],D(s,n)));this.totals[o]=a,i!=null&&i.dispose()}}}async onEpochEnd(t,e){if(e!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]==\"number\"?e[n]=this.totals[n]/this.seen:B(()=>{let o=D(pt(1,this.seen),this.totals[n]);e[n]=o,this.totals[n].dispose(),De(e[n])}))}},Ly=class extends sl{async onTrainBegin(t){this.epoch=[],this.history={}}async onEpochEnd(t,e){e==null&&(e={}),this.epoch.push(t);for(let n in e)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(e[n])}async syncData(){let t=[],e=[],n=[];for(let s in this.history){let i=this.history[s];for(let a=0;anew My(n,t))}var hn=class{constructor(){}static registerCallbackConstructor(t,e){y.assert(t>=0&&Number.isInteger(t),()=>`Verbosity level is expected to be an integer >= 0, but got ${t}`),hn.checkForDuplicate(e),hn.constructors[t]==null&&(hn.constructors[t]=[]),hn.constructors[t].push(e)}static checkForDuplicate(t){for(let e in hn.constructors)hn.constructors[+e].forEach(o=>{if(o===t)throw new M(\"Duplicate callback constructor.\")})}static clear(){hn.constructors={}}static createCallbacks(t){let e=[];for(let n in hn.constructors){let o=+n;t>=o&&e.push(...hn.constructors[o])}return e.map(n=>new n)}};hn.constructors={};function By(r,t,e,n,o,s,i,a,u){let l=new Ly,c=[new _0,...hn.createCallbacks(t)];r!=null&&c.push(...r),c.push(l);let p=new Py(c);return p.setParams({epochs:e,initialEpoch:n,samples:o,steps:s,batchSize:i,verbose:t,doValidation:a,metrics:u}),{callbackList:p,history:l}}function gn(r,t={},e=!1){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,\"layer\",e)}function Sh(r,t){return B(()=>{r.dtype!==\"float32\"&&(r=J(r,\"float32\"));let e=ft(lc(r),t,!0),n=xo(e.shape,ir()),o=Se(Sn(e,n));return pt(r,o)})}function Hi(r,t){return B(()=>ve(lc(ct(t,r)),-1))}function Vm(r,t){return B(()=>ve(Ee(ct(t,r)),-1))}function bu(r,t){return B(()=>{let e=ct(r,t),n=Cr(Ee(r),ir(),Number.MAX_VALUE),o=Ee(pt(e,n));return D(100,ve(o,-1))})}function p8(r,t){return B(()=>{let e=Cr(t,ir(),Number.MAX_VALUE),n=Sr(X(1,e)),o=Cr(r,ir(),Number.MAX_VALUE),s=Sr(X(1,o));return ve(lc(ct(n,s)),-1)})}function m8(r,t){return B(()=>{let e=Sn(0,ct(1,D(r,t)));return ve(lc(e),-1)})}function f8(r,t){return B(()=>{let e=Sn(0,ct(1,D(r,t)));return ve(e,-1)})}function d8(r,t){return B(()=>{let e=ft(D(r,t),-1),n=Ir(D(ct(1,r),t),-1);return Sn(0,X(1,ct(n,e)))})}function h8(r,t){return B(()=>{let e=Math.log(2),n=ct(t,r),o=ct(X(n,zs(D(-2,n))),e);return ve(o,-1)})}function xc(r,t,e=!1){return B(()=>{if(e)t=iu(t);else{let n=ft(t,t.shape.length-1,!0);t=pt(t,n)}return t=Cr(t,ir(),1-ir()),Ht(ft(D(J(r,\"float32\"),Sr(t)),t.shape.length-1))})}function Gm(r,t,e=!1){return B(()=>{let n=J(Pi(D$(r)),\"int32\");t=Cr(t,ir(),1-ir());let o=t.shape,s=R(Ei(n,o[o.length-1]),o);return xc(s,t,e)})}function g8(r,t){if(!y.arraysEqual(r.shape,t.shape))throw new M(`logits and labels must have the same shape, but got shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);return B(()=>{let e=Fr(t),n=Ht(Ee(t));return X(ct(e,D(t,r)),tu(er(n)))})}function Wm(r,t){return B(()=>{let e;return e=Cr(t,ir(),1-ir()),e=Sr(pt(e,ct(1,e))),ve(g8(r,e),-1)})}function x8(r,t){return B(()=>{let e=Cr(r,ir(),1),n=Cr(t,ir(),1);return ft(D(r,Sr(pt(e,n))),-1)})}function y8(r,t){return B(()=>{let e=Sr(X(ir(),t));return ve(ct(t,D(r,e)),-1)})}function Nh(r,t){return B(()=>{let e=Sh(r,-1),n=Sh(t,-1),o=D(e,n);return Ht(ft(o,-1))})}var vh={meanSquaredError:Hi,meanAbsoluteError:Vm,meanAbsolutePercentageError:bu,meanSquaredLogarithmicError:p8,squaredHinge:m8,hinge:f8,categoricalHinge:d8,logcosh:h8,categoricalCrossentropy:xc,sparseCategoricalCrossentropy:Gm,binaryCrossentropy:Wm,kullbackLeiblerDivergence:x8,poisson:y8,cosineProximity:Nh};function Vy(r){if(typeof r==\"string\"){if(r in vh)return vh[r];let t=`Unknown loss ${r}`;throw r.toLowerCase().includes(\"softmaxcrossentropy\")&&(t=`Unknown loss ${r}. Use \"categoricalCrossentropy\" as the string name for tf.losses.softmaxCrossEntropy`),new M(t)}else return r}function Th(r,t){return B(()=>{let e=D(.5,yr(t)),n=no(Re(t,e),r.dtype);return ve($r(r,n),-1)})}function kh(r,t){return B(()=>no($r(Ai(r,-1),Ai(t,-1)),\"float32\"))}function Z$(r,t){return B(()=>J(ft(Rr($r(r,1),$r(t,1))),\"float32\"))}function b8(r,t){return B(()=>J(ft(Rr($r(r,1),$r(t,0))),\"float32\"))}function w8(r,t){return B(()=>J(ft(Rr($r(r,0),$r(t,1))),\"float32\"))}function A0(r,t){return B(()=>{let e=Z$(r,t),n=w8(r,t),o=X(e,n);return J(_e(Re(o,0),pt(e,o),0),\"float32\")})}function J$(r,t){return B(()=>{let e=Z$(r,t),n=b8(r,t),o=X(e,n);return J(_e(Re(o,0),pt(e,o),0),\"float32\")})}function Wy(r,t){return Wm(r,t)}function Uy(r,t){return r.rank===t.rank&&(r=Mn(r,[r.rank-1])),t=Ai(t,-1),t.dtype!==r.dtype&&(t=J(t,r.dtype)),J($r(r,t),\"float32\")}var C8=Hi,I8=Hi,S8=Vm,v8=Vm,N8=bu,T8=bu,Eh=xc,k8=Nh,$0=Gm,Gy={binaryAccuracy:Th,categoricalAccuracy:kh,precision:A0,categoricalCrossentropy:Eh,sparseCategoricalCrossentropy:$0,mse:C8,MSE:I8,mae:S8,MAE:v8,mape:N8,MAPE:T8,cosine:k8};function Q$(r){if(typeof r==\"string\"&&r in Gy)return Gy[r];if(typeof r!=\"string\"&&r!=null)return r;throw new M(`Unknown metric ${r}`)}function _h(r){if(ro(r!==null,`Unknown LossOrMetricFn ${r}`),typeof r==\"string\")return r;{let t;for(let e of Object.keys(vh))if(vh[e]===r){t=e;break}if(t!==void 0)return t;for(let e of Object.keys(Gy))if(Gy[e]===r){t=e;break}return t!==void 0?t:r.name}}function eD(r){let t={Adagrad:()=>ic.adagrad(.01),Adadelta:()=>ic.adadelta(1,.95,ir()),Adam:()=>ic.adam(.001,.9,.999,ir()),Adamax:()=>ic.adamax(.002,.9,.999,ir(),0),RMSProp:()=>ic.rmsprop(.001,.9,0,ir()),SGD:()=>ic.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,r in t)return t[r]();throw new M(`Unknown Optimizer ${r}`)}function R0(r,t,e=!1){if(r==null||typeof r!=\"object\"||Object.getPrototypeOf(r)!==Object.prototype||!D0(r))throw new Error(\"User-defined metadata is expected to be a JSON object, but is not.\");if(e){let n=JSON.stringify(r);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 D0(r){if(r===null)return!0;if(typeof r==\"object\")if(Object.getPrototypeOf(r)===Object.prototype){let t=Object.keys(r);for(let e of t)if(typeof e!=\"string\"||!D0(r[e]))return!1;return!0}else if(Array.isArray(r)){for(let t of r)if(!D0(t))return!1;return!0}else return!1;else{let t=typeof r;return t===\"string\"||t===\"number\"||t===\"boolean\"}}function rD(r,t,e,n=console.log){let o=A8(r),s=[\"Layer (type)\",\"Input Shape\",\"Output shape\",\"Param #\"];o?(t=t||90,e=e||[.32,.61,.89,1]):(t=t||115,e=e||[.24,.48,.7,.8,1]),e[e.length-1]<=1&&(e=e.map(c=>Math.floor(t*c)));let i;if(!o){s.push(\"Receives inputs\"),i=[];for(let c in r.nodesByDepth)i.push(...r.nodesByDepth[c])}n(\"_\".repeat(t)),Hy(s,e,n),n(\"=\".repeat(t));let a=r.layers;for(let c=0;c1||o.length===1&&o[0].inboundLayers.length>1){t=!1;break}n.push(...o)}if(t)for(let o of r.layers){let s=!1;for(let i of o.inboundNodes)if(n.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function Hy(r,t,e=console.log){let n=\"\";for(let o=0;o0&&(n=n.slice(0,n.length-1)+\" \"),n+=r[o],n=n.slice(0,t[o]),n+=\" \".repeat(t[o]-n.length);e(n)}function $8(r,t,e){let n,o;try{o=r.inboundNodes.map(u=>JSON.stringify(u.inputShapes)).join(\",\")}catch(u){o=\"multiple\"}try{n=JSON.stringify(r.outputShape)}catch(u){n=\"multiple\"}let s=r.name,i=r.getClassName(),a=[`${s} (${i})`,o,n,r.countParams().toString()];Hy(a,t,e)}function D8(r,t,e,n){let o,s;try{s=r.inboundNodes.map(p=>JSON.stringify(p.inputShapes)).join(\",\")}catch(p){s=\"multiple\"}try{o=JSON.stringify(r.outputShape)}catch(p){o=\"multiple\"}let i=[];for(let p of r.inboundNodes)if(!(e!=null&&e.length>0&&e.indexOf(p)===-1))for(let m=0;mb.name)}`);vo(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(b=>b.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let b of this.outputs){let w=b.sourceLayer,C=b.nodeIndex,N=b.tensorIndex;this.outputLayers.push(w),this.outputLayersNodeIndices.push(C),this.outputLayersTensorIndices.push(N)}for(let b of this.inputs){let w=b.sourceLayer,C=b.nodeIndex,N=b.tensorIndex;ro(C===0,\"input layer has >1 nodes\"),ro(N===0,\"input layer has >1 tensors\"),this.inputLayers.push(w),this.inputLayersNodeIndices.push(C),this.inputLayersTensorIndices.push(N)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let b=0;bb.shape),this.internalOutputShapes=this.outputs.map(b=>b.shape);let e={},n={},o={},s={},i={},a=[],u=(b,w,C,N,_,A)=>{(N==null||_==null||A==null)&&(N=b.sourceLayer,_=b.nodeIndex,A=b.tensorIndex);let $=N.inboundNodes[_];if(C.indexOf($)!==-1)throw new Hr(`The tensor ${b.name} at layer \"${N.name}\" is part of a cycle.`);if(w.indexOf($)!==-1)return;this.containerNodes.add(zn.nodeKey(N,_)),N.id in i||(i[N.id]=Object.keys(i).length),C.indexOf($)===-1&&C.push($);let F=$.inboundLayers.length;for(let P=0;P=0;)C.splice(C.indexOf($),1);a.push($)},l=[],c=[];for(let b of this.outputs)u(b,l,c);let p=a.slice().reverse();for(let b of p){n[b.id]=b,b.id in e||(e[b.id]=0);let w=e[b.id],C=o[b.outboundLayer.id]==null?0:o[b.outboundLayer.id];w=Math.max(w,C),o[b.outboundLayer.id]=w,s[b.outboundLayer.id]=b.outboundLayer,e[b.id]=w;for(let N=0;NparseInt(b,10)).sort(yh);this.layers=[];for(let b of d){let w=f[b];w.sort((C,N)=>{let _=i[C.id],A=i[N.id];return _A?1:0});for(let C of w)C instanceof zn&&this.internalContainerRefs.push(C),this.layers.push(C)}this.layersByDepth=f,d=Object.keys(m).map(b=>parseInt(b,10)).sort(yh);let h=this.inputs.slice(),g=[];for(let b of d)for(let w of m[b]){let C=w.outboundLayer;if(C!=null){for(let N of w.inputTensors)if(h.indexOf(N)===-1)throw new Hr(`Graph disconnected: cannot obtain value for tensor ${N} at layer \"${C.name}\". The following previous layers were accessed without issue: ${g}`);for(let N of w.outputTensors)h.push(N);g.push(C.name)}}this.nodesByDepth=m;let x=this.layers.map(b=>b.name);for(let b of x){let w=x.filter(C=>C===b).length;if(w!==1)throw new Hr(`The name \"${b}\" is used ${w} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(x))}this.outboundNodes=[],this.inboundNodes=[],new ol({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(b=>null),outputMasks:this.outputs.map(b=>null),inputShapes:this.inputs.map(b=>b.shape),outputShapes:this.outputs.map(b=>b.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let t={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(let e of this.layers)t.numDisposedVariables+=e.dispose().numDisposedVariables;for(let e of this.internalContainerRefs)t.numDisposedVariables+=e.dispose().numDisposedVariables}return t.refCountAfterDispose=this._refCount,t}get trainable(){return this.trainable_}set trainable(t){this.layers.forEach(e=>{e._trainableWeights.forEach(n=>n.trainable=t)}),this.trainable_=t}get trainableWeights(){if(this._trainableWeights.length>0)throw new M(\"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 t=[];for(let e of this.layers)t=t.concat(e.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let e of this.layers)t.push(...e.nonTrainableWeights);if(!this.trainable){let e=[];for(let n of this.layers)e.push(...n.trainableWeights);return e.concat(t)}return t}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(t,e=!0){let n={},o=0;for(let i of this.layers)for(let a of i.weights){if(n[a.originalName]!=null)throw new M(`Duplicate weight name: ${a.originalName}`);n[a.originalName]=a,o++}let s=[];for(let i in t){let a=i;if(n[i]==null){let u=i.split(\"/\");a=u.slice(0,-2).concat([u[u.length-1]]).join(\"/\")}if(n[a]!=null)s.push([n[a],t[i]]);else if(e)throw new M(`Provided weight data has no target variable: ${i}`);delete n[a]}if(e){let i=[];for(let a in n)i.push(a);if(i.length>0)throw new M(`${i.length} of ${o} weights are not set: ${i}`)}Pm(s)}updatedConfig(){let t=this.getConfig(),e={};return e.className=this.getClassName(),e.config=t,e.kerasVersion=`tfjs-layers ${Um}`,e.backend=\"TensorFlow.js\",e}toJSON(t,e=!0){let n=qy(this.updatedConfig());return e?JSON.stringify(n):n}call(t,e){return B(()=>{t=xe(t);let n=new ko;for(let o=0;o{t=xe(t);let n;return e==null?n=Io(null,t.length):n=xe(e),this.runInternalGraph(t,n)[1]})}computeOutputShape(t){let e=Fm(t);if(e.length!==this.inputLayers.length)throw new M(`Invalid inputShape argument ${t}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let a=0;aparseInt(a,10)).sort(yh);if(o.length>1)for(let a of o){let u=this.nodesByDepth[a];for(let l of u){let c=l.outboundLayer;if(this.inputLayers.map(h=>h.id).indexOf(c.id)!==-1)continue;let p=[];for(let h=0;hparseInt(u,10)).sort(yh);for(let u of o){let l=this.nodesByDepth[u];for(let c of l){let p=c.outboundLayer,m=c.inputTensors,f=c.outputTensors,d=new Array;for(let h of m)h.id in n&&d.push(n[h.id]);if(d.length===m.length){let h={},g,x,b,w;if(c.callArgs!=null&&(h=c.callArgs),d.length===1){let[C,N]=d[0];h.mask==null&&(h.mask=N),b=xe(p.call(C,h)),w=xe(p.computeMask(C,N)),g=[C],x=[N]}else g=d.map(C=>C[0]),x=d.map(C=>C[1]),h.mask==null&&(h.mask=x),b=xe(p.call(g,h)),w=xe(p.computeMask(g,x));if(p.activityRegularizer)throw new St(\"LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.\");for(let C=0;C{let t=[];for(let e of this.layers)for(let n=0;n0){let h=[];for(let g=0;g0&&g.apply(Nr(b),w)}function l(g){let x=g.name,b=gn(g,e.customObjects!=null?e.customObjects:{});b.setFastWeightInitDuringBuild(o),s[x]=b,g.inboundNodes.forEach(C=>{if(!(C instanceof Array))throw new M(`Corrupted configuration, expected array for nodeData: ${C}`);a(b,C)})}let c=e.name,p=e.layers;for(let g of p)l(g);for(;!b$(i);)for(let g of p){let x=s[g.name];if(x.name in i){let b=i[x.name];delete i[x.name];for(let w of b)u(x,w)}}let m=[],f=[],d=e.inputLayers;for(let g of d){let x=g[0],b=g[1],w=g[2];ro(x in s);let N=s[x].inboundNodes[b].outputTensors;m.push(N[w])}let h=e.outputLayers;for(let g of h){let x=g[0],b=g[1],w=g[2];ro(x in s);let N=s[x].inboundNodes[b].outputTensors;f.push(N[w])}return new t({inputs:m,outputs:f,name:c})}get stateful(){if(this._stateful)throw new M(\"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(let t of this.layers)if(t.stateful)return!0;return!1}resetStates(){B(()=>{this.layers.forEach(t=>{t.stateful&&t.resetStates()})})}};function R8(r,t,e){let n=t.length;if(r==null||Array.isArray(r)&&r.length===0)return t.map(o=>null);if(n===1)return Array.isArray(r)&&r.length===1?r:typeof r==\"object\"&&t[0]in r?[r[t[0]]]:[r];if(Array.isArray(r)){if(r.length!==n)throw new Error(`Provided ${e} is an array of ${r.length} element(s), but the model has ${n} outputs. Make sure a set of weights is provided for each model output.`);return r}else if(typeof r==\"object\"&&Object.keys(r).length>0&&typeof r[Object.keys(r)[0]]==\"object\"){let o=[];return t.forEach(s=>{s in r?o.push(r[s]):o.push(null)}),o}else throw new Error(`The model has multiple (${n}) outputs, so ${e} must be either an array with ${n} elements or an object with ${t} keys. Provided ${e} not understood: ${JSON.stringify(r)}`)}function Ky(r,t){return R8(r,t,\"classWeight\")}async function jy(r,t,e,n){if(t!=null||n!=null)throw new Error(\"Support sampleWeight is not implemented yet\");if(e!=null){let o=B(()=>{if(r.shape.length===1)return sn(r);if(r.shape.length===2){if(r.shape[1]>1)return Ai(r,1);if(r.shape[1]===1)return R(r,[r.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${r.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${r.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),s=Array.from(await o.data());vt(o);let i=[];return s.forEach(a=>{if(e[a]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${a} exists in the data but not in classWeight`);i.push(e[a])}),Me(i,\"float32\")}else return null}function oD(r,t){return D(r,t)}var F8=32;function aD(r,t){let e,n,o=t;e=o.xs,n=o.ys,y.assert(e!=null&&n!=null,()=>`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}`);let s=sD(\"input\",r.inputNames,e),i=sD(\"output\",r.outputNames,n),a=s[0].shape[0];y.assert(s.length===r.inputs.length,()=>`LayersModel has ${r.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(r.inputNames)})`),y.assert(i.length===r.outputs.length,()=>`LayersModel has ${r.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(r.outputNames)})`);for(let u=0;u`Batch size mismatch: input ${r.inputNames[u]} has ${s[u].shape[0]}; expected ${a} based on input ${r.inputNames[0]}.`);for(let u=0;u`Batch size mismatch: output ${r.outputNames[u]} has ${i[u].shape[0]}; expected ${a} based on input ${r.inputNames[0]}.`);return{xs:s,ys:i}}function sD(r,t,e){if(e instanceof Ft)return[e];if(Array.isArray(e))return y.assert(e.length===t.length,()=>`Received an array of ${e.length} Tensors, but expected ${t.length} to match the ${r} keys ${t}.`),e;{let n=[];for(let o of t){if(e[o]==null)throw new M(`The feature data generated by the dataset lacks the required ${r} key '${o}'.`);n.push(e[o])}return n}}function O8(r){if(r.length===3)throw new St(\"Validation with sample weights is not implemented yet.\");return{xs:r[0],ys:r[1]}}async function lD(r,t,e){let n=e.batchesPerEpoch!=null;if(y.assert(r.optimizer!=null,()=>\"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig).\"),y.assert(e!=null,()=>\"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call.\"),y.assert(e.epochs!=null&&e.epochs>0&&Number.isInteger(e.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${e.epochs}`),y.assert(!n||e.batchesPerEpoch>0&&Number.isInteger(e.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${e.batchesPerEpoch}`),y.assert(e.validationSplit==null,()=>\"`validationSplit` is not supported by `fitDataset()`. Use validationData instead.\"),r.isTraining)throw new Error(\"Cannot start training because another fit() call is ongoing.\");r.isTraining=!0;try{let o=e.validationData!=null,s,i;if(o)if(iD(e.validationData))y.assert(e.validationBatches==null||e.validationBatches>0&&Number.isInteger(e.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${e.validationBatches}`);else{let g=O8(e.validationData);s=g.xs,i=g.ys}let a=r.makeTrainFunction(),u=r.getDedupedMetricsNames(),l;o?l=u.slice().concat(u.map(g=>\"val_\"+g)):l=u.slice();let c=zy(e.callbacks,e.yieldEvery),p=e.verbose==null?1:e.verbose,{callbackList:m,history:f}=By(c,p,e.epochs,null,null,P8(t,e),null,o,l);m.setModel(r),r.history=f,await m.onTrainBegin(),r.stopTraining_=!1;let d=e.initialEpoch==null?0:e.initialEpoch,h=await t.iterator();for(;d=e.batchesPerEpoch:w.done){if(o){let C;iD(e.validationData)?C=xe(await r.evaluateDataset(e.validationData,{batches:e.validationBatches})):C=xe(r.evaluate(s,i,{batchSize:e.validationBatchSize==null?F8:e.validationBatchSize,verbose:0}));for(let N=0;N0)throw new St(\"Verbose mode is not implemented yet.\");y.assert(!n||e.batches>0&&Number.isInteger(e.batches),()=>`Test loop expects \\`batches\\` to be a positive integer, but received ${JSON.stringify(e.batches)}`);let i=L8(t)?t:await t.iterator(),a=0,u=0;for(;!n||u{if(l.value){let{xs:c,ys:p}=aD(r,l.value),m=c.concat(p),f=B(()=>o(m));if(vt(m),u===0)for(let h=0;hX(s[h],D(d,g))),u>0&&vt(x)}vt(f),a+=d,++u}return s}),l.done){n&&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, ${e.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let l=0;l0&&Number.isInteger(r),()=>`batchSize is required to be a positive integer, but got ${r}`)}function Hm(r,t,e){return r==null?[null]:Array.isArray(r)?r.map(n=>rl(n,t,e-t)):rl(r,t,e-t)}function Yy(r,t){return B(()=>r==null?null:Array.isArray(r)?r.map(e=>Yy(e,t)):_y(r,t.dtype===\"int32\"?t:J(t,\"int32\")))}function Zy(r,t){let e=[],n=0,o=null;for(;n=r&&(o=r),e.push([n,o]),n=o;return e}async function M8(r,t,e,n,o,s,i,a,u,l,c,p,m,f,d){o==null&&(o=32),s==null&&(s=1),c==null&&(c=!0),m==null&&(m=0);let h=!1;if(u!=null&&l!=null&&(h=!0),d!=null&&(h=!0,f==null))throw new M(\"Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.\");let g=r.checkNumSamples(e,o,f,\"steps_per_epoch\"),x;g!=null&&(x=Zr(0,g)),i==null&&(i=1);let{callbackList:b,history:w}=By(a,i,s,m,g,f,o,h,p);b.setModel(r),r.history=w,await b.onTrainBegin(),r.stopTraining_=!1;for(let C=m;C{let P=A[$][0],V=A[$][1],G=rl(_,P,V-P);F.batch=$,F.size=V-P;let W=Yy(e,G),q=t(W);for(let H=0;H0){if(g=!0,n.validationData.length===2)u=n.validationData[0],l=n.validationData[1];else throw n.validationData.length===3?new St(\"validationData including sample weights is not supported yet.\"):new M(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${n.validationData} is invalid.`);let F=!0,P=await r.standardizeUserData(u,l,null,null,F,f);c=P[0],p=P[1],x=c.concat(p)}else if(n.validationSplit!=null&&n.validationSplit>0&&n.validationSplit<1){g=!0;let F=Math.floor(o[0].shape[0]*(1-n.validationSplit)),P=o[0].shape[0];c=Hm(o,F,P),i=o,o=Hm(o,0,F),p=Hm(s,F,P),a=s,s=Hm(s,0,F),x=c.concat(p)}else n.validationSteps!=null&&(g=!0);let b=o.concat(s).concat(m);r.checkTrainableWeightsConsistency();let w=r.makeTrainFunction(),C=r.getDedupedMetricsNames(),N,_;g?(r.makeTestFunction(),N=r.testFunction,_=C.slice().concat(C.map(F=>\"val_\"+F))):(N=null,x=[],_=C.slice());let A=zy(n.callbacks,n.yieldEvery);return await M8(r,w,b,C,f,n.epochs,n.verbose,A,N,x,n.shuffle,_,n.initialEpoch,null,null)}finally{r.isTraining=!1,Eo(o,t),Eo(s,e),Eo(i,t),Eo(a,e),Eo(c,u),Eo(p,l),m!=null&&vt(m)}}function F0(r){let t=[];r instanceof Ft&&(r=[r]);for(let e=0;ee.push(o.id));else if(t!=null)for(let o in t){let s=t[o];e.push(s.id)}let n=[];if(r instanceof Ft)e.indexOf(r.id)===-1&&n.push(r);else if(Array.isArray(r))r.forEach(o=>{e.indexOf(o.id)===-1&&n.push(o)});else if(r!=null)for(let o in r){let s=r[o];e.indexOf(s.id)===-1&&n.push(s)}n.forEach(o=>{o.isDisposed||o.dispose()})}function z8(r){return r instanceof Ft}function O0(r){return Array.isArray(r)}function pD(r){return!z8(r)&&!O0(r)}function mD(r,t,e,n=!0,o=\"\"){if(t==null||t.length===0){if(r!=null){let i=!1;if(O0(r)&&r.length>0)i=!0;else if(pD(r)){for(let a in r)if(r.hasOwnProperty(a)){i=!0;break}}else i=!0;if(i)throw new M(`Error when checking model ${o} expected no data, but got ${r}`)}return[]}if(r==null)return t.map(i=>null);let s;if(pD(r)){r=r,s=[];for(let i of t){if(r[i]==null)throw new M(`No data provided for \"${i}\". Need data for each key in: ${t}`);s.push(r[i])}}else if(O0(r)){if(r=r,r.length!==t.length)throw new M(`Error when checking model ${o}: 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): ${r}`);s=r}else{if(r=r,t.length>1)throw new M(`The model ${o} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${r.shape}`);s=[r]}if(s=F0(s),e!=null)for(let i=0;i=0&&l!==c)throw new M(`${o} expected a batch of elements where each example has shape [${e[i].slice(1,e[i].length)}] (i.e.,tensor shape [*,${e[i].slice(1,e[i].length)}]) but the ${o} received an input with ${a.shape[0]} examples, each with shape [${a.shape.slice(1,a.shape.length)}] (tensor shape [${a.shape}])`)}}return s}function B8(r,t,e){let n=vo(r.map(s=>s.shape[0]));n.sort();let o=vo(t.map(s=>s.shape[0]));if(o.sort(),n.length>1)throw new M(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(r.map(s=>s.shape))}`);if(o.length>1)throw new M(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(s=>s.shape))}`);if(n.length>0&&o.length>0&&!y.arraysEqual(n,o))throw new M(`Input Tensors should have the same number of samples as target Tensors. Found ${n[0]} input sample(s) and ${o[0]} target sample(s).`)}function V8(r,t,e){let n=[Hi,Wm,xc];for(let o=0;o1)throw new M(`The model expects ${t.length} ${o} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(r.shape)}.`);s=[r]}if(e!=null)for(let i=0;i[]);let e;if(typeof r==\"string\"||typeof r==\"function\")e=[r];else if(Array.isArray(r)||typeof r==\"object\")e=r;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${r}`);if(Array.isArray(e))return t.map(n=>e);{let n=[];for(let o of t){let s=e.hasOwnProperty(o)?e[o]:[];Array.isArray(s)||(s=[s]),n.push(s)}return n}}var W8=\"layers-model\",Bn=class extends zn{constructor(t){super(t),this.isTraining=!1}summary(t,e,n=console.log){if(!this.built)throw new M(\"This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).\");rD(this,t,e,n)}compile(t){if(t.loss==null&&(t.loss=[]),this.loss=t.loss,typeof t.optimizer==\"string\")this.optimizer_=eD(t.optimizer),this.isOptimizerOwned=!0;else{if(!(t.optimizer instanceof Wr))throw new M(\"User-defined optimizer must be an instance of tf.Optimizer.\");this.optimizer_=t.optimizer,this.isOptimizerOwned=!1}let e=[];if(!Array.isArray(t.loss)&&typeof t.loss!=\"string\"&&typeof t.loss!=\"function\"){t.loss=t.loss;for(let i in t.loss)if(this.outputNames.indexOf(i)===-1)throw new M(`Unknown entry in loss dictionary: \"${i}\". Only expected the following keys: ${this.outputNames}`);for(let i of this.outputNames)t.loss[i]==null&&console.warn(`Output \"${i}\" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${i} during training`),e.push(Vy(t.loss[i]))}else if(Array.isArray(t.loss)){if(t.loss.length!==this.outputs.length)throw new M(`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=${t.loss}.`);e=t.loss.map(a=>Vy(a))}else{let i=Vy(t.loss);this.outputs.forEach(a=>{e.push(i)})}this.lossFunctions=e,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let i=0;i{for(let i=0;i1&&(this.metricsTensors.push([a,i]),this.metricsNames.push(this.outputNames[i]+\"_loss\"))}});let o=G8(t.metrics,this.outputNames),s=(i,a,u)=>{this.outputNames.length>1&&(a=this.outputNames[i]+\"_\"+a),this.metricsNames.push(a),this.metricsTensors.push([u,i])};Hs(\"metric\",()=>{for(let i=0;i{let c=\"\",p,m,f;for(let d of l){if(typeof d==\"string\"&&[\"accuracy\",\"acc\",\"crossentropy\",\"ce\"].indexOf(d)!==-1){let g=this.internalOutputShapes[i];g[g.length-1]===1||this.lossFunctions[i]===Wm?[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=Th:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=Wy):this.lossFunctions[i]===Gm?[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=Uy:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=$0):[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=kh:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=Eh);let x;[\"accuracy\",\"acc\"].indexOf(d)!==-1?x=\"acc\":[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(x=\"ce\"),f=m,p=c+x}else f=Q$(d),p=c+_h(d);let h;Hs(p,()=>{h=f}),s(i,p,h)}})(a)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&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(t,e,n={}){let o=n.batchSize==null?32:n.batchSize;Xy(o);let s=!0,i=this.standardizeUserDataXY(t,e,s,o);try{let a=i[0].concat(i[1]);this.makeTestFunction();let u=this.testFunction,l=this.testLoop(u,a,o,n.verbose,n.steps);return Nr(l)}finally{Eo(i[0],t),Eo(i[1],e)}}async evaluateDataset(t,e){return this.makeTestFunction(),uD(this,t,e)}checkNumSamples(t,e,n,o=\"steps\"){let s;if(n!=null){if(s=null,e!=null)throw new M(`If ${o} is set, batchSize must be null or undefined.Got batchSize = ${e}`)}else if(t!=null)Array.isArray(t)?s=t[0].shape[0]:s=t.shape[0];else throw new M(`Either the input data should have a defined shape, or ${o} shoud be specified.`);return s}execute(t,e){if(Array.isArray(e)&&e.length===0)throw new M(\"`outputs` is an empty Array, which is not allowed.\");let n=Array.isArray(e),o=n?e:[e],s=this.retrieveSymbolicTensors(o),i=new ko;if(t instanceof Ft&&(t=[t]),Array.isArray(t)){if(t.length!==this.inputs.length)throw new M(`The number of inputs provided (${t.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let u=0;ua.name);for(let a=0;a0){let o=[];throw e.forEach((s,i)=>{s==null&&o.push(t[i])}),new M(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(o)}`)}return e}predictLoop(t,e=32,n=!1){return B(()=>{let o=this.checkNumSamples(t);if(n)throw new St(\"Verbose predictLoop() is not implemented yet.\");let s=Zy(o,e),i=this.outputs.map(a=>[]);for(let a=0;a{let l=s[a][0],c=s[a][1],p=Hm(t,l,c),m=[];if(Array.isArray(p))for(let d=0;di[c].push(l));return Nr(i.map(a=>ne(a,0)))})}predict(t,e={}){let n=F0(t);fD(n,this.inputNames,this.feedInputShapes,!1);try{let o=e.batchSize==null?32:e.batchSize;return Xy(o),this.predictLoop(n,o)}finally{Eo(n,t)}}predictOnBatch(t){fD(t,this.inputNames,this.feedInputShapes,!0);let e=(Array.isArray(t)?t[0]:t).shape[0];return this.predictLoop(t,e)}standardizeUserDataXY(t,e,n=!0,o){if(this.optimizer_==null)throw new Hr(\"You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).\");let s=[];for(let i=0;i0&&t[0].shape[0]%o!==0)throw new M(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${o}. Found: ${t[0].shape[0]} sample(s).`);return[t,e]}async standardizeUserData(t,e,n,o,s=!0,i){let[a,u]=this.standardizeUserDataXY(t,e,s,i);if(n!=null)throw new Error(\"sample weight is not supported yet.\");let l=null;if(o!=null){let c=Ky(o,this.outputNames);l=[];for(let p=0;p{let i=this.checkNumSamples(e,n,s,\"steps\"),a=[];if(o>0)throw new St(\"Verbose mode is not implemented yet.\");if(s!=null)throw new St(\"steps mode in testLoop() is not implemented yet\");{let u=Zy(i,n),l=Me(Zr(0,i));for(let c=0;c1){let i=C0(t.slice(0,n),o);s+=`_${i}`}e.push(s)}return e}makeTrainFunction(){return t=>{let e=[],n=t.slice(0,this.inputs.length),o=t.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=t.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),i=[],a=()=>{let p=[];for(let h=0;h1&&h{d=X(d,h)}),d},u=this.collectedTrainableWeights.map(p=>p.read()),l=!0;return[this.optimizer_.minimize(a,l,u)].concat(i)}}makeTestFunction(){this.testFunction=t=>B(()=>{let e=[],n,o=t.slice(0,this.inputs.length),s=t.slice(this.inputs.length,this.inputs.length+this.outputs.length),i=[];for(let l=0;lSo(e))}else{let e=Object.keys(this.loss);t={};let n=this.loss;for(let o of e)if(typeof n[o]==\"string\")t[o]=So(n[o]);else throw new Error(\"Serialization of non-string loss is not supported.\")}return t}getMetricIdentifiers(){if(typeof this.metrics==\"string\"||typeof this.metrics==\"function\")return[So(_h(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(t=>So(_h(t)));{let t={};for(let e in this.metrics)t[e]=So(_h(this.metrics[e]));return t}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(t){if(t.weighted_metrics!=null)throw new Error(\"Loading weight_metrics is not supported yet.\");if(t.loss_weights!=null)throw new Error(\"Loading loss_weights is not supported yet.\");if(t.sample_weight_mode!=null)throw new Error(\"Loading sample_weight_mode is not supported yet.\");let e=yc(t.optimizer_config),n=gn(e),o;if(typeof t.loss==\"string\")o=el(t.loss);else if(Array.isArray(t.loss))o=t.loss.map(i=>el(i));else if(t.loss!=null){o={};for(let i in t.loss)o[i]=el(t.loss[i])}let s;if(Array.isArray(t.metrics))s=t.metrics.map(i=>el(i));else if(t.metrics!=null){s={};for(let i in t.metrics)s[i]=el(t.metrics[i])}this.compile({loss:o,metrics:s,optimizer:n})}async save(t,e){if(typeof t==\"string\"){let l=_r.getSaveHandlers(t);if(l.length===0)throw new M(`Cannot find any save handlers for URL '${t}'`);if(l.length>1)throw new M(`Found more than one (${l.length}) save handlers for URL '${t}'`);t=l[0]}if(t.save==null)throw new M(\"LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.\");let n=await _r.encodeWeights(this.getNamedWeights(e)),o=!1,s=null,a={modelTopology:this.toJSON(s,o),format:W8,generatedBy:`TensorFlow.js tfjs-layers v${Um}`,convertedBy:null};if((e==null?!1:e.includeOptimizer)&&this.optimizer!=null){a.trainingConfig=this.getTrainingConfig();let l=\"optimizer\",{data:c,specs:p}=await _r.encodeWeights(await this.optimizer.getWeights(),l);n.specs.push(...p),n.data=_r.concatenateArrayBuffers([n.data,c])}return this.userDefinedMetadata!=null&&(R0(this.userDefinedMetadata,this.name,!0),a.userDefinedMetadata=this.userDefinedMetadata),a.weightData=n.data,a.weightSpecs=n.specs,t.save(a)}setUserDefinedMetadata(t){R0(t,this.name),this.userDefinedMetadata=t}getUserDefinedMetadata(){return this.userDefinedMetadata}};Bn.className=\"Model\";Q.registerClass(Bn);var Jy=class extends Bn{};Jy.className=\"Functional\";Q.registerClass(Jy);async function dD(r,t){\"modelTopology\"in r||(r={modelTopology:r}),r=r;let e=r.modelTopology;e.model_config!=null&&(e=e.model_config);let n=yc(e),o=gn(n,t);if(r.weightsManifest!=null){let s=await _r.loadWeights(r.weightsManifest,r.pathPrefix,o.weights.map(a=>a.originalName)),i={};for(let a of o.weights)i[a.originalName]=s[a.originalName];o.loadWeights(i),vt(s)}return o}async function hD(r,t){if(t==null&&(t={}),typeof r==\"string\"){let e=_r.getLoadHandlers(r,t);if(e.length===0)e.push(_r.browserHTTPRequest(r,t));else if(e.length>1)throw new M(`Found more than one (${e.length}) load handlers for URL '${r}'`);r=e[0]}return U8(r,void 0,t)}async function U8(r,t,e){if(e==null&&(e={}),r.load==null)throw new M(\"Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.\");let n=await r.load(),o=n.modelTopology;o.model_config!=null&&(o=o.model_config);let s=e.strict==null?!0:e.strict,i=n.weightData!=null&&n.weightSpecs!=null&&s,a=gn(yc(o),t,i),u=n.trainingConfig;if(u!=null&&a.loadTrainingConfig(u),n.userDefinedMetadata!=null&&a.setUserDefinedMetadata(n.userDefinedMetadata),n.weightData!=null){if(n.weightSpecs==null)throw new M(\"LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.\");let{modelWeights:l,optimizerWeights:c}=H8(n.weightData,n.weightSpecs);a.loadWeights(l,s),a.optimizer!=null&&c.length>0&&await a.optimizer.setWeights(c),vt(l),vt(c.map(p=>p.tensor))}return a}function H8(r,t){let e=_r.decodeWeights(r,t),n={},o=[];return t.forEach(s=>{s.group===\"optimizer\"?o.push({name:s.name,tensor:e[s.name]}):n[s.name]=e[s.name]}),{modelWeights:n,optimizerWeights:o}}var qi=class extends Bn{constructor(t){if(super({inputs:[],outputs:[]}),t=t||{},this.trainable=!0,this.built=!1,this.name=t.name!=null?t.name:gu(\"sequential_\"),t.layers!=null)for(let e of t.layers)this.add(e)}checkShape(t){if(t.inboundNodes[0].outputTensors[0].shape.some(n=>n<0))throw new M(`Negative dimension size caused by adding layer ${t.name} with input shape [${t.inboundNodes[0].inputTensors[0].shape}]`)}add(t){let e=t instanceof qi||t instanceof Bn,n;if(e){if(n=t,n.outputs.length!==1)throw new M(\"All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.\");if(n.inputs.length!==1)throw new M(\"All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.\")}if(this.outputs.length===0){if(t.inboundNodes.length===0){if(t.batchInputShape==null)throw new M(\"The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.\");let o=Dy({batchShape:t.batchInputShape,dtype:t.dtype,name:t.name+\"_input\"});t.apply(o)}if(e)this.outputs=n.outputs,this.inputs=n.inputs;else{if(t.inboundNodes.length!==1)throw new M(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${t.name} which has ${t.inboundNodes.length} pre-existing inbound connections.`);if(t.inboundNodes[0].outputTensors.length!==1)throw new M(\"All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.\");this.checkShape(t),this.outputs=[t.inboundNodes[0].outputTensors[0]],this.inputs=k0(this.outputs[0])}this.inboundNodes=[],new ol({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:Io(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(o=>o.shape),outputShapes:this.outputs[0].shape})}else{let o=t.apply(this.outputs[0]);if(Array.isArray(o))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(t),this.outputs=[o],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(t),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError(\"There are no layers in the model.\");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let t=this.layers.length-1;this.layers[t].outboundNodes=[],this.outputs=[this.layers[t].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(t,e){return this.model==null&&this.build(),this.model.call(t,e)}build(t){if(Bt(t),this.inputs.length===0||this.outputs.length===0)throw new TypeError(\"Sequential model cannot be built: model is empty. Add some layers first.\");this.model=new Bn({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(t,e,n=console.log){this.built||this.build(),super.summary(t,e,n)}setWeights(t){this.model==null&&this.build(),this.model.setWeights(t)}evaluate(t,e,n={}){if(!this.built)throw new Hr(\"The model needs to be compiled before being used.\");return this.model.evaluate(t,e,n)}async evaluateDataset(t,e){if(!this.built)throw new Hr(\"The model needs to be compiled before being used.\");return this.model.evaluateDataset(t,e)}predict(t,e={}){return this.model==null&&this.build(),this.model.predict(t,e)}predictOnBatch(t){return this.model==null&&this.build(),this.model.predictOnBatch(t)}compile(t){this.build(),this.model.compile(t),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 this.model==null?void 0:this.model.optimizer}set optimizer(t){this.model.optimizer=t}async fit(t,e,n={}){if(!this.built)throw new Hr(\"The model needs to be compiled before being used.\");return this.model.fit(t,e,n)}async fitDataset(t,e){if(!this.built)throw new Hr(\"The model needs to be compiled before being used.\");return this.model.fitDataset(t,e)}async trainOnBatch(t,e){return this.model.trainOnBatch(t,e)}static fromConfig(t,e,n={},o=!1){let s,i={};if(e instanceof Array){if(e[0].className==null||e[0].className===\"Merge\")throw new M(\"Legacy serialization format not supported yet.\");s=e}else y.assert(e.layers!=null,()=>\"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field.\"),s=e.layers,delete e.layers,i=e;let a=new t(i);if(!(a instanceof qi))throw new St(`Sequential.fromConfig called on non-Sequential input: ${a}`);for(let u of s){let c=gn(u,void 0,o);o&&c.setFastWeightInitDuringBuild(!0),a.add(c)}return a}set stopTraining(t){if(this.model==null)throw new M(\"Cannot set the stopTraining property of a sequential model before it is compiled.\");this.model.stopTraining=t}get stopTraining(){if(this.model==null)throw new M(\"Cannot get the stopTraining property of a sequential model before it is compiled.\");return this.model.stopTraining}getConfig(){let t=[];for(let e of this.layers){let n={};n.className=e.getClassName(),n.config=e.getConfig(),t.push(n)}return{name:this.name,layers:t}}};qi.className=\"Sequential\";Q.registerClass(qi);function q8(r){return new Bn(r)}function K8(r){return new qi(r)}function P0(r){return Dy(r)}function j8(r,t){hn.registerCallbackConstructor(r,t)}var Qr=class extends Q.Serializable{getConfig(){return{}}},Qy=class extends Qr{apply(t,e=1){return F$(t,e)}};Qy.className=\"elu\";Q.registerClass(Qy);var tb=class extends Qr{apply(t){return pm(t)}};tb.className=\"selu\";Q.registerClass(tb);var eb=class extends Qr{apply(t){return Fr(t)}};eb.className=\"relu\";Q.registerClass(eb);var rb=class extends Qr{apply(t){return B(()=>Mi(6,Fr(t)))}};rb.className=\"relu6\";Q.registerClass(rb);var nb=class extends Qr{apply(t){return t}};nb.className=\"linear\";Q.registerClass(nb);var ob=class extends Qr{apply(t){return Yr(t)}};ob.className=\"sigmoid\";Q.registerClass(ob);var sb=class extends Qr{apply(t){return P$(t)}};sb.className=\"hardSigmoid\";Q.registerClass(sb);var ib=class extends Qr{apply(t){return zs(t)}};ib.className=\"softplus\";Q.registerClass(ib);var ab=class extends Qr{apply(t){return O$(t)}};ab.className=\"softsign\";Q.registerClass(ab);var lb=class extends Qr{apply(t){return $i(t)}};lb.className=\"tanh\";Q.registerClass(lb);var qm=class extends Qr{apply(t,e=-1){return iu(t,e)}};qm.className=\"softmax\";Q.registerClass(qm);var ub=class extends Qr{apply(t,e=-1){return sm(t,e)}};ub.className=\"logSoftmax\";Q.registerClass(ub);var cb=class extends Qr{apply(t,e=1){return B(()=>D(Yr(D(t,e)),t))}};cb.className=\"swish\";Q.registerClass(cb);var pb=class extends Qr{apply(t){return B(()=>D(t,$i(zs(t))))}};pb.className=\"mish\";Q.registerClass(pb);function js(r){return r.getClassName()}function L0(r,t={}){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,\"activation\")}function Xs(r){if(r==null){let t={};return t.className=\"linear\",t.config={},L0(t)}if(typeof r==\"string\"){let t={};return t.className=r,t.config={},L0(t)}else return r instanceof Qr?r:L0(r)}function M0(r){if(r!=null&&typeof r!=\"object\")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${r}`)}var mb=class extends Q.Serializable{},wu=class extends mb{constructor(t){super(),M0(t),this.l1=t==null||t.l1==null?.01:t.l1,this.l2=t==null||t.l2==null?.01:t.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(t){return B(()=>{let e=Ne([1]);return this.hasL1&&(e=X(e,ft(D(this.l1,Ee(t))))),this.hasL2&&(e=X(e,ft(D(this.l2,lc(t))))),R(e,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(t,e){return new t({l1:e.l1,l2:e.l2})}};wu.className=\"L1L2\";Q.registerClass(wu);function yD(r){return M0(r),new wu({l1:r!=null?r.l1:null,l2:0})}function bD(r){return M0(r),new wu({l2:r!=null?r.l2:null,l1:0})}var gD={l1l2:\"L1L2\"};function me(r){return Sm(r)}function xD(r,t={}){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,\"regularizer\")}function be(r){if(r==null)return null;if(typeof r==\"string\"){let e={className:r in gD?gD[r]:r,config:{}};return xD(e)}else return r instanceof mb?r:xD(r)}var Km=class extends $t{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null&&(this.maxValue=t.maxValue)}call(t,e){t=Nt(t);let n=Fr(t);return this.maxValue!=null&&(n=Cr(n,0,this.maxValue)),n}computeOutputShape(t){return t}getConfig(){let t={maxValue:this.maxValue},e=super.getConfig();return Object.assign(t,e),t}};Km.className=\"ReLU\";Q.registerClass(Km);var jm=class extends $t{constructor(t){super(t==null?{}:t),this.DEFAULT_ALPHA=.3,t==null&&(t={}),this.alpha=t.alpha==null?this.DEFAULT_ALPHA:t.alpha}call(t,e){let n=Nt(t);return Ql(n,this.alpha)}computeOutputShape(t){return t}getConfig(){let t={alpha:this.alpha},e=super.getConfig();return Object.assign(t,e),t}};jm.className=\"LeakyReLU\";Q.registerClass(jm);var Xm=class extends $t{constructor(t){if(super(t==null?{}:t),this.DEFAULT_ALPHA_INITIALIZER=\"zeros\",t==null&&(t={}),this.supportsMasking=!0,this.alphaInitializer=de(t.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=be(t.alphaRegularizer),this.alphaConstraint=Be(t.alphaConstraint),t.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(t.sharedAxes))this.sharedAxes=t.sharedAxes;else if(typeof t.sharedAxes==\"number\")this.sharedAxes=[t.sharedAxes];else throw new M(`Expected sharedAxes to be a number or an array of numbers, but got ${t.sharedAxes}`)}build(t){t=Bt(t);let e=t.slice(1);if(this.sharedAxes!=null)for(let o of this.sharedAxes)e[o-1]=1;this.alpha=this.addWeight(\"alpha\",e,\"float32\",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let o=1;o(Fe(t),t===\"channelsFirst\"?Ot(r,[0,2,3,1]):r))}function z0(r,t){return B(()=>(Fe(t),t===\"channelsFirst\"?Ot(r,[0,2,3,4,1]):r))}function Y8(r,t,e,n=1,o=\"valid\",s,i=1){return B(()=>{if(s==null&&(s=mn()),Fe(s),r.shape.length!==3)throw new M(`The input of a conv1dWithBias operation should be 3, but is ${r.shape.length} instead.`);if(t.shape.length!==3)throw new M(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(e!=null&&e.shape.length!==1)throw new M(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s===\"channelsFirst\"&&(r=Ot(r,[0,2,1])),o===\"causal\")throw new St(\"The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.\");let a=Qp(r,t,n,o===\"same\"?\"same\":\"valid\",\"NWC\",i);return e!=null&&(a=fn(a,e)),a})}function wD(r,t,e,n=[1,1],o=\"valid\",s,i,a=null){return B(()=>{if(s==null&&(s=mn()),Fe(s),r.rank!==3&&r.rank!==4)throw new M(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${r.rank}.`);if(t.rank!==3&&t.rank!==4)throw new M(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${r.rank}.`);let u=Ah(r,s);if(o===\"causal\")throw new St(\"The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.\");return u=uu.conv2d({x:u,filter:t,strides:n,pad:o===\"same\"?\"same\":\"valid\",dilations:i,dataFormat:\"NHWC\",bias:e,activation:a}),s===\"channelsFirst\"&&(u=Ot(u,[0,3,1,2])),u})}function Z8(r,t,e,n=[1,1,1],o=\"valid\",s,i){return B(()=>{if(s==null&&(s=mn()),Fe(s),r.rank!==4&&r.rank!==5)throw new M(`conv3dWithBias expects input to be of rank 4 or 5, but received ${r.rank}.`);if(t.rank!==4&&t.rank!==5)throw new M(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${r.rank}.`);let a=z0(r,s);if(o===\"causal\")throw new St(\"The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.\");return a=Tx(a,t,n,o===\"same\"?\"same\":\"valid\",\"NDHWC\",i),e!=null&&(a=fn(a,e)),s===\"channelsFirst\"&&(a=Ot(a,[0,4,1,2,3])),a})}var bc=class extends $t{constructor(t,e){if(super(e),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",bc.verifyArgs(e),this.rank=t,Ze(this.rank,\"rank\"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new St(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=Cu(e.kernelSize,t,\"kernelSize\"),this.strides=Cu(e.strides==null?1:e.strides,t,\"strides\"),this.padding=e.padding==null?\"valid\":e.padding,pn(this.padding),this.dataFormat=e.dataFormat==null?\"channelsLast\":e.dataFormat,Fe(this.dataFormat),this.activation=Xs(e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.biasInitializer=de(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Be(e.biasConstraint),this.biasRegularizer=be(e.biasRegularizer),this.activityRegularizer=be(e.activityRegularizer),this.dilationRate=Cu(e.dilationRate==null?1:e.dilationRate,t,\"dilationRate\"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new M(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate==\"number\")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new M(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate==\"number\")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new M(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(t){if(ro(\"kernelSize\"in t,\"required key 'kernelSize' not in config\"),typeof t.kernelSize!=\"number\"&&!Cy(t.kernelSize,\"number\",1,3))throw new M(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(t.kernelSize)}.`)}getConfig(){let t={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:js(this.activation),useBias:this.useBias,biasInitializer:Te(this.biasInitializer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),biasConstraint:ze(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}},Iu=class extends bc{constructor(t,e){super(t,e),this.kernel=null,Iu.verifyArgs(e),this.filters=e.filters,Ze(this.filters,\"filters\"),this.kernelInitializer=de(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Be(e.kernelConstraint),this.kernelRegularizer=be(e.kernelRegularizer)}build(t){t=Bt(t);let e=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[e]==null)throw new M(`The channel dimension of the input should be defined. Found ${t[e]}`);let n=t[e],o=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight(\"kernel\",o,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:{[e]:n}}],this.built=!0}call(t,e){return B(()=>{t=Nt(t);let n,o=this.bias==null?null:this.bias.read(),s=Iy(this.activation.getClassName());if(s!=null&&this.rank===2)n=wD(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)n=Y8(t,this.kernel.read(),o,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=wD(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=Z8(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new St(\"convolutions greater than 3D are not implemented yet.\");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(t){t=Bt(t);let e=[],n=this.dataFormat===\"channelsLast\"?t.slice(1,t.length-1):t.slice(2);for(let s=0;s 0 but got ${JSON.stringify(t.filters)}`)}},il=class extends Iu{constructor(t){super(2,t),il.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!=\"number\"&&!Cy(t.kernelSize,\"number\",1,2))throw new M(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(t.kernelSize)}.`)}};il.className=\"Conv2D\";Q.registerClass(il);var al=class extends Iu{constructor(t){super(3,t),al.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!=\"number\"&&!(Array.isArray(t.kernelSize)&&(t.kernelSize.length===1||t.kernelSize.length===3)))throw new M(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(t.kernelSize)}.`)}};al.className=\"Conv3D\";Q.registerClass(al);var Qm=class extends il{constructor(t){if(super(t),this.inputSpec=[new ye({ndim:4})],this.padding!==\"same\"&&this.padding!==\"valid\")throw new M(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=Bt(t),t.length!==4)throw new M(\"Input should have rank 4; Received input shape: \"+JSON.stringify(t));let e=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[e]==null)throw new M(\"The channel dimension of the inputs should be defined. Found `None`.\");let n=t[e],o=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight(\"kernel\",o,\"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 ye({ndim:4,axes:{[e]:n}})],this.built=!0}call(t,e){return B(()=>{let n=Nt(t);if(n.shape.length!==4)throw new M(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let o=n.shape,s=o[0],i,a;this.dataFormat===\"channelsFirst\"?(i=2,a=3):(i=1,a=2);let u=o[i],l=o[a],c=this.kernelSize[0],p=this.kernelSize[1],m=this.strides[0],f=this.strides[1],d=Ys(u,m,c,this.padding),h=Ys(l,f,p,this.padding),g=[s,d,h,this.filters];this.dataFormat!==\"channelsLast\"&&(n=Ot(n,[0,2,3,1]));let x=em(n,this.kernel.read(),g,this.strides,this.padding);return this.dataFormat!==\"channelsLast\"&&(x=Ot(x,[0,3,1,2])),this.bias!=null&&(x=fn(x,this.bias.read(),this.dataFormat)),this.activation!=null&&(x=this.activation.apply(x)),x})}computeOutputShape(t){t=Bt(t);let e=t.slice(),n,o,s;this.dataFormat===\"channelsFirst\"?(n=1,o=2,s=3):(n=3,o=1,s=2);let i=this.kernelSize[0],a=this.kernelSize[1],u=this.strides[0],l=this.strides[1];return e[n]=this.filters,e[o]=Ys(e[o],u,i,this.padding),e[s]=Ys(e[s],l,a,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};Qm.className=\"Conv2DTranspose\";Q.registerClass(Qm);var tf=class extends al{constructor(t){if(super(t),this.inputSpec=[new ye({ndim:5})],this.padding!==\"same\"&&this.padding!==\"valid\")throw new M(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=Bt(t),t.length!==5)throw new M(\"Input should have rank 5; Received input shape: \"+JSON.stringify(t));let e=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[e]==null)throw new M(\"The channel dimension of the inputs should be defined. Found `None`.\");let n=t[e],o=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight(\"kernel\",o,\"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 ye({ndim:5,axes:{[e]:n}})],this.built=!0}call(t,e){return B(()=>{let n=Nt(t);if(n.shape.length!==5)throw new M(`Conv3DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let o=n.shape,s=o[0],i,a,u;this.dataFormat===\"channelsFirst\"?(u=2,i=3,a=4):(u=1,i=2,a=3);let l=o[u],c=o[i],p=o[a],m=this.kernelSize[0],f=this.kernelSize[1],d=this.kernelSize[2],h=this.strides[0],g=this.strides[1],x=this.strides[2],b=Ys(l,h,m,this.padding),w=Ys(c,g,f,this.padding),C=Ys(p,x,d,this.padding),N=[s,b,w,C,this.filters];this.dataFormat!==\"channelsLast\"&&(n=Ot(n,[0,2,3,4,1]));let _=Ex(n,this.kernel.read(),N,this.strides,this.padding);return this.dataFormat!==\"channelsLast\"&&(_=Ot(_,[0,4,1,2,3])),this.bias!==null&&(_=fn(_,this.bias.read(),this.dataFormat)),this.activation!==null&&(_=this.activation.apply(_)),_})}computeOutputShape(t){t=Bt(t);let e=t.slice(),n,o,s,i;this.dataFormat===\"channelsFirst\"?(n=1,o=2,s=3,i=4):(n=4,o=1,s=2,i=3);let a=this.kernelSize[0],u=this.kernelSize[1],l=this.kernelSize[2],c=this.strides[0],p=this.strides[1],m=this.strides[2];return e[n]=this.filters,e[o]=Ys(e[o],c,a,this.padding),e[s]=Ys(e[s],p,u,this.padding),e[i]=Ys(e[i],m,l,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};tf.className=\"Conv3DTranspose\";Q.registerClass(tf);var fb=class extends Iu{constructor(t,e){if(super(t,e),this.DEFAULT_DEPTHWISE_INITIALIZER=\"glorotUniform\",this.DEFAULT_POINTWISE_INITIALIZER=\"glorotUniform\",this.depthwiseKernel=null,this.pointwiseKernel=null,e.filters==null)throw new M(\"The `filters` configuration field is required by SeparableConv, but is unspecified.\");if(e.kernelInitializer!=null||e.kernelRegularizer!=null||e.kernelConstraint!=null)throw new M(\"Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.\");if(e.padding!=null&&e.padding!==\"same\"&&e.padding!==\"valid\")throw new M(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(e.padding)}`);this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=de(e.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=be(e.depthwiseRegularizer),this.depthwiseConstraint=Be(e.depthwiseConstraint),this.pointwiseInitializer=de(e.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=be(e.pointwiseRegularizer),this.pointwiseConstraint=Be(e.pointwiseConstraint)}build(t){if(t=Bt(t),t.length{t=Nt(t);let n;if(this.rank===1)throw new St(\"1D separable convolution is not implemented yet.\");return this.rank===2&&(this.dataFormat===\"channelsFirst\"&&(t=Ot(t,[0,2,3,1])),n=mm(t,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,\"NHWC\")),this.useBias&&(n=fn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat===\"channelsFirst\"&&(n=Ot(n,[0,3,1,2])),n})}getConfig(){let t=super.getConfig();return delete t.rank,delete t.kernelInitializer,delete t.kernelRegularizer,delete t.kernelConstraint,t.depthwiseInitializer=Te(this.depthwiseInitializer),t.pointwiseInitializer=Te(this.pointwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.pointwiseRegularizer=me(this.pointwiseRegularizer),t.depthwiseConstraint=ze(this.depthwiseConstraint),t.pointwiseConstraint=ze(this.pointwiseConstraint),t}};fb.className=\"SeparableConv\";var ef=class extends fb{constructor(t){super(2,t)}};ef.className=\"SeparableConv2D\";Q.registerClass(ef);var Su=class extends Iu{constructor(t){super(1,t),Su.verifyArgs(t),this.inputSpec=[{ndim:3}]}getConfig(){let t=super.getConfig();return delete t.rank,delete t.dataFormat,t}static verifyArgs(t){if(typeof t.kernelSize!=\"number\"&&!Cy(t.kernelSize,\"number\",1,1))throw new M(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(t.kernelSize)}.`)}};Su.className=\"Conv1D\";Q.registerClass(Su);var rf=class extends $t{constructor(t){super(t),typeof t.cropping==\"number\"?this.cropping=[[t.cropping,t.cropping],[t.cropping,t.cropping]]:typeof t.cropping[0]==\"number\"?this.cropping=[[t.cropping[0],t.cropping[0]],[t.cropping[1],t.cropping[1]]]:this.cropping=t.cropping,this.dataFormat=t.dataFormat===void 0?\"channelsLast\":t.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(t){return this.dataFormat===\"channelsFirst\"?[t[0],t[1],t[2]-this.cropping[0][0]-this.cropping[0][1],t[3]-this.cropping[1][0]-this.cropping[1][1]]:[t[0],t[1]-this.cropping[0][0]-this.cropping[0][1],t[2]-this.cropping[1][0]-this.cropping[1][1],t[3]]}call(t,e){return B(()=>{if(t=Nt(t),this.dataFormat===\"channelsLast\"){let n=wh(t,this.cropping[0][0],t.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return wh(n,this.cropping[1][0],t.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=wh(t,this.cropping[0][0],t.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return wh(n,this.cropping[1][0],t.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let t={cropping:this.cropping,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};rf.className=\"Cropping2D\";Q.registerClass(rf);var nf=class extends $t{constructor(t){super(t),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=t.size==null?this.DEFAULT_SIZE:t.size,this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Fe(this.dataFormat),this.interpolation=t.interpolation==null?\"nearest\":t.interpolation,E$(this.interpolation)}computeOutputShape(t){if(this.dataFormat===\"channelsFirst\"){let e=t[2]==null?null:this.size[0]*t[2],n=t[3]==null?null:this.size[1]*t[3];return[t[0],t[1],e,n]}else{let e=t[1]==null?null:this.size[0]*t[1],n=t[2]==null?null:this.size[1]*t[2];return[t[0],e,n,t[3]]}}call(t,e){return B(()=>{let n=Nt(t),o=n.shape;if(this.dataFormat===\"channelsFirst\"){n=Ot(n,[0,2,3,1]);let s=this.size[0]*o[2],i=this.size[1]*o[3],a=this.interpolation===\"nearest\"?Gs.resizeNearestNeighbor(n,[s,i]):Gs.resizeBilinear(n,[s,i]);return Ot(a,[0,3,1,2])}else{let s=this.size[0]*o[1],i=this.size[1]*o[2];return this.interpolation===\"nearest\"?Gs.resizeNearestNeighbor(n,[s,i]):Gs.resizeBilinear(n,[s,i])}})}getConfig(){let t={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},e=super.getConfig();return Object.assign(t,e),t}};nf.className=\"UpSampling2D\";Q.registerClass(nf);function J8(r,t,e=[1,1],n=\"valid\",o,s){return B(()=>{o==null&&(o=mn()),Fe(o);let i=Ah(r,o);if(r.rank!==4)throw new M(`Input for depthwiseConv2d is required to be 4-D, but is instead ${r.rank}-D`);if(t.rank!==4)throw new M(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=Fi(i,t,e,n===\"same\"?\"same\":\"valid\",\"NHWC\",s),o===\"channelsFirst\"&&(i=Ot(i,[0,3,1,2])),i})}var of=class extends bc{constructor(t){super(2,t),this.depthwiseKernel=null,this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=de(t.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Be(t.depthwiseConstraint),this.depthwiseRegularizer=be(t.depthwiseRegularizer)}build(t){if(t=Bt(t),t.length<4)throw new M(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(t)}.`);let e=this.dataFormat===\"channelsFirst\"?1:3;if(t[e]==null||t[e]<0)throw new M(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${t[e]}).`);let n=t[e],o=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight(\"depthwise_kernel\",o,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(t,e){return B(()=>{t=Nt(t);let n=J8(t,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=fn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(t){t=Bt(t);let e=this.dataFormat===\"channelsFirst\"?t[2]:t[1],n=this.dataFormat===\"channelsFirst\"?t[3]:t[2],o=this.dataFormat===\"channelsFirst\"?t[1]*this.depthMultiplier:t[3]*this.depthMultiplier,s=Nn(e,this.kernelSize[0],this.padding,this.strides[0]),i=Nn(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat===\"channelsFirst\"?[t[0],o,s,i]:[t[0],s,i,o]}getConfig(){let t=super.getConfig();return t.depthMultiplier=this.depthMultiplier,t.depthwiseInitializer=Te(this.depthwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.depthwiseConstraint=ze(this.depthwiseRegularizer),t}};of.className=\"DepthwiseConv2D\";Q.registerClass(of);function B0(r,t,e,n){if(Array.isArray(r)){if(t!=null||e!=null)throw new M(\"When inputs is an array, neither initialState or constants should be provided\");n!=null&&(e=r.slice(r.length-n,r.length),r=r.slice(0,r.length-n)),r.length>1&&(t=r.slice(1,r.length)),r=r[0]}function o(s){return s==null||Array.isArray(s)?s:[s]}return t=o(t),e=o(e),{inputs:r,initialState:t,constants:e}}function V0(r,t,e,n=!1,o,s,i=!1,a=!1){return B(()=>{let u=t.shape.length;if(u<3)throw new M(`Input should be at least 3D, but is ${u}D.`);let l=[1,0].concat(Zr(2,u));if(t=Ot(t,l),s!=null)throw new St(\"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.\"),o!=null&&(o=J(J(o,\"bool\"),\"float32\"),o.rank===u-1&&(o=rr(o,-1)),o=Ot(o,l)),n&&(t=pr(t,0),o!=null&&(o=pr(o,0)));let c=[],p,m=e,f=t.shape[0],d=vr(t),h;o!=null&&(h=vr(o));for(let x=0;xr(b,m));if(o==null)p=w[0],m=w[1];else{let C=B(()=>{let N=h[x],_=ct(yr(N),N),A=X(D(w[0],N),D(m[0],_)),$=m.map((F,P)=>X(D(w[1][P],N),D(F,_)));return{output:A,newStates:$}});p=C.output,m=C.newStates}a&&c.push(p)}let g;return a&&(g=nr(c,1)),[p,g,m]})}var Tn=class extends $t{constructor(t){super(t);let e;if(t.cell==null)throw new M(\"cell property is missing for the constructor of RNN.\");if(Array.isArray(t.cell)?e=new Ic({cells:t.cell}):e=t.cell,e.stateSize==null)throw new M(\"The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).\");this.cell=e,this.returnSequences=t.returnSequences==null?!1:t.returnSequences,this.returnState=t.returnState==null?!1:t.returnState,this.goBackwards=t.goBackwards==null?!1:t.goBackwards,this._stateful=t.stateful==null?!1:t.stateful,this.unroll=t.unroll==null?!1:t.unroll,this.supportsMasking=!0,this.inputSpec=[new ye({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Zr(0,t).map(e=>null)}else return this.states_}setStates(t){this.states_=t}computeOutputShape(t){$y(t)&&(t=t[0]),t=t;let e=this.cell.stateSize;Array.isArray(e)||(e=[e]);let n=e[0],o;if(this.returnSequences?o=[t[0],t[1],n]:o=[t[0],n],this.returnState){let s=[];for(let i of e)s.push([t[0],i]);return[o].concat(s)}else return o}computeMask(t,e){return B(()=>{Array.isArray(e)&&(e=e[0]);let n=this.returnSequences?e:null;if(this.returnState){let o=this.states.map(s=>null);return[n].concat(o)}else return n})}get states(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,e=[];for(let n=0;na.shape[a.shape.length-1]),i))throw new M(`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=i.map(a=>new ye({shape:[null,a]}));this.stateful&&this.resetStates()}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new vn(\"Cannot call resetStates() on an RNN Layer that is not stateful.\");let n=this.inputSpec[0].shape[0];if(n==null)throw new M(\"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(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>Ne([n,o])):this.states_=[Ne([n,this.cell.stateSize])];else if(t==null)vt(this.states_),this.keptStates!=null&&(vt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>Ne([n,o])):this.states_[0]=Ne([n,this.cell.stateSize]);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new M(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);e===!0?this.keptStates.push(this.states_.slice()):vt(this.states_);for(let o=0;oDe(o.clone()))})}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=B0(t,n,o,this.numConstants);t=s.inputs,n=s.initialState,o=s.constants;let i=[],a=[];if(n!=null){e.initialState=n,i=i.concat(n),this.stateSpec=[];for(let l of n)this.stateSpec.push(new ye({shape:l.shape}));a=a.concat(this.stateSpec)}if(o!=null&&(e.constants=o,i=i.concat(o),this.numConstants=o.length),i[0]instanceof Jr){let l=[t].concat(i),c=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=c;let m=super.apply(l,e);return this.inputSpec=p,m}else return super.apply(t,e)}call(t,e){return B(()=>{let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;t=Nt(t),s==null&&(this.stateful?s=this.states_:s=this.getInitialState(t));let i=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(s.length!==i)throw new M(`RNN Layer has ${i} state(s) but was passed ${s.length} initial state(s).`);this.unroll&&console.warn(\"Ignoring unroll = true for RNN layer, due to imperative backend.\");let a={training:o},l=V0((d,h)=>{let g=this.cell.call([d].concat(h),a);return[g[0],g.slice(1)]},t,s,this.goBackwards,n,null,this.unroll,this.returnSequences),c=l[0],p=l[1],m=l[2];this.stateful&&this.resetStates(m,o);let f=this.returnSequences?p:c;return this.returnState?[f].concat(m):f})}getInitialState(t){return B(()=>{let e=Ne(t.shape);return e=ft(e,[1,2]),e=nl(e),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Ey(e,[1,n]):e):this.cell.stateSize>1?[Ey(e,[1,this.cell.stateSize])]:[e]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(t)}getConfig(){let t=super.getConfig(),e={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(e.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===Tn.className&&(e.cell={className:this.cell.getClassName(),config:n}),Object.assign(Object.assign(Object.assign({},n),t),e)}static fromConfig(t,e,n={}){let o=e.cell,s=gn(o,n);return new t(Object.assign(e,{cell:s}))}};Tn.className=\"RNN\";Q.registerClass(Tn);var ll=class extends $t{},wc=class extends ll{constructor(t){super(t),this.DEFAULT_ACTIVATION=\"tanh\",this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_RECURRENT_INITIALIZER=\"orthogonal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",this.units=t.units,Ze(this.units,\"units\"),this.activation=Xs(t.activation==null?this.DEFAULT_ACTIVATION:t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=de(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=be(t.kernelRegularizer),this.recurrentRegularizer=be(t.recurrentRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.kernelConstraint=Be(t.kernelConstraint),this.recurrentConstraint=Be(t.recurrentConstraint),this.biasConstraint=Be(t.biasConstraint),this.dropout=ac([1,qs([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=ac([1,qs([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Bt(t),this.kernel=this.addWeight(\"kernel\",[t[t.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(t,e){return B(()=>{if(t=t,t.length!==2)throw new M(`SimpleRNNCell expects 2 input Tensors, got ${t.length}.`);let n=t[1];t=t[0];let o=e.training==null?!1:e.training;0yr(t),rate:this.dropout,training:o,dropoutFunc:this.dropoutFunc})),0yr(n),rate:this.recurrentDropout,training:o,dropoutFunc:this.dropoutFunc}));let s,i=this.dropoutMask,a=this.recurrentDropoutMask;i!=null?s=To(D(t,i),this.kernel.read()):s=To(t,this.kernel.read()),this.bias!=null&&(s=fn(s,this.bias.read())),a!=null&&(n=D(n,a));let u=X(s,To(n,this.recurrentKernel.read()));return this.activation!=null&&(u=this.activation.apply(u)),[u,u]})}getConfig(){let t=super.getConfig(),e={units:this.units,activation:js(this.activation),useBias:this.useBias,kernelInitializer:Te(this.kernelInitializer),recurrentInitializer:Te(this.recurrentInitializer),biasInitializer:Te(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),recurrentRegularizer:me(this.recurrentRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:ze(this.kernelConstraint),recurrentConstraint:ze(this.recurrentConstraint),biasConstraint:ze(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},t),e)}};wc.className=\"SimpleRNNCell\";Q.registerClass(wc);var sf=class extends Tn{constructor(t){t.cell=new wc(t),super(t)}call(t,e){return B(()=>{this.cell.dropoutMask!=null&&(vt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(vt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return new t(e)}};sf.className=\"SimpleRNN\";Q.registerClass(sf);var Cc=class extends ll{constructor(t){if(super(t),this.DEFAULT_ACTIVATION=\"tanh\",this.DEFAULT_RECURRENT_ACTIVATION=\"hardSigmoid\",this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_RECURRENT_INITIALIZER=\"orthogonal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",t.resetAfter)throw new M(\"GRUCell does not support reset_after parameter set to true.\");this.units=t.units,Ze(this.units,\"units\"),this.activation=Xs(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=Xs(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=de(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=be(t.kernelRegularizer),this.recurrentRegularizer=be(t.recurrentRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.kernelConstraint=Be(t.kernelConstraint),this.recurrentConstraint=Be(t.recurrentConstraint),this.biasConstraint=Be(t.biasConstraint),this.dropout=ac([1,qs([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=ac([1,qs([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Bt(t);let e=t[t.length-1];this.kernel=this.addWeight(\"kernel\",[e,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight(\"recurrent_kernel\",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight(\"bias\",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(t,e){return B(()=>{if(t=t,t.length!==2)throw new M(`GRUCell expects 2 input Tensors (inputs, h, c), got ${t.length}.`);let n=e.training==null?!1:e.training,o=t[1];t=t[0],0yr(t),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0yr(o),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));let s=this.dropoutMask,i=this.recurrentDropoutMask,a,u,l;0{this.cell.dropoutMask!=null&&(vt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(vt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return e.implmentation===0&&(e.implementation=1),new t(e)}};af.className=\"GRU\";Q.registerClass(af);var ul=class extends ll{constructor(t){super(t),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=t.units,Ze(this.units,\"units\"),this.activation=Xs(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=Xs(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=de(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=t.unitForgetBias,this.kernelRegularizer=be(t.kernelRegularizer),this.recurrentRegularizer=be(t.recurrentRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.kernelConstraint=Be(t.kernelConstraint),this.recurrentConstraint=Be(t.recurrentConstraint),this.biasConstraint=Be(t.biasConstraint),this.dropout=ac([1,qs([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=ac([1,qs([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){var e;t=Bt(t);let n=t[t.length-1];this.kernel=this.addWeight(\"kernel\",[n,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight(\"recurrent_kernel\",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let o;if(this.useBias){if(this.unitForgetBias){let s=this.biasInitializer,i=this.units;o=new(e=class extends dn{apply(u,l){let c=s.apply([i]),p=new yu().apply([i]),m=s.apply([i*2]);return T0(T0(c,p),m)}},e.className=\"CustomInit\",e)}else o=this.biasInitializer;this.bias=this.addWeight(\"bias\",[this.units*4],null,o,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(t,e){return B(()=>{let n=e.training==null?!1:e.training;if(t=t,t.length!==3)throw new M(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let o=t[1],s=t[2];t=t[0],0yr(t),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0yr(o),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));let i=this.dropoutMask,a=this.recurrentDropoutMask,u,l,c,p;0{this.cell.dropoutMask!=null&&(vt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(vt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return e.implmentation===0&&(e.implementation=1),new t(e)}};lf.className=\"LSTM\";Q.registerClass(lf);var Ic=class extends ll{constructor(t){super(t),this.cells=t.cells}get stateSize(){let t=[];for(let e of this.cells.slice().reverse())Array.isArray(e.stateSize)?t.push(...e.stateSize):t.push(e.stateSize);return t}call(t,e){return B(()=>{t=t;let n=t.slice(1),o=[];for(let a of this.cells.slice().reverse())Array.isArray(a.stateSize)?o.push(n.splice(0,a.stateSize.length)):o.push(n.splice(0,1));o.reverse();let s=[],i;for(let a=0;a{Hs(`RNNCell_${o}`,()=>{n.build(t),Array.isArray(n.stateSize)?e=n.stateSize[0]:e=n.stateSize,t=[t[0],e]})}),this.built=!0}getConfig(){let t=super.getConfig(),e=s=>({className:s.getClassName(),config:s.getConfig()}),o={cells:this.cells.map(e)};return Object.assign(Object.assign({},t),o)}static fromConfig(t,e,n={}){let o=[];for(let s of e.cells)o.push(gn(s,n));return new t({cells:o})}get trainableWeights(){if(!this.trainable)return[];let t=[];for(let e of this.cells)t.push(...e.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let e of this.cells)t.push(...e.nonTrainableWeights);if(!this.trainable){let e=[];for(let n of this.cells)e.push(...n.trainableWeights);return e.concat(t)}return t}getWeights(){let t=[];for(let e of this.cells)t.push(...e.weights);return Ih(t)}setWeights(t){let e=[];for(let n of this.cells){let o=n.weights.length,s=t.splice(o);for(let i=0;is!=null?s(t(),e):Ay(t(),e),a=()=>xu(i,t,n);return!o||o<=1?De(a().clone()):Array(o).fill(void 0).map(a).map(l=>De(l.clone()))}var Q8=function(r,t){var e={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&t.indexOf(n)<0&&(e[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var o=0,n=Object.getOwnPropertySymbols(r);o{if(this.cell.dropoutMask!=null&&(vt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(vt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),e&&e.constants)throw new M(\"ConvRNN2D cell does not support constants\");let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}computeOutputShape(t){let e=this.computeSingleOutputShape(t);return this.returnSequences||(e=[e[0],...e.slice(2)]),this.returnState&&(e=[e,...Array(2).fill([t[0],...e.slice(-3)])]),e}getInitialState(t){return B(()=>{let{stateSize:e}=this.cell,n=t.shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.slice(2)],i=Ne(s);return Array.isArray(e)?Array(e.length).fill(i):[i]})}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new vn(\"Cannot call resetStates() on an RNN Layer that is not stateful.\");let n=this.inputSpec[0].shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.slice(2)];if(n[0]==null)throw new M(\"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(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>Ne(s)):this.states_=[Ne(s)];else if(t==null)vt(this.states_),this.keptStates!=null&&(vt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>Ne(s)):this.states_[0]=Ne(s);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new M(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);e?this.keptStates.push(this.states_.slice()):vt(this.states_);for(let a=0;aDe(a.clone()))})}computeSingleOutputShape(t){let{dataFormat:e,filters:n,kernelSize:o,padding:s,strides:i,dilationRate:a}=this.cell,u=e===\"channelsFirst\",l=t[u?3:2],c=t[u?4:3],p=Nn(l,o[0],s,i[0],a[0]),m=Nn(c,o[1],s,i[1],a[1]);return[...t.slice(0,2),...u?[n,p,m]:[p,m,n]]}};db.className=\"ConvRNN2D\";var Sc=class extends ul{constructor(t){let{filters:e,kernelSize:n,strides:o,padding:s,dataFormat:i,dilationRate:a}=t;super(Object.assign(Object.assign({},t),{units:e})),this.filters=e,Ze(this.filters,\"filters\"),this.kernelSize=Cu(n,2,\"kernelSize\"),this.kernelSize.forEach(u=>Ze(u,\"kernelSize\")),this.strides=Cu(o||1,2,\"strides\"),this.strides.forEach(u=>Ze(u,\"strides\")),this.padding=s||\"valid\",pn(this.padding),this.dataFormat=i||\"channelsLast\",Fe(this.dataFormat),this.dilationRate=Cu(a||1,2,\"dilationRate\"),this.dilationRate.forEach(u=>Ze(u,\"dilationRate\"))}build(t){var e;t=Bt(t);let n=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[n]==null)throw new M(`The channel dimension of the input should be defined. Found ${t[n]}`);let o=t[n],s=4,i=this.kernelSize.concat([o,this.filters*s]);this.kernel=this.addWeight(\"kernel\",i,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let a=this.kernelSize.concat([this.filters,this.filters*s]);if(this.recurrentKernel=this.addWeight(\"recurrent_kernel\",a,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let u;if(this.unitForgetBias){let l=this.biasInitializer,c=this.filters;u=new(e=class extends dn{apply(m,f){let d=l.apply([c]),h=cr([c]),g=l.apply([c*2]);return Nm([d,h,g])}},e.className=\"CustomInit\",e)}else u=this.biasInitializer;this.bias=this.addWeight(\"bias\",[this.filters*s],null,u,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(t,e){return B(()=>{if(t.length!==3)throw new M(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let n=e.training||!1,o=t[0],s=t[1],i=t[2],a=4;0yr(o),rate:this.dropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let u=this.dropoutMask,l=(rt,ot,at)=>!ot||!ot[at]?rt:D(ot[at],rt),c=l(o,u,0),p=l(o,u,1),m=l(o,u,2),f=l(o,u,3);0yr(s),rate:this.recurrentDropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let d=this.recurrentDropoutMask,h=l(s,d,0),g=l(s,d,1),x=l(s,d,2),b=l(s,d,3),w=3,[C,N,_,A]=mr(this.kernel.read(),a,w),[$,F,P,V]=this.useBias?mr(this.bias.read(),a):[null,null,null,null];c=this.inputConv(c,C,$,this.padding),p=this.inputConv(p,N,F,this.padding),m=this.inputConv(m,_,P,this.padding),f=this.inputConv(f,A,V,this.padding);let[G,W,q,H]=mr(this.recurrentKernel.read(),a,w);h=this.recurrentConv(h,G),g=this.recurrentConv(g,W),x=this.recurrentConv(x,q),b=this.recurrentConv(b,H);let j=this.recurrentActivation.apply(X(c,h)),Y=this.recurrentActivation.apply(X(p,g)),Z=X(D(Y,i),D(j,this.activation.apply(X(m,x)))),et=D(this.recurrentActivation.apply(X(f,b)),this.activation.apply(Z));return[et,et,Z]})}getConfig(){let t=super.getConfig(),{units:e}=t,n=Q8(t,[\"units\"]),o={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),o)}inputConv(t,e,n,o){let s=In(t,e,this.strides,o||\"valid\",this.dataFormat===\"channelsFirst\"?\"NCHW\":\"NHWC\",this.dilationRate);return n?fn(s,n,this.dataFormat):s}recurrentConv(t,e){return In(t,e,1,\"same\",this.dataFormat===\"channelsFirst\"?\"NCHW\":\"NHWC\")}};Sc.className=\"ConvLSTM2DCell\";Q.registerClass(Sc);var uf=class extends db{constructor(t){let e=new Sc(t);super(Object.assign(Object.assign({},t),{cell:e}))}static fromConfig(t,e){return new t(e)}};uf.className=\"ConvLSTM2D\";Q.registerClass(uf);var vc=class extends $t{constructor(t){super(t),this.rate=Math.max(Math.min(t.rate,1),0),this.noiseShape=t.noiseShape,this.seed=t.seed,this.supportsMasking=!0}getNoiseShape(t){if(this.noiseShape==null)return this.noiseShape;let e=t.shape,n=[];for(let o=0;o{this.invokeCallHook(t,e);let n=Nt(t);if(0Ay(n,this.rate,s,this.seed),()=>n,o)}return t})}getConfig(){let t={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},e=super.getConfig();return Object.assign(t,e),t}dispose(){return super.dispose()}};vc.className=\"Dropout\";Q.registerClass(vc);var cf=class extends vc{constructor(t){super(t),this.inputSpec=[{ndim:3}]}getNoiseShape(t){let e=t.shape;return[e[0],1,e[2]]}};cf.className=\"SpatialDropout1D\";Q.registerClass(cf);var pf=class extends $t{constructor(t){if(super(t),this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",t.batchInputShape==null&&t.inputShape==null&&t.inputDim!=null){let e=null;t.batchSize!=null&&(e=t.batchSize),this.batchInputShape=[e,t.inputDim]}this.units=t.units,Ze(this.units,\"units\"),this.activation=Xs(t.activation),t.useBias!=null&&(this.useBias=t.useBias),this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Be(t.kernelConstraint),this.biasConstraint=Be(t.biasConstraint),this.kernelRegularizer=be(t.kernelRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.activityRegularizer=be(t.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(t){t=Bt(t);let e=t[t.length-1];this.kernel==null&&(this.kernel=this.addWeight(\"kernel\",[e,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]:e}}],this.built=!0}computeOutputShape(t){t=Bt(t);let e=t.slice();return e[e.length-1]=this.units,e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t),o=Iy(this.activation.getClassName()),s;return o!=null?s=To(n,this.kernel.read(),o,this.bias?this.bias.read():null):(s=To(n,this.kernel.read()),this.bias!=null&&(s=fn(s,this.bias.read())),this.activation!=null&&(s=this.activation.apply(s))),s})}getConfig(){let t={units:this.units,activation:js(this.activation),useBias:this.useBias,kernelInitializer:Te(this.kernelInitializer),biasInitializer:Te(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:ze(this.kernelConstraint),biasConstraint:ze(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}};pf.className=\"Dense\";Q.registerClass(pf);var mf=class extends $t{constructor(t){t=t||{},super(t),this.inputSpec=[{minNDim:3}],this.dataFormat=t.dataFormat}computeOutputShape(t){t=Bt(t);for(let e of t.slice(1))if(e==null)throw new M(`The shape of the input to \"Flatten\" is not fully defined (got ${t.slice(1)}). Make sure to pass a complete \"input_shape\" or \"batch_input_shape\" argument to the first layer in your model.`);return[t[0],No(t,1)]}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t);if(this.dataFormat===\"channelsFirst\"&&n.rank>1){let o=[0];for(let s=2;s{this.invokeCallHook(t,e);let n=Nt(t);return this.activation.apply(n)})}getConfig(){let t={activation:js(this.activation)},e=super.getConfig();return Object.assign(t,e),t}};ff.className=\"Activation\";Q.registerClass(ff);var df=class extends $t{constructor(t){super(t),this.n=t.n,this.inputSpec=[{ndim:2}]}computeOutputShape(t){return[t[0],this.n,t[1]]}call(t,e){return B(()=>(t=Nt(t),$$(t,this.n)))}getConfig(){let t={n:this.n},e=super.getConfig();return Object.assign(t,e),t}};df.className=\"RepeatVector\";Q.registerClass(df);var hf=class extends $t{constructor(t){super(t),this.targetShape=t.targetShape;for(let e=0;e{this.invokeCallHook(t,e);let n=Nt(t),o=n.shape,s=o.slice(0,1).concat(this.fixUnknownDimension(o.slice(1),this.targetShape));return R(n,s)})}getConfig(){let t={targetShape:this.targetShape},e=super.getConfig();return Object.assign(t,e),t}};hf.className=\"Reshape\";Q.registerClass(hf);var gf=class extends $t{constructor(t){if(super(t),t.dims==null)throw new Error(\"Required configuration field `dims` is missing during Permute constructor call.\");if(!Array.isArray(t.dims))throw new Error(`Permute constructor requires \\`dims\\` to be an Array, but received ${t.dims} instead.`);let e=Zr(1,t.dims.length+1);if(!y.arraysEqual(t.dims.slice().sort(),e))throw new Error(\"Invalid permutation `dims`: \"+JSON.stringify(t.dims)+\" `dims` must contain consecutive integers starting from 1.\");this.dims=t.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new ye({ndim:this.dims.length+1})]}computeOutputShape(t){t=Bt(t);let e=t.slice();return this.dims.forEach((n,o)=>{e[o+1]=t[n]}),e}call(t,e){return Ot(Nt(t),this.dimsIncludingBatch)}getConfig(){let t={dims:this.dims},e=super.getConfig();return Object.assign(t,e),t}};gf.className=\"Permute\";Q.registerClass(gf);var xf=class extends $t{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null?this.maskValue=t.maskValue==null?0:t.maskValue:this.maskValue=0}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={maskValue:this.maskValue};return Object.assign(e,t),e}computeMask(t,e){let n=Nt(t),o=-1;return qu(Bs(n,this.maskValue),o)}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t),o=-1,s=!0,i=qu(Bs(n,this.maskValue),o,s);return D(n,J(i,n.dtype))})}};xf.className=\"Masking\";Q.registerClass(xf);var yf=class extends $t{constructor(t){if(super(t),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER=\"randomUniform\",t.batchInputShape==null&&t.inputShape==null){let e=null;t.batchSize!=null&&(e=t.batchSize),t.inputLength==null?this.batchInputShape=[e,null]:this.batchInputShape=[e].concat(xe(t.inputLength))}this.inputDim=t.inputDim,Ze(this.inputDim,\"inputDim\"),this.outputDim=t.outputDim,Ze(this.outputDim,\"outputDim\"),this.embeddingsInitializer=de(t.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=be(t.embeddingsRegularizer),this.activityRegularizer=be(t.activityRegularizer),this.embeddingsConstraint=Be(t.embeddingsConstraint),this.maskZero=t.maskZero,this.supportsMasking=t.maskZero,this.inputLength=t.inputLength}build(t){this.embeddings=this.addWeight(\"embeddings\",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(t){}computeMask(t,e){return B(()=>this.maskZero?(t=Nt(t),Bs(t,It(t))):null)}computeOutputShape(t){if(t=Bt(t),this.inputLength==null)return[...t,this.outputDim];let e=xe(this.inputLength);if(e.length!==t.length-1)throw new M(`\"inputLength\" is ${this.inputLength}, but received input shape has shape ${t}`);{let n=0;for(let o=0;o{this.invokeCallHook(t,e);let n=Nt(t);n.dtype!==\"int32\"&&(n=no(n,\"int32\"));let o=_y(this.embeddings.read(),R(n,[n.size]));return R(o,Bt(this.computeOutputShape(n.shape)))})}getConfig(){let t={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Te(this.embeddingsInitializer),embeddingsRegularizer:me(this.embeddingsRegularizer),activityRegularizer:me(this.activityRegularizer),embeddingsConstraint:ze(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},e=super.getConfig();return Object.assign(t,e),t}};yf.className=\"Embedding\";Q.registerClass(yf);var pl=class extends $t{constructor(t){super(t||{}),this.supportsMasking=!0}mergeFunction(t){throw new St}computeElementwiseOpOutputShape(t,e){if(t==null||e==null)return null;if(t.length1)throw new M(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(t)}.`);let n=t[0]==null?null:t[0].slice(1);for(let s=1;ss.length);t.indexOf(null)===-1&&vo(o).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(t,e){return B(()=>{if(t=t,this.reshapeRequired){let n=[],o=t.map(s=>s.rank);if(o.indexOf(null)===-1){let s=qs(o);for(let i of t){let a=i.rank;for(let u=0;u1){let c=Zr(1,l).concat([0]);n.push(Ot(u,c)),s=!0}else n.push(u)}let i=this.mergeFunction(n),a=i.rank;if(s){if(a==null){let u=i.shape,l=u.length,c=u[l-1],p=[c].concat(u.slice(0,u.length-1));i=R(Ot(R(i,[-1,c]),[1,0]),p)}else if(a>1){let u=[a-1].concat(Zr(0,a-1));i=Ot(i,u)}}return i}}else return this.mergeFunction(t)})}computeOutputShape(t){t=t;let e;t[0]==null?e=null:e=t[0].slice(1);for(let o=1;o{if(e==null)return null;if(!Array.isArray(e))throw new M(\"`mask` should be an Array\");if(!Array.isArray(t))throw new M(\"`inputs` should be an Array\");if(e.length!==t.length)throw new M(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${t.length} vs ${e.length})`);if(e.every(o=>o==null))return null;e=e.map(o=>o==null?o:rr(o,0));let n=e[0];for(let o=1;o{let e=t[0].clone();for(let n=1;n{let e=t[0].clone();for(let n=1;n{let e=t[0].clone();for(let n=1;n{let e=t[0];for(let n=1;n{let e=t[0];for(let n=1;n1)throw new M(\"A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: \"+JSON.stringify(t))}mergeFunction(t){return B(()=>Nm(t,this.axis))}computeOutputShape(t){if(!(Array.isArray(t)&&Array.isArray(t[0])))throw new M(\"A `Concatenate` layer should be called on a list of inputs.\");let e=t,n=e[0].slice(),o=this.axis<0?n.length+this.axis:this.axis;for(let s of e.slice(1)){if(n[o]==null||s[o]==null){n[o]=null;break}n[o]+=s[o]}return n}computeMask(t,e){if(e==null)return null;if(!Array.isArray(e))throw new M(\"`mask` should be an array for Concatenate\");if(!Array.isArray(t))throw new M(\"`inputs` should be an array for Concatenate\");if(e.length!==t.length)throw new M(`Mismatch in the length of mask (${e.length}) and the legnth of inputs (${t.length})`);return B(()=>{let n=!0;if(e.forEach(i=>{if(i!=null){n=!1;return}}),n)return null;let o=[];for(let i=0;i3||t.shape.length>3)throw new St(\"batchDot is not implemented for tensors of 4D or higher rank yet\");if(y.assert(r.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${r.shape.length}`),y.assert(r.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof e==\"number\"&&(e=[e,e]),r.dtype===\"complex64\"||t.dtype===\"complex64\")throw new St(\"batchDot is not implemented for complex64-type Tensors yet.\");let n=r.shape.length,o=t.shape.length;e==null&&(e=[n-1,o-2]);let s=e;return B(()=>{let i;if(n>o){i=n-o;let u=[];for(let l=0;ln){i=o-n;let u=[];for(let l=0;l0){let u;n>o?u=n+o-3:u=n-1;let l=[];for(let c=u;c\"A `Dot` layer should be called on a list of exactly 2 inputs.\");let e=t[0],n=t[1];if(e.length>3||n.length>3)throw new St(\"Dot layer does not support tensors of 4D or higher rank yet.\");let o=this.interpretAxes(e,n);if(e[o[0]]!==n[o[1]])throw new M(`Dimension incompatibility: ${e[o[0]]} !== ${n[o[1]]}`)}mergeFunction(t){if(t.length!==2)throw new M(`A \\`Dot\\` layer must be called on exactly 2 inputs, but received ${t.length} input(s).`);let e=t[0],n=t[1],o;return Array.isArray(this.axes)?o=this.axes.map((s,i)=>$h(s,t[i].shape.length)):o=[$h(this.axes,e.shape.length),$h(this.axes,n.shape.length)],this.normalize&&(e=Sh(e,o[0]),n=Sh(n,o[1])),tY(e,n,o)}interpretAxes(t,e){let n;return Array.isArray(this.axes)?n=this.axes:n=[$h(this.axes,t.length),$h(this.axes,e.length)],n}computeOutputShape(t){y.assert(Array.isArray(t)&&t.length===2&&Array.isArray(t[0])&&Array.isArray(t[1]),()=>\"A `Dot` layer should be called on a list of exactly 2 inputs.\");let e=t[0].slice(),n=t[1].slice();if(e.length>3||n.length>3)throw new St(\"Dot layer does not support tensors of 4D or higher rank yet.\");let o=this.interpretAxes(e,n);e.splice(o[0],1),n.splice(o[1],1),n.splice(0,1);let s=e.concat(n);return s.length===1&&s.push(1),s}computeMask(t,e){return null}getConfig(){let t={axes:this.axes,normalize:this.normalize},e=super.getConfig();return Object.assign(t,e),t}};Nf.className=\"Dot\";Q.registerClass(Nf);var Tf=class extends $t{constructor(t){super(t),this.supportsMasking=!0,this.stddev=t.stddev}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={stddev:this.stddev};return Object.assign(e,t),e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t);return xu(()=>X(Tm(n.shape,0,this.stddev),n),()=>n,e.training||!1)})}};Tf.className=\"GaussianNoise\";Q.registerClass(Tf);var kf=class extends $t{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={rate:this.rate};return Object.assign(e,t),e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t);return this.rate>0&&this.rate<1?xu(()=>{let s=Math.sqrt(this.rate/(1-this.rate));return D(n,Tm(n.shape,1,s))},()=>n,e.training||!1):n})}};kf.className=\"GaussianDropout\";Q.registerClass(kf);var Ef=class extends $t{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate,this.noiseShape=t.noiseShape}_getNoiseShape(t){return this.noiseShape||Nt(t).shape}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={rate:this.rate};return Object.assign(e,t),e}call(t,e){return B(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(t);return xu(()=>{let s=Nt(t),i=1.6732632423543772,a=1.0507009873554805,u=-i*a,l=ln(zi(n),this.rate);l=no(l,\"float32\");let c=((1-this.rate)*(1+this.rate*u**2))**-.5,p=-c*u*this.rate,m=X(D(s,l),D(X(l,-1),u));return X(D(m,c),p)},()=>Nt(t),e.training||!1)}return t})}};Ef.className=\"AlphaDropout\";Q.registerClass(Ef);function Dh(r,t,e,n,o,s=.001){let i;if(r.rank===2)i=xx(r,t,e,n,o,s);else if(r.rank===3)i=yx(r,t,e,n,o,s);else if(r.rank===4)i=bx(r,t,e,n,o,s);else throw new St(`batchNormalization is not implemented for array of rank ${r.rank} yet`);return i}function eY(r,t,e,n,o=.001){return B(()=>{let s=Zu(r,n),i=s.mean,a=s.variance;return[Dh(r,i,a,e,t,o),i,a]})}function rY(r,t,e,n,o=.001){return B(()=>{let s=Zu(r,n),i=s.mean,a=s.variance,u=[];for(let d of Zr(0,r.rank))n.indexOf(d)!==-1?u.push(1):u.push(r.shape[d]);let l=R(i,u),c=R(a,u),p=t==null?null:R(t,u),m=e==null?null:R(e,u);return[Dh(r,l,c,m,p,o),i,a]})}function nY(r,t,e,n,o=.001){return y.arraysEqual(n.slice().sort(),Zr(0,r.rank-1))?eY(r,t,e,n,o):rY(r,t,e,n,o)}var _f=class extends $t{constructor(t){t==null&&(t={}),super(t),this.supportsMasking=!0,this.axis=t.axis==null?-1:t.axis,this.momentum=t.momentum==null?.99:t.momentum,this.epsilon=t.epsilon==null?.001:t.epsilon,this.center=t.center==null?!0:t.center,this.scale=t.scale==null?!0:t.scale,this.betaInitializer=de(t.betaInitializer||\"zeros\"),this.gammaInitializer=de(t.gammaInitializer||\"ones\"),this.movingMeanInitializer=de(t.movingMeanInitializer||\"zeros\"),this.movingVarianceInitializer=de(t.movingVarianceInitializer||\"ones\"),this.betaConstraint=Be(t.betaConstraint),this.gammaConstraint=Be(t.gammaConstraint),this.betaRegularizer=be(t.betaRegularizer),this.gammaRegularizer=be(t.gammaRegularizer)}build(t){t=Bt(t);let e=this.axis>=0?this.axis:this.axis+t.length,n=t[e];if(n==null)throw new M(`Axis ${e} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(t)}.`);this.inputSpec=[new ye({ndim:t.length,axes:{[e]:n}})];let o=[n];this.scale&&(this.gamma=this.addWeight(\"gamma\",o,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight(\"beta\",o,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight(\"moving_mean\",o,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight(\"moving_variance\",o,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(t,e){return B(()=>{let n=e.training==null?!1:e.training,o=Nt(t),s=o.shape,i=s.length,a=Zr(0,i),u=this.axis>=0?this.axis:this.axis+i;a.splice(u,1);let l=Io(1,i);l[u]=s[u];let c=a.slice();c.sort();let p=!y.arraysEqual(c,Zr(0,i).slice(0,i-1)),m=()=>{if(p){let b=R(this.movingMean.read(),l),w=R(this.movingVariance.read(),l),C=this.center?R(this.beta.read(),l):null,N=this.scale?R(this.gamma.read(),l):null;return Dh(o,b,w,C,N,this.epsilon)}else return Dh(o,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!n)return m();let[f,d,h]=nY(o,this.gamma.read(),this.beta.read(),a,this.epsilon),g=(b,w,C)=>{B(()=>{let N=1-C,_=b.read(),A=D(ct(_,w),N);b.write(ct(_,A))})};return(()=>{g(this.movingMean,d,this.momentum),g(this.movingVariance,h,this.momentum)})(),f})}getConfig(){let t={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Te(this.betaInitializer),gammaInitializer:Te(this.gammaInitializer),movingMeanInitializer:Te(this.movingMeanInitializer),movingVarianceInitializer:Te(this.movingVarianceInitializer),betaRegularizer:me(this.betaRegularizer),gammaRegularizer:me(this.gammaRegularizer),betaConstraint:ze(this.betaConstraint),gammaConstraint:ze(this.gammaConstraint)},e=super.getConfig();return Object.assign(t,e),t}};_f.className=\"BatchNormalization\";Q.registerClass(_f);var Af=class extends $t{constructor(t){if(t==null&&(t={}),super(t),this.axis=t.axis==null?-1:t.axis,typeof this.axis==\"number\"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let 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)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=t.epsilon==null?.001:t.epsilon,this.center=t.center==null?!0:t.center,this.scale=t.scale==null?!0:t.scale,this.betaInitializer=de(t.betaInitializer||\"zeros\"),this.gammaInitializer=de(t.gammaInitializer||\"ones\"),this.betaRegularizer=be(t.betaRegularizer),this.gammaRegularizer=be(t.gammaRegularizer),this.supportsMasking=!0}build(t){t=Bt(t);let e=t.length;typeof this.axis==\"number\"&&(this.axis=[this.axis]);for(let s=0;s=e)throw new Error(`Invalid axis: ${s}`);if(this.axis.length!==vo(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(s=>t[s]),o=!0;this.scale?this.gamma=this.addWeight(\"gamma\",n,\"float32\",this.gammaInitializer,this.gammaRegularizer,o):this.gamma=null,this.center?this.beta=this.addWeight(\"beta\",n,\"float32\",this.betaInitializer,this.betaRegularizer,o):this.beta=null,this.built=!0}call(t,e){let n=Nt(t),o=n.shape,s=o.length;return B(()=>{let{mean:a,variance:u}=Zu(n,this.axis,!0),l=Io(1,s);for(let h of this.axis)l[h]=o[h];let c=h=>h!=null&&h.shape.length!==s?R(h,l):h,p=this.scale?c(this.gamma.read()):null,m=this.center?c(this.beta.read()):null,f=[],d=[];for(let h=0;h{if(r.rank!==4)throw new M(`temporalPadding expects input tensor to be 4-D, but received a ${r.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new M(\"spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.\");if(e==null&&(e=mn()),e!==\"channelsLast\"&&e!==\"channelsFirst\")throw new M(`Unknown data format: ${e}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let n;return e===\"channelsFirst\"?n=[[0,0],[0,0],t[0],t[1]]:n=[[0,0],t[0],t[1],[0,0]],cn(r,n)})}var $f=class extends $t{constructor(t){if(t==null&&(t={}),super(t),this.dataFormat=t.dataFormat==null?mn():t.dataFormat,t.padding==null)this.padding=[[1,1],[1,1]];else if(typeof t.padding==\"number\")this.padding=[[t.padding,t.padding],[t.padding,t.padding]];else{if(t.padding=t.padding,t.padding.length!==2)throw new M(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${t.padding.length} array.`);let e,n;if(typeof t.padding[0]==\"number\")e=[t.padding[0],t.padding[0]],n=[t.padding[1],t.padding[1]];else{if(t.padding=t.padding,t.padding[0].length!==2)throw new M(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${t.padding[0].length} array.`);if(e=t.padding[0],t.padding[1].length!==2)throw new M(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${t.padding[1].length} array.`);n=t.padding[1]}this.padding=[e,n]}this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){t=Bt(t);let e,n;return this.dataFormat===\"channelsFirst\"?(t[2]!=null&&t[2]>=0?e=t[2]+this.padding[0][0]+this.padding[0][1]:e=null,t[3]!=null&&t[3]>=0?n=t[3]+this.padding[1][0]+this.padding[1][1]:n=null,[t[0],t[1],e,n]):(t[1]!=null&&t[1]>=0?e=t[1]+this.padding[0][0]+this.padding[0][1]:e=null,t[2]!=null&&t[2]>=0?n=t[2]+this.padding[1][0]+this.padding[1][1]:n=null,[t[0],e,n,t[3]])}call(t,e){return B(()=>oY(Nt(t),this.padding,this.dataFormat))}getConfig(){let t={padding:this.padding,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};$f.className=\"ZeroPadding2D\";Q.registerClass($f);function wb(r,t,e,n,o,s){return B(()=>{Fe(o),I0(s),pn(n),e==null&&(e=[1,1]),n==null&&(n=\"valid\"),o==null&&(o=mn()),s==null&&(s=\"max\"),r=Ah(r,o);let i,a=n===\"same\"?\"same\":\"valid\";return s===\"max\"?i=ru(r,t,e,a):i=Yl(r,t,e,a),o===\"channelsFirst\"&&(i=Ot(i,[0,3,1,2])),i})}function CD(r,t,e,n,o,s){return B(()=>{Fe(o),I0(s),pn(n),e==null&&(e=[1,1,1]),n==null&&(n=\"valid\"),o==null&&(o=mn()),s==null&&(s=\"max\"),r=z0(r,o);let i,a=n===\"same\"?\"same\":\"valid\";return s===\"max\"?i=Hx(r,t,e,a):i=gx(r,t,e,a),o===\"channelsFirst\"&&(i=Ot(i,[0,4,1,2,3])),i})}var hb=class extends $t{constructor(t){if(t.poolSize==null&&(t.poolSize=2),super(t),typeof t.poolSize==\"number\")this.poolSize=[t.poolSize];else if(Array.isArray(t.poolSize)&&t.poolSize.length===1&&typeof t.poolSize[0]==\"number\")this.poolSize=t.poolSize;else throw new M(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(t.poolSize)}`);if(Ze(this.poolSize,\"poolSize\"),t.strides==null)this.strides=this.poolSize;else if(typeof t.strides==\"number\")this.strides=[t.strides];else if(Array.isArray(t.strides)&&t.strides.length===1&&typeof t.strides[0]==\"number\")this.strides=t.strides;else throw new M(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(t.strides)}`);Ze(this.strides,\"strides\"),this.padding=t.padding==null?\"valid\":t.padding,pn(this.padding),this.inputSpec=[new ye({ndim:3})]}computeOutputShape(t){t=Bt(t);let e=Nn(t[1],this.poolSize[0],this.padding,this.strides[0]);return[t[0],e,t[2]]}call(t,e){return B(()=>{this.invokeCallHook(t,e),t=nl(Nt(t),2);let n=this.poolingFunction(Nt(t),[this.poolSize[0],1],[this.strides[0],1],this.padding,\"channelsLast\");return Mn(n,[2])})}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides},e=super.getConfig();return Object.assign(t,e),t}},Df=class extends hb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),wb(t,e,n,o,s,\"max\")}};Df.className=\"MaxPooling1D\";Q.registerClass(Df);var Rf=class extends hb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),wb(t,e,n,o,s,\"avg\")}};Rf.className=\"AveragePooling1D\";Q.registerClass(Rf);var gb=class extends $t{constructor(t){if(t.poolSize==null&&(t.poolSize=[2,2]),super(t),this.poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize],t.strides==null)this.strides=this.poolSize;else if(Array.isArray(t.strides)){if(t.strides.length!==2)throw new M(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${t.strides.length}.`);this.strides=t.strides}else this.strides=[t.strides,t.strides];Ze(this.poolSize,\"poolSize\"),Ze(this.strides,\"strides\"),this.padding=t.padding==null?\"valid\":t.padding,this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Fe(this.dataFormat),pn(this.padding),this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){t=Bt(t);let e=this.dataFormat===\"channelsFirst\"?t[2]:t[1],n=this.dataFormat===\"channelsFirst\"?t[3]:t[2];return e=Nn(e,this.poolSize[0],this.padding,this.strides[0]),n=Nn(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat===\"channelsFirst\"?[t[0],t[1],e,n]:[t[0],e,n,t[3]]}call(t,e){return B(()=>(this.invokeCallHook(t,e),this.poolingFunction(Nt(t),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Ff=class extends gb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),wb(t,e,n,o,s,\"max\")}};Ff.className=\"MaxPooling2D\";Q.registerClass(Ff);var Of=class extends gb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),wb(t,e,n,o,s,\"avg\")}};Of.className=\"AveragePooling2D\";Q.registerClass(Of);var xb=class extends $t{constructor(t){if(t.poolSize==null&&(t.poolSize=[2,2,2]),super(t),this.poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize,t.poolSize],t.strides==null)this.strides=this.poolSize;else if(Array.isArray(t.strides)){if(t.strides.length!==3)throw new M(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${t.strides.length}.`);this.strides=t.strides}else this.strides=[t.strides,t.strides,t.strides];Ze(this.poolSize,\"poolSize\"),Ze(this.strides,\"strides\"),this.padding=t.padding==null?\"valid\":t.padding,this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Fe(this.dataFormat),pn(this.padding),this.inputSpec=[new ye({ndim:5})]}computeOutputShape(t){t=Bt(t);let e=this.dataFormat===\"channelsFirst\"?t[2]:t[1],n=this.dataFormat===\"channelsFirst\"?t[3]:t[2],o=this.dataFormat===\"channelsFirst\"?t[4]:t[3];return e=Nn(e,this.poolSize[0],this.padding,this.strides[0]),n=Nn(n,this.poolSize[1],this.padding,this.strides[1]),o=Nn(o,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat===\"channelsFirst\"?[t[0],t[1],e,n,o]:[t[0],e,n,o,t[4]]}call(t,e){return B(()=>(this.invokeCallHook(t,e),this.poolingFunction(Nt(t),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Pf=class extends xb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),CD(t,e,n,o,s,\"max\")}};Pf.className=\"MaxPooling3D\";Q.registerClass(Pf);var Lf=class extends xb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),CD(t,e,n,o,s,\"avg\")}};Lf.className=\"AveragePooling3D\";Q.registerClass(Lf);var yb=class extends $t{constructor(t){super(t),this.inputSpec=[new ye({ndim:3})]}computeOutputShape(t){return[t[0],t[2]]}call(t,e){throw new St}},Mf=class extends yb{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=Nt(t);return ve(n,1)})}};Mf.className=\"GlobalAveragePooling1D\";Q.registerClass(Mf);var zf=class extends yb{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=Nt(t);return Ir(n,1)})}};zf.className=\"GlobalMaxPooling1D\";Q.registerClass(zf);var bb=class extends $t{constructor(t){super(t),this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Fe(this.dataFormat),this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){return t=t,this.dataFormat===\"channelsLast\"?[t[0],t[3]]:[t[0],t[1]]}call(t,e){throw new St}getConfig(){let t={dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Bf=class extends bb{call(t,e){return B(()=>{let n=Nt(t);return this.dataFormat===\"channelsLast\"?ve(n,[1,2]):ve(n,[2,3])})}};Bf.className=\"GlobalAveragePooling2D\";Q.registerClass(Bf);var Vf=class extends bb{call(t,e){return B(()=>{let n=Nt(t);return this.dataFormat===\"channelsLast\"?Ir(n,[1,2]):Ir(n,[2,3])})}};Vf.className=\"GlobalMaxPooling2D\";Q.registerClass(Vf);var Cb=class extends $t{constructor(t){super(t),this.layer=t.layer}build(t){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(t){this.layer!=null&&(this.layer.trainable=t)}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(t){this.layer.setWeights(t)}getConfig(){let t={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},e=super.getConfig();return Object.assign(t,e),t}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(t)}static fromConfig(t,e,n={}){let o=e.layer,s=gn(o,n);delete e.layer;let i={layer:s};return Object.assign(i,e),new t(i)}},Gf=class extends Cb{constructor(t){super(t),this.supportsMasking=!0}build(t){if(t=Bt(t),t.length<3)throw new M(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(t)}`);this.inputSpec=[{shape:t}];let e=[t[0]].concat(t.slice(2));this.layer.built||(this.layer.build(e),this.layer.built=!0),super.build(t)}computeOutputShape(t){t=Bt(t);let e=[t[0]].concat(t.slice(2)),n=this.layer.computeOutputShape(e),o=t[1];return[n[0],o].concat(n.slice(1))}call(t,e){return B(()=>(t=Nt(t),V0((i,a)=>[Nt(this.layer.call(i,e)),[]],t,[],!1,null,null,!1,!0)[1]))}};Gf.className=\"TimeDistributed\";Q.registerClass(Gf);function sY(r){Wi(T$,\"BidirectionalMergeMode\",r)}var iY=\"concat\",Wf=class extends Cb{constructor(t){super(t);let e=t.layer.getConfig(),n={};n.className=t.layer.getClassName(),n.config=e,this.forwardLayer=gn(n),e.goBackwards=e.goBackwards!==!0;let o={};if(o.className=t.layer.getClassName(),o.config=e,this.backwardLayer=gn(o),this.forwardLayer.name=\"forward_\"+this.forwardLayer.name,this.backwardLayer.name=\"backward_\"+this.backwardLayer.name,this.mergeMode=t.mergeMode===void 0?iY:t.mergeMode,sY(this.mergeMode),t.weights)throw new St(\"weights support is not implemented for Bidirectional layer yet.\");this._stateful=t.layer.stateful,this.returnSequences=t.layer.returnSequences,this.returnState=t.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=t.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(t){this._trainable=t,this.forwardLayer!=null&&(this.forwardLayer.trainable=t),this.backwardLayer!=null&&(this.backwardLayer.trainable=t)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(t){let e=t.length,n=Math.floor(e/2);this.forwardLayer.setWeights(t.slice(0,n)),this.backwardLayer.setWeights(t.slice(n))}computeOutputShape(t){let e=this.forwardLayer.computeOutputShape(t);Array.isArray(e)&&Array.isArray(e[0])||(e=[e]),e=e;let n,o,s;return this.returnState&&(s=e.slice(1)),n=e[0],n=n,this.mergeMode===\"concat\"?(n[n.length-1]*=2,o=[n]):this.mergeMode==null?o=[n,n.slice()]:o=[n],this.returnState?this.mergeMode==null?o.concat(s).concat(s.slice()):[n].concat(s).concat(s.slice()):Nr(o)}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=B0(t,n,o,this.numConstants);if(t=s.inputs,n=s.initialState,o=s.constants,Array.isArray(t)&&(n=t.slice(1),t=t[0]),(n==null||n.length===0)&&o==null)return super.apply(t,e);let i=[],a=[];if(n!=null){let l=n.length;if(l%2>0)throw new M(\"When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.\");e.initialState=n,i.push(...n);let c=n.map(p=>new ye({shape:p.shape}));this.forwardLayer.stateSpec=c.slice(0,l/2),this.backwardLayer.stateSpec=c.slice(l/2),a.push(...c)}if(o!=null)throw new St(\"Support for constants in Bidirectional layers is not implemented yet.\");let u=i[0]instanceof Jr;for(let l of i)if(l instanceof Jr!==u)throw new M(\"The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors\");if(u){let l=[t].concat(i),c=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=c;let m=super.apply(l,e);return this.inputSpec=p,m}else return super.apply(t,e)}call(t,e){return B(()=>{let n=e.initialState,o,s;if(n==null)o=this.forwardLayer.call(t,e),s=this.backwardLayer.call(t,e);else{let u=n.slice(0,n.length/2),l=n.slice(n.length/2);o=this.forwardLayer.call(t,Object.assign(e,{initialState:u})),s=this.backwardLayer.call(t,Object.assign(e,{initialState:l}))}let i;this.returnState&&(Array.isArray(o)&&(i=o.slice(1).concat(s.slice(1))),o=o[0],s=s[0]),this.returnSequences&&(s=pr(s,1));let a;return this.mergeMode===\"concat\"?a=Nm([o,s]):this.mergeMode===\"sum\"?a=X(o,s):this.mergeMode===\"ave\"?a=D(.5,X(o,s)):this.mergeMode===\"mul\"?a=D(o,s):this.mergeMode==null&&(a=[o,s]),this.returnState?this.mergeMode==null?a.concat(i):[a].concat(i):a})}resetStates(t){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(t){Hs(this.forwardLayer.name,()=>{this.forwardLayer.build(t)}),Hs(this.backwardLayer.name,()=>{this.backwardLayer.build(t)}),this.built=!0}computeMask(t,e){Array.isArray(e)&&(e=e[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[e,e]:n=e:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let s=this.forwardLayer.states.map(i=>null);return Array.isArray(n)?n.concat(s).concat(s):[n].concat(s).concat(s)}else return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(t),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(t)}getConfig(){let t={mergeMode:this.mergeMode},e=super.getConfig();return Object.assign(t,e),t}static fromConfig(t,e){let n=gn(e.layer);if(delete e.layer,e.numConstants!=null)throw new St(\"Deserialization of a Bidirectional layer with numConstants present is not supported yet.\");let o=e;return o.layer=n,new t(o)}};Wf.className=\"Bidirectional\";Q.registerClass(Wf);var Uf=class extends $t{constructor(t){super(t),this.scale=t.scale,t.offset?this.offset=t.offset:this.offset=0}getConfig(){let t={scale:this.scale,offset:this.offset},e=super.getConfig();return Object.assign(t,e),t}call(t,e){return B(()=>(t=Nt(t),t.dtype!==\"float32\"&&(t=no(t,\"float32\")),X(D(t,this.scale),this.offset)))}};Uf.className=\"Rescaling\";Q.registerClass(Uf);var aY=[\"bilinear\",\"nearest\"],ID=new Set(aY),Hf=class extends $t{constructor(t){if(super(t),this.height=t.height,this.width=t.width,t.interpolation)if(ID.has(t.interpolation))this.interpolation=t.interpolation;else throw new M(`Invalid interpolation parameter: ${t.interpolation} is not implemented`);else this.interpolation=\"bilinear\";this.cropToAspectRatio=Boolean(t.cropToAspectRatio)}computeOutputShape(t){t=Bt(t);let e=t[2];return[this.height,this.width,e]}getConfig(){let t={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},e=super.getConfig();return Object.assign(t,e),t}call(t,e){return B(()=>{let n=[this.height,this.width];if(this.interpolation===\"bilinear\")return Gs.resizeBilinear(t,n,!this.cropToAspectRatio);if(this.interpolation===\"nearest\")return Gs.resizeNearestNeighbor(t,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...ID]} are supported`)})}};Hf.className=\"Resizing\";Q.registerClass(Hf);function SD(r,t,e,n){let o=Nt(r);if(o.dtype!==\"int32\"&&(o=no(o,\"int32\")),t===\"int\")return o;let s=o.shape;if(o.rank===0&&(o=rr(o,-1)),t===\"oneHot\"&&o.shape[o.shape.length-1]!==1&&(o=rr(o,-1)),o.rank>2)throw new M(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${s} which would result in output rank ${o.rank}.`);let i=[\"multiHot\",\"oneHot\"].includes(t),a=o,u;if(typeof n!=\"undefined\"&&t===\"count\"?u=ch(a,n,e,i):u=ch(a,[],e,i),t!==\"tfIdf\")return u;if(n)return D(u,n);throw new M(\"When outputMode is 'tfIdf', weights must be provided.\")}var qf=class extends $t{constructor(t){super(t),this.numTokens=t.numTokens,t.outputMode?this.outputMode=t.outputMode:this.outputMode=\"multiHot\"}getConfig(){let t={numTokens:this.numTokens,outputMode:this.outputMode},e=super.getConfig();return Object.assign(t,e),t}computeOutputShape(t){return t=Bt(t),t==null?[this.numTokens]:this.outputMode===\"oneHot\"&&t[t.length-1]!==1?(t.push(this.numTokens),t):(t[t.length-1]=this.numTokens,t)}call(t,e){return B(()=>{t=Nt(t),t.dtype!==\"int32\"&&(t=no(t,\"int32\"));let n;if(typeof e.countWeights!=\"undefined\"){if(this.outputMode!==\"count\")throw new M(`countWeights is not used when outputMode !== count.\n Received countWeights=${e.countWeights}`);n=Nt(e.countWeights)}let o=Ir(t),s=Ja(t),i=Re(this.numTokens,o).bufferSync().get(0),a=ln(s,0).bufferSync().get(0);if(!(i&&a))throw new M(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return SD(t,this.outputMode,this.numTokens,n)})}};qf.className=\"CategoryEncoding\";Q.registerClass(qf);function uY(r){return new Ks(r)}function cY(r){return new Ym(r)}function pY(r){return new Km(r)}function mY(r){return new jm(r)}function fY(r){return new Xm(r)}function dY(r){return new Jm(r)}function hY(r){return new Zm(r)}function gY(r){return new Su(r)}function xY(r){return new il(r)}function yY(r){return new Qm(r)}function bY(r){return new al(r)}function wY(r){return new tf(r)}function CY(r){return new ef(r)}function IY(r){return new rf(r)}function SY(r){return new nf(r)}function vY(r){return new of(r)}function NY(r){return new ff(r)}function TY(r){return new pf(r)}function kY(r){return new vc(r)}function EY(r){return new cf(r)}function _Y(r){return new mf(r)}function AY(r){return new df(r)}function $Y(r){return new hf(r)}function DY(r){return new gf(r)}function RY(r){return new yf(r)}function FY(r){return new bf(r)}function OY(r){return new Cf(r)}function PY(r){return new vf(r)}function LY(r){return new If(r)}function MY(r){return new Sf(r)}function zY(r){return new wf(r)}function BY(r){return new Nf(r)}function VY(r){return new _f(r)}function GY(r){return new Af(r)}function WY(r){return new $f(r)}function G0(r){return new Rf(r)}function UY(r){return G0(r)}function HY(r){return G0(r)}function W0(r){return new Of(r)}function qY(r){return W0(r)}function KY(r){return W0(r)}function U0(r){return new Lf(r)}function jY(r){return U0(r)}function XY(r){return U0(r)}function YY(r){return new Mf(r)}function ZY(r){return new Bf(r)}function vD(r){return new zf(r)}function ND(r){return new Vf(r)}function TD(r){return new Df(r)}function kD(r){return new Ff(r)}function JY(r){return new Pf(r)}function QY(r){return new af(r)}function tZ(r){return new Cc(r)}function eZ(r){return new lf(r)}function rZ(r){return new ul(r)}function nZ(r){return new sf(r)}function oZ(r){return new wc(r)}function sZ(r){return new uf(r)}function iZ(r){return new Sc(r)}function aZ(r){return new Tn(r)}function lZ(r){return new Ic(r)}function uZ(r){return new Wf(r)}function cZ(r){return new Gf(r)}var pZ=vD,mZ=ND,fZ=TD,dZ=kD;function hZ(r){return new Tf(r)}function gZ(r){return new kf(r)}function xZ(r){return new Ef(r)}function yZ(r){return new xf(r)}function bZ(r){return new Uf(r)}function wZ(r){return new Hf(r)}function CZ(r){return new qf(r)}var _D={};Wt(_D,{MAPE:()=>DZ,MSE:()=>OZ,binaryAccuracy:()=>IZ,binaryCrossentropy:()=>SZ,categoricalAccuracy:()=>NZ,categoricalCrossentropy:()=>TZ,cosineProximity:()=>_Z,mape:()=>RZ,meanAbsoluteError:()=>AZ,meanAbsolutePercentageError:()=>$Z,meanSquaredError:()=>FZ,mse:()=>PZ,precision:()=>kZ,recall:()=>EZ,sparseCategoricalAccuracy:()=>vZ});function IZ(r,t){return Th(r,t)}function SZ(r,t){return Wy(r,t)}function vZ(r,t){return Uy(r,t)}function NZ(r,t){return kh(r,t)}function TZ(r,t){return Eh(r,t)}function kZ(r,t){return A0(r,t)}function EZ(r,t){return J$(r,t)}function _Z(r,t){return Nh(r,t)}function AZ(r,t){return Vm(r,t)}function $Z(r,t){return bu(r,t)}function DZ(r,t){return bu(r,t)}function RZ(r,t){return bu(r,t)}function FZ(r,t){return Hi(r,t)}function OZ(r,t){return Hi(r,t)}function PZ(r,t){return Hi(r,t)}var AD={};Wt(AD,{modelFromJSON:()=>dD});var $D={};Wt($D,{l1:()=>MZ,l1l2:()=>LZ,l2:()=>zZ});function LZ(r){return new wu(r)}function MZ(r){return yD(r)}function zZ(r){return bD(r)}var Sb=class extends sl{constructor(){super(...arguments),this.model=null}setModel(t){if(!(t instanceof Bn))throw new Error(\"model must be a LayersModel, not some other Container\");this.model=t}};function Ib(r,t){return rt}var vb=class extends Sb{constructor(t){if(super(),t==null&&(t={}),t.restoreBestWeights)throw new St(\"restoreBestWeights = True is not implemented in EarlyStopping yet.\");this.monitor=t.monitor||\"val_loss\",this.minDelta=Math.abs(t.minDelta||0),this.patience=t.patience||0,this.verbose=t.verbose||0,this.mode=t.mode||\"auto\",this.baseline=t.baseline,[\"auto\",\"min\",\"max\"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode=\"auto\"),this.mode===\"min\"?this.monitorFunc=Ib:this.mode===\"max\"?this.monitorFunc=DD:this.monitor.indexOf(\"acc\")!==-1?this.monitorFunc=DD:this.monitorFunc=Ib,this.monitorFunc===Ib&&(this.minDelta*=-1)}async onTrainBegin(t){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Ib?1/0:-1/0}async onEpochEnd(t,e){await Ui(e);let n=this.getMonitorValue(e);n!=null&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=t,this.model.stopTraining=!0)))}async onTrainEnd(t){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(t){t==null&&(t={});let e=t[this.monitor];return e==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(t)}`),e}};function BZ(r){return new vb(r)}var VZ={earlyStopping:BZ};var GZ=z();GZ.registerFlag(\"KEEP_INTERMEDIATE_TENSORS\",()=>!1,r=>{r&&console.warn(\"Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.\")});var oo;(function(r){r[r.DT_INVALID=0]=\"DT_INVALID\",r[r.DT_FLOAT=1]=\"DT_FLOAT\",r[r.DT_DOUBLE=2]=\"DT_DOUBLE\",r[r.DT_INT32=3]=\"DT_INT32\",r[r.DT_UINT8=4]=\"DT_UINT8\",r[r.DT_INT16=5]=\"DT_INT16\",r[r.DT_INT8=6]=\"DT_INT8\",r[r.DT_STRING=7]=\"DT_STRING\",r[r.DT_COMPLEX64=8]=\"DT_COMPLEX64\",r[r.DT_INT64=9]=\"DT_INT64\",r[r.DT_BOOL=10]=\"DT_BOOL\",r[r.DT_QINT8=11]=\"DT_QINT8\",r[r.DT_QUINT8=12]=\"DT_QUINT8\",r[r.DT_QINT32=13]=\"DT_QINT32\",r[r.DT_BFLOAT16=14]=\"DT_BFLOAT16\",r[r.DT_QINT16=15]=\"DT_QINT16\",r[r.DT_QUINT16=16]=\"DT_QUINT16\",r[r.DT_UINT16=17]=\"DT_UINT16\",r[r.DT_COMPLEX128=18]=\"DT_COMPLEX128\",r[r.DT_HALF=19]=\"DT_HALF\",r[r.DT_RESOURCE=20]=\"DT_RESOURCE\",r[r.DT_VARIANT=21]=\"DT_VARIANT\",r[r.DT_UINT32=22]=\"DT_UINT32\",r[r.DT_UINT64=23]=\"DT_UINT64\",r[r.DT_FLOAT_REF=101]=\"DT_FLOAT_REF\",r[r.DT_DOUBLE_REF=102]=\"DT_DOUBLE_REF\",r[r.DT_INT32_REF=103]=\"DT_INT32_REF\",r[r.DT_UINT8_REF=104]=\"DT_UINT8_REF\",r[r.DT_INT16_REF=105]=\"DT_INT16_REF\",r[r.DT_INT8_REF=106]=\"DT_INT8_REF\",r[r.DT_STRING_REF=107]=\"DT_STRING_REF\",r[r.DT_COMPLEX64_REF=108]=\"DT_COMPLEX64_REF\",r[r.DT_INT64_REF=109]=\"DT_INT64_REF\",r[r.DT_BOOL_REF=110]=\"DT_BOOL_REF\",r[r.DT_QINT8_REF=111]=\"DT_QINT8_REF\",r[r.DT_QUINT8_REF=112]=\"DT_QUINT8_REF\",r[r.DT_QINT32_REF=113]=\"DT_QINT32_REF\",r[r.DT_BFLOAT16_REF=114]=\"DT_BFLOAT16_REF\",r[r.DT_QINT16_REF=115]=\"DT_QINT16_REF\",r[r.DT_QUINT16_REF=116]=\"DT_QUINT16_REF\",r[r.DT_UINT16_REF=117]=\"DT_UINT16_REF\",r[r.DT_COMPLEX128_REF=118]=\"DT_COMPLEX128_REF\",r[r.DT_HALF_REF=119]=\"DT_HALF_REF\",r[r.DT_RESOURCE_REF=120]=\"DT_RESOURCE_REF\",r[r.DT_VARIANT_REF=121]=\"DT_VARIANT_REF\",r[r.DT_UINT32_REF=122]=\"DT_UINT32_REF\",r[r.DT_UINT64_REF=123]=\"DT_UINT64_REF\"})(oo||(oo={}));var RD;(function(r){let t;(function(e){e[e.LEGACY=0]=\"LEGACY\",e[e.V1=1]=\"V1\",e[e.V2=2]=\"V2\"})(t=r.CheckpointFormatVersion||(r.CheckpointFormatVersion={}))})(RD||(RD={}));var H0={};function UZ(r,t){let e={tfOpName:r,category:\"custom\",inputs:[],attrs:[],customExecutor:t};H0[r]=e}function Nb(r){return H0[r]}function HZ(r){delete H0[r]}function S(r,t,e,n,o){let s=t.inputParams[r];if(s&&s.inputIndexStart!==void 0){let a=s.inputIndexStart,u=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?a+1:s.inputIndexEnd;if(s.type===\"tensor\")return br(t.inputNames[s.inputIndexStart],e,n,o);if(s.type===\"tensors\")return t.inputNames.slice(a,u).map(m=>br(m,e,n,o));let l=br(t.inputNames.slice(a)[0],e,n,o),c=l.dataSync();return s.type===\"number\"?c[0]:y.toNestedArray(l.shape,c)}let i=t.attrParams[r];return i&&i.value}function br(r,t,e,n){let[o,s]=xn(r);if(n!=null){let a=n.getHashTableHandleByName(o);if(a!=null)return a}let i=e.currentContextIds.find(a=>!!t[Tb(o,a)]);return i!==void 0?t[Tb(o,i)][s]:void 0}function FD(r,t,e){return t[Tb(r,e.currentContextId)]}function _o(r,t){let[e,n,o]=xn(r);return[Tb(e,t&&t.currentContextId),n,o]}function Tb(r,t){return t?`${r}-${t}`:r}function xn(r){let t=r.split(\":\");if(t.length===1)return[r,0,void 0];let e=t[0],n=t.length===3?t[1]:void 0,o=Number(t[t.length-1]);return[e,o,n]}function Rh(r,t,e){let n=S(\"pad\",r,t,e);if(n===\"explicit\"){n=S(\"explicitPaddings\",r,t,e);let o=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)o[s][0]=n[s*2],o[s][1]=n[s*2+1];return o}return n}function Zs(r){return r.kept?r:sn(r)}var q0={};Wt(q0,{json:()=>qZ});var qZ=[{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}]}];var K0={};Wt(K0,{json:()=>KZ});var KZ=[{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}]},{tfOpName:\"IsNan\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]}];var j0={};Wt(j0,{json:()=>jZ});var jZ=[{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:\"TensorListConcatV2\",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\"}]},{tfOpName:\"TensorListLength\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"}]},{tfOpName:\"TensorListResize\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"},{start:1,name:\"size\",type:\"number\"}]}];var X0={};Wt(X0,{json:()=>XZ});var XZ=[{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\",defaultValue:.2}]},{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\"}]}];var Y0={};Wt(Y0,{json:()=>YZ});var YZ=[{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\"}]},{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:\"RandomStandardNormal\",category:\"creation\",inputs:[{start:0,name:\"shape\",type:\"number[]\"}],attrs:[{tfName:\"seed\",name:\"seed\",type:\"number\",defaultValue:0},{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:\"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\"}]}];var Z0={};Wt(Z0,{json:()=>ZZ});var ZZ=[{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}]}];var J0={};Wt(J0,{json:()=>JZ});var JZ=[{tfOpName:\"LowerBound\",category:\"evaluation\",inputs:[{start:0,name:\"sortedSequence\",type:\"tensor\"},{start:1,name:\"values\",type:\"tensor\"}]},{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:\"UpperBound\",category:\"evaluation\",inputs:[{start:0,name:\"sortedSequence\",type:\"tensor\"},{start:1,name:\"values\",type:\"tensor\"}]},{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\"}]}];var Q0={};Wt(Q0,{json:()=>QZ});var QZ=[{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\"}]}];var tN={};Wt(tN,{json:()=>t7});var t7=[{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\"}]}];var eN={};Wt(eN,{json:()=>e7});var e7=[{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\"}]},{tfOpName:\"ImageProjectiveTransformV3\",category:\"image\",inputs:[{start:0,name:\"images\",type:\"tensor\"},{start:1,name:\"transforms\",type:\"tensor\"},{start:2,name:\"outputShape\",type:\"number[]\"},{start:3,name:\"fillValue\",type:\"number\"}],attrs:[{tfName:\"interpolation\",name:\"interpolation\",type:\"string\"},{tfName:\"fill_mode\",name:\"fillMode\",type:\"string\"}]}];var rN={};Wt(rN,{json:()=>r7});var r7=[{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}]}];var nN={};Wt(nN,{json:()=>n7});var n7=[{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:\"leakyrelu_alpha\",name:\"leakyreluAlpha\",type:\"number\",defaultValue:.2},{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}]},{tfOpName:\"Einsum\",category:\"matrices\",inputs:[{start:0,end:0,name:\"tensors\",type:\"tensors\"}],attrs:[{tfName:\"equation\",name:\"equation\",type:\"string\"},{tfName:\"N\",name:\"n\",type:\"number\",defaultValue:2},{tfName:\"T\",name:\"dtype\",type:\"dtype\"}]}];var oN={};Wt(oN,{json:()=>o7});var o7=[{tfOpName:\"EuclideanNorm\",category:\"normalization\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number[]\"}],attrs:[{tfName:\"keep_dims\",name:\"keepDims\",type:\"bool\",defaultValue:!1}]},{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}]}];var sN={};Wt(sN,{json:()=>s7});var s7=[{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:\"Cumprod\",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\"}]},{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\"}]}];var iN={};Wt(iN,{json:()=>i7});var i7=[{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}]}];var aN={};Wt(aN,{json:()=>a7});var a7=[{tfOpName:\"SparseFillEmptyRows\",category:\"sparse\",inputs:[{start:0,name:\"indices\",type:\"tensor\"},{start:1,name:\"values\",type:\"tensor\"},{start:2,name:\"denseShape\",type:\"tensor\"},{start:3,name:\"defaultValue\",type:\"tensor\"}]},{tfOpName:\"SparseReshape\",category:\"sparse\",inputs:[{start:0,name:\"inputIndices\",type:\"tensor\"},{start:1,name:\"inputShape\",type:\"tensor\"},{start:2,name:\"newShape\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"SparseSegmentMean\",category:\"sparse\",inputs:[{start:0,name:\"data\",type:\"tensor\"},{start:1,name:\"indices\",type:\"tensor\"},{start:2,name:\"segmentIds\",type:\"tensor\"}]},{tfOpName:\"SparseSegmentSum\",category:\"sparse\",inputs:[{start:0,name:\"data\",type:\"tensor\"},{start:1,name:\"indices\",type:\"tensor\"},{start:2,name:\"segmentIds\",type:\"tensor\"}]}];var lN={};Wt(lN,{json:()=>l7});var l7=[{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}]}];var uN={};Wt(uN,{json:()=>u7});var u7=[{tfOpName:\"StringNGrams\",category:\"string\",inputs:[{start:0,name:\"data\",type:\"tensor\"},{start:1,name:\"dataSplits\",type:\"tensor\"}],attrs:[{tfName:\"separator\",name:\"separator\",type:\"string\"},{tfName:\"ngram_widths\",name:\"nGramWidths\",type:\"number[]\"},{tfName:\"left_pad\",name:\"leftPad\",type:\"string\"},{tfName:\"right_pad\",name:\"rightPad\",type:\"string\"},{tfName:\"pad_width\",name:\"padWidth\",type:\"number\"},{tfName:\"preserve_short_sequences\",name:\"preserveShortSequences\",type:\"bool\"}],outputs:[\"ngrams\",\"ngrams_splits\"]},{tfOpName:\"StringSplit\",category:\"string\",inputs:[{start:0,name:\"input\",type:\"tensor\"},{start:1,name:\"delimiter\",type:\"tensor\"}],attrs:[{tfName:\"skip_empty\",name:\"skipEmpty\",type:\"bool\"}],outputs:[\"indices\",\"values\",\"shape\"]},{tfOpName:\"StringToHashBucketFast\",category:\"string\",inputs:[{start:0,name:\"input\",type:\"tensor\"}],attrs:[{tfName:\"num_buckets\",name:\"numBuckets\",type:\"number\"}]}];var cN={};Wt(cN,{json:()=>c7});var c7=[{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:[]},{tfOpName:\"BroadcastArgs\",category:\"transformation\",inputs:[{start:0,name:\"s0\",type:\"tensor\"},{start:1,name:\"s1\",type:\"tensor\"}],attrs:[]}];var Fh=class{constructor(){let t=[q0,K0,j0,X0,Y0,Z0,J0,Q0,tN,eN,rN,nN,oN,sN,iN,aN,lN,uN,cN],e=[].concat(...t.map(n=>n.json));this.opMappers=e.reduce((n,o)=>(n[o.tfOpName]=o,n),{})}static get Instance(){return this._instance||(this._instance=new this)}transformGraph(t,e={}){let n=t.node,o=[],s=[],i=[],a=n.reduce((h,g)=>(h[g.name]=this.mapNode(g),g.op.startsWith(\"Placeholder\")?o.push(h[g.name]):g.op===\"Const\"?s.push(h[g.name]):(g.input==null||g.input.length===0)&&i.push(h[g.name]),h),{}),u=[],l=[],c={},p={};e!=null&&(c=this.mapSignatureEntries(e.inputs),p=this.mapSignatureEntries(e.outputs));let m=Object.keys(a);m.forEach(h=>{let g=a[h];g.inputNames.forEach((x,b)=>{let[w,,C]=_o(x),N=a[w];if(N.outputs!=null){let _=N.outputs.indexOf(C);if(_!==-1){let A=`${w}:${_}`;g.inputNames[b]=A}}g.inputs.push(N),N.children.push(g)})}),Object.keys(p).length===0?m.forEach(h=>{let g=a[h];g.children.length===0&&l.push(g)}):Object.keys(p).forEach(h=>{let[g]=_o(h),x=a[g];x!=null&&(x.signatureKey=p[h],l.push(x))}),Object.keys(c).length>0?Object.keys(c).forEach(h=>{let[g]=_o(h),x=a[g];x&&(x.signatureKey=c[h],u.push(x))}):u=o;let f={};t.library!=null&&t.library.function!=null&&(f=t.library.function.reduce((h,g)=>(h[g.signature.name]=this.mapFunction(g),h),{}));let d={nodes:a,inputs:u,outputs:l,weights:s,placeholders:o,signature:e,functions:f};return i.length>0&&(d.initNodes=i),d}mapSignatureEntries(t){return Object.keys(t||{}).reduce((e,n)=>(e[t[n].name]=n,e),{})}mapNode(t){let e=Nb(t.op)||this.opMappers[t.op]||{};t.attr==null&&(t.attr={});let n={name:t.name,op:t.op,category:e.category,inputNames:(t.input||[]).map(o=>o.startsWith(\"^\")?o.slice(1):o),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:t.attr,outputs:e.outputs};return e.inputs!=null&&(n.inputParams=e.inputs.reduce((o,s)=>(o[s.name]={type:s.type,inputIndexStart:s.start,inputIndexEnd:s.end},o),{})),e.attrs!=null&&(n.attrParams=e.attrs.reduce((o,s)=>{let i=s.type,a;switch(s.type){case\"string\":a=kb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=kb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"string[]\":a=Fb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Fb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"number\":a=_b(t.attr,s.tfName,s.defaultValue||0),a===void 0&&!!s.tfDeprecatedName&&(a=_b(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"number[]\":a=Rb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Rb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"bool\":a=Eb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Eb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"bool[]\":a=Pb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Pb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"shape\":a=Db(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Db(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"shape[]\":a=Ob(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Ob(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"dtype\":a=Ab(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Ab(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"dtype[]\":a=$b(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=$b(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"func\":a=OD(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=OD(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"tensor\":case\"tensors\":break;default:throw new Error(`Unsupported param type: ${s.type} for op: ${t.op}`)}return o[s.name]={value:a,type:i},o},{})),n}mapFunction(t){let e=t.nodeDef,n=[],o=[],s={};e!=null&&(s=e.reduce((p,m)=>(p[m.name]=this.mapNode(m),m.op===\"Const\"&&o.push(p[m.name]),p),{}));let i=[],a=[];t.signature.inputArg.forEach(p=>{let[m]=_o(p.name),f={name:m,op:\"Placeholder\",inputs:[],inputNames:[],category:\"graph\",inputParams:{},attrParams:{dtype:{value:pN(p.type),type:\"dtype\"}},children:[]};f.signatureKey=p.name,i.push(f),s[m]=f}),Object.keys(s).forEach(p=>{let m=s[p];m.inputNames.forEach((f,d)=>{let[h,,g]=_o(f),x=s[h];if(x.outputs!=null){let b=x.outputs.indexOf(g);if(b!==-1){let w=`${h}:${b}`;m.inputNames[d]=w}}m.inputs.push(x),x.children.push(m)})});let l=t.ret;t.signature.outputArg.forEach(p=>{let[m,f]=_o(l[p.name]),d=s[m];d!=null&&(d.defaultOutput=f,a.push(d))});let c=this.mapArgsToSignature(t);return{nodes:s,inputs:i,outputs:a,weights:o,placeholders:n,signature:c}}mapArgsToSignature(t){return{methodName:t.signature.name,inputs:t.signature.inputArg.reduce((e,n)=>(e[n.name]=this.mapArgToTensorInfo(n),e),{}),outputs:t.signature.outputArg.reduce((e,n)=>(e[n.name]=this.mapArgToTensorInfo(n,t.ret),e),{})}}mapArgToTensorInfo(t,e){let n=t.name;return e!=null&&(n=e[n]),{name:n,dtype:t.type}}};function p7(r){let t=z().global;if(typeof t.atob!=\"undefined\")return t.atob(r);if(typeof Buffer!=\"undefined\")return new Buffer(r,\"base64\").toString();throw new Error(\"Unable to decode base64 in this environment. Missing built-in atob() or Buffer()\")}function PD(r,t){let e=Array.isArray(r)?String.fromCharCode.apply(null,r):p7(r);return t?e:e.toLowerCase()}function kb(r,t,e,n=!1){let o=r[t];return o!=null?PD(o.s,n):e}function Eb(r,t,e){let n=r[t];return n?n.b:e}function _b(r,t,e){let n=r[t]||{},o=n.i!=null?n.i:n.f!=null?n.f:e;return typeof o==\"number\"?o:parseInt(o,10)}function pN(r){switch(typeof r==\"string\"&&(r=oo[r]),r){case oo.DT_FLOAT:case oo.DT_HALF:return\"float32\";case oo.DT_INT32:case oo.DT_INT64:case oo.DT_INT8:case oo.DT_UINT8:return\"int32\";case oo.DT_BOOL:return\"bool\";case oo.DT_DOUBLE:return\"float32\";case oo.DT_STRING:return\"string\";default:return null}}function OD(r,t,e){let n=r[t];return n&&n.func?n.func.name:e}function Ab(r,t,e){let n=r[t];return n&&n.type?pN(n.type):e}function $b(r,t,e){let n=r[t];return n&&n.list&&n.list.type?n.list.type.map(o=>pN(o)):e}function LD(r){if(!r.unknownRank)return r.dim!=null?r.dim.map(t=>typeof t.size==\"number\"?t.size:parseInt(t.size,10)):[]}function Db(r,t,e){let n=r[t];return n&&n.shape?LD(n.shape):e}function Rb(r,t,e){let n=r[t];return n?((n.list.f&&n.list.f.length?n.list.f:n.list.i)||[]).map(o=>typeof o==\"number\"?o:parseInt(o,10)):e}function Fb(r,t,e,n=!1){let o=r[t];return o&&o.list&&o.list.s?o.list.s.map(s=>PD(s,n)):e}function Ob(r,t,e){let n=r[t];return n&&n.list&&n.list.shape?n.list.shape.map(o=>LD(o)):e}function Pb(r,t,e){let n=r[t];return n&&n.list&&n.list.b?n.list.b:e}var Lb=class{constructor(t,e,n){this.node=t,this.tensorMap=e,this.context=n,this.inputs=[],this.attrs={},this.inputs=t.inputNames.map(o=>this.getInput(o)),t.rawAttrs!=null&&(this.attrs=Object.keys(t.rawAttrs).reduce((o,s)=>(o[s]=this.getAttr(s),o),{}))}getInput(t){return br(t,this.tensorMap,this.context)}getAttr(t,e){let n=this.node.rawAttrs[t];if(n.tensor!=null)return br(t,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return _b(this.node.rawAttrs,t,e);if(n.s!=null)return kb(this.node.rawAttrs,t,e);if(n.b!=null)return Eb(this.node.rawAttrs,t,e);if(n.shape!=null)return Db(this.node.rawAttrs,t,e);if(n.type!=null)return Ab(this.node.rawAttrs,t,e);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Rb(this.node.rawAttrs,t,e);if(n.list.s!=null)return Fb(this.node.rawAttrs,t,e);if(n.list.shape!=null)return Ob(this.node.rawAttrs,t,e);if(n.list.b!=null)return Pb(this.node.rawAttrs,t,e);if(n.list.type!=null)return $b(this.node.rawAttrs,t,e)}return e}};var ae={};Wt(ae,{OP_SCOPE_SUFFIX:()=>kv,abs:()=>Ee,acos:()=>ax,acosh:()=>lx,add:()=>X,addN:()=>LE,all:()=>Zp,any:()=>qu,argMax:()=>Ai,argMin:()=>ux,asin:()=>cx,asinh:()=>px,atan:()=>mx,atan2:()=>fx,atanh:()=>dx,avgPool:()=>Yl,avgPool3d:()=>gx,basicLSTMCell:()=>BE,batchNorm:()=>Di,batchNorm2d:()=>xx,batchNorm3d:()=>yx,batchNorm4d:()=>bx,batchToSpaceND:()=>Zl,bincount:()=>wx,booleanMaskAsync:()=>n6,broadcastArgs:()=>GE,broadcastTo:()=>Ri,buffer:()=>wt,cast:()=>J,ceil:()=>Cx,clipByValue:()=>Cr,clone:()=>sn,complex:()=>wn,concat:()=>ne,concat1d:()=>Ix,concat2d:()=>Sx,concat3d:()=>vx,concat4d:()=>Nx,conv1d:()=>Qp,conv2d:()=>In,conv2dTranspose:()=>em,conv3d:()=>Tx,conv3dTranspose:()=>Ex,cos:()=>Jl,cosh:()=>rm,cosineWindow:()=>hh,cumprod:()=>Xu,cumsum:()=>nm,denseBincount:()=>ch,depthToSpace:()=>_x,depthwiseConv2d:()=>Fi,diag:()=>WE,dilation2d:()=>Ax,div:()=>pt,divNoNan:()=>$x,dot:()=>Dx,dropout:()=>l0,einsum:()=>UE,elu:()=>Oi,enclosingPowerOfTwo:()=>u0,equal:()=>$r,erf:()=>Rx,euclideanNorm:()=>Fx,exp:()=>er,expandDims:()=>rr,expm1:()=>Ox,eye:()=>Yu,fft:()=>au,fill:()=>xo,floor:()=>Pi,floorDiv:()=>Yp,fused:()=>uu,gather:()=>Li,gatherND:()=>m6,greater:()=>Re,greaterEqual:()=>ln,ifft:()=>tl,imag:()=>Xl,image:()=>Gs,inTopKAsync:()=>h6,irfft:()=>xm,isFinite:()=>Px,isInf:()=>Lx,isNaN:()=>Mx,leakyRelu:()=>Ql,less:()=>om,lessEqual:()=>Ln,linalg:()=>p0,linspace:()=>KE,localResponseNormalization:()=>zx,log:()=>Sr,log1p:()=>tu,logSigmoid:()=>Gx,logSoftmax:()=>sm,logSumExp:()=>im,logicalAnd:()=>Rr,logicalNot:()=>eu,logicalOr:()=>am,logicalXor:()=>Wx,losses:()=>hX,lowerBound:()=>jE,matMul:()=>Lt,max:()=>Ir,maxPool:()=>ru,maxPool3d:()=>Hx,maxPoolWithArgmax:()=>XE,maximum:()=>Sn,mean:()=>ve,meshgrid:()=>YE,min:()=>Ja,minimum:()=>Mi,mirrorPad:()=>qx,mod:()=>Kx,moments:()=>Zu,movingAverage:()=>s6,mul:()=>D,multiRNNCell:()=>ZE,multinomial:()=>JE,neg:()=>Ht,norm:()=>Qa,notEqual:()=>Bs,oneHot:()=>Ei,ones:()=>cr,onesLike:()=>yr,op:()=>T,outerProduct:()=>QE,pad:()=>cn,pad1d:()=>t_,pad2d:()=>e_,pad3d:()=>r_,pad4d:()=>n_,pool:()=>jx,pow:()=>an,prelu:()=>ou,print:()=>Jg,prod:()=>Xx,raggedGather:()=>o_,raggedRange:()=>s_,raggedTensorToTensor:()=>i_,rand:()=>a_,randomGamma:()=>v_,randomNormal:()=>tc,randomStandardNormal:()=>N_,randomUniform:()=>zi,range:()=>su,real:()=>Za,reciprocal:()=>ty,relu:()=>Fr,relu6:()=>lm,reshape:()=>R,reverse:()=>pr,reverse1d:()=>T_,reverse2d:()=>k_,reverse3d:()=>E_,reverse4d:()=>__,rfft:()=>lu,round:()=>um,rsqrt:()=>cm,scalar:()=>mt,scatterND:()=>a6,searchSorted:()=>mh,selu:()=>pm,separableConv2d:()=>mm,setdiff1dAsync:()=>A_,sigmoid:()=>Yr,sign:()=>ey,signal:()=>dX,sin:()=>fm,sinh:()=>dm,slice:()=>Rt,slice1d:()=>hm,slice2d:()=>dh,slice3d:()=>gm,slice4d:()=>ec,softmax:()=>iu,softplus:()=>zs,spaceToBatchND:()=>nu,sparse:()=>gX,sparseToDense:()=>c6,spectral:()=>fX,split:()=>mr,sqrt:()=>Se,square:()=>Mt,squaredDifference:()=>ym,squeeze:()=>Mn,stack:()=>nr,step:()=>bo,stridedSlice:()=>ry,string:()=>xX,sub:()=>ct,sum:()=>ft,tan:()=>ny,tanh:()=>$i,tensor:()=>ur,tensor1d:()=>Me,tensor2d:()=>Vs,tensor3d:()=>rx,tensor4d:()=>$_,tensor5d:()=>D_,tensor6d:()=>R_,tile:()=>Dr,topk:()=>oy,transpose:()=>Ot,truncatedNormal:()=>bm,unique:()=>sy,unsortedSegmentSum:()=>wm,unstack:()=>vr,upperBound:()=>F_,variable:()=>iy,where:()=>_e,whereAsync:()=>ly,zeros:()=>Ne,zerosLike:()=>It});var MD=(r,t,e,n=ae)=>{switch(r.op){case\"BiasAdd\":case\"AddV2\":case\"Add\":return[n.add(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"AddN\":return[n.addN(S(\"tensors\",r,t,e))];case\"FloorMod\":case\"Mod\":return[n.mod(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"Mul\":return[n.mul(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"RealDiv\":case\"Div\":return[n.div(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"DivNoNan\":return[n.divNoNan(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"FloorDiv\":return[n.floorDiv(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"Sub\":return[n.sub(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"Minimum\":return[n.minimum(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"Maximum\":return[n.maximum(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"Pow\":return[n.pow(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"SquaredDifference\":return[n.squaredDifference(S(\"a\",r,t,e),S(\"b\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var zD=(r,t,e,n=ae)=>{switch(r.op){case\"Abs\":case\"ComplexAbs\":return[n.abs(S(\"x\",r,t,e))];case\"Acos\":return[n.acos(S(\"x\",r,t,e))];case\"Acosh\":return[n.acosh(S(\"x\",r,t,e))];case\"Asin\":return[n.asin(S(\"x\",r,t,e))];case\"Asinh\":return[n.asinh(S(\"x\",r,t,e))];case\"Atan\":return[n.atan(S(\"x\",r,t,e))];case\"Atan2\":return[n.atan2(S(\"x\",r,t,e),S(\"y\",r,t,e))];case\"Atanh\":return[n.atanh(S(\"x\",r,t,e))];case\"Ceil\":return[n.ceil(S(\"x\",r,t,e))];case\"Complex\":return[n.complex(S(\"real\",r,t,e),S(\"imag\",r,t,e))];case\"Cos\":return[n.cos(S(\"x\",r,t,e))];case\"Cosh\":return[n.cosh(S(\"x\",r,t,e))];case\"Elu\":return[n.elu(S(\"x\",r,t,e))];case\"Erf\":return[n.erf(S(\"x\",r,t,e))];case\"Exp\":return[n.exp(S(\"x\",r,t,e))];case\"Expm1\":return[n.expm1(S(\"x\",r,t,e))];case\"Floor\":return[n.floor(S(\"x\",r,t,e))];case\"Log\":return[n.log(S(\"x\",r,t,e))];case\"Log1p\":return[n.log1p(S(\"x\",r,t,e))];case\"Imag\":return[n.imag(S(\"x\",r,t,e))];case\"Neg\":return[n.neg(S(\"x\",r,t,e))];case\"Reciprocal\":return[n.reciprocal(S(\"x\",r,t,e))];case\"Real\":return[n.real(S(\"x\",r,t,e))];case\"Relu\":return[n.relu(S(\"x\",r,t,e))];case\"Round\":return[n.round(S(\"x\",r,t,e))];case\"Selu\":return[n.selu(S(\"x\",r,t,e))];case\"Sigmoid\":return[n.sigmoid(S(\"x\",r,t,e))];case\"Sin\":return[n.sin(S(\"x\",r,t,e))];case\"Sign\":return[n.sign(S(\"x\",r,t,e))];case\"Sinh\":return[n.sinh(S(\"x\",r,t,e))];case\"Softplus\":return[n.softplus(S(\"x\",r,t,e))];case\"Sqrt\":return[n.sqrt(S(\"x\",r,t,e))];case\"Square\":return[n.square(S(\"x\",r,t,e))];case\"Tanh\":return[n.tanh(S(\"x\",r,t,e))];case\"Tan\":return[n.tan(S(\"x\",r,t,e))];case\"ClipByValue\":return[n.clipByValue(S(\"x\",r,t,e),S(\"clipValueMin\",r,t,e),S(\"clipValueMax\",r,t,e))];case\"Relu6\":return[n.relu6(S(\"x\",r,t,e))];case\"Rsqrt\":return[n.rsqrt(br(r.inputNames[0],t,e))];case\"Prod\":return[n.prod(S(\"x\",r,t,e),S(\"axes\",r,t,e))];case\"LeakyRelu\":return[n.leakyRelu(S(\"x\",r,t,e),S(\"alpha\",r,t,e))];case\"Prelu\":return[n.prelu(S(\"x\",r,t,e),S(\"alpha\",r,t,e))];case\"IsNan\":return[n.isNaN(br(r.inputNames[0],t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Vn(r,t,e=\"\"){if(!(typeof r==\"number\"||typeof t==\"number\")){y.assert(r.length===t.length,()=>e+` Shapes ${r} and ${t} must match`);for(let n=0;ne+` Shapes ${r} and ${t} must match`)}}}function BD(r){return!(typeof r==\"number\"||r.some(t=>t<0))}function Kf(r,t,e){let n=Mb(r,e),o=!BD(n);if(o&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${n}`);if(o&&t.forEach(s=>{n=Mb(s.shape,n)}),!BD(n))throw new Error(`Non-fully-defined elementShape: ${n}`);return n}function Mb(r,t){if(typeof r==\"number\")return t;if(typeof t==\"number\")return r;if(r.length!==t.length)throw new Error(`Incompatible ranks during merge: ${r} vs. ${t}`);let e=[];for(let n=0;n=0&&s>=0&&o!==s)throw new Error(`Incompatible shape during merge: ${r} vs. ${t}`);e[n]=o>=0?o:s}return e}var zb=class{constructor(t,e,n,o,s,i,a){this.name=t,this.dtype=e,this.maxSize=n,this.elementShape=o,this.identicalElementShapes=s,this.dynamicSize=i,this.clearAfterRead=a,this.tensors=[],this.closed_=!1,this.idTensor=mt(0),De(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(t){this.tensors.forEach(e=>{(t==null||!t.has(e.tensor.id))&&e.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(t<0||t>=this.size())throw new Error(`Tried to read from index ${t}, but array size is: ${this.size()}`);let e=this.tensors[t];if(e.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${t} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(e.cleared=!0),e.read=!0,e.tensor}readMany(t){return t.map(e=>this.read(e))}write(t,e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(t<0||!this.dynamicSize&&t>=this.maxSize)throw new Error(`Tried to write to index ${t}, but array is not resizeable and size is: ${this.maxSize}`);let n=this.tensors[t]||{};if(e.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t},\n because the value dtype is ${e.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=e.shape),Vn(this.elementShape,e.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${t}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, because it has already been written.`);n.tensor=e,De(e),n.written=!0,this.tensors[t]=n}writeMany(t,e){if(t.length!==e.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${t.length} is not the same as tensors size: ${e.length}.`);t.forEach((n,o)=>this.write(n,e[o]))}gather(t,e){if(!!e&&e!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${e}`);if(t)t=t.slice(0,this.size());else{t=[];for(let o=0;o=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(t,vr(e,0))}split(t,e){if(e.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${e.dtype}`);let n=0,o=t.map(u=>(n+=u,n));if(n!==e.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: ${e.shape}`);if(!this.dynamicSize&&t.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${t.length}), and the TensorArray is not marked as dynamically resizeable`);let s=n===0?0:e.size/n,i=[];B(()=>{e=R(e,[1,n,s]);for(let u=0;u{if(n!==s.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${s.dtype}`);Vn(e,s.shape,\"TensorList shape mismatch: \"),De(s)}),this.idTensor=mt(0),this.maxNumElements=o,De(this.idTensor)}get id(){return this.idTensor.id}copy(){return new ml([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(t){this.tensors.forEach(e=>{(t==null||!t.has(e.id))&&e.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(t,e,n=-1){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);if(n!==-1&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);Vn(t,this.elementShape,\"TensorList shape mismatch: \");let o=Kf(this.elementShape,this.tensors,t);return B(()=>{let s=this.tensors.map(i=>R(i,o));return nr(s,0)})}popBack(t,e){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error(\"Trying to pop from an empty list.\");let n=Kf(this.elementShape,this.tensors,t),o=this.tensors.pop();return o.kept=!1,Vn(o.shape,t,\"TensorList shape mismatch: \"),R(o,n)}pushBack(t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(Vn(t.shape,this.elementShape,\"TensorList shape mismatch: \"),this.maxNumElements===this.size())throw new Error(\"Trying to push element into a full list.\");De(t),this.tensors.push(t)}resize(t){if(t<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${t}`);if(this.maxNumElements!==-1&&t>this.maxNumElements)throw new Error(`TensorListResize input size ${t} is greater maxNumElement ${this.maxNumElements}.`);let e=new ml([],this.elementShape,this.elementDtype,this.maxNumElements);e.tensors.length=t;for(let n=0;nthis.tensors.length)throw new Error(`Trying to access element ${t} in a list with ${this.tensors.length} elements.`);if(this.tensors[t]==null)throw new Error(`element at index ${t} is null.`);Vn(this.tensors[t].shape,e,\"TensorList shape mismatch: \");let o=Kf(this.elementShape,this.tensors,e);return R(this.tensors[t],o)}setItem(t,e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(t<0||this.maxNumElements!==-1&&t>=this.maxNumElements)throw new Error(`Trying to set element ${t} in a list with max ${this.maxNumElements} elements.`);Vn(this.elementShape,e.shape,\"TensorList shape mismatch: \"),De(e),this.tensors[t]!=null&&(this.tensors[t].kept=!1),this.tensors[t]=e}gather(t,e,n){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);Vn(this.elementShape,n,\"TensorList shape mismatch: \"),t=t.slice(0,this.size());let o=Kf(this.elementShape,this.tensors,n);return t.length===0?ur([],[0].concat(o)):B(()=>{let s=t.map(i=>R(this.tensors[i],o));return nr(s,0)})}concat(t,e){if(!!t&&t!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${t}`);Vn(this.elementShape,e,\"TensorList shape mismatch: \");let n=Kf(this.elementShape,this.tensors,e);return this.size()===0?ur([],[0].concat(n)):B(()=>{let o=this.tensors.map(s=>R(s,n));return ne(o,0)})}};function VD(r,t,e){let n=r.dtype;if(r.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${r.shape}`);if(r.dtype!==e)throw new Error(`Invalid data types; op elements ${r.dtype}, but list elements ${e}`);let o=r.shape.slice(1);Vn(o,t,\"TensorList shape mismatch: \");let s=vr(r);return new ml(s,t,n)}function GD(r,t,e,n){return new ml([],r,t,n)}function WD(r,t,e,n){if(t.length!==r.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${r.shape[0]}`);let o=Math.max(...t);if(n!=null&&n!==-1&&o>=n)throw new Error(`Max index must be < array size (${o} vs. ${n})`);let s=new ml([],e,r.dtype,n),i=vr(r,0);return t.forEach((a,u)=>{s.setItem(a,i[u])}),s}function UD(r,t,e){let n=0,o=t.map(c=>(n+=c,n));if(n!==r.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: ${r.shape}`);let s=r.shape.slice(1),i=Mb(s,e),a=n===0?0:r.size/n,u=B(()=>{let c=[];r=R(r,[1,n,a]);for(let p=0;p{switch(r.op){case\"If\":case\"StatelessIf\":{let n=S(\"thenBranch\",r,t,e),o=S(\"elseBranch\",r,t,e),s=S(\"cond\",r,t,e),i=S(\"args\",r,t,e);return(await s.data())[0]?e.functionMap[n].executeFunctionAsync(i,e.tensorArrayMap,e.tensorListMap):e.functionMap[o].executeFunctionAsync(i,e.tensorArrayMap,e.tensorListMap)}case\"While\":case\"StatelessWhile\":{let n=S(\"body\",r,t,e),o=S(\"cond\",r,t,e),s=S(\"args\",r,t,e),i=await e.functionMap[o].executeFunctionAsync(s,e.tensorArrayMap,e.tensorListMap),a=s.map(c=>c.id),u=await i[0].data();i.forEach(c=>{!c.kept&&a.indexOf(c.id)===-1&&c.dispose()});let l=s;for(;u[0];){let c=l;l=await e.functionMap[n].executeFunctionAsync(l,e.tensorArrayMap,e.tensorListMap);let p=l.map(f=>f.id);c.forEach(f=>{!f.kept&&a.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()});let m=await e.functionMap[o].executeFunctionAsync(l,e.tensorArrayMap,e.tensorListMap);u=await m[0].data(),m.forEach(f=>{!f.kept&&a.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()})}return l}case\"LoopCond\":{let n=S(\"pred\",r,t,e);return[Zs(n)]}case\"Switch\":{let n=S(\"pred\",r,t,e),o=S(\"data\",r,t,e);return o.kept||(o=Zs(o)),(await n.data())[0]?[void 0,o]:[o,void 0]}case\"Merge\":{let n=r.inputNames.find(o=>br(o,t,e)!==void 0);if(n){let o=br(n,t,e);return[Zs(o)]}return}case\"Enter\":{let n=S(\"frameName\",r,t,e),o=S(\"tensor\",r,t,e);return e.enterFrame(n),[Zs(o)]}case\"Exit\":{let n=S(\"tensor\",r,t,e);return e.exitFrame(),[Zs(n)]}case\"NextIteration\":{let n=S(\"tensor\",r,t,e);return e.nextIteration(),[Zs(n)]}case\"TensorArrayV3\":{let n=S(\"size\",r,t,e),o=S(\"dtype\",r,t,e),s=S(\"elementShape\",r,t,e),i=S(\"dynamicSize\",r,t,e),a=S(\"clearAfterRead\",r,t,e),u=S(\"identicalElementShapes\",r,t,e),l=S(\"name\",r,t,e),c=new zb(l,o,n,s,u,i,a);return e.addTensorArray(c),[c.idTensor,mt(1)]}case\"TensorArrayWriteV3\":{let n=S(\"tensorArrayId\",r,t,e),o=S(\"index\",r,t,e),s=S(\"tensor\",r,t,e),i=e.getTensorArray(n.id);return i.write(o,s),[i.idTensor]}case\"TensorArrayReadV3\":{let n=S(\"tensorArrayId\",r,t,e),o=S(\"index\",r,t,e);return[e.getTensorArray(n.id).read(o)]}case\"TensorArrayGatherV3\":{let n=S(\"tensorArrayId\",r,t,e),o=S(\"indices\",r,t,e),s=S(\"dtype\",r,t,e);return[e.getTensorArray(n.id).gather(o,s)]}case\"TensorArrayScatterV3\":{let n=S(\"tensorArrayId\",r,t,e),o=S(\"indices\",r,t,e),s=S(\"tensor\",r,t,e),i=e.getTensorArray(n.id);return i.scatter(o,s),[i.idTensor]}case\"TensorArrayConcatV3\":{let n=S(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id),s=S(\"dtype\",r,t,e);return[o.concat(s)]}case\"TensorArraySplitV3\":{let n=S(\"tensorArrayId\",r,t,e),o=S(\"tensor\",r,t,e),s=S(\"lengths\",r,t,e),i=e.getTensorArray(n.id);return i.split(s,o),[i.idTensor]}case\"TensorArraySizeV3\":{let n=S(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id);return[mt(o.size(),\"int32\")]}case\"TensorArrayCloseV3\":{let n=S(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id);return o.clearAndClose(),[o.idTensor]}case\"TensorListSetItem\":{let n=S(\"tensorListId\",r,t,e),o=S(\"index\",r,t,e),s=S(\"tensor\",r,t,e),i=e.getTensorList(n.id);return i.setItem(o,s),[i.idTensor]}case\"TensorListGetItem\":{let n=S(\"tensorListId\",r,t,e),o=S(\"index\",r,t,e),s=S(\"elementShape\",r,t,e),i=S(\"elementDType\",r,t,e);return[e.getTensorList(n.id).getItem(o,s,i)]}case\"TensorListScatterV2\":case\"TensorListScatter\":{let n=S(\"indices\",r,t,e),o=S(\"tensor\",r,t,e),s=S(\"elementShape\",r,t,e),i=S(\"numElements\",r,t,e),a=WD(o,n,s,i);return e.addTensorList(a),[a.idTensor]}case\"TensorListReserve\":case\"EmptyTensorList\":{let n=S(\"elementShape\",r,t,e),o=S(\"elementDType\",r,t,e),s;r.op===\"TensorListReserve\"?s=\"numElements\":s=\"maxNumElements\";let i=S(s,r,t,e),a=r.op===\"TensorListReserve\"?-1:i,u=GD(n,o,i,a);return e.addTensorList(u),[u.idTensor]}case\"TensorListGather\":{let n=S(\"tensorListId\",r,t,e),o=S(\"indices\",r,t,e),s=S(\"elementShape\",r,t,e),i=S(\"elementDType\",r,t,e);return[e.getTensorList(n.id).gather(o,i,s)]}case\"TensorListStack\":{let n=S(\"tensorListId\",r,t,e),o=S(\"elementShape\",r,t,e),s=S(\"elementDType\",r,t,e),i=S(\"numElements\",r,t,e);return[e.getTensorList(n.id).stack(o,s,i)]}case\"TensorListFromTensor\":{let n=S(\"tensor\",r,t,e),o=S(\"elementShape\",r,t,e),s=S(\"elementDType\",r,t,e),i=VD(n,o,s);return e.addTensorList(i),[i.idTensor]}case\"TensorListConcat\":case\"TensorListConcatV2\":{let n=S(\"tensorListId\",r,t,e),o=e.getTensorList(n.id),s=S(\"dtype\",r,t,e),i=S(\"elementShape\",r,t,e);return[o.concat(s,i)]}case\"TensorListPushBack\":{let n=S(\"tensorListId\",r,t,e),o=S(\"tensor\",r,t,e),s=e.getTensorList(n.id);return s.pushBack(o),[s.idTensor]}case\"TensorListPopBack\":{let n=S(\"tensorListId\",r,t,e),o=S(\"elementShape\",r,t,e),s=S(\"elementDType\",r,t,e);return[e.getTensorList(n.id).popBack(o,s)]}case\"TensorListSplit\":{let n=S(\"tensor\",r,t,e),o=S(\"elementShape\",r,t,e),s=S(\"lengths\",r,t,e),i=UD(n,s,o);return e.addTensorList(i),[i.idTensor]}case\"TensorListLength\":{let n=S(\"tensorListId\",r,t,e),o=e.getTensorList(n.id);return[mt(o.size(),\"int32\")]}case\"TensorListResize\":{let n=S(\"tensorListId\",r,t,e),o=S(\"size\",r,t,e),i=e.getTensorList(n.id).resize(o);return e.addTensorList(i),[i.idTensor]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};function qD(r,t,e){let[n,o]=S(\"fusedOps\",r,t,e),s=n===\"biasadd\",i=!s,a=o===\"prelu\",u=n===\"fusedbatchnorm\",l=S(\"numArgs\",r,t,e);if(s){if(a&&l!==2)throw new Error(\"FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.\");if(!a&&s&&l!==1)throw new Error(\"FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.\")}if(u)throw new Error(\"FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported\");let c=S(\"strides\",r,t,e),p=Rh(r,t,e),m=S(\"dataFormat\",r,t,e).toUpperCase(),f=S(\"dilations\",r,t,e),[d,h]=S(\"args\",r,t,e);i&&(h=d,d=void 0);let g=S(\"leakyreluAlpha\",r,t,e);return{stride:c,pad:p,dataFormat:m,dilations:f,biasArg:d,preluArg:h,activationFunc:o,leakyreluAlpha:g}}var KD=(r,t,e,n=ae)=>{switch(r.op){case\"Conv1D\":{let o=S(\"stride\",r,t,e),s=S(\"pad\",r,t,e),i=S(\"dataFormat\",r,t,e).toUpperCase(),a=S(\"dilation\",r,t,e);return[n.conv1d(S(\"x\",r,t,e),S(\"filter\",r,t,e),o,s,i,a)]}case\"Conv2D\":{let o=S(\"strides\",r,t,e),s=Rh(r,t,e),i=S(\"dataFormat\",r,t,e).toUpperCase(),a=S(\"dilations\",r,t,e);return[n.conv2d(S(\"x\",r,t,e),S(\"filter\",r,t,e),[o[1],o[2]],s,i,[a[1],a[2]])]}case\"_FusedConv2D\":{let{stride:o,pad:s,dataFormat:i,dilations:a,biasArg:u,preluArg:l,activationFunc:c,leakyreluAlpha:p}=qD(r,t,e);return[n.fused.conv2d({x:S(\"x\",r,t,e),filter:S(\"filter\",r,t,e),strides:[o[1],o[2]],pad:s,dataFormat:i,dilations:[a[1],a[2]],bias:u,activation:c,preluActivationWeights:l,leakyreluAlpha:p})]}case\"FusedDepthwiseConv2dNative\":{let{stride:o,pad:s,dataFormat:i,dilations:a,biasArg:u,preluArg:l,activationFunc:c,leakyreluAlpha:p}=qD(r,t,e);return[n.fused.depthwiseConv2d({x:S(\"x\",r,t,e),filter:S(\"filter\",r,t,e),strides:[o[1],o[2]],pad:s,dataFormat:i,dilations:[a[1],a[2]],bias:u,activation:c,preluActivationWeights:l,leakyreluAlpha:p})]}case\"Conv2DBackpropInput\":case\"Conv2dTranspose\":{let o=S(\"outputShape\",r,t,e),s=S(\"strides\",r,t,e),i=Rh(r,t,e);return[n.conv2dTranspose(S(\"x\",r,t,e),S(\"filter\",r,t,e),o,[s[1],s[2]],i)]}case\"DepthwiseConv2dNative\":case\"DepthwiseConv2d\":{let o=S(\"strides\",r,t,e),s=Rh(r,t,e),i=S(\"dilations\",r,t,e),a=S(\"dataFormat\",r,t,e).toUpperCase();return[n.depthwiseConv2d(S(\"input\",r,t,e),S(\"filter\",r,t,e),[o[1],o[2]],s,a,[i[1],i[2]])]}case\"Conv3D\":{let o=S(\"strides\",r,t,e),s=S(\"pad\",r,t,e),i=S(\"dataFormat\",r,t,e).toUpperCase(),a=S(\"dilations\",r,t,e);return[n.conv3d(S(\"x\",r,t,e),S(\"filter\",r,t,e),[o[1],o[2],o[3]],s,i,[a[1],a[2],a[3]])]}case\"AvgPool\":{let o=S(\"strides\",r,t,e),s=S(\"pad\",r,t,e),i=S(\"kernelSize\",r,t,e);return[n.avgPool(S(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case\"MaxPool\":{let o=S(\"strides\",r,t,e),s=S(\"pad\",r,t,e),i=S(\"kernelSize\",r,t,e);return[n.maxPool(S(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case\"MaxPoolWithArgmax\":{let o=S(\"strides\",r,t,e),s=S(\"pad\",r,t,e),i=S(\"kernelSize\",r,t,e),a=S(\"includeBatchInIndex\",r,t,e),{result:u,indexes:l}=n.maxPoolWithArgmax(S(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s,a);return[u,l]}case\"AvgPool3D\":{let o=S(\"strides\",r,t,e),s=S(\"pad\",r,t,e),i=S(\"kernelSize\",r,t,e);return[n.avgPool3d(S(\"x\",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case\"MaxPool3D\":{let o=S(\"strides\",r,t,e),s=S(\"pad\",r,t,e),i=S(\"kernelSize\",r,t,e);return[n.maxPool3d(S(\"x\",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case\"Dilation2D\":{let o=S(\"strides\",r,t,e),s=S(\"pad\",r,t,e),i=S(\"dilations\",r,t,e),a=o[1],u=o[2],l=i[1],c=i[2];return[n.dilation2d(S(\"x\",r,t,e),S(\"filter\",r,t,e),[a,u],s,[l,c],\"NHWC\")]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var jD=(r,t,e,n=ae)=>{switch(r.op){case\"Fill\":{let o=S(\"shape\",r,t,e),s=S(\"dtype\",r,t,e),i=S(\"value\",r,t,e);return[n.fill(o,i,s)]}case\"LinSpace\":{let o=S(\"start\",r,t,e),s=S(\"stop\",r,t,e),i=S(\"num\",r,t,e);return[n.linspace(o,s,i)]}case\"Multinomial\":{let o=S(\"logits\",r,t,e),s=S(\"numSamples\",r,t,e),i=S(\"seed\",r,t,e);return[n.multinomial(o,s,i)]}case\"OneHot\":{let o=S(\"indices\",r,t,e),s=S(\"depth\",r,t,e),i=S(\"onValue\",r,t,e),a=S(\"offValue\",r,t,e),u=S(\"dtype\",r,t,e);return[n.oneHot(o,s,i,a,u)]}case\"Ones\":return[n.ones(S(\"shape\",r,t,e),S(\"dtype\",r,t,e))];case\"OnesLike\":return[n.onesLike(S(\"x\",r,t,e))];case\"RandomStandardNormal\":return[n.randomStandardNormal(S(\"shape\",r,t,e),S(\"dtype\",r,t,e),S(\"seed\",r,t,e))];case\"RandomUniform\":return[n.randomUniform(S(\"shape\",r,t,e),S(\"minval\",r,t,e),S(\"maxval\",r,t,e),S(\"dtype\",r,t,e))];case\"Range\":{let o=S(\"start\",r,t,e),s=S(\"stop\",r,t,e),i=S(\"step\",r,t,e);return[n.range(o,s,i,S(\"dtype\",r,t,e))]}case\"TruncatedNormal\":{let o=S(\"shape\",r,t,e),s=S(\"mean\",r,t,e),i=S(\"stdDev\",r,t,e),a=S(\"seed\",r,t,e);return[n.truncatedNormal(o,s,i,S(\"dtype\",r,t,e),a)]}case\"Zeros\":return[n.zeros(S(\"shape\",r,t,e),S(\"dtype\",r,t,e))];case\"ZerosLike\":return[n.zerosLike(S(\"x\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function mN(r,t,e){let n=S(\"boxes\",r,t,e),o=S(\"scores\",r,t,e),s=S(\"maxOutputSize\",r,t,e),i=S(\"iouThreshold\",r,t,e),a=S(\"scoreThreshold\",r,t,e),u=S(\"softNmsSigma\",r,t,e);return{boxes:n,scores:o,maxOutputSize:s,iouThreshold:i,scoreThreshold:a,softNmsSigma:u}}var XD=async(r,t,e,n,o=ae)=>{switch(r.op){case\"NonMaxSuppressionV5\":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l,softNmsSigma:c}=mN(r,t,e),p=await o.image.nonMaxSuppressionWithScoreAsync(s,i,a,u,l,c);return[p.selectedIndices,p.selectedScores]}case\"NonMaxSuppressionV4\":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l}=mN(r,t,e),c=S(\"padToMaxOutputSize\",r,t,e),p=await o.image.nonMaxSuppressionPaddedAsync(s,i,a,u,l,c);return[p.selectedIndices,p.validOutputs]}case\"NonMaxSuppressionV3\":case\"NonMaxSuppressionV2\":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l}=mN(r,t,e);return[await o.image.nonMaxSuppressionAsync(s,i,a,u,l)]}case\"Where\":{let s=o.cast(S(\"condition\",r,t,e),\"bool\"),i=[await o.whereAsync(s)];return s.dispose(),i}case\"ListDiff\":return o.setdiff1dAsync(S(\"x\",r,t,e),S(\"y\",r,t,e));default:throw TypeError(`Node type ${r.op} is not implemented`)}};var YD=(r,t,e,n=ae)=>{switch(r.op){case\"LowerBound\":{let o=S(\"sortedSequence\",r,t,e),s=S(\"values\",r,t,e);return[n.lowerBound(o,s)]}case\"TopKV2\":{let o=S(\"x\",r,t,e),s=S(\"k\",r,t,e),i=S(\"sorted\",r,t,e),a=n.topk(o,s,i);return[a.values,a.indices]}case\"UpperBound\":{let o=S(\"sortedSequence\",r,t,e),s=S(\"values\",r,t,e);return[n.upperBound(o,s)]}case\"Unique\":{let o=S(\"x\",r,t,e),s=n.unique(o);return[s.values,s.indices]}case\"UniqueV2\":{let o=S(\"x\",r,t,e),s=S(\"axis\",r,t,e),i=n.unique(o,s);return[i.values,i.indices]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var ZD=(r,t,e,n=ae)=>{switch(r.op){case\"Const\":return t[r.name];case\"PlaceholderWithDefault\":let o=S(\"default\",r,t,e);return[br(r.name,t,e)||o];case\"Placeholder\":return[br(r.name,t,e)];case\"Identity\":case\"StopGradient\":case\"FakeQuantWithMinMaxVars\":{let c=S(\"x\",r,t,e);return[Zs(c)]}case\"IdentityN\":return S(\"x\",r,t,e).map(c=>Zs(c));case\"Snapshot\":let s=S(\"x\",r,t,e);return[Zs(s)];case\"Shape\":return[n.tensor1d(S(\"x\",r,t,e).shape,\"int32\")];case\"ShapeN\":return S(\"x\",r,t,e).map(c=>n.tensor1d(c.shape));case\"Size\":return[n.scalar(S(\"x\",r,t,e).size,\"int32\")];case\"Rank\":return[n.scalar(S(\"x\",r,t,e).rank,\"int32\")];case\"NoOp\":return[n.scalar(1)];case\"Print\":let i=S(\"x\",r,t,e),a=S(\"data\",r,t,e),u=S(\"message\",r,t,e),l=S(\"summarize\",r,t,e);console.warn(\"The graph has a tf.print() operation,usually used for debugging, which slows down performance.\"),console.log(u);for(let c=0;ct.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return mt(this.size(),\"int32\")}async import(t,e){this.checkKeyAndValueTensor(t,e);let n=await t.data();return this.tensorMap.forEach(o=>o.dispose()),this.tensorMap.clear(),B(()=>{let o=vr(e),s=n.length,i=o.length;y.assert(s===i,()=>`The number of elements doesn't match, keys has ${s} elements, the values has ${i} elements.`);for(let a=0;a{let o=[];for(let s=0;s{switch(r.op){case\"HashTable\":case\"HashTableV2\":{let o=n.getHashTableHandleByName(r.name);if(o!=null)return[o];{let s=S(\"keyDType\",r,t,e),i=S(\"valueDType\",r,t,e),a=new Bb(s,i);return n.addHashTable(r.name,a),[a.handle]}}case\"LookupTableImport\":case\"LookupTableImportV2\":{let o=S(\"tableHandle\",r,t,e,n),s=S(\"keys\",r,t,e),i=S(\"values\",r,t,e);return[await n.getHashTableById(o.id).import(s,i)]}case\"LookupTableFind\":case\"LookupTableFindV2\":{let o=S(\"tableHandle\",r,t,e,n),s=S(\"keys\",r,t,e),i=S(\"defaultValue\",r,t,e);return[await n.getHashTableById(o.id).find(s,i)]}case\"LookupTableSize\":case\"LookupTableSizeV2\":{let o=S(\"tableHandle\",r,t,e,n);return[n.getHashTableById(o.id).tensorSize()]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var QD=(r,t,e,n=ae)=>{switch(r.op){case\"ResizeBilinear\":{let o=S(\"images\",r,t,e),s=S(\"size\",r,t,e),i=S(\"alignCorners\",r,t,e),a=S(\"halfPixelCenters\",r,t,e);return[n.image.resizeBilinear(o,[s[0],s[1]],i,a)]}case\"ResizeNearestNeighbor\":{let o=S(\"images\",r,t,e),s=S(\"size\",r,t,e),i=S(\"alignCorners\",r,t,e),a=S(\"halfPixelCenters\",r,t,e);return[n.image.resizeNearestNeighbor(o,[s[0],s[1]],i,a)]}case\"CropAndResize\":{let o=S(\"image\",r,t,e),s=S(\"boxes\",r,t,e),i=S(\"boxInd\",r,t,e),a=S(\"cropSize\",r,t,e),u=S(\"method\",r,t,e),l=S(\"extrapolationValue\",r,t,e);return[n.image.cropAndResize(o,s,i,a,u,l)]}case\"ImageProjectiveTransformV3\":{let o=S(\"images\",r,t,e),s=S(\"transforms\",r,t,e),i=S(\"outputShape\",r,t,e),a=S(\"fillValue\",r,t,e),u=S(\"interpolation\",r,t,e),l=S(\"fillMode\",r,t,e);return[n.image.transform(o,s,u.toLowerCase(),l.toLowerCase(),a,i)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var tR=(r,t,e,n=ae)=>{switch(r.op){case\"Equal\":return[n.equal(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"NotEqual\":return[n.notEqual(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"Greater\":return[n.greater(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"GreaterEqual\":return[n.greaterEqual(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"Less\":return[n.less(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"LessEqual\":return[n.lessEqual(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"LogicalAnd\":return[n.logicalAnd(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"LogicalNot\":return[n.logicalNot(S(\"a\",r,t,e))];case\"LogicalOr\":return[n.logicalOr(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"Select\":case\"SelectV2\":return[n.where(S(\"condition\",r,t,e),S(\"a\",r,t,e),S(\"b\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var eR=(r,t,e,n=ae)=>{switch(r.op){case\"BatchMatMul\":case\"BatchMatMulV2\":case\"MatMul\":return[n.matMul(S(\"a\",r,t,e),S(\"b\",r,t,e),S(\"transposeA\",r,t,e),S(\"transposeB\",r,t,e))];case\"Einsum\":return[n.einsum(S(\"equation\",r,t,e),...S(\"tensors\",r,t,e))];case\"Transpose\":return[n.transpose(S(\"x\",r,t,e),S(\"perm\",r,t,e))];case\"_FusedMatMul\":let[o,s]=S(\"fusedOps\",r,t,e),i=o===\"biasadd\",a=s===\"prelu\",u=S(\"numArgs\",r,t,e),l=S(\"leakyreluAlpha\",r,t,e);if(i){if(a&&u!==2)throw new Error(\"Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.\");if(!a&&u!==1)throw new Error(\"Fused MatMul with BiasAdd must have one extra argument: bias.\")}let[c,p]=S(\"args\",r,t,e);return[n.fused.matMul({a:S(\"a\",r,t,e),b:S(\"b\",r,t,e),transposeA:S(\"transposeA\",r,t,e),transposeB:S(\"transposeB\",r,t,e),bias:c,activation:s,preluActivationWeights:p,leakyreluAlpha:l})];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var rR=(r,t,e,n=ae)=>{switch(r.op){case\"EuclideanNorm\":return[n.euclideanNorm(S(\"x\",r,t,e),S(\"axis\",r,t,e),S(\"keepDims\",r,t,e))];case\"FusedBatchNorm\":case\"FusedBatchNormV2\":return[n.batchNorm(S(\"x\",r,t,e),S(\"mean\",r,t,e),S(\"variance\",r,t,e),S(\"offset\",r,t,e),S(\"scale\",r,t,e),S(\"epsilon\",r,t,e))];case\"FusedBatchNormV3\":return[n.batchNorm(S(\"x\",r,t,e),S(\"mean\",r,t,e),S(\"variance\",r,t,e),S(\"offset\",r,t,e),S(\"scale\",r,t,e),S(\"epsilon\",r,t,e))];case\"LRN\":return[n.localResponseNormalization(S(\"x\",r,t,e),S(\"radius\",r,t,e),S(\"bias\",r,t,e),S(\"alpha\",r,t,e),S(\"beta\",r,t,e))];case\"Softmax\":return[n.softmax(S(\"x\",r,t,e))];case\"LogSoftmax\":return[n.logSoftmax(S(\"x\",r,t,e))];case\"SparseToDense\":return[n.sparseToDense(S(\"sparseIndices\",r,t,e),S(\"outputShape\",r,t,e),S(\"sparseValues\",r,t,e),S(\"defaultValue\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var nR=(r,t,e,n=ae)=>{switch(r.op){case\"Max\":{let a=S(\"axis\",r,t,e),u=S(\"keepDims\",r,t,e);return[n.max(S(\"x\",r,t,e),a,u)]}case\"Mean\":{let a=S(\"axis\",r,t,e),u=S(\"keepDims\",r,t,e);return[n.mean(S(\"x\",r,t,e),a,u)]}case\"Min\":{let a=S(\"axis\",r,t,e),u=S(\"keepDims\",r,t,e);return[n.min(S(\"x\",r,t,e),a,u)]}case\"Sum\":{let a=S(\"axis\",r,t,e),u=S(\"keepDims\",r,t,e);return[n.sum(S(\"x\",r,t,e),a,u)]}case\"All\":{let a=S(\"axis\",r,t,e),u=S(\"keepDims\",r,t,e);return[n.all(S(\"x\",r,t,e),a,u)]}case\"Any\":{let a=S(\"axis\",r,t,e),u=S(\"keepDims\",r,t,e);return[n.any(S(\"x\",r,t,e),a,u)]}case\"ArgMax\":{let a=S(\"axis\",r,t,e);return[n.argMax(S(\"x\",r,t,e),a)]}case\"ArgMin\":{let a=S(\"axis\",r,t,e);return[n.argMin(S(\"x\",r,t,e),a)]}case\"Prod\":{let a=S(\"axis\",r,t,e),u=S(\"keepDims\",r,t,e);return[n.prod(S(\"x\",r,t,e),a,u)]}case\"Cumprod\":{let a=S(\"axis\",r,t,e),u=S(\"exclusive\",r,t,e),l=S(\"reverse\",r,t,e);return[n.cumprod(S(\"x\",r,t,e),a,u,l)]}case\"Cumsum\":{let a=S(\"axis\",r,t,e),u=S(\"exclusive\",r,t,e),l=S(\"reverse\",r,t,e);return[n.cumsum(S(\"x\",r,t,e),a,u,l)]}case\"Bincount\":let o=S(\"x\",r,t,e),s=S(\"weights\",r,t,e),i=S(\"size\",r,t,e);return[n.bincount(o,s,i)];case\"DenseBincount\":{let a=S(\"x\",r,t,e),u=S(\"weights\",r,t,e),l=S(\"size\",r,t,e),c=S(\"binaryOutput\",r,t,e);return[n.denseBincount(a,u,l,c)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var oR=(r,t,e,n=ae)=>{switch(r.op){case\"ConcatV2\":case\"Concat\":{let o=S(\"n\",r,t,e),s=S(\"axis\",r,t,e),i=S(\"tensors\",r,t,e);return i=i.slice(0,o),[n.concat(i,s)]}case\"Gather\":{let o=S(\"x\",r,t,e),s=S(\"indices\",r,t,e);return[n.gather(o,n.cast(s,\"int32\"),0)]}case\"GatherV2\":{let o=S(\"axis\",r,t,e),s=S(\"batchDims\",r,t,e),i=S(\"x\",r,t,e),a=S(\"indices\",r,t,e);return[n.gather(i,n.cast(a,\"int32\"),o,s)]}case\"Reverse\":{let o=S(\"dims\",r,t,e),s=[];for(let a=0;a{let o=S(\"axis\",r,t,e),s=S(\"tensors\",r,t,e),i=s[0].shape,a=n.squeeze(s[0]).shape,u=s.map(l=>{let c=y.arraysEqual(l.shape,i);if(!c&&!y.arraysEqual(n.squeeze(l).shape,a))throw new Error(\"the input tensors shape does not match\");return c?l:n.reshape(l,i)});return[n.stack(u,o)]});case\"Unpack\":{let o=S(\"axis\",r,t,e),s=S(\"tensor\",r,t,e);return n.unstack(s,o)}case\"Tile\":{let o=S(\"reps\",r,t,e);return[n.tile(S(\"x\",r,t,e),o)]}case\"Split\":case\"SplitV\":{let o=S(\"axis\",r,t,e),s=S(\"numOrSizeSplits\",r,t,e),i=S(\"x\",r,t,e);return n.split(i,s,o)}case\"ScatterNd\":{let o=S(\"indices\",r,t,e),s=S(\"values\",r,t,e),i=S(\"shape\",r,t,e);return[n.scatterND(o,s,i)]}case\"GatherNd\":{let o=S(\"x\",r,t,e),s=S(\"indices\",r,t,e);return[n.gatherND(o,s)]}case\"SparseToDense\":{let o=S(\"sparseIndices\",r,t,e),s=S(\"outputShape\",r,t,e),i=S(\"sparseValues\",r,t,e),a=S(\"defaultValue\",r,t,e);return[n.sparseToDense(o,i,s,i.dtype===a.dtype?a:n.cast(a,i.dtype))]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var sR=(r,t,e,n=ae)=>{switch(r.op){case\"SparseFillEmptyRows\":{let{outputIndices:o,outputValues:s,emptyRowIndicator:i,reverseIndexMap:a}=n.sparse.sparseFillEmptyRows(S(\"indices\",r,t,e),S(\"values\",r,t,e),S(\"denseShape\",r,t,e),S(\"defaultValue\",r,t,e));return[o,s,i,a]}case\"SparseReshape\":{let{outputIndices:o,outputShape:s}=n.sparse.sparseReshape(S(\"inputIndices\",r,t,e),S(\"inputShape\",r,t,e),S(\"newShape\",r,t,e));return[o,s]}case\"SparseSegmentMean\":return[n.sparse.sparseSegmentMean(S(\"data\",r,t,e),S(\"indices\",r,t,e),S(\"segmentIds\",r,t,e))];case\"SparseSegmentSum\":return[n.sparse.sparseSegmentSum(S(\"data\",r,t,e),S(\"indices\",r,t,e),S(\"segmentIds\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var iR=(r,t,e,n=ae)=>{switch(r.op){case\"FFT\":return[n.fft(S(\"x\",r,t,e))];case\"IFFT\":return[n.ifft(S(\"x\",r,t,e))];case\"RFFT\":return[n.rfft(S(\"x\",r,t,e))];case\"IRFFT\":return[n.irfft(S(\"x\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var aR=(r,t,e,n=ae)=>{switch(r.op){case\"StringNGrams\":{let{nGrams:o,nGramsSplits:s}=n.string.stringNGrams(S(\"data\",r,t,e),S(\"dataSplits\",r,t,e),S(\"separator\",r,t,e),S(\"nGramWidths\",r,t,e),S(\"leftPad\",r,t,e),S(\"rightPad\",r,t,e),S(\"padWidth\",r,t,e),S(\"preserveShortSequences\",r,t,e));return[o,s]}case\"StringSplit\":{let{indices:o,values:s,shape:i}=n.string.stringSplit(S(\"input\",r,t,e),S(\"delimiter\",r,t,e),S(\"skipEmpty\",r,t,e));return[o,s,i]}case\"StringToHashBucketFast\":return[n.string.stringToHashBucketFast(S(\"input\",r,t,e),S(\"numBuckets\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var lR=(r,t,e,n=ae)=>{switch(r.op){case\"Cast\":return[n.cast(S(\"x\",r,t,e),S(\"dtype\",r,t,e))];case\"ExpandDims\":{let o=S(\"axis\",r,t,e);return[n.expandDims(S(\"x\",r,t,e),o)]}case\"Squeeze\":{let o=S(\"axis\",r,t,e);return[n.squeeze(S(\"x\",r,t,e),o)]}case\"Reshape\":return[n.reshape(S(\"x\",r,t,e),S(\"shape\",r,t,e))];case\"MirrorPad\":return[n.mirrorPad(S(\"x\",r,t,e),S(\"padding\",r,t,e),S(\"mode\",r,t,e))];case\"PadV2\":case\"Pad\":return[n.pad(S(\"x\",r,t,e),S(\"padding\",r,t,e),S(\"constantValue\",r,t,e))];case\"SpaceToBatchND\":{let o=S(\"blockShape\",r,t,e),s=S(\"paddings\",r,t,e);return[n.spaceToBatchND(S(\"x\",r,t,e),o,s)]}case\"BatchToSpaceND\":{let o=S(\"blockShape\",r,t,e),s=S(\"crops\",r,t,e);return[n.batchToSpaceND(S(\"x\",r,t,e),o,s)]}case\"DepthToSpace\":{let o=S(\"blockSize\",r,t,e),s=S(\"dataFormat\",r,t,e).toUpperCase();return[n.depthToSpace(S(\"x\",r,t,e),o,s)]}case\"BroadcastTo\":return[n.broadcastTo(S(\"x\",r,t,e),S(\"shape\",r,t,e))];case\"BroadcastArgs\":return[n.broadcastArgs(S(\"s0\",r,t,e),S(\"s1\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function fN(r,t,e,n,o=B){let s=((i,a,u)=>{switch(i.category){case\"arithmetic\":return o(()=>MD(i,a,u));case\"basic_math\":return o(()=>zD(i,a,u));case\"control\":return HD(i,a,u);case\"convolution\":return o(()=>KD(i,a,u));case\"creation\":return o(()=>jD(i,a,u));case\"dynamic\":return XD(i,a,u);case\"evaluation\":return o(()=>YD(i,a,u));case\"image\":return o(()=>QD(i,a,u));case\"graph\":return o(()=>ZD(i,a,u));case\"logical\":return o(()=>tR(i,a,u));case\"matrices\":return o(()=>eR(i,a,u));case\"normalization\":return o(()=>rR(i,a,u));case\"reduction\":return o(()=>nR(i,a,u));case\"slice_join\":return o(()=>oR(i,a,u));case\"sparse\":return o(()=>sR(i,a,u));case\"spectral\":return o(()=>iR(i,a,u));case\"string\":return o(()=>aR(i,a,u));case\"transformation\":return o(()=>lR(i,a,u));case\"hash_table\":return JD(i,a,u,n);case\"custom\":let l=Nb(i.op);if(l&&l.customExecutor)return l.customExecutor(new Lb(i,a,u));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(r,t,e);return y.isPromise(s)?s.then(i=>[].concat(i)):[].concat(s)}var Oh=class{constructor(t={},e={},n={},o={}){this.weightMap=t,this.tensorArrayMap=e,this.tensorListMap=n,this.functionMap=o,this.rootContext={id:0,frameName:\"\",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(t,e){return{id:t,frameName:e,iterationId:0}}set currentContext(t){this.contexts!==t&&(this.contexts=t,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let t=[];for(let e=0;ee.id===0&&e.iterationId===0?\"\":`${e.frameName}-${e.iterationId}`).join(\"/\"):\"\"}enterFrame(t){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,t)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error(\"Cannot exit frame, the context is empty\")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let t=Object.assign({},this.contexts[this.contexts.length-1]);t.iterationId+=1,t.id=this.lastId,this.contexts.splice(-1,1,t),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error(\"Cannot increase frame iteration, the context is empty\")}getWeight(t){return this.weightMap[t]}addTensorArray(t){this.tensorArrayMap[t.id]=t}getTensorArray(t){return this.tensorArrayMap[t]}addTensorList(t){this.tensorListMap[t.id]=t}getTensorList(t){return this.tensorListMap[t]}dispose(t){for(let e in this.tensorArrayMap)this.tensorArrayMap[e].clearAndClose(t);for(let e in this.tensorListMap)this.tensorListMap[e].clearAndClose(t)}};function dN(r,t,e,n){let o=new Set,s=[],i=null,a=null,u=new Set,l=Object.keys(r).map(m=>xn(m)[0]),c=[];n!=null&&(c=n.map(m=>xn(m.name)[0]));let p=[...t];for(;p.length>0;){let m=p.pop();if((hN(m)||F7(m)||O7(m))&&i==null&&(i=m,a=i.children.map(f=>f.name).filter(f=>o.has(f))),o.add(m.name),e[m.name]==null&&l.indexOf(m.name)===-1&&c.indexOf(m.name)===-1){if(m.inputs.length===0){s.push(m.name);continue}m.inputs.forEach(f=>{u.has(f.name)||(u.add(f.name),p.push(f))})}}return{inputs:r,outputs:t,usedNodes:o,missingInputs:s,dynamicNode:i,syncInputs:a}}function uR(r,t,e){let{usedNodes:n,inputs:o}=e,s=[],i=Object.keys(o).map(c=>xn(c)[0]).map(c=>r.nodes[c]),a=r.initNodes;i.forEach(c=>{n.has(c.name)&&s.push(c)}),r.weights.forEach(c=>{n.has(c.name)&&s.push(c)}),a!=null&&a.forEach(c=>{n.has(c.name)&&s.push(c)});let u=new Set,l=[];for(;s.length>0;){let c=s.pop();u.add(c.name),t[c.name]||l.push(c),c.children.forEach(p=>{!u.has(p.name)&&n.has(p.name)&&p.inputs.every(m=>u.has(m.name))&&s.push(p)})}return l}var $7=[\"Switch\",\"Merge\",\"Enter\",\"Exit\",\"NextIteration\",\"StatelessIf\",\"StatelessWhile\",\"if\",\"While\"],D7=[\"NonMaxSuppressionV2\",\"NonMaxSuppressionV3\",\"NonMaxSuppressionV5\",\"Where\"],R7=[\"HashTable\",\"HashTableV2\",\"LookupTableImport\",\"LookupTableImportV2\",\"LookupTableFind\",\"LookupTableFindV2\",\"LookupTableSize\",\"LookupTableSizeV2\"];function hN(r){return $7.indexOf(r.op)>=0}function F7(r){return D7.indexOf(r.op)>=0}function O7(r){return R7.indexOf(r.op)>=0}var Nc=class{constructor(t,e){this.graph=t,this.parent=e,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=\",\",this._functions={},this._functionExecutorMap={},this.intermediateTensors={},this.keepTensorForDebug=!1,this._outputs=t.outputs,this._inputs=t.inputs,this._initNodes=t.initNodes,this._signature=t.signature,this._functions=t.functions,t.functions!=null&&Object.keys(t.functions).forEach(n=>{this._functionExecutorMap[n]=new Nc(t.functions[n],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(t){let e=Object.keys(t).map(n=>t[n].map(o=>o.id));this._weightIds=[].concat(...e),this._weightMap=t}set resourceManager(t){this._resourceManager=t}get inputs(){return this._inputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(t=>t.signatureKey||t.name)}get outputNodes(){return this._outputs.map(t=>{let e=t.signatureKey||t.name;return t.defaultOutput?`${e}:${t.defaultOutput}`:e})}get functions(){return Object.keys(this._functions).reduce((t,e)=>(t[e]=this._functions[e].signature,t),{})}getCompilationKey(t,e){let n=t.map(s=>s.name).sort(),o=e.map(s=>s.name).sort();return n.join(this.SEPERATOR)+\"--\"+o.join(this.SEPERATOR)}compile(t,e){let n=dN(t,e,this.weightMap,this._initNodes),{missingInputs:o,dynamicNode:s,syncInputs:i}=n;if(s!=null)throw new Error(`This execution contains the node '${s.name}', which has the dynamic op '${s.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${i}]`);if(o.length>0){let a=e.map(l=>l.name),u=Object.keys(t);throw new Error(`Cannot compute the outputs [${a}] from the provided inputs [${u}]. Missing the following inputs: [${o}]`)}return uR(this.graph,this.weightMap,n)}execute(t,e){t=this.mapInputs(t);let n=Object.keys(t).sort();this.checkInputs(t),this.checkInputShapeAndType(t),e=this.mapOutputs(e),this.checkOutputs(e);let o=n.map(p=>this.graph.nodes[xn(p)[0]]),s=e.map(p=>xn(p)[0]),i=s.map(p=>this.graph.nodes[p]);this.resetIntermediateTensors(),i.length===0&&(i=this._outputs);let a=this.getCompilationKey(o,i),u=this.compiledMap.get(a);u==null&&(u=this.compile(t,i),this.compiledMap.set(a,u));let l={},c={};return B(()=>{let p=new Oh(this.weightMap,l,c,this.functionExecutorMap),m=Object.assign({},this.weightMap);Object.keys(t).forEach(h=>{let[g,x]=xn(h),b=[];b[x]=t[h],m[g]=b});let f=this.getFrozenTensorIds(m),d={};for(let h=0;hbr(h,m,p))})}getFrozenTensorIds(t){let e=[].concat.apply([],Object.keys(t).map(n=>t[n]).map(n=>n.map(o=>o.id)));return new Set(e)}checkTensorForDisposal(t,e,n,o,s,i,a){e.category===\"control\"||i.indexOf(t)!==-1||(n[t].forEach(u=>{u!=null&&(a[u.id]=(a[u.id]||0)+e.children.length)}),e.inputs.forEach(u=>{if(u.category!==\"control\"){let l=FD(u.name,n,o);l!=null&&l.forEach(c=>{if(c&&!c.kept&&!s.has(c.id)){let p=a[c.id];if(p===1){if(!this.keepTensorForDebug)c.dispose();else{let[m,f]=_o(e.name,o);this.intermediateTensors[m]?this.intermediateTensors[m][f]=c:(this.intermediateTensors[m]=[],this.intermediateTensors[m][f]=c)}delete a[c.id]}else p!=null&&a[c.id]--}})}}))}async executeAsync(t,e){return this._executeAsync(t,e)}disposeIntermediateTensors(){!this.intermediateTensors||(Object.keys(this.intermediateTensors).forEach(t=>this.intermediateTensors[t].forEach(e=>e.dispose())),this.disposeTensorsMap())}disposeTensorsMap(){!this.tensorsMap||Object.keys(this.tensorsMap).forEach(t=>{this.tensorsMap[t].forEach(n=>{n&&!n.kept&&!n.isDisposed&&!this.keepIds.has(n.id)&&n.dispose()})})}getIntermediateTensors(){return this.tensorsMap}resetIntermediateTensors(){for(let t in this.intermediateTensors)this.intermediateTensors[t].forEach(e=>e.dispose()),delete this.intermediateTensors[t]}async _executeAsync(t,e,n=!1,o={},s={}){n||(t=this.mapInputs(t),this.checkInputs(t),this.checkInputShapeAndType(t),e=this.mapOutputs(e),this.checkOutputs(e));try{this.keepTensorForDebug=z().getBool(\"KEEP_INTERMEDIATE_TENSORS\")}catch(c){console.warn(c.message)}this.resetIntermediateTensors();let i=new Oh(this.weightMap,o,s,this.functionExecutorMap);this.tensorsMap=await this.executeWithControlFlow(t,i,e,n);let a=e.map(c=>br(c,this.tensorsMap,i)),u=a.map(c=>c.id),l=Object.keys(t).map(c=>t[c].id);return this.keepIds=new Set([...u,...l,...this.weightIds]),this.keepTensorForDebug||this.disposeTensorsMap(),this.parent==null&&i.dispose(this.keepIds),a}async executeFunctionAsync(t,e,n){let o=t.reduce((s,i,a)=>(s[this.inputs[a].name]=i,s),{});return this._executeAsync(o,this.outputNodes,!0,e,n)}async executeWithControlFlow(t,e,n,o){let s=Object.keys(t),i=s.map(w=>this.graph.nodes[xn(w)[0]]),a=n.map(w=>xn(w)[0]),u=a.map(w=>this.graph.nodes[w]);u.length===0&&(u=this._outputs);let{usedNodes:l,missingInputs:c,dynamicNode:p,syncInputs:m}=dN(t,u,this.weightMap,this._initNodes),f=[...i,...this.graph.weights,...this._initNodes||[]].map(w=>({node:w,contexts:e.currentContext})),d=Object.assign({},this.weightMap);Object.keys(t).forEach(w=>{let[C,N]=xn(w),_=[];_[N]=t[w],d[C]=_});let h={},g=this.getFrozenTensorIds(d),x={};for(;f.length>0;){let w=this.processStack(i,f,e,d,x,g,a,h,l);await Promise.all(w)}p==null&&!o&&console.warn(\"This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.\");let b=u.filter(w=>!hN(w)&&!br(w.name,d,e)).map(w=>w.name);if(b.length>0){let w=\"\";throw p!=null&&(w=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${m}]`),new Error(`Cannot compute the outputs [${b}] from the provided inputs [${s}]. Consider providing the following inputs: [${c}]. ${w}`)}return d}processStack(t,e,n,o,s,i,a,u,l){let c=[];for(;e.length>0;){let p=e.pop();n.currentContext=p.contexts;let m=\"\";if(p.node.op===\"Enter\"&&S(\"isConstant\",p.node,o,n)&&([m]=_o(p.node.name,n)),o[p.node.name]==null){let f=fN(p.node,o,n,this._resourceManager);m||([m]=_o(p.node.name,n));let d=n.currentContext;y.isPromise(f)?c.push(f.then(h=>(o[m]=h,n.currentContext=d,this.checkTensorForDisposal(m,p.node,o,n,i,a,u),this.processChildNodes(p.node,e,n,o,s,l),h))):(o[m]=f,this.checkTensorForDisposal(m,p.node,o,n,i,a,u),this.processChildNodes(p.node,e,n,o,s,l))}else this.processChildNodes(p.node,e,n,o,s,l)}return c}processChildNodes(t,e,n,o,s,i){t.children.forEach(a=>{let[u]=_o(a.name,n);s[u]||!i.has(a.name)||(a.op===\"Merge\"?a.inputNames.some(l=>!!br(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})):a.inputNames.every(l=>!!br(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})))})}dispose(){Object.keys(this.weightMap).forEach(t=>this.weightMap[t].forEach(e=>e.dispose()))}checkInputShapeAndType(t){Object.keys(t).forEach(e=>{let n=t[e],[o]=xn(e),s=this.graph.nodes[o];if(s.attrParams.shape&&s.attrParams.shape.value){let i=s.attrParams.shape.value,a=i.length===n.shape.length&&n.shape.every((u,l)=>i[l]===-1||i[l]===u);y.assert(a,()=>`The shape of dict['${s.name}'] provided in model.execute(dict) must be [${i}], but was [${n.shape}]`)}s.attrParams.dtype&&s.attrParams.dtype.value&&y.assert(n.dtype===s.attrParams.dtype.value,()=>`The dtype of dict['${s.name}'] provided in model.execute(dict) must be ${s.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(t){let e={};for(let n in t)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[n]!=null){let o=this._signature.inputs[n];e[o.name]=t[n]}else e[n]=t[n];return e}checkInputs(t){let e=Object.keys(t).filter(n=>{let[o]=xn(n);return this.graph.nodes[o]==null});if(e.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${e}] that are not part of graph`)}mapOutputs(t){return t.map(e=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[e]!=null?this._signature.outputs[e].name:e,{})}checkOutputs(t){t.forEach(e=>{let[n]=xn(e);if(!this.graph.nodes[n])throw new Error(`The output '${e}' is not found in the graph`)})}};var Vb=class{constructor(t={},e={}){this.hashTableNameToHandle=t,this.hashTableMap=e}addHashTable(t,e){this.hashTableNameToHandle[t]=e.handle,this.hashTableMap[e.id]=e}getHashTableHandleByName(t){return this.hashTableNameToHandle[t]}getHashTableById(t){return this.hashTableMap[t]}dispose(){for(let t in this.hashTableMap)this.hashTableMap[t].clearAndClose(),delete this.hashTableMap[t];for(let t in this.hashTableNameToHandle)this.hashTableNameToHandle[t].dispose(),delete this.hashTableNameToHandle[t]}};var P7=\"?tfjs-format=file\",L7=\"model.json\",Ph=class{constructor(t,e={},n=_r){this.modelUrl=t,this.loadOptions=e,this.version=\"n/a\",this.io=n,e==null&&(this.loadOptions={}),this.resourceManager=new Vb}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}get modelStructuredOutputKeys(){return this.structuredOutputKeys}findIOHandler(){let t=this.modelUrl;if(t.load!=null)this.handler=t;else if(this.loadOptions.requestInit!=null)this.handler=this.io.browserHTTPRequest(t,this.loadOptions);else{let e=this.io.getLoadHandlers(t,this.loadOptions);if(e.length===0)e.push(this.io.browserHTTPRequest(t,this.loadOptions));else if(e.length>1)throw new Error(`Found more than one (${e.length}) load handlers for URL '${[t]}'`);this.handler=e[0]}}load(){if(this.findIOHandler(),this.handler.load==null)throw new Error(\"Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.\");let t=this.handler.load();return y.isPromise(t)?t.then(e=>this.loadSync(e)):this.loadSync(t)}loadSync(t){this.artifacts=t;let e=this.artifacts.modelTopology,n=this.artifacts.signature;if(this.artifacts.userDefinedMetadata!=null){let s=this.artifacts.userDefinedMetadata;s.signature!=null&&(n=s.signature),s.structuredOutputKeys!=null&&(this.structuredOutputKeys=s.structuredOutputKeys)}this.signature=n,this.version=`${e.versions.producer}.${e.versions.minConsumer}`;let o=this.io.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new Nc(Fh.Instance.transformGraph(e,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(o),this.executor.resourceManager=this.resourceManager,t.modelInitializer!=null&&t.modelInitializer.node!=null){let s=Fh.Instance.transformGraph(t.modelInitializer);this.initializer=new Nc(s),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=t.initializerSignature}return!0}async save(t,e){if(typeof t==\"string\"){let n=this.io.getSaveHandlers(t);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${t}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${t}'`);t=n[0]}if(t.save==null)throw new Error(\"GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.\");return t.save(this.artifacts)}predict(t,e){let n=this.execute(t,this.outputNodes);if(this.structuredOutputKeys){let o=n instanceof Ft?[n]:n,s={};return o.forEach((i,a)=>s[this.structuredOutputKeys[a]]=i),s}return n}normalizeInputs(t){if(!(t instanceof Ft)&&!Array.isArray(t)){if(this.signature!=null&&this.signature.inputs!=null)for(let o in this.signature.inputs){let s=this.signature.inputs[o];s.resourceId!=null&&(t[o]=this.resourceIdToCapturedInput[s.resourceId])}return t}t=Array.isArray(t)?t:[t];let e=Object.keys(this.resourceIdToCapturedInput).length;if(t.length+e!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-e} non-resource placeholders, while there are ${t.length} input tensors provided.`);let n=0;return this.inputNodes.reduce((o,s)=>{let i=this.signature?this.signature.inputs[s]:null;return i!=null&&i.resourceId!=null?o[s]=this.resourceIdToCapturedInput[i.resourceId]:o[s]=t[n++],o},{})}normalizeOutputs(t){return t=t||this.outputNodes,Array.isArray(t)?t:[t]}executeInitializerGraph(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(t){if(this.resourceIdToCapturedInput={},this.initializerSignature){let e=Object.keys(this.initializerSignature.outputs);for(let n=0;n1?n:n[0]}async executeAsync(t,e){this.resourceIdToCapturedInput==null&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),t=this.normalizeInputs(t),e=this.normalizeOutputs(e);let n=await this.executor.executeAsync(t,e);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(t){return Object.keys(t).reduce((e,n)=>(e[n]=[t[n]],e),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&vt(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function M7(r,t={},e=_r){if(r==null)throw new Error(\"modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model\");t==null&&(t={}),t.fromTFHub&&typeof r==\"string\"&&(r=B7(r));let n=new Ph(r,t,e);return await n.load(),n}function z7(r){if(r==null)throw new Error(\"modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model\");let t;if(r instanceof Array){let[n,o]=r;if(!n)throw new Error(\"modelJSON must be the first element of the array\");if(!o||!(o instanceof ArrayBuffer))throw new Error(\"An ArrayBuffer of weights must be the second element of the array\");if(!(\"modelTopology\"in n))throw new Error(\"Model JSON is missing 'modelTopology'\");if(!(\"weightsManifest\"in n))throw new Error(\"Model JSON is missing 'weightsManifest'\");let s=_r.getWeightSpecs(n.weightsManifest),i=_r.getModelArtifactsForJSONSync(n,s,o);t=_r.fromMemorySync(i)}else if(\"load\"in r)t=r;else if(\"modelTopology\"in r&&\"weightSpecs\"in r&&\"weightData\"in r)t=_r.fromMemorySync(r);else throw new Error(\"Unknown model format\");let e=new Ph(t);return e.load(),e}function B7(r){return r.endsWith(\"/\")||(r=r+\"/\"),`${r}${L7}${P7}`}var cR=\"4.0.0\";var AR={};Wt(AR,{CSVDataset:()=>Yf,Dataset:()=>Js,FileDataSource:()=>ed,TextLineDataset:()=>Xf,URLDataSource:()=>rd,array:()=>wR,csv:()=>NR,func:()=>TR,generator:()=>kR,microphone:()=>_R,version_data:()=>PN,webcam:()=>ER,zip:()=>CR});var bR=Tl(fh());var gR=Tl(fh());function pR(r,t){return Gb(r,t)}function Gb(r,t,e=new Map,n=new Set){if(r==null)return null;if(typeof Blob==\"function\"&&r instanceof Blob)return r.slice();if(n.has(r))throw new Error(\"Circular references are not supported.\");if(e.has(r))return e.get(r);let o=t(r);if(o.recurse&&o.value!==null)throw new Error(\"A deep map function may not return both a value and recurse=true.\");if(o.recurse)if(vu(r)){let s=Array.isArray(r)?[]:{};n.add(r);for(let i in r){let a=r[i],u=Gb(a,t,e,n);s[i]=u}return n.delete(r),r.__proto__&&(s.__proto__=r.__proto__),s}else throw new Error(`Can't recurse into non-iterable type: ${r}`);else return e.set(r,o.value),o.value}function mR(r,t=xN){return fR(r,t)}function fR(r,t,e=new Set){let n=r[0];if(e.has(n))throw new Error(\"Circular references are not supported.\");let o=t(r);if(o.recurse&&o.value!==null)throw new Error(\"A deep zip function may not return both a value and recurse=true.\");if(o.recurse)if(vu(n)){let s=Array.isArray(n)?[]:{};e.add(n);for(let i in n){let a=r.map(l=>l[i]),u=fR(a,t,e);s[i]=u}return e.delete(n),s}else throw new Error(`Can't recurse into non-iterable type: ${n}`);else return o.value}function xN(r){return r===null?null:vu(r[0])?{value:null,recurse:!0}:{value:r,recurse:!1}}async function Wb(r,t){let e=new Map;Gb(r,t,e);for(let o of Array.from(e.keys())){let s=e.get(o);if(y.isPromise(s)){let i=await s;e.set(o,i)}}return Gb(r,t,e)}function vu(r){let t=!1;if(z().get(\"IS_BROWSER\"))t=r instanceof TextDecoder;else{let{StringDecoder:e}=gN();t=r instanceof e}return r!=null&&!ArrayBuffer.isView(r)&&(Array.isArray(r)||typeof r==\"object\"&&!(r instanceof Ft)&&!(r instanceof Promise)&&!t)}function dR(r){return r==null||V7(r)||Array.isArray(r)||typeof r==\"object\"&&r instanceof Ft||y.isTypedArray(r)}function V7(r){return r===null||typeof r!=\"object\"&&typeof r!=\"function\"}function hR(r){return pR(r,G7)}function G7(r){return r instanceof Ft?{value:r.clone(),recurse:!1}:vu(r)?{value:null,recurse:!0}:{value:r,recurse:!1}}var jf=class{constructor(t){if(this.capacity=t,this.begin=0,this.end=0,t==null)throw new RangeError(\"Can't create a ring buffer of unknown capacity.\");if(t<1)throw new RangeError(\"Can't create ring buffer of capacity < 1.\");this.data=new Array(t),this.doubledCapacity=2*t}wrap(t){for(;t<0;)t+=this.doubledCapacity;return t%this.doubledCapacity}get(t){if(t<0)throw new RangeError(\"Can't get item at a negative index.\");return this.data[t%this.capacity]}set(t,e){if(t<0)throw new RangeError(\"Can't set item at a negative index.\");this.data[t%this.capacity]=e}length(){let t=this.end-this.begin;return t<0&&(t=this.doubledCapacity+t),t}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(t){if(this.isFull())throw new RangeError(\"Ring buffer is full.\");this.set(this.end,t),this.end=this.wrap(this.end+1)}pushAll(t){for(let e of t)this.push(e)}pop(){if(this.isEmpty())throw new RangeError(\"Ring buffer is empty.\");this.end=this.wrap(this.end-1);let t=this.get(this.end);return this.set(this.end,void 0),t}unshift(t){if(this.isFull())throw new RangeError(\"Ring buffer is full.\");this.begin=this.wrap(this.begin-1),this.set(this.begin,t)}shift(){if(this.isEmpty())throw new RangeError(\"Ring buffer is empty.\");let t=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),t}shuffleExcise(t){if(this.isEmpty())throw new RangeError(\"Ring buffer is empty.\");let e=this.wrap(this.begin+t),n=this.get(e);return this.set(e,this.pop()),n}};var Tc=class extends jf{constructor(){super(Tc.INITIAL_CAPACITY)}isFull(){return!1}push(t){super.isFull()&&this.expand(),super.push(t)}unshift(t){super.isFull()&&this.expand(),super.unshift(t)}expand(){let t=this.capacity*2,e=new Array(t),n=this.length();for(let o=0;oe===!0)}rowMajorBatch(t,e=!0){return new SN(this,t,e)}columnMajorBatch(t,e=!0,n=xN){return this.rowMajorBatch(t,e).map(s=>mR(s,n))}concatenate(t,e){return new Hb(AN([this,t]),e)}take(t){return t<0||t==null?this:new IN(this,t)}skip(t){return t<0||t==null?this:new CN(this,t)}prefetch(t){return new qb(this,t)}shuffle(t,e){return new _N(this,t,e)}serial(){return new wN(this)}},yN=class extends Je{constructor(t){super(),this.items=t,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let t=this.items[this.trav];return this.trav++,{value:hR(t),done:!1}}},bN=class extends Je{constructor(t){super(),this.nextFn=t}summary(){return\"Function call\"}async next(){try{return this.nextFn()}catch(t){throw t.message=`Error thrown while iterating through a dataset: ${t.message}`,t}}},wN=class extends Je{constructor(t){super(),this.upstream=t,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()}},CN=class extends Je{constructor(t,e){super(),this.upstream=t,this.maxCount=e,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()}},SN=class extends Je{constructor(t,e,n=!0){super(),this.upstream=t,this.batchSize=e,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(){let t=[];for(;t.length0?{value:t,done:!1}:{value:null,done:!0};t.push(e.value)}return{value:t,done:!1}}},vN=class extends Je{constructor(t,e){super(),this.upstream=t,this.predicate=e,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(;;){let t=await this.upstream.next();if(t.done||this.predicate(t.value))return t;vt(t.value)}}},NN=class extends Je{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> Map`}async next(){let t=await this.upstream.next();if(t.done)return{value:null,done:!0};let e=go.getTensorsInContainer(t.value),n=this.transform(t.value),o=go.getTensorsInContainer(n);for(let s of e)go.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},TN=class extends Je{constructor(t,e){super(),this.upstream=t,this.handler=e,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(t){if(!this.handler(t))return{value:null,done:!0}}}},Ub=class extends Je{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let t=await this.upstream.next();if(t.done)return{value:null,done:!0};let e=go.getTensorsInContainer(t.value),n=await this.transform(t.value),o=go.getTensorsInContainer(n);for(let s of e)go.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},kc=class extends Je{constructor(){super(),this.outputQueue=new Tc,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},kN=class extends kc{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let t=await this.upstream.next();if(t.done)return!1;let e=go.getTensorsInContainer(t.value),n=this.transform(t.value),o=go.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let s of e)go.isTensorInList(s,o)||s.dispose();return!0}},Hb=class extends Je{constructor(t,e){super(),this.baseErrorHandler=e,this.lastRead=null,this.iterator=null,this.moreIterators=t}summary(){return\"TODO: fill in upstream of chained summaries -> Chained\"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(t){if(await t,this.iterator==null){let n=await this.moreIterators.next();if(n.done)return{value:null,done:!0};this.iterator=n.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let e=await this.iterator.next();return e.done?(this.iterator=null,this.readFromChain(t)):e}},fl;(function(r){r[r.FAIL=0]=\"FAIL\",r[r.SHORTEST=1]=\"SHORTEST\",r[r.LONGEST=2]=\"LONGEST\"})(fl||(fl={}));var EN=class extends Je{constructor(t,e=fl.FAIL){super(),this.iterators=t,this.mismatchMode=e,this.count=0,this.currentPromise=null}summary(){return\"{TODO: fill in upstream of zip summaries} -> Zip\"}async nextState(t){await t;let e=0,n=0;function o(i){return i instanceof Je?{value:i.next().then(u=>(e++,u.done&&n++,u.value)),recurse:!1}:{value:null,recurse:!0}}let s=await Wb(this.iterators,o);if(e===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case fl.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case fl.SHORTEST:return{value:null,done:!0};case fl.LONGEST:default:}return this.count++,{value:s,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},qb=class extends Je{constructor(t,e){super(),this.upstream=t,this.bufferSize=e,this.buffer=new jf(e)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let t=this.upstream.next();this.buffer.push(t)}}next(){return this.refill(),this.buffer.shift()}},_N=class extends qb{constructor(t,e,n){super(t,e),this.upstream=t,this.windowSize=e,this.upstreamExhausted=!1,this.random=gR.alea(n||y.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(t){return Math.floor(this.random()*t)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let t=this.chooseIndex(),e=await this.buffer.shuffleExcise(t);if(e.done)this.upstreamExhausted=!0;else return this.refill(),e}return{value:null,done:!0}}};var Js=class{constructor(){this.size=null}batch(t,e=!0){let n=this;y.assert(t>0,()=>`batchSize needs to be positive, but it is\n ${t}`);let o;return this.size===1/0||this.size==null?o=this.size:e?o=Math.ceil(this.size/t):o=Math.floor(this.size/t),kn(async()=>(await n.iterator()).columnMajorBatch(t,e,W7),o)}concatenate(t){let e=this,n;return this.size===1/0||t.size===1/0?n=1/0:this.size!=null&&t.size!=null?n=this.size+t.size:n=null,kn(async()=>(await e.iterator()).concatenate(await t.iterator()),n)}filter(t){let e=this,n;return this.size===1/0?n=1/0:n=null,kn(async()=>(await e.iterator()).filter(o=>B(()=>t(o))),n)}async forEachAsync(t){return(await this.iterator()).forEachAsync(t)}map(t){let e=this;return kn(async()=>(await e.iterator()).map(n=>B(()=>t(n))),this.size)}mapAsync(t){let e=this;return kn(async()=>(await e.iterator()).mapAsync(t),this.size)}prefetch(t){if(t==null)throw new RangeError(\"`Dataset.prefetch()` requires bufferSize to be specified.\");let e=this;return kn(async()=>(await e.iterator()).prefetch(t),this.size)}repeat(t){let e=this,n;return this.size!=null&&t>0?n=this.size*t:t===0?n=0:this.size!=null&&(t===void 0||t<0)?n=1/0:n=null,kn(async()=>{let o=Lh(async()=>({value:await e.iterator(),done:!1}));return xR(o.take(t))},n)}skip(t){let e=this,n;return this.size!=null&&t>=0&&this.size>=t?n=this.size-t:this.size!=null&&(this.size(await e.iterator()).skip(t),n)}shuffle(t,e,n=!0){if(t==null||t<0)throw this.size==null?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)`);let o=this,s=bR.alea(e||y.now().toString());return kn(async()=>{let i=s.int32();return n&&(i+=s.int32()),(await o.iterator()).shuffle(t,i.toString())},this.size)}take(t){let e=this,n;return this.size!=null&&this.size>t?n=t:this.size!=null&&this.size<=t?n=this.size:n=null,kn(async()=>(await e.iterator()).take(t),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()}};Js.MAX_BUFFER_SIZE=1e4;function kn(r,t=null){return new class extends Js{constructor(){super(...arguments),this.size=t}async iterator(){return r()}}}function wR(r){return kn(async()=>AN(r),r.length)}function CR(r){if(!vu(r))throw new Error(\"The argument to zip() must be an object or array.\");let t;if(Array.isArray(r))for(let e=0;e{let e=await Wb(r,n=>{if(n instanceof Js)return{value:n.iterator(),recurse:!1};if(vu(n))return{value:null,recurse:!0};throw new Error(\"Leaves of the structure passed to zip() must be Datasets, not primitives.\")});return yR(e,fl.SHORTEST)},t)}function W7(r){if(r===null)return null;let t=r[0];return dR(t)?{value:U7(r),recurse:!1}:{value:null,recurse:!0}}function U7(r){if(r.length===0)throw new Error(\"Can't make a batch of zero elements.\");return r[0]instanceof Ft?nr(r):ur(r)}var Xf=class extends Js{constructor(t){super(),this.input=t}async iterator(){return(await this.input.iterator()).decodeUTF8().split(`\n`).map(o=>(o.endsWith(\"\\r\")&&(o=o.slice(0,-1)),o))}};var Kb='\"',Mh=Symbol(\"out\"),IR=Symbol(\"field\"),jb=Symbol(\"quote\"),$N=Symbol(\"quoteafterquote\"),SR=Symbol(\"quoteinquote\"),Yf=class extends Js{constructor(t,e){super(),this.input=t,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=\",\",this.delimWhitespace=!1,this.base=new Xf(t),e||(e={}),this.hasHeader=e.hasHeader!==!1,this.fullColumnNames=e.columnNames,this.columnConfigs=e.columnConfigs,this.configuredColumnsOnly=e.configuredColumnsOnly,e.delimWhitespace?(y.assert(e.delimiter==null,()=>\"Delimiter should not be provided when delimWhitespace is true.\"),this.delimWhitespace=!0,this.delimiter=\" \"):this.delimiter=e.delimiter?e.delimiter:\",\"}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let t=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!t)throw new Error(\"Column names must be provided if there is no header line.\");this.fullColumnNames&&t&&y.assert(t.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 (\"+t.length.toString()+\").\"),this.fullColumnNames||(this.fullColumnNames=t);let e=this.fullColumnNames.reduce((o,s)=>(o[s]=o[s]+1||1,o),{}),n=Object.keys(e).filter(o=>e[o]>1);if(y.assert(n.length===0,()=>\"Duplicate column names found: \"+n.toString()),this.columnConfigs){for(let o of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(o)===-1)throw new Error('The key \"'+o+'\" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+\").\")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let e=await(await this.base.iterator()).next();if(e.done)throw new Error(\"No data was found for CSV parsing.\");let n=e.value;return this.parseRow(n,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let t=await this.base.iterator();return this.hasHeader&&(t=t.skip(1)),t.map(e=>this.makeDataElement(e))}makeDataElement(t){let e=this.parseRow(t),n={},o={};for(let s=0;s14||!Number.isInteger(e))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=t.numFramesPerSpectrogram||43,this.sampleRateHz=t.sampleRateHz,this.columnTruncateLength=t.columnTruncateLength||this.fftSize,this.audioTrackConstraints=t.audioTrackConstraints,this.smoothingTimeConstant=t.smoothingTimeConstant||0,this.includeSpectrogram=t.includeSpectrogram!==!1,this.includeWaveform=t.includeWaveform===!0,!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(t={}){if(!z().get(\"IS_BROWSER\"))throw new Error(\"microphone API is only supported in browser environment.\");let e=new Zf(t);return await e.start(),e}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(n){throw new Error(`Error thrown while initializing video stream: ${n.message}`)}if(!this.stream)throw new Error(\"Could not obtain audio from microphone.\");let t=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new t,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let e=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,e.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 t,e,n=await this.getAudioData();if(this.includeSpectrogram){let o=this.flattenQueue(n.freqDataQueue);t=this.getTensorFromAudioDataArray(o,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let o=this.flattenQueue(n.timeDataQueue);e=this.getTensorFromAudioDataArray(o,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:t,waveform:e},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let t=[],e=[],n=0;return new Promise(o=>{let s=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&o({freqDataQueue:t,timeDataQueue:e}),t.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),e.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(s),o({freqDataQueue:t,timeDataQueue:e}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&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(t){let e=t[0].length,n=new Float32Array(t.length*e);return t.forEach((o,s)=>n.set(o,s*e)),n}getTensorFromAudioDataArray(t,e){let n=new Float32Array(y.sizeFromShape(e));return n.set(t,n.length-t.length),ur(n,e)}};var Jf=class extends Je{constructor(t,e){if(super(),this.webcamVideoElement=t,this.webcamConfig=e,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Me([0],\"int32\"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,o=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,s=(1-n)/2,i=(1-o)/2,a=s+n,u=o+i;this.cropBox=Vs([i,s,u,a],[1,4])}else this.cropBox=Vs([0,0,1,1],[1,4])}summary(){return\"webcam\"}static async create(t,e={}){if(!z().get(\"IS_BROWSER\"))throw new Error(\"tf.data.webcam is only supported in browser environment.\");if(!t){if(t=document.createElement(\"video\"),!e.resizeWidth||!e.resizeHeight)throw new Error(\"Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.\");t.width=e.resizeWidth,t.height=e.resizeHeight}let n=new Jf(t,e);return await n.start(),n}async start(){this.webcamConfig.facingMode&&y.assert(this.webcamConfig.facingMode===\"user\"||this.webcamConfig.facingMode===\"environment\",()=>`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(t){throw t.message=`Error thrown while initializing video stream: ${t.message}`,t}if(!this.stream)throw new Error(\"Could not obtain video from webcam.\");try{this.webcamVideoElement.srcObject=this.stream}catch(t){console.log(t),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(t=>{this.webcamVideoElement.onloadedmetadata=()=>{t()}})}async next(){if(this.isClosed)return{value:null,done:!0};let t;try{t=nx.fromPixels(this.webcamVideoElement)}catch(e){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(e)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(t),done:!1}}catch(e){throw new Error(`Error thrown cropping the video: ${e.message}`)}finally{t.dispose()}else return{value:t,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(t){return B(()=>{let e=rr(J(t,\"float32\"),0),n;n=Gs.cropAndResize(e,this.cropBox,this.cropBoxInd,this.cropSize,\"bilinear\");let o=n.shape;return R(n,o.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.\")}};var Qf=class{};var zh=class extends Je{split(t){return new DN(this,t)}},DN=class extends zh{constructor(t,e){super(),this.upstream=t,this.impl=new RN(t,e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},RN=class extends kc{constructor(t,e){super(),this.upstream=t,this.separator=e,this.carryover=\"\"}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let t=await this.upstream.next();if(t.done)return this.carryover===\"\"?!1:(this.outputQueue.push(this.carryover),this.carryover=\"\",!0);let e=t.value.split(this.separator);e[0]=this.carryover+e[0];for(let n of e.slice(0,-1))this.outputQueue.push(n);return this.carryover=e[e.length-1],!0}};var Xb=class extends Je{decodeUTF8(){return new FN(this)}},FN=class extends zh{constructor(t){super(),this.upstream=t,this.impl=new ON(t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},ON=class extends kc{constructor(t){if(super(),this.upstream=t,z().get(\"IS_BROWSER\"))this.decoder=new TextDecoder(\"utf-8\");else{let{StringDecoder:e}=gN();this.decoder=new e(\"utf8\")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let t=await this.upstream.next(),e;if(t.done)return!1;e=t.value;let n;return z().get(\"IS_BROWSER\")?n=this.decoder.decode(e,{stream:!0}):n=this.decoder.write(Buffer.from(e.buffer)),this.outputQueue.push(n),!0}};var td=class extends Xb{constructor(t,e={}){super(),this.file=t,this.options=e,y.assert(t instanceof Uint8Array||(z().get(\"IS_BROWSER\")?t instanceof File||t instanceof Blob:!1),()=>\"FileChunkIterator only supports File, Blob and Uint8Array right now.\"),this.offset=e.offset||0,this.chunkSize=e.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((e,n)=>{let o=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,o)));else{let s=new FileReader;s.onload=a=>{let u=s.result;if(u instanceof ArrayBuffer&&(u=new Uint8Array(u)),!(u instanceof Uint8Array))return n(new TypeError(\"FileReader returned unknown type.\"));e(u)},s.onabort=a=>n(new Error(\"Aborted\")),s.onerror=a=>n(new Error(a.type));let i=this.file.slice(this.offset,o);s.readAsArrayBuffer(i)}this.offset=o}),done:!1}}};async function vR(r,t={},e){let n,o;typeof r==\"string\"?n=r:(n=r.url,o=H7(r));let s=await(e||y.fetch)(n,o);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new td(i,t)}else throw new Error(s.statusText)}var H7=r=>({method:r.method,headers:r.headers,body:r.body,mode:r.mode,credentials:r.credentials,cache:r.cache,redirect:r.redirect,referrer:r.referrer,integrity:r.integrity});function Yb(r){return typeof r==\"string\"&&r.slice(0,7)===\"file://\"}var ed=class extends Qf{constructor(t,e={}){super(),this.input=t,this.options=e}async iterator(){if(Yb(this.input)&&z().get(\"IS_NODE\")){let t=Zb();this.input=t.readFileSync(this.input.slice(7))}return new td(this.input,this.options)}};var rd=class extends Qf{constructor(t,e={}){super(),this.url=t,this.fileOptions=e}async iterator(){return Yb(this.url)?new ed(this.url,this.fileOptions).iterator():vR(this.url,this.fileOptions)}};function NR(r,t={}){return new Yf(new rd(r),t)}function TR(r){let t=Lh(r);return kn(async()=>t)}function kR(r){return kn(async()=>{let t=await r();return Lh(()=>t.next())})}async function ER(r,t){return Jf.create(r,t)}async function _R(r){return Zf.create(r)}var PN=\"4.0.0\";function tt(r,t){Array.isArray(r)||(r=[r]),r.forEach(e=>{e!=null&&y.assert(e.dtype!==\"complex64\",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var q7=Ur.whereImpl,Nu=class extends zo{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new ra(this,Pn())}nextDataId(){return Nu.nextDataId++}write(t,e,n){this.firstUse&&(this.firstUse=!1,z().get(\"IS_NODE\")&&v.warn(`\n============================\nHi, looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, visit https://github.com/tensorflow/tfjs-node for more details. \n============================`));let o={id:this.nextDataId()};return this.data.set(o,{values:t,dtype:n,refCount:1}),o}makeTensorInfo(t,e,n){let o;if(e===\"string\"&&n!=null&&n.length>0&&y.isString(n[0])){let s=n.map(i=>y.encodeString(i));o=this.write(s,t,e)}else o=this.write(n,t,e);return{dataId:o,shape:t,dtype:e}}refCount(t){return this.data.has(t)?this.data.get(t).refCount:0}incRef(t){let e=this.data.get(t);e.refCount++}decRef(t){if(this.data.has(t)){let e=this.data.get(t);e.refCount--}}move(t,e,n,o,s){this.data.set(t,{values:e,dtype:o,refCount:s})}numDataIds(){return this.data.numDataIds()}async read(t){return this.readSync(t)}readSync(t){let{dtype:e,complexTensorInfos:n}=this.data.get(t);if(e===\"complex64\"){let o=this.readSync(n.real.dataId),s=this.readSync(n.imag.dataId);return v.mergeRealAndImagArrays(o,s)}return this.data.get(t).values}bufferSync(t){let e=this.readSync(t.dataId);if(t.dtype===\"string\")try{let n=e.map(o=>y.decodeString(o));return wt(t.shape,t.dtype,n)}catch(n){throw new Error(\"Failed to decode encoded string bytes into utf-8\")}return wt(t.shape,t.dtype,e)}makeOutput(t,e,n){return Pn().makeTensorFromTensorInfo(this.makeTensorInfo(e,n,t),this)}disposeData(t,e=!1){if(this.data.has(t)){if(this.data.get(t).refCount--,!e&&this.data.get(t).refCount>0)return!1;let{complexTensorInfos:n}=this.data.get(t);n!=null&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(t)}return!0}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}async time(t){let e=y.now();return t(),{kernelMs:y.now()-e}}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(t){tt([t],\"where\");let e=this.readSync(t.dataId);return q7(t.shape,e)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};Nu.nextDataId=0;var mw={};Wt(mw,{addImpl:()=>zN,bincountImpl:()=>sd,bincountReduceImpl:()=>Jb,castImpl:()=>MN,ceilImpl:()=>BN,concatImpl:()=>Ec,equalImpl:()=>VN,expImpl:()=>WN,expm1Impl:()=>HN,floorImpl:()=>qN,gatherNdImpl:()=>Qb,gatherV2Impl:()=>tw,greaterEqualImpl:()=>jN,greaterImpl:()=>KN,lessEqualImpl:()=>YN,lessImpl:()=>XN,linSpaceImpl:()=>ew,logImpl:()=>ZN,maxImpl:()=>rw,maximumImpl:()=>JN,minimumImpl:()=>QN,multiplyImpl:()=>Bh,negImpl:()=>tT,notEqualImpl:()=>eT,prodImpl:()=>rT,raggedGatherImpl:()=>nw,raggedRangeImpl:()=>ow,raggedTensorToTensorImpl:()=>sw,rangeImpl:()=>Ac,rsqrtImpl:()=>nT,scatterImpl:()=>dl,sigmoidImpl:()=>sF,simpleAbsImpl:()=>LN,sliceImpl:()=>$c,sparseFillEmptyRowsImpl:()=>iw,sparseReshapeImpl:()=>aw,sparseSegmentReductionImpl:()=>ld,sqrtImpl:()=>lF,squaredDifferenceImpl:()=>sT,stridedSliceImpl:()=>lw,stringNGramsImpl:()=>Dc,stringSplitImpl:()=>Rc,stringToHashBucketFastImpl:()=>Fc,subImpl:()=>aT,tileImpl:()=>uw,topKImpl:()=>cw,transposeImpl:()=>id,uniqueImpl:()=>pw});function LN(r){let t=new Float32Array(r.length);for(let e=0;e{let{x:t}=r.inputs,e=r.backend;tt(t,\"abs\");let n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId).values;return n=LN(o),e.makeOutput(n,t.shape,t.dtype)},$R={kernelName:ii,backendName:\"cpu\",kernelFunc:K7};function Qt(r){return(t,e,n,o,s)=>{let i=v.assertAndGetBroadcastShape(t,e),a=i.length,u=y.computeStrides(i),l=y.sizeFromShape(i),c=y.getTypedArrayFromDType(s,l),p=t.length,m=e.length,f=y.computeStrides(t),d=y.computeStrides(e),h=v.getBroadcastDims(t,i),g=v.getBroadcastDims(e,i);if(h.length+g.length===0)for(let x=0;xw[A]=0);let C=y.locToIndex(w,p,f),N=b.slice(-m);g.forEach(A=>N[A]=0);let _=y.locToIndex(N,m,d);c[x]=r(n[C],o[_])}return[c,i]}}function wr(r){let{inputs:t,backend:e}=r,{real:n,imag:o}=t,s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,a=e.makeTensorInfo(n.shape,\"complex64\"),u=e.data.get(a.dataId);return u.complexTensorInfos={real:e.makeTensorInfo(n.shape,\"float32\",s),imag:e.makeTensorInfo(o.shape,\"float32\",i)},a}var DR={kernelName:pp,backendName:\"cpu\",kernelFunc:wr};function nd(r,t,e=\"float32\"){if(e===\"complex64\"){let o=nd(r,t,\"float32\"),s=nd(r,t,\"float32\");return wr({inputs:{real:o,imag:s},backend:r})}let n=y.makeZerosTypedArray(y.sizeFromShape(t),e);return r.makeTensorInfo(t,e,n)}function Kr(r){let{inputs:t,backend:e}=r,{x:n}=t;return e.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}var RR={kernelName:co,backendName:\"cpu\",kernelFunc:Kr};function Ao(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.data.get(n.dataId).complexTensorInfos.real,s=e.data.get(o.dataId).values;return e.makeTensorInfo(o.shape,o.dtype,s)}var FR={kernelName:Rp,backendName:\"cpu\",kernelFunc:Ao};function MN(r,t,e,n){if(n===\"int32\"){let o=Int32Array.from(r);return[t,\"int32\",o]}if(n===\"bool\"){let o=y.toTypedArray([0],e),[s,i]=Qt((a,u)=>a!==u?1:0)(t,[],r,o,\"bool\");return[i,\"bool\",s]}throw new Error(`Error in Cast: failed to cast ${e} to ${n}`)}function $o(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s===\"complex64\"){if(o.dtype===\"complex64\")return Kr({inputs:{x:o},backend:e});let c=nd(e,o.shape,o.dtype),p=$o({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}}),m=wr({inputs:{real:p,imag:c},backend:e});return e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),m}if(o.dtype===\"complex64\"){let c=Ao({inputs:{input:o},backend:e}),p=$o({inputs:{x:c},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(c),p}if(!y.hasEncodingLoss(o.dtype,s)){let c=Kr({inputs:{x:o},backend:e});return{dataId:c.dataId,shape:c.shape,dtype:s}}let i=e.data.get(o.dataId).values,[a,u,l]=MN(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}var OR={kernelName:lo,backendName:\"cpu\",kernelFunc:$o};function oe(r,t,e,n){return e==null?({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;tt([i,a],r);let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=i.dtype===\"string\"?v.fromUint8ToStringArray(l):l,m=i.dtype===\"string\"?v.fromUint8ToStringArray(c):c,f=n||i.dtype,[d,h]=t(i.shape,a.shape,p,m,f);return u.makeTensorInfo(h,f,d)}:({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;if(i.dtype===\"complex64\"||a.dtype===\"complex64\"){let l=$o({inputs:{x:i},backend:u,attrs:{dtype:\"complex64\"}}),c=u.data.get(l.dataId),p=c.complexTensorInfos.real,m=c.complexTensorInfos.imag,f=u.data.get(p.dataId).values,d=u.data.get(m.dataId).values,h=$o({inputs:{x:a},backend:u,attrs:{dtype:\"complex64\"}}),g=u.data.get(h.dataId),x=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,w=u.data.get(x.dataId).values,C=u.data.get(b.dataId).values,[N,_,A]=e(i.shape,a.shape,f,d,w,C),$=u.makeTensorInfo(A,\"float32\",N),F=u.makeTensorInfo(A,\"float32\",_),P=wr({inputs:{real:$,imag:F},backend:u});return u.disposeIntermediateTensorInfo(l),u.disposeIntermediateTensorInfo(h),u.disposeIntermediateTensorInfo($),u.disposeIntermediateTensorInfo(F),P}else{let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=n||i.dtype,[m,f]=t(i.shape,a.shape,l,c,p);return u.makeTensorInfo(f,p,m)}}}function od(r){return(t,e,n,o,s,i)=>{let a=v.assertAndGetBroadcastShape(t,e),u=y.sizeFromShape(a),l=a.length,c=y.computeStrides(a),p=y.getTypedArrayFromDType(\"float32\",u),m=y.getTypedArrayFromDType(\"float32\",u),f=v.getBroadcastDims(t,a),d=v.getBroadcastDims(e,a),h=v.mergeRealAndImagArrays(n,o),g=v.mergeRealAndImagArrays(s,i),x=t.length,b=y.computeStrides(t),w=e.length,C=y.computeStrides(e);if(f.length+d.length===0)for(let N=0;NA[G]=0);let $=y.locToIndex(A,x,b),F=_.slice(-w);d.forEach(G=>F[G]=0);let P=y.locToIndex(F,w,C),V=r(h[$*2],h[$*2+1],g[P*2],g[P*2+1]);p[N]=V.real,m[N]=V.imag}return[p,m,a]}}var zN=Qt((r,t)=>r+t),j7=od((r,t,e,n)=>({real:r+e,imag:t+n})),Ki=oe(Zn,zN,j7),PR={kernelName:Zn,backendName:\"cpu\",kernelFunc:Ki};function sd(r,t,e,n,o){let s=y.sizeFromShape(n),i=y.makeZerosTypedArray(o,e);for(let a=0;a=o||(s>0?i[u]+=t[a]:i[u]+=1)}return i}function Jb(r,t,e,n=!1){let o=r.shape[0],s=r.shape[1],i=wt([o,e],t.dtype);for(let a=0;a=e||(n?i.set(1,a,l):t.size>0?i.set(i.get(a,l)+t.get(a,u),a,l):i.set(i.get(a,l)+1,a,l))}return i}function yn(r){return(t,e,n)=>{let o=y.getTypedArrayFromDType(e,t.length);for(let s=0;s{let{x:i}=n;if(tt(i,r),i.dtype===\"string\"||e===\"string\")throw new Error(\"unaryKernelFunc does not support string input/output\");let a=s,u=a.data.get(i.dataId).values,l=y.sizeFromShape(i.shape),c=e||i.dtype,p=y.getArrayFromDType(c,l);for(let m=0;m{let{x:i}=n;if(tt(i,r),i.dtype===\"string\"||e===\"string\")throw new Error(\"unaryKernelFunc does not support string input/output\");let a=s,u=a.data.get(i.dataId).values,l=e||i.dtype,c=t(u,l,o);return a.makeTensorInfo(i.shape,l,c)}}var BN=yn(r=>Math.ceil(r)),X7=Do(qo,BN),LR={kernelName:qo,backendName:\"cpu\",kernelFunc:X7};function Ec(r,t,e,n){let o=y.getArrayFromDType(e,y.sizeFromShape(t));if(n&&e!==\"string\"){let s=0;r.forEach(i=>{let a=y.sizeFromShape(i.shape);o.set(i.vals,s),s+=a})}else{let s=0;r.forEach(i=>{let a=e===\"string\"?v.fromUint8ToStringArray(i.vals):i.vals,u=0;for(let l=0;lr===t?1:0),GN=oe(xa,VN,null,\"bool\"),MR={kernelName:xa,backendName:\"cpu\",kernelFunc:GN};var WN=yn(r=>Math.exp(r)),UN=Do(es,WN,\"float32\"),zR={kernelName:es,backendName:\"cpu\",kernelFunc:UN};var HN=yn(r=>Math.expm1(r)),Y7=Do(ya,HN),BR={kernelName:ya,backendName:\"cpu\",kernelFunc:Y7};var qN=yn(r=>Math.floor(r)),Z7=Do(rs,qN),VR={kernelName:rs,backendName:\"cpu\",kernelFunc:Z7};function Qb(r,t,e,n,o,s,i,a,u){let l=wt([n,s],e);for(let c=0;c=u/s)throw new Error(`Invalid indices: ${p} does not index into ${a}`);for(let f=0;fr>t?1:0),J7=oe(Ca,KN,null,\"bool\"),GR={kernelName:Ca,backendName:\"cpu\",kernelFunc:J7};var jN=Qt((r,t)=>r>=t?1:0),Q7=oe(ss,jN,null,\"bool\"),WR={kernelName:ss,backendName:\"cpu\",kernelFunc:Q7};var XN=Qt((r,t)=>rr<=t?1:0),eJ=oe(Ta,YN,null,\"bool\"),HR={kernelName:Ta,backendName:\"cpu\",kernelFunc:eJ};function ew(r,t,e){let n=(t-r)/(e-1),o=y.makeZerosTypedArray(e,\"float32\");o[0]=r;for(let s=1;sMath.log(r)),rJ=Do(as,ZN),qR={kernelName:as,backendName:\"cpu\",kernelFunc:rJ};function rw(r,t,e,n){let o=y.getTypedArrayFromDType(n,y.sizeFromShape(e));for(let s=0;sa)&&(a=l)}o[s]=a}return o}var JN=Qt((r,t)=>Math.max(r,t)),nJ=oe(us,JN),KR={kernelName:us,backendName:\"cpu\",kernelFunc:nJ};var QN=Qt((r,t)=>Math.min(r,t)),oJ=oe(fs,QN),jR={kernelName:fs,backendName:\"cpu\",kernelFunc:oJ};var Bh=Qt((r,t)=>r*t),sJ=od((r,t,e,n)=>({real:r*e-t*n,imag:r*n+t*e})),_c=oe(hs,Bh,sJ),XR={kernelName:hs,backendName:\"cpu\",kernelFunc:_c};function tT(r,t,e){let n=y.createScalarValue(-1,e);return Bh([],t,n,r,e)}function iJ(r){let{inputs:t,backend:e}=r,{x:n}=t;tt(n,\"neg\");let o=e.data.get(n.dataId).values,[s,i]=tT(o,n.shape,n.dtype);return e.makeTensorInfo(i,n.dtype,s)}var YR={kernelName:pi,backendName:\"cpu\",kernelFunc:iJ};var eT=Qt((r,t)=>r!==t?1:0),aJ=oe(Da,eT,null,\"bool\"),ZR={kernelName:Da,backendName:\"cpu\",kernelFunc:aJ};function id(r,t,e,n,o){let s=t.length,i=y.sizeFromShape(t),a=y.computeStrides(t),u=y.computeStrides(o),l=y.getTypedArrayFromDType(e,y.sizeFromShape(o));for(let c=0;ce.disposeIntermediateTensorInfo(b)),e.makeTensorInfo(x,g,d)}var QR={kernelName:ws,backendName:\"cpu\",kernelFunc:lJ};function uJ(r,t,e){r.forEach((n,o)=>{if(n<0||n>=e){let s=y.indexToLoc(o,t.length,y.computeStrides(t)).join(\",\");throw new Error(`indices[${s}] = ${n} is not in [0, ${e})`)}})}function cJ(r,t){for(let e=0;eo)throw new Error(\"Ragged splits must not point past values\");for(let s=1;sn[s])throw new Error(\"Ragged splits must be sorted in ascending order\")}}function pJ(r,t,e,n){let o=[],s=0,i=t.length-1+e.length,a=new Array(i).fill(null).map(()=>[0]);cJ(e,n);let u=1;for(let l=0;l=0){let h=a[d],g=h[h.length-1]-f[c];for(let x=c;xo[i]=s)}return t}function tF(r,t){let e=r.slice(0,t);for(;e.length1)throw new Error(\"starts must be a scalar or vector\");if(o.length>1)throw new Error(\"limits must be a scalar or vector\");if(i.length>1)throw new Error(\"deltas must be a scalar or vector\");let a=t.length===0,u=o.length===0,l=i.length===0,c=[];a||c.push(t[0]),u||c.push(o[0]),l||c.push(i[0]);for(let g=1;g0&&bx)C=0;else if(C=Math.ceil(Math.abs((b-x)/w)),C>eF)throw new Error(`Requires ((limit - start) / delta) <= ${eF}`);m[g+1]=m[g]+C}let f=m[p],d=y.getArrayFromDType(e,f),h=0;for(let g=0;gn&&(n=s)}return n}static getMaxWidthValueRowID(t){let e=t.length;if(e===0)return 0;let n=0,o=t[0],s=0;for(let i=1;i\"Final length of result must be equal to firstDimension.\"),s}calculateOutputIndexRowSplit(t,e,n,o){let s=t.length,i=[];for(let a=0;a0&&i.length!==t[s-1])throw new Error(\"Invalid row split size.\");return i}calculateOutputIndexValueRowID(t,e,n,o){let s=t.length,i=[];if(s===0)return[];let a=0,u=t[0];if(u>=e.length)throw new Error(`Got currentValueRowId=${u}, which is not less than ${e.length}`);let l=e[u];i.push(l);for(let c=1;c=0&&(++a,a=e.length)throw new Error(`Got nextValueRowId=${p} which is not less than ${e.length}`);l=e[p]}i.push(l)}if(i.length!==t.length)throw new Error(\"Invalid row ids.\");return i}calculateOutputIndex(t,e,n,o){let s=this.getRowPartitionTensor(t),i=this.getRowPartitionTypeByDimension(t);switch(i){case Ro.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,e,n,o);case Ro.ROW_SPLITS:if(s.length-1>e.length)throw new Error(`Row partition size is greater than output size: ${s.length-1} > ${e.length}`);return this.calculateOutputIndexRowSplit(s,e,n,o);default:throw new Error(`Unsupported partition type: ${Ro[i]}`)}}getFirstDimensionSize(){let t=this.rowPartitionValues[0];if(this.rowPartitionTypes.length===0)throw new Error(\"No row_partition_types given.\");let e=this.rowPartitionTypes[0];switch(e){case Ro.FIRST_DIM_SIZE:return t[0];case Ro.VALUE_ROWIDS:throw new Error(\"Cannot handle VALUE_ROWIDS in first dimension.\");case Ro.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Ro[e]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error(\"Invalid first partition input. Tensor requires at least one element.\");let e=this.getFirstDimensionSize(),n=this.calculateOutputSize(e),o=new Array(this.raggedRank+1);o[o.length-1]=1;for(let u=o.length-2;u>=0;--u)o[u]=o[u+1]*n[u+1];let s=nF(n,!1),i=y.getArrayFromDType(this.valuesDType,y.sizeFromShape(s));if(o[0]*n[0]>0){let u=this.calculateFirstParentOutputIndex(e,o[0],n[0]);for(let l=1;l<=this.raggedRank;++l)u=this.calculateOutputIndex(l-1,u,o[l],n[l]);this.setOutput(this.raggedRank,u,i,s)}return[s,i]}setOutput(t,e,n,o){if(n.length===0)return;let s=this.values,i=n,a=o.slice();a=a.slice(t+1);let u=y.sizeFromShape(a),l=e.length,c=this.defaultValue;if(c.length!==u&&c.length!==1){let d=this.defaultValueShape;B(()=>{let h=R(c,d);c=Ri(h,a).dataSync()})}let p=0,m=0,f=0;for(let d=0;d<=l;++d){let h=d=l){let g=n.length;h=Math.floor(g/u)}if(h>f)if(this.defaultValue.length===1)i.subarray(f*u,h*u).fill(this.defaultValue[0]),f=h;else for(;h>f;){let g=i.slice(f*u);rF(g,c,u),++f}h<0?(p=d+1,m=f):(p=d,m=f,f=m+1)}}};function rF(r,t,e){for(let n=0;n= 0`);if(n<-1)throw new Error(`Dimension ${n} must be >= -1`);n=-1}e.push(n)}return e}function sw(r,t,e,n,o,s,i,a,u,l){return new ad(r,t,e,n,o,s,i,a,u,l).compute()}function Ac(r,t,e,n){let o=r===t,s=r1;if(o||s||i)return y.makeZerosTypedArray(0,n);let a=Math.abs(Math.ceil((t-r)/e)),u=y.makeZerosTypedArray(a,n);t1/Math.sqrt(r)),hJ=Do(ks,nT),oF={kernelName:ks,backendName:\"cpu\",kernelFunc:hJ};function dl(r,t,e,n,o,s,i,a,u,l){let c=[n/o,o],p=r.values,m=t.values;if(n===0)return wt(e,t.dtype);let f=wt(c,t.dtype);typeof u==\"string\"||typeof u==\"number\"?f.values.fill(u):typeof u==\"boolean\"&&f.values.fill(+u);for(let d=0;d=n/o)throw new Error(`Invalid indices: ${h} does not index into ${e}`);for(let x=0;x1/(1+Math.exp(-r))),oT=Et(_s,r=>1/(1+Math.exp(-r))),iF={kernelName:_s,backendName:\"cpu\",kernelFunc:oT};function $c(r,t,e,n,o){let s=Le.isSliceContinous(n,t,e),i=y.sizeFromShape(e),a=y.computeStrides(n);if(s){let p=Le.computeFlatOffset(t,a);return o===\"string\"?r.slice(p,p+i):r.subarray(p,p+i)}let u=o===\"string\"?v.fromUint8ToStringArray(r):r,l=wt(n,o,u),c=wt(e,o);for(let p=0;pd+t[h]);c.set(l.get(...f),...m)}return o===\"string\"?v.fromStringArrayToUint8(c.values):c.values}function Fo(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n;tt(o,\"slice\");let[a,u]=Le.parseSliceParams(o,s,i);Le.assertParamsValid(o,a,u);let l=e.data.get(o.dataId).values,c=$c(l,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,c)}var aF={kernelName:gi,backendName:\"cpu\",kernelFunc:Fo};function iw(r,t,e,n,o,s,i){let a=t[0],u=s[0],l=new Array(u),c=new Array(a),p=t[1];if(u===0){if(a!==0)throw new Error(v.getSparseFillEmptyRowsIndicesDenseShapeMismatch(a));let g=y.getArrayFromDType(e,0),x=y.getArrayFromDType(o,0);return[g,[0,p],x,l,c]}let m=!0,f=0,d=new Array(u).fill(0);for(let g=0;g=u)throw new Error(v.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,x,u));++d[x],m=m&&x>=f,f=x}let h=!0;for(let g=0;g0&&(d[g]+=d[g-1])}if(h&&m){let g=r,x=n;for(let b=0;b0){f[m-1]=1;for(let g=m-2;g>=0;--g)f[g]=f[g+1]*n[g+1]}let d=[];if(a>0){d[a-1]=1;for(let g=a-2;g>=0;--g)d[g]=d[g+1]*u[g+1]}let h=y.getArrayFromDType(e,i*a);for(let g=0;g0?o[a-1]+1:0;if(p<0)throw new Error(v.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=t.slice();m[0]=p;let f=m.reduce((w,C)=>w*C,1),d=y.getArrayFromDType(e,f);if(a===0)return p>0&&d.fill(i),[d,m];if(p<=0)throw new Error(v.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let h=0,g=1,x=0,b=o[h];for(;;){let w=0;if(g=w)throw new Error(v.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(v.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>x&&d.fill(i,x*l,b*l);for(let C=h;C=u[0])throw new Error(v.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(C,n[C],u[0]));for(let _=0;_a)break}return xMath.sqrt(r)),gJ=Et(As,r=>Math.sqrt(r)),uF={kernelName:As,backendName:\"cpu\",kernelFunc:gJ};var sT=Qt((r,t)=>{let e=r-t;return e*e}),xJ=oe(Rs,sT),cF={kernelName:Rs,backendName:\"cpu\",kernelFunc:xJ};function lw(r,t,e,n){let o=wt(r,t.dtype);for(let s=0;s0?0:a-u),f=0;f+=l*this.leftPad.length;for(let b=0;bb.forEach(w=>h[g++]=w);for(let b=0;b0){x(t[m+p-1]);for(let b=0;b0){let u=e[0];if(u!==0)throw new Error(`First split value must be 0, got ${u}`);for(let l=1;l=u;if(c=c&&e[l]<=n,!c)throw new Error(`Invalid split value ${e[l]}, must be in [${u}, ${n}]`);u=e[l]}if(u!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${u}`)}let s=o-1,i=y.getArrayFromDType(\"int32\",o);if(n===0||o===0){let u=new Array(n);for(let l=0;l<=s;++l)i[l]=0;return[u,i]}i[0]=0;for(let u=1;u<=s;++u){let l=e[u]-e[u-1],c=0;this.nGramWidths.forEach(p=>{c+=this.getNumNGrams(l,p)}),this.preserveShort&&l>0&&c===0&&(c=1),i[u]=i[u-1]+c}let a=new Array(i[s]);for(let u=0;u{let m=e[u+1]-e[u],f=this.getNumNGrams(m,p);this.createNGrams(t,l,a,c,f,p),c+=f}),this.preserveShort&&c===i[u]){let p=e[u+1]-e[u];if(p===0)continue;let m=p+2*this.padWidth,f=1;this.createNGrams(t,l,a,c,f,m)}}return[a,i]}};function Dc(r,t,e,n,o,s,i,a){return new iT(e,n,o,s,i,a).compute(r,t)}function yJ(r,t,e,n){if(!r.length)return;if(t.length===0){for(let s=0;sr-t),bJ=od((r,t,e,n)=>({real:r-e,imag:t-n})),Vh=oe(Fs,aT,bJ),pF={kernelName:Fs,backendName:\"cpu\",kernelFunc:Vh};function uw(r,t){let e=new Array(r.rank);for(let o=0;o{let e=t.value-r.value;return e===0?r.index-t.index:e};function mF(r,t,e=0,n=r.length-1){for(;n>e;){if(n-e>600){let a=n-e+1,u=t-e+1,l=Math.log(a),c=.5*Math.exp(2*l/3),p=.5*Math.sqrt(l*c*(a-c)/a)*Math.sign(u-a/2),m=Math.max(e,Math.floor(t-u*c/a+p)),f=Math.min(n,Math.floor(t+(a-u)*c/a+p));mF(r,t,m,f)}let o=r[t],s=e,i=n;for(y.swap(r,e,t),Gh(r[n],o)>0&&y.swap(r,e,n);s0;)i=i-1}Gh(r[e],o)===0?y.swap(r,e,i):(i=i+1,y.swap(r,i,n)),i<=t&&(e=i+1),t<=i&&(n=i-1)}}function cw(r,t,e,n,o){let s=t[t.length-1],[i,a]=[r.length/s,s],u=y.getTypedArrayFromDType(e,i*n),l=y.getTypedArrayFromDType(\"int32\",i*n);for(let p=0;pd[w]={value:b,index:w}),n{for(let g=0;gnew Nu,1);var lT=Et(ts,r=>r>=0?r:Math.exp(r)-1),fF={kernelName:ts,backendName:\"cpu\",kernelFunc:lT};function uT(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n;tt([o],\"leakyRelu\");let i=y.sizeFromShape(o.shape),a=e.data.get(o.dataId).values,u=y.getTypedArrayFromDType(\"float32\",i);for(let l=0;lr<0?t*r:r);function cT(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t;tt([n,o],\"prelu\");let s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,[a,u]=CJ(n.shape,o.shape,s,i,\"float32\");return e.makeTensorInfo(u,\"float32\",a)}var hF={kernelName:bs,backendName:\"cpu\",kernelFunc:cT};var pT=Et(Cs,r=>Math.max(0,r)),gF={kernelName:Cs,backendName:\"cpu\",kernelFunc:pT};var mT=Et(vs,r=>Math.min(Math.max(0,r),6)),xF={kernelName:vs,backendName:\"cpu\",kernelFunc:mT};function Oc(r,t,e,n,o){if(e===\"linear\")return Kr({inputs:{x:t},backend:r});if(e===\"relu\")return pT({inputs:{x:t},backend:r});if(e===\"elu\")return lT({inputs:{x:t},backend:r});if(e===\"relu6\")return mT({inputs:{x:t},backend:r});if(e===\"prelu\")return cT({inputs:{x:t,alpha:n},backend:r});if(e===\"leakyrelu\")return uT({inputs:{x:t},backend:r,attrs:{alpha:o}});if(e===\"sigmoid\")return oT({inputs:{x:t},backend:r});throw new Error(`Activation ${e} has not been implemented for the CPU backend.`)}function Yt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{shape:s}=n,i=y.sizeFromShape(o.shape),a=y.inferFromImplicitShape(s,i),u=y.sizeFromShape(a);y.assert(i===u,()=>`The new shape (${a}) has ${u} elements and the old shape (${o.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),e.incRef(o.dataId);let l=e.data.get(o.dataId);if(l.complexTensorInfos!=null){let c=l.complexTensorInfos.real,p=l.complexTensorInfos.imag;c.shape=a,p.shape=a}return{dataId:o.dataId,shape:a,dtype:o.dtype}}var yF={kernelName:di,backendName:\"cpu\",kernelFunc:Yt};function fT(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;tt([o,s],\"matMul\");let u=o.shape.length,l=s.shape.length,c=i?o.shape[u-2]:o.shape[u-1],p=a?s.shape[l-1]:s.shape[l-2],m=i?o.shape[u-1]:o.shape[u-2],f=a?s.shape[l-2]:s.shape[l-1],d=o.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=Vr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)).concat([m,f]);y.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${o.shape} and ${s.shape} and transposeA=${i} and transposeB=${a} must match.`);let C=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],_=Yt({inputs:{x:o},backend:e,attrs:{shape:C}}),A=Yt({inputs:{x:s},backend:e,attrs:{shape:N}}),$=i?_.shape[1]:_.shape[2],F=i?_.shape[2]:_.shape[1],P=a?A.shape[1]:A.shape[2],V=Math.max(g,x),G=e.data.get(_.dataId).values,W=e.data.get(A.dataId).values,q=y.computeStrides(_.shape),H=y.computeStrides(A.shape),[j,Y,Z]=i?[q[0],1,q[1]]:[q[0],q[1],1],[et,rt,ot]=a?[1,H[1],H[0]]:[H[1],1,H[0]],at=F*P,nt=wt([V,F,P],_.dtype),st=nt.values,dt=e.blockSize;for(let ht=0;htMath.acos(r)),CF={kernelName:oa,backendName:\"cpu\",kernelFunc:SJ};var vJ=Et(sa,r=>Math.acosh(r)),IF={kernelName:sa,backendName:\"cpu\",kernelFunc:vJ};function NJ(r){let{inputs:t,backend:e}=r,n=t;tt(t,\"addN\");let o=n.map(a=>e.data.get(a.dataId).values),s=wt(n[0].shape,n[0].dtype),i=s.values;for(let a=0;ab&&(b=N,w=C)}f[g]=w}return l.forEach(g=>e.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,\"int32\",f)}var TF={kernelName:Wo,backendName:\"cpu\",kernelFunc:EJ};function _J(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n;tt(o,\"argMin\");let i=y.parseAxisParam(s,o.shape),a=v.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Ve({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=v.getInnerMostAxes(i.length,u.shape.length)),i=[i[0]],v.assertAxesAreInnerMostDims(\"argMin\",i,u.shape.length);let[c,p]=v.computeOutAndReduceShapes(u.shape,i),m=y.sizeFromShape(c),f=y.makeZerosTypedArray(m,\"int32\"),d=y.sizeFromShape(p),h=e.data.get(u.dataId).values;for(let g=0;ge.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,\"int32\",f)}var kF={kernelName:kl,backendName:\"cpu\",kernelFunc:_J};var AJ=Et(la,r=>Math.asin(r)),EF={kernelName:la,backendName:\"cpu\",kernelFunc:AJ};var $J=Et(ua,r=>Math.asinh(r)),_F={kernelName:ua,backendName:\"cpu\",kernelFunc:$J};var DJ=Et(ca,r=>Math.atan(r)),AF={kernelName:ca,backendName:\"cpu\",kernelFunc:DJ};var RJ=Qt((r,t)=>Math.atan2(r,t)),FJ=oe(ma,RJ),$F={kernelName:ma,backendName:\"cpu\",kernelFunc:FJ};var OJ=Et(pa,r=>Math.atanh(r)),DF={kernelName:pa,backendName:\"cpu\",kernelFunc:OJ};function ud(r,t,e,n,o,s){let i=o.strideHeight,a=o.strideWidth,u=o.dilationHeight,l=o.dilationWidth,c=o.effectiveFilterHeight,p=o.effectiveFilterWidth,m=o.padInfo.top,f=o.padInfo.left,d=s===\"max\"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,h=wt(o.outShape,e),g=h.values,x=o.outShape[1]*o.outShape[2]*o.outShape[3],b=o.outShape[2]*o.outShape[3],w=o.outShape[3];for(let C=0;CY?Y=dt:s===\"avg\"&&(Z+=dt,et++)}if(isNaN(Y))break}let rt=G+W*w+A;g[rt]=s===\"avg\"?Z/et:Y}}}return h}function fw(r,t,e,n,o=!1,s=!1){let i=wt(n.outShape,\"int32\"),a=n.strideHeight,u=n.strideWidth,l=n.dilationHeight,c=n.dilationWidth,p=n.effectiveFilterHeight,m=n.effectiveFilterWidth,f=n.padInfo.top,d=n.padInfo.left,h=wt(t,e,r);for(let g=0;gP&&(P=j,o?V=s?((g*n.inHeight+G)*n.inWidth+q)*n.inChannels+x:(G*n.inWidth+q)*n.inChannels+x:V=W*m+H)}}i.set(V,g,b,_,x)}}return i}function dw(r,t,e,n,o,s){let i=o.strideDepth,a=o.strideHeight,u=o.strideWidth,l=o.dilationDepth,c=o.dilationHeight,p=o.dilationWidth,m=o.effectiveFilterDepth,f=o.effectiveFilterHeight,d=o.effectiveFilterWidth,h=o.padInfo.front,g=o.padInfo.top,x=o.padInfo.left,b=s===\"max\"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,w=wt(o.outShape,e),C=w.values,N=o.outShape[1]*o.outShape[2]*o.outShape[3]*o.outShape[4],_=o.outShape[2]*o.outShape[3]*o.outShape[4],A=o.outShape[3]*o.outShape[4],$=o.outShape[4];for(let F=0;Fkt?kt=We:s===\"avg\"&&(_t+=We,Vt++),isNaN(kt))break}if(isNaN(kt))break}if(isNaN(kt))break}let Zt=bt+G;C[Zt]=s===\"avg\"?_t/Vt:kt}}}}return w}function RF(r,t){let e=wt(t.outShape,\"int32\"),n=t.strideDepth,o=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,a=t.dilationHeight,u=t.dilationWidth,l=t.effectiveFilterDepth,c=t.effectiveFilterHeight,p=t.effectiveFilterWidth,m=t.padInfo.front,f=t.padInfo.top,d=t.padInfo.left;for(let h=0;h=W&&(W=ot,q=j*c*p+Z*c+rt)}}}e.set(q,h,x,N,F,g)}}}return e}function PJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;tt(o,\"avgPool\");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(v.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=v.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Kr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=ud(m,o.shape,o.dtype,f,c,\"avg\");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var FF={kernelName:Uo,backendName:\"cpu\",kernelFunc:PJ};function LJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;tt(o,\"avgPool3d\");let c=v.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=dw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,\"avg\");return e.makeTensorInfo(m.shape,\"float32\",m.values)}var OF={kernelName:El,backendName:\"cpu\",kernelFunc:LJ};function MJ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;tt([o,s],\"avgPool3DGrad\");let c=v.computePool3DInfo(s.shape,i,a,1,u,l),p=c.strideDepth,m=c.strideHeight,f=c.strideWidth,d=c.filterDepth,h=c.filterHeight,g=c.filterWidth,x=c.dilationDepth,b=c.dilationHeight,w=c.dilationWidth,C=c.effectiveFilterDepth,N=c.effectiveFilterHeight,_=c.effectiveFilterWidth,A=C-1-c.padInfo.front,$=_-1-c.padInfo.left,F=N-1-c.padInfo.top,P=wt(s.shape,\"float32\"),V=1/(d*h*g),G=e.bufferSync(o);for(let W=0;W=c.outDepth||Math.floor(nt)!==nt))for(let st=0;st=c.outHeight||Math.floor(dt)!==dt))for(let ht=0;ht<_;ht+=w){let bt=(rt+ht)/f;if(bt<0||bt>=c.outWidth||Math.floor(bt)!==bt)continue;let kt=G.get(W,nt,dt,bt,q);ot+=kt}}}P.set(ot*V,W,H,j,Y,q)}return e.makeTensorInfo(P.shape,P.dtype,P.values)}var PF={kernelName:lp,backendName:\"cpu\",kernelFunc:MJ};function zJ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;tt([o,s],\"avgPoolGrad\");let{filterSize:a,strides:u,pad:l}=n,c=v.computePool2DInfo(i.shape,a,u,1,l),p=c.strideHeight,m=c.strideWidth,f=c.filterHeight,d=c.filterWidth,h=c.dilationHeight,g=c.dilationWidth,x=c.effectiveFilterHeight,b=c.effectiveFilterWidth,w=b-1-c.padInfo.left,C=x-1-c.padInfo.top,N=wt(i.shape,\"float32\"),_=1/(f*d),A=e.data.get(o.dataId).values,$=wt(o.shape,\"float32\",A);for(let F=0;F=c.outHeight||Math.floor(Y)!==Y))for(let Z=0;Z=c.outWidth||Math.floor(et)!==et)continue;let rt=$.get(F,Y,et,P);H+=rt}}N.set(H*_,F,V,G,P)}return e.makeTensorInfo(N.shape,N.dtype,N.values)}var LF={kernelName:ap,backendName:\"cpu\",kernelFunc:zJ};function BJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,scale:s,offset:i,mean:a,variance:u}=t;y.assert(a.shape.length===u.shape.length,()=>\"Batch normalization gradient requires mean and variance to have equal ranks.\"),y.assert(i==null||a.shape.length===i.shape.length,()=>\"Batch normalization gradient requires mean and offset to have equal ranks.\"),y.assert(s==null||a.shape.length===s.shape.length,()=>\"Batch normalization gradient requires mean and scale to have equal ranks.\"),tt([o,a,u,s,i],\"batchNorm\");let{varianceEpsilon:l}=n;l==null&&(l=.001);let c=e.data.get(o.dataId).values,p=e.data.get(a.dataId).values,m=e.data.get(u.dataId).values,f=s?e.data.get(s.dataId).values:new Float32Array([1]),d=i?e.data.get(i.dataId).values:new Float32Array([0]),h=new Float32Array(c.length),g=d.length,x=f.length,b=m.length,w=p.length,C=0,N=0,_=0,A=0;for(let $=0;$=g&&(C=0),N>=w&&(N=0),_>=x&&(_=0),A>=b&&(A=0);return e.makeTensorInfo(o.shape,o.dtype,h)}var MF={kernelName:os,backendName:\"cpu\",kernelFunc:BJ};function VJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;tt([o],\"batchToSpaceND\");let a=s.reduce((x,b)=>x*b),u=v.getReshaped(o.shape,s,a),l=v.getPermuted(u.length,s.length),c=v.getReshapedPermuted(o.shape,s,a),p=v.getSliceBeginCoords(i,s.length),m=v.getSliceSize(c,i,s.length),f=Yt({inputs:{x:o},backend:e,attrs:{shape:u}}),d=Ve({inputs:{x:f},backend:e,attrs:{perm:l}}),h=Yt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Fo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var zF={kernelName:ai,backendName:\"cpu\",kernelFunc:VJ};function GJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i}=n,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,l=sd(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var BF={kernelName:up,backendName:\"cpu\",kernelFunc:GJ};function WJ(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,a=v.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],\"int32\",Int32Array.from(a))}var VF={kernelName:cp,backendName:\"cpu\",kernelFunc:WJ};var UJ=Et(uo,(r,t)=>{let e=t;return r>e.clipValueMax?e.clipValueMax:r{let{x:t}=r.inputs,e=r.backend,n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId),s=o.complexTensorInfos.real,i=o.complexTensorInfos.imag,a=e.data.get(s.dataId).values,u=e.data.get(i.dataId).values;for(let l=0;lh.shape);v.assertParamsConsistent(i,s);let a=v.computeOutShape(t.map(h=>h.shape),s);if(y.sizeFromShape(a)===0)return e.makeTensorInfo(a,t[0].dtype,[]);let u=t.filter(h=>y.sizeFromShape(h.shape)>0);if(u.length===1)return Kr({inputs:{x:u[0]},backend:e});if(u[0].dtype===\"complex64\"){let h=u.map(C=>Ao({inputs:{input:C},backend:e})),g=u.map(C=>ji({inputs:{input:C},backend:e})),x=Tu({inputs:h,backend:e,attrs:{axis:s}}),b=Tu({inputs:g,backend:e,attrs:{axis:s}}),w=wr({inputs:{real:x,imag:b},backend:e});return h.forEach(C=>e.disposeIntermediateTensorInfo(C)),g.forEach(C=>e.disposeIntermediateTensorInfo(C)),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(b),w}let l=u.map(h=>{let x=[-1,y.sizeFromShape(h.shape.slice(s))];return Yt({inputs:{x:h},backend:e,attrs:{shape:x}})}),c=l.map(h=>({vals:e.data.get(h.dataId).values,shape:h.shape}));a=v.computeOutShape(l.map(h=>h.shape),1);let p=l[0].shape[0]===1,m=Ec(c,a,t[0].dtype,p),f=v.computeOutShape(u.map(h=>h.shape),s),d=e.makeTensorInfo(f,t[0].dtype,m);return l.forEach(h=>e.disposeIntermediateTensorInfo(h)),d}var HF={kernelName:li,backendName:\"cpu\",kernelFunc:Tu};function dT(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dataFormat:u,dilations:l,dimRoundingMode:c}=n;tt([o,s],\"conv2d\");let p=v.convertConv2DDataFormat(u),m=v.computeConv2DInfo(o.shape,s.shape,i,l,a,c,!1,p),f=m.filterHeight,d=m.filterWidth,h=m.dilationHeight,g=m.dilationWidth,x=m.padInfo.left,b=m.padInfo.top,w=m.dataFormat===\"channelsLast\",C=new pe(m.outShape,o.dtype),N=y.computeStrides(o.shape),_=y.computeStrides(s.shape),A=N[0],$=w?N[1]:N[2],F=w?N[2]:1,P=w?1:N[1],V=C.strides[0],G=w?C.strides[1]:C.strides[2],W=w?C.strides[2]:1,q=w?1:C.strides[1],H=e.data.get(o.dataId).values,j=e.data.get(s.dataId).values,Y=C.values;for(let Z=0;Z=m.inHeight)continue;let ht=st*_[0],bt=et+dt*$;for(let kt=0;kt=m.inWidth)continue;let he=ht+Zt*_[1],jt=bt+ce*F,ke=he;for(let fe=0;fe=l.inDepth)continue;let Z=j*F[0],et=V+Y*$[1];for(let rt=0;rt=l.inHeight)continue;let dt=Z+nt*F[1],ht=et+st*$[2];for(let bt=0;bt=l.inWidth)continue;let ce=dt+Vt*F[2],he=ht+Zt*l.inChannels,jt=ce;for(let ke=0;keMath.cos(r)),JF={kernelName:Xo,backendName:\"cpu\",kernelFunc:ZJ};var JJ=Et(Yo,r=>Math.cosh(r)),QF={kernelName:Yo,backendName:\"cpu\",kernelFunc:JJ};function QJ(r){let{inputs:t,backend:e,attrs:n}=r,{image:o,boxes:s,boxInd:i}=t,{cropSize:a,method:u,extrapolationValue:l}=n,[c,p,m,f]=o.shape,d=s.shape[0],[h,g]=a,x=wt([d,h,g,f],\"float32\"),b=e.data.get(s.dataId).values,w=e.data.get(i.dataId).values,C=e.data.get(o.dataId).values,N=y.computeStrides(o.shape),_=y.computeStrides(x.shape);for(let A=0;A=c)continue;let q=h>1?(V-F)*(p-1)/(h-1):0,H=g>1?(G-P)*(m-1)/(g-1):0;for(let j=0;j1?F*(p-1)+j*q:.5*(F+V)*(p-1);if(Y<0||Y>p-1){for(let Z=0;Z1?P*(m-1)+ot*H:.5*(P+G)*(m-1);if(at<0||at>m-1){for(let ht=0;ht1?P*(m-1)+Z*H:.5*(P+G)*(m-1);if(et<0||et>m-1){for(let at=0;atx+d-b-1:(x,b)=>x+b;for(let x=0;xx+d-b-1:(x,b)=>x+b;for(let x=0;x`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`);let a=o.shape[0],u=o.shape[1],l=o.shape[2],c=o.shape[3],p=u*s,m=l*s,f=c/(s*s),d=e.data.get(o.dataId).values,h=new Float32Array(a*p*m*f),g=0;for(let x=0;x`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${m}'`);let f=v.computeConv2DInfo(o.shape,s.shape,i,m,a,l,!0),{filterHeight:d,filterWidth:h,dilationHeight:g,dilationWidth:x,padInfo:b}=f,w=b.left,C=b.top,N=f.outChannels/f.inChannels,_=new pe(f.outShape,o.dtype),A=e.data.get(o.dataId).values,$=e.data.get(s.dataId).values,F=_.values;for(let P=0;P=f.inHeight)continue;let Z=j*p[0],et=V+Y*c[1];for(let rt=0;rt=f.inWidth)continue;let dt=Z+nt*p[1],ht=et+st*f.inChannels,bt=ot,kt=dt;for(let _t=0;_t{let{x:n,filter:o}=r,{strides:s,pad:i,dilations:a}=e,u=t,l=u.data.get(n.dataId).values,c=n.shape.length,p=u.data.get(o.dataId).values,m=o.shape.length,{batchSize:f,inHeight:d,inWidth:h,inChannels:g,outHeight:x,outWidth:b,padInfo:w,strideHeight:C,strideWidth:N,filterHeight:_,filterWidth:A,dilationHeight:$,dilationWidth:F,outShape:P}=v.computeDilation2DInfo(n.shape,o.shape,s,i,\"NHWC\",a),V=y.sizeFromShape(P),G=P.length,W=y.getArrayFromDType(n.dtype,V);for(let H=0;H=0&&st=0&&htot&&(ot=_t)}}}let at=y.locToIndex([H,j,Z,rt],G,y.computeStrides(P));W[at]=ot}}}return{dataId:u.write(y.toTypedArray(W,n.dtype),P,n.dtype),shape:P,dtype:n.dtype}}};var cO={kernelName:Xd,backendName:\"cpu\",kernelFunc:({inputs:r,backend:t,attrs:e})=>{let{x:n,filter:o,dy:s}=r,{strides:i,pad:a,dilations:u}=e,l=t,c=y.toNestedArray(n.shape,l.data.get(n.dataId).values),p=y.toNestedArray(o.shape,l.data.get(o.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:w,strideWidth:C,filterHeight:N,filterWidth:_,dilationHeight:A,dilationWidth:$,outShape:F}=v.computeDilation2DInfo(n.shape,o.shape,i,a,\"NHWC\",u);y.assert(s.rank===F.length,()=>`Error in ${Xd}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let P=y.toNestedArray(F,l.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(o.shape,o.dtype);for(let W=0;W=0&&nt=0&&dtet&&(et=ht,rt=at,ot=st)}}}V[rt][ot][Z]+=P[W][q][j][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),o.shape,o.dtype),shape:o.shape,dtype:o.dtype}}};var pO={kernelName:jd,backendName:\"cpu\",kernelFunc:({inputs:r,backend:t,attrs:e})=>{let{x:n,filter:o,dy:s}=r,{strides:i,pad:a,dilations:u}=e,l=t,c=y.toNestedArray(n.shape,l.data.get(n.dataId).values),p=y.toNestedArray(o.shape,l.data.get(o.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:w,strideWidth:C,filterHeight:N,filterWidth:_,dilationHeight:A,dilationWidth:$,outShape:F}=v.computeDilation2DInfo(n.shape,o.shape,i,a,\"NHWC\",u);y.assert(s.rank===F.length,()=>`Error in ${jd}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let P=y.toNestedArray(F,l.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(n.shape,n.dtype);for(let W=0;W=0&&nt=0&&dtet&&(et=ht,rt=nt,ot=dt)}}}V[W][rt][ot][Z]+=P[W][q][j][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}};function hl(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;tt(o,\"sum\");let a;o.dtype===\"bool\"?a=$o({inputs:{x:o},backend:e,attrs:{dtype:\"int32\"}}):a=Kr({inputs:{x:o},backend:e});let u=a.shape.length,l=y.parseAxisParam(s,a.shape),c=v.getAxesPermutation(l,u),p=l,m=a;c!=null&&(m=Ve({inputs:{x:a},backend:e,attrs:{perm:c}}),p=v.getInnerMostAxes(p.length,u)),v.assertAxesAreInnerMostDims(\"sum\",p,m.shape.length);let[f,d]=v.computeOutAndReduceShapes(m.shape,p),h=v.upcastType(m.dtype,\"int32\"),g=nd(e,f,h),x=y.sizeFromShape(d),b=e.data.get(g.dataId).values,w=e.data.get(m.dataId).values;for(let C=0;C=0&&(m=hl({inputs:{x:m},backend:e,attrs:{axis:l[h]-(i.length-f),keepDims:!1}}),d.push(m)),f--)}for(let h of d)h!==m&&e.disposeIntermediateTensorInfo(h);return m}var fO={kernelName:bp,backendName:\"cpu\",kernelFunc:aQ};function lQ(r){let{inputs:t,backend:e}=r,{dy:n,y:o}=t;tt([n,o],\"eluGrad\");let s=new Float32Array(y.sizeFromShape(o.shape)),i=e.data.get(o.dataId).values,a=e.data.get(n.dataId).values;for(let u=0;u=1?s[u]=a[u]:s[u]=a[u]*(l+1)}return e.makeTensorInfo(o.shape,\"float32\",s)}var dO={kernelName:wp,backendName:\"cpu\",kernelFunc:lQ};var uQ=v.ERF_P,cQ=v.ERF_A1,pQ=v.ERF_A2,mQ=v.ERF_A3,fQ=v.ERF_A4,dQ=v.ERF_A5,hQ=Et(ga,r=>{let t=Math.sign(r),e=Math.abs(r),n=1/(1+uQ*e);return t*(1-((((dQ*n+fQ)*n+mQ)*n+pQ)*n+cQ)*n*Math.exp(-e*e))}),hO={kernelName:ga,backendName:\"cpu\",kernelFunc:hQ};function cd(r){let{inputs:t,backend:e,attrs:n}=r,{input:o}=t,{dim:s}=n,i=o.shape.length,a=o.shape.slice(),u=s;return s<0&&(y.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+s+1),a.splice(u,0,1),Yt({inputs:{x:o},backend:e,attrs:{shape:a}})}var gO={kernelName:ui,backendName:\"cpu\",kernelFunc:cd};var gQ=Qt((r,t)=>r/t),Wh=oe(Qo,gQ),Uh={kernelName:Qo,backendName:\"cpu\",kernelFunc:Wh};function hw(r,t,e){let n=r.shape,o=n[0],s=n[1],i=e.data.get(r.dataId),a=i.complexTensorInfos.real,u=i.complexTensorInfos.imag,l=[o,s],c=y.sizeFromShape(l),p=y.getTypedArrayFromDType(\"float32\",c),m=y.getTypedArrayFromDType(\"float32\",c);for(let g=0;g{let{image:n}=r,o=e,s=y.getTypedArrayFromDType(n.dtype,y.sizeFromShape(n.shape)),[i,a,u,l]=n.shape,c=o.data.get(n.dataId).values;for(let m=0;m=0&&wMath.floor(r/t)),SQ=oe(ns,IQ,null,\"int32\"),wO={kernelName:ns,backendName:\"cpu\",kernelFunc:SQ};function vQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=dT({inputs:{x:o,filter:s},backend:e,attrs:{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m}});if(i){let g=h;if(c===\"NCHW\"&&i.shape.length===1&&i.shape[0]!==1){let x=Yt({inputs:{x:i},backend:e,attrs:{shape:[i.shape[0],1,1]}});h=Ki({inputs:{a:h,b:x},backend:e}),e.disposeIntermediateTensorInfo(x)}else h=Ki({inputs:{a:h,b:i},backend:e});e.disposeIntermediateTensorInfo(g)}if(f){let g=h;if(c===\"NCHW\"&&f===\"prelu\"&&a.shape.length===1&&a.shape[0]!==1){let x=Yt({inputs:{x:a},backend:e,attrs:{shape:[a.shape[0],1,1]}});h=Oc(e,h,f,x,d),e.disposeIntermediateTensorInfo(x)}else h=Oc(e,h,f,a,d);e.disposeIntermediateTensorInfo(g)}return h}var CO={kernelName:Ii,backendName:\"cpu\",kernelFunc:vQ};function NQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=hT({inputs:{x:o,filter:s},backend:e,attrs:{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m}});if(i){let g=h;h=Ki({inputs:{a:h,b:i},backend:e}),e.disposeIntermediateTensorInfo(g)}if(f){let g=h;h=Oc(e,h,f,a,d),e.disposeIntermediateTensorInfo(g)}return h}var IO={kernelName:Si,backendName:\"cpu\",kernelFunc:NQ};function TQ(r){let{inputs:t,backend:e}=r,{params:n,indices:o}=t,s=y.sizeFromShape(n.shape),i=o.shape,a=i[i.length-1],[u,l,c,p]=v.prepareAndValidate(n,o);if(l===0)return e.makeTensorInfo(u,n.dtype,[]);let m=e.data.get(o.dataId).values,f=e.bufferSync(n),d=Qb(m,f,n.dtype,l,a,c,p,n.shape,s);return e.makeTensorInfo(u,n.dtype,d.values)}var SO={kernelName:wa,backendName:\"cpu\",kernelFunc:TQ};function kQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,indices:s}=t,{axis:i,batchDims:a}=n;tt([o,s],\"gatherV2\");let u=y.parseAxisParam(i,o.shape)[0],l=e.data.get(s.dataId).values,c=o.shape[u];for(let C=0;C=0,()=>`GatherV2: the index value ${N} is not in [0, ${c-1}]`)}let p=a;a==null&&(p=0);let m=y.sizeFromShape(s.shape),f=v.segment_util.collectGatherOpShapeInfo(o,s,u,p),d=Yt({inputs:{x:o},backend:e,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),h=Yt({inputs:{x:s},backend:e,attrs:{shape:[f.batchSize,m/f.batchSize]}}),g=[f.batchSize,f.outerSize,m/f.batchSize,f.sliceSize],x=e.bufferSync(h),b=e.bufferSync(d),w=tw(b,x,g);return e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.makeTensorInfo(f.outputShape,w.dtype,w.values)}var vO={kernelName:ci,backendName:\"cpu\",kernelFunc:kQ};function EQ(r){let{inputs:t,backend:e}=r,{input:n}=t,o=y.sizeFromShape(n.shape),s=n.shape[n.shape.length-1],i=o/s,a=Yt({inputs:{x:n},backend:e,attrs:{shape:[i,s]}}),u=hw(a,!0,e),l=Yt({inputs:{x:u},backend:e,attrs:{shape:n.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(u),l}var NO={kernelName:Ip,backendName:\"cpu\",kernelFunc:EQ};var _Q=Et(Ia,r=>Number.isFinite(r)?1:0,\"bool\"),TO={kernelName:Ia,backendName:\"cpu\",kernelFunc:_Q};var AQ=Et(Sa,r=>Math.abs(r)===1/0?1:0,\"bool\"),kO={kernelName:Sa,backendName:\"cpu\",kernelFunc:AQ};var $Q=Et(va,r=>Number.isNaN(r)?1:0,\"bool\"),EO={kernelName:va,backendName:\"cpu\",kernelFunc:$Q};function DQ(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=ew(n,o,s);return t.makeTensorInfo([i.length],\"float32\",i)}var _O={kernelName:vp,backendName:\"cpu\",kernelFunc:DQ};var RQ=Et(ka,r=>Math.log1p(r)),AO={kernelName:ka,backendName:\"cpu\",kernelFunc:RQ};var FQ=Qt((r,t)=>r&&t),OQ=oe(Ea,FQ,null,\"bool\"),$O={kernelName:Ea,backendName:\"cpu\",kernelFunc:OQ};var PQ=Et(_a,r=>r?0:1,\"bool\"),DO={kernelName:_a,backendName:\"cpu\",kernelFunc:PQ};var LQ=Qt((r,t)=>r||t),MQ=oe(Aa,LQ,null,\"bool\"),RO={kernelName:Aa,backendName:\"cpu\",kernelFunc:MQ};function zQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n;tt(o,\"LRN\");let l=o.shape[3],c=l-1,p=e.data.get(o.dataId).values,m=y.sizeFromShape(o.shape),f=new Float32Array(m);function d(h){let g=h%l,x=h-g+Math.max(0,g-s),b=h-g+Math.min(g+s,c),w=0;for(;x<=b;x++){let C=p[x];w+=C*C}return w}for(let h=0;h`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=v.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Kr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=ud(m,o.shape,o.dtype,f,c,\"max\");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var LO={kernelName:cs,backendName:\"cpu\",kernelFunc:VQ};function GQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;tt(o,\"maxPool3d\");let c=v.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=dw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,\"max\");return e.makeTensorInfo(m.shape,\"float32\",m.values)}var MO={kernelName:Fl,backendName:\"cpu\",kernelFunc:GQ};function WQ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;tt([o,s],\"maxPool3DGrad\");let c=v.computePool3DInfo(s.shape,i,a,1,u,l),p=e.bufferSync(s),m=RF(p,c),f=c.strideDepth,d=c.strideHeight,h=c.strideWidth,g=c.dilationDepth,x=c.dilationHeight,b=c.dilationWidth,w=c.effectiveFilterDepth,C=c.effectiveFilterHeight,N=c.effectiveFilterWidth,_=w-1-c.padInfo.front,A=N-1-c.padInfo.left,$=C-1-c.padInfo.top,F=wt(s.shape,\"float32\"),P=e.bufferSync(o);for(let V=0;V=c.outDepth||Math.floor(ot)!==ot))for(let at=0;at=c.outHeight||Math.floor(nt)!==nt))for(let st=0;st=c.outWidth||Math.floor(dt)!==dt)continue;let ht=w*C*N-1-m.get(V,ot,nt,dt,G),bt=rt*C*N+at*N+st,kt=ht===bt?1:0;if(kt===0)continue;let _t=P.get(V,ot,nt,dt,G);et+=_t*kt}}}F.set(et,V,W,q,H,G)}return e.makeTensorInfo(F.shape,F.dtype,F.values)}var zO={kernelName:kp,backendName:\"cpu\",kernelFunc:WQ};function UQ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;tt([s,i],\"maxPoolGrad\");let{filterSize:u,strides:l,pad:c,dimRoundingMode:p}=n,m=v.computePool2DInfo(a.shape,u,l,1,c,p),f=e.data.get(a.dataId).values,d=wt(m.outShape,a.dtype,fw(f,a.shape,a.dtype,m).values),h=m.strideHeight,g=m.strideWidth,x=m.dilationHeight,b=m.dilationWidth,w=m.effectiveFilterHeight,C=m.effectiveFilterWidth,N=C-1-m.padInfo.left,_=w-1-m.padInfo.top,A=wt(a.shape,\"float32\"),$=e.data.get(o.dataId).values,F=wt(o.shape,\"float32\",$);for(let P=0;P=m.outHeight||Math.floor(Z)!==Z))for(let et=0;et=m.outWidth||Math.floor(rt)!==rt)continue;let ot=w*C-1-d.get(P,Z,rt,V),at=Y*C+et,nt=ot===at?1:0;if(nt===0)continue;let st=F.get(P,Z,rt,V);j+=st*nt}}A.set(j,P,G,W,V)}return e.makeTensorInfo(A.shape,A.dtype,A.values)}var BO={kernelName:Tp,backendName:\"cpu\",kernelFunc:UQ};function VO(r,t,e,n,o){let s=y.computeStrides(t),i=ud(r,t,e,s,o,\"max\"),a=fw(r,t,e,o,!0,n);return[i.values,a.values]}var GO={kernelName:Ep,backendName:\"cpu\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;tt(n,\"MaxPoolWithArgmax\");let l=u.data.get(n.dataId).values,c=v.computePool2DInfo(n.shape,o,s,[1,1],i),[p,m]=VO(l,n.shape,n.dtype,a,c),f=u.write(p,c.outShape,n.dtype),d=u.write(m,c.outShape,n.dtype);return[{dataId:f,shape:c.outShape,dtype:n.dtype},{dataId:d,shape:c.outShape,dtype:\"int32\"}]}};function HQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=y.parseAxisParam(s,o.shape),l=v.computeOutAndReduceShapes(o.shape,a)[1],c=y.sizeFromShape(l),p=[],m=e.makeTensorInfo([],\"float32\",new Float32Array([c]));p.push(m);let f=$o({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}});p.push(f);let d=Wh({inputs:{a:f,b:m},backend:e});p.push(d);let h=hl({inputs:{x:d},backend:e,attrs:{axis:s,keepDims:i}});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),h}var WO={kernelName:ps,backendName:\"cpu\",kernelFunc:HQ};function qQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;tt(o,\"min\");let a=y.parseAxisParam(s,o.shape),u=a,l=v.getAxesPermutation(u,o.shape.length),c=o;l!=null&&(c=Ve({inputs:{x:o},backend:e,attrs:{perm:l}}),u=v.getInnerMostAxes(u.length,o.shape.length)),v.assertAxesAreInnerMostDims(\"min\",u,c.shape.length);let[p,m]=v.computeOutAndReduceShapes(c.shape,u),f=y.sizeFromShape(m),d=y.makeZerosTypedArray(y.sizeFromShape(p),c.dtype),h=e.data.get(c.dataId).values;for(let x=0;xw[0]+o.shape[C]+w[1]),u=s.map(w=>w[0]),l=s.map((w,C)=>w[0]+o.shape[C]),c=i===\"reflect\"?0:1,p=e.data.get(o.dataId).values,m=o.shape.length,f=y.computeStrides(o.shape),d=y.sizeFromShape(a),h=a.length,g=y.computeStrides(a),x=y.getTypedArrayFromDType(o.dtype,d);for(let w=0;w=l[_]&&(C[_]=(l[_]-1)*2-C[_]+c);C=C.map((_,A)=>_-u[A]);let N=y.locToIndex(C,m,f);x[w]=p[N]}return{dataId:e.write(x,a,o.dtype),shape:a,dtype:o.dtype}}var HO={kernelName:ds,backendName:\"cpu\",kernelFunc:KQ};var jQ=Qt((r,t)=>{let e=r%t;return r<0&&t<0||r>=0&&t>=0?e:(e+t)%t}),XQ=oe($a,jQ),qO={kernelName:$a,backendName:\"cpu\",kernelFunc:XQ};var jO=Tl(fh());function yT(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=o.shape.length,a=s;if(a===-1&&(a=i-1),a!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${a}`);let u=y.parseAxisParam([a],o.shape),l=xT({inputs:{x:o},backend:e,attrs:{reductionIndices:u,keepDims:!1}}),c=v.expandShapeToKeepDim(l.shape,u),p=Yt({inputs:{x:l},backend:e,attrs:{shape:c}}),m=Vh({inputs:{a:o,b:p},backend:e}),f=UN({inputs:{x:m},backend:e}),d=hl({inputs:{x:f},backend:e,attrs:{axis:u,keepDims:!1}}),h=Yt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Wh({inputs:{a:f,b:h},backend:e});return e.disposeIntermediateTensorInfo(l),e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var KO={kernelName:Ds,backendName:\"cpu\",kernelFunc:yT};function YQ(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n;tt(o,\"multinomial\");let u=a?o:yT({inputs:{logits:o},backend:e,attrs:{dim:-1}}),l=u.shape[0],c=u.shape[1],p=e.data.get(u.dataId).values,m=[l,s],f=y.makeZerosTypedArray(y.sizeFromShape(m),\"int32\");for(let d=0;d=0&&p[m]{y.assertShapesMatch(s,c.shape,\"All tensors passed to stack must have matching shapes\"),y.assert(i===c.dtype,()=>\"All tensors passed to stack must have matching dtypes\")});let a=[],u=t.map(c=>{let p=cd({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Tu({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var nP={kernelName:fi,backendName:\"cpu\",kernelFunc:bT};function o9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{paddings:s,constantValue:i}=n;tt(o,\"pad\");let a=s.map((b,w)=>b[0]+o.shape[w]+b[1]),u=s.map(b=>b[0]),l=e.data.get(o.dataId).values,c=y.sizeFromShape(o.shape),p=o.shape.length,m=y.computeStrides(o.shape),f=y.sizeFromShape(a),d=a.length,h=y.computeStrides(a),g=y.getTypedArrayFromDType(o.dtype,f);i!==0&&g.fill(i);for(let b=0;b_+u[A]),N=y.locToIndex(C,d,h);g[N]=l[b]}return{dataId:e.write(g,a,o.dtype),shape:a,dtype:o.dtype}}var gw={kernelName:xs,backendName:\"cpu\",kernelFunc:o9};var s9=Qt((r,t)=>Math.pow(r,t)),i9=oe(ys,s9),oP={kernelName:ys,backendName:\"cpu\",kernelFunc:i9};function a9(r){let{inputs:t,backend:e,attrs:n}=r,{paramsNestedSplits:o,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:a}=n,u=o.map(x=>e.data.get(x.dataId).values),l=o.map(x=>x.shape),c=e.data.get(s.dataId).values,p=e.data.get(i.dataId).values,[m,f,d]=nw(u,l,c,s.shape,s.dtype,p,i.shape,a),h=m.map(x=>e.makeTensorInfo([x.length],\"int32\",x)),g=e.makeTensorInfo(d,s.dtype,f);return h.concat([g])}var sP={kernelName:Ap,backendName:\"cpu\",kernelFunc:a9};function l9(r){let{inputs:t,backend:e}=r,{starts:n,limits:o,deltas:s}=t,i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=ow(i,n.shape,n.dtype,a,o.shape,u,s.shape),p=e.makeTensorInfo([l.length],\"int32\",l),m=e.makeTensorInfo([c.length],n.dtype,c);return[p,m]}var iP={kernelName:$p,backendName:\"cpu\",kernelFunc:l9};function u9(r){let{inputs:t,backend:e,attrs:n}=r,{shape:o,values:s,defaultValue:i,rowPartitionTensors:a}=t,{rowPartitionTypes:u}=n,l=e.data.get(o.dataId).values,c=e.data.get(s.dataId).values,p=e.data.get(i.dataId).values,m=a.map(g=>e.data.get(g.dataId).values),f=a.map(g=>g.shape),[d,h]=sw(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var aP={kernelName:Dp,backendName:\"cpu\",kernelFunc:u9};function c9(r){let{backend:t,attrs:e}=r,{start:n,stop:o,dtype:s,step:i}=e,a=Ac(n,o,i,s);return t.makeTensorInfo([a.length],s,a)}var lP={kernelName:Ol,backendName:\"cpu\",kernelFunc:c9};var p9=Et(Pa,r=>1/r),uP={kernelName:Pa,backendName:\"cpu\",kernelFunc:p9};function m9(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n;tt(o,\"resizeBilinear\");let u=y.computeStrides(o.shape),[l,c]=a,[p,m,f,d]=o.shape,h=e.data.get(o.dataId).values,g=new Float32Array(y.sizeFromShape([p,l,c,d])),x=[s&&l>1?m-1:m,s&&c>1?f-1:f],b=[s&&l>1?l-1:l,s&&c>1?c-1:c],w=0,C=x[0]/b[0],N=x[1]/b[1];for(let _=0;_1?l-1:l,i&&f>1?c-1:c],g=[i&&m>1?m-1:m,i&&f>1?f-1:f],x=h[0]/g[0],b=h[1]/g[1],w=e.data.get(s.dataId).values,C=0;for(let N=0;N1?m-1:m,s&&c>1?f-1:f],b=[s&&l>1?l-1:l,s&&c>1?c-1:c],w=x[0]/b[0],C=x[1]/b[1],N=0;for(let _=0;_1?c-1:c,i&&d>1?p-1:p],b=[i&&f>1?f-1:f,i&&d>1?d-1:d],w=x[0]/b[0],C=x[1]/b[1],N=1/w,_=1/C,A=Math.ceil(N)*2+2,$=Math.ceil(_)*2+2;for(let F=0;F=f)continue;let nt=P+at*u[1],st=at*w,dt=Math.min(c-1,i?Math.round(st):Math.floor(st));if(V===dt)for(let ht=0;ht<$;ht++){let bt=ht+Z;if(bt<0||bt>=d)continue;let kt=nt+bt*u[2],_t=bt*C,Vt=Math.min(p-1,i?Math.round(_t):Math.floor(_t));H===Vt&&(rt+=g[kt+et])}}h[j+et]=rt}}}}return e.makeTensorInfo(o.shape,o.dtype,h)}var fP={kernelName:Fp,backendName:\"cpu\",kernelFunc:h9};function g9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n;tt(o,\"reverse\");let i=o.shape.length,a=y.parseAxisParam(s,o.shape);if(i===0)return Kr({inputs:{x:o},backend:e});let u=new pe(o.shape,o.dtype),l=e.bufferSync(o);for(let c=0;cm[f]=o.shape[f]-1-m[f]),u.set(l.get(...m),...p)}return e.makeTensorInfo(u.shape,u.dtype,u.values)}var dP={kernelName:Ns,backendName:\"cpu\",kernelFunc:g9};var hP={kernelName:qa,backendName:\"cpu\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=y.getTypedArrayFromDType(n.dtype,y.sizeFromShape(n.shape)),[l,c,p,m]=n.shape,[f,d]=v.getImageCenter(i,c,p),h=255,g=Math.sin(o),x=Math.cos(o),b=a.data.get(n.dataId).values;for(let C=0;C=0&&q=0&&H{let t=Math.floor(r);return r-t<.5?Math.floor(r):r-t>.5?Math.ceil(r):t%2===0?t:t+1}),gP={kernelName:Ts,backendName:\"cpu\",kernelFunc:x9};function y9(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o,updates:s}=t,{shape:i}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=v.calculateShapes(s,o,i),m=!0,f=e.bufferSync(o),d=e.bufferSync(s),h=dl(f,d,i,p,l,u,a,c,0,m);return e.makeTensorInfo(i,h.dtype,h.values)}var xP={kernelName:La,backendName:\"cpu\",kernelFunc:y9};function b9(r,t){let e=0,n=r.length,o=0;for(;e1||o.shape.length===1?1:y.sizeFromShape(o.shape.slice(1));for(let d=0;dr>=0?v9*r:S9*(Math.exp(r)-1)),CP={kernelName:Ma,backendName:\"cpu\",kernelFunc:N9};var T9=Et(Ba,r=>r<0?-1:r>0?1:0),IP={kernelName:Ba,backendName:\"cpu\",kernelFunc:T9};var k9=Et(Es,r=>Math.sin(r)),SP={kernelName:Es,backendName:\"cpu\",kernelFunc:k9};var E9=Et(za,r=>Math.sinh(r)),vP={kernelName:za,backendName:\"cpu\",kernelFunc:E9};var _9=11920928955078125e-23,NP=Math.log(_9)+2,A9=Et(Va,r=>{let t=r>-NP,e=rNumber(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var EP={kernelName:Pl,backendName:\"cpu\",kernelFunc:D9};function R9(r){let{inputs:t,backend:e}=r,{inputIndices:n,inputShape:o,newShape:s}=t;if(n.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape\n ${n.shape}`);if(o.shape.length!==1)throw new Error(`Input shape should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(e.data.get(o.dataId).values),a=e.data.get(n.dataId).values,u=Array.from(e.data.get(s.dataId).values),[l,c,p]=aw(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var _P={kernelName:Ga,backendName:\"cpu\",kernelFunc:R9};function F9(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);if(o.shape[0]!==s.shape[0])throw new Error(\"segmentIds and indices should have same size.\");let i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=ld(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var AP={kernelName:Ll,backendName:\"cpu\",kernelFunc:F9};function O9(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);if(o.shape[0]!==s.shape[0])throw new Error(\"segmentIds and indices should have same size.\");let i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=ld(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var $P={kernelName:Ml,backendName:\"cpu\",kernelFunc:O9};function P9(r){let{inputs:t,backend:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=t,{outputShape:a}=n,{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=v.calculateShapes(s,o,a),f=!1,d=e.bufferSync(o),h;switch(s.dtype){case\"bool\":{let g=e.bufferSync(s),x=Boolean(e.data.get(i.dataId).values[0]);h=dl(d,g,a,m,c,l,u,p,x,f);break}case\"float32\":{let g=e.bufferSync(s),x=e.data.get(i.dataId).values[0];h=dl(d,g,a,m,c,l,u,p,x,f);break}case\"int32\":{let g=e.bufferSync(s),x=e.data.get(i.dataId).values[0];h=dl(d,g,a,m,c,l,u,p,x,f);break}case\"string\":{let g=e.bufferSync(s),x=y.decodeString(e.data.get(i.dataId).values[0]);h=dl(d,g,a,m,c,l,u,p,x,f);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return e.makeTensorInfo(a,h.dtype,h.values)}var DP={kernelName:Lp,backendName:\"cpu\",kernelFunc:P9};function L9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=n,a=y.parseAxisParam(i,o.shape)[0],u=v.prepareSplitSize(o,s,a),l=new Array(o.shape.length).fill(0),c=o.shape.slice();return u.map(p=>{let m=[...c];m[a]=p;let f=Fo({inputs:{x:o},backend:e,attrs:{begin:l,size:m}});return l[a]+=p,f})}var RP={kernelName:yi,backendName:\"cpu\",kernelFunc:L9};var FP={kernelName:zl,backendName:\"cpu\",kernelFunc:({inputs:r,backend:t})=>{let{x:e}=r,n=t;tt(e,\"square\");let o=n.data.get(e.dataId).values,s=new Float32Array(o.length);for(let a=0;a{let e=t;return isNaN(r)?NaN:r>0?1:e.alpha}),OP={kernelName:po,backendName:\"cpu\",kernelFunc:M9};function z9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n;tt(o,\"stridedSlice\");let{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Le.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=Yt({inputs:{x:o},backend:e,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let _=Le.computeOutShape(b,w,C),A=Fo({inputs:{x:o},backend:e,attrs:{begin:b,size:_}});N=Yt({inputs:{x:A},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(A)}else{let _=e.bufferSync(o),A=lw(f,_,C,b);N=e.makeTensorInfo(d,A.dtype,A.values)}return N}var PP={kernelName:Wa,backendName:\"cpu\",kernelFunc:z9};function B9(r){let{inputs:t,backend:e,attrs:n}=r,{separator:o,nGramWidths:s,leftPad:i,rightPad:a,padWidth:u,preserveShortSequences:l}=n,{data:c,dataSplits:p}=t,m=e.data.get(c.dataId).values,f=e.data.get(p.dataId).values,[d,h]=Dc(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],\"string\",d),e.makeTensorInfo(p.shape,\"int32\",h)]}var LP={kernelName:Bl,backendName:\"cpu\",kernelFunc:B9};function V9(r){let{inputs:t,backend:e,attrs:n}=r,{skipEmpty:o}=n,{input:s,delimiter:i}=t;if(s.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let a=e.data.get(s.dataId).values,u=e.data.get(i.dataId).values[0],[l,c,p]=Rc(a,u,o),m=c.length;return[e.makeTensorInfo([m,2],\"int32\",l),e.makeTensorInfo([m],\"string\",c),e.makeTensorInfo([2],\"int32\",new Int32Array(p))]}var MP={kernelName:Vl,backendName:\"cpu\",kernelFunc:V9};function G9(r){let{inputs:t,backend:e,attrs:n}=r,{numBuckets:o}=n,{input:s}=t;if(s.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");if(o<=0)throw new Error(\"Number of buckets must be at least 1\");let i=e.data.get(s.dataId).values,a=Fc(i,o);return e.makeTensorInfo(s.shape,\"int32\",a)}var zP={kernelName:Gl,backendName:\"cpu\",kernelFunc:G9};var W9=Et(Os,r=>Math.tan(r)),BP={kernelName:Os,backendName:\"cpu\",kernelFunc:W9};var U9=Et(Ps,r=>Math.tanh(r)),VP={kernelName:Ps,backendName:\"cpu\",kernelFunc:U9};function H9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reps:s}=n;tt(o,\"tile\");let i=uw(e.bufferSync(o),s);return e.makeTensorInfo(i.shape,i.dtype,i.values)}var GP={kernelName:Jn,backendName:\"cpu\",kernelFunc:H9};function q9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{k:s,sorted:i}=n;tt(o,\"topk\");let a=e.data.get(o.dataId).values,[u,l]=cw(a,o.shape,o.dtype,s,i);return[e.makeTensorInfo(u.shape,u.dtype,u.values),e.makeTensorInfo(l.shape,l.dtype,l.values)]}var WP={kernelName:Ua,backendName:\"cpu\",kernelFunc:q9};function K9(r){let{inputs:t,attrs:e,backend:n}=r,{image:o,transforms:s}=t,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=e,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=y.computeStrides(o.shape),b=x[0],w=x[1],C=x[2],N=y.computeStrides(g),_=N[0],A=N[1],$=N[2],F=y.getTypedArrayFromDType(o.dtype,y.sizeFromShape(g));F.fill(u);let P=n.data.get(o.dataId).values,V=n.data.get(s.dataId).values;for(let W=0;Wt-1)if(t<=1)e=0;else{let n=2*t;e-=n*Math.trunc(e/n),e>=t&&(e=n-e-1)}return y.clamp(0,e,t-1)}function X9(r,t){let e=r;if(e<0)if(t<=1)e=0;else{let n=t-1;e+=t*(Math.trunc(-e/n)+1)}else if(e>t-1)if(t<=1)e=0;else{let n=t-1;e-=t*Math.trunc(e/n)}return y.clamp(0,e,t-1)}function Y9(r,t){return r}function Z9(r,t){return y.clamp(0,r,t-1)}function Kh(r,t,e,n,o,s,i,a,u,l,c){let p=i*n+a*o+u*s+l;return 0<=a&&ae.disposeIntermediateTensorInfo(d)),f}var jP={kernelName:Wl,backendName:\"cpu\",kernelFunc:rtt};var ntt=[wF,$R,CF,IF,PR,SF,vF,NF,TF,kF,EF,_F,AF,$F,DF,FF,OF,PF,LF,bF,MF,zF,BF,VF,OR,LR,GF,DR,WF,HF,qF,KF,jF,XF,YF,ZF,JF,QF,tO,eO,rO,nO,oO,sO,iO,aO,lO,uO,cO,pO,fO,fF,dO,MR,hO,zR,gO,BR,xO,yO,bO,VR,wO,CO,IO,SO,vO,GR,WR,RR,NO,UF,TO,kO,EO,dF,UR,HR,_O,qR,AO,$O,DO,RO,FO,OO,PO,KR,LO,MO,zO,BO,GO,WO,UO,jR,HO,qO,XO,XR,YR,YO,ZO,JO,ZR,QO,rP,nP,gw,oP,hF,QR,sP,iP,aP,lP,FR,Uh,uP,gF,xF,yF,cP,pP,mP,fP,dP,hP,gP,oF,xP,bP,wP,CP,iF,IP,SP,vP,aF,KO,TP,kP,EP,_P,AP,$P,DP,RP,uF,FP,cF,OP,PP,LP,MP,zP,pF,mO,BP,VP,GP,WP,HP,JR,qP,KP,jP,tP];for(let r of ntt)Lu(r);var dd={};Wt(dd,{assertNotComplex:()=>Qs,bindCanvasToFramebuffer:()=>mtt,bindColorTextureToFramebuffer:()=>Zh,bindTextureToProgramUniformSampler:()=>OT,bindTextureUnit:()=>JP,bindVertexBufferToProgramAttribute:()=>Iw,callAndCheck:()=>yt,canBeRepresented:()=>ST,createFragmentShader:()=>NT,createFramebuffer:()=>DT,createProgram:()=>TT,createStaticIndexBuffer:()=>_T,createStaticVertexBuffer:()=>ET,createTexture:()=>AT,createVertexShader:()=>vT,getBatchDim:()=>xl,getExtensionOrThrow:()=>pd,getFramebufferErrorMessage:()=>QP,getMaxTexturesInShader:()=>MT,getNumChannels:()=>ctt,getProgramUniformLocation:()=>FT,getProgramUniformLocationOrThrow:()=>RT,getRowsCols:()=>yl,getShapeAs3D:()=>fd,getTextureShapeFromLogicalShape:()=>PT,getWebGLDisjointQueryTimerVersion:()=>zT,getWebGLErrorMessage:()=>ZP,getWebGLMaxTextureSize:()=>LT,hasExtension:()=>Wn,isCapableOfRenderingToFloatTexture:()=>BT,isDownloadFloatTextureEnabled:()=>VT,isReshapeFree:()=>Eu,isWebGLFenceEnabled:()=>GT,isWebGLVersionEnabled:()=>vw,linkProgram:()=>kT,logShaderSourceAndInfoLog:()=>Cw,resetMaxTextureSize:()=>ftt,resetMaxTexturesInShader:()=>dtt,unbindColorTextureFromFramebuffer:()=>Sw,unbindTextureUnit:()=>ptt,validateFramebuffer:()=>md,validateProgram:()=>Yh,validateTextureSize:()=>$T});var Pc={},xw={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function wT(r,t){Pc[r]=t}function Gn(r,t){if(!(r in Pc)||t!=null){let n=stt(r,t);if(n!==null)Pc[r]=n;else return console.log(\"Could not get context for WebGL version\",r),null}let e=Pc[r];return e==null||e.isContextLost()?(delete Pc[r],Gn(r)):(e.disable(e.DEPTH_TEST),e.disable(e.STENCIL_TEST),e.disable(e.BLEND),e.disable(e.DITHER),e.disable(e.POLYGON_OFFSET_FILL),e.disable(e.SAMPLE_COVERAGE),e.enable(e.SCISSOR_TEST),e.enable(e.CULL_FACE),e.cullFace(e.BACK),Pc[r])}function ott(r){if(typeof OffscreenCanvas!=\"undefined\"&&r===2)return new OffscreenCanvas(300,150);if(typeof document!=\"undefined\")return document.createElement(\"canvas\");throw new Error(\"Cannot create a canvas in this context\")}function stt(r,t){if(r!==1&&r!==2)throw new Error(\"Cannot get WebGL rendering context, WebGL is disabled.\");let e=t==null?ott(r):t;return e.addEventListener(\"webglcontextlost\",n=>{n.preventDefault(),delete Pc[r]},!1),z().getBool(\"SOFTWARE_WEBGL_ENABLED\")&&(xw.failIfMajorPerformanceCaveat=!1),r===1?e.getContext(\"webgl\",xw)||e.getContext(\"experimental-webgl\",xw):e.getContext(\"webgl2\",xw)}var ku;(function(r){r[r.DENSE=0]=\"DENSE\",r[r.SHARED_BATCH=1]=\"SHARED_BATCH\"})(ku||(ku={}));var jr;(function(r){r[r.RENDER=0]=\"RENDER\",r[r.UPLOAD=1]=\"UPLOAD\",r[r.PIXELS=2]=\"PIXELS\",r[r.DOWNLOAD=3]=\"DOWNLOAD\"})(jr||(jr={}));var Pr;(function(r){r[r.UNPACKED_FLOAT16=0]=\"UNPACKED_FLOAT16\",r[r.UNPACKED_FLOAT32=1]=\"UNPACKED_FLOAT32\",r[r.PACKED_4X1_UNSIGNED_BYTE=2]=\"PACKED_4X1_UNSIGNED_BYTE\",r[r.PACKED_2X2_FLOAT32=3]=\"PACKED_2X2_FLOAT32\",r[r.PACKED_2X2_FLOAT16=4]=\"PACKED_2X2_FLOAT16\"})(Pr||(Pr={}));function Lc(r,t){return[t,r]}function XP(r,t){return r*t}function jh(r){let t=y.sizeFromShape(r),e=Math.ceil(t/4);return y.sizeToSquarishShape(e)}function Xi(r,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(r/2))]}function YP(r,t){let[e,n]=Xi(r,t);return e*n*4}function Xh(r,t){let e=r,n,o,s,i,a,u,l,c,p,m;return z().getNumber(\"WEBGL_VERSION\")===2?(n=e.R32F,o=e.R16F,s=e.RGBA16F,i=e.RGBA32F,a=e.RED,l=4,c=1,p=e.HALF_FLOAT,m=e.FLOAT,u=e.RGBA8):(n=r.RGBA,o=r.RGBA,s=r.RGBA,i=e.RGBA,a=r.RGBA,l=4,c=4,p=t!=null?t.HALF_FLOAT_OES:null,m=r.FLOAT,u=r.RGBA),{internalFormatFloat:n,internalFormatHalfFloat:o,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:a,downloadTextureFormat:u,downloadUnpackNumChannels:l,defaultNumChannels:c,textureTypeHalfFloat:p,textureTypeFloat:m}}function yt(r,t){let e=t();return z().getBool(\"DEBUG\")&&itt(r),e}function itt(r){let t=r.getError();if(t!==r.NO_ERROR)throw new Error(\"WebGL Error: \"+ZP(r,t))}var att=596e-10,ltt=65504;function ST(r){return!!(z().getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")||r===0||attr.getExtension(t),'Extension \"'+t+'\" not supported on this browser.')}function vT(r,t){let e=gl(r,()=>r.createShader(r.VERTEX_SHADER),\"Unable to create vertex WebGLShader.\");if(yt(r,()=>r.shaderSource(e,t)),yt(r,()=>r.compileShader(e)),r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw console.log(r.getShaderInfoLog(e)),new Error(\"Failed to compile vertex shader.\");return e}function NT(r,t){let e=gl(r,()=>r.createShader(r.FRAGMENT_SHADER),\"Unable to create fragment WebGLShader.\");if(yt(r,()=>r.shaderSource(e,t)),yt(r,()=>r.compileShader(e)),z().get(\"ENGINE_COMPILE_ONLY\"))return e;if(r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw Cw(t,r.getShaderInfoLog(e)),new Error(\"Failed to compile fragment shader.\");return e}var utt=/ERROR: [0-9]+:([0-9]+):/g;function Cw(r,t){let e=utt.exec(t);if(e==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(r);return}let n=+e[1],o=r.split(`\n`),s=o.length.toString().length+2,i=o.map((p,m)=>y.rightPad((m+1).toString(),s)+p),a=0;for(let p=0;pr.createProgram(),\"Unable to create WebGLProgram.\")}function kT(r,t){if(yt(r,()=>r.linkProgram(t)),!z().get(\"ENGINE_COMPILE_ONLY\")&&r.getProgramParameter(t,r.LINK_STATUS)===!1)throw console.log(r.getProgramInfoLog(t)),new Error(\"Failed to link vertex and fragment shaders.\")}function Yh(r,t){if(yt(r,()=>r.validateProgram(t)),r.getProgramParameter(t,r.VALIDATE_STATUS)===!1)throw console.log(r.getProgramInfoLog(t)),new Error(\"Shader program validation failed.\")}function ET(r,t){let e=gl(r,()=>r.createBuffer(),\"Unable to create WebGLBuffer\");return yt(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),yt(r,()=>r.bufferData(r.ARRAY_BUFFER,t,r.STATIC_DRAW)),e}function _T(r,t){let e=gl(r,()=>r.createBuffer(),\"Unable to create WebGLBuffer\");return yt(r,()=>r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,e)),yt(r,()=>r.bufferData(r.ELEMENT_ARRAY_BUFFER,t,r.STATIC_DRAW)),e}function ctt(){return z().getNumber(\"WEBGL_VERSION\")===2?1:4}function AT(r){return gl(r,()=>r.createTexture(),\"Unable to create WebGLTexture.\")}function $T(r,t){let e=z().getNumber(\"WEBGL_MAX_TEXTURE_SIZE\");if(r<=0||t<=0){let n=`[${r}x${t}]`;throw new Error(\"Requested texture size \"+n+\" is invalid.\")}if(r>e||t>e){let n=`[${r}x${t}]`,o=`[${e}x${e}]`;throw new Error(\"Requested texture size \"+n+\" greater than WebGL maximum on this browser / GPU \"+o+\".\")}}function DT(r){return gl(r,()=>r.createFramebuffer(),\"Unable to create WebGLFramebuffer.\")}function Iw(r,t,e,n,o,s,i){let a=r.getAttribLocation(t,e);return a===-1?!1:(yt(r,()=>r.bindBuffer(r.ARRAY_BUFFER,n)),yt(r,()=>r.vertexAttribPointer(a,o,r.FLOAT,!1,s,i)),yt(r,()=>r.enableVertexAttribArray(a)),!0)}function JP(r,t,e){tL(r,e),yt(r,()=>r.activeTexture(r.TEXTURE0+e)),yt(r,()=>r.bindTexture(r.TEXTURE_2D,t))}function ptt(r,t){tL(r,t),yt(r,()=>r.activeTexture(r.TEXTURE0+t)),yt(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function RT(r,t,e){return gl(r,()=>r.getUniformLocation(t,e),'uniform \"'+e+'\" not present in program.')}function FT(r,t,e){return r.getUniformLocation(t,e)}function OT(r,t,e,n){yt(r,()=>JP(r,t,n)),yt(r,()=>r.uniform1i(e,n))}function mtt(r){yt(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,null)),yt(r,()=>r.viewport(0,0,r.canvas.width,r.canvas.height)),yt(r,()=>r.scissor(0,0,r.canvas.width,r.canvas.height))}function Zh(r,t,e){yt(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,e)),yt(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,t,0))}function Sw(r,t){yt(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,t)),yt(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,null,0))}function md(r){let t=r.checkFramebufferStatus(r.FRAMEBUFFER);if(t!==r.FRAMEBUFFER_COMPLETE)throw new Error(\"Error binding framebuffer: \"+QP(r,t))}function QP(r,t){switch(t){case r.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return\"FRAMEBUFFER_INCOMPLETE_ATTACHMENT\";case r.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return\"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT\";case r.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return\"FRAMEBUFFER_INCOMPLETE_DIMENSIONS\";case r.FRAMEBUFFER_UNSUPPORTED:return\"FRAMEBUFFER_UNSUPPORTED\";default:return`unknown error ${t}`}}function gl(r,t,e){let n=yt(r,()=>t());if(n==null)throw new Error(e);return n}function tL(r,t){let e=r.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,n=t+r.TEXTURE0;if(ne){let o=`[gl.TEXTURE0, gl.TEXTURE${e}]`;throw new Error(`textureUnit must be in ${o}.`)}}function xl(r,t=2){return y.sizeFromShape(r.slice(0,r.length-t))}function yl(r){if(r.length===0)throw Error(\"Cannot get rows and columns of an empty shape array.\");return[r.length>1?r[r.length-2]:1,r[r.length-1]]}function fd(r){let t=[1,1,1];return r.length===0||r.length===1&&r[0]===1||(t=[xl(r),...yl(r)]),t}function PT(r,t=!1){let e=z().getNumber(\"WEBGL_MAX_TEXTURE_SIZE\"),n=z().getNumber(\"WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE\");n===1/0&&z().getBool(\"WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE\")&&(n=e/2),t&&(e=e*2,n=n*2,r=r.map((a,u)=>u>=r.length-2?y.nearestLargerEven(r[u]):r[u]),r.length===1&&(r=[2,r[0]])),r.length!==2&&(r=y.squeezeShape(r).newShape);let o=y.sizeFromShape(r),s=null;r.length<=1&&o<=e?s=[1,o]:r.length===2&&r[0]<=e&&r[1]<=e?s=r:r.length===3&&r[0]*r[1]<=e&&r[2]<=e?s=[r[0]*r[1],r[2]]:r.length===3&&r[0]<=e&&r[1]*r[2]<=e?s=[r[0],r[1]*r[2]]:r.length===4&&r[0]*r[1]*r[2]<=e&&r[3]<=e?s=[r[0]*r[1]*r[2],r[3]]:r.length===4&&r[0]<=e&&r[1]*r[2]*r[3]<=e&&(s=[r[0],r[1]*r[2]*r[3]]);let i=s!=null&&Math.max(...s)>n&&Math.min(...s)<=(t?2:1)&&Math.min(...s)>0;if(s==null||i)if(t){let a=xl(r),u=2,l=2;r.length&&([u,l]=yl(r)),o=a*(u/2)*(l/2),s=y.sizeToSquarishShape(o).map(c=>c*2)}else s=y.sizeToSquarishShape(o);return s}function yw(r){return r%2===0}function Eu(r,t){if(r=r.slice(-2),t=t.slice(-2),y.arraysEqual(r,t)||!r.length||!t.length||r[0]===0||r[1]===0||t[0]===0||t[1]===0)return!0;if(r.length!==t.length){let e=r.slice(-1)[0],n=t.slice(-1)[0];if(e===n||yw(e)&&yw(n)&&(r[0]===1||t[0]===1))return!0}return r[1]===t[1]&&yw(r[0])&&yw(t[0])}var bw,ww;function LT(r){if(bw==null){let t=Gn(r);bw=t.getParameter(t.MAX_TEXTURE_SIZE)}return bw}function ftt(){bw=null}function dtt(){ww=null}function MT(r){if(ww==null){let t=Gn(r);ww=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,ww)}function zT(r){if(r===0)return 0;let t,e=Gn(r);return Wn(e,\"EXT_disjoint_timer_query_webgl2\")&&r===2?t=2:Wn(e,\"EXT_disjoint_timer_query\")?t=1:t=0,t}function Wn(r,t){return r.getExtension(t)!=null}function vw(r){try{if(Gn(r)!=null)return!0}catch(t){return console.log(\"Error when getting WebGL context: \",t),!1}return!1}function BT(r){if(r===0)return!1;let t=Gn(r);if(r===1){if(!Wn(t,\"OES_texture_float\"))return!1}else if(!Wn(t,\"EXT_color_buffer_float\"))return!1;return IT(t)}function VT(r){if(r===0)return!1;let t=Gn(r);if(r===1){if(!Wn(t,\"OES_texture_float\")||!Wn(t,\"WEBGL_color_buffer_float\"))return!1}else{if(Wn(t,\"EXT_color_buffer_float\"))return IT(t);let n=\"EXT_color_buffer_half_float\";if(Wn(t,n)){let o=t.getExtension(n);return htt(t,o)}return!1}return IT(t)}function IT(r){let t=Xh(r),e=r.createTexture();r.bindTexture(r.TEXTURE_2D,e);let n=1,o=1;r.texImage2D(r.TEXTURE_2D,0,t.internalFormatFloat,n,o,0,t.textureFormatFloat,t.textureTypeFloat,null);let s=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,s),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0);let i=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(e),r.deleteFramebuffer(s),i}function htt(r,t){let e=Xh(r,t),n=r.createTexture();r.bindTexture(r.TEXTURE_2D,n);let o=1,s=1;r.texImage2D(r.TEXTURE_2D,0,e.internalFormatHalfFloat,o,s,0,e.textureFormatFloat,e.textureTypeHalfFloat,null);let i=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,i),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,n,0);let a=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(n),r.deleteFramebuffer(i),a}function GT(r){return r!==2?!1:Gn(r).fenceSync!=null}function Qs(r,t){Array.isArray(r)||(r=[r]),r.forEach(e=>{e!=null&&y.assert(e.dtype!==\"complex64\",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var Tt=z();Tt.registerFlag(\"HAS_WEBGL\",()=>Tt.getNumber(\"WEBGL_VERSION\")>0);Tt.registerFlag(\"WEBGL_VERSION\",()=>vw(2)?2:vw(1)?1:0);Tt.registerFlag(\"WEBGL_CHECK_NUMERICAL_PROBLEMS\",()=>!1);Tt.registerFlag(\"WEBGL_BUFFER_SUPPORTED\",()=>Tt.get(\"WEBGL_VERSION\")===2);Tt.registerFlag(\"WEBGL_CPU_FORWARD\",()=>!0);Tt.registerFlag(\"WEBGL_FORCE_F16_TEXTURES\",()=>!1);Tt.registerFlag(\"WEBGL_PACK\",()=>Tt.getBool(\"HAS_WEBGL\"));Tt.registerFlag(\"WEBGL_PACK_NORMALIZATION\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_CLIP\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_DEPTHWISECONV\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_BINARY_OPERATIONS\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_UNARY_OPERATIONS\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_ARRAY_OPERATIONS\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_IMAGE_OPERATIONS\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_REDUCE\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_LAZILY_UNPACK\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_CONV_IM2COL\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_MAX_TEXTURE_SIZE\",()=>LT(Tt.getNumber(\"WEBGL_VERSION\")));Tt.registerFlag(\"WEBGL_MAX_TEXTURES_IN_SHADER\",()=>MT(Tt.getNumber(\"WEBGL_VERSION\")));Tt.registerFlag(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\",()=>{let r=Tt.getNumber(\"WEBGL_VERSION\");return r===0?0:zT(r)});Tt.registerFlag(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\",()=>Tt.getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0&&!Kl.isMobile());Tt.registerFlag(\"WEBGL_RENDER_FLOAT32_CAPABLE\",()=>BT(Tt.getNumber(\"WEBGL_VERSION\")));Tt.registerFlag(\"WEBGL_RENDER_FLOAT32_ENABLED\",()=>Tt.getBool(\"WEBGL_FORCE_F16_TEXTURES\")?!1:Tt.getBool(\"WEBGL_RENDER_FLOAT32_CAPABLE\"));Tt.registerFlag(\"WEBGL_DOWNLOAD_FLOAT_ENABLED\",()=>VT(Tt.getNumber(\"WEBGL_VERSION\")));Tt.registerFlag(\"WEBGL_FENCE_API_ENABLED\",()=>GT(Tt.getNumber(\"WEBGL_VERSION\")));Tt.registerFlag(\"WEBGL_SIZE_UPLOAD_UNIFORM\",()=>Tt.getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")?4:0);Tt.registerFlag(\"WEBGL_DELETE_TEXTURE_THRESHOLD\",()=>-1,r=>{if(r<0&&r!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${r}.`)});Tt.registerFlag(\"WEBGL_FLUSH_THRESHOLD\",()=>Kl.isMobile()?1:-1,r=>{if(r<0&&r!==-1)throw new Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${r}.`)});Tt.registerFlag(\"CPU_HANDOFF_SIZE_THRESHOLD\",()=>128);Tt.registerFlag(\"WEBGL_USE_SHAPES_UNIFORMS\",()=>!1);Tt.registerFlag(\"TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD\",()=>1e5);Tt.registerFlag(\"TOPK_K_CPU_HANDOFF_THRESHOLD\",()=>128);Tt.registerFlag(\"WEBGL_EXP_CONV\",()=>!1);Tt.registerFlag(\"SOFTWARE_WEBGL_ENABLED\",()=>Tt.getBool(\"IS_TEST\"));Tt.registerFlag(\"WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE\",()=>1/0);Tt.registerFlag(\"WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE\",()=>!1);Tt.registerFlag(\"WEBGL2_ISNAN_CUSTOM\",()=>!1);function Ge(){let r,t,e,n,o,s,i,a,u,l;return z().getNumber(\"WEBGL_VERSION\")===2?(r=\"#version 300 es\",t=\"in\",e=\"out\",n=\"in\",o=\"texture\",s=\"outputColor\",i=\"out vec4 outputColor;\",a=z().getBool(\"WEBGL2_ISNAN_CUSTOM\")?`\n bool isnan_custom(float val) {\n uint floatToUint = floatBitsToUint(val);\n return (floatToUint & 0x7fffffffu) > 0x7f800000u;\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 `:\"\",u=\"\",l=`\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 `):(r=\"\",t=\"attribute\",e=\"varying\",n=\"varying\",o=\"texture2D\",s=\"gl_FragColor\",i=\"\",a=`\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 `,u=`\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 `,l=`\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:r,attribute:t,varyingVs:e,varyingFs:n,texture2D:o,output:s,defineOutput:i,defineSpecialNaN:a,defineSpecialInf:u,defineRound:l}}function ti(r,t,e=\"index\"){let n=y.computeStrides(t);return n.map((o,s)=>{let i=`int ${r[s]} = ${e} / ${o}`,a=s===n.length-1?`int ${r[s+1]} = ${e} - ${r[s]} * ${o}`:`index -= ${r[s]} * ${o}`;return`${i}; ${a};`}).join(\"\")}function Mc(r,t,e=\"index\"){let n=y.computeStrides(t);return n.map((o,s)=>{let i=`int ${r[s]} = ${e} / outShapeStrides[${s}]`,a=s===n.length-1?`int ${r[s+1]} = ${e} - ${r[s]} * outShapeStrides[${s}]`:`index -= ${r[s]} * outShapeStrides[${s}]`;return`${i}; ${a};`}).join(\"\")}function gtt(r,t){let e=r.length,n=r.map(s=>`${t}[${s}]`),o=new Array(e-1);o[e-2]=n[e-1];for(let s=e-3;s>=0;--s)o[s]=`(${o[s+1]} * ${n[s+1]})`;return o}function eL(r,t,e=\"index\"){let n=r.map((s,i)=>i),o=gtt(n,t);return o.map((s,i)=>{let a=`int ${r[i]} = ${e} / ${o[i]}`,u=i===o.length-1?`int ${r[i+1]} = ${e} - ${r[i]} * ${o[i]}`:`index -= ${r[i]} * ${o[i]}`;return`${a}; ${u};`}).join(\"\")}function hd(r){let t=y.computeStrides(r).map(e=>e.toString());return`\n int getFlatIndex(ivec3 coords) {\n return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z;\n }\n`}function gd(){return`\n int getFlatIndex(ivec3 coords) {\n return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z;\n }\n`}var Nw=`\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`;var{getBroadcastDims:rL}=v;function nL(r,t,e){let n=[];if(r.forEach(f=>{let d=y.sizeFromShape(f.shapeInfo.logicalShape);if(f.shapeInfo.isUniform?n.push(`uniform float ${f.name}${d>1?`[${d}]`:\"\"};`):(n.push(`uniform sampler2D ${f.name};`),n.push(`uniform int offset${f.name};`)),e.enableShapeUniforms){let{uniformShape:h}=Tw(e.packedInputs,f.shapeInfo.logicalShape,f.shapeInfo.texShape);switch(h.length){case 1:n.push(`uniform int ${f.name}Shape;`);break;case 2:n.push(`uniform ivec2 ${f.name}Shape;`);break;case 3:n.push(`uniform ivec3 ${f.name}Shape;`);break;case 4:n.push(`uniform ivec4 ${f.name}Shape;`);break;default:break}n.push(`uniform ivec2 ${f.name}TexShape;`)}}),e.enableShapeUniforms){switch(t.logicalShape.length){case 1:n.push(\"uniform int outShape;\");break;case 2:n.push(\"uniform ivec2 outShape;\"),n.push(\"uniform int outShapeStrides;\");break;case 3:n.push(\"uniform ivec3 outShape;\"),n.push(\"uniform ivec2 outShapeStrides;\");break;case 4:n.push(\"uniform ivec4 outShape;\"),n.push(\"uniform ivec3 outShapeStrides;\");break;default:break}n.push(\"uniform ivec2 outTexShape;\")}e.customUniforms&&e.customUniforms.forEach(f=>{n.push(`uniform ${f.type} ${f.name}${f.arrayIndex?`[${f.arrayIndex}]`:\"\"};`)});let o=n.join(`\n`),s=r.map(f=>xtt(f,t,e.packedInputs,e.enableShapeUniforms)).join(`\n`),i=t.texShape,a=Ge(),u=wtt(a),l,c,p=Stt(a);return t.isPacked?(l=ytt(t.logicalShape,i,e.enableShapeUniforms),c=Itt(a)):(l=btt(t.logicalShape,i,e.enableShapeUniforms),c=Ctt(a)),e.packedInputs&&(p+=ktt),[p,u,c,o,l,s,e.userCode].join(`\n`)}function yd(r,t=!1){let e=r.shapeInfo.logicalShape;switch(e.length){case 0:return ztt(r,t);case 1:return Vtt(r,t);case 2:return Wtt(r,t);case 3:return Htt(r,t);case 4:return Ktt(r,t);case 5:return jtt(r);case 6:return Xtt(r);default:throw new Error(`${e.length}-D input sampling is not yet supported`)}}function oL(r,t){switch(r.shapeInfo.logicalShape.length){case 0:return Mtt(r);case 1:return Btt(r,t);case 2:return Gtt(r,t);case 3:return Utt(r,t);default:return qtt(r,t)}}function xtt(r,t,e=!1,n){let o=\"\";e?o+=oL(r,n):o+=yd(r,n);let s=r.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(e?o+=Ytt(r,t):o+=Ztt(r,t)),o}function ytt(r,t,e){switch(r.length){case 0:return sL();case 1:return Ett(r,t,e);case 2:return Ptt(r,t,e);case 3:return Att(r,t,e);default:return Dtt(r,t,e)}}function btt(r,t,e){switch(r.length){case 0:return sL();case 1:return _tt(r,t,e);case 2:return Ltt(r,t,e);case 3:return $tt(r,t,e);case 4:return Rtt(r,t,e);case 5:return Ftt(r,t);case 6:return Ott(r,t);default:throw new Error(`${r.length}-D output sampling is not yet supported`)}}function wtt(r){return`\n float sampleTexture(sampler2D textureSampler, vec2 uv) {\n return ${r.texture2D}(textureSampler, uv).r;\n }\n `}function Ctt(r){return`\n void setOutput(float val) {\n ${r.output} = vec4(val, 0, 0, 0);\n }\n `}function Itt(r){return`\n void setOutput(vec4 val) {\n ${r.output} = val;\n }\n `}function Stt(r){return`${r.version}\n precision highp float;\n precision highp int;\n precision highp sampler2D;\n ${r.varyingFs} vec2 resultUV;\n ${r.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 ${r.defineSpecialNaN}\n ${r.defineSpecialInf}\n ${r.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 ${vtt}\n ${Ntt}\n ${Ttt}\n `}var vtt=`\nvec2 uvFromFlat(int texNumR, int texNumC, int index) {\n int texR = index / texNumC;\n int texC = index - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\nvec2 packedUVfrom1D(int texNumR, int texNumC, int index) {\n int texelIndex = index / 2;\n int texR = texelIndex / texNumC;\n int texC = texelIndex - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n`,Ntt=`\nvec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR,\n int texNumC, int row, int col) {\n int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2);\n int texR = texelIndex / texNumC;\n int texC = texelIndex - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n`,Ttt=`\nvec2 packedUVfrom3D(int texNumR, int texNumC,\n int texelsInBatch, int texelsInLogicalRow, int b,\n int row, int col) {\n int index = b * texelsInBatch + (row / 2) * texelsInLogicalRow + (col / 2);\n int texR = index / texNumC;\n int texC = index - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n`,ktt=`\n float getChannel(vec4 frag, vec2 innerDims) {\n vec2 modCoord = mod(innerDims, 2.);\n return modCoord.x == 0. ?\n (modCoord.y == 0. ? frag.r : frag.g) :\n (modCoord.y == 0. ? frag.b : frag.a);\n }\n float getChannel(vec4 frag, int dim) {\n float modCoord = mod(float(dim), 2.);\n return modCoord == 0. ? frag.r : frag.g;\n }\n`;function sL(){return`\n int getOutputCoords() {\n return 0;\n }\n `}function Ett(r,t,e){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return n[0]===1?e?`\n int getOutputCoords() {\n return 2 * int(resultUV.x * ceil(float(outTexShape[1]) / 2.0));\n }\n `:`\n int getOutputCoords() {\n return 2 * int(resultUV.x * ${n[1]}.0);\n }\n `:n[1]===1?e?`\n int getOutputCoords() {\n return 2 * int(resultUV.y * ceil(float(outTexShape[0]) / 2.0));\n }\n `:`\n int getOutputCoords() {\n return 2 * int(resultUV.y * ${n[0]}.0);\n }\n `:e?`\n int getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n return 2 * (resTexRC.x * packedTexShape[1] + resTexRC.y);\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 `}function _tt(r,t,e){return t[0]===1?e?`\n int getOutputCoords() {\n return int(resultUV.x * float(outTexShape[1]));\n }\n `:`\n int getOutputCoords() {\n return int(resultUV.x * ${t[1]}.0);\n }\n `:t[1]===1?e?`\n int getOutputCoords() {\n return int(resultUV.y * float(outTexShape[0]));\n }\n `:`\n int getOutputCoords() {\n return int(resultUV.y * ${t[0]}.0);\n }\n `:e?`\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(outTexShape[0], outTexShape[1]));\n return resTexRC.x * outTexShape[1] + resTexRC.y;\n }\n `:`\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t[0]}, ${t[1]}));\n return resTexRC.x * ${t[1]} + resTexRC.y;\n }\n `}function Att(r,t,e){if(e)return`\n ivec3 getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n int texelsInLogicalRow = int(ceil(float(outShape[2]) / 2.0));\n int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n int index = resTexRC.x * packedTexShape[1] + resTexRC.y;\n\n int b = index / texelsInBatch;\n index -= b * texelsInBatch;\n\n int r = 2 * (index / texelsInLogicalRow);\n int c = imod(index, texelsInLogicalRow) * 2;\n\n return ivec3(b, r, c);\n }\n `;let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],o=Math.ceil(r[2]/2),s=o*Math.ceil(r[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 / ${s};\n index -= b * ${s};\n\n int r = 2 * (index / ${o});\n int c = imod(index, ${o}) * 2;\n\n return ivec3(b, r, c);\n }\n `}function $tt(r,t,e){if(e)return`\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(outTexShape[0], outTexShape[1]));\n int index = resTexRC.x * outTexShape[1] + resTexRC.y;\n ${Mc([\"r\",\"c\",\"d\"],r)}\n return ivec3(r, c, d);\n }\n`;let n=ti([\"r\",\"c\",\"d\"],r);return`\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t[0]}, ${t[1]}));\n int index = resTexRC.x * ${t[1]} + resTexRC.y;\n ${n}\n return ivec3(r, c, d);\n }\n `}function Dtt(r,t,e){if(e)return`\n ivec4 getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n int index = resTexRC.x * packedTexShape[1] + resTexRC.y;\n\n int texelsInLogicalRow = int(ceil(float(outShape[3]) / 2.0));\n int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[2]) / 2.0));\n int texelsInBatchN = texelsInBatch * outShape[1];\n\n int b2 = index / texelsInBatchN;\n index -= b2 * texelsInBatchN;\n\n int b = index / texelsInBatch;\n index -= b * texelsInBatch;\n\n int r = 2 * (index / texelsInLogicalRow);\n int c = imod(index, texelsInLogicalRow) * 2;\n\n return ivec4(b2, b, r, c);\n }\n `;let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],o=Math.ceil(r[r.length-1]/2),s=o*Math.ceil(r[r.length-2]/2),i=s,a=\"\",u=\"b, r, c\";for(let l=2;l=1?c=\"coords = 0;\":c=a.map(b=>`coords.${p[b+l]} = 0;`).join(`\n`);let m=\"\";i<2&&s>0?m=\"coords\":m=r.shapeInfo.logicalShape.map((b,w)=>`coords.${p[w+l]}`).join(\", \");let f=\"return outputValue;\",h=y.sizeFromShape(r.shapeInfo.logicalShape)===1,x=y.sizeFromShape(t.logicalShape)===1;if(s===1&&!h&&!x)f=`\n return vec4(outputValue.xy, outputValue.xy);\n `;else if(h&&!x)i===1?f=`\n return vec4(outputValue.x, outputValue.x, 0., 0.);\n `:f=`\n return vec4(outputValue.x);\n `;else if(a.length){let b=s-2,w=s-1;a.indexOf(b)>-1&&a.indexOf(w)>-1?f=\"return vec4(outputValue.x);\":a.indexOf(b)>-1?f=\"return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);\":a.indexOf(w)>-1&&(f=\"return vec4(outputValue.xx, outputValue.zz);\")}return`\n vec4 ${o}() {\n ${u} coords = getOutputCoords();\n ${c}\n vec4 outputValue = get${n}(${m});\n ${f}\n }\n `}function Ztt(r,t){let e=r.name,n=e.charAt(0).toUpperCase()+e.slice(1),o=\"get\"+n+\"AtOutCoords\",s=t.texShape,i=r.shapeInfo.texShape,a=r.shapeInfo.logicalShape.length,u=t.logicalShape.length;if(!r.shapeInfo.isUniform&&a===u&&r.shapeInfo.flatOffset==null&&y.arraysEqual(i,s))return`\n float ${o}() {\n return sampleTexture(${e}, resultUV);\n }\n `;let l=zt(u),c=rL(r.shapeInfo.logicalShape,t.logicalShape),p=u-a,m,f=[\"x\",\"y\",\"z\",\"w\",\"u\",\"v\"];a===0?m=\"\":u<2&&c.length>=1?m=\"coords = 0;\":m=c.map(h=>`coords.${f[h+p]} = 0;`).join(`\n`);let d=\"\";return u<2&&a>0?d=\"coords\":d=r.shapeInfo.logicalShape.map((h,g)=>`coords.${f[g+p]}`).join(\", \"),`\n float ${o}() {\n ${l} coords = getOutputCoords();\n ${m}\n return get${n}(${d});\n }\n `}function zt(r){if(r<=1)return\"int\";if(r===2)return\"ivec2\";if(r===3)return\"ivec3\";if(r===4)return\"ivec4\";if(r===5)return\"ivec5\";if(r===6)return\"ivec6\";throw Error(`GPU for rank ${r} is not yet supported`)}function Tw(r,t,e){let{newShape:n,keptDims:o}=y.squeezeShape(t),s=t.length,i=r&&s===3&&t[0]===1,a=i?t.slice(1):n,u=!r&&s>1&&!y.arraysEqual(t,e)&&n.lengthr[e]).join(\", \")}function aL(r,t,e,n){let o=e.map((c,p)=>{let m={logicalShape:c.shape,texShape:c.isUniform?null:c.texData.texShape,isUniform:c.isUniform,isPacked:c.isUniform?!1:c.texData.isPacked,flatOffset:null};return c.texData!=null&&c.texData.slice!=null&&c.texData.slice.flatOffset>0&&(m.flatOffset=c.texData.slice.flatOffset),{name:t.variableNames[p],shapeInfo:m}}),s=o.map(c=>c.shapeInfo),i={logicalShape:n.shape,texShape:n.texData.texShape,isUniform:!1,isPacked:n.texData.isPacked,flatOffset:null},a=nL(o,i,t),u=NT(r.gl,a),l=r.createProgram(u);return z().get(\"ENGINE_COMPILE_ONLY\")?{program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i,uniformLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,inShapesLocations:null,inTexShapesLocations:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:Object.assign({program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i},WT(r,t,l))}function WT(r,t,e){let n={},o={},s={},i=[],a,u,l,c=null,p=null;p=r.getUniformLocation(e,\"NAN\",!1),z().getNumber(\"WEBGL_VERSION\")===1&&(c=r.getUniformLocation(e,\"INFINITY\",!1));let m=!1;for(let f=0;f{i[d]=r.getUniformLocation(e,f.name,m)}),{uniformLocations:n,customUniformLocations:i,infLoc:c,nanLoc:p,inShapesLocations:o,inTexShapesLocations:s,outShapeLocation:a,outShapeStridesLocation:l,outTexShapeLocation:u}}function iL(r,t){if(r.length!==t.length)throw Error(`Binary was compiled with ${r.length} inputs, but was executed with ${t.length} inputs`);r.forEach((e,n)=>{let o=e.logicalShape,s=t[n],i=s.shape;if(!y.arraysEqual(o,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${o} and ${i} must match`);if(e.isUniform&&s.isUniform)return;let a=e.texShape,u=s.isUniform?null:s.texData.texShape;if(!y.arraysEqual(a,u))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${a} and ${u} must match`)})}function lL(r,t,e,n,o){t.program.enableShapeUniforms||(iL(t.inShapeInfos,e),iL([t.outShapeInfo],[n]));let s=n.texData.texture,i=n.texData.texShape;n.texData.isPacked?r.setOutputPackedMatrixTexture(s.texture,i[0],i[1]):r.setOutputMatrixTexture(s.texture,i[0],i[1]),r.setProgram(t.webGLProgram),z().getNumber(\"WEBGL_VERSION\")===1&&t.infLoc!==null&&r.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&r.gl.uniform1f(t.nanLoc,NaN),e.forEach((u,l)=>{let c=t.program.variableNames[l],p=t.uniformLocations[c],m=t.uniformLocations[`offset${c}`],f=t.inShapesLocations[`${c}Shape`],d=t.inTexShapesLocations[`${c}TexShape`];if(f){let{uniformShape:h}=Tw(t.program.packedInputs,u.shape,u.texData.texShape);switch(h.length){case 1:r.gl.uniform1iv(f,new Int32Array(h));break;case 2:r.gl.uniform2iv(f,new Int32Array(h));break;case 3:r.gl.uniform3iv(f,new Int32Array(h));break;case 4:r.gl.uniform4iv(f,new Int32Array(h));break;default:break}}if(d&&r.gl.uniform2i(d,u.texData.texShape[0],u.texData.texShape[1]),p!=null){if(u.isUniform){if(y.sizeFromShape(u.shape)<2)r.gl.uniform1f(p,u.uniformValues[0]);else{let h=u.uniformValues;h instanceof Float32Array||(h=new Float32Array(h)),r.gl.uniform1fv(p,h)}return}u.texData.slice!=null&&m!=null&&r.gl.uniform1i(m,u.texData.slice.flatOffset),r.setInputMatrixTexture(u.texData.texture.texture,p,l)}});let a=t.outShapeLocation;if(a)switch(n.shape.length){case 1:r.gl.uniform1iv(a,new Int32Array(n.shape));break;case 2:r.gl.uniform2iv(a,new Int32Array(n.shape));break;case 3:r.gl.uniform3iv(a,new Int32Array(n.shape));break;case 4:r.gl.uniform4iv(a,new Int32Array(n.shape));break;default:break}if(t.outShapeStridesLocation){let u=y.computeStrides(n.shape);switch(n.shape.length){case 2:r.gl.uniform1iv(t.outShapeStridesLocation,new Int32Array(u));break;case 3:r.gl.uniform2iv(t.outShapeStridesLocation,new Int32Array(u));break;case 4:r.gl.uniform3iv(t.outShapeStridesLocation,new Int32Array(u));break;default:break}}t.outTexShapeLocation&&r.gl.uniform2i(t.outTexShapeLocation,n.texData.texShape[0],n.texData.texShape[1]),t.program.customUniforms&&o&&t.program.customUniforms.forEach((u,l)=>{let c=t.customUniformLocations[l],p=o[l];if(u.type===\"float\")r.gl.uniform1fv(c,p);else if(u.type===\"vec2\")r.gl.uniform2fv(c,p);else if(u.type===\"vec3\")r.gl.uniform3fv(c,p);else if(u.type===\"vec4\")r.gl.uniform4fv(c,p);else if(u.type===\"int\")r.gl.uniform1iv(c,p);else if(u.type===\"ivec2\")r.gl.uniform2iv(c,p);else if(u.type===\"ivec3\")r.gl.uniform3iv(c,p);else if(u.type===\"ivec4\")r.gl.uniform4iv(c,p);else throw Error(`uniform type ${u.type} is not supported yet.`)}),r.executeProgram()}function uL(r,t,e){let n=\"\";t.concat(e).forEach(i=>{let a=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0;if(r.enableShapeUniforms&&!i.isUniform){let u=i.texData.texShape,{useSqueezeShape:l,uniformShape:c,keptDims:p}=Tw(r.packedInputs,i.shape,u),m=\"\",f=\"\",d=\"\";if(c.length===1&&r.packedInputs){let N=[Math.ceil(u[0]/2),Math.ceil(u[1]/2)];m=`${N[0]>1}_${N[1]>1}`}else if(c.length===2&&!r.packedInputs)f=`${c[0]>1}_${c[1]>1}`;else if(c.length>2&&!r.packedInputs){let N=y.computeStrides(c);d=`${N[0]===u[1]}_${N[N.length-1]===u[1]}`}let h=i.shape.length,g=c.length===2&&y.arraysEqual(i.shape,u),x=y.sizeFromShape(i.shape)===1,b=v.getBroadcastDims(i.shape,e.shape),w=!r.packedInputs&&h===e.shape.length&&y.arraysEqual(u,e.texData.texShape),C=r.packedInputs||c.length>2?\"\":`${u[0]>1}_${u[1]>1}`;n+=`${h}_${w}_${l?p:\"\"}_${c.length}_${x}_${b}_${g}_${m}_${f}_${d}_${C}_${a}`}else{let u=i.isUniform?\"uniform\":i.texData.texShape;n+=`${i.shape}_${u}_${a}`}});let o=r.userCode,s=r.constructor.name;return s+=\"_\"+n+\"_\"+o+`${z().getNumber(\"WEBGL_VERSION\")}`,s}function we(r){return z().getBool(\"WEBGL_USE_SHAPES_UNIFORMS\")&&r<=4}var kw=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=ku.DENSE,this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let e=Ge();this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms?Mc([\"r\",\"c\",\"d\"],t):ti([\"r\",\"c\",\"d\"],t)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1]));\n int index = 4 * (resTexRC.x * texShape[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 ${e.output} = result;\n }\n `}};var Ew=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=ku.DENSE,this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let e=Ge();this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms?Mc([\"r\",\"c\",\"d\"],t):ti([\"r\",\"c\",\"d\"],t)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1]));\n int index = 4 * (resTexRC.x * texShape[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 ${e.output} = result;\n }\n `}};var _w=class{constructor(t){this.variableNames=[\"A\"],this.outTexUsage=jr.DOWNLOAD;let e=Ge();this.outputShape=t,this.userCode=`\n ${Nw}\n\n void main() {\n float x = getAAtOutCoords();\n ${e.output} = encode_float(x);\n }\n `}};var Aw=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=jr.DOWNLOAD;let e=Ge();this.outputShape=t,this.userCode=`\n ${Nw}\n\n void main() {\n ivec3 coords = getOutputCoords();\n float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z));\n ${e.output} = encode_float(x);\n }\n `}};var tet={R:0,G:1,B:2,A:3},Jh=class{constructor(t,e=!1,n=\"RGBA\"){this.variableNames=[\"A\"],this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let o=Ge();this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length);let s=\"result\";e&&(s=\"floor(result * 255. + 0.5)\");let i=\"\";for(let a=0;aJT,createBufferFromOutputTexture:()=>ek,createFloat16MatrixTexture:()=>jT,createFloat16PackedMatrixTexture:()=>ZT,createFloat32MatrixTexture:()=>KT,createIndexBuffer:()=>qT,createPackedMatrixTexture:()=>YT,createUnsignedBytesMatrixTexture:()=>XT,createVertexBuffer:()=>HT,createVertexShader:()=>UT,downloadByteEncodedFloatMatrixFromOutputTexture:()=>nk,downloadFloat32MatrixFromBuffer:()=>rk,downloadMatrixFromPackedOutputTexture:()=>sk,downloadPackedMatrixFromBuffer:()=>ok,getInternalFormatForFloat16MatrixTexture:()=>Rw,getInternalFormatForFloat16PackedMatrixTexture:()=>Pw,getInternalFormatForFloat32MatrixTexture:()=>Dw,getInternalFormatForPackedMatrixTexture:()=>Ow,getInternalFormatForUnsignedBytesMatrixTexture:()=>Fw,uploadDenseMatrixToTexture:()=>QT,uploadPixelDataToTexture:()=>tk});function UT(r){let t=Ge(),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 }`;return vT(r,e)}function HT(r){let t=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return ET(r,t)}function qT(r){let t=new Uint16Array([0,1,2,2,1,3]);return _T(r,t)}function Qh(r,t,e,n,o,s){$T(t,e);let i=AT(r),a=r.TEXTURE_2D;return yt(r,()=>r.bindTexture(a,i)),yt(r,()=>r.texParameteri(a,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE)),yt(r,()=>r.texParameteri(a,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE)),yt(r,()=>r.texParameteri(a,r.TEXTURE_MIN_FILTER,r.NEAREST)),yt(r,()=>r.texParameteri(a,r.TEXTURE_MAG_FILTER,r.NEAREST)),z().getNumber(\"WEBGL_VERSION\")===1?yt(r,()=>r.texImage2D(a,0,n,t,e,0,o,s,null)):yt(r,()=>r.texStorage2D(a,1,n,t,e)),yt(r,()=>r.bindTexture(r.TEXTURE_2D,null)),{texture:i,texShape:[e,t]}}function Dw(r){return r.internalFormatFloat}function KT(r,t,e,n){let[o,s]=Lc(t,e);return Qh(r,o,s,Dw(n),n.textureFormatFloat,r.FLOAT)}function Rw(r){return r.internalFormatHalfFloat}function jT(r,t,e,n){let[o,s]=Lc(t,e);return Qh(r,o,s,Rw(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function Fw(r){return r.downloadTextureFormat}function XT(r,t,e,n){let[o,s]=Lc(t,e);return Qh(r,o,s,Fw(n),r.RGBA,r.UNSIGNED_BYTE)}function Ow(r){return r.internalFormatPackedFloat}function YT(r,t,e,n){let[o,s]=Xi(t,e);return Qh(r,o,s,Ow(n),r.RGBA,r.FLOAT)}function Pw(r){return r.internalFormatPackedHalfFloat}function ZT(r,t,e,n){let[o,s]=Xi(t,e);return Qh(r,o,s,Pw(n),r.RGBA,n.textureTypeHalfFloat)}function JT(r,t,e){return yt(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),Iw(r,t,\"clipSpacePos\",e,3,20,0)&&Iw(r,t,\"uv\",e,2,20,12)}function QT(r,t,e,n,o,s){yt(r,()=>r.bindTexture(r.TEXTURE_2D,t));let i,a,u;o instanceof Uint8Array?(i=new Uint8Array(e*n*4),a=r.UNSIGNED_BYTE,u=r.RGBA):(i=new Float32Array(e*n*4),a=r.FLOAT,u=s.internalFormatPackedFloat),i.set(o),z().getNumber(\"WEBGL_VERSION\")===2?yt(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,e,n,r.RGBA,a,i)):yt(r,()=>r.texImage2D(r.TEXTURE_2D,0,u,e,n,0,r.RGBA,a,i)),yt(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function tk(r,t,e){yt(r,()=>r.bindTexture(r.TEXTURE_2D,t)),e.data instanceof Uint8Array?z().getNumber(\"WEBGL_VERSION\")===2?yt(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,e.width,e.height,r.RGBA,r.UNSIGNED_BYTE,e.data)):yt(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,e.width,e.height,0,r.RGBA,r.UNSIGNED_BYTE,e.data)):z().getNumber(\"WEBGL_VERSION\")===2?yt(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,e)):yt(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e)),yt(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function ek(r,t,e,n){let o=r.createBuffer();yt(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,o));let a=4*4*t*e;return yt(r,()=>r.bufferData(r.PIXEL_PACK_BUFFER,a,r.STREAM_READ)),yt(r,()=>r.readPixels(0,0,e,t,r.RGBA,r.FLOAT,0)),yt(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,null)),o}function rk(r,t,e){let n=r,o=new Float32Array(e);return n.bindBuffer(n.PIXEL_PACK_BUFFER,t),n.getBufferSubData(n.PIXEL_PACK_BUFFER,0,o),n.bindBuffer(n.PIXEL_PACK_BUFFER,null),o}function nk(r,t,e,n){let[o,s]=Lc(t,e),i=4,a=new Uint8Array(XP(t*e,i));return yt(r,()=>r.readPixels(0,0,o,s,n.downloadTextureFormat,r.UNSIGNED_BYTE,a)),new Float32Array(a.buffer)}function ok(r,t,e,n,o,s,i,a){let u=r,l=new Float32Array(YP(s,i));return u.bindBuffer(u.PIXEL_PACK_BUFFER,t),u.getBufferSubData(u.PIXEL_PACK_BUFFER,0,l),u.bindBuffer(u.PIXEL_PACK_BUFFER,null),l}function sk(r,t,e){let n=new Float32Array(t*e*4);return yt(r,()=>r.readPixels(0,0,e,t,r.RGBA,r.FLOAT,n)),n}var Bc=class{constructor(t){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let e=z().getNumber(\"WEBGL_VERSION\");t!=null?(this.gl=t,wT(e,t)):this.gl=Gn(e);let n=\"WEBGL_color_buffer_float\",o=\"EXT_color_buffer_half_float\";if(this.parallelCompilationExtension=this.gl.getExtension(\"KHR_parallel_shader_compile\"),z().getNumber(\"WEBGL_VERSION\")===1){let s=\"OES_texture_float\",i=\"OES_texture_half_float\";if(this.textureFloatExtension=pd(this.gl,s),Wn(this.gl,i))this.textureHalfFloatExtension=pd(this.gl,i);else if(z().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),Wn(this.gl,o))this.colorBufferHalfFloatExtension=pd(this.gl,o);else if(z().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\",Wn(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(Wn(this.gl,o))this.colorBufferHalfFloatExtension=this.gl.getExtension(o);else throw new Error(\"GL context does not support color renderable floats\");this.vertexBuffer=HT(this.gl),this.indexBuffer=qT(this.gl),this.framebuffer=DT(this.gl),this.textureConfig=Xh(this.gl,this.textureHalfFloatExtension)}get debug(){return z().getBool(\"DEBUG\")}dispose(){if(this.disposed)return;this.program!=null&&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.\"),this.outputTexture!=null&&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.\");let t=this.gl;yt(t,()=>t.finish()),yt(t,()=>t.bindFramebuffer(t.FRAMEBUFFER,null)),yt(t,()=>t.deleteFramebuffer(this.framebuffer)),yt(t,()=>t.bindBuffer(t.ARRAY_BUFFER,null)),yt(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)),yt(t,()=>t.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(t,e){return this.throwIfDisposed(),KT(this.gl,t,e,this.textureConfig)}createFloat16MatrixTexture(t,e){return this.throwIfDisposed(),jT(this.gl,t,e,this.textureConfig)}createUnsignedBytesMatrixTexture(t,e){return this.throwIfDisposed(),XT(this.gl,t,e,this.textureConfig)}uploadPixelDataToTexture(t,e){this.throwIfDisposed(),tk(this.gl,t,e)}uploadDenseMatrixToTexture(t,e,n,o){this.throwIfDisposed(),QT(this.gl,t,e,n,o,this.textureConfig)}createFloat16PackedMatrixTexture(t,e){return this.throwIfDisposed(),ZT(this.gl,t,e,this.textureConfig)}createPackedMatrixTexture(t,e){return this.throwIfDisposed(),YT(this.gl,t,e,this.textureConfig)}deleteMatrixTexture(t){this.throwIfDisposed(),this.outputTexture===t&&(Sw(this.gl,this.framebuffer),this.outputTexture=null),yt(this.gl,()=>this.gl.deleteTexture(t))}downloadByteEncodedFloatMatrixFromOutputTexture(t,e,n){return this.downloadMatrixDriver(t,()=>nk(this.gl,e,n,this.textureConfig))}downloadPackedMatrixFromBuffer(t,e,n,o,s,i){return ok(this.gl,t,e,n,o,s,i,this.textureConfig)}downloadFloat32MatrixFromBuffer(t,e){return rk(this.gl,t,e)}createBufferFromTexture(t,e,n){this.bindTextureToFrameBuffer(t);let o=ek(this.gl,e,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),o}createAndWaitForFence(){let t=this.createFence(this.gl);return this.pollFence(t)}createFence(t){let e,n;if(z().getBool(\"WEBGL_FENCE_API_ENABLED\")){let o=t,s=o.fenceSync(o.SYNC_GPU_COMMANDS_COMPLETE,0);t.flush(),n=()=>{let i=o.clientWaitSync(s,0,0);return i===o.ALREADY_SIGNALED||i===o.CONDITION_SATISFIED},e=s}else z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0?(e=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(e,z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))):n=()=>!0;return{query:e,isFencePassed:n}}downloadMatrixFromPackedTexture(t,e,n){return this.downloadMatrixDriver(t,()=>sk(this.gl,e,n))}createProgram(t){this.throwIfDisposed();let e=this.gl;this.vertexShader==null&&(this.vertexShader=UT(e));let n=TT(e);return yt(e,()=>e.attachShader(n,this.vertexShader)),yt(e,()=>e.attachShader(n,t)),kT(e,n),this.debug&&Yh(e,n),this.vertexAttrsAreBound||(this.setProgram(n),this.vertexAttrsAreBound=JT(e,this.program,this.vertexBuffer)),n}deleteProgram(t){this.throwIfDisposed(),t===this.program&&(this.program=null),t!=null&&yt(this.gl,()=>this.gl.deleteProgram(t))}setProgram(t){this.throwIfDisposed(),this.program=t,this.program!=null&&this.debug&&Yh(this.gl,this.program),yt(this.gl,()=>this.gl.useProgram(t))}getUniformLocation(t,e,n=!0){return this.throwIfDisposed(),n?RT(this.gl,t,e):FT(this.gl,t,e)}getAttributeLocation(t,e){return this.throwIfDisposed(),yt(this.gl,()=>this.gl.getAttribLocation(t,e))}getUniformLocationNoThrow(t,e){return this.throwIfDisposed(),this.gl.getUniformLocation(t,e)}setInputMatrixTexture(t,e,n){this.throwIfDisposed(),this.throwIfNoProgram(),OT(this.gl,t,e,n)}setOutputMatrixTexture(t,e,n){this.setOutputMatrixTextureDriver(t,n,e)}setOutputPackedMatrixTexture(t,e,n){this.throwIfDisposed();let[o,s]=Xi(e,n);this.setOutputMatrixTextureDriver(t,o,s)}setOutputMatrixWriteRegion(t,e,n,o){this.setOutputMatrixWriteRegionDriver(n,t,o,e)}setOutputPackedMatrixWriteRegion(t,e,n,o){throw new Error(\"setOutputPackedMatrixWriteRegion not implemented.\")}debugValidate(){this.program!=null&&Yh(this.gl,this.program),md(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let t=this.gl;this.debug&&this.debugValidate(),yt(t,()=>t.drawElements(t.TRIANGLES,6,t.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),yt(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=pd(this.gl,z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")===2?\"EXT_disjoint_timer_query_webgl2\":\"EXT_disjoint_timer_query\")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")===2){let n=this.gl,o=this.getQueryTimerExtensionWebGL2(),s=n.createQuery();return n.beginQuery(o.TIME_ELAPSED_EXT,s),s}let t=this.getQueryTimerExtensionWebGL1(),e=t.createQueryEXT();return t.beginQueryEXT(t.TIME_ELAPSED_EXT,e),e}endQuery(){if(z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")===2){let e=this.gl,n=this.getQueryTimerExtensionWebGL2();e.endQuery(n.TIME_ELAPSED_EXT);return}let t=this.getQueryTimerExtensionWebGL1();t.endQueryEXT(t.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(t){return await y.repeatedTry(()=>this.disposed||this.isQueryAvailable(t,z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))),this.getQueryTime(t,z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))}getQueryTime(t,e){if(e===0)return null;if(e===2){let n=this.gl;return n.getQueryParameter(t,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(t,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(t,e){if(e===0)return!0;if(e===2){let n=this.gl,o=this.getQueryTimerExtensionWebGL2(),s=n.getQueryParameter(t,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(o.GPU_DISJOINT_EXT)),s&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),o=n.getQueryObjectEXT(t,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),o&&!this.disjoint}}pollFence(t){return new Promise(e=>{this.addItemToPoll(()=>t.isFencePassed(),()=>e())})}pollItems(){let t=eet(this.itemsToPoll.map(e=>e.isDoneFn));for(let e=0;e<=t;++e){let{resolveFn:n}=this.itemsToPoll[e];n()}this.itemsToPoll=this.itemsToPoll.slice(t+1)}addItemToPoll(t,e){if(this.itemsToPoll.push({isDoneFn:t,resolveFn:e}),this.itemsToPoll.length>1)return;let n;\"setTimeoutCustom\"in z().platform&&(n=z().platform.setTimeoutCustom.bind(z().platform)),y.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(t){this.throwIfDisposed(),Zh(this.gl,t,this.framebuffer),this.debug&&md(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(Zh(this.gl,this.outputTexture,this.framebuffer),this.debug&&md(this.gl)):Sw(this.gl,this.framebuffer)}downloadMatrixDriver(t,e){this.bindTextureToFrameBuffer(t);let n=e();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(t,e,n){this.throwIfDisposed();let o=this.gl;Zh(o,t,this.framebuffer),this.debug&&md(o),this.outputTexture=t,yt(o,()=>o.viewport(0,0,e,n)),yt(o,()=>o.scissor(0,0,e,n))}setOutputMatrixWriteRegionDriver(t,e,n,o){this.throwIfDisposed(),yt(this.gl,()=>this.gl.scissor(t,e,n,o))}throwIfDisposed(){if(this.disposed)throw new Error(\"Attempted to use disposed GPGPUContext.\")}throwIfNoProgram(){if(this.program==null)throw new Error(\"No GPU program is currently set.\")}};function eet(r){let t=0;for(;t`${r}.${e}`)}function Qe(r,t){return t===1?[r]:ak(r,t)}function QL(r,t){if(r===1)return\"rc\";let e=\"\";for(let n=0;n ${this.enableShapeUniforms?\"outShape\":this.outputShape[0]}`;let e=\"\";for(let n=this.rank-2;n= ${this.enableShapeUniforms?`outShape[${n}]`:this.outputShape[n]}`,n= ${n};\n bool rEdge = rp1 >= ${o};\n `}getOutput(t){let e=this.getSourceCoordsArr(t);return this.rank===1?`getA(rc), (rc + 1 >= ${this.enableShapeUniforms?\"outShape\":this.outputShape[0]} ? 0. : getA(rc + 1)), 0, 0`:`getA(${e[0]}),\n cEdge ? 0. : getA(${e[1]}),\n rEdge ? 0. : getA(${e[2]}),\n rEdge || cEdge ? 0. : getA(${e[3]})`}};var Id=class{constructor(t,e){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"inputShape\",type:\"ivec3\"}],this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length);let n=\"\";for(let o=0;o<4;o++){let s=\"thisRC = rc;\";o%2===1&&(s+=\"thisRC.z += 1;\"),o>1&&(s+=\"thisRC.y += 1;\"),n+=`\n ${s}\n ${o>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[${o}] =\n getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims);\n ${o>0?\"}\":\"\"}\n `}this.userCode=`\n ${ret(e,this.enableShapeUniforms)}\n ${this.enableShapeUniforms?gd():hd(t)}\n\n void main() {\n ivec3 rc = getOutputCoords();\n\n vec4 result = vec4(0.);\n\n ivec3 thisRC;\n int rows = ${this.enableShapeUniforms?\"outShape[1]\":t[1]};\n int cols = ${this.enableShapeUniforms?\"outShape[2]\":t[2]};\n\n ${n}\n\n setOutput(result);\n }\n `}};function ret(r,t){return`\n ivec3 inputCoordsFromReshapedOutCoords(int index) {\n ${t?eL([\"r\",\"c\",\"d\"],\"inputShape\"):ti([\"r\",\"c\",\"d\"],r)}\n return ivec3(r, c, d);\n }\n `}var Vw=class{constructor(t){this.gpgpu=t,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(t,e,n){let o=eM(e,n),s=rM(t,o,n);s in this.freeTextures||(this.freeTextures[s]=[]),s in this.usedTextures||(this.usedTextures[s]=[]);let i=tM(t,o,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[s].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=i,this.log();let u=this.freeTextures[s].shift();return this.usedTextures[s].push(u),u}let a;return o===Pr.PACKED_2X2_FLOAT32?a=this.gpgpu.createPackedMatrixTexture(t[0],t[1]):o===Pr.PACKED_2X2_FLOAT16?a=this.gpgpu.createFloat16PackedMatrixTexture(t[0],t[1]):o===Pr.UNPACKED_FLOAT32?a=this.gpgpu.createFloat32MatrixTexture(t[0],t[1]):o===Pr.UNPACKED_FLOAT16?a=this.gpgpu.createFloat16MatrixTexture(t[0],t[1]):o===Pr.PACKED_4X1_UNSIGNED_BYTE&&(a=this.gpgpu.createUnsignedBytesMatrixTexture(t[0],t[1])),this.usedTextures[s].push(a),this.numUsedTextures++,this._numBytesAllocated+=i,this.log(),a}releaseTexture(t,e,n,o){if(this.freeTextures==null)return;let s=eM(n,o),i=rM(e,s,o);i in this.freeTextures||(this.freeTextures[i]=[]);let a=tM(e,s,this.gpgpu.gl,this.gpgpu.textureConfig,o),u=z().get(\"WEBGL_DELETE_TEXTURE_THRESHOLD\");u!==-1&&this._numBytesAllocated>u?(this.gpgpu.deleteMatrixTexture(t.texture),this._numBytesAllocated-=a):(this.freeTextures[i].push(t),this.numFreeTextures++,this._numBytesFree+=a),this.numUsedTextures--;let l=this.usedTextures[i],c=l.indexOf(t);if(c<0)throw new Error(\"Cannot release a texture that was never provided by this texture manager\");l.splice(c,1),this.log()}log(){if(!this.logEnabled)return;let t=this.numFreeTextures+this.numUsedTextures;console.log(\"Free/Used\",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${t})`);let e=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*e)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures!=null){for(let t in this.freeTextures)this.freeTextures[t].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});for(let t in this.usedTextures)this.usedTextures[t].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function net(r,t){let e=r;if(t===e.R32F)return 4;if(t===e.R16F)return 2;if(t===e.RGBA32F)return 16;if(t===r.RGBA)return 16;if(t===e.RGBA16F)return 8;if(t===e.RGBA8)return 4;throw new Error(`Unknown internal format ${t}`)}function tM(r,t,e,n,o){let s=oet(t,n),i;if(o){let[u,l]=Xi(r[0],r[1]);i=u*l}else{let[u,l]=Lc(r[0],r[1]);i=u*l}let a=net(e,s);return i*a}function oet(r,t){switch(r){case Pr.PACKED_2X2_FLOAT32:return Ow(t);case Pr.PACKED_2X2_FLOAT16:return Pw(t);case Pr.UNPACKED_FLOAT32:return Dw(t);case Pr.UNPACKED_FLOAT16:return Rw(t);case Pr.PACKED_4X1_UNSIGNED_BYTE:return Fw(t);default:throw new Error(`Unknown physical texture type ${r}`)}}function set(r){return z().getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")?r?Pr.PACKED_2X2_FLOAT32:Pr.UNPACKED_FLOAT32:r?Pr.PACKED_2X2_FLOAT16:Pr.UNPACKED_FLOAT16}function eM(r,t){if(r===jr.UPLOAD)return Pr.PACKED_2X2_FLOAT32;if(r===jr.RENDER||r==null)return set(t);if(r===jr.DOWNLOAD||r===jr.PIXELS)return Pr.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${r}`)}function rM(r,t,e){return`${r[0]}_${r[1]}_${t}_${e}`}var tn=class{constructor(t,e){this.variableNames=[\"A\"],this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=`\n float unaryOperation(float x) {\n ${e}\n }\n\n void main() {\n float x = getAAtOutCoords();\n float y = unaryOperation(x);\n\n setOutput(y);\n }\n `}},fr=\"if (isnan(x)) return x;\",nM=\"return x;\",lk=\"return abs(x);\";var oM=\"return (x >= 0.0) ? x : (exp(x) - 1.0);\",sM=fr+`\n return (x < 0.0) ? 0.0 : x;\n`,iM=fr+`\n return (x < 0.0) ? 0.0 : min(6.0, x);\n`,Gc=\"return x;\",aM=\"return 1.0 / (1.0 + exp(-1.0 * x));\";var uM=\"return x;\",cM=`\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`,pM=`\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`,mM=`\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`,fM=\"return 1.0 / (1.0 + exp(-1.0 * x));\",so=class{constructor(t,e){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=`\n vec4 unaryOperation(vec4 x) {\n ${e}\n }\n\n void main() {\n vec4 x = getAAtOutCoords();\n vec4 y = unaryOperation(x);\n\n setOutput(y);\n }\n `}};var Gw=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length);let e=t.length,n=Qe(\"rc\",e),o=zt(e),s=QL(e,n),i=n.slice(-2),a=e<=1?\"rc\":`vec2(${i.join(\",\")})`;this.userCode=`\n void main() {\n ${o} rc = getOutputCoords();\n vec4 packedInput = getA(${s});\n\n setOutput(getChannel(packedInput, ${a}));\n }\n `}};var aet=Ur.whereImpl,uet=1e-7,cet=1e-4,Ww={};function pet(r){return r in Ww||(Ww[r]={}),Ww[r]}var met=z().getNumber(\"CPU_HANDOFF_SIZE_THRESHOLD\"),fet=600;function det(){return z().global.screen==null?1024:z().global.screen.height*z().global.screen.width*window.devicePixelRatio*fet/1024/1024}var _u=class extends zo{constructor(t){if(super(),this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.lastGlFlushTime=0,this.warnedAboutMemory=!1,this.pendingDeletes=0,this.disposed=!1,!z().getBool(\"HAS_WEBGL\"))throw new Error(\"WebGL is not supported on this device\");let e;if(t!=null){if(t instanceof Bc)e=t;else{let n=Gn(z().getNumber(\"WEBGL_VERSION\"),t);e=new Bc(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=Gn(z().getNumber(\"WEBGL_VERSION\"));e=new Bc(n),this.binaryCache=pet(z().getNumber(\"WEBGL_VERSION\")),this.gpgpuCreatedLocally=!0}this.gpgpu=e,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new Vw(this.gpgpu),this.numMBBeforeWarning=det(),this.texData=new ra(this,Pn())}nextDataId(){return _u.nextDataId++}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}writeTexture(t,e,n,o,s,i){let a=this.makeTensorInfo(e,n),u=this.texData.get(a.dataId);u.isPacked=!1,u.texture={texture:t,texShape:[o,s]},u.texShape=[o,s];let l=fd(e),c=new Jh(l,!1,i),p=this.runWebGLProgram(c,[a],n,[[o,s]]);return p.shape=e,u.texture=null,this.disposeIntermediateTensorInfo(a),p.dataId}write(t,e,n){if((z().getBool(\"WEBGL_CHECK_NUMERICAL_PROBLEMS\")||z().getBool(\"DEBUG\"))&&this.checkNumericalProblems(t),n===\"complex64\"&&t!=null)throw new Error(\"Cannot write to a complex64 dtype. Please use tf.complex(real, imag).\");let o={id:this.nextDataId()};return this.texData.set(o,{shape:e,dtype:n,values:t,usage:jr.UPLOAD,refCount:1}),o}refCount(t){return this.texData.has(t)?this.texData.get(t).refCount:0}incRef(t){let e=this.texData.get(t);e.refCount++}decRef(t){if(this.texData.has(t)){let e=this.texData.get(t);e.refCount--}}move(t,e,n,o,s){if(z().getBool(\"DEBUG\")&&this.checkNumericalProblems(e),o===\"complex64\")throw new Error(\"Cannot write to a complex64 dtype. Please use tf.complex(real, imag).\");this.texData.set(t,{shape:n,dtype:o,values:e,usage:jr.UPLOAD,refCount:s})}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}readSync(t){let e=this.texData.get(t),{values:n,dtype:o,complexTensorInfos:s,slice:i,shape:a,isPacked:u}=e;if(i!=null){let m;u?m=new so(a,Gc):m=new tn(a,Gc);let f=this.runWebGLProgram(m,[{dataId:t,shape:a,dtype:o}],o),d=this.readSync(f.dataId);return this.disposeIntermediateTensorInfo(f),d}if(n!=null)return this.convertAndCacheOnCPU(t);if(o===\"string\")return n;let l=this.activeTimers!=null,c;l&&(c=y.now());let p;if(o===\"complex64\"){let m=this.readSync(s.real.dataId),f=this.readSync(s.imag.dataId);p=v.mergeRealAndImagArrays(m,f)}else p=this.getValuesFromTexture(t);return l&&(this.downloadWaitMs+=y.now()-c),this.convertAndCacheOnCPU(t,p)}async read(t){if(this.pendingRead.has(t)){let d=this.pendingRead.get(t);return new Promise(h=>d.push(h))}let e=this.texData.get(t),{values:n,shape:o,slice:s,dtype:i,complexTensorInfos:a,isPacked:u}=e;if(s!=null){let d;u?d=new so(o,Gc):d=new tn(o,Gc);let h=this.runWebGLProgram(d,[{dataId:t,shape:o,dtype:i}],i),g=this.read(h.dataId);return this.disposeIntermediateTensorInfo(h),g}if(n!=null)return this.convertAndCacheOnCPU(t);if(z().getBool(\"DEBUG\")&&!z().getBool(\"WEBGL_DOWNLOAD_FLOAT_ENABLED\")&&z().getNumber(\"WEBGL_VERSION\")===2)throw new Error(\"tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.\");let l=null,c;if(i!==\"complex64\"&&z().get(\"WEBGL_BUFFER_SUPPORTED\")){c=this.decode(t);let d=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(d.texture.texture,...jh(o))}this.pendingRead.set(t,[]),i!==\"complex64\"&&await this.gpgpu.createAndWaitForFence();let p;if(i===\"complex64\"){let d=await Promise.all([this.read(a.real.dataId),this.read(a.imag.dataId)]),h=d[0],g=d[1];p=v.mergeRealAndImagArrays(h,g)}else if(l==null)p=this.getValuesFromTexture(t);else{let d=y.sizeFromShape(o);p=this.gpgpu.downloadFloat32MatrixFromBuffer(l,d)}if(c!=null&&this.disposeIntermediateTensorInfo(c),l!=null){let d=this.gpgpu.gl;yt(d,()=>d.deleteBuffer(l))}let m=this.convertAndCacheOnCPU(t,p),f=this.pendingRead.get(t);return this.pendingRead.delete(t),f.forEach(d=>d(m)),this.pendingDisposal.has(t)&&(this.pendingDisposal.delete(t),this.disposeData(t)&&Pn().removeDataId(t,this),this.pendingDeletes--),m}readToGPU(t,e={}){let n=this.texData.get(t),{values:o,shape:s,slice:i,dtype:a,isPacked:u,texture:l}=n;if(a===\"complex64\")throw new Error(\"Does not support reading texture for complex64 dtype.\");if(i!=null){let f;u?f=new so(s,Gc):f=new tn(s,Gc);let d=this.runWebGLProgram(f,[{dataId:t,shape:s,dtype:a}],a),h=this.readToGPU(d,e);return this.disposeIntermediateTensorInfo(d),h}if(l==null)throw o!=null?new Error(\"Data is not on GPU but on CPU.\"):new Error(\"There is no data on GPU or CPU.\");let c=this.decode(t,e.customTexShape),p=Pn().makeTensorFromTensorInfo(c),m=this.texData.get(c.dataId);return Object.assign({tensorRef:p},m.texture)}bufferSync(t){let e=this.readSync(t.dataId);if(t.dtype===\"string\")try{let n=e.map(o=>y.decodeString(o));return wt(t.shape,t.dtype,n)}catch(n){throw new Error(\"Failed to decode encoded string bytes into utf-8\")}return wt(t.shape,t.dtype,e)}checkNumericalProblems(t){if(t!=null)for(let e=0;e0}time(t){let e=this.activeTimers,n=[],o=!1;this.programTimersStack==null?(this.programTimersStack=n,o=!0):this.activeTimers.push(n),this.activeTimers=n,t();let s=y.flatten(this.activeTimers.map(u=>u.query)).filter(u=>u!=null),i=y.flatten(this.activeTimers.map(u=>u.name)).filter(u=>u!=null);this.activeTimers=e,o&&(this.programTimersStack=null);let a={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if(z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0){let u=await Promise.all(s);a.kernelMs=y.sum(u),a.getExtraProfileInfo=()=>u.map((l,c)=>({name:i[c],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(\", \")}else a.kernelMs={error:\"WebGL query timers are not supported in this environment.\"};return this.uploadWaitMs=0,this.downloadWaitMs=0,a})()}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0?this.gpgpu.beginQuery():{startMs:y.now(),endMs:null}}endTimer(t){return z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0?(this.gpgpu.endQuery(),t):(t.endMs=y.now(),t)}async getQueryTime(t){if(z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0)return this.gpgpu.waitForQueryAndGetTime(t);let e=t;return e.endMs-e.startMs}disposeData(t,e=!1){if(this.pendingDisposal.has(t))return!1;if(!this.texData.has(t))return!0;if(e?this.texData.get(t).refCount=0:this.texData.get(t).refCount--,!e&&this.texData.get(t).refCount>0)return!1;if(this.pendingRead.has(t))return this.pendingDisposal.add(t),this.pendingDeletes++,!1;this.releaseGPUData(t);let{complexTensorInfos:n}=this.texData.get(t);return n!=null&&(this.disposeData(n.real.dataId,e),this.disposeData(n.imag.dataId,e)),this.texData.delete(t),!0}releaseGPUData(t){let{texture:e,dtype:n,texShape:o,usage:s,isPacked:i,slice:a}=this.texData.get(t),u=a&&a.origDataId||t,l=this.dataRefCount.get(u);l>1?this.dataRefCount.set(u,l-1):(this.dataRefCount.delete(u),e!=null&&(this.numBytesInGPU-=this.computeBytes(o,n),this.textureManager.releaseTexture(e,o,s,i)));let c=this.texData.get(t);c.texture=null,c.texShape=null,c.isPacked=!1,c.slice=null}getTexture(t){return this.uploadToGPU(t),this.texData.get(t).texture.texture}getDataInfo(t){return this.texData.get(t)}shouldExecuteOnCPU(t,e=met){return z().getBool(\"WEBGL_CPU_FORWARD\")&&t.every(n=>this.texData.get(n.dataId).texture==null&&y.sizeFromShape(n.shape)0&&y.isString(n[0])){let s=n.map(i=>y.encodeString(i));o=this.write(s,t,e)}else o=this.write(n,t,e);return this.texData.get(o).usage=null,{dataId:o,shape:t,dtype:e}}makeOutput(t,e,n){return Pn().makeTensorFromTensorInfo(this.makeTensorInfo(t,e,n),this)}unpackTensor(t){let e=new Gw(t.shape);return this.runWebGLProgram(e,[t],t.dtype)}packTensor(t){let e=new Bw(t.shape),n=!0;return this.runWebGLProgram(e,[t],t.dtype,null,n)}packedReshape(t,e){let n=[xl(t.shape),...yl(t.shape)],o={dtype:t.dtype,shape:n,dataId:t.dataId},s=[xl(e),...yl(e)],i=new Id(s,n),a=!0,u=[n],l=this.runWebGLProgram(i,[o],t.dtype,u,a);return{dataId:l.dataId,shape:e,dtype:l.dtype}}decode(t,e){let n=this.texData.get(t),{isPacked:o,shape:s,dtype:i}=n;if(e!=null){let m=y.sizeFromShape(s),f=e[0]*e[1]*4;y.assert(m<=f,()=>\"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.\")}let a=fd(s),u;o?u=new Ew(a):u=new kw(a);let l=!0,c=[e!=null?e:jh(a)],p=this.runWebGLProgram(u,[{shape:a,dtype:i,dataId:t}],i,c,l,e);return{dtype:i,shape:s,dataId:p.dataId}}runWebGLProgram(t,e,n,o,s=!1,i){let a=this.makeTensorInfo(t.outputShape,n),u=this.texData.get(a.dataId);if(t.packedOutput&&(u.isPacked=!0),t.outPackingScheme===ku.DENSE){let x=i!=null?i:jh(t.outputShape);u.texShape=x.map(b=>b*2)}if(t.outTexUsage!=null&&(u.usage=t.outTexUsage),y.sizeFromShape(a.shape)===0)return u.values=y.getTypedArrayFromDType(a.dtype,0),a;let l=[],c=e.map(x=>{if(x.dtype===\"complex64\")throw new Error(\"GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.\");let b=this.texData.get(x.dataId);if(b.texture==null){if(!t.packedInputs&&y.sizeFromShape(x.shape)<=z().getNumber(\"WEBGL_SIZE_UPLOAD_UNIFORM\"))return{shape:x.shape,texData:null,isUniform:!0,uniformValues:b.values};t.packedInputs&&(b.isPacked=!0,b.shape=x.shape)}if(this.uploadToGPU(x.dataId),!!b.isPacked!=!!t.packedInputs)x=b.isPacked?this.unpackTensor(x):this.packTensor(x),l.push(x),b=this.texData.get(x.dataId);else if(b.isPacked&&!Eu(b.shape,x.shape)){let w=x,C=x.shape;x.shape=b.shape,x=this.packedReshape(x,C),l.push(x),b=this.texData.get(x.dataId),w.shape=C}return{shape:x.shape,texData:b,isUniform:!1}});this.uploadToGPU(a.dataId);let p={shape:a.shape,texData:u,isUniform:!1},m=uL(t,c,p),f=this.getAndSaveBinary(m,()=>aL(this.gpgpu,t,c,p)),d=this.activeTimers!=null,h;d&&(h=this.startTimer()),z().get(\"ENGINE_COMPILE_ONLY\")||lL(this.gpgpu,f,c,p,o),l.forEach(x=>this.disposeIntermediateTensorInfo(x)),d&&(h=this.endTimer(h),this.activeTimers.push({name:t.constructor.name,query:this.getQueryTime(h)}));let g=z().get(\"WEBGL_FLUSH_THRESHOLD\");if(g>0){let x=y.now();x-this.lastGlFlushTime>g&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=x)}if(!z().getBool(\"WEBGL_LAZILY_UNPACK\")&&u.isPacked&&s===!1){let x=this.unpackTensor(a);return this.disposeIntermediateTensorInfo(a),x}return a}compileAndRun(t,e,n,o,s=!1){return n=n||e[0].dtype,this.runWebGLProgram(t,e,n,o,s)}getAndSaveBinary(t,e){return t in this.binaryCache||(this.binaryCache[t]=e()),this.binaryCache[t]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(z().getBool(\"IS_TEST\")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!=\"undefined\"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=B(()=>{if(!z().get(\"WEBGL_RENDER_FLOAT32_ENABLED\")){let t=z().getBool(\"DEBUG\");z().set(\"DEBUG\",!1);let e=this.abs(mt(1e-8)).dataSync()[0];if(z().set(\"DEBUG\",t),e>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?uet:cet}uploadToGPU(t){let e=this.texData.get(t),{shape:n,dtype:o,values:s,texture:i,usage:a,isPacked:u}=e;if(i!=null)return;let l=this.activeTimers!=null,c;l&&(c=y.now());let p=e.texShape;if(p==null&&(p=PT(n,u),e.texShape=p),s!=null){let m=fd(n),f,d=p[1],h=p[0],g=s instanceof Uint8Array||s instanceof Uint8ClampedArray;(u||!g)&&([d,h]=Xi(p[0],p[1])),u?f=new $w(m,g):f=new Jh(m,g);let x=g?[h,d]:p,b=this.makeTensorInfo(x,o),w=this.texData.get(b.dataId);g?w.usage=jr.PIXELS:w.usage=jr.UPLOAD,w.texShape=x,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(b.dataId),d,h,s);let C=[[h,d]],N=!0,_=this.runWebGLProgram(f,[b],o,C,N),A=this.texData.get(_.dataId);e.texShape=A.texShape,e.isPacked=A.isPacked,e.usage=A.usage,z().get(\"ENGINE_COMPILE_ONLY\")?this.disposeData(_.dataId):(e.texture=A.texture,e.values=null,this.texData.delete(_.dataId)),this.disposeIntermediateTensorInfo(b),l&&(this.uploadWaitMs+=y.now()-c)}else{let m=this.acquireTexture(p,a,o,u);e.texture=m}}convertAndCacheOnCPU(t,e){let n=this.texData.get(t),{dtype:o}=n;return this.releaseGPUData(t),e!=null&&(n.values=het(e,o)),n.values}acquireTexture(t,e,n,o){if(this.numBytesInGPU+=this.computeBytes(t,n),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let s=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${s} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(t,e,o)}computeBytes(t,e){return t[0]*t[1]*y.bytesPerElement(e)}checkCompileCompletion(){for(let[,t]of Object.entries(this.binaryCache))this.checkCompletion_(t)}async checkCompileCompletionAsync(){let t=[];if(this.gpgpu.parallelCompilationExtension){for(let[,e]of Object.entries(this.binaryCache))t.push(this.checkCompletionAsync_(e));return Promise.all(t)}else{for(let[,e]of Object.entries(this.binaryCache)){let n=new Promise(o=>{try{this.checkCompletion_(e),o(!0)}catch(s){throw s}});t.push(n)}return Promise.all(t)}}async checkCompletionAsync_(t){return this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(t):(await gh(),this.checkCompletionAsync_(t))}checkCompletion_(t){if(this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.gl.LINK_STATUS)===!1)throw console.log(this.gpgpu.gl.getProgramInfoLog(t.webGLProgram)),this.gpgpu.gl.getShaderParameter(t.fragmentShader,this.gpgpu.gl.COMPILE_STATUS)===!1?(Cw(t.source,this.gpgpu.gl.getShaderInfoLog(t.fragmentShader)),new Error(\"Failed to compile fragment shader.\")):new Error(\"Failed to link vertex and fragment shaders.\");return!0}getUniformLocations(){for(let[,t]of Object.entries(this.binaryCache)){let{uniformLocations:e,customUniformLocations:n,infLoc:o,nanLoc:s,inShapesLocations:i,inTexShapesLocations:a,outShapeLocation:u,outShapeStridesLocation:l,outTexShapeLocation:c}=WT(this.gpgpu,t.program,t.webGLProgram);t.uniformLocations=e,t.customUniformLocations=n,t.infLoc=o,t.nanLoc=s,t.inShapesLocations=i,t.inTexShapesLocations=a,t.outShapeLocation=u,t.outShapeStridesLocation=l,t.outTexShapeLocation=c}}createTensorFromTexture(t,e,n){let{texture:o,height:s,width:i,channels:a}=t,u=Pn().backend;if(!u.gpgpu.gl.isTexture(o))throw new Error(\"The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.\");let l=u.writeTexture(o,e,n,s,i,a);return Pn().makeTensorFromDataId(l,e,n,u)}};_u.nextDataId=0;function het(r,t){if(t===\"float32\"||t===\"complex64\")return r;if(t===\"int32\"||t===\"bool\"){let e=t===\"int32\"?new Int32Array(r.length):new Uint8Array(r.length);for(let n=0;nnew _u,2);var Zke={forceHalfFloat:hM};var Sd=`\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n`;var io=class{constructor(t,e,n){this.variableNames=[\"A\",\"B\"],this.outputShape=v.assertAndGetBroadcastShape(e,n),this.enableShapeUniforms=we(this.outputShape.length),this.userCode=`\n float binaryOperation(float a, float b) {\n ${t}\n }\n\n void main() {\n float a = getAAtOutCoords();\n float b = getBAtOutCoords();\n setOutput(binaryOperation(a, b));\n }\n `}};var Yi=`\n result.r = isNaN.r ? NAN : result.r;\n result.g = isNaN.g ? NAN : result.g;\n result.b = isNaN.b ? NAN : result.b;\n result.a = isNaN.a ? NAN : result.a;\n`;var Oo=class{constructor(t,e,n,o=!1){this.variableNames=[\"A\",\"B\"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=v.assertAndGetBroadcastShape(e,n);let s=this.outputShape.length;this.enableShapeUniforms=we(s);let i=\"\";if(o)if(s===0||y.sizeFromShape(this.outputShape)===1)i=`\n result.y = 0.;\n result.z = 0.;\n result.w = 0.;\n `;else if(i=`\n ${zt(s)} coords = getOutputCoords();\n `,s===1)this.enableShapeUniforms?i+=`\n result.y = (coords + 1) >= outShape ? 0. : result.y;\n result.z = 0.;\n result.w = 0.;\n `:i+=`\n result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y;\n result.z = 0.;\n result.w = 0.;\n `;else{let u=Qe(\"coords\",s);this.enableShapeUniforms?i+=`\n bool nextRowOutOfBounds =\n (${u[s-2]} + 1) >= outShape[${s} - 2];\n bool nextColOutOfBounds =\n (${u[s-1]} + 1) >= outShape[${s} - 1];\n result.y = nextColOutOfBounds ? 0. : result.y;\n result.z = nextRowOutOfBounds ? 0. : result.z;\n result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w;\n `:i+=`\n bool nextRowOutOfBounds =\n (${u[s-2]} + 1) >= ${this.outputShape[s-2]};\n bool nextColOutOfBounds =\n (${u[s-1]} + 1) >= ${this.outputShape[s-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 ${t}\n }\n\n void main() {\n vec4 a = getAAtOutCoords();\n vec4 b = getBAtOutCoords();\n\n vec4 result = binaryOperation(a, b);\n ${i}\n\n setOutput(result);\n }\n `}};function tr(r){let{inputs:t,backend:e}=r,{x:n}=t;return e.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}var gM={kernelName:co,backendName:\"webgl\",kernelFunc:tr};function En(r){let{inputs:t,backend:e}=r,{real:n,imag:o}=t,s=e.makeTensorInfo(n.shape,\"complex64\"),i=e.texData.get(s.dataId),a=tr({inputs:{x:n},backend:e}),u=tr({inputs:{x:o},backend:e});return i.complexTensorInfos={real:a,imag:u},s}var xM={kernelName:pp,backendName:\"webgl\",kernelFunc:En};var uk=\"return (a < 0.) ? b * a : a;\",ck=`\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n`;function get(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n,i=e.makeTensorInfo([],\"float32\",y.createScalarValue(s,\"float32\")),a=z().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new Oo(ck,o.shape,i.shape):new io(uk,o.shape,i.shape),u=e.runWebGLProgram(a,[o,i],\"float32\");return e.disposeIntermediateTensorInfo(i),u}var yM={kernelName:is,backendName:\"webgl\",kernelFunc:get};var pk=\"return (a < 0.) ? b * a : a;\",mk=`\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n`;function xet(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=z().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new Oo(mk,n.shape,o.shape):new io(pk,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],\"float32\")}var bM={kernelName:bs,backendName:\"webgl\",kernelFunc:xet};var Po=\"if (isnan(x)) return x;\";function Ct({opSnippet:r,packedOpSnippet:t,cpuKernelImpl:e,dtype:n}){return({inputs:o,backend:s})=>{let{x:i}=o,a=s,u=n||i.dtype;if(a.shouldExecuteOnCPU([i])&&e!=null){let p=a.texData.get(i.dataId),m=e(p.values,u);return a.makeTensorInfo(i.shape,u,m)}let l=z().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")&&t!=null,c;return l?c=new so(i.shape,t):c=new tn(i.shape,r),a.runWebGLProgram(c,[i],u)}}function le({opSnippet:r,packedOpSnippet:t,checkOutOfBounds:e=!1,supportsComplex:n=!1,cpuKernelImpl:o,dtype:s}){return({inputs:i,backend:a})=>{let{a:u,b:l}=i,c=a;if(n&&u.dtype===\"complex64\"){let d=c.texData.get(u.dataId),h=c.texData.get(l.dataId),[g,x]=[[d.complexTensorInfos.real,h.complexTensorInfos.real],[d.complexTensorInfos.imag,h.complexTensorInfos.imag]].map(w=>{let[C,N]=w,_={dataId:C.dataId,dtype:C.dtype,shape:u.shape},A={dataId:N.dataId,dtype:N.dtype,shape:l.shape},$=new io(r,u.shape,l.shape);return c.runWebGLProgram($,[_,A],sr(C.dtype,N.dtype))}),b=En({inputs:{real:g,imag:x},backend:c});return c.disposeIntermediateTensorInfo(g),c.disposeIntermediateTensorInfo(x),b}let p=s||sr(u.dtype,l.dtype);if((u.dtype===\"string\"||l.dtype===\"string\"||c.shouldExecuteOnCPU([u,l]))&&o!=null){let d=c.texData.get(u.dataId).values,h=c.texData.get(l.dataId).values,g=u.dtype===\"string\"?v.fromUint8ToStringArray(d):d,x=u.dtype===\"string\"?v.fromUint8ToStringArray(h):h,[b,w]=o(u.shape,l.shape,g,x,p),C=c.makeTensorInfo(w,p),N=c.texData.get(C.dataId);return N.values=b,C}let m=z().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")&&t!=null,f;return m?f=new Oo(t,u.shape,l.shape,e):f=new io(r,u.shape,l.shape),c.runWebGLProgram(f,[u,l],p)}}function bl(r,t=!1){if(r===\"linear\")return t?uM:nM;if(r===\"relu\")return t?pM:sM;if(r===\"elu\")return t?cM:oM;if(r===\"relu6\")return t?mM:iM;if(r===\"prelu\")return t?mk:pk;if(r===\"leakyrelu\")return t?ck:uk;if(r===\"sigmoid\")return t?fM:aM;throw new Error(`Activation ${r} has not been implemented for the WebGL backend.`)}var vd=class{constructor(t,e,n,o=!1,s=!1,i=!1,a=null,u=!1,l=!1){this.variableNames=[\"matrixA\",\"matrixB\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n,this.enableShapeUniforms=we(this.outputShape.length);let c=o?t[1]:t[2],p=Math.ceil(c/2),m=o?\"i * 2, rc.y\":\"rc.y, i * 2\",f=s?\"rc.z, i * 2\":\"i * 2, rc.z\",d=o?[\"a.xxyy\",\"a.zzww\"]:[\"a.xxzz\",\"a.yyww\"],h=s?[\"b.xzxz\",\"b.ywyw\"]:[\"b.xyxy\",\"b.zwzw\"],g=\"\",x=\"\";a&&(u?g=`vec4 activation(vec4 a) {\n vec4 b = getPreluActivationWeightsAtOutCoords();\n ${a}\n }`:l?g=`vec4 activation(vec4 a) {\n vec4 b = getLeakyreluAlphaAtOutCoords();\n ${a}\n }`:g=`vec4 activation(vec4 x) {\n ${a}\n }`,x=\"result = activation(result);\");let b=i?\"result += getBiasAtOutCoords();\":\"\";i&&this.variableNames.push(\"bias\"),u&&this.variableNames.push(\"preluActivationWeights\"),l&&this.variableNames.push(\"leakyreluAlpha\");let w=\"rc.x\",C=\"rc.x\";t[0]`The new shape (${u}) has ${l} elements and the old shape (${o.shape}) has ${a} elements. The new shape and old shape must have the same number of elements.`);let c=i.texData.get(o.dataId);return c.isPacked&&!Eu(o.shape,u)&&!(c.texture!==null&&Eu(c.shape,u))?IM(o,u,i):(i.incRef(o.dataId),{dataId:o.dataId,shape:u,dtype:o.dtype})}var SM={kernelName:di,backendName:\"webgl\",kernelFunc:it};var rg=class{constructor(t,e){this.variableNames=[\"x\"];let{windowSize:n,batchSize:o,inSize:s,outSize:i}=t;this.outputShape=[o,i];let a=Math.floor(n/4)*4,u=n%4,l=\"sumValue += dot(values, ones);\";if(e!=null){let p=1/e;l=`sumValue += dot(values * ${y.isInt(p)?p.toPrecision(2):p}, ones);`}let c=\"\";s%n>0&&(c=`\n if (inIdx < 0 || inIdx >= ${s}) {\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 ${c}\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 < ${a}; 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 + ${a};\n if (${u===1}) {\n vec4 values = vec4(getValue(batch, inIdx), 0.0, 0.0, 0.0);\n\n ${l}\n } else if (${u===2}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1), 0.0, 0.0);\n\n ${l}\n } else if (${u===3}) {\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 `}};var Uw=class{constructor(t,e){this.variableNames=[\"x\"];let{windowSize:n,batchSize:o,inSize:s,outSize:i}=t;this.outputShape=[o,i];let a=\"0.0\",u=\"\";e===\"prod\"?a=\"1.0\":e===\"min\"?(a=\"1.0 / 1e-20\",u=\"min\"):e===\"max\"&&(a=\"-1.0 / 1e-20\",u=\"max\");let l=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e===\"sum\"?l=\"sumValue\":e===\"prod\"?l=\"prodValue\":e===\"all\"?l=\"allValue\":e===\"any\"&&(l=\"anyValue\");let c=Math.floor(n/4)*4,p=n%4,m=`\n if (${e===\"sum\"}) {\n sumValue += dot(values, ones);\n } else if (${e===\"prod\"}) {\n vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]);\n prodValue *= tmp[0] * tmp[1];\n } else {\n minMaxValue = ${u}(values, minMaxValue);\n if (${e===\"min\"} || ${e===\"max\"}) {\n minMaxValue = ${u}(values, minMaxValue);\n bvec4 isNaN = isnan(values);\n if (isNaN.r || isNaN.g || isNaN.b || isNaN.a) {\n minMaxValue = vec4(NAN);\n }\n }\n }\n `,f=\"vec4\";e===\"all\"?(a=\"1.0\",m=`\n bool reducedAllValue = all(values);\n float floatedReducedAllValue = float(reducedAllValue);\n allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0);\n `,f=\"bvec4\"):e===\"any\"&&(a=\"0.0\",m=`\n bool reducedAnyValue = any(values);\n float floatedReducedAnyValue = float(reducedAnyValue);\n anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0);\n `,f=\"bvec4\");let d=\"\";s%n>0&&(d=`\n if (inIdx < 0 || inIdx >= ${s}) {\n return initializationValue;\n }\n `),this.userCode=`\n const float initializationValue = ${a};\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(${a});\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 < ${c}; 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 ${m}\n }\n\n int inIdx = inOffset + ${c};\n if (${p===1}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${m}\n } else if (${p===2}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n ${m}\n } else if (${p===3}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n ${m}\n }\n setOutput(${l});\n }\n `}};function bet(r){let t=[];for(;t.length===0||t[t.length-1].outSize!==1;){let e=t.length?t[t.length-1].outSize:r[1],n=v.computeOptimalWindowSize(e);t.push({inSize:e,windowSize:n,outSize:Math.ceil(e/n)})}return t}function Un(r,t,e,n){let o=bet(r.shape),s=r;for(let i=0;i6)throw Error(`Transpose for rank ${t} is not yet supported`);let e=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\",\"resRC.u\",\"resRC.v\"],n=new Array(t);for(let o=0;o6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let o=zt(this.rank),s=ak(\"rc\",this.rank),i=new Array(this.rank);for(let c=0;c`Error in matMul: inner shapes (${p}) and (${m}) of Tensors with shapes ${r.shape} and ${t.shape} and transposeA=${e} and transposeB=${n} must match.`);let N=e?[x,p,f]:[x,f,p],_=n?[b,d,m]:[b,m,d],A=it({inputs:{x:r},backend:o,attrs:{shape:N}}),$=it({inputs:{x:t},backend:o,attrs:{shape:_}}),F=[A,$],P=Math.max(x,b),V=e?A.shape[1]:A.shape[2],G=s!=null,W=i!=null,q=u===\"leakyrelu\",H=u!=null?bl(u,!0):null,j=G||W||q||H!=null,Y;if((f===1||d===1)&&V>dk&&j===!1){let et=A,rt=$;e&&(et=Oe({inputs:{x:A},backend:o,attrs:{perm:[0,2,1]}}),F.push(et)),n&&(rt=Oe({inputs:{x:$},backend:o,attrs:{perm:[0,2,1]}}),F.push(rt));let ot=d!==1,at=d===1,nt=et;ot&&(nt=it({inputs:{x:et},backend:o,attrs:{shape:[P,V,1]}}),F.push(nt));let st=d===1?2:1,dt=rt;at&&(dt=it({inputs:{x:rt},backend:o,attrs:{shape:[P,1,V]}}),F.push(dt));let ht=eg({inputs:{a:nt,b:dt},backend:o});Y=Wc({inputs:{x:ht},backend:o,attrs:{axis:st,keepDims:!0}}),F.push(ht)}else{let et=sr(r.dtype,t.dtype),rt=new vd(N,_,[P,f,d],e,n,G,H,W,q),ot=[A,$];if(s!=null&&ot.push(s),W&&ot.push(i),q){let at=o.makeTensorInfo([],\"float32\",y.createScalarValue(a,\"float32\"));ot.push(at),F.push(at)}Y=o.runWebGLProgram(rt,ot,et)}let Z=it({inputs:{x:Y},backend:o,attrs:{shape:C}});F.push(Y);for(let et of F)o.disposeIntermediateTensorInfo(et);return Z}function Cet(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s,bias:i,preluActivationWeights:a}=t,{transposeA:u,transposeB:l,activation:c,leakyreluAlpha:p}=n;return Uc({a:o,b:s,transposeA:u,transposeB:l,backend:e,bias:i,preluActivationWeights:a,leakyreluAlpha:p,activation:c})}var kM={kernelName:Ci,backendName:\"webgl\",kernelFunc:Cet};var EM=\"return abs(x);\";function Iet(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])&&n.dtype!==\"complex64\"){let s=e.texData.get(n.dataId),i=Mw(s.values);return e.makeTensorInfo(n.shape,n.dtype,i)}let o;return z().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")?o=new so(n.shape,EM):o=new tn(n.shape,EM),e.runWebGLProgram(o,[n],n.dtype)}var _M={kernelName:ii,backendName:\"webgl\",kernelFunc:Iet};var vet=fr+`\n if (abs(x) > 1.) {\n return NAN;\n }\n return acos(x);\n`,Net=Ct({opSnippet:vet}),AM={kernelName:oa,backendName:\"webgl\",kernelFunc:Net};var Tet=fr+`\n if (x < 1.0) return NAN;\nreturn log(x + sqrt(x * x - 1.0));`,ket=Ct({opSnippet:Tet}),$M={kernelName:sa,backendName:\"webgl\",kernelFunc:ket};var DM=\"return a + b;\",Eet=le({opSnippet:DM,packedOpSnippet:DM,supportsComplex:!0,cpuKernelImpl:cL}),RM={kernelName:Zn,backendName:\"webgl\",kernelFunc:Eet};var Kw=class{constructor(t,e){this.outputShape=[],this.outputShape=t,this.variableNames=e.map((s,i)=>`T${i}`);let n=[];this.variableNames.forEach(s=>{n.push(`float v${s} = get${s}AtOutCoords();`)});let o=this.variableNames.map(s=>`v${s}`).join(\" + \");this.userCode=`\n void main() {\n ${n.join(`\n `)}\n\n float result = ${o};\n setOutput(result);\n }\n `}};var jw=class{constructor(t,e){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.variableNames=e.map((s,i)=>`T${i}`);let n=[];this.variableNames.forEach(s=>{n.push(`vec4 v${s} = get${s}AtOutCoords();`)});let o=this.variableNames.map(s=>`v${s}`).join(\" + \");this.userCode=`\n void main() {\n ${n.join(`\n `)}\n\n vec4 result = ${o};\n setOutput(result);\n }\n `}};function Xw(r){let{inputs:t,backend:e}=r,n=t;if(n.length===1)return tr({inputs:{x:n[0]},backend:e});if(n.length>z().get(\"WEBGL_MAX_TEXTURES_IN_SHADER\")){let u=Math.floor(n.length/2),l=Xw({inputs:n.slice(0,u),backend:e}),c=Xw({inputs:n.slice(u),backend:e});return Xw({inputs:[l,c],backend:e})}let o=n.map(u=>u.dtype).reduce((u,l)=>sr(u,l)),s=n.map(u=>u.shape),a=z().getBool(\"WEBGL_PACK\")?new jw(n[0].shape,s):new Kw(n[0].shape,s);return e.runWebGLProgram(a,n,o)}var FM={kernelName:Go,backendName:\"webgl\",kernelFunc:Xw};function _et(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=v.getAxesPermutation(l,a),p=o;c!=null&&(p=Oe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=v.getInnerMostAxes(l.length,a)),v.assertAxesAreInnerMostDims(\"all\",l,a);let[m,f]=v.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=it({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Un(h,h.dtype,\"all\",e),x;if(i){let b=v.expandShapeToKeepDim(m,u);x=it({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=it({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var OM={kernelName:ia,backendName:\"webgl\",kernelFunc:_et};function Aet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=v.getAxesPermutation(l,a),p=o;c!=null&&(p=Oe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=v.getInnerMostAxes(l.length,a)),v.assertAxesAreInnerMostDims(\"any\",l,a);let[m,f]=v.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=it({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Un(h,h.dtype,\"any\",e),x;if(i){let b=v.expandShapeToKeepDim(m,u);x=it({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=it({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var PM={kernelName:aa,backendName:\"webgl\",kernelFunc:Aet};var Yw=class{constructor(t,e,n){this.variableNames=[\"A\"];let{windowSize:o,batchSize:s,outSize:i}=t;n||this.variableNames.push(\"bestIndicesA\"),this.outputShape=[s,i];let a=e===\"max\"?\">\":\"<\",u=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 * ${o};\n\n int bestIndex = inOffset;\n float bestValue = getA(batch, bestIndex);\n\n for (int i = 0; i < ${o}; i++) {\n int inIdx = ${u};\n float candidate = getA(batch, inIdx);\n if (candidate ${a} bestValue) {\n bestValue = candidate;\n bestIndex = inIdx;\n }\n }\n setOutput(float(bestIndex));\n }\n `}};var Zw=class{constructor(t,e,n,o){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,y.assert(t.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let s=t[t.length-1],i=Math.ceil(s/e);this.outputShape=t.slice(0,-1),i>1&&this.outputShape.push(i),o||this.variableNames.push(\"bestIndicesA\");let a=this.outputShape,u=a.length,l=zt(u),c=Qe(\"coords\",u),p,m;if(i===1){m=u+1;let $=zt(m);p=`\n ${$} sourceLocR = ${$}(${c.join()}, 0);\n ++${c[u-1]};\n ${$} sourceLocG = ${$}(${c.join()}, 0);\n ++${c[u-2]};\n ${$} sourceLocA = ${$}(${c.join()}, 0);\n --${c[u-1]};\n ${$} sourceLocB = ${$}(${c.join()}, 0);\n --${c[u-2]};`}else m=u,p=`\n ${l} sourceLocR = coords;\n ++${c[u-1]};\n ${l} sourceLocG = coords;\n ++${c[u-2]};\n ${l} sourceLocA = coords;\n --${c[u-1]};\n ${l} sourceLocB = coords;\n --${c[u-2]};`;let f=[\"x\",\"y\",\"z\",\"w\",\"u\",\"v\"].slice(0,m),d=\".\"+f[m-1],h=f.map($=>\"int \"+$),g=Qe(\"sourceLocR\",m-1).concat(\"inIdx.r\"),x=Qe(\"sourceLocG\",m-1).concat(\"inIdx.g\"),b=Qe(\"sourceLocB\",m-1).concat(\"inIdx.b\"),w=Qe(\"sourceLocA\",m-1).concat(\"inIdx.a\"),C=n===\"max\"?\"greaterThan\":\"lessThan\",N=o?\"\":`\n inIdx = round(vec4(getBestIndicesAChannel(${g.join()}),\n getBestIndicesAChannel(${x.join()}),\n getBestIndicesAChannel(${b.join()}),\n getBestIndicesAChannel(${w.join()})));`,_=`vec4(\n getAChannel(${g.join()}),\n hasNextCol ? getAChannel(${x.join()}) : 0.,\n hasNextRow ? getAChannel(${b.join()}) : 0.,\n hasNextRow && hasNextCol ? getAChannel(${w.join()}) : 0.)`,A=o?\"\":`\n float getBestIndicesAChannel(${h.join()}) {\n return getChannel(getBestIndicesA(${f.join()}),\n vec2(${f.slice(-2).join()}));\n }`;this.userCode=`\n float getAChannel(${h.join()}) {\n return getChannel(getA(${f.join()}),\n vec2(${f.slice(-2).join()}));\n }\n ${A}\n void main() {\n ${l} coords = getOutputCoords();\n bool hasNextCol = ${c[u-1]} < ${a[u-1]-1};\n bool hasNextRow = ${c[u-2]} < ${a[u-2]-1};\n ${p}\n ivec4 srcIdx = ivec4(sourceLocR${d}, sourceLocG${d},\n sourceLocB${d}, sourceLocA${d}) * ${e};\n ivec4 inIdx = srcIdx;\n vec4 bestIndex = vec4(inIdx);\n vec4 bestValue = ${_};\n\n for (int i = 0; i < ${e}; i++) {\n inIdx = srcIdx;\n ${N}\n vec4 candidate = ${_};\n bvec4 nan = isnan(candidate);\n bvec4 replace = bvec4(\n vec4(${C}(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 LM(r,t,e,n=null){let o=t.shape[0],s=t.shape[1];n!=null&&(o=n.shape[0],s=n.shape[1]);let i=v.computeOptimalWindowSize(s),a={windowSize:i,inSize:s,batchSize:o,outSize:Math.ceil(s/i)},u=new Yw(a,e,n==null),l=[t];n!=null&&l.push(n);let c=r.runWebGLProgram(u,l,\"int32\");if(c.shape[1]===1)return c;let p=LM(r,t,e,c);return r.disposeIntermediateTensorInfo(c),p}function MM(r,t,e,n=null){let o=n!=null?n.shape:t.shape,s=o[o.length-1],i=v.computeOptimalWindowSize(s),a=new Zw(o,i,e,n==null),u=n==null?[t]:[t,n],l=r.runWebGLProgram(a,u,\"int32\");if(l.shape.length===t.shape.length){let c=MM(r,t,e,l);return r.disposeIntermediateTensorInfo(l),c}return l}function Jw(r,t,e,n){let o=[e];if(v.assertAxesAreInnerMostDims(\"arg\"+n.charAt(0).toUpperCase()+n.slice(1),o,t.shape.length),!z().getBool(\"WEBGL_PACK_REDUCE\")||t.shape.length<=2){let s=[],i=r.texData.get(t.dataId),a=i!==null&&i.isPacked,u=t;a&&(u=r.unpackTensor(t),s.push(u));let[l,c]=v.computeOutAndReduceShapes(u.shape,o),p=y.sizeFromShape(c),m=it({inputs:{x:u},backend:r,attrs:{shape:[-1,p]}});s.push(m);let f=LM(r,m,n);s.push(f);let d=it({inputs:{x:f},backend:r,attrs:{shape:l}});return s.forEach(h=>r.disposeIntermediateTensorInfo(h)),d}return MM(r,t,n)}function $et(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=v.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Oe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=v.getInnerMostAxes(i.length,u.shape.length)),v.assertAxesAreInnerMostDims(\"argMax\",[i[0]],u.shape.length);let c=Jw(e,u,i[0],\"max\");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var zM={kernelName:Wo,backendName:\"webgl\",kernelFunc:$et};function Det(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=v.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Oe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=v.getInnerMostAxes(i.length,u.shape.length)),v.assertAxesAreInnerMostDims(\"argMin\",[i[0]],u.shape.length);let c=Jw(e,u,i[0],\"min\");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var BM={kernelName:kl,backendName:\"webgl\",kernelFunc:Det};var Ret=fr+`\n if (abs(x) > 1.) {\n return NAN;\n }\n return asin(x);\n`,Fet=Ct({opSnippet:Ret}),VM={kernelName:la,backendName:\"webgl\",kernelFunc:Fet};var Oet=fr+\"return log(x + sqrt(x * x + 1.0));\",Pet=Ct({opSnippet:Oet}),GM={kernelName:ua,backendName:\"webgl\",kernelFunc:Pet};var Let=fr+`\n return atan(x);\n`,Met=Ct({opSnippet:Let}),WM={kernelName:ca,backendName:\"webgl\",kernelFunc:Met};var zet=Sd+`\n return atan(a, b);\n`,Bet=`\n vec4 result = atan(a, b);\n bvec4 isNaNA = isnan(a);\n bvec4 isNaNB = isnan(b);\n bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w);\n `+Yi+`\n return result;\n`,Vet=le({opSnippet:zet,packedOpSnippet:Bet}),UM={kernelName:ma,backendName:\"webgl\",kernelFunc:Vet};var Get=fr+`\n if ((x < -1.0) || (x > 1.0)) return NAN;\nreturn (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelName:pa,backendName:\"webgl\",kernelFunc:Wet};var ei=class{constructor(t,e,n,o=!1,s=!1){if(this.variableNames=[\"x\"],e===\"avg\"&&n)throw new Error(\"Cannot compute positions for average pool.\");let i=t.filterWidth,a=t.strideHeight,u=t.strideWidth,l=t.dilationHeight,c=t.dilationWidth,p=t.effectiveFilterHeight,m=t.effectiveFilterWidth,f=t.padInfo.top,d=t.padInfo.left;this.outputShape=t.outShape;let h=e===\"avg\",g=`((batch * ${t.inHeight} + xR) * ${t.inWidth} + xC) * ${t.inChannels} + d`,x=`(xR * ${t.inWidth} + xC) * ${t.inChannels} + d`,b=\"0.0\";if(h||(b=\"-1.0 / 1e-20\"),n){let $=\">=\";this.userCode=`\n const ivec2 strides = ivec2(${a}, ${u});\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 < ${p};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${m};\n wC += ${c}) {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= ${t.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 ${$} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${o?s?g:x:`wR * ${m} + wC`};\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `;return}let w=\"max\",C=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e===\"avg\"&&(C=\"avgValue / count\");let N=Math.floor(i/4)*4,_=i%4,A=`\n if (${h}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = ${w}(values, minMaxValue);\n }\n `;this.userCode=`\n const ivec2 strides = ivec2(${a}, ${u});\n const ivec2 pads = ivec2(${f}, ${d});\n const float initializationValue = ${b};\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 >= ${t.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(${b});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wR = 0; wR < ${p};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${N}; wC += 4) {\n int xC = xCCorner + wC * ${c};\n\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${c}, d),\n getValue(batch, xR, xC + 2 * ${c}, d),\n getValue(batch, xR, xC + 3 * ${c}, d)\n );\n\n ${A}\n }\n\n int xC = xCCorner + ${N};\n if (${_===1}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${A}\n } else if (${_===2}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${c}, d),\n initializationValue,\n initializationValue\n );\n\n ${A}\n } else if (${_===3}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${c}, d),\n getValue(batch, xR, xC + 2 * ${c}, d),\n initializationValue\n );\n\n ${A}\n }\n }\n setOutput(${C});\n }\n `}},$u=class{constructor(t,e,n,o=!1,s=!1){if(this.variableNames=[\"x\"],e===\"avg\"&&n)throw new Error(\"Cannot compute positions for average pool.\");let i=t.filterWidth,a=t.strideDepth,u=t.strideHeight,l=t.strideWidth,c=t.dilationDepth,p=t.dilationHeight,m=t.dilationWidth,f=t.effectiveFilterDepth,d=t.effectiveFilterHeight,h=t.effectiveFilterWidth,g=t.padInfo.front,x=t.padInfo.top,b=t.padInfo.left;this.outputShape=t.outShape;let w=e===\"avg\",C=\"0.0\";if(w||(C=\"-1.0 / 1e-20\"),n){let P=\">=\";this.userCode=`\n const ivec3 strides =\n ivec3(${a}, ${u}, ${l});\n const ivec3 pads = ivec3(${g}, ${x}, ${b});\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 += ${c}) {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= ${t.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${d};\n wR += ${p}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${h};\n wC += ${m}) {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= ${t.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 ${P} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${o?s?`(((batch * ${t.inDepth} + xD) * ${t.inHeight} + xR) * ${t.inWidth} + xC) * ${t.inChannels} + ch`:`((xD * ${t.inHeight} + xR) * ${t.inWidth} + xC) * ${t.inChannels} + ch`:`wD * ${d} * ${h} +\n wR * ${h} + wC`};\n }\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `;return}let N=\"max\",_=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e===\"avg\"&&(_=\"avgValue / count\");let A=Math.floor(i/4)*4,$=i%4,F=`\n if (${w}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = ${N}(values, minMaxValue);\n }\n `;this.userCode=`\n const ivec3 strides =\n ivec3(${a}, ${u}, ${l});\n const ivec3 pads = ivec3(${g}, ${x}, ${b});\n const float initializationValue = ${C};\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 >= ${t.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(${C});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wD = 0; wD < ${f};\n wD += ${c}) {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= ${t.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${d};\n wR += ${p}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${A}; wC += 4) {\n int xC = xCCorner + wC * ${m};\n\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${m}, ch),\n getValue(batch, xD, xR, xC + 2 * ${m}, ch),\n getValue(batch, xD, xR, xC + 3 * ${m}, ch)\n );\n\n ${F}\n }\n\n int xC = xCCorner + ${A};\n if (${$===1}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${F}\n } else if (${$===2}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${m}, ch),\n initializationValue,\n initializationValue\n );\n\n ${F}\n } else if (${$===3}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${m}, ch),\n getValue(batch, xD, xR, xC + 2 * ${m}, ch),\n initializationValue\n );\n\n ${F}\n }\n }\n setOutput(${_});\n }\n }\n `}};function Uet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;Qs(o,\"avgPool\");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(v.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=v.computePool2DInfo(o.shape,s,i,l,a,u);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return tr({inputs:{x:o},backend:e});let p=new ei(c,\"avg\",!1);return e.runWebGLProgram(p,[o],\"float32\")}var qM={kernelName:Uo,backendName:\"webgl\",kernelFunc:Uet};function Het(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n,c=[1,1,1],p=v.computePool3DInfo(o.shape,s,i,c,a,u,l),m=new $u(p,\"avg\",!1);return e.runWebGLProgram(m,[o],\"float32\")}var KM={kernelName:El,backendName:\"webgl\",kernelFunc:Het};var Qw=class{constructor(t){this.variableNames=[\"dy\"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=t.dilationHeight,a=t.dilationWidth,u=t.effectiveFilterHeight,l=t.effectiveFilterWidth,c=u-1-t.padInfo.top,p=l-1-t.padInfo.left,m=1/(e*n);this.userCode=`\n const ivec2 pads = ivec2(${c}, ${p});\n const float avgMultiplier = float(${m});\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 < ${u};\n wR += ${i}) {\n float dyR = float(dyRCorner + wR) / ${o}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${l};\n wC+= ${a}) {\n float dyC = float(dyCCorner + wC) / ${s}.0;\n\n if (dyC < 0.0 || dyC >= ${t.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 `}},tC=class{constructor(t){this.variableNames=[\"dy\"],this.outputShape=t.inShape;let e=t.filterDepth,n=t.filterHeight,o=t.filterWidth,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=t.dilationDepth,l=t.dilationHeight,c=t.dilationWidth,p=t.effectiveFilterDepth,m=t.effectiveFilterHeight,f=t.effectiveFilterWidth,d=p-1-t.padInfo.front,h=m-1-t.padInfo.top,g=f-1-t.padInfo.left,x=1/(e*n*o);this.userCode=`\n const ivec3 pads = ivec3(${d}, ${h}, ${g});\n const float avgMultiplier = float(${x});\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 < ${p};\n wD += ${u}) {\n float dyD = float(dyDCorner + wD) / ${s}.0;\n\n if (dyD < 0.0 || dyD >= ${t.outDepth}.0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < ${m};\n wR += ${l}) {\n float dyR = float(dyRCorner + wR) / ${i}.0;\n\n if (dyR < 0.0 || dyR >= ${t.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 += ${c}) {\n float dyC = float(dyCCorner + wC) / ${a}.0;\n\n if (dyC < 0.0 || dyC >= ${t.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 `}};function qet(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s,{filterSize:a,strides:u,pad:l,dimRoundingMode:c}=n,p=[1,1,1],m=v.computePool3DInfo(i.shape,a,u,p,l,c),f=new tC(m);return e.runWebGLProgram(f,[o],i.dtype)}var jM={kernelName:lp,backendName:\"webgl\",kernelFunc:qet};function Ket(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;Qs([o,s],\"avgPoolGrad\");let{filterSize:a,strides:u,pad:l}=n,c=v.computePool2DInfo(i.shape,a,u,1,l),p=new Qw(c);return e.runWebGLProgram(p,[o],i.dtype)}var XM={kernelName:ap,backendName:\"webgl\",kernelFunc:Ket};function jet(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;return Uc({a:o,b:s,transposeA:i,transposeB:a,backend:e})}var YM={kernelName:Ho,backendName:\"webgl\",kernelFunc:jet};var eC=class{constructor(t,e,n,o,s,i){this.outputShape=[],this.variableNames=[\"x\",\"mean\",\"variance\"],v.assertAndGetBroadcastShape(t,e),v.assertAndGetBroadcastShape(t,n);let a=\"0.0\";o!=null&&(v.assertAndGetBroadcastShape(t,o),this.variableNames.push(\"offset\"),a=\"getOffsetAtOutCoords()\");let u=\"1.0\";s!=null&&(v.assertAndGetBroadcastShape(t,s),this.variableNames.push(\"scale\"),u=\"getScaleAtOutCoords()\"),this.outputShape=t,this.userCode=`\n void main() {\n float x = getXAtOutCoords();\n float mean = getMeanAtOutCoords();\n float variance = getVarianceAtOutCoords();\n float offset = ${a};\n float scale = ${u};\n float inv = scale * inversesqrt(variance + float(${i}));\n setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1)));\n }\n `}};var rC=class{constructor(t,e,n,o,s,i){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=[\"x\",\"mean\",\"variance\"],v.assertAndGetBroadcastShape(t,e),v.assertAndGetBroadcastShape(t,n);let a=\"vec4(0.0)\";o!=null&&(v.assertAndGetBroadcastShape(t,o),this.variableNames.push(\"offset\"),a=\"getOffsetAtOutCoords()\");let u=\"vec4(1.0)\";s!=null&&(v.assertAndGetBroadcastShape(t,s),this.variableNames.push(\"scale\"),u=\"getScaleAtOutCoords()\"),this.outputShape=t,this.userCode=`\n void main() {\n vec4 offset = ${a};\n vec4 scale = ${u};\n\n vec4 x = getXAtOutCoords();\n vec4 mean = getMeanAtOutCoords();\n vec4 variance = getVarianceAtOutCoords();\n\n vec4 inv = scale * inversesqrt(variance + vec4(${i}));\n\n setOutput((x - mean) * inv + offset);\n }\n `}};var Xet=({inputs:r,backend:t,attrs:e})=>{let{x:n,mean:o,variance:s,offset:i,scale:a}=r;y.assert(o.shape.length===s.shape.length,()=>\"Batch normalization gradient requires mean and variance to have equal ranks.\"),y.assert(i==null||o.shape.length===i.shape.length,()=>\"Batch normalization gradient requires mean and offset to have equal ranks.\"),y.assert(a==null||o.shape.length===a.shape.length,()=>\"Batch normalization gradient requires mean and scale to have equal ranks.\");let{varianceEpsilon:u}=e;u==null&&(u=.001);let l=[n,o,s],c=null;i!=null&&(c=i.shape,l.push(i));let p=null;a!=null&&(p=a.shape,l.push(a));let m=z().getBool(\"WEBGL_PACK_NORMALIZATION\")?new rC(n.shape,o.shape,s.shape,c,p,u):new eC(n.shape,o.shape,s.shape,c,p,u);return t.runWebGLProgram(m,l,l[0].dtype)},ZM={kernelName:os,backendName:\"webgl\",kernelFunc:Xet};var nC=class{constructor(t){this.variableNames=[\"source\"],this.outputShape=t,this.rank=t.length;let e=zt(this.rank);this.customUniforms=[{name:\"start\",arrayIndex:this.rank,type:\"int\"}];let n=Yet(this.rank),o,s=t.map((i,a)=>`sourceLoc.${hk[a]} = start[${a}] + coords.${hk[a]};`);o=`\n ${e} sourceLoc;\n ${e} coords = getOutputCoords();\n ${s.join(`\n`)}\n `,this.userCode=`\n void main() {\n ${o}\n setOutput(getSource(${n}));\n }\n `}},hk=[\"x\",\"y\",\"z\",\"w\",\"u\",\"v\"];function Yet(r){if(r===1)return\"sourceLoc\";if(r<=6)return hk.slice(0,r).map(t=>\"sourceLoc.\"+t).join(\",\");throw Error(`Slicing for rank ${r} is not yet supported`)}var oC=class{constructor(t){this.variableNames=[\"source\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.rank=t.length,this.customUniforms=[{name:\"start\",arrayIndex:this.rank,type:\"int\"}];let e=zt(this.rank),n=Qe(\"coords\",this.rank),o=Qe(\"sourceLoc\",this.rank),s=this.rank===1?\"sourceLoc\":`vec2(${o.slice(-2).join()})`,i=`getChannel(getSource(${o.join()}), ${s})`,a=`\n result.x = ${i};\n if (++${n[this.rank-1]} < ${t[this.rank-1]}) {\n ++${o[this.rank-1]};\n result.y = ${i};\n --${o[this.rank-1]};\n }\n `,u=this.rank===1?\"\":`\n --${n[this.rank-1]};\n if (++${n[this.rank-2]} < ${t[this.rank-2]}) {\n ++${o[this.rank-2]};\n result.z = ${i};\n if (++${n[this.rank-1]} < ${t[this.rank-1]}) {\n ++${o[this.rank-1]};\n result.w = ${i};\n }\n }\n `,l=this.rank<=4?`sourceLoc = coords +\n ${e}(${t.map((c,p)=>`start[${p}]`).join()});`:t.map((c,p)=>`${o[p]} = ${n[p]} + start[${p}];`).join(`\n`);this.userCode=`\n void main() {\n ${e} coords = getOutputCoords();\n ${e} sourceLoc;\n ${l}\n vec4 result = vec4(0.);\n ${a}\n ${u}\n setOutput(result);\n }\n `}};function Zet(r,t,e,n){let o=n.texData.get(r.dataId),s=n.makeTensorInfo(e,r.dtype),i=n.texData.get(s.dataId);Object.assign(i,o),i.refCount=1,i.shape=e,i.dtype=r.dtype;let a=Le.computeFlatOffset(t,y.computeStrides(r.shape));o.slice&&(a+=o.slice.flatOffset),i.slice={flatOffset:a,origDataId:o.slice&&o.slice.origDataId||r.dataId};let u=n.dataRefCount.get(i.slice.origDataId)||1;return n.dataRefCount.set(i.slice.origDataId,u+1),s}function ri(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n,[a,u]=Le.parseSliceParams(o,s,i);if(Le.assertParamsValid(o,a,u),y.sizeFromShape(u)===0)return e.makeTensorInfo(u,o.dtype,[]);if(e.shouldExecuteOnCPU([o])||o.dtype===\"string\"){let p=e.texData.get(o.dataId),m=VL(p.values,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,m)}let{isPacked:l}=e.texData.get(o.dataId),c=Le.isSliceContinous(o.shape,a,u);if(l||!c){let p=z().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new oC(u):new nC(u),m=[a];return e.runWebGLProgram(p,[o],o.dtype,m)}return e.uploadToGPU(o.dataId),Zet(o,a,u,e)}var JM={kernelName:gi,backendName:\"webgl\",kernelFunc:ri};var Jet=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;y.assert(o.shape.length<=4,()=>\"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet\");let a=s.reduce((b,w)=>b*w),u=v.getReshaped(o.shape,s,a),l=v.getPermuted(u.length,s.length),c=v.getReshapedPermuted(o.shape,s,a),p=v.getSliceBeginCoords(i,s.length),m=v.getSliceSize(c,i,s.length),f=[],d=it({inputs:{x:o},backend:e,attrs:{shape:u}}),h=Oe({inputs:{x:d},backend:e,attrs:{perm:l}}),g=it({inputs:{x:h},backend:e,attrs:{shape:c}}),x=ri({inputs:{x:g},backend:e,attrs:{begin:p,size:m}});return f.push(d),f.push(h),f.push(g),f.forEach(b=>e.disposeIntermediateTensorInfo(b)),x},QM={kernelName:ai,backendName:\"webgl\",kernelFunc:Jet};function Qet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i}=n,a=e.readSync(o.dataId),u=e.readSync(s.dataId),l=Lw(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var tz={kernelName:up,backendName:\"webgl\",kernelFunc:Qet};function trt(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.readSync(n.dataId),i=e.readSync(o.dataId),a=v.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],\"int32\",Int32Array.from(a))}var ez={kernelName:cp,backendName:\"webgl\",kernelFunc:trt};var ert=\"return float(a != b);\",gk=le({opSnippet:ert,cpuKernelImpl:DL,dtype:\"bool\"}),rz={kernelName:Da,backendName:\"webgl\",kernelFunc:gk};function wl(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return tr({inputs:{x:o.complexTensorInfos.real},backend:e})}var nz={kernelName:Rp,backendName:\"webgl\",kernelFunc:wl};var rrt=\"return float(int(x));\";function oz(r,t){let e=new tn(r.shape,rrt),n=t.runWebGLProgram(e,[r],\"int32\");return{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}function xk(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s===\"complex64\"){if(o.dtype===\"complex64\")return tr({inputs:{x:o},backend:e});let i=Ne(o.shape),a=xk({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}}),u=En({inputs:{real:a,imag:i},backend:e});return i.dispose(),e.disposeIntermediateTensorInfo(a),u}if(o.dtype===\"complex64\"){let i=wl({inputs:{input:o},backend:e}),a=xk({inputs:{x:i},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(i),a}if(!y.hasEncodingLoss(o.dtype,s)){let i=tr({inputs:{x:o},backend:e});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(e.shouldExecuteOnCPU([o])){let i=e.texData.get(o.dataId).values,[a,u,l]=mL(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}if(s===\"int32\")return oz(o,e);if(s===\"bool\"){let i=e.makeTensorInfo([],\"bool\",y.getTypedArrayFromDType(\"bool\",1)),u=gk({inputs:{a:o,b:i},backend:e});return e.disposeIntermediateTensorInfo(i),u}throw new Error(`Error in Cast: failed to cast ${o.dtype} to ${s}`)}var sz={kernelName:lo,backendName:\"webgl\",kernelFunc:xk};var iz=\"return ceil(x);\",nrt=Ct({opSnippet:iz,packedOpSnippet:iz,cpuKernelImpl:fL}),az={kernelName:qo,backendName:\"webgl\",kernelFunc:nrt};var sC=class{constructor(t){this.variableNames=[\"A\"],this.customUniforms=[{name:\"minVal\",type:\"float\"},{name:\"maxVal\",type:\"float\"}],this.outputShape=t,this.userCode=`\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 `}};var iC=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"minVal\",type:\"float\"},{name:\"maxVal\",type:\"float\"}],this.outputShape=t,this.userCode=`\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 `}};function ort(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a;z().getBool(\"WEBGL_PACK_CLIP\")?a=new iC(o.shape):a=new sC(o.shape);let u=[[s],[i]];return e.runWebGLProgram(a,[o],o.dtype,u)}var lz={kernelName:uo,backendName:\"webgl\",kernelFunc:ort};var aC=class{constructor(t){this.variableNames=[\"real\",\"imag\"],this.outputShape=t,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 uz(r,t){return{dataId:t.dataId,dtype:t.dtype,shape:r.shape}}function srt(r){let{inputs:t,backend:e}=r,{x:n}=t,o=e.texData.get(n.dataId),s=new aC(n.shape),i=[uz(n,o.complexTensorInfos.real),uz(n,o.complexTensorInfos.imag)];return e.runWebGLProgram(s,i,i[0].dtype)}var cz={kernelName:_l,backendName:\"webgl\",kernelFunc:srt};var lC=class{constructor(t){this.outputShape=[],this.outputShape=v.computeOutShape(t,1),this.variableNames=t.map((i,a)=>`T${a}`);let e=new Array(t.length-1);e[0]=t[0][1];for(let i=1;i`T${g}`);let u=new Array(t.length-1);u[0]=t[0][e];for(let h=1;h= ${u[h-1]}) {\n return getChannel(\n getT${h}(${uC(a,l,g)}),\n vec2(${uC(c,l,g)}));\n }`}let f=u.length,d=u[u.length-1];m+=`\n return getChannel(\n getT${f}(${uC(a,l,d)}),\n vec2(${uC(c,l,d)}));`,this.userCode=`\n float getValue(${a.map(h=>\"int \"+h)}) {\n ${m}\n }\n\n void main() {\n ${s} coords = getOutputCoords();\n vec4 result = vec4(getValue(${i}), 0., 0., 0.);\n\n ${i[o-1]} = ${i[o-1]} + 1;\n if (${i[o-1]} < ${n[o-1]}) {\n result.g = getValue(${i});\n }\n\n ${i[o-2]} = ${i[o-2]} + 1;\n if (${i[o-2]} < ${n[o-2]}) {\n result.a = getValue(${i});\n }\n\n ${i[o-1]} = ${i[o-1]} - 1;\n if (${i[o-2]} < ${n[o-2]} &&\n ${i[o-1]} < ${n[o-1]}) {\n result.b = getValue(${i});\n }\n setOutput(result);\n }\n `}};function uC(r,t,e){let n=r.indexOf(t);return r.map((s,i)=>i===n?`${s} - ${e}`:s).join()}function Hc(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return tr({inputs:{x:o.complexTensorInfos.imag},backend:e})}var pz={kernelName:Sp,backendName:\"webgl\",kernelFunc:Hc};function Nd(r,t,e){let n=r[0].dtype;if(n===\"complex64\"){let p=r.map(g=>wl({inputs:{input:g},backend:e})),m=r.map(g=>Hc({inputs:{input:g},backend:e})),f=Nd(p,t,e),d=Nd(m,t,e),h=En({inputs:{real:f,imag:d},backend:e});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),m.forEach(g=>e.disposeIntermediateTensorInfo(g)),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),h}let o=e.shouldExecuteOnCPU(r);if(n===\"string\"&&(o=!0),o){let p=r.map(b=>{let C=[-1,y.sizeFromShape(b.shape.slice(t))];return it({inputs:{x:b},backend:e,attrs:{shape:C}})}),m=p.map(b=>({vals:e.readSync(b.dataId),shape:b.shape})),f=v.computeOutShape(p.map(b=>b.shape),1),d=p[0].shape[0]===1,h=dL(m,f,n,d),g=v.computeOutShape(r.map(b=>b.shape),t),x=e.makeTensorInfo(g,n,h);return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}let s=z().getNumber(\"WEBGL_MAX_TEXTURES_IN_SHADER\");if(r.length>s){let p=[];for(let f=0;f1){let p=new cC(r.map(m=>m.shape),t);return e.runWebGLProgram(p,r,n)}let{tensors2D:i,outShape:a}=irt(r,t,e),u=new lC(i.map(p=>p.shape)),l=e.runWebGLProgram(u,i,n);i.forEach(p=>e.disposeIntermediateTensorInfo(p));let c=it({inputs:{x:l},attrs:{shape:a},backend:e});return e.disposeIntermediateTensorInfo(l),c}function irt(r,t,e){let n=v.computeOutShape(r.map(s=>s.shape),t);return{tensors2D:r.map(s=>it({inputs:{x:s},attrs:{shape:[-1,y.sizeFromShape(s.shape.slice(t))]},backend:e})),outShape:n}}function yk(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n,s=y.parseAxisParam(o,t[0].shape)[0],i=t.map(l=>l.shape);v.assertParamsConsistent(i,s);let a=v.computeOutShape(t.map(l=>l.shape),s);if(y.sizeFromShape(a)===0)return e.makeTensorInfo(a,t[0].dtype,[]);let u=t.filter(l=>y.sizeFromShape(l.shape)>0);return u.length===1?tr({inputs:{x:u[0]},backend:e}):Nd(u,s,e)}var mz={kernelName:li,backendName:\"webgl\",kernelFunc:yk};var Td=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=[\"x\",\"W\"],this.outputShape=t.outShape;let i=t.padInfo.top,a=t.padInfo.left,u=t.strideHeight,l=t.strideWidth,c=t.dilationHeight,p=t.dilationWidth,m=t.filterHeight,f=t.filterWidth,d=Math.floor(t.inChannels/4)*4,h=t.inChannels%4,g=t.dataFormat===\"channelsLast\",x=g?1:2,b=g?2:3,w=g?3:1,C=\"\",N=\"\";n&&(o?C=`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:s?C=`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:C=`\n float activation(float x) {\n ${n}\n }\n `,N=\"result = activation(result);\");let _=e?\"result += getBiasAtOutCoords();\":\"\";e&&this.variableNames.push(\"bias\"),o&&this.variableNames.push(\"preluActivationWeights\"),s&&this.variableNames.push(\"leakyreluAlpha\"),this.userCode=`\n ${C}\n\n const ivec2 strides = ivec2(${u}, ${l});\n const ivec2 pads = ivec2(${i}, ${a});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d2 = coords[${w}];\n\n ivec2 xRCCorner =\n ivec2(coords[${x}], coords[${b}]) * 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 < ${m}; wR++) {\n int xR = xRCorner + wR * ${c};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${f}; wC++) {\n int xC = xCCorner + wC * ${p};\n\n if (xC < 0 || xC >= ${t.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 (${g}) {\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 (${h===1}) {\n\n if (${g}) {\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 (${h===2}) {\n vec2 wValues = vec2(\n getW(wR, wC, ${d}, d2),\n getW(wR, wC, ${d} + 1, d2)\n );\n\n if (${g}) {\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 (${h===3}) {\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 (${g}) {\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 ${N}\n setOutput(result);\n }\n `}},pC=class{constructor(t){this.variableNames=[\"x\",\"W\"],this.outputShape=t.outShape;let e=t.padInfo.front,n=t.padInfo.top,o=t.padInfo.left,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=t.dilationDepth,l=t.dilationHeight,c=t.dilationWidth,p=t.filterDepth,m=t.filterHeight,f=t.filterWidth,d=Math.floor(t.inChannels/4)*4,h=t.inChannels%4;this.userCode=`\n const ivec3 strides = ivec3(${s}, ${i}, ${a});\n const ivec3 pads = ivec3(${e}, ${n}, ${o});\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 < ${p}; wF++) {\n int xF = xFCorner + wF * ${u};\n\n if (xF < 0 || xF >= ${t.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${m}; wR++) {\n int xR = xRCorner + wR * ${l};\n\n if (xR < 0 || xR >= ${t.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 >= ${t.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 (${h===1}) {\n dotProd +=\n getX(batch, xF, xR, xC, ${d}) *\n getW(wF, wR, wC, ${d}, d2);\n } else if (${h===2}) {\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 (${h===3}) {\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 `}};var kd=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=[\"x\",\"W\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"pads\",type:\"ivec2\"},{name:\"strides\",type:\"ivec2\"},{name:\"dilations\",type:\"ivec2\"},{name:\"inDims\",type:\"ivec2\"}],this.outputShape=t.outShape,this.enableShapeUniforms=we(this.outputShape.length);let i=t.padInfo.left,a=t.strideWidth,u=t.dilationWidth,l=t.filterHeight,c=t.filterWidth,p=c,m=`\n int xR; int xC; int xCOffset;\n vec4 wTexel; vec4 previous; vec4 final;`;for(let g=0;g=0 && xR < inDims[0]) {\n `;for(let g=0;g<(p+1)/2;g++){let x=g*2;if(m+=`\n xC = xCCorner + ${x*u};\n `,a===1){if(x= 0 && xCOffset < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = 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 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n `,u===1&&x>0?m+=`\n xC${x} = vec4(xTexelC${x-2}.zw, xTexelC${x}.xy);\n `:m+=`\n xCOffset = xC + 1 - 2;\n\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n 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 >= inDims[1]) {\n previous.zw = vec2(0.0);\n }\n\n xC${x} = vec4(previous.zw, xTexelC${x}.xy);\n } else {\n xC${x} = vec4(0.0, 0.0, xTexelC${x}.xy);\n }\n `):m+=`\n if (xC >= 0 && xC < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n\n xC${x} = xTexelC${x};\n `,x+1= 0 && xCOffset < inDims[1] && xTexelC${x+1}Ready == 0) {\n xTexelC${x+1} = 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 >= inDims[1]) {\n xTexelC${x+1}.zw = vec2(0.0);\n }\n xTexelC${x+1}Ready = 1;\n }\n `,u>1?m+=`\n xCOffset -= 2;\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n xC${x+1} = vec4(previous.zw, xTexelC${x+1}.xy);\n } else {\n xC${x+1} = vec4(0.0, 0.0, xTexelC${x+1}.xy);\n }\n `:m+=`\n xC${x+1} = vec4(xTexelC${x}.zw, xTexelC${x+1}.xy);\n `):b===1?m+=`\n xC${x+1} = xTexelC${x};\n `:m+=`\n xCOffset = xC + ${b};\n\n if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${x+1}Ready == 0) {\n xTexelC${x+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x+1}.zw = vec2(0.0);\n }\n xTexelC${x+1}Ready = 1;\n }\n\n xC${x+1} = xTexelC${x+1};\n `}}else x= 0 && xCOffset < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xCOffset, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n\n if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC${x+1}Ready == 0) {\n xTexelC${x+1} = getX(batch, xR, xC + 1, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xC + 2 >= inDims[1]) {\n xTexelC${x+1}.zw = vec2(0.0);\n }\n xTexelC${x+1}Ready = 1;\n }\n\n xC${x} = vec4(xTexelC${x}.zw, xTexelC${x+1}.zw);\n `,x+1= 0 && xCOffset < inDims[1]) {\n final = getX(batch, xR, xCOffset, d1);\n }\n xC${x+1} = vec4(xTexelC${x+1}.xy, final.xy);\n `)):(m+=`\n if(xC >= 0 && xC < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n\n xCOffset = xC + strides[1];\n if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${x+1}Ready == 0) {\n xTexelC${x+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x+1}.zw = vec2(0.);\n }\n xTexelC${x+1}Ready = 1;\n }\n\n xC${x} = vec4(\n xTexelC${x}.xy, xTexelC${x+1}.xy);\n `,x+1= 0) {\n // Use custom imod instead mod. On Intel GPU, mod may generate\n // unexpected value.\n // https://github.com/tensorflow/tfjs/issues/5447\n offsetX = imod(blockIndex, outWidth) * stride[1] - pad[1];\n d1 = offsetX + dilation[1] * (imod(pos, itemsPerBlockRow) /\n inChannels);\n\n if(d1 < inputShape[${a}] && d1 >= 0) {\n\n ch = imod(pos, inChannels);\n\n if (${s}) {\n innerDims = vec2(d1, ch);\n result[${c*2+p}] = getChannel(\n getA(rc.x, d0, int(innerDims.x),\n int(innerDims.y)), innerDims);\n } else {\n innerDims = vec2(d0, d1);\n result[${c*2+p}] = getChannel(\n getA(rc.x, ch, int(innerDims.x),\n int(innerDims.y)), innerDims);\n }\n }\n }\n }\n `;this.userCode=`\n void main() {\n ivec3 rc = getOutputCoords();\n\n vec4 result = vec4(0);\n\n int blockIndex, pos, offsetY, d0, offsetX, d1, ch;\n vec2 innerDims;\n\n ${l}\n\n ${o.output} = result;\n }\n `}};function fC(r,t){let e=r.length;return e>=3?t?[...r.slice(0,-3),r[e-3]*r[e-2],r[e-1]]:[...r.slice(0,-3),r[e-3],r[e-2]*r[e-1]]:!t&&e===1&&r[0]>1?[r[0],1]:null}function dC({x:r,filter:t,convInfo:e,backend:n,bias:o=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:a=null}){let u=r.shape,l=n.texData.get(r.dataId),c=e.inChannels,p=u[0]*u[1]*u[2],m=e.outChannels,f=e.dataFormat===\"channelsLast\",d=!1,h=!1,g,x=[];if(s!=null){let C=fC(s.shape,f);C!=null&&(s=it({inputs:{x:s},backend:n,attrs:{shape:C}}),x.push(s))}if(o!=null){let C=fC(o.shape,f);C!=null&&(o=it({inputs:{x:o},backend:n,attrs:{shape:C}}),x.push(o))}if(!((p===1||m===1)&&c>dk)&&l.isPacked&&f&&l.texture!=null&&u[2]%2!==0&&y.arraysEqual(l.shape.slice(-3),u.slice(-3))){let C=u[0]*u[1]*(u[2]+1),N={dataId:r.dataId,shape:[1,C,e.inChannels],dtype:r.dtype},_=l.shape;l.shape=l.shape.slice(),l.shape[l.shape.length-2]++,y.assert(Eu(l.shape,N.shape),()=>`packed reshape ${l.shape} to ${N.shape} isn't free`);let A=it({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}});x.push(A);let $=Uc({a:N,b:A,backend:n,transposeA:d,transposeB:h,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i}),F=n.texData.get($.dataId);y.assert(F.isPacked,()=>\"batchMatMul result is expected to be packed\"),l.shape=_,F.shape=e.outShape,g=tr({inputs:{x:$},backend:n}),g.shape=e.outShape,x.push($)}else{let C=e.outHeight*e.outWidth,N=it({inputs:{x:r},backend:n,attrs:{shape:f?[e.batchSize,C,e.inChannels]:[e.batchSize,e.inChannels,C]}}),_=it({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}}),A=Uc({a:f?N:_,b:f?_:N,transposeA:!f,transposeB:h,backend:n,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i});g=it({inputs:{x:A},backend:n,attrs:{shape:e.outShape}}),x.push(N),x.push(_),x.push(A)}for(let C of x)n.disposeIntermediateTensorInfo(C);return g}function hC({x:r,filter:t,convInfo:e,backend:n,bias:o=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:a=null}){let{filterWidth:u,filterHeight:l,inChannels:c,outWidth:p,outHeight:m,dataFormat:f}=e,d=f===\"channelsLast\",h=u*l*c,g=m*p,x=[e.batchSize,h,g],b=!0,w=!1,C=[];if(s!=null){let Z=fC(s.shape,d);Z!=null&&(s=it({inputs:{x:s},backend:n,attrs:{shape:Z}}),C.push(s))}if(o!=null){let Z=fC(o.shape,d);Z!=null&&(o=it({inputs:{x:o},backend:n,attrs:{shape:Z}}),C.push(o))}let N=it({inputs:{x:t},backend:n,attrs:{shape:[1,h,y.sizeFromShape(t.shape)/h]}});C.push(N);let _=new mC(x,e),A=[r.shape,[e.padInfo.top,e.padInfo.left],[e.strideHeight,e.strideWidth],[e.dilationHeight,e.dilationWidth],[e.inChannels],[e.filterWidth*e.inChannels],[e.outWidth]],$=n.runWebGLProgram(_,[r],\"float32\",A),F=it({inputs:{x:$},backend:n,attrs:{shape:x}});C.push($),C.push(F);let P=o!=null,V=s!=null,G=a===\"leakyrelu\",W=a?bl(a,!0):null,q=new vd(d?F.shape:N.shape,d?N.shape:F.shape,d?[e.batchSize,g,e.outChannels]:[e.batchSize,e.outChannels,g],b,w,P,W,V,G),H=d?[F,N]:[N,F];if(o&&H.push(o),V&&H.push(s),G){let Z=n.makeTensorInfo([],\"float32\",y.createScalarValue(i,\"float32\"));H.push(Z),C.push(Z)}let j=n.runWebGLProgram(q,H,\"float32\"),Y=it({inputs:{x:j},backend:n,attrs:{shape:e.outShape}});C.push(j);for(let Z of C)n.disposeIntermediateTensorInfo(Z);return Y}function art(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dataFormat:u,dilations:l,dimRoundingMode:c}=n,p=v.convertConv2DDataFormat(u),m=v.computeConv2DInfo(o.shape,s.shape,i,l,a,c,!1,p),f;if(m.filterHeight===1&&m.filterWidth===1&&m.dilationHeight===1&&m.dilationWidth===1&&m.strideHeight===1&&m.strideWidth===1&&(m.padInfo.type===\"SAME\"||m.padInfo.type===\"VALID\"))f=dC({x:o,filter:s,convInfo:m,backend:e});else if(m.strideWidth<=2&&p===\"channelsLast\"&&z().getBool(\"WEBGL_EXP_CONV\")){let h=new kd(m),g=[[m.padInfo.top,m.padInfo.left],[m.strideHeight,m.strideWidth],[m.dilationHeight,m.dilationWidth],[m.inHeight,m.inWidth]];f=e.runWebGLProgram(h,[o,s],\"float32\",g)}else if(z().getBool(\"WEBGL_CONV_IM2COL\"))f=hC({x:o,filter:s,convInfo:m,backend:e});else{let h=new Td(m);f=e.runWebGLProgram(h,[o,s],\"float32\")}let d=it({inputs:{x:f},backend:e,attrs:{shape:m.outShape}});return e.disposeIntermediateTensorInfo(f),d}var fz={kernelName:Ko,backendName:\"webgl\",kernelFunc:art};var gC=class{constructor(t){this.variableNames=[\"x\",\"dy\"],this.outputShape=t.filterShape;let e=t.strideHeight,n=t.strideWidth,o=t.padInfo.top,s=t.padInfo.left,i=t.dataFormat===\"channelsLast\";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 < ${t.batchSize}; b++) {\n for (int yR = 0; yR < ${t.outHeight}; yR++) {\n int xR = wR + yR * ${e} - ${o};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${t.outWidth}; yC++) {\n int xC = wC + yC * ${n} - ${s};\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n if (${i}) {\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 `}},xC=class{constructor(t){this.variableNames=[\"dy\",\"W\"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=t.dataFormat===\"channelsLast\",a=e-1-t.padInfo.top,u=n-1-t.padInfo.left,l=i?1:2,c=i?2:3,p=i?3:1;this.userCode=`\n const ivec2 pads = ivec2(${a}, ${u});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[${p}];\n\n ivec2 dyCorner = ivec2(coords[${l}], coords[${c}]) - 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 < ${e}; wR++) {\n float dyR = float(dyRCorner + wR) / ${o}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${e} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n float dyC = float(dyCCorner + wC) / ${s}.0;\n\n if (dyC < 0.0 || dyC >= ${t.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 < ${t.outChannels}; d2++) {\n\n if (${i}) {\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 `}},yC=class{constructor(t){this.variableNames=[\"x\",\"dy\"],this.outputShape=t.filterShape;let e=t.strideDepth,n=t.strideHeight,o=t.strideWidth,s=t.padInfo.front,i=t.padInfo.top,a=t.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 < ${t.batchSize}; b++) {\n for (int yF = 0; yF < ${t.outDepth}; yF++) {\n int xF = wF + yF * ${e} - ${s};\n\n if (xF < 0 || xF >= ${t.inDepth}) {\n continue;\n }\n\n for (int yR = 0; yR < ${t.outHeight}; yR++) {\n int xR = wR + yR * ${n} - ${i};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${t.outWidth}; yC++) {\n int xC = wC + yC * ${o} - ${a};\n\n if (xC < 0 || xC >= ${t.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 `}},bC=class{constructor(t){this.variableNames=[\"dy\",\"W\"],this.outputShape=t.inShape;let e=t.filterDepth,n=t.filterHeight,o=t.filterWidth,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=e-1-t.padInfo.front,l=n-1-t.padInfo.top,c=o-1-t.padInfo.left;this.userCode=`\n const ivec3 pads = ivec3(${u}, ${l}, ${c});\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 < ${e}; wF++) {\n float dyF = float(dyFCorner + wF) / ${s}.0;\n\n if (dyF < 0.0 || dyF >= ${t.outDepth}.0 || fract(dyF) > 0.0) {\n continue;\n }\n int idyF = int(dyF);\n\n int wFPerm = ${e} - 1 - wF;\n\n for (int wR = 0; wR < ${n}; wR++) {\n float dyR = float(dyRCorner + wR) / ${i}.0;\n\n if (dyR < 0.0 || dyR >= ${t.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 < ${o}; wC++) {\n float dyC = float(dyCCorner + wC) / ${a}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${o} - 1 - wC;\n\n for (int d2 = 0; d2 < ${t.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 `}};function lrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,pad:a,dataFormat:u,dimRoundingMode:l,filterShape:c}=n,p=v.convertConv2DDataFormat(u),m=v.computeConv2DInfo(o.shape,c,i,1,a,l,!1,p),f=new gC(m);return e.runWebGLProgram(f,[o,s],\"float32\")}var dz={kernelName:mp,backendName:\"webgl\",kernelFunc:lrt};function urt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{inputShape:i,strides:a,pad:u,dataFormat:l,dimRoundingMode:c}=n,p=v.convertConv2DDataFormat(l),m=v.computeConv2DInfo(i,s.shape,a,1,u,c,!1,p),f=new xC(m);return e.runWebGLProgram(f,[o,s],\"float32\")}var hz={kernelName:jo,backendName:\"webgl\",kernelFunc:urt};function crt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=v.computeConv3DInfo(o.shape,s.shape,i,u,a),c=new pC(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var gz={kernelName:Al,backendName:\"webgl\",kernelFunc:crt};function prt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,pad:a,filterShape:u}=n,l=v.computeConv3DInfo(o.shape,u,i,1,a),c=new yC(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var xz={kernelName:fp,backendName:\"webgl\",kernelFunc:prt};function mrt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{pad:i,strides:a,inputShape:u}=n,l=v.computeConv3DInfo(u,s.shape,a,1,i),c=new bC(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var yz={kernelName:dp,backendName:\"webgl\",kernelFunc:mrt};var frt=Po+`\n return cos(x);\n`,drt=Ct({opSnippet:frt}),bz={kernelName:Xo,backendName:\"webgl\",kernelFunc:drt};var hrt=`\n float e2x = exp(-x);\n return (e2x + 1.0 / e2x) / 2.0;\n`,grt=Ct({opSnippet:hrt}),wz={kernelName:Yo,backendName:\"webgl\",kernelFunc:grt};var wC=class{constructor(t,e,n,o,s){this.variableNames=[\"Image\",\"Boxes\",\"BoxInd\"],this.outputShape=[];let[i,a,u,l]=t,[c]=e,[p,m]=n;this.outputShape=[c,p,m,l];let f=o===\"bilinear\"?1:0,[d,h]=[`${a-1}.0`,`${u-1}.0`],[g,x,b]=p>1?[`${(a-1)/(p-1)}`,\"(y2-y1) * height_ratio\",`y1*${d} + float(y)*(height_scale)`]:[\"0.0\",\"0.0\",`0.5 * (y1+y2) * ${d}`],[w,C,N]=m>1?[`${(u-1)/(m-1)}`,\"(x2-x1) * width_ratio\",`x1*${h} + float(x)*(width_scale)`]:[\"0.0\",\"0.0\",`0.5 * (x1+x2) * ${h}`];this.userCode=`\n const float height_ratio = float(${g});\n const float width_ratio = float(${w});\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 >= ${i}) {\n return;\n }\n\n float height_scale = ${x};\n float width_scale = ${C};\n\n float in_y = ${b};\n if( in_y < 0.0 || in_y > ${d} ) {\n setOutput(float(${s}));\n return;\n }\n float in_x = ${N};\n if( in_x < 0.0 || in_x > ${h} ) {\n setOutput(float(${s}));\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 `}};var xrt=r=>{let{inputs:t,backend:e,attrs:n}=r,{image:o,boxes:s,boxInd:i}=t,{cropSize:a,method:u,extrapolationValue:l}=n,c=new wC(o.shape,s.shape,a,u,l);return e.runWebGLProgram(c,[o,s,i],\"float32\")},Cz={kernelName:da,backendName:\"webgl\",kernelFunc:xrt};var qc;(function(r){r.Prod=\"*\",r.Sum=\"+\"})(qc||(qc={}));var ng=class{constructor(t,e,n,o){this.op=t,this.outputShape=e,this.variableNames=[\"x\"],this.customUniforms=[{name:\"index\",type:\"float\"}];let s=this.outputShape.length,i=this.op===qc.Prod?\"1.0\":\"0.0\",a=n?i:`getX(${Iz(s,\"coords\",this.op)})`,u=this.outputShape[this.outputShape.length-1],l=\"\",c=\"\";n?(l=o?`end != ${u-1}`:\"end != 0\",c=o?\"end + 1\":\"end - 1\"):(l=o?`end + pow2 < ${u}`:\"end >= pow2\",c=o?\"end + pow2\":\"end - pow2\"),this.userCode=`\n void main() {\n ${zt(s)} coords = getOutputCoords();\n int end = ${Sz(s,\"coords\",this.op)};\n float val = ${a};\n int pow2 = int(pow(2.0, index));\n if (${l}) {\n int idx = ${c};\n ${Sz(s,\"coords\",this.op)} = idx;\n val ${this.op}= getX(${Iz(s,\"coords\",this.op)});\n }\n setOutput(val);\n }\n `}};function Iz(r,t,e){if(r===1)return`${t}`;if(r===2)return`${t}.x, ${t}.y`;if(r===3)return`${t}.x, ${t}.y, ${t}.z`;if(r===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw new Error(`Cumulative ${e} for rank ${r} is not yet supported`)}function Sz(r,t,e){if(r===1)return`${t}`;if(r===2)return`${t}.y`;if(r===3)return`${t}.z`;if(r===4)return`${t}.w`;throw new Error(`Cumulative ${e} for rank ${r} is not yet supported`)}function CC(r,t,e,n,o,s){let i=t.shape.length,a=v.getAxesPermutation([n],i),u=t;a!=null&&(u=Oe({inputs:{x:t},backend:e,attrs:{perm:a}}));let l=v.getInnerMostAxes(1,i)[0];if(l!==i-1)throw new Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${n}`);let c=u.shape[l],p=tr({inputs:{x:u},backend:e});for(let m=0;m<=Math.ceil(Math.log2(c))-1;m++){let f=new ng(r,u.shape,!1,s),d=[[m]],h=p;p=e.runWebGLProgram(f,[p],p.dtype,d),e.disposeIntermediateTensorInfo(h)}if(o){let m=new ng(r,u.shape,o,s),f=p;p=e.runWebGLProgram(m,[p],p.dtype),e.disposeIntermediateTensorInfo(f)}if(a!=null){let m=v.getUndoAxesPermutation(a),f=Oe({inputs:{x:p},backend:e,attrs:{perm:m}});return e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(u),f}return p}function yrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return CC(qc.Prod,o,e,s,i,a)}var vz={kernelName:fa,backendName:\"webgl\",kernelFunc:yrt};function brt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return CC(qc.Sum,o,e,s,i,a)}var Nz={kernelName:Zo,backendName:\"webgl\",kernelFunc:brt};function wrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i,binaryOutput:a}=n;if(o.shape.length===1){let u=e.readSync(o.dataId),l=e.readSync(s.dataId),c=Lw(u,l,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,c)}else if(o.shape.length===2){let u=e.bufferSync(o),l=e.bufferSync(s),c=pL(u,l,i,a);return e.makeTensorInfo(c.shape,s.dtype,c.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${o.shape.length}.`)}var Tz={kernelName:hp,backendName:\"webgl\",kernelFunc:wrt};var IC=class{constructor(t,e,n){this.variableNames=[\"x\"],this.outputShape=[],this.outputShape=t,this.blockSize=e,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 / ${e};\n int offset_h = imod(h, ${e});\n int in_w = w / ${e};\n int offset_w = imod(w, ${e});\n int offset_d = (offset_h * ${e} + 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 this.dataFormat===\"NHWC\"?\"coords[1]\":\"coords[2]\"}getWidthCoordString(){return this.dataFormat===\"NHWC\"?\"coords[2]\":\"coords[3]\"}getDepthCoordString(){return this.dataFormat===\"NHWC\"?\"coords[3]\":\"coords[1]\"}getOutputDepthSize(){return this.dataFormat===\"NHWC\"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat===\"NHWC\"?\"getX(b, in_h, in_w, in_d)\":\"getX(b, in_d, in_h, in_w)\"}};function Crt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockSize:s,dataFormat:i}=n,a=o.shape[0],u=i===\"NHWC\"?o.shape[1]:o.shape[2],l=i===\"NHWC\"?o.shape[2]:o.shape[3],c=i===\"NHWC\"?o.shape[3]:o.shape[1],p=u*s,m=l*s,f=c/(s*s),d=i===\"NHWC\"?[a,p,m,f]:[a,f,p,m],h=new IC(d,s,i);return e.runWebGLProgram(h,[o],o.dtype)}var kz={kernelName:ha,backendName:\"webgl\",kernelFunc:Crt};var Ed=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=[\"x\",\"W\"],this.customUniforms=[{name:\"pads\",type:\"ivec2\"},{name:\"strides\",type:\"ivec2\"},{name:\"dilations\",type:\"ivec2\"},{name:\"inDims\",type:\"ivec2\"}],this.outputShape=t.outShape,this.enableShapeUniforms=we(this.outputShape.length);let i=t.filterHeight,a=t.filterWidth,u=t.outChannels/t.inChannels,l=\"\",c=\"\";n&&(o?l=`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:s?l=`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:l=`\n float activation(float x) {\n ${n}\n }\n `,c=\"result = activation(result);\");let p=e?\"result += getBiasAtOutCoords();\":\"\";e&&this.variableNames.push(\"bias\"),o&&this.variableNames.push(\"preluActivationWeights\"),s&&this.variableNames.push(\"leakyreluAlpha\"),this.userCode=`\n ${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 / ${u};\n int q = d2 - d1 * ${u};\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 < ${i}; wR++) {\n int xR = xRCorner + wR * dilations[0];\n\n if (xR < 0 || xR >= inDims[0]) {\n continue;\n }\n\n for (int wC = 0; wC < ${a}; wC++) {\n int xC = xCCorner + wC * dilations[1];\n\n if (xC < 0 || xC >= inDims[1]) {\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 ${p}\n ${c}\n setOutput(result);\n }\n `}};var _d=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=[\"x\",\"W\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"pads\",type:\"ivec2\"},{name:\"strides\",type:\"ivec2\"},{name:\"dilations\",type:\"ivec2\"},{name:\"inDims\",type:\"ivec2\"}],this.outputShape=t.outShape,this.enableShapeUniforms=we(this.outputShape.length);let i=t.outChannels/t.inChannels,a=t.padInfo.left,u=t.strideWidth,l=t.dilationWidth,c=t.filterHeight,p=t.filterWidth,m=p,f=`\n int xR; int xC; int xCOffset;\n vec4 wTexel; vec4 previous; vec4 final;`;for(let x=0;x=0 && xR < inDims[0]) {\n `;for(let x=0;x<(m+1)/2;x++){let b=x*2;if(f+=`\n xC = xCCorner + ${b*l};\n `,u===1){if(b= 0 && xCOffset < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = 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 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n `,l===1&&b>0?f+=`\n xC${b} = vec4(xTexelC${b-2}.zw, xTexelC${b}.xy);\n `:f+=`\n xCOffset = xC + 1 - 2;\n\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n 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 >= inDims[1]) {\n previous.zw = vec2(0.0);\n }\n\n xC${b} = vec4(previous.zw, xTexelC${b}.xy);\n } else {\n xC${b} = vec4(0.0, 0.0, xTexelC${b}.xy);\n }\n `):f+=`\n if (xC >= 0 && xC < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n\n xC${b} = xTexelC${b};\n `,b+1= 0 && xCOffset < inDims[1] && xTexelC${b+1}Ready == 0) {\n xTexelC${b+1} = 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 >= inDims[1]) {\n xTexelC${b+1}.zw = vec2(0.0);\n }\n xTexelC${b+1}Ready = 1;\n }\n `,l>1?f+=`\n xCOffset -= 2;\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n xC${b+1} = vec4(previous.zw, xTexelC${b+1}.xy);\n } else {\n xC${b+1} = vec4(0.0, 0.0, xTexelC${b+1}.xy);\n }\n `:f+=`\n xC${b+1} = vec4(xTexelC${b}.zw, xTexelC${b+1}.xy);\n `):w===1?f+=`\n xC${b+1} = xTexelC${b};\n `:f+=`\n xCOffset = xC + ${w};\n\n if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${b+1}Ready == 0) {\n xTexelC${b+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b+1}.zw = vec2(0.0);\n }\n xTexelC${b+1}Ready = 1;\n }\n\n xC${b+1} = xTexelC${b+1};\n `}}else b= 0 && xCOffset < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xCOffset, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n\n if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC${b+1}Ready == 0) {\n xTexelC${b+1} = getX(batch, xR, xC + 1, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xC + 2 >= inDims[1]) {\n xTexelC${b+1}.zw = vec2(0.0);\n }\n xTexelC${b+1}Ready = 1;\n }\n\n xC${b} = vec4(xTexelC${b}.zw, xTexelC${b+1}.zw);\n `,b+1= 0 && xCOffset < inDims[1]) {\n final = getX(batch, xR, xCOffset, d1);\n }\n xC${b+1} = vec4(xTexelC${b+1}.xy, final.xy);\n `)):(f+=`\n if(xC >= 0 && xC < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n\n xCOffset = xC + strides[1];\n if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${b+1}Ready == 0) {\n xTexelC${b+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b+1}.zw = vec2(0.);\n }\n xTexelC${b+1}Ready = 1;\n }\n\n xC${b} = vec4(\n xTexelC${b}.xy, xTexelC${b+1}.xy);\n `,b+1`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let p=v.computeConv2DInfo(o.shape,s.shape,i,c,a,l,!0),m;z().getBool(\"WEBGL_PACK_DEPTHWISECONV\")&&p.strideWidth<=2&&p.outChannels/p.inChannels===1?m=new _d(p):m=new Ed(p);let f=[[p.padInfo.top,p.padInfo.left],[p.strideHeight,p.strideWidth],[p.dilationHeight,p.dilationWidth],[p.inHeight,p.inWidth]];return e.runWebGLProgram(m,[o,s],\"float32\",f)}var Ez={kernelName:Jo,backendName:\"webgl\",kernelFunc:Irt};var SC=class{constructor(t){this.variableNames=[\"x\",\"dy\"],this.outputShape=t.filterShape;let e=t.strideHeight,n=t.strideWidth,o=t.padInfo.top,s=t.padInfo.left,i=t.outChannels/t.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 * ${i} + dm;\n\n float dotProd = 0.0;\n\n // TO DO: Vec4 over the batch size\n for (int b = 0; b < ${t.batchSize}; b++) {\n for (int yR = 0; yR < ${t.outHeight}; yR++) {\n int xR = wR + yR * ${e} - ${o};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${t.outWidth}; yC++) {\n int xC = wC + yC * ${n} - ${s};\n\n if (xC < 0 || xC >= ${t.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 `}},vC=class{constructor(t){this.variableNames=[\"dy\",\"W\"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=e-1-t.padInfo.top,a=n-1-t.padInfo.left,u=t.outChannels/t.inChannels;this.userCode=`\n const ivec2 pads = ivec2(${i}, ${a});\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 < ${e}; wR++) {\n float dyR = float(dyRCorner + wR) / ${o}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${e} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n float dyC = float(dyCCorner + wC) / ${s}.0;\n\n if (dyC < 0.0 || dyC >= ${t.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 < ${u}; dm++) {\n int d2 = d1 * ${u} + 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 `}};function Srt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,dilations:a,pad:u,dimRoundingMode:l,filterShape:c}=n,p=v.computeConv2DInfo(o.shape,c,i,a,u,l,!0),m=new SC(p);return e.runWebGLProgram(m,[o,s],\"float32\")}var _z={kernelName:gp,backendName:\"webgl\",kernelFunc:Srt};function vrt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{strides:i,dilations:a,pad:u,dimRoundingMode:l,inputShape:c}=n,p=v.computeConv2DInfo(c,s.shape,i,a,u,l,!0),m=new vC(p);return e.runWebGLProgram(m,[o,s],\"float32\")}var Az={kernelName:xp,backendName:\"webgl\",kernelFunc:vrt};var NC=class{constructor(t){this.variableNames=[\"X\"],this.outputShape=[t,t],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 `}};function Nrt(r){let{inputs:t,backend:e}=r,{x:n}=t,o=[...n.shape,...n.shape],s=y.sizeFromShape(n.shape),i=it({inputs:{x:n},backend:e,attrs:{shape:[s]}}),a=new NC(s),u=e.runWebGLProgram(a,[i],i.dtype),l=it({inputs:{x:u},backend:e,attrs:{shape:o}});return e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(u),l}var $z={kernelName:yp,backendName:\"webgl\",kernelFunc:Nrt};var TC=class{constructor(t){this.variableNames=[\"x\",\"W\"],this.outputShape=t.outShape;let{inHeight:e,inWidth:n,padInfo:o,strideHeight:s,strideWidth:i,filterHeight:a,filterWidth:u,dilationHeight:l,dilationWidth:c}=t,{top:p,left:m}=o;this.userCode=`\n const ivec2 strides = ivec2(${s}, ${i});\n const ivec2 pads = ivec2(${p}, ${m});\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 < ${a}; h++) {\n int hIn = hBeg + h * ${l};\n\n if (hIn >= 0 && hIn < ${e}) {\n for (int w = 0; w < ${u}; w++) {\n int wIn = wBeg + w * ${c};\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 `}};function Trt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=v.computeDilation2DInfo(o.shape,s.shape,i,a,\"NHWC\",u),c,p=new TC(l);c=e.runWebGLProgram(p,[o,s],\"float32\");let m=it({inputs:{x:c},backend:e,attrs:{shape:l.outShape}});return e.disposeIntermediateTensorInfo(c),m}var Dz={kernelName:$l,backendName:\"webgl\",kernelFunc:Trt};function krt(r){let{inputs:t,backend:e,attrs:n}=r,{equation:o}=n,s=t,{allDims:i,summedDims:a,idDims:u}=v.decodeEinsumEquation(o,s.length);v.checkEinsumDimSizes(i.length,u,s);let{path:l,steps:c}=v.getEinsumComputePath(a,u),p=c.length,m=null,f=i.length,d=[];for(let h=0;h=0&&(m=Wc({inputs:{x:m},backend:e,attrs:{axis:l[h]-(i.length-f),keepDims:!1}}),d.push(m)),f--)}for(let h of d)h!==m&&e.disposeIntermediateTensorInfo(h);return m}var Rz={kernelName:bp,backendName:\"webgl\",kernelFunc:krt};var Ert=\"return (x >= 0.0) ? x : (exp(x) - 1.0);\",_rt=`\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`,Art=Ct({opSnippet:Ert,packedOpSnippet:_rt}),Fz={kernelName:ts,backendName:\"webgl\",kernelFunc:Art};var $rt=\"return (b >= 1.0) ? a : a * (b + 1.0);\",Drt=`\n vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.)));\n return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0))));\n`,Rrt=r=>{let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=z().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new Oo(Drt,n.shape,o.shape):new io($rt,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],n.dtype)},Oz={kernelName:wp,backendName:\"webgl\",kernelFunc:Rrt};var Frt=`\n return vec4(equal(a, b));\n`,Ort=\"return float(a == b);\",Prt=le({opSnippet:Ort,packedOpSnippet:Frt,dtype:\"bool\",cpuKernelImpl:hL}),Pz={kernelName:xa,backendName:\"webgl\",kernelFunc:Prt};var Lrt=`\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 = ${v.ERF_P};\n float a1 = ${v.ERF_A1};\n float a2 = ${v.ERF_A2};\n float a3 = ${v.ERF_A3};\n float a4 = ${v.ERF_A4};\n float a5 = ${v.ERF_A5};\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`,Mrt=Ct({opSnippet:Lrt}),Lz={kernelName:ga,backendName:\"webgl\",kernelFunc:Mrt};var zrt=Po+`\n return exp(x);\n`,Brt=`\n vec4 result = exp(x);\n bvec4 isNaN = isnan(x);\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`,bk=Ct({opSnippet:zrt,packedOpSnippet:Brt,cpuKernelImpl:gL,dtype:\"float32\"}),Mz={kernelName:es,backendName:\"webgl\",kernelFunc:bk};function kC(r){let{inputs:t,attrs:e,backend:n}=r,{dim:o}=e,{input:s}=t,i=s.shape.length,a=s.shape.slice(),u=o;return o<0&&(y.assert(-(i+1)<=o,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+o+1),a.splice(u,0,1),it({inputs:{x:s},backend:n,attrs:{shape:a}})}var zz={kernelName:ui,backendName:\"webgl\",kernelFunc:kC};var Bz=\"return exp(x) - 1.0;\",Vrt=Ct({opSnippet:Bz,packedOpSnippet:Bz,cpuKernelImpl:xL}),Vz={kernelName:ya,backendName:\"webgl\",kernelFunc:Vrt};var og=class{constructor(t,e,n){this.variableNames=[\"real\",\"imag\"];let o=e[1];this.outputShape=e;let s=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,i=n?`${o}.0`:\"1.0\",a;if(t===\"real\")a=\"return real * expR - imag * expI;\";else if(t===\"imag\")a=\"return real * expI + imag * expR;\";else throw new Error(`FFT component must be either \"real\" or \"imag\", got ${t}.`);this.userCode=`\n const float exponentMultiplier = ${s};\n\n float unaryOpComplex(float real, float expR, float imag, float expI) {\n ${a}\n }\n\n float mulMatDFT(int batch, int index) {\n float indexRatio = float(index) / float(${o});\n float exponentMultiplierTimesIndexRatio =\n exponentMultiplier * indexRatio;\n\n float result = 0.0;\n\n for (int i = 0; i < ${o}; 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) / ${i};\n }\n\n return result;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n setOutput(mulMatDFT(coords[0], coords[1]));\n }\n `}};function EC(r,t,e){let n=e.texData.get(r.dataId),o=y.sizeFromShape(r.shape),s=r.shape[r.shape.length-1],i=o/s,a=it({inputs:{x:r},backend:e,attrs:{shape:[i,s]}}),u=a.shape,l=new og(\"real\",u,t),c=new og(\"imag\",u,t),p=[{dataId:n.complexTensorInfos.real.dataId,dtype:n.complexTensorInfos.real.dtype,shape:u},{dataId:n.complexTensorInfos.imag.dataId,dtype:n.complexTensorInfos.imag.dtype,shape:u}],m=e.runWebGLProgram(l,p,\"float32\"),f=e.runWebGLProgram(c,p,\"float32\"),d=En({inputs:{real:m,imag:f},backend:e});e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f);let h=it({inputs:{x:d},backend:e,attrs:{shape:r.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(d),h}function Grt(r){let{inputs:t,backend:e}=r,{input:n}=t;return EC(n,!1,e)}var Gz={kernelName:Cp,backendName:\"webgl\",kernelFunc:Grt};var _C=class{constructor(t,e){this.outputShape=[],this.customUniforms=[{name:\"value\",type:\"float\"}],this.variableNames=[\"x\"],this.outputShape=t,this.userCode=`\n void main() {\n // Input can be obtained from uniform value.\n setOutput(value);\n }\n `}};function Cl(r){let{backend:t,attrs:e}=r,{shape:n,value:o}=e,{dtype:s}=e;if(s=s||y.inferDtype(o),s===\"string\"){let i=y.getArrayFromDType(s,y.sizeFromShape(n));return i.fill(o),t.makeTensorInfo(n,s,i)}else{let i=new _C(n,o),a=[[o]];return t.runWebGLProgram(i,[],s,a)}}var Wz={kernelName:Dl,backendName:\"webgl\",kernelFunc:Cl};var AC=class{constructor(t){this.variableNames=[\"Image\"],this.outputShape=[];let e=t[2];this.outputShape=t,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n\n int coordX = ${e} - x - 1;\n float outputValue;\n if(coordX >= 0 && coordX < ${e}) {\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 `}};var Uz={kernelName:ba,backendName:\"webgl\",kernelFunc:({inputs:r,backend:t})=>{let{image:e}=r,n=t,o=new AC(e.shape);return n.runWebGLProgram(o,[e],e.dtype)}};var Hz=\"return floor(x);\",Wrt=Ct({opSnippet:Hz,packedOpSnippet:Hz,cpuKernelImpl:yL}),qz={kernelName:rs,backendName:\"webgl\",kernelFunc:Wrt};var Urt=`\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`,Hrt=`\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`,qrt=le({opSnippet:Urt,packedOpSnippet:Hrt,dtype:\"int32\"}),Kz={kernelName:ns,backendName:\"webgl\",kernelFunc:qrt};var $C=class{constructor(t){this.variableNames=[\"A\"];let e=Ge(),[n,o]=t;this.outputShape=t,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(${o}.0, ${n}.0);\n\n vec4 values = ${e.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 `}};var DC=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!1,this.packedOutput=!0;let e=Ge(),[n,o]=t;this.outputShape=t,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(${o}.0, ${n}.0);\n vec4 values = ${e.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 ${e.output} = result;\n }\n `}};var jz={kernelName:Yd,backendName:\"webgl\",kernelFunc:Krt},Ad,wk=z().getBool(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\");function Krt(r){let{inputs:t,backend:e,attrs:n}=r,{pixels:o}=t,{numChannels:s}=n,i=typeof HTMLVideoElement!=\"undefined\"&&o instanceof HTMLVideoElement,a=typeof HTMLImageElement!=\"undefined\"&&o instanceof HTMLImageElement,[u,l]=i?[o.videoWidth,o.videoHeight]:[o.width,o.height],c=[l,u],p=[l,u,s];if(a||i){let h=z().getBool(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\");(Ad==null||h!==wk)&&(wk=h,Ad=document.createElement(\"canvas\").getContext(\"2d\",{willReadFrequently:wk})),Ad.canvas.width=u,Ad.canvas.height=l,Ad.drawImage(o,0,0,u,l),o=Ad.canvas}let m=e.makeTensorInfo(c,\"int32\");e.texData.get(m.dataId).usage=jr.PIXELS,e.gpgpu.uploadPixelDataToTexture(e.getTexture(m.dataId),o);let f=z().getBool(\"WEBGL_PACK\")?new DC(p):new $C(p),d=e.runWebGLProgram(f,[m],\"int32\");return e.disposeData(m.dataId),d}function jrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=v.convertConv2DDataFormat(c),g=v.computeConv2DInfo(o.shape,s.shape,u,p,l,m,!1,h),x,b=[],w=i!=null,C=a!=null,N=f===\"leakyrelu\",_=()=>{let $=[o,s],F=(P,V)=>{if(V===\"NCHW\"&&P.shape.length===1&&P.shape[0]!==1){let G=it({inputs:{x:P},backend:e,attrs:{shape:[P.shape[0],1,1]}});return b.push(G),G}return P};if(w&&$.push(F(i,c)),C&&$.push(F(a,c)),N){let P=e.makeTensorInfo([],\"float32\",y.createScalarValue(d,\"float32\"));$.push(P),b.push(P)}return $};if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type===\"SAME\"||g.padInfo.type===\"VALID\"))x=dC({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else if(g.strideWidth<=2&&h===\"channelsLast\"&&z().getBool(\"WEBGL_EXP_CONV\")){let $=f?bl(f,!0):null,F=new kd(g,w,$,C,N),P=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],V=_();x=e.runWebGLProgram(F,V,\"float32\",P)}else if(z().getBool(\"WEBGL_CONV_IM2COL\"))x=hC({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else{let $=f?bl(f,!1):null,F=new Td(g,w,$,C,N),P=_();x=e.runWebGLProgram(F,P,\"float32\")}let A=it({inputs:{x},backend:e,attrs:{shape:g.outShape}});return b.push(x),b.forEach($=>e.disposeIntermediateTensorInfo($)),A}var Xz={kernelName:Ii,backendName:\"webgl\",kernelFunc:jrt};function Xrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dimRoundingMode:p,activation:m,leakyreluAlpha:f}=n,d=[],h=c;h==null&&(h=[1,1]),y.assert(v.eitherStridesOrDilationsAreOne(u,h),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${u} and dilations '${h}'`);let g=v.computeConv2DInfo(o.shape,s.shape,u,h,l,p,!0),x=z().getBool(\"WEBGL_PACK_DEPTHWISECONV\")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=m?bl(m,x):null,w=[o,s],C=i!=null,N=a!=null,_=m===\"leakyrelu\";if(C&&w.push(i),N&&w.push(a),_){let P=e.makeTensorInfo([],\"float32\",y.createScalarValue(f,\"float32\"));w.push(P),d.push(P)}let A;x?A=new _d(g,C,b,N,_):A=new Ed(g,C,b,N,_);let $=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=e.runWebGLProgram(A,w,\"float32\",$);return d.forEach(P=>e.disposeIntermediateTensorInfo(P)),F}var Yz={kernelName:Si,backendName:\"webgl\",kernelFunc:Xrt};var RC=class{constructor(t,e,n,o){this.sliceDim=t,this.strides=e,this.paramsShape=o,this.variableNames=[\"x\",\"indices\"],this.outputShape=n;let s=zt(n.length),i=`\n int index;`;for(let a=0;a= ${this.paramsShape[a]};\n flattenIndex += index * ${this.strides[a]};`;this.userCode=`\n void main() {\n ${s} coords = getOutputCoords();\n int flattenIndex = 0;\n bool out_of_bounds = false;\n\n ${i}\n\n setOutput(out_of_bounds ? 0.0 : getX(flattenIndex, coords[1]));\n }\n `}};function Yrt(r){let{inputs:t,backend:e}=r,{params:n,indices:o}=t,s=o.shape,i=s[s.length-1],a=y.sizeFromShape(n.shape),[u,l,c,p]=v.prepareAndValidate(n,o),m=it({inputs:{x:o},backend:e,attrs:{shape:[l,i]}}),f=it({inputs:{x:n},backend:e,attrs:{shape:[y.sizeFromShape(n.shape)/c,c]}});if(e.shouldExecuteOnCPU([n,o])||n.dtype===\"string\"){let x=e.readSync(o.dataId),b=e.bufferSync(n),w=bL(x,b,n.dtype,l,i,c,p,n.shape,a);return e.makeTensorInfo(u,n.dtype,w.values)}let d=new RC(i,p,[l,c],n.shape),h=e.runWebGLProgram(d,[f,m],f.dtype),g=it({inputs:{x:h},backend:e,attrs:{shape:u}});return e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(h),g}var Zz={kernelName:wa,backendName:\"webgl\",kernelFunc:Yrt};var FC=class{constructor(t,e){this.variableNames=[\"A\",\"indices\"],this.outputShape=e,this.rank=e.length;let n=zt(this.rank),o=Zrt(t,2);this.userCode=`\n void main() {\n ${n} resRC = getOutputCoords();\n int index = int(getIndices(resRC.x, resRC.z));\n float inBounds = (index >= 0) && (index < ${t[2]}) ? 1.0 : 0.0;\n setOutput(inBounds * getA(${o}));\n }\n `}};function Zrt(r,t){let e=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\"],n=[];for(let o=0;o=0,()=>`GatherV2: the index value ${N} is not in [0, ${w-1}]`)}}let l=v.segment_util.collectGatherOpShapeInfo(o,s,u,a),c=y.sizeFromShape(s.shape),p=[],m=it({inputs:{x:o},backend:e,attrs:{shape:[l.batchSize,l.outerSize,l.dimSize,l.sliceSize]}}),f=it({inputs:{x:s},backend:e,attrs:{shape:[l.batchSize,c/l.batchSize]}});p.push(m),p.push(f);let d=[l.batchSize,l.outerSize,c/l.batchSize,l.sliceSize];if(e.shouldExecuteOnCPU([o,s])||o.dtype===\"string\"){let b=e.bufferSync(f),w=e.bufferSync(m),C=wL(w,b,d);return p.forEach(N=>e.disposeIntermediateTensorInfo(N)),e.makeTensorInfo(l.outputShape,C.dtype,C.values)}let h=new FC(m.shape,d),g=e.runWebGLProgram(h,[m,f],m.dtype);p.push(g);let x=it({inputs:{x:g},backend:e,attrs:{shape:l.outputShape}});return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}var Jz={kernelName:ci,backendName:\"webgl\",kernelFunc:Ck};var Jrt=\"return float(a > b);\",Qrt=`\n return vec4(greaterThan(a, b));\n`,tnt=le({opSnippet:Jrt,packedOpSnippet:Qrt,cpuKernelImpl:CL,dtype:\"bool\"}),Qz={kernelName:Ca,backendName:\"webgl\",kernelFunc:tnt};var ent=\"return float(a >= b);\",rnt=`\n return vec4(greaterThanEqual(a, b));\n`,nnt=le({opSnippet:ent,packedOpSnippet:rnt,dtype:\"bool\",cpuKernelImpl:IL}),t3={kernelName:ss,backendName:\"webgl\",kernelFunc:nnt};function ont(r){let{inputs:t,backend:e}=r,{input:n}=t;return EC(n,!0,e)}var e3={kernelName:Ip,backendName:\"webgl\",kernelFunc:ont};var snt=\"return float(!isnan(x) && !isinf(x));\",int=Ct({opSnippet:snt,dtype:\"bool\"}),r3={kernelName:Ia,backendName:\"webgl\",kernelFunc:int};var ant=\"return float(isinf(x));\",lnt=Ct({opSnippet:ant,dtype:\"bool\"}),n3={kernelName:Sa,backendName:\"webgl\",kernelFunc:lnt};var unt=\"return float(isnan(x));\",cnt=Ct({opSnippet:unt,dtype:\"bool\"}),o3={kernelName:va,backendName:\"webgl\",kernelFunc:cnt};var pnt=\"return float(a < b);\",mnt=`\n return vec4(lessThan(a, b));\n`,fnt=le({opSnippet:pnt,packedOpSnippet:mnt,cpuKernelImpl:SL,dtype:\"bool\"}),s3={kernelName:Na,backendName:\"webgl\",kernelFunc:fnt};var dnt=\"return float(a <= b);\",hnt=`\n return vec4(lessThanEqual(a, b));\n`,gnt=le({opSnippet:dnt,packedOpSnippet:hnt,cpuKernelImpl:vL,dtype:\"bool\"}),i3={kernelName:Ta,backendName:\"webgl\",kernelFunc:gnt};function xnt(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=NL(n,o,s);return t.makeTensorInfo([i.length],\"float32\",i)}var a3={kernelName:vp,backendName:\"webgl\",kernelFunc:xnt};var ynt=Po+`\n return x < 0.0 ? 0./0. : log(x);\n`,bnt=`\n vec4 result = log(x);\n bvec4 isNaN = isnan(x);\n result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r);\n result.g = isNaN.g ? x.g : (x.g < 0.0 ? 0./0. : result.g);\n result.b = isNaN.b ? x.b : (x.b < 0.0 ? 0./0. : result.b);\n result.a = isNaN.a ? x.a : (x.a < 0.0 ? 0./0. : result.a);\n return result;\n`,wnt=Ct({opSnippet:ynt,packedOpSnippet:bnt,cpuKernelImpl:TL}),l3={kernelName:as,backendName:\"webgl\",kernelFunc:wnt};var Cnt=Po+`\n return log(1.0 + x);\n`,Int=Ct({opSnippet:Cnt}),u3={kernelName:ka,backendName:\"webgl\",kernelFunc:Int};var Snt=\"return float(a >= 1.0 && b >= 1.0);\",vnt=`\n return vec4(\n vec4(greaterThanEqual(a, vec4(1.0))) *\n vec4(greaterThanEqual(b, vec4(1.0))));\n`,Nnt=le({opSnippet:Snt,packedOpSnippet:vnt,dtype:\"bool\"}),c3={kernelName:Ea,backendName:\"webgl\",kernelFunc:Nnt};var Tnt=\"return float(!(x >= 1.0));\",knt=Ct({opSnippet:Tnt}),p3={kernelName:_a,backendName:\"webgl\",kernelFunc:knt};var Ent=\"return float(a >= 1.0 || b >= 1.0);\",_nt=`\n return min(\n vec4(greaterThanEqual(a, vec4(1.0))) +\n vec4(greaterThanEqual(b, vec4(1.0))),\n vec4(1.0));\n`,Ant=le({opSnippet:Ent,packedOpSnippet:_nt,dtype:\"bool\"}),m3={kernelName:Aa,backendName:\"webgl\",kernelFunc:Ant};var OC=class{constructor(t,e,n,o,s){this.variableNames=[\"x\"],this.outputShape=[];let i=e,a=t[3]-1;this.outputShape=t;let u,l=`float(${n}) + float(${o}) * sum`;s===.5?u=`inversesqrt(${l})`:s===1?u=`1.0/(${l})`:u=`exp(log(${l}) * float(-${s}));`,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 = -${i}; j <= ${i}; j++) {\n int idx = d + j;\n if (idx >= 0 && idx <= ${a}) {\n float z = getX(b, r, c, idx);\n sum += z * z;\n }\n }\n float val = x * ${u};\n setOutput(val);\n }\n `}};var PC=class{constructor(t,e,n,o,s){this.variableNames=[\"x\"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let i=e,a=t[3]-1;this.outputShape=t;let u,l=`float(${n}) + float(${o}) * sum`;s===.5?u=`inversesqrt(${l})`:s===1?u=`1.0/(${l})`:u=`exp(log(${l}) * float(-${s}));`,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 - ${i};\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 = - ${i}; j <= ${i}; j++) {\n ivec2 idx = depth + j;\n bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0));\n bvec2 belowUpperBound = lessThanEqual(idx, ivec2(${a}));\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 * ${u};\n setOutput(result);\n }\n `}};var $nt=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n,l=z().getBool(\"WEBGL_PACK_NORMALIZATION\")?new PC(o.shape,s,i,a,u):new OC(o.shape,s,i,a,u);return e.runWebGLProgram(l,[o],o.dtype)},f3={kernelName:Rl,backendName:\"webgl\",kernelFunc:$nt};var LC=class{constructor(t,e,n,o,s){this.variableNames=[\"inputImage\",\"outputImage\",\"dy\"],this.outputShape=[],this.outputShape=t,this.depth=t[3],this.depthRadius=e,this.bias=n,this.alpha=o,this.beta=s,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 - ${e})));\n int depthEnd = int(min(float(${this.depth}),\n float(d + ${e} + 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(${o}) * 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(${o})\n * float(${s})\n * getInputImage(b ,r ,c, k) * getOutputImage(b, r, c, d)\n / norm;\n if (k == d) {\n dyi += pow(norm, -1.0 * ${s});\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 `}};var Dnt=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o,y:s,dy:i}=t,{depthRadius:a,bias:u,alpha:l,beta:c}=n,p=new LC(o.shape,a,u,l,c);return e.runWebGLProgram(p,[o,s,i],o.dtype)},d3={kernelName:Np,backendName:\"webgl\",kernelFunc:Dnt};function h3(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=it({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Un(a,r.dtype,\"max\",n),l=it({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}function Ik(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reductionIndices:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=v.getAxesPermutation(l,a),p=c!=null,m=e.shouldExecuteOnCPU([o]),f=o;if(p){if(m){let w=e.texData.get(f.dataId).values,C=new Array(a);for(let A=0;A`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=v.computePool2DInfo(o.shape,s,i,l,a,u);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return tr({inputs:{x:o},backend:e});let p=new ei(c,\"max\",!1);return e.runWebGLProgram(p,[o],o.dtype)}var y3={kernelName:cs,backendName:\"webgl\",kernelFunc:Pnt};function Lnt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dataFormat:u,dimRoundingMode:l}=n,c=[1,1,1],p=v.computePool3DInfo(o.shape,s,i,c,a,l,u),m=new $u(p,\"max\",!1);return e.runWebGLProgram(m,[o],o.dtype)}var b3={kernelName:Fl,backendName:\"webgl\",kernelFunc:Lnt};var MC=class{constructor(t){this.variableNames=[\"dy\",\"maxPos\"],this.outputShape=t.inShape;let e=t.strideHeight,n=t.strideWidth,o=t.dilationHeight,s=t.effectiveFilterHeight,i=t.effectiveFilterWidth,a=s-1-t.padInfo.top,u=i-1-t.padInfo.left,l=s*i-1;this.userCode=`\n const ivec2 pads = ivec2(${a}, ${u});\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 < ${s};\n wR += ${o}) {\n float dyR = float(dyRCorner + wR) / ${e}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${i}; wC++) {\n float dyC = float(dyCCorner + wC) / ${n}.0;\n\n if (dyC < 0.0 || dyC >= ${t.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 * ${i} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n setOutput(dotProd);\n }\n `}},zC=class{constructor(t){this.variableNames=[\"dy\",\"maxPos\"],this.outputShape=t.inShape;let e=t.strideDepth,n=t.strideHeight,o=t.strideWidth,s=t.dilationDepth,i=t.dilationHeight,a=t.dilationWidth,u=t.effectiveFilterDepth,l=t.effectiveFilterHeight,c=t.effectiveFilterWidth,p=u-1-t.padInfo.front,m=l-1-t.padInfo.top,f=c-1-t.padInfo.left,d=u*l*c-1;this.userCode=`\n const ivec3 pads = ivec3(${p}, ${m}, ${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 < ${u};\n wD += ${s}) {\n float dyD = float(dyDCorner + wD) / ${e}.0;\n\n if (dyD < 0.0 || dyD >= ${t.outDepth}.0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < ${l};\n wR += ${i}) {\n float dyR = float(dyRCorner + wR) / ${n}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${c};\n wC += ${a}) {\n float dyC = float(dyCCorner + wC) / ${o}.0;\n\n if (dyC < 0.0 || dyC >= ${t.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} * ${c} +\n wR * ${c} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n }\n setOutput(dotProd);\n }\n `}};function Mnt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s,{filterSize:a,strides:u,pad:l,dimRoundingMode:c}=n,p=[1,1,1],m=v.computePool3DInfo(i.shape,a,u,p,l,c),f=new $u(m,\"max\",!0),d=e.runWebGLProgram(f,[i],i.dtype),h=new zC(m),g=e.runWebGLProgram(h,[o,d],i.dtype);return e.disposeIntermediateTensorInfo(d),g}var w3={kernelName:kp,backendName:\"webgl\",kernelFunc:Mnt};function znt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;Qs([s,i],\"maxPoolGrad\");let{filterSize:u,strides:l,pad:c,dimRoundingMode:p}=n,m=v.computePool2DInfo(a.shape,u,l,1,c,p),f=!0,d=new ei(m,\"max\",f),h=e.runWebGLProgram(d,[a],a.dtype),g=new MC(m),x=e.runWebGLProgram(g,[o,h],a.dtype);return e.disposeIntermediateTensorInfo(h),x}var C3={kernelName:Tp,backendName:\"webgl\",kernelFunc:znt};function I3(r,t,e,n){let o=new ei(e,\"max\",!1),s=n.runWebGLProgram(o,[r],\"float32\");o=new ei(e,\"max\",!0,!0,t);let i=n.runWebGLProgram(o,[r],\"float32\");return[s,i]}var S3={kernelName:Ep,backendName:\"webgl\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;y.assert(n.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${n.shape.length}.`);let l=[1,1];y.assert(v.eitherStridesOrDilationsAreOne(s,l),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${l}'`);let c=v.computePool2DInfo(n.shape,o,s,l,i),[p,m]=I3(n,a,c,u);return[p,m]}};function v3(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=it({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Un(a,\"float32\",\"mean\",n),l=it({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}var N3={kernelName:ps,backendName:\"webgl\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{keepDims:o,axis:s}=t,i=e,a=n.shape.length,u=y.parseAxisParam(s,n.shape),l=u,c=v.getAxesPermutation(l,a),p=c!=null,m=i.shouldExecuteOnCPU([n]),f=[],d=n;if(p){if(m){let C=i.texData.get(d.dataId).values,N=new Array(a);for(let $=0;$c[0]+t[p]+c[1]);let o=t.length,s=zt(o),i=e.map(c=>c[0]).join(\",\"),a=e.map((c,p)=>c[0]+t[p]).join(\",\"),u=[\"coords[0]\",\"coords[1]\",\"coords[2]\",\"coords[3]\"].slice(0,o),l=n===\"reflect\"?0:1;if(o===1){this.userCode=`\n int start = ${i};\n int end = ${a};\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 `;return}this.userCode=`\n ${s} start = ${s}(${i});\n ${s} end = ${s}(${a});\n\n void main() {\n ${s} outC = getOutputCoords();\n for (int i = 0; i < ${o}; 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 ${s} coords = outC - start;\n setOutput(getX(${u}));\n }\n `}};var VC=class{constructor(t,e,n){this.variableNames=[\"x\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.map((d,h)=>d[0]+t[h]+d[1]);let o=t.length,s=zt(o),i=e.map(d=>d[0]).join(\",\"),a=e.map((d,h)=>d[0]+t[h]).join(\",\"),u=Qe(\"rc\",o),l=Qe(\"source\",o),c=`${u[o-1]} < ${this.outputShape[o-1]}`,p=o===1?\"source\":`vec2(${l.slice(-2).join()})`,m=n===\"reflect\"?0:1,f=\"\";if(o===1){let d=`\n ${s} source = rc;\n if (source < start) {\n source = start * 2 - source - ${m};\n } else if (source >= end) {\n source = (end - 1) * 2 - source + ${m};\n }\n source -= start;\n `;f=`\n ${s} rc = outputLoc;\n ${d}\n result[0] = getChannel(getX(${l.join()}), ${p});\n ${u[o-1]} += 1;\n if(${c}) {\n ${d}\n result[1] = getChannel(getX(${l.join()}), ${p});\n }\n `}else{let d=`\n ${s} source = rc;\n ${s} lt = ${s}(lessThan(source, start));\n ${s} gte = ${s}(greaterThanEqual(source, end));\n ${s} orig = 1 - (lt + gte);\n source = orig * source +\n lt * (start * 2 - source - ${m}) +\n gte * ((end - 1) * 2 - source + ${m});\n source -= start;\n `;f=`\n ${s} rc = outputLoc;\n ${d}\n result[0] = getChannel(getX(${l.join()}), ${p});\n ${u[o-1]} += 1;\n if(${c}) {\n ${d}\n result[1] = getChannel(getX(${l.join()}), ${p});\n }\n rc = outputLoc;\n ${u[o-2]} += 1;\n if(${u[o-2]} < ${this.outputShape[o-2]}) {\n ${d}\n result[2] = getChannel(getX(${l.join()}), ${p});\n ${u[o-1]} += 1;\n if(${c}) {\n ${d}\n result[3] = getChannel(getX(${l.join()}), ${p});\n }\n }\n `}this.userCode=`\n const ${s} start = ${s}(${i});\n const ${s} end = ${s}(${a});\n\n void main() {\n ${s} outputLoc = getOutputCoords();\n vec4 result = vec4(0.);\n ${f}\n setOutput(result);\n }\n `}};var Unt=({inputs:r,backend:t,attrs:e})=>{let{x:n}=r,{paddings:o,mode:s}=e,i=z().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new VC(n.shape,o,s):new BC(n.shape,o,s);return t.runWebGLProgram(i,[n],n.dtype)},E3={kernelName:ds,backendName:\"webgl\",kernelFunc:Unt};var Hnt=`if (b == 0.0) return NAN;\n return mod(a, b);`,qnt=`\n vec4 result = mod(a, b);\n bvec4 isNaN = equal(b, vec4(0.0));\n `+Yi+`\n return result;\n`,Knt=le({opSnippet:Hnt,packedOpSnippet:qnt}),_3={kernelName:$a,backendName:\"webgl\",kernelFunc:Knt};var GC=class{constructor(t,e,n){this.variableNames=[\"probs\"],this.customUniforms=[{name:\"seed\",type:\"float\"}],this.outputShape=[t,n],this.userCode=`\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 < ${e-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(${e-1}));\n }\n `}};var jnt=`\nif (a == b) {\n return 1.0;\n};\nreturn a / b;`,Xnt=`\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`,Sk=le({opSnippet:jnt,packedOpSnippet:Xnt,checkOutOfBounds:!0}),A3={kernelName:Qo,backendName:\"webgl\",kernelFunc:Sk};var $3=\"return a - b;\",vk=le({opSnippet:$3,packedOpSnippet:$3,supportsComplex:!0,cpuKernelImpl:XL}),D3={kernelName:Fs,backendName:\"webgl\",kernelFunc:vk};function Nk(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=y.parseAxisParam([s],o.shape),a=Ik({inputs:{x:o},backend:e,attrs:{reductionIndices:i,keepDims:!1}}),u=v.expandShapeToKeepDim(a.shape,i),l=it({inputs:{x:a},backend:e,attrs:{shape:u}}),c=vk({inputs:{a:o,b:l},backend:e}),p=bk({inputs:{x:c},backend:e}),m=Wc({inputs:{x:p},backend:e,attrs:{axis:i,keepDims:!1}}),f=it({inputs:{x:m},backend:e,attrs:{shape:u}}),d=Sk({inputs:{a:p,b:f},backend:e});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(l),e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),d}var R3={kernelName:Ds,backendName:\"webgl\",kernelFunc:Nk};function Ynt(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n,u=a?o:Nk({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),l=u.shape[0],c=u.shape[1],p=new GC(l,c,s),m=[[i]],f=e.runWebGLProgram(p,[u],\"int32\",m);return a||e.disposeIntermediateTensorInfo(u),f}var F3={kernelName:_p,backendName:\"webgl\",kernelFunc:Ynt};var Znt=fr+`\n return -x;\n`,Jnt=`\n vec4 result = -x;\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`;function Qnt(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])){let s=e.texData.get(n.dataId),[i,a]=$L(s.values,n.shape,n.dtype);return e.makeTensorInfo(a,n.dtype,i)}let o;return z().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")?o=new so(n.shape,Jnt):o=new tn(n.shape,Znt),e.runWebGLProgram(o,[n],n.dtype)}var O3={kernelName:pi,backendName:\"webgl\",kernelFunc:Qnt};var tot=Ur.nonMaxSuppressionV3Impl;function eot(r){v.warn(\"tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead\");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u}=n,l=e.readSync(o.dataId),c=e.readSync(s.dataId),{selectedIndices:p}=tot(l,c,i,a,u);return e.makeTensorInfo([p.length],\"int32\",new Int32Array(p))}var P3={kernelName:Ra,backendName:\"webgl\",kernelFunc:eot};var rot=Ur.nonMaxSuppressionV4Impl;function not(r){v.warn(\"tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead\");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u,padToMaxOutputSize:l}=n,c=e.readSync(o.dataId),p=e.readSync(s.dataId),{selectedIndices:m,validOutputs:f}=rot(c,p,i,a,u,l);return[e.makeTensorInfo([m.length],\"int32\",new Int32Array(m)),e.makeTensorInfo([],\"int32\",new Int32Array([f]))]}var L3={kernelName:Fa,backendName:\"webgl\",kernelFunc:not};var oot=Ur.nonMaxSuppressionV5Impl;function sot(r){v.warn(\"tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead\");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u,softNmsSigma:l}=n,c=e.readSync(o.dataId),p=e.readSync(s.dataId),m=i,f=a,d=u,h=l,{selectedIndices:g,selectedScores:x}=oot(c,p,m,f,d,h);return[e.makeTensorInfo([g.length],\"int32\",new Int32Array(g)),e.makeTensorInfo([x.length],\"float32\",new Float32Array(x))]}var M3={kernelName:Oa,backendName:\"webgl\",kernelFunc:sot};var WC=class{constructor(t,e,n,o){this.variableNames=[\"indices\"],this.outputShape=[t,e],this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int index = round(getIndices(coords.x));\n setOutput(mix(float(${o}), float(${n}),\n float(index == coords.y)));\n }\n `}};var iot=r=>{let{inputs:t,backend:e,attrs:n}=r,{indices:o}=t,{dtype:s,depth:i,onValue:a,offValue:u}=n,l=y.sizeFromShape(o.shape),c=new WC(l,i,a,u),p=it({inputs:{x:o},backend:e,attrs:{shape:[l]}}),m=e.runWebGLProgram(c,[p],s);e.disposeIntermediateTensorInfo(p);let f=[...o.shape,i],d=it({inputs:{x:m},backend:e,attrs:{shape:f}});return e.disposeIntermediateTensorInfo(m),d},z3={kernelName:gs,backendName:\"webgl\",kernelFunc:iot};function sg(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype===\"complex64\"){let o=wl({inputs:{input:n},backend:e}),s=sg({inputs:{x:o},backend:e}),i=Hc({inputs:{input:n},backend:e}),a=sg({inputs:{x:i},backend:e}),u=En({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Cl({attrs:{shape:n.shape,dtype:n.dtype,value:n.dtype===\"string\"?\"\":0},backend:e})}var B3={kernelName:wi,backendName:\"webgl\",kernelFunc:sg};function V3(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype===\"string\")throw new Error(\"onesLike is not supported under string dtype\");if(n.dtype===\"complex64\"){let o=wl({inputs:{input:n},backend:e}),s=V3({inputs:{x:o},backend:e}),i=Hc({inputs:{input:n},backend:e}),a=sg({inputs:{x:i},backend:e}),u=En({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Cl({attrs:{shape:n.shape,dtype:n.dtype,value:1},backend:e})}var G3={kernelName:mi,backendName:\"webgl\",kernelFunc:V3};function aot(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return kC({inputs:{input:t[0]},backend:e,attrs:{dim:o}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{y.assertShapesMatch(s,c.shape,\"All tensors passed to stack must have matching shapes\"),y.assert(i===c.dtype,()=>\"All tensors passed to stack must have matching dtypes\")});let a=[],u=t.map(c=>{let p=kC({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=yk({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var W3={kernelName:fi,backendName:\"webgl\",kernelFunc:aot};var UC=class{constructor(t,e,n){this.variableNames=[\"x\"],this.customUniforms=[{name:\"value\",type:\"float\"}],this.outputShape=e.map((l,c)=>l[0]+t[c]+l[1]);let o=t.length,s=zt(o),i=e.map(l=>l[0]).join(\",\"),a=e.map((l,c)=>l[0]+t[c]).join(\",\"),u=[\"coords[0]\",\"coords[1]\",\"coords[2]\",\"coords[3]\"].slice(0,o);if(o===1){this.userCode=`\n int start = ${i};\n int end = ${a};\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 `;return}this.userCode=`\n ${s} start = ${s}(${i});\n ${s} end = ${s}(${a});\n\n void main() {\n ${s} outC = getOutputCoords();\n if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) {\n setOutput(value);\n } else {\n ${s} coords = outC - start;\n setOutput(getX(${u}));\n }\n }\n `}};var HC=class{constructor(t,e,n){this.variableNames=[\"x\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"value\",type:\"float\"}],this.outputShape=e.map((h,g)=>h[0]+t[g]+h[1]);let o=t.length,s=zt(o),i=e.map(h=>h[0]).join(\",\"),a=e.map((h,g)=>h[0]+t[g]).join(\",\"),u=Qe(\"rc\",o),l=Qe(\"source\",o),c=`${u[o-1]} < ${this.outputShape[o-1]}`,p=o===1?\"source\":`vec2(${l.slice(-2).join()})`,m=[`${s} rc = outputLoc;`,`${u[o-1]} += 1;\n if(${c}) {\n `,o===1?\"\":`}\n rc = outputLoc;\n ${u[o-2]} += 1;\n if(${u[o-2]} < ${this.outputShape[o-2]}) {`,o===1?\"\":` ${u[o-1]} += 1;\n if(${c}) {`],f=o===1?\"rc < start || rc >= end\":\"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))\",d=\"\";for(let h=0,g=o===1?2:4;h{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{paddings:s,constantValue:i}=n;if(y.sizeFromShape(o.shape)===0){let l=s.map((c,p)=>c[0]+o.shape[p]+c[1]);return Cl({backend:e,attrs:{shape:l,value:i,dtype:o.dtype}})}let a=z().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new HC(o.shape,s,i):new UC(o.shape,s,i),u=[[i]];return e.runWebGLProgram(a,[o],o.dtype,u)},U3={kernelName:xs,backendName:\"webgl\",kernelFunc:Tk};var lot=`\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`,uot=`\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 bvec4 isNaN1 = lessThan(a, vec4(0.0));\n bvec4 isNaN2 = lessThan(floor(b), b);\n bvec4 isNaN = bvec4(isNaN1.x && isNaN2.x, isNaN1.y && isNaN2.y, isNaN1.z && isNaN2.z, isNaN1.w && isNaN2.w);\n `+Yi+`\n return result;\n`,cot=le({opSnippet:lot,packedOpSnippet:uot}),H3={kernelName:ys,backendName:\"webgl\",kernelFunc:cot};function pot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=[],l=y.parseAxisParam(s,o.shape),c=l,p=v.getAxesPermutation(c,a),m=o;p!=null&&(m=Oe({inputs:{x:o},backend:e,attrs:{perm:p}}),c=v.getInnerMostAxes(c.length,a),u.push(m)),v.assertAxesAreInnerMostDims(\"prod\",c,a);let f;if(e.shouldExecuteOnCPU([m])){let d=e.texData.get(m.dataId).values,{outVals:h,outShape:g,outDtype:x}=RL(m.shape,m.dtype,d,c);f=e.makeTensorInfo(g,x,h)}else{let[d,h]=v.computeOutAndReduceShapes(m.shape,c),g=y.sizeFromShape(h),x=it({inputs:{x:m},backend:e,attrs:{shape:[-1,g]}}),b=Wu(o.dtype),w=Un(x,b,\"prod\",e);f=it({inputs:{x:w},backend:e,attrs:{shape:d}}),u.push(x),u.push(w)}if(i){u.push(f);let d=v.expandShapeToKeepDim(f.shape,l);f=it({inputs:{x:f},backend:e,attrs:{shape:d}})}return u.forEach(d=>e.disposeIntermediateTensorInfo(d)),f}var q3={kernelName:ws,backendName:\"webgl\",kernelFunc:pot};function mot(r){let{inputs:t,backend:e,attrs:n}=r,{paramsNestedSplits:o,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:a}=n,u=o.map(x=>e.readSync(x.dataId)),l=o.map(x=>x.shape),c=e.readSync(s.dataId),p=e.readSync(i.dataId),[m,f,d]=FL(u,l,c,s.shape,s.dtype,p,i.shape,a),h=m.map(x=>e.makeTensorInfo([x.length],\"int32\",x)),g=e.makeTensorInfo(d,s.dtype,f);return h.concat([g])}var K3={kernelName:Ap,backendName:\"webgl\",kernelFunc:mot};function fot(r){let{inputs:t,backend:e}=r,{starts:n,limits:o,deltas:s}=t,i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=OL(i,n.shape,n.dtype,a,o.shape,u,s.shape),p=e.makeTensorInfo([l.length],\"int32\",l),m=e.makeTensorInfo([c.length],n.dtype,c);return[p,m]}var j3={kernelName:$p,backendName:\"webgl\",kernelFunc:fot};function dot(r){let{inputs:t,backend:e,attrs:n}=r,{shape:o,values:s,defaultValue:i,rowPartitionTensors:a}=t,{rowPartitionTypes:u}=n,l=e.readSync(o.dataId),c=e.readSync(s.dataId),p=e.readSync(i.dataId),m=a.map(g=>e.readSync(g.dataId)),f=a.map(g=>g.shape),[d,h]=PL(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var X3={kernelName:Dp,backendName:\"webgl\",kernelFunc:dot};var kk=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=LL(n,o,s,i);return t.makeTensorInfo([a.length],i,a)},Y3={kernelName:Ol,backendName:\"webgl\",kernelFunc:kk};var hot=\"return 1.0 / x;\",got=Ct({opSnippet:hot}),Z3={kernelName:Pa,backendName:\"webgl\",kernelFunc:got};var xot=fr+`\n return (x < 0.0) ? 0.0 : x;\n`,yot=`\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`,bot=Ct({opSnippet:xot,packedOpSnippet:yot}),J3={kernelName:Cs,backendName:\"webgl\",kernelFunc:bot};var wot=fr+`\n return (x < 0.0) ? 0.0 : min(6.0, x);\n`,Cot=`\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`,Iot=Ct({opSnippet:wot,packedOpSnippet:Cot}),Q3={kernelName:vs,backendName:\"webgl\",kernelFunc:Iot};var qC=class{constructor(t,e,n,o,s){this.variableNames=[\"A\"],this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m;s?m=\"(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)\":m=\"vec2(yRC) * effectiveInputOverOutputRatioRC\",this.userCode=`\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${c[0]/p[0]},\n ${c[1]/p[1]});\n const vec2 inputShapeRC = vec2(${a}.0, ${u}.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 = ${m};\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 `}};var KC=class{constructor(t,e,n,o,s){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m;s?m=\"(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)\":m=\"vec3(yRC) * effectiveInputOverOutputRatioRC\",this.userCode=`\n const vec3 effectiveInputOverOutputRatioRC = vec3(\n ${c[0]/p[0]},\n ${c[1]/p[1]},\n ${c[1]/p[1]});\n const vec3 inputShapeRC = vec3(${a}.0, ${u}.0,\n ${u}.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 = ${m};\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 `}};function Sot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=z().getBool(\"WEBGL_PACK_IMAGE_OPERATIONS\")?new KC(o.shape,u,l,s,i):new qC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],\"float32\")}var tB={kernelName:Ss,backendName:\"webgl\",kernelFunc:Sot};var jC=class{constructor(t,e,n){this.variableNames=[\"dy\"],this.outputShape=[],this.outputShape=e;let[,o,s]=e,[,i,a]=t,u=[n&&i>1?o-1:o,n&&a>1?s-1:s],l=[n&&i>1?i-1:i,n&&a>1?a-1:a],c=u[0]/l[0],p=u[1]/l[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+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(${c});\n const float widthScale = float(${p});\n\n const float invHeightScale = float(${m});\n const float invWidthScale = float(${f});\n\n const int winHeight = int(${d});\n const int winWidth = int(${h});\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 >= ${i}) {\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 >= ${a}) {\n continue;\n }\n\n float dxR = float(dyR) * heightScale;\n int topDxRIndex = int(floor(dxR));\n int bottomDxRIndex = int(min(ceil(dxR), ${o-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), ${s-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 `}};function vot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new jC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var eB={kernelName:Op,backendName:\"webgl\",kernelFunc:vot};var XC=class{constructor(t,e,n,o,s){this.variableNames=[\"A\"],this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m=o?\"0.5\":\"0.0\",f;s?f=\"max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))\":f=\"vec2(yRC) * effectiveInputOverOutputRatioRC\",this.userCode=`\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${c[0]/p[0]},\n ${c[1]/p[1]});\n const vec2 inputShapeRC = vec2(${a}.0, ${u}.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 + ${m})));\n float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d);\n\n setOutput(newValue);\n }\n `}};var YC=class{constructor(t,e,n,o,s){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m=o?\"0.5\":\"0.0\",f;s?f=\"max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))\":f=\"vec3(yRC) * effectiveInputOverOutputRatioRC\",this.userCode=`\n const vec3 effectiveInputOverOutputRatioRC = vec3(\n ${c[0]/p[0]},\n ${c[1]/p[1]},\n ${c[1]/p[1]});\n const vec3 inputShapeRC = vec3(${a}.0, ${u}.0,\n ${u}.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 = ${f};\n\n // Compute the coordinators of nearest neighbor point.\n ivec3 sourceNearestRC = ivec3(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${m})));\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 vec4 newValue = vec4(\n getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d),\n hasNextCol ? getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d + 1) : 0.0);\n\n setOutput(newValue);\n }\n `}};function Not(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=z().getBool(\"WEBGL_PACK_IMAGE_OPERATIONS\")?new YC(o.shape,u,l,s,i):new XC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],o.dtype)}var rB={kernelName:Is,backendName:\"webgl\",kernelFunc:Not};var ZC=class{constructor(t,e,n){this.variableNames=[\"dy\"],this.outputShape=[],this.outputShape=e;let[,o,s]=e,[,i,a]=t,u=[n&&i>1?o-1:o,n&&a>1?s-1:s],l=[n&&i>1?i-1:i,n&&a>1?a-1:a],c=u[0]/l[0],p=u[1]/l[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+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(${c});\n const float widthScale = float(${p});\n\n const float invHeightScale = float(${m});\n const float invWidthScale = float(${f});\n\n const int winHeight = int(${d});\n const int winWidth = int(${h});\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 >= ${i}) {\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 >= ${a}) {\n continue;\n }\n\n float sourceFracRow =\n float(${u[0]}) *\n (float(dyR) / float(${l[0]}));\n\n float sourceFracCol =\n float(${u[1]}) *\n (float(dyC) / float(${l[1]}));\n\n int sourceNearestRow = int(min(\n float(int(${o}) - 1),\n ${n} ? float(round(sourceFracRow)) :\n float(floor(sourceFracRow))));\n\n int sourceNearestCol = int(min(\n float(int(${s}) - 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 `}};function Tot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new ZC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var nB={kernelName:Fp,backendName:\"webgl\",kernelFunc:Tot};var JC=class{constructor(t,e){this.variableNames=[\"x\"];let n=t.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=t,n===1){this.userCode=`\n void main() {\n int coord = getOutputCoords();\n setOutput(getX(${t[0]} - coord - 1));\n }\n `;return}let o=a=>e.indexOf(a)!==-1&&t[a]!==1?`${t[a]} - coords[${a}] - 1`:`coords[${a}]`,s=t.map((a,u)=>o(u)).join(\",\"),i=zt(n);this.userCode=`\n void main() {\n ${i} coords = getOutputCoords();\n setOutput(getX(${s}));\n }\n `}};var QC=class{constructor(t,e){this.variableNames=[\"x\"],this.packedInputs=!0,this.packedOutput=!0;let n=t.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=t;let o=Qe(\"rc\",n),s=`${o[n-1]} + 1 < ${this.outputShape[n-1]}`,i=`${o[n-2]} + 1 < ${this.outputShape[n-2]}`,a=zt(n);n===1?this.userCode=`\n void main(){\n int rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = getChannel(getX(${t[0]} - rc - 1),\n ${t[0]} - rc - 1);\n if(${s}){\n result.g = getChannel(getX(${t[0]} - (rc + 1) - 1),\n ${t[0]} - (rc + 1) - 1);\n }\n setOutput(result);\n }\n `:this.userCode=`\n void main() {\n ${a} rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = ${u(o.slice())};\n if(${s}){\n result.g = ${l(o.slice())};\n }\n if(${i}) {\n result.b = ${c(o.slice())};\n if(${s}) {\n result.a = ${p(o.slice())};\n }\n }\n setOutput(result);\n }\n `;function u(d){return m(d)}function l(d){return d[n-1]=\"(\"+d[n-1]+\" + 1)\",m(d)}function c(d){return d[n-2]=\"(\"+d[n-2]+\" + 1)\",m(d)}function p(d){return d[n-1]=\"(\"+d[n-1]+\" + 1)\",d[n-2]=\"(\"+d[n-2]+\" + 1)\",m(d)}function m(d){let h=t.map((b,w)=>f(w,d)),g=h.join(\",\"),x=h.slice(-2).join(\",\");return`getChannel(getX(${g}), vec2(${x}))`}function f(d,h){return e.indexOf(d)!==-1&&t[d]!==1?`${t[d]} - ${h[d]} - 1`:`${h[d]}`}}};function kot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n,i=o.shape.length,a=y.parseAxisParam(s,o.shape);if(i===0)return tr({inputs:{x:o},backend:e});let u=z().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new QC(o.shape,a):new JC(o.shape,a);return e.runWebGLProgram(u,[o],o.dtype)}var oB={kernelName:Ns,backendName:\"webgl\",kernelFunc:kot};var tI=class{constructor(t,e){this.variableNames=[\"Image\"],this.outputShape=[],this.customUniforms=[{name:\"params\",type:\"vec4\"}];let n=t[1],o=t[2];this.outputShape=t;let s=\"\";typeof e==\"number\"?s=`float outputValue = ${e.toFixed(2)};`:s=`\n vec3 fill = vec3(${e.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) - 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 ${s}\n if(coordX >= 0 && coordX < ${o} && coordY >= 0 && coordY < ${n}) {\n outputValue = getImage(coords[0], coordY, coordX, coords[3]);\n }\n setOutput(outputValue);\n }\n `}};var sB={kernelName:qa,backendName:\"webgl\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=new tI(n.shape,s),[l,c]=v.getImageCenter(i,n.shape[1],n.shape[2]),p=[[l,c,Math.sin(o),Math.cos(o)]];return a.runWebGLProgram(u,[n],n.dtype,p)}};var Eot=`\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`,_ot=Ct({opSnippet:Eot}),iB={kernelName:Ts,backendName:\"webgl\",kernelFunc:_ot};var Aot=\"return inversesqrt(x);\",$ot=Ct({opSnippet:Aot,cpuKernelImpl:ML}),aB={kernelName:ks,backendName:\"webgl\",kernelFunc:$ot};var $d=class{constructor(t,e,n,o,s,i,a=!0){this.variableNames=[\"updates\",\"indices\",\"defaultValue\"],this.outputShape=i;let u=zt(s.length),l=zt(i.length),c=\"\";n===1?c=\"i\":n===2&&(c=\"i, j\");let p=`getIndices(${c})`,m=\"\";o===1?m=\"i\":o===2&&(m=\"i, coords[1]\");let f=`getUpdates(${m})`,d=e>1?\"strides[j]\":\"strides\";this.userCode=`\n ${u} strides = ${u}(${s});\n\n void main() {\n ${l} coords = getOutputCoords();\n float sum = 0.0;\n bool found = false;\n for (int i = 0; i < ${t}; i++) {\n int flattenedIndex = 0;\n for (int j = 0; j < ${e}; j++) {\n int index = round(${p});\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 `}};function Dot(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o,updates:s}=t,{shape:i}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=v.calculateShapes(s,o,i),m=[p/l,l];if(p===0)return e.makeTensorInfo(i,o.dtype);let f=it({inputs:{x:o},backend:e,attrs:{shape:[u,a]}}),d=it({inputs:{x:s},backend:e,attrs:{shape:[u,l]}}),h=e.makeTensorInfo([],\"float32\",new Float32Array([0])),g=new $d(u,a,f.shape.length,d.shape.length,c,m),x=e.runWebGLProgram(g,[d,f,h],d.dtype),b=it({inputs:{x},backend:e,attrs:{shape:i}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(h),b}var lB={kernelName:La,backendName:\"webgl\",kernelFunc:Dot};var eI=class{constructor(t,e,n,o){this.variableNames=[\"sortedSequence\",\"values\"],this.customUniforms=[{name:\"numInputs\",type:\"int\"}],this.outputShape=[t,n];let s=\"while (left < right) {\",i=`for (int i = 0; i < ${Math.ceil(Math.log2(e+1))}; ++i) { if (left >= right) break;`,a=z().getNumber(\"WEBGL_VERSION\")===2?s:i,u=o===\"left\"?\"<\":\"<=\";this.userCode=`\n int findBound(int batch, float value) {\n int left = 0;\n int right = numInputs;\n int mid;\n ${a}\n mid = (left + right) / 2;\n if (getSortedSequence(batch, mid) ${u} value) {\n left = mid + 1;\n } else {\n right = mid;\n }\n }\n return right;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int valueIndex = coords[1];\n\n float value = getValues(batch, valueIndex);\n\n setOutput(float(findBound(batch, value)));\n }\n `}};function Rot(r){let{inputs:t,backend:e,attrs:n}=r,{sortedSequence:o,values:s}=t,{side:i}=n,a=new eI(o.shape[0],o.shape[1],s.shape[1],i),u=[[o.shape[1]]];return e.runWebGLProgram(a,[o,s],\"int32\",u)}var uB={kernelName:Pp,backendName:\"webgl\",kernelFunc:Rot};var rI=class{constructor(t,e,n){this.variableNames=[\"c\",\"a\",\"b\"],this.outputShape=e;let o,s;if(n>4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)s=\"resRC\",o=\"resRC\";else{let a=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\"],u=[],l=[];for(let c=0;c= 1.0) {\n setOutput(getA(${s}));\n } else {\n setOutput(getB(${s}));\n }\n }\n `}};function Fot(r){let{inputs:t,backend:e}=r,{condition:n,t:o,e:s}=t,i=new rI(n.shape.length,o.shape,o.shape.length);return e.runWebGLProgram(i,[n,o,s],sr(o.dtype,s.dtype))}var cB={kernelName:hi,backendName:\"webgl\",kernelFunc:Fot};var Oot=`\n // Stable and Attracting Fixed Point (0, 1) for Normalized Weights.\n // see: https://arxiv.org/abs/1706.02515\n float scaleAlpha = ${v.SELU_SCALEALPHA};\n float scale = ${v.SELU_SCALE};\n return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0);\n`,Pot=Ct({opSnippet:Oot}),pB={kernelName:Ma,backendName:\"webgl\",kernelFunc:Pot};var Lot=Po+`\n return 1.0 / (1.0 + exp(-1.0 * x));\n`,Mot=`\n vec4 result = 1.0 / (1.0 + exp(-1.0 * x));\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`,zot=Ct({opSnippet:Lot,packedOpSnippet:Mot,cpuKernelImpl:BL}),mB={kernelName:_s,backendName:\"webgl\",kernelFunc:zot};var Bot=`\n if (isnan(x)) { return 0.0; }\n return sign(x);\n`,Vot=Ct({opSnippet:Bot}),fB={kernelName:Ba,backendName:\"webgl\",kernelFunc:Vot};var Got=Po+`\n return sin(x);\n`,Wot=Ct({opSnippet:Got}),dB={kernelName:Es,backendName:\"webgl\",kernelFunc:Wot};var Uot=`\n float e2x = exp(x);\n return (e2x - 1.0 / e2x) / 2.0;\n`,Hot=Ct({opSnippet:Uot}),hB={kernelName:za,backendName:\"webgl\",kernelFunc:Hot};var qot=`\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`,Kot=Ct({opSnippet:qot}),gB={kernelName:Va,backendName:\"webgl\",kernelFunc:Kot};var jot=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,paddings:i}=n;y.assert(o.shape.length<=4,()=>\"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet\");let a=s.reduce((x,b)=>x*b),u=[[0,0]];u.push(...i);for(let x=1+s.length;xe.disposeIntermediateTensorInfo(x)),g},xB={kernelName:xi,backendName:\"webgl\",kernelFunc:jot};function Xot(r){let{inputs:t,backend:e}=r,{indices:n,values:o,denseShape:s,defaultValue:i}=t;if(s.shape.length!==1)throw new Error(`Dense shape must be a vector, saw:\n ${s.shape}`);if(n.shape.length!==2)throw new Error(`Indices must be a matrix, saw:\n ${n.shape}`);if(o.shape.length!==1)throw new Error(`Values must be a vector, saw:\n ${o.shape}`);if(i.shape.length!==0)throw new Error(`Default value must be a scalar, saw:\n ${i.shape}`);let a=e.readSync(n.dataId),u=e.readSync(o.dataId),l=e.readSync(s.dataId),c=e.readSync(i.dataId)[0],[p,m,f,d,h]=GL(a,n.shape,n.dtype,u,o.dtype,l,c);return[e.makeTensorInfo(m,n.dtype,p),e.makeTensorInfo([m[0]],o.dtype,f),e.makeTensorInfo([d.length],\"bool\",new Uint8Array(d.map(g=>Number(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var yB={kernelName:Pl,backendName:\"webgl\",kernelFunc:Xot};function Yot(r){let{inputs:t,backend:e}=r,{inputIndices:n,inputShape:o,newShape:s}=t;if(n.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${n.shape}`);if(o.shape.length!==1)throw new Error(`Input shape should be a vector but received shape ${o.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(e.readSync(o.dataId)),a=e.readSync(n.dataId),u=Array.from(e.readSync(s.dataId)),[l,c,p]=WL(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var bB={kernelName:Ga,backendName:\"webgl\",kernelFunc:Yot};function Zot(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);let i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=zw(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var wB={kernelName:Ll,backendName:\"webgl\",kernelFunc:Zot};function Jot(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);let i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=zw(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var CB={kernelName:Ml,backendName:\"webgl\",kernelFunc:Jot};function Qot(r){let{inputs:t,backend:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=t,{outputShape:a}=n,{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=v.calculateShapes(s,o,a),f=!1;if(s.dtype===\"string\"){let x=e.bufferSync(o),b=e.bufferSync(s),w=y.decodeString(e.readSync(i.dataId)[0]),C=zL(x,b,a,m,c,l,u,p,w,f);return e.makeTensorInfo(a,C.dtype,C.values)}let d=new $d(l,u,o.shape.length,s.shape.length,p,[m,1],f),h=e.runWebGLProgram(d,[s,o,i],s.dtype),g=it({inputs:{x:h},backend:e,attrs:{shape:a}});return e.disposeIntermediateTensorInfo(h),g}var IB={kernelName:Lp,backendName:\"webgl\",kernelFunc:Qot};function tst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=n,a=y.parseAxisParam(i,o.shape)[0],u=v.prepareSplitSize(o,s,a),l=o.shape.length,c=new Array(l).fill(0),p=o.shape.slice();return u.map(m=>{let f=[...p];f[a]=m;let d=ri({inputs:{x:o},backend:e,attrs:{begin:c,size:f}});return c[a]+=m,d})}var SB={kernelName:yi,backendName:\"webgl\",kernelFunc:tst};var vB=\"return sqrt(x);\",est=Ct({opSnippet:vB,packedOpSnippet:vB,cpuKernelImpl:UL}),NB={kernelName:As,backendName:\"webgl\",kernelFunc:est};var rst=\"return x * x;\",nst=Ct({opSnippet:rst}),TB={kernelName:zl,backendName:\"webgl\",kernelFunc:nst};var kB=\"return (a - b) * (a - b);\",ost=le({opSnippet:kB,packedOpSnippet:kB}),EB={kernelName:Rs,backendName:\"webgl\",kernelFunc:ost};function sst({inputs:r,attrs:t,backend:e}){let{x:n}=r,o=fr+`\n return x > 0.0 ? 1.0 : float(${t.alpha});\n `,s=new tn(n.shape,o);return e.runWebGLProgram(s,[n],n.dtype)}var _B={kernelName:po,backendName:\"webgl\",kernelFunc:sst};var nI=class{constructor(t,e,n){this.variableNames=[\"x\"],this.outputShape=n;let o=n.length,s=zt(n.length),i=zt(n.length),a=\"\";if(o===1)a=\"coords * strides + begin\";else{let u=0;a=n.map((l,c)=>(u++,n.length===1?`coords * strides[${c}] + begin[${c}]`:`coords[${u-1}] * strides[${c}] + begin[${c}]`)).join(\",\")}this.userCode=`\n ${s} begin = ${s}(${t});\n ${s} strides = ${s}(${e});\n\n void main() {\n ${i} coords = getOutputCoords();\n setOutput(getX(${a}));\n }\n `}};function ist(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n,{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Le.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=it({inputs:{x:o},backend:e,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let A=Le.computeOutShape(b,w,C),$=ri({inputs:{x:o},backend:e,attrs:{begin:b,size:A}});N=it({inputs:{x:$},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo($)}else if(e.shouldExecuteOnCPU([o])){let $=e.readSync(o.dataId),F=wt(o.shape,o.dtype,$),P=HL(f,F,C,b);N=e.makeTensorInfo(d,o.dtype,P.values)}else{let $=new nI(b,C,f);N=e.runWebGLProgram($,[o],o.dtype)}let _=it({inputs:{x:N},backend:e,attrs:{shape:d}});return e.disposeIntermediateTensorInfo(N),_}var AB={kernelName:Wa,backendName:\"webgl\",kernelFunc:ist};function ast(r){let{inputs:t,backend:e,attrs:n}=r,{separator:o,nGramWidths:s,leftPad:i,rightPad:a,padWidth:u,preserveShortSequences:l}=n,{data:c,dataSplits:p}=t,m=e.readSync(c.dataId),f=e.readSync(p.dataId),[d,h]=qL(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],\"string\",d),e.makeTensorInfo(p.shape,\"int32\",h)]}var $B={kernelName:Bl,backendName:\"webgl\",kernelFunc:ast};function lst(r){let{inputs:t,backend:e,attrs:n}=r,{skipEmpty:o}=n,{input:s,delimiter:i}=t;if(s.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let a=e.readSync(s.dataId),u=e.readSync(i.dataId)[0],[l,c,p]=KL(a,u,o),m=c.length;return[e.makeTensorInfo([m,2],\"int32\",l),e.makeTensorInfo([m],\"string\",c),e.makeTensorInfo([2],\"int32\",new Int32Array(p))]}var DB={kernelName:Vl,backendName:\"webgl\",kernelFunc:lst};function ust(r){let{inputs:t,backend:e,attrs:n}=r,{numBuckets:o}=n,{input:s}=t;if(s.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");if(o<=0)throw new Error(\"Number of buckets must be at least 1\");let i=e.readSync(s.dataId),a=jL(i,o);return e.makeTensorInfo(s.shape,\"int32\",a)}var RB={kernelName:Gl,backendName:\"webgl\",kernelFunc:ust};var cst=\"return tan(x);\",pst=Ct({opSnippet:cst}),FB={kernelName:Os,backendName:\"webgl\",kernelFunc:pst};var mst=`\n float e2x = exp(-2.0 * abs(x));\n return sign(x) * (1.0 - e2x) / (1.0 + e2x);\n`,fst=Ct({opSnippet:mst}),OB={kernelName:Ps,backendName:\"webgl\",kernelFunc:fst};var oI=class{constructor(t,e){this.variableNames=[\"A\"];let n=new Array(t.length);for(let i=0;i5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${r[0]})`;let e=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\",\"resRC.u\"],n=[];for(let o=0;o5){let u=e.readSync(o.dataId),l=o.dtype===\"string\"?u.map(m=>y.decodeString(m)):u,c=wt(o.shape,o.dtype,l),p=YL(c,s);return e.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new oI(o.shape,s);return e.runWebGLProgram(i,[o],o.dtype)}var PB={kernelName:Jn,backendName:\"webgl\",kernelFunc:Ek};var sI=class{constructor(t){this.variableNames=[\"x\",\"indices\"],this.customUniforms=[{name:\"n\",type:\"int\"},{name:\"firstPass\",type:\"int\"},{name:\"negativeInf\",type:\"float\"},{name:\"dir\",type:\"int\"},{name:\"inc\",type:\"int\"}],this.outputShape=t,this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int elemIdx = coords[1];\n\n // We compare elements pair-wise within a group of size 2 * inc.\n // The comparing rule for each group alternates between ascending\n // and descending. Within each group, we compare each pair at\n // positions i and i+inc. To decide whether an element at position i\n // is x0 or x1, we mod it by 2 * inc, if the result is smaller than\n // inc, it is in the first half of the group, we denote it as x0,\n // otherwise we denote it as x1.\n // For example, as shown in the Bitonic top K paper referenced above,\n // Figure5(a) shows that element[1] is in the\n // second half of the group when group size is 2, but it is in the\n // first half of the group when group size is 4.\n\n bool isFirstInPair = imod(elemIdx, 2 * inc) < inc;\n int i = isFirstInPair ? elemIdx : elemIdx - inc;\n\n int i0 = firstPass == 1 ? i : int(getIndices(batch, i));\n int i1 = firstPass == 1 ? i + inc : int(getIndices(batch, i + inc));\n float x0 = i0 < n ? getX(batch, i0) : negativeInf;\n float x1 = i1 < n ? getX(batch, i1) : negativeInf;\n\n // Denotes which direction indices are in (ascending or descending).\n bool reverse = imod(elemIdx, 2 * dir) >= dir;\n bool isGreater = x0 > x1 || (x0 == x1 && i1 > i0);\n if (reverse == isGreater) { // Elements in opposite order of direction\n int iTemp = i0;\n i0 = i1;\n i1 = iTemp;\n }\n if (isFirstInPair) {\n setOutput(float(i0));\n } else {\n setOutput(float(i1));\n }\n }\n `}},iI=class{constructor(t){this.variableNames=[\"x\",\"indices\"],this.customUniforms=[{name:\"n\",type:\"int\"},{name:\"firstPass\",type:\"int\"},{name:\"k\",type:\"int\"}],this.outputShape=t,this.userCode=`\n void main() {\n // Takes max of indices (0, k), (1, k + 1), (2, k + 2) ...\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int elemIdx = coords[1];\n\n // The output size is half of the previous size.\n // If the previous sequence is | | | | _ _ _ _ | | | | _ _ _ _ (k=4),\n // we only need to output the indices at positions |, the indices at\n // positions _ can be thrown away, see Figure5(b) After Phase 2\n // (Merge phase) in the Bitonic Top K paper referenced above.\n // For example, the paper shows we only need to output the orange bars.\n // The output sequence should look like this | | | | | | | |.\n // Because the sequence is halved, to map the output index back\n // to the previous sequence to find the corresponding value,\n // we need to double the index. When we double the index,\n // we basically interpolate a position, so 2i looks like\n // | _ | _ | _ | _ | _ | _ | _. We move the | to the first k position\n // of each 2k positions by - elemIdx % k. E.g. for output at\n // index 4,5,6,7, we want to get the corresponding element at\n // original index 8,9,10,11, for output at index 8,9,10,11,\n // we want to get the corresponding element at original index\n // 16,17,18,19, so on and so forth.\n\n int i = elemIdx < k ? elemIdx : (elemIdx * 2 - imod(elemIdx, k));\n int i0 = firstPass == 1 ? i : int(getIndices(batch, i));\n int i1 = firstPass == 1 ? i + k : int(getIndices(batch, i + k));\n\n float x0 = getX(batch, i0);\n float x1 = i1 < n ? getX(batch, i1) : x0;\n\n setOutput(x0 >= x1 ? float(i0) : float(i1));\n }\n `}};function Kc(r,t){t!==null&&r.disposeIntermediateTensorInfo(t)}function LB(r){let t=1;for(;tu){let P=e.readSync(o.dataId),[V,G]=ZL(P,l,o.dtype,s,i);return[e.makeTensorInfo(V.shape,V.dtype,V.values),e.makeTensorInfo(G.shape,G.dtype,G.values)]}if(s===0)return l[l.length-1]=0,[e.makeTensorInfo(l,o.dtype,[]),e.makeTensorInfo(l,\"int32\",[])];if(c===1)return[o,Cl({attrs:{shape:l,dtype:\"int32\",value:0},backend:e})];let p=e.texData.get(o.dataId),m=p!==null&&p.isPacked,f=m?e.unpackTensor(o):o,h=y.sizeFromShape(l)/c,g=it({inputs:{x:f},attrs:{shape:[h,c]},backend:e});m&&Kc(e,f);let x=LB(s),b=LB(c),w=null,C=()=>w===null?[g,g]:[g,w],N=(P,V,G)=>{let W=C(),q=new sI(G),j=[[c],[w===null?1:0],[Number.NEGATIVE_INFINITY],[P],[V]],Y=w;w=e.runWebGLProgram(q,W,\"int32\",j),Kc(e,Y)};for(let P=1;P=1;G/=2)N(V,G,[h,b])}for(let P=b;P>x;P/=2){let V=C(),G=new iI([h,P/2]),q=[[c],[w===null?1:0],[x]],H=w;w=e.runWebGLProgram(G,V,\"int32\",q),Kc(e,H);let j=x/2,Y=j*2;for(let Z=j;Z>=1;Z/=2)N(Y,Z,w.shape)}let _=w;w=ri({inputs:{x:w},backend:e,attrs:{begin:0,size:[h,s]}}),Kc(e,_);let A=Ck({inputs:{x:g,indices:w},backend:e,attrs:{axis:1,batchDims:1}});Kc(e,g);let $=l.slice(0,-1);$.push(s),_=w,w=it({inputs:{x:w},attrs:{shape:$},backend:e}),Kc(e,_);let F=A;return A=it({inputs:{x:A},attrs:{shape:$},backend:e}),Kc(e,F),[A,w]}var MB={kernelName:Ua,backendName:\"webgl\",kernelFunc:hst};var aI=class{constructor(t,e,n,o,s,i){this.variableNames=[\"Image\",\"Transforms\"],this.outputShape=i;let a=n===\"nearest\"?1:2,u;switch(o){case\"constant\":u=1;break;case\"reflect\":u=2;break;case\"wrap\":u=3;break;case\"nearest\":u=4;break;default:u=1;break}this.userCode=`\n float mapCoord(float outCoord, float len) {\n float inCoord = outCoord;\n if(${u} == 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 (${u} == 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 (${u} == 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 < ${t} && 0 <= coordX && coordX < ${e}) {\n outputValue = getImage(batch, coordY, coordX, channel);\n } else {\n outputValue = float(${s});\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(${s});\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(${e}));\n float mapY = mapCoord(inY, float(${t}));\n\n if (${a} == 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 `}};function gst(r){let{inputs:t,backend:e,attrs:n}=r,{image:o,transforms:s}=t,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=n,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=new aI(p,m,i,a,u,g);return e.runWebGLProgram(x,[o,s],\"float32\")}var zB={kernelName:Ha,backendName:\"webgl\",kernelFunc:gst};function xst(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t;Qs(s,\"unique\"),console.warn(\"WARNING: \",\"UI might be locked temporarily as data is being downloaded\");let i=n.readSync(s.dataId),{outputValues:a,outputShape:u,indices:l}=JL(i,o,s.shape,s.dtype);return[n.makeTensorInfo(u,s.dtype,a),n.makeTensorInfo([l.length],\"int32\",l)]}var BB={kernelName:Mp,backendName:\"webgl\",kernelFunc:xst};function yst(r){let{inputs:t,backend:e,attrs:n}=r,{value:o}=t,{axis:s}=n;s<0&&(s+=o.shape.length);let i=o,a=i.shape.length,u=o.shape[s],l=new Array(a-1),c=0;for(let h=0;he.disposeIntermediateTensorInfo(h)),d}var VB={kernelName:bi,backendName:\"webgl\",kernelFunc:yst};var lI=class{constructor(t,e){this.variableNames=[\"x\",\"segmentIds\"];let n=t.windowSize,o=t.batchSize,s=t.inSize,i=t.numSegments,a=i*Math.ceil(s/n);this.outputShape=[o,a];let u=\"0.0\",l=\"sumValue\",c=Math.floor(n/4)*4,p=n%4,m=`\n sumValue += dot(values, segFilter);\n `,f=\"\";s%n>0&&(f=`\n if (inIdx < 0 || inIdx >= ${s}) {\n return initializationValue;\n }\n `);let d=\"\";s%n>0&&(d=`\n if (inIdx < 0 || inIdx >= ${s}) {\n return -1.0;\n }\n `),this.userCode=`\n const float initializationValue = ${u};\n\n float getValue(int batch, int inIdx) {\n ${f}\n return getX(batch, inIdx);\n }\n\n float getSegmentIdAtIndex(int inIdx) {\n ${d}\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 ${i})) * float(${n}));\n int currentSeg = int(mod(float(outIdx), float(${i})));\n\n float sumValue = 0.0;\n\n for (int i = 0; i < ${c}; 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 ${m}\n }\n\n int inIdx = inOffset + ${c};\n if (${p===1}) {\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 ${m}\n } else if (${p===2}) {\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 ${m}\n } else if (${p===3}) {\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 ${m}\n }\n setOutput(${l});\n }\n `}};function bst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,segmentIds:s}=t,{numSegments:i}=n,a=o.shape.length,u=[],l=0,c=v.getAxesPermutation([l],a),p=o;c!=null&&(p=Oe({inputs:{x:o},backend:e,attrs:{perm:c}}),u.push(p),l=v.getInnerMostAxes(1,a)[0]);let m=v.segment_util.computeOutShape(p.shape,l,i),f=y.sizeFromShape([p.shape[l]]),d=it({inputs:{x:p},backend:e,attrs:{shape:[-1,f]}});u.push(d);let h=Wu(o.dtype),g=(C,N,_,A,$)=>{let F=C.shape[0],P=C.shape[1],V=v.segment_util.segOpComputeOptimalWindowSize(P,$),G={windowSize:V,inSize:P,batchSize:F,numSegments:$},W=new lI(G,N),q=e.compileAndRun(W,[C,_],A);if(u.push(q),q.shape[1]===$)return q;let H=kk({backend:e,attrs:{start:0,stop:$,step:1,dtype:\"float32\"}}),j=Ek({inputs:{x:H},backend:e,attrs:{reps:[P/V]}});return u.push(H),u.push(j),g(q,N,j,A,$)},x=g(d,\"unsortedSegmentSum\",s,h,i),b=it({inputs:{x},backend:e,attrs:{shape:m}}),w=b;if(c!=null){u.push(b);let C=v.getUndoAxesPermutation(c);w=Oe({inputs:{x:w},backend:e,attrs:{perm:C}})}return u.forEach(C=>e.disposeIntermediateTensorInfo(C)),w}var GB={kernelName:Wl,backendName:\"webgl\",kernelFunc:bst};var wst=[kM,_M,AM,$M,RM,FM,OM,PM,zM,BM,VM,GM,WM,UM,HM,qM,KM,jM,XM,YM,ZM,QM,tz,ez,sz,az,lz,xM,cz,mz,fz,dz,hz,gz,xz,yz,bz,wz,Cz,vz,Nz,Tz,kz,Ez,_z,Az,$z,Dz,Rz,Fz,Oz,Pz,Lz,Mz,zz,Vz,Gz,Wz,Uz,qz,Kz,jz,Xz,Yz,Zz,Jz,Qz,t3,gM,e3,pz,r3,n3,o3,yM,s3,i3,a3,l3,u3,c3,p3,m3,f3,d3,g3,x3,y3,b3,w3,C3,S3,N3,T3,k3,E3,_3,F3,CM,O3,P3,L3,M3,rz,z3,G3,W3,U3,H3,bM,q3,K3,j3,X3,Y3,nz,A3,Z3,J3,Q3,SM,tB,eB,rB,nB,oB,sB,iB,aB,lB,uB,cB,pB,mB,fB,dB,hB,JM,R3,gB,xB,yB,bB,wB,CB,IB,SB,NB,TB,EB,_B,AB,$B,DB,RB,D3,NM,FB,OB,PB,MB,zB,TM,BB,VB,GB,B3];for(let r of wst)Lu(r);var qt;(function(r){r[r.float32=0]=\"float32\",r[r.int32=1]=\"int32\",r[r.bool=2]=\"bool\",r[r.string=3]=\"string\",r[r.complex64=4]=\"complex64\"})(qt||(qt={}));var Du;(function(r){r[r.linear=0]=\"linear\",r[r.relu=1]=\"relu\",r[r.relu6=2]=\"relu6\",r[r.prelu=3]=\"prelu\",r[r.leakyrelu=4]=\"leakyrelu\",r[r.sigmoid=5]=\"sigmoid\",r[r.elu=6]=\"elu\"})(Du||(Du={}));var WB;function Cst(r){WB=r.wasm.cwrap(Ci,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Ist(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s,bias:i,preluActivationWeights:a}=t;if(o.dtype!==\"float32\"||s.dtype!==\"float32\")throw new Error(\"_FusedMatMul for non non-float32 tensors not yet supported.\");let{transposeA:u,transposeB:l,activation:c,leakyreluAlpha:p}=n,m=e.dataIdMap.get(o.dataId).id,f=e.dataIdMap.get(s.dataId).id,d=0;if(i!=null){let $=e.dataIdMap.get(i.dataId);if($.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${$.shape.length}.`);d=$.id}let h=a==null?0:e.dataIdMap.get(a.dataId).id,g=Du[c];if(g==null)throw new Error(`${c} activation not yet supported for FusedConv2D in the wasm backend.`);let x=u?o.shape[2]:o.shape[1],b=l?s.shape[1]:s.shape[2],w=Vr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)),C=e.makeOutput([...w,x,b],o.dtype),N=e.dataIdMap.get(C.dataId).id,_=new Uint8Array(new Int32Array(o.shape).buffer),A=new Uint8Array(new Int32Array(s.shape).buffer);return WB(m,_,o.shape.length,f,A,s.shape.length,u,l,g,d,h,p||0,N),C}var UB={kernelName:Ci,backendName:\"wasm\",setupFunc:Cst,kernelFunc:Ist};function se(r,t){let e;function n(s){e=s.wasm.cwrap(r,null,[\"number\",\"number\",\"number\"])}function o(s){let{backend:i,inputs:{x:a}}=s,u=i.dataIdMap.get(a.dataId).id,l=i.makeOutput(a.shape,t||a.dtype),c=i.dataIdMap.get(l.dataId).id;return y.sizeFromShape(l.shape)===0||e(u,qt[a.dtype],c),l}return{kernelName:r,backendName:\"wasm\",setupFunc:n,kernelFunc:o}}var HB=se(ii);function ue(r,t,e){let n;function o(i){n=i.wasm.cwrap(r,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\"])}function s(i){let{backend:a,inputs:u}=i,{a:l,b:c}=u,p=a.dataIdMap.get(l.dataId).id,m=a.dataIdMap.get(c.dataId).id,f=e!=null?e:l.dtype,d=v.assertAndGetBroadcastShape(l.shape,c.shape),h=a.makeOutput(d,f);if(y.sizeFromShape(d)===0)return h;let g=new Uint8Array(new Int32Array(l.shape).buffer),x=new Uint8Array(new Int32Array(c.shape).buffer),b=a.dataIdMap.get(h.dataId).id;return(()=>n(p,g,l.shape.length,m,x,c.shape.length,qt[l.dtype],b))(),h}return{kernelName:r,backendName:\"wasm\",setupFunc:o,kernelFunc:s}}var Sst=!0,qB=ue(Zn,Sst);var KB;function vst(r){KB=r.wasm.cwrap(Go,null,[\"array\",\"number\",\"number\",\"number\"])}function Nst(r){let{inputs:t,backend:e}=r,n=e.makeOutput(t[0].shape,t[0].dtype);if(y.sizeFromShape(n.shape)===0)return n;let o=t.map(a=>e.dataIdMap.get(a.dataId).id),s=new Uint8Array(new Int32Array(o).buffer),i=e.dataIdMap.get(n.dataId).id;return KB(s,o.length,qt[n.dtype],i),n}var jB={kernelName:Go,backendName:\"wasm\",setupFunc:vst,kernelFunc:Nst};function jc(r){let{inputs:{x:t},backend:e}=r;if(t.dtype===\"string\")return ur(e.readSync(t.dataId),t.shape,t.dtype);let n=e.makeOutput(t.shape,t.dtype),o=e.typedArrayFromHeap(t);return e.typedArrayFromHeap(n).set(o),n}var XB={kernelName:co,backendName:\"wasm\",kernelFunc:jc};var YB;function Tst(r){YB=r.wasm.cwrap(Qn,null,[\"number\",\"array\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function ao(r){let{inputs:t,backend:e,attrs:n}=r,[o,s]=Est(t.x.shape,n.perm),i=!0;for(let d=0;d=o&&(s===-1||n[s]>n[i])&&(s=i);n[s]=o}return[e,n]}var ZB={kernelName:Qn,backendName:\"wasm\",kernelFunc:ao,setupFunc:Tst};function bn(r,t,e){let n=r.shape,o=r.shape.length,s=y.parseAxisParam(t,n),i=s,a=v.getAxesPermutation(i,o),u=null,l=!1;if(a!=null){let c=new Array(o);for(let f=0;f`new shape: ${i}, old shape: ${n.shape}. New shape and old shape must have the same number of elements.`),r.backend.incRef(n.dataId),{dataId:n.dataId,shape:i,dtype:n.dtype}}var iV={kernelName:di,backendName:\"wasm\",kernelFunc:ar};var aV;function Lst(r){aV=r.wasm.cwrap(Ho,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\"])}function Mst(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;if(o.dtype!==\"float32\"||s.dtype!==\"float32\")throw new Error(\"BatchMatMul for non non-float32 tensors not yet supported.\");let u=o.shape.length,l=s.shape.length,c=i?o.shape[u-2]:o.shape[u-1],p=a?s.shape[l-1]:s.shape[l-2],m=i?o.shape[u-1]:o.shape[u-2],f=a?s.shape[l-2]:s.shape[l-1],d=o.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=Vr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)).concat([m,f]);y.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${o.shape} and ${s.shape} and transposeA=${i} and transposeB=${a} must match.`);let C=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],_=ar({inputs:{x:o},backend:e,attrs:{shape:C}}),A=ar({inputs:{x:s},backend:e,attrs:{shape:N}}),$=e.dataIdMap.get(_.dataId).id,F=e.dataIdMap.get(A.dataId).id,P=i?_.shape[2]:_.shape[1],V=a?A.shape[1]:A.shape[2],G=Math.max(g,x),W=e.makeOutput([G,P,V],_.dtype),q=e.dataIdMap.get(W.dataId).id,H=new Uint8Array(new Int32Array(_.shape).buffer),j=new Uint8Array(new Int32Array(A.shape).buffer);return aV($,H,_.shape.length,F,j,A.shape.length,i,a,q),e.disposeData(_.dataId),e.disposeData(A.dataId),W.shape=w,W}var lV={kernelName:Ho,backendName:\"wasm\",setupFunc:Lst,kernelFunc:Mst};function Lo(r){let{inputs:{x:t},attrs:{begin:e,size:n},backend:o}=r,[s,i]=Le.parseSliceParams(t,e,n),a=Le.isSliceContinous(t.shape,s,i),u=o.readSync(t.dataId),l=o.makeOutput(i,t.dtype),c=y.computeStrides(t.shape),p=o.dataIdMap.get(l.dataId);if(a){let d=Le.computeFlatOffset(s,c);return t.dtype===\"string\"?p.stringBytes=u.slice(d,d+y.sizeFromShape(i)):o.typedArrayFromHeap(l).set(u.subarray(d,d+y.sizeFromShape(i))),l}if(t.dtype===\"string\"){let d=$c(u,s,i,t.shape,t.dtype);return p.stringBytes=d,l}let m=o.typedArrayFromHeap(l),f=t.shape.length;if(f===2)zst(u,c[0],m,s,i);else if(f===3)Bst(u,c[0],c[1],m,s,i);else if(f===4)Vst(u,c[0],c[1],c[2],m,s,i);else{let d=$c(u,s,i,t.shape,t.dtype);m.set(d)}return l}function zst(r,t,e,n,o){let s=0,i=n[0],a=n[1],u=i+o[0];for(let l=i;lx*b),u=v.getReshaped(o.shape,s,a),l=v.getPermuted(u.length,s.length),c=v.getReshapedPermuted(o.shape,s,a),p=v.getSliceBeginCoords(i,s.length),m=v.getSliceSize(c,i,s.length),f=ar({inputs:{x:o},backend:e,attrs:{shape:u}}),d=ao({inputs:{x:f},backend:e,attrs:{perm:l}}),h=ar({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Lo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeData(f.dataId),e.disposeData(d.dataId),e.disposeData(f.dataId),g}var cV={kernelName:ai,backendName:\"wasm\",kernelFunc:Gst};function ni(r){let{inputs:{x:t},attrs:{dtype:e},backend:n}=r,o=n.makeOutput(t.shape,e),s=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(o).set(s),o}var pV={kernelName:lo,backendName:\"wasm\",kernelFunc:ni};var mV=se(qo);var fV;function Wst(r){fV=r.wasm.cwrap(uo,null,[\"number\",\"number\",\"number\",\"number\"])}function Ust(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a=e.dataIdMap.get(o.dataId).id,u=e.makeOutput(o.shape,o.dtype),l=e.dataIdMap.get(u.dataId).id;return fV(a,s,i,l),u}var dV={kernelName:uo,backendName:\"wasm\",setupFunc:Wst,kernelFunc:Ust};function _k(r){let{inputs:t,backend:e}=r,n=y.parseAxisParam(r.attrs.axis,t[0].shape)[0],o=t.map(f=>f.shape);v.assertParamsConsistent(o,n);let s=v.computeOutShape(t.map(f=>f.shape),n),i=t.filter(f=>y.sizeFromShape(f.shape)>0);if(i.length===1)return jc({inputs:{x:i[0]},backend:e});let a=e.makeOutput(s,t[0].dtype);if(y.sizeFromShape(s)===0)return a;if(i[0].dtype===\"string\"){let f=i.map(w=>{let N=[-1,y.sizeFromShape(w.shape.slice(n))];return ar({inputs:{x:w},backend:e,attrs:{shape:N}})}),d=f.map(w=>({vals:e.readSync(w.dataId),shape:w.shape}));s=v.computeOutShape(f.map(w=>w.shape),1);let h=f[0].shape[0]===1,g=Ec(d,s,t[0].dtype,h),x=v.computeOutShape(i.map(w=>w.shape),n);a.shape=x;let b=e.dataIdMap.get(a.dataId);return b.stringBytes=v.fromStringArrayToUint8(g),f.forEach(w=>e.disposeData(w.dataId)),a}let u=y.sizeFromShape(i[0].shape.slice(0,n)),l=0,c=i.map(f=>{let d=y.sizeFromShape(f.shape.slice(n));return l+=d,d}),p=i.map(f=>e.typedArrayFromHeap(f)),m=e.typedArrayFromHeap(a);for(let f=0;f`cumprod does not support ${o.dtype} tensors in the WASM backend`);let l=v.getAxesPermutation([s],u),c=o;l!==null&&(c=ao({inputs:{x:o},attrs:{perm:l},backend:e}));let p=v.getInnerMostAxes(1,u)[0];v.assertAxesAreInnerMostDims(\"cumprod\",[p],u);let m=e.makeOutput(c.shape,c.dtype),f=c.shape[p],d=e.dataIdMap.get(c.dataId).id,h=e.dataIdMap.get(m.dataId).id;vV(d,i?1:0,a?1:0,f,h,qt[o.dtype]);let g=m;if(l!==null){let x=v.getUndoAxesPermutation(l);g=ao({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var NV={kernelName:fa,backendName:\"wasm\",setupFunc:Zst,kernelFunc:Jst};var TV;function Qst(r){TV=r.wasm.cwrap(Zo,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function tit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n,u=o.shape.length;y.assert(o.dtype===\"float32\"||o.dtype===\"int32\",()=>`cumsum does not support ${o.dtype} tensors in the WASM backend`);let l=v.getAxesPermutation([s],u),c=o;l!==null&&(c=ao({inputs:{x:o},attrs:{perm:l},backend:e}));let p=v.getInnerMostAxes(1,u)[0];v.assertAxesAreInnerMostDims(\"cumsum\",[p],u);let m=e.makeOutput(c.shape,c.dtype),f=c.shape[p],d=e.dataIdMap.get(c.dataId).id,h=e.dataIdMap.get(m.dataId).id;TV(d,i?1:0,a?1:0,f,h,qt[o.dtype]);let g=m;if(l!==null){let x=v.getUndoAxesPermutation(l);g=ao({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var kV={kernelName:Zo,backendName:\"wasm\",setupFunc:Qst,kernelFunc:tit};var EV;function eit(r){EV=r.wasm.cwrap(ha,null,[\"number\",\"number\",\"number\",\"array\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function rit(r){let{backend:t,inputs:e,attrs:n}=r,{x:o}=e,{blockSize:s,dataFormat:i}=n,a=o.shape[0],u=i===\"NHWC\"?o.shape[1]:o.shape[2],l=i===\"NHWC\"?o.shape[2]:o.shape[3],c=i===\"NHWC\"?o.shape[3]:o.shape[1],p=u*s,m=l*s,f=c/(s*s),d=i===\"NHWC\"?[a,p,m,f]:[a,f,p,m],h=t.makeOutput(d,\"float32\"),x=t.dataIdMap.get(o.dataId).id,b=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),w=new Uint8Array(new Int32Array(d).buffer),C=new Uint8Array(new Int32Array(y.computeStrides(d)).buffer),N=t.dataIdMap.get(h.dataId).id;return EV(x,s,i===\"NHWC\"?1:0,b,o.shape.length-1,w,C,d.length,N),h}var _V={kernelName:ha,backendName:\"wasm\",setupFunc:eit,kernelFunc:rit};var AV;function nit(r){AV=r.wasm.cwrap(Jo,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function oit(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s}=t,i=n.dataIdMap.get(o.dataId).id,a=n.dataIdMap.get(s.dataId).id,{strides:u,dilations:l,pad:c,dimRoundingMode:p}=e,m=l==null?[1,1]:l,f=v.computeConv2DInfo(o.shape,s.shape,u,m,c,p,!0),d=f.filterHeight,h=f.filterWidth,g=f.padInfo.top,x=f.padInfo.right,b=f.padInfo.bottom,w=f.padInfo.left,C=f.dilationHeight,N=f.dilationWidth,_=f.strideHeight,A=f.strideWidth,$=f.inChannels,F=f.outChannels,P=f.padInfo.type===\"SAME\"?1:0;if(f.dataFormat!==\"channelsLast\")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${f.dataFormat}'. Please use 'channelsLast'.`);let V=n.makeOutput(f.outShape,\"float32\"),G=n.dataIdMap.get(V.dataId).id;return AV(i,o.shape[0],o.shape[1],o.shape[2],a,d,h,g,x,b,w,P,C,N,_,A,$,F,G),V}var $V={kernelName:Jo,backendName:\"wasm\",setupFunc:nit,kernelFunc:oit};var DV=se(ts);var sit=!1,RV=ue(xa,sit,\"bool\");var FV=se(es,\"float32\");function uI(r){let{inputs:t,attrs:e,backend:n}=r,{input:o}=t,{dim:s}=e,i=o.shape.length,a=o.shape.slice(),u=s;return s<0&&(y.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+s+1),a.splice(u,0,1),ar({inputs:{x:o},backend:n,attrs:{shape:a}})}var OV={kernelName:ui,backendName:\"wasm\",kernelFunc:uI};function $k(r){let{attrs:{shape:t,value:e,dtype:n},backend:o}=r,s=o.makeOutput(t,n);return o.typedArrayFromHeap(s).fill(e),s}var PV={kernelName:Dl,backendName:\"wasm\",kernelFunc:$k};var LV;function iit(r){LV=r.wasm.cwrap(ba,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function ait(r){let{inputs:t,backend:e}=r,{image:n}=t,o=e.makeOutput(n.shape,n.dtype),s=e.dataIdMap.get(n.dataId).id,i=e.dataIdMap.get(o.dataId).id,[a,u,l,c]=n.shape;return LV(s,a,u,l,c,i),o}var MV={kernelName:ba,backendName:\"wasm\",kernelFunc:ait,setupFunc:iit};var zV=se(rs);var lit=!1,BV=ue(ns,lit);var VV;function uit(r){VV=r.wasm.cwrap(os,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function cit(r){let{backend:t,inputs:e,attrs:n}=r,{varianceEpsilon:o}=n,{x:s,mean:i,variance:a,offset:u,scale:l}=e,c=t.dataIdMap.get(s.dataId).id,p=t.dataIdMap.get(i.dataId).id,m=t.dataIdMap.get(a.dataId).id,f=u!=null?t.dataIdMap.get(u.dataId).id:0,d=l!=null?t.dataIdMap.get(l.dataId).id:0,h=t.makeOutput(s.shape,s.dtype);if(y.sizeFromShape(s.shape)===0)return h;let g=t.dataIdMap.get(h.dataId).id;return VV(c,p,m,f,d,o,g),h}var GV={kernelName:os,backendName:\"wasm\",setupFunc:uit,kernelFunc:cit};var WV;function pit(r){WV=r.wasm.cwrap(Ii,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function mit(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=e,h=v.computeConv2DInfo(o.shape,s.shape,u,c,l,m),g=Du[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedConv2D in the wasm backend.`);let x=n.dataIdMap.get(o.dataId).id,b=n.dataIdMap.get(s.dataId).id,w=h.outChannels,C=0;if(i!=null){let nt=n.dataIdMap.get(i.dataId);if(nt.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${nt.shape.length}.`);if(nt.shape[0]!==w)throw new Error(`FusedConv2D bias shape (${nt.shape}) does not match the number of output channels (${w})`);C=nt.id}let N=h.filterHeight,_=h.filterWidth,A=h.padInfo.top,$=h.padInfo.right,F=h.padInfo.bottom,P=h.padInfo.left,V=h.dilationHeight,G=h.dilationWidth,W=h.strideHeight,q=h.strideWidth,H=h.inChannels,j=h.padInfo.type===\"SAME\"?1:0,Y=h.batchSize,Z=h.inHeight,et=h.inWidth;if(p!==\"NHWC\")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let rt=n.makeOutput(h.outShape,\"float32\"),ot=n.dataIdMap.get(rt.dataId).id,at=a==null?0:n.dataIdMap.get(a.dataId).id;return WV(x,Y,Z,et,b,N,_,C,A,$,F,P,j,V,G,W,q,H,w,g,at,d||0,ot),rt}var UV={kernelName:Ii,backendName:\"wasm\",setupFunc:pit,kernelFunc:mit};var HV;function fit(r){HV=r.wasm.cwrap(Si,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function dit(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=e,h=v.computeConv2DInfo(o.shape,s.shape,u,c,l,m,!0),g=Du[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let x=n.dataIdMap.get(o.dataId).id,b=n.dataIdMap.get(s.dataId).id,w=h.outChannels,C=0;if(i!=null){let nt=n.dataIdMap.get(i.dataId);if(nt.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${nt.shape.length}.`);if(nt.shape[0]!==w)throw new Error(`FusedDepthwiseConv2D bias shape (${nt.shape}) does not match the number of output channels (${w})`);C=nt.id}let N=h.filterHeight,_=h.filterWidth,A=h.padInfo.top,$=h.padInfo.right,F=h.padInfo.bottom,P=h.padInfo.left,V=h.dilationHeight,G=h.dilationWidth,W=h.strideHeight,q=h.strideWidth,H=h.inChannels,j=h.padInfo.type===\"SAME\"?1:0,Y=h.batchSize,Z=h.inHeight,et=h.inWidth;if(p!==\"NHWC\")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let rt=n.makeOutput(h.outShape,\"float32\"),ot=n.dataIdMap.get(rt.dataId).id,at=a==null?0:n.dataIdMap.get(a.dataId).id;return HV(x,Y,Z,et,b,N,_,C,A,$,F,P,j,V,G,W,q,H,w,g,at,d||0,ot),rt}var qV={kernelName:Si,backendName:\"wasm\",setupFunc:fit,kernelFunc:dit};var KV;function hit(r){KV=r.wasm.cwrap(wa,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function git(r){let{backend:t,inputs:e}=r,{params:n,indices:o}=e,[s,i,a,u]=ox.prepareAndValidate(n,o),l=t.makeOutput(s,n.dtype);if(i===0)return l;let c=o.shape,p=c[c.length-1],f=t.dataIdMap.get(n.dataId).id,h=t.dataIdMap.get(o.dataId).id,g=new Uint8Array(new Int32Array(u).buffer),x=t.dataIdMap.get(l.dataId).id;return KV(f,qt[n.dtype],h,i,p,a,g,x),l}var jV={kernelName:wa,backendName:\"wasm\",setupFunc:hit,kernelFunc:git};var XV;function xit(r){XV=r.wasm.cwrap(\"Gather\",null,[\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function yit(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,indices:s}=e,{axis:i,batchDims:a}=n,u=y.parseAxisParam(i,o.shape)[0],l=t.readSync(s.dataId),c=o.shape[u];for(let F=0;F=0,()=>`GatherV2: the index value ${P} is not in [0, ${c-1}]`)}let p=v.segment_util.collectGatherOpShapeInfo(o,s,u,a),m=ar({inputs:{x:o},attrs:{shape:[p.batchSize,p.outerSize,p.dimSize,p.sliceSize]},backend:t}),f=y.sizeFromShape(s.shape),d=ar({inputs:{x:s},attrs:{shape:[p.batchSize,f/p.batchSize]},backend:t}),h=[p.batchSize,p.outerSize,f/p.batchSize,p.sliceSize],g=t.makeOutput(h,o.dtype);if(y.sizeFromShape(o.shape)===0)return g;let x=m.shape.length-1,w=t.dataIdMap.get(m.dataId).id,N=t.dataIdMap.get(d.dataId).id,_=t.dataIdMap.get(g.dataId).id,A=new Uint8Array(new Int32Array(y.computeStrides(m.shape)).buffer),$=new Uint8Array(new Int32Array(y.computeStrides(h)).buffer);return XV(w,qt[o.dtype],A,x,N,p.batchSize,$,_),t.disposeData(m.dataId),t.disposeData(d.dataId),g.shape=p.outputShape,g}var YV={kernelName:ci,backendName:\"wasm\",setupFunc:xit,kernelFunc:yit};var bit=!1,ZV=ue(Ca,bit,\"bool\");var wit=!1,JV=ue(ss,wit,\"bool\");var QV;function Cit(r){QV=r.wasm.cwrap(is,null,[\"number\",\"number\",\"number\",\"number\"])}function Iit(r){let{inputs:{x:t},attrs:{alpha:e},backend:n}=r,o=n.dataIdMap.get(t.dataId).id,s=n.makeOutput(t.shape,\"float32\");if(y.sizeFromShape(t.shape)!==0){let i=n.dataIdMap.get(s.dataId).id;QV(o,qt[t.dtype],e,i)}return s}var tG={kernelName:is,backendName:\"wasm\",setupFunc:Cit,kernelFunc:Iit};var Sit=!1,eG=ue(Na,Sit,\"bool\");var vit=!1,rG=ue(Ta,vit,\"bool\");var nG=se(as);var Nit=!1,oG=ue(Ea,Nit,\"bool\");var sG=se(_a);var Tit=!1,iG=ue(Aa,Tit,\"bool\");var kit=!1,aG=ue(m1,kit,\"bool\");var lG;function Eit(r){lG=r.wasm.cwrap(ls,null,[\"number\",\"number\",\"number\",\"number\"])}function _it(r){let{backend:t,inputs:e,attrs:n}=r,{reductionIndices:o,keepDims:s}=n,{x:i}=e,u=t.dataIdMap.get(i.dataId).id,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;l=c,u=w}let d=l.shape.length;v.assertAxesAreInnerMostDims(\"max\",p,d);let[h,g]=v.computeOutAndReduceShapes(l.shape,p),x=y.sizeFromShape(g),b=t.makeOutput(h,i.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;lG(u,qt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=v.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var uG={kernelName:ls,backendName:\"wasm\",setupFunc:Eit,kernelFunc:_it};var Ait=!1,cG=ue(us,Ait);var pG;function $it(r){pG=r.wasm.cwrap(cs,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Dit(r){let{inputs:t,attrs:e,backend:n}=r,o=t.x,s=n.dataIdMap.get(o.dataId).id;y.assert(o.dtype===\"float32\",()=>`Error in MaxPool: only float32 input is supported. Got ${o.dtype}.`);let{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=e,c=v.computePool2DInfo(o.shape,i,a,1,u,l),p=c.filterHeight,m=c.filterWidth,f=c.padInfo.top,d=c.padInfo.right,h=c.padInfo.bottom,g=c.padInfo.left,x=c.dilationHeight,b=c.dilationWidth,w=c.strideHeight,C=c.strideWidth,N=c.inChannels,_=c.outChannels;if(c.dataFormat!==\"channelsLast\")throw new Error(`wasm backend does not support dataFormat:'${c.dataFormat}'. Please use 'channelsLast'.`);let A=n.makeOutput(c.outShape,\"float32\"),$=n.dataIdMap.get(A.dataId).id;return pG(s,o.shape[0],o.shape[1],o.shape[2],p,m,f,d,h,g,x,b,w,C,N,_,$),A}var mG={kernelName:cs,backendName:\"wasm\",setupFunc:$it,kernelFunc:Dit};var fG;function Rit(r){fG=r.wasm.cwrap(ps,null,[\"number, number, number\"])}function Fit(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t),d=p;if(f){let C=t.dataIdMap.get(c.dataId).id;C!==a&&(l=c,u=C,d=v.getInnerMostAxes(d.length,l.shape.length))}v.assertAxesAreInnerMostDims(\"mean\",d,l.shape.length);let[h,g]=v.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=l;l.dtype!==\"float32\"&&(b=ni({backend:t,inputs:{x:l},attrs:{dtype:\"float32\"}}),u=t.dataIdMap.get(b.dataId).id);let w=t.makeOutput(h,\"float32\");if(y.sizeFromShape(l.shape)!==0){let C=t.dataIdMap.get(w.dataId).id;fG(u,x,C)}if(f&&t.disposeData(c.dataId),s){let C=v.expandShapeToKeepDim(w.shape,m);w.shape=C}return l.dtype!==\"float32\"&&t.disposeData(b.dataId),w}var dG={kernelName:ps,backendName:\"wasm\",setupFunc:Rit,kernelFunc:Fit};var hG;function Oit(r){hG=r.wasm.cwrap(ms,null,[\"number\",\"number\",\"number\",\"number\"])}function Pit(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w)}let d=l.shape.length;v.assertAxesAreInnerMostDims(\"min\",p,d);let[h,g]=v.computeOutAndReduceShapes(l.shape,p),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;hG(u,qt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=v.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var gG={kernelName:ms,backendName:\"wasm\",setupFunc:Oit,kernelFunc:Pit};var Lit=!1,xG=ue(fs,Lit);var Dk;(function(r){r[r.reflect=0]=\"reflect\",r[r.symmetric=1]=\"symmetric\"})(Dk||(Dk={}));var yG;function Mit(r){yG=r.wasm.cwrap(ds,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function zit(r){let{inputs:{x:t},backend:e,attrs:{paddings:n,mode:o}}=r,s=n.map((d,h)=>d[0]+t.shape[h]+d[1]),i=e.dataIdMap.get(t.dataId).id,a=e.makeOutput(s,t.dtype),u=e.dataIdMap.get(a.dataId).id,l=new Uint8Array(new Int32Array(t.shape).buffer),c=n.map(d=>d[0]),p=n.map(d=>d[1]),m=new Uint8Array(new Int32Array(c).buffer),f=new Uint8Array(new Int32Array(p).buffer);return yG(i,l,t.shape.length,qt[t.dtype],m,f,Dk[o],u),a}var bG={kernelName:ds,backendName:\"wasm\",kernelFunc:zit,setupFunc:Mit};var Bit=!0,wG=ue(hs,Bit);var CG=se(pi);function Dd(r,t){let e=new Int32Array(r.wasm.HEAPU8.buffer,t,4),n=e[0],o=e[1],s=e[2],i=e[3];return r.wasm._free(t),{pSelectedIndices:n,selectedSize:o,pSelectedScores:s,pValidOutputs:i}}var IG;function Vit(r){IG=r.wasm.cwrap(Ra,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\"])}function Git(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i}=n,{boxes:a,scores:u}=e,l=t.dataIdMap.get(a.dataId).id,c=t.dataIdMap.get(u.dataId).id,p=IG(l,c,s,o,i),{pSelectedIndices:m,selectedSize:f,pSelectedScores:d,pValidOutputs:h}=Dd(t,p);return t.wasm._free(d),t.wasm._free(h),t.makeOutput([f],\"int32\",m)}var SG={kernelName:Ra,backendName:\"wasm\",setupFunc:Vit,kernelFunc:Git};var vG;function Wit(r){vG=r.wasm.cwrap(Fa,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\",\"bool\"])}function Uit(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:a}=n,{boxes:u,scores:l}=e,c=t.dataIdMap.get(u.dataId).id,p=t.dataIdMap.get(l.dataId).id,m=vG(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Dd(t,m);t.wasm._free(h);let x=t.makeOutput([d],\"int32\",f),b=t.makeOutput([],\"int32\",g);return[x,b]}var NG={kernelName:Fa,backendName:\"wasm\",setupFunc:Wit,kernelFunc:Uit};var TG;function Hit(r){TG=r.wasm.cwrap(Oa,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function qit(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i,softNmsSigma:a}=n,{boxes:u,scores:l}=e,c=t.dataIdMap.get(u.dataId).id,p=t.dataIdMap.get(l.dataId).id,m=TG(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Dd(t,m);t.wasm._free(g);let x=t.makeOutput([d],\"int32\",f),b=t.makeOutput([d],\"float32\",h);return[x,b]}var kG={kernelName:Oa,backendName:\"wasm\",setupFunc:Hit,kernelFunc:qit};var Kit=!1,EG=ue(Da,Kit,\"bool\");var _G;function jit(r){_G=r.wasm.cwrap(gs,null,[\"number\",\"number\",\"number\",\"number\",\"number\"])}function Xit(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o}=t,{dtype:s,depth:i,onValue:a,offValue:u}=n,l=e.makeOutput([...o.shape,i],s),c=e.dataIdMap.get(l.dataId).id,m=e.dataIdMap.get(o.dataId).id;return _G(m,i,a,u,c),l}var AG={kernelName:gs,backendName:\"wasm\",setupFunc:jit,kernelFunc:Xit};function Yit(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(1),n}var $G={kernelName:mi,backendName:\"wasm\",kernelFunc:Yit};function Zit(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return uI({inputs:{input:t[0]},backend:e,attrs:{dim:o}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{y.assertShapesMatch(s,c.shape,\"All tensors passed to stack must have matching shapes\"),y.assert(i===c.dtype,()=>\"All tensors passed to stack must have matching dtypes\")});let a=[],u=t.map(c=>{let p=uI({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=_k({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeData(c.dataId)),l}var DG={kernelName:fi,backendName:\"wasm\",kernelFunc:Zit};var RG;function Jit(r){RG=r.wasm.cwrap(xs,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function Qit(r){let{inputs:{x:t},backend:e,attrs:{paddings:n,constantValue:o}}=r,s=n.map((h,g)=>h[0]+t.shape[g]+h[1]);if(y.sizeFromShape(t.shape)===0)return $k({backend:e,attrs:{shape:s,value:o,dtype:t.dtype}});let i=e.dataIdMap.get(t.dataId).id,a=e.makeOutput(s,t.dtype),l=e.dataIdMap.get(a.dataId).id,c=new Uint8Array(new Int32Array(t.shape).buffer),p=n.map(h=>h[0]),m=n.map(h=>h[1]),f=new Uint8Array(new Int32Array(p).buffer),d=new Uint8Array(new Int32Array(m).buffer);return RG(i,c,t.shape.length,qt[t.dtype],f,d,o,l),a}var cI={kernelName:xs,backendName:\"wasm\",kernelFunc:Qit,setupFunc:Jit};var tat=!1,FG=ue(ys,tat);var OG;function eat(r){OG=r.wasm.cwrap(bs,null,[\"number\",\"number\",\"number\"])}function rat(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=e.dataIdMap.get(n.dataId).id,i=e.dataIdMap.get(o.dataId).id,a=s,u=n,l=u;u.dtype!==\"float32\"&&(l=ni({backend:e,inputs:{x:n},attrs:{dtype:\"float32\"}}),a=e.dataIdMap.get(l.dataId).id);let c=e.makeOutput(n.shape,\"float32\"),p=e.dataIdMap.get(c.dataId).id;return OG(a,i,p),u.dtype!==\"float32\"&&e.disposeData(l.dataId),c}var PG={kernelName:bs,backendName:\"wasm\",setupFunc:eat,kernelFunc:rat};var LG;function nat(r){LG=r.wasm.cwrap(ws,null,[\"number\",\"number\",\"number\",\"number\"])}function oat(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=v.getInnerMostAxes(d.length,l.shape.length))}v.assertAxesAreInnerMostDims(\"prod\",d,l.shape.length);let[h,g]=v.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;LG(u,x,qt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=v.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var MG={kernelName:ws,backendName:\"wasm\",setupFunc:nat,kernelFunc:oat};var sat=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=Ac(n,o,s,i),u=t.makeOutput([a.length],i);return t.typedArrayFromHeap(u).set(a),u},zG={kernelName:Ol,backendName:\"wasm\",kernelFunc:sat};var iat=!0,BG=ue(Qo,iat);var VG=se(Cs);var GG=se(vs);var WG;function aat(r){WG=r.wasm.cwrap(Ss,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function lat(r){let{backend:t,inputs:e,attrs:n}=r,{images:o}=e,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,[c,p,m,f]=o.shape,d=[c,u,l,f],h=t.dataIdMap.get(o.dataId),g;h.dtype!==\"float32\"&&(g=ni({backend:t,inputs:{x:o},attrs:{dtype:\"float32\"}}),h=t.dataIdMap.get(g.dataId));let x=h.id,b=t.makeOutput(d,\"float32\");if(y.sizeFromShape(o.shape)===0)return b;let w=t.dataIdMap.get(b.dataId).id;return WG(x,c,p,m,f,u,l,s?1:0,i?1:0,w),g!=null&&t.disposeData(g.dataId),b}var UG={kernelName:Ss,backendName:\"wasm\",setupFunc:aat,kernelFunc:lat};var HG;function uat(r){HG=r.wasm.cwrap(Is,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function cat(r){let{backend:t,inputs:e,attrs:n}=r,{images:o}=e,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,[c,p,m,f]=o.shape,d=[c,u,l,f],h=t.makeOutput(d,\"float32\");if(y.sizeFromShape(o.shape)===0)return h;let g=t.dataIdMap.get(o.dataId),x;g.dtype!==\"float32\"&&(x=ni({backend:t,inputs:{x:o},attrs:{dtype:\"float32\"}}),g=t.dataIdMap.get(x.dataId));let b=g.id,w=t.dataIdMap.get(h.dataId).id;return HG(b,c,p,m,f,u,l,s?1:0,i?1:0,w),x!=null&&t.disposeData(x.dataId),h}var qG={kernelName:Is,backendName:\"wasm\",setupFunc:uat,kernelFunc:cat};var KG;function pat(r){KG=r.wasm.cwrap(Ns,null,[\"number\",\"array\",\"number\",\"array\",\"number\",\"number\"])}function mat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n,i=y.parseAxisParam(s,o.shape);if(o.shape.length===0)return jc({inputs:{x:o},backend:e});let a=e.makeOutput(o.shape,o.dtype),u=e.dataIdMap.get(o.dataId).id,l=e.dataIdMap.get(a.dataId).id,c=new Uint8Array(new Int32Array(i).buffer),p=new Uint8Array(new Int32Array(o.shape).buffer);KG(u,c,i.length,p,o.shape.length,l);let m=ar({inputs:{x:a},attrs:{shape:o.shape},backend:e});return e.disposeData(a.dataId),m}var jG={kernelName:Ns,backendName:\"wasm\",kernelFunc:mat,setupFunc:pat};var XG;function fat(r){XG=r.wasm.cwrap(qa,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\"])}function dat(r){let{inputs:t,backend:e,attrs:n}=r,{image:o}=t,{radians:s,fillValue:i,center:a}=n,u=e.makeOutput(o.shape,o.dtype),l=e.dataIdMap.get(o.dataId).id,c=e.dataIdMap.get(u.dataId).id,[p,m,f,d]=o.shape,[h,g]=v.getImageCenter(a,m,f),x=i===0,b=255,w=typeof i==\"number\"?[i,i,i,x?0:b]:[...i,b],C=new Uint8Array(new Int32Array(w).buffer);return XG(l,p,m,f,d,s,h,g,C,w.length,c),u}var YG={kernelName:qa,backendName:\"wasm\",kernelFunc:dat,setupFunc:fat};var ZG=se(Ts);var JG=se(ks);var QG;function hat(r){QG=r.wasm.cwrap(La,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\"])}function gat(r){let{backend:t,inputs:e,attrs:n}=r,{indices:o,updates:s}=e,{shape:i}=n,a=t.makeOutput(i,s.dtype);if(y.sizeFromShape(i)===0)return a;let{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=lh.calculateShapes(s,o,i),d=t.dataIdMap.get(o.dataId).id,g=t.dataIdMap.get(s.dataId).id,x=new Uint8Array(new Int32Array(p).buffer),b=t.dataIdMap.get(a.dataId).id;return QG(d,g,qt[s.dtype],u,l,c,x,m,b),a}var tW={kernelName:La,backendName:\"wasm\",setupFunc:hat,kernelFunc:gat};var eW;function xat(r){eW=r.wasm.cwrap(\"SelectV2\",null,[\"number\",\"number\",\"number\",\"number\",\"number\"])}function yat(r){let{inputs:t,backend:e}=r,{condition:n,t:o,e:s}=t,i=e.dataIdMap.get(n.dataId).id,a=e.dataIdMap.get(o.dataId).id,u=e.dataIdMap.get(s.dataId).id,l=e.makeOutput(o.shape,o.dtype),c=e.dataIdMap.get(l.dataId).id,p=n.shape.length,m=o.shape.length,f=p===0||p>1||m===1?1:y.sizeFromShape(o.shape.slice(1));return eW(i,a,u,f,c),l}var rW={kernelName:hi,backendName:\"wasm\",kernelFunc:yat,setupFunc:xat};var nW;function bat(r){nW=r.wasm.cwrap(_s,null,[\"number\",\"number\"])}function wat(r){let{backend:t,inputs:{x:e}}=r,n=t.dataIdMap.get(e.dataId).id,o=t.makeOutput(e.shape,e.dtype),s=t.dataIdMap.get(o.dataId).id;return y.sizeFromShape(o.shape)===0||nW(n,s),o}var oW={kernelName:\"Sigmoid\",backendName:\"wasm\",setupFunc:bat,kernelFunc:wat};var sW=se(Es);var iW;function Cat(r){iW=r.wasm.cwrap(Ds,null,[\"number\",\"number\",\"number\",\"number\"])}function Iat(r){let{backend:t,inputs:{logits:e},attrs:{dim:n}}=r,o=t.dataIdMap.get(e.dataId).id,s=t.makeOutput(e.shape,e.dtype),i=t.dataIdMap.get(s.dataId).id,a=e.shape[n],u=y.sizeFromShape(e.shape)/a;return y.sizeFromShape(s.shape)===0||iW(o,i,a,u),s}var aW={kernelName:Ds,backendName:\"wasm\",setupFunc:Cat,kernelFunc:Iat};function Sat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,paddings:i}=n,a=y.sizeFromShape(s),u=[[0,0]];u.push(...i);for(let _=1+s.length;_0?u+1:0;if(c<0)throw new Error(v.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let p=o.shape.slice();p[0]=c;let m=e.dataIdMap.get(o.dataId).id,f=e.dataIdMap.get(s.dataId).id,d=e.dataIdMap.get(i.dataId).id,h=e.makeOutput(p,o.dtype),g=e.dataIdMap.get(h.dataId).id,x=e.makeOutput([4],\"int32\"),b=e.dataIdMap.get(x.dataId).id;fW(m,qt[o.dtype],o.shape[0],f,d,g,b,t,0);let w=e.readSync(x.dataId),C;switch(w[0]){case 0:{C=v.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{C=v.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:C=v.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(w[1],w[2]);break;case 3:C=v.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(w[1],w[2],w[3]);break;default:C=\"\"}if(e.disposeData(x.dataId),C)throw e.disposeData(h.dataId),new Error(C);return h}function Eat(r){return mI(r,!0)}var dW={kernelName:Ll,backendName:\"wasm\",setupFunc:pI,kernelFunc:Eat};function _at(r){return mI(r,!1)}var hW={kernelName:Ml,backendName:\"wasm\",setupFunc:pI,kernelFunc:_at};function Aat(r){let{inputs:t,attrs:e,backend:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=e,a=y.parseAxisParam(i,o.shape)[0],u=v.prepareSplitSize(o,s,a),l=new Array(o.shape.length).fill(0),c=o.shape.slice();return u.map(p=>{let m=[...c];m[a]=p;let f=Lo({inputs:{x:o},attrs:{begin:l,size:m},backend:n});return l[a]+=p,f})}var gW={kernelName:yi,backendName:\"wasm\",kernelFunc:Aat};var xW=se(As);var yW=se(zl);var $at=!0,bW=ue(Rs,$at);var wW;function Dat(r){wW=r.wasm.cwrap(po,null,[\"number\",\"number\",\"number\",\"number\"])}function Rat(r){let{backend:t,inputs:e,attrs:n}=r,{alpha:o}=n,{x:s}=e,i=t.dataIdMap.get(s.dataId).id,a=t.makeOutput(s.shape,s.dtype),u=t.dataIdMap.get(a.dataId).id;return wW(i,o,qt[s.dtype],u),a}var CW={kernelName:po,backendName:\"wasm\",setupFunc:Dat,kernelFunc:Rat};var IW;function Fat(r){IW=r.wasm.cwrap(Wa,null,[\"number\",\"array\",\"number\",\"array\",\"array\",\"array\",\"array\",\"array\",\"number\",\"number\"])}function Oat(r){let{backend:t,inputs:e,attrs:n}=r,{x:o}=e,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n,{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Le.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=ar({inputs:{x:o},backend:t,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let _=Le.computeOutShape(b,w,C),A=Lo({inputs:{x:o},backend:t,attrs:{begin:b,size:_}});N=ar({inputs:{x:A},backend:t,attrs:{shape:d}}),t.disposeData(A.dataId)}else{let _=t.makeOutput(f,\"float32\"),A=t.dataIdMap.get(o.dataId).id,$=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),F=new Uint8Array(new Int32Array(b).buffer),P=new Uint8Array(new Int32Array(w).buffer),V=new Uint8Array(new Int32Array(C).buffer),G=new Uint8Array(new Int32Array(f).buffer),W=new Uint8Array(new Int32Array(y.computeStrides(f)).buffer),q=t.dataIdMap.get(_.dataId).id;IW(A,$,o.shape.length,F,P,V,G,W,f.length,q),N=ar({inputs:{x:_},backend:t,attrs:{shape:d}}),t.disposeData(_.dataId)}return N}var SW={kernelName:Wa,backendName:\"wasm\",setupFunc:Fat,kernelFunc:Oat};function Pat(r){let{backend:t,inputs:e,attrs:n}=r,{data:o,dataSplits:s}=e,{separator:i,nGramWidths:a,leftPad:u,rightPad:l,padWidth:c,preserveShortSequences:p}=n,m=t.readSync(o.dataId),f=t.readSync(s.dataId),[d,h]=Dc(m,f,i,a,u,l,c,p),g=t.makeOutput([d.length],\"string\"),x=t.dataIdMap.get(g.dataId);x.stringBytes=d;let b=t.makeOutput(s.shape,\"int32\");return t.typedArrayFromHeap(b).set(h),[g,b]}var vW={kernelName:Bl,backendName:\"wasm\",kernelFunc:Pat};function Lat(r){let{backend:t,inputs:e,attrs:n}=r,{input:o,delimiter:s}=e,{skipEmpty:i}=n,a=t.readSync(o.dataId),u=t.readSync(s.dataId),[l,c,p]=Rc(a,u[0],i),m=c.length,f=t.makeOutput([m,2],\"int32\");t.typedArrayFromHeap(f).set(l);let h=t.makeOutput([m],\"string\"),g=t.dataIdMap.get(h.dataId);g.stringBytes=c;let x=t.makeOutput([2],\"int32\");return t.typedArrayFromHeap(x).set(p),[f,h,x]}var NW={kernelName:Vl,backendName:\"wasm\",kernelFunc:Lat};function Mat(r){let{backend:t,inputs:e,attrs:n}=r,{input:o}=e,{numBuckets:s}=n,i=t.readSync(o.dataId),a=Fc(i,s),u=t.makeOutput(o.shape,\"int32\");return t.typedArrayFromHeap(u).set(a),u}var TW={kernelName:Gl,backendName:\"wasm\",kernelFunc:Mat};var zat=!0,kW=ue(Fs,zat);var EW;function Bat(r){EW=r.wasm.cwrap($s,null,[\"number\",\"number\",\"number\",\"number\"])}function Vat(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=v.getInnerMostAxes(d.length,l.shape.length))}v.assertAxesAreInnerMostDims(\"sum\",d,l.shape.length);let[h,g]=v.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;EW(u,x,qt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=v.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var _W={kernelName:$s,backendName:\"wasm\",setupFunc:Bat,kernelFunc:Vat};var AW=se(Os);var $W=se(Ps);var DW;function Gat(r){DW=r.wasm.cwrap(Jn,null,[\"number\",\"array\",\"number\",\"array\",\"number\",\"number\"])}function Wat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,s=e.dataIdMap.get(o.dataId).id,{reps:i}=n,a=new Array(o.shape.length);for(let m=0;m{let{x:n}=r,{k:o,sorted:s}=e,i=t.dataIdMap.get(n.dataId).id,a=new Uint8Array(new Int32Array(n.shape).buffer),u=n.shape.slice();u[u.length-1]=o;let l=t.makeOutput(u,n.dtype),c=t.dataIdMap.get(l.dataId).id,p=t.makeOutput(u,\"int32\"),m=t.dataIdMap.get(p.dataId).id;return FW(i,a,n.shape.length,qt[n.dtype],o,s,c,m),[l,p]},OW={kernelName:Ua,backendName:\"wasm\",setupFunc:Uat,kernelFunc:Hat};var PW;function qat(r){PW=r.wasm.cwrap(Ha,null,[\"number\",\"number\",\"bool\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Kat(r){let{backend:t,inputs:e,attrs:n}=r,{image:o,transforms:s}=e,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=n,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),b=new Uint8Array(new Int32Array(y.computeStrides(g)).buffer),w=t.makeOutput(g,o.dtype),C=t.dataIdMap.get(w.dataId).id,_=t.dataIdMap.get(o.dataId).id,$=t.dataIdMap.get(s.dataId).id,F=i===\"nearest\"?1:2,P;switch(a){case\"constant\":P=1;break;case\"reflect\":P=2;break;case\"wrap\":P=3;break;case\"nearest\":P=4;break;default:P=1;break}return PW(_,$,s.shape[0]>1,c,d,h,f,m,p,x,o.shape.length-1,b,g.length-1,F,P,u,C),w}var LW={kernelName:Ha,backendName:\"wasm\",setupFunc:qat,kernelFunc:Kat};function jat(r){let{inputs:t,backend:e,attrs:n}=r,{value:o}=t,{axis:s}=n;s<0&&(s+=o.shape.length);let i=o.shape[s],a=o.shape.length,u=new Array(a-1),l=0;for(let f=0;f({dataId:f,dtype:d,shape:u}))}var MW={kernelName:bi,backendName:\"wasm\",kernelFunc:jat};function Xat(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(0),n}var zW={kernelName:wi,backendName:\"wasm\",kernelFunc:Xat};var Yat=[UB,HB,qB,jB,QB,eV,nV,sV,lV,cV,pV,mV,dV,hV,xV,bV,wV,CV,SV,NV,kV,_V,$V,DV,RV,FV,OV,PV,MV,zV,BV,GV,UV,qV,jV,YV,ZV,JV,XB,tG,eG,rG,nG,oG,sG,iG,aG,uG,cG,mG,dG,gG,xG,bG,wG,CG,SG,NG,kG,EG,AG,$G,DG,cI,FG,PG,MG,zG,BG,VG,GG,iV,UG,qG,jG,YG,ZG,JG,tW,rW,oW,sW,uV,aW,lW,cW,mW,dW,hW,gW,xW,yW,bW,CW,SW,vW,NW,TW,kW,_W,AW,$W,RW,OW,LW,ZB,MW,zW];for(let r of Yat)Lu(r);var Rk=z();Rk.registerFlag(\"WASM_HAS_SIMD_SUPPORT\",async()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]))}catch(r){return!1}});Rk.registerFlag(\"WASM_HAS_MULTITHREAD_SUPPORT\",async()=>{if(Rk.get(\"IS_NODE\"))return!1;try{return new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch(r){return!1}});var zk=Tl(WW()),XW=Tl(HW()),Bk=Tl(qW());var KW=zk.default||zk,Zat=Bk.default||Bk,cg=class extends zo{constructor(t){super(),this.wasm=t,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(ZW),Mk=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new ra(this,Pn())}write(t,e,n){let o={id:this.dataIdNextNumber++};return this.move(o,t,e,n,1),o}numDataIds(){return this.dataIdMap.numDataIds()}async time(t){let e=y.now();return t(),{kernelMs:y.now()-e}}move(t,e,n,o,s){let i=this.dataIdNextNumber++;if(o===\"string\"){let c=e;this.dataIdMap.set(t,{id:i,stringBytes:c,shape:n,dtype:o,memoryOffset:null,refCount:s});return}let a=y.sizeFromShape(n),u=a*y.bytesPerElement(o),l=this.wasm._malloc(u);this.dataIdMap.set(t,{id:i,memoryOffset:l,shape:n,dtype:o,refCount:s}),this.wasm.tfjs.registerTensor(i,a,l),e!=null&&this.wasm.HEAPU8.set(new Uint8Array(e.buffer,e.byteOffset,u),l)}async read(t){return this.readSync(t)}readSync(t,e,n){let{memoryOffset:o,dtype:s,shape:i,stringBytes:a}=this.dataIdMap.get(t);if(s===\"string\")return(e==null||e===0)&&(n==null||n>=a.length)?a:a.slice(e,n);e=e||0,n=n||y.sizeFromShape(i);let u=y.bytesPerElement(s),l=this.wasm.HEAPU8.slice(o+e*u,o+n*u);return Qat(l.buffer,s)}disposeData(t,e=!1){if(this.dataIdMap.has(t)){let n=this.dataIdMap.get(t);if(n.refCount--,!e&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(t)}return!0}refCount(t){return this.dataIdMap.has(t)?this.dataIdMap.get(t).refCount:0}incRef(t){let e=this.dataIdMap.get(t);e!=null&&e.refCount++}floatPrecision(){return 32}getMemoryOffset(t){return this.dataIdMap.get(t).memoryOffset}dispose(){this.wasm.tfjs.dispose(),\"PThread\"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(t,e,n){let o;if(n==null)o=this.write(null,t,e);else{let s=this.dataIdNextNumber++;o={id:s},this.dataIdMap.set(o,{id:s,memoryOffset:n,shape:t,dtype:e,refCount:1});let i=y.sizeFromShape(t);this.wasm.tfjs.registerTensor(s,i,n)}return{dataId:o,shape:t,dtype:e}}typedArrayFromHeap({shape:t,dtype:e,dataId:n}){let o=this.wasm.HEAPU8.buffer,{memoryOffset:s}=this.dataIdMap.get(n),i=y.sizeFromShape(t);switch(e){case\"float32\":return new Float32Array(o,s,i);case\"int32\":return new Int32Array(o,s,i);case\"bool\":return new Uint8Array(o,s,i);default:throw new Error(`Unknown dtype ${e}`)}}};function Jat(r){return(t,e)=>(y.fetch(r,{credentials:\"same-origin\"}).then(n=>{n.ok||t.env.a(`failed to load wasm binary file at '${r}'`),n.arrayBuffer().then(o=>{WebAssembly.instantiate(o,t).then(s=>{e(s.instance,s.module)})})}),{})}function jW(r,t,e){if(hI!=null)return hI;let n=\"tfjs-backend-wasm.wasm\";return r&&t?n=\"tfjs-backend-wasm-threaded-simd.wasm\":r&&(n=\"tfjs-backend-wasm-simd.wasm\"),lg!=null&&lg[n]!=null?lg[n]:e+n}async function YW(){let[r,t]=await Promise.all([z().getAsync(\"WASM_HAS_SIMD_SUPPORT\"),z().getAsync(\"WASM_HAS_MULTITHREAD_SUPPORT\")]);return new Promise((e,n)=>{let o={};o.locateFile=(a,u)=>{if(a.endsWith(\".worker.js\")){let l=XW.wasmWorkerContents.replace(/\\n/g,\"\\\\n\"),c=new Blob([l],{type:\"application/javascript\"});return URL.createObjectURL(c)}return a.endsWith(\".wasm\")?jW(r,t,ag!=null?ag:u):u+a},Vk&&(o.instantiateWasm=Jat(jW(r,t,ag!=null?ag:\"\")));let s=!1;o.onAbort=()=>{if(s||ug)return;ug=!0,n({message:\"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers\"})};let i;t&&r&&hI==null?(o.mainScriptUrlOrBlob=new Blob([\"var WasmBackendModuleThreadedSimd = \"+KW.toString()],{type:\"text/javascript\"}),i=KW(o)):i=Zat(o),i.then(a=>{s=!0,ug=!1;let u=null;a.tfjs={init:a.cwrap(\"init\",null,[]),initWithThreadsCount:a.cwrap(\"init_with_threads_count\",null,[\"number\"]),getThreadsCount:a.cwrap(\"get_threads_count\",\"number\",[]),registerTensor:a.cwrap(\"register_tensor\",null,[\"number\",\"number\",\"number\"]),disposeData:a.cwrap(\"dispose_data\",u,[\"number\"]),dispose:a.cwrap(\"dispose\",u,[])},e({wasm:a})}).catch(n)})}function Qat(r,t){switch(t){case\"float32\":return new Float32Array(r);case\"int32\":return new Int32Array(r);case\"bool\":return new Uint8Array(r);default:throw new Error(`Unknown dtype ${t}`)}}var tlt=[\"tfjs-backend-wasm.wasm\",\"tfjs-backend-wasm-simd.wasm\",\"tfjs-backend-wasm-threaded-simd.wasm\"],hI=null,ag=null,lg={},ug=!1,Vk=!1;function elt(r,t=!1){if(Wv(\"setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release.\"),ug)throw new Error(\"The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`\");hI=r,Vk=t}function rlt(r,t=!1){if(ug)throw new Error(\"The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`\");if(typeof r==\"string\")ag=r;else{lg=r;let e=tlt.filter(n=>lg[n]==null);if(e.length>0)throw new Error(`There were no entries found for the following binaries: ${e.join(\",\")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}Vk=t}var ZW=-1,Mk=-1;function nlt(r){ZW=r}function olt(){if(Mk===-1)throw new Error(\"WASM backend not initialized.\");return Mk}var slt=\"4.0.0\";var ilt=2;Xp(\"wasm\",async()=>{let{wasm:r}=await YW();return new cg(r)},ilt);var JW=\"4.0.0\",alt=\"4.0.0\",llt=\"4.0.0\",ult=\"4.0.0\",clt=\"4.0.0\",plt={tfjs:JW,\"tfjs-core\":JW,\"tfjs-converter\":alt,\"tfjs-backend-cpu\":llt,\"tfjs-backend-webgl\":ult,\"tfjs-backend-wasm\":clt};export{ii as Abs,oa as Acos,sa as Acosh,cu as AdadeltaOptimizer,pu as AdagradOptimizer,mu as AdamOptimizer,fu as AdamaxOptimizer,Zn as Add,Go as AddN,ia as All,aa as Any,Wo as ArgMax,kl as ArgMin,la as Asin,ua as Asinh,ca as Atan,ma as Atan2,pa as Atanh,Uo as AvgPool,El as AvgPool3D,lp as AvgPool3DGrad,ap as AvgPoolGrad,cg as BackendWasm,Ho as BatchMatMul,ai as BatchToSpaceND,up as Bincount,cp as BroadcastArgs,p1 as BroadcastTo,Sb as Callback,Py as CallbackList,lo as Cast,qo as Ceil,uo as ClipByValue,pp as Complex,_l as ComplexAbs,li as Concat,Ko as Conv2D,mp as Conv2DBackpropFilter,jo as Conv2DBackpropInput,Al as Conv3D,fp as Conv3DBackpropFilterV2,dp as Conv3DBackpropInputV2,Xo as Cos,Yo as Cosh,da as CropAndResize,fa as Cumprod,Zo as Cumsum,My as CustomCallback,ra as DataStorage,hp as DenseBincount,ha as DepthToSpace,Jo as DepthwiseConv2dNative,gp as DepthwiseConv2dNativeBackpropFilter,xp as DepthwiseConv2dNativeBackpropInput,yp as Diag,$l as Dilation2D,Xd as Dilation2DBackpropFilter,jd as Dilation2DBackpropInput,iv as ENV,vb as EarlyStopping,bp as Einsum,ts as Elu,wp as EluGrad,qd as Environment,xa as Equal,ga as Erf,es as Exp,ui as ExpandDims,ya as Expm1,Cp as FFT,Dl as Fill,ba as FlipLeftRight,rs as Floor,ns as FloorDiv,Yd as FromPixels,os as FusedBatchNorm,Ii as FusedConv2D,Si as FusedDepthwiseConv2D,Bc as GPGPUContext,wa as GatherNd,ci as GatherV2,Ph as GraphModel,Ca as Greater,ss as GreaterEqual,Ly as History,Ip as IFFT,co as Identity,Sp as Imag,ye as InputSpec,Ia as IsFinite,Sa as IsInf,va as IsNan,zo as KernelBackend,Rl as LRN,Np as LRNGrad,Ch as LayerVariable,Bn as LayersModel,is as LeakyRelu,Na as Less,Ta as LessEqual,vp as LinSpace,as as Log,ka as Log1p,f1 as LogSoftmax,Ea as LogicalAnd,_a as LogicalNot,Aa as LogicalOr,m1 as LogicalXor,xlt as LowerBound,_u as MathBackendWebGL,ls as Max,cs as MaxPool,Fl as MaxPool3D,kp as MaxPool3DGrad,Tp as MaxPoolGrad,Ep as MaxPoolWithArgmax,us as Maximum,ps as Mean,ms as Min,fs as Minimum,ds as MirrorPad,$a as Mod,du as MomentumOptimizer,_p as Multinomial,hs as Multiply,pi as Neg,Ra as NonMaxSuppressionV3,Fa as NonMaxSuppressionV4,Oa as NonMaxSuppressionV5,Da as NotEqual,kv as OP_SCOPE_SUFFIX,gs as OneHot,mi as OnesLike,Wr as Optimizer,Ws as OptimizerConstructors,fi as Pack,xs as PadV2,ylt as Pool,ys as Pow,bs as Prelu,ws as Prod,hu as RMSPropOptimizer,Tn as RNN,Ap as RaggedGather,$p as RaggedRange,Dp as RaggedTensorToTensor,Ol as Range,xv as Rank,Rp as Real,Qo as RealDiv,Pa as Reciprocal,Xe as Reduction,Cs as Relu,vs as Relu6,di as Reshape,Ss as ResizeBilinear,Op as ResizeBilinearGrad,Is as ResizeNearestNeighbor,Fp as ResizeNearestNeighborGrad,Ns as Reverse,qa as RotateWithOffset,Ts as Round,ks as Rsqrt,Bi as SGDOptimizer,La as ScatterNd,Pp as SearchSorted,hi as Select,Ma as Selu,qi as Sequential,_s as Sigmoid,Ba as Sign,Es as Sin,za as Sinh,gi as Slice,Ds as Softmax,Va as Softplus,xi as SpaceToBatchND,Pl as SparseFillEmptyRows,Ga as SparseReshape,Ll as SparseSegmentMean,Ml as SparseSegmentSum,Lp as SparseToDense,yi as SplitV,As as Sqrt,zl as Square,Rs as SquaredDifference,po as Step,Wa as StridedSlice,Bl as StringNGrams,Vl as StringSplit,Gl as StringToHashBucketFast,Fs as Sub,$s as Sum,Jr as SymbolicTensor,Os as Tan,Ps as Tanh,Ft as Tensor,pe as TensorBuffer,Jn as Tile,Ua as TopK,Ha as Transform,Qn as Transpose,Mp as Unique,bi as Unpack,Wl as UnsortedSegmentSum,blt as UpperBound,Ka as Variable,wi as ZerosLike,Ci as _FusedMatMul,Ee as abs,ax as acos,lx as acosh,X as add,LE as addN,Zp as all,qu as any,Ai as argMax,ux as argMin,cx as asin,px as asinh,mx as atan,fx as atan2,dx as atanh,Yl as avgPool,gx as avgPool3d,gE as backend,v as backend_util,BE as basicLSTMCell,Di as batchNorm,xx as batchNorm2d,yx as batchNorm3d,bx as batchNorm4d,Zl as batchToSpaceND,wx as bincount,n6 as booleanMaskAsync,GE as broadcastArgs,Ri as broadcastTo,Vr as broadcast_util,nx as browser,wt as buffer,VZ as callbacks,J as cast,Cx as ceil,Cr as clipByValue,sn as clone,wn as complex,ne as concat,Ix as concat1d,Sx as concat2d,vx as concat3d,Nx as concat4d,K$ as constraints,Qp as conv1d,In as conv2d,em as conv2dTranspose,Tx as conv3d,Ex as conv3dTranspose,Tlt as copyRegisteredKernels,Jl as cos,rm as cosh,hh as cosineWindow,Xu as cumprod,nm as cumsum,un as customGrad,AR as data,ch as denseBincount,Wv as deprecationWarn,_x as depthToSpace,Fi as depthwiseConv2d,HZ as deregisterOp,Kl as device_util,WE as diag,Ax as dilation2d,gpt as disableDeprecationWarnings,vt as dispose,xpt as disposeVariables,pt as div,$x as divNoNan,Dx as dot,l0 as dropout,UE as einsum,Oi as elu,hpt as enableDebugMode,dpt as enableProdMode,u0 as enclosingPowerOfTwo,Pn as engine,z as env,$r as equal,Rx as erf,Fx as euclideanNorm,er as exp,rr as expandDims,Ox as expm1,Yu as eye,au as fft,xo as fill,Spt as findBackend,vpt as findBackendFactory,Pi as floor,Yp as floorDiv,hM as forceHalfFloat,uu as fused,Li as gather,m6 as gatherND,ox as gather_util,Cpt as getBackend,uv as getGradient,Jd as getKernel,zg as getKernelsForBackend,olt as getThreadsCount,ik as gpgpu_util,bK as grad,wK as grads,Re as greater,ln as greaterEqual,tl as ifft,Xl as imag,Gs as image,h6 as inTopKAsync,j$ as initializers,P0 as input,_r as io,xm as irfft,Px as isFinite,Lx as isInf,Mx as isNaN,De as keep,Ur as kernel_impls,ED as layers,Ql as leakyRelu,om as less,Ln as lessEqual,p0 as linalg,KE as linspace,M7 as loadGraphModel,z7 as loadGraphModelSync,hD as loadLayersModel,zx as localResponseNormalization,Sr as log,tu as log1p,Gx as logSigmoid,sm as logSoftmax,im as logSumExp,Rr as logicalAnd,eu as logicalNot,am as logicalOr,Wx as logicalXor,hX as losses,jE as lowerBound,Lt as matMul,yE as math,Ir as max,ru as maxPool,Hx as maxPool3d,XE as maxPoolWithArgmax,Sn as maximum,ve as mean,ah as memory,YE as meshgrid,_D as metrics,Ja as min,Mi as minimum,qx as mirrorPad,Kx as mod,q8 as model,AD as models,Zu as moments,s6 as movingAverage,D as mul,ZE as multiRNNCell,JE as multinomial,Ht as neg,gh as nextFrame,Qa as norm,Bs as notEqual,Ei as oneHot,cr as ones,yr as onesLike,T as op,QE as outerProduct,cn as pad,t_ as pad1d,e_ as pad2d,r_ as pad3d,n_ as pad4d,jx as pool,an as pow,ou as prelu,Jg as print,Xx as prod,ypt as profile,o_ as raggedGather,s_ as raggedRange,i_ as raggedTensorToTensor,a_ as rand,v_ as randomGamma,tc as randomNormal,N_ as randomStandardNormal,zi as randomUniform,su as range,wpt as ready,Za as real,ty as reciprocal,Xp as registerBackend,j8 as registerCallbackConstructor,h1 as registerGradient,Lu as registerKernel,UZ as registerOp,$D as regularizers,Fr as relu,lm as relu6,Ipt as removeBackend,R as reshape,pr as reverse,T_ as reverse1d,k_ as reverse2d,E_ as reverse3d,__ as reverse4d,lu as rfft,um as round,cm as rsqrt,mt as scalar,a6 as scatterND,lh as scatter_util,mh as searchSorted,pm as selu,mm as separableConv2d,K8 as sequential,Q as serialization,tH as setBackend,Npt as setPlatform,nlt as setThreadsCount,elt as setWasmPath,rlt as setWasmPaths,wT as setWebGLContext,A_ as setdiff1dAsync,Yr as sigmoid,ey as sign,dX as signal,fm as sin,dm as sinh,Rt as slice,hm as slice1d,dh as slice2d,gm as slice3d,ec as slice4d,Le as slice_util,iu as softmax,zs as softplus,nu as spaceToBatchND,gX as sparse,c6 as sparseToDense,fX as spectral,mr as split,Se as sqrt,Mt as square,ym as squaredDifference,Mn as squeeze,nr as stack,bo as step,ry as stridedSlice,xX as string,ct as sub,ft as sum,Wu as sumOutType,ny as tan,$i as tanh,ur as tensor,Me as tensor1d,Vs as tensor2d,rx as tensor3d,$_ as tensor4d,D_ as tensor5d,R_ as tensor6d,go as tensor_util,OE as test_util,B as tidy,Dr as tile,bpt as time,oy as topk,ic as train,Ot as transpose,bm as truncatedNormal,sy as unique,Nlt as unregisterGradient,vlt as unregisterKernel,wm as unsortedSegmentSum,vr as unstack,sr as upcastType,F_ as upperBound,y as util,CK as valueAndGrad,IK as valueAndGrads,iy as variable,Bx as variableGrads,plt as version,cR as version_converter,PE as version_core,Um as version_layers,slt as version_wasm,dM as version_webgl,Zke as webgl,dd as webgl_util,_e as where,ly as whereAsync,Ne as zeros,It as zerosLike};\n", "export * from './drawContour';\nexport * from './drawDetections';\nexport * from './drawFaceExpressions';\nexport * from './DrawBox';\nexport * from './DrawFaceLandmarks';\nexport * from './DrawTextField';\n", "import { Point } from '../classes/index';\n\nexport function drawContour(\n ctx: CanvasRenderingContext2D,\n points: Point[],\n isClosed = false,\n) {\n ctx.beginPath();\n\n points.slice(1).forEach(({ x, y }, prevIdx) => {\n const from = points[prevIdx];\n ctx.moveTo(from.x, from.y);\n ctx.lineTo(x, y);\n });\n\n if (isClosed) {\n const from = points[points.length - 1];\n const to = points[0];\n if (!from || !to) {\n return;\n }\n\n ctx.moveTo(from.x, from.y);\n ctx.lineTo(to.x, to.y);\n }\n\n ctx.stroke();\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Point } from '../classes/index';\nimport { Dimensions, IDimensions } from '../classes/Dimensions';\n\nexport function isTensor(tensor: any, dim: number) {\n return tensor instanceof tf.Tensor && tensor.shape.length === dim;\n}\n\nexport function isTensor1D(tensor: any): tensor is tf.Tensor1D {\n return isTensor(tensor, 1);\n}\n\nexport function isTensor2D(tensor: any): tensor is tf.Tensor2D {\n return isTensor(tensor, 2);\n}\n\nexport function isTensor3D(tensor: any): tensor is tf.Tensor3D {\n return isTensor(tensor, 3);\n}\n\nexport function isTensor4D(tensor: any): tensor is tf.Tensor4D {\n return isTensor(tensor, 4);\n}\n\nexport function isFloat(num: number) {\n return num % 1 !== 0;\n}\n\nexport function isEven(num: number) {\n return num % 2 === 0;\n}\n\nexport function round(num: number, prec = 2) {\n const f = 10 ** prec;\n return Math.floor(num * f) / f;\n}\n\nexport function isDimensions(obj: any): boolean {\n return obj && obj.width && obj.height;\n}\n\nexport function computeReshapedDimensions({ width, height }: IDimensions, inputSize: number) {\n const scale = inputSize / Math.max(height, width);\n return new Dimensions(Math.round(width * scale), Math.round(height * scale));\n}\n\nexport function getCenterPoint(pts: Point[]): Point {\n return pts.reduce((sum, pt) => sum.add(pt), new Point(0, 0))\n .div(new Point(pts.length, pts.length));\n}\n\nexport function range(num: number, start: number, step: number): number[] {\n return Array(num).fill(0).map((_, i) => start + (i * step));\n}\n\nexport function isValidNumber(num: any) {\n return !!num && (num !== Infinity) && (num !== -Infinity) && !Number.isNaN(num) || num === 0;\n}\n\nexport function isValidProbablitiy(num: any) {\n return isValidNumber(num) && num >= 0 && num <= 1.0;\n}\n", "import { isValidNumber } from '../utils/index';\n\nexport interface IDimensions {\n width: number\n height: number\n}\n\nexport class Dimensions implements IDimensions {\n private _width: number;\n\n private _height: number;\n\n constructor(width: number, height: number) {\n if (!isValidNumber(width) || !isValidNumber(height)) {\n throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({ width, height })}`);\n }\n\n this._width = width;\n this._height = height;\n }\n\n public get width(): number { return this._width; }\n\n public get height(): number { return this._height; }\n\n public reverse(): Dimensions {\n return new Dimensions(1 / this.width, 1 / this.height);\n }\n}\n", "export interface IPoint {\n x: number\n y: number\n}\n\nexport class Point implements IPoint {\n private _x: number;\n\n private _y: number;\n\n constructor(x: number, y: number) {\n this._x = x;\n this._y = y;\n }\n\n get x(): number { return this._x; }\n\n get y(): number { return this._y; }\n\n public add(pt: IPoint): Point {\n return new Point(this.x + pt.x, this.y + pt.y);\n }\n\n public sub(pt: IPoint): Point {\n return new Point(this.x - pt.x, this.y - pt.y);\n }\n\n public mul(pt: IPoint): Point {\n return new Point(this.x * pt.x, this.y * pt.y);\n }\n\n public div(pt: IPoint): Point {\n return new Point(this.x / pt.x, this.y / pt.y);\n }\n\n public abs(): Point {\n return new Point(Math.abs(this.x), Math.abs(this.y));\n }\n\n public magnitude(): number {\n return Math.sqrt((this.x ** 2) + (this.y ** 2));\n }\n\n public floor(): Point {\n return new Point(Math.floor(this.x), Math.floor(this.y));\n }\n}\n", "import { isDimensions, isValidNumber } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { IDimensions } from './Dimensions';\nimport { Point } from './Point';\nimport { IRect } from './Rect';\n\nexport class Box implements IBoundingBox, IRect {\n public static isRect(rect: any): boolean {\n return !!rect && [rect.x, rect.y, rect.width, rect.height].every(isValidNumber);\n }\n\n public static assertIsValidBox(box: any, callee: string, allowNegativeDimensions = false) {\n if (!Box.isRect(box)) {\n throw new Error(`${callee} - invalid box: ${JSON.stringify(box)}, expected object with properties x, y, width, height`);\n }\n\n if (!allowNegativeDimensions && (box.width < 0 || box.height < 0)) {\n throw new Error(`${callee} - width (${box.width}) and height (${box.height}) must be positive numbers`);\n }\n }\n\n private _x: number;\n\n private _y: number;\n\n private _width: number;\n\n private _height: number;\n\n constructor(_box: IBoundingBox | IRect, allowNegativeDimensions = true) {\n const box = (_box || {}) as any;\n\n const isBbox = [box.left, box.top, box.right, box.bottom].every(isValidNumber);\n const isRect = [box.x, box.y, box.width, box.height].every(isValidNumber);\n\n if (!isRect && !isBbox) {\n throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(box)}`);\n }\n\n const [x, y, width, height] = isRect\n ? [box.x, box.y, box.width, box.height]\n : [box.left, box.top, box.right - box.left, box.bottom - box.top];\n\n Box.assertIsValidBox({\n x, y, width, height,\n }, 'Box.constructor', allowNegativeDimensions);\n\n this._x = x;\n this._y = y;\n this._width = width;\n this._height = height;\n }\n\n public get x(): number { return this._x; }\n\n public get y(): number { return this._y; }\n\n public get width(): number { return this._width; }\n\n public get height(): number { return this._height; }\n\n public get left(): number { return this.x; }\n\n public get top(): number { return this.y; }\n\n public get right(): number { return this.x + this.width; }\n\n public get bottom(): number { return this.y + this.height; }\n\n public get area(): number { return this.width * this.height; }\n\n public get topLeft(): Point { return new Point(this.left, this.top); }\n\n public get topRight(): Point { return new Point(this.right, this.top); }\n\n public get bottomLeft(): Point { return new Point(this.left, this.bottom); }\n\n public get bottomRight(): Point { return new Point(this.right, this.bottom); }\n\n public round(): Box {\n const [x, y, width, height] = [this.x, this.y, this.width, this.height]\n .map((val) => Math.round(val));\n return new Box({\n x, y, width, height,\n });\n }\n\n public floor(): Box {\n const [x, y, width, height] = [this.x, this.y, this.width, this.height]\n .map((val) => Math.floor(val));\n return new Box({\n x, y, width, height,\n });\n }\n\n public toSquare(): Box {\n let {\n x, y, width, height,\n } = this;\n const diff = Math.abs(width - height);\n if (width < height) {\n x -= (diff / 2);\n width += diff;\n }\n if (height < width) {\n y -= (diff / 2);\n height += diff;\n }\n\n return new Box({ x, y, width, height });\n }\n\n public rescale(s: IDimensions | number): Box {\n const scaleX = isDimensions(s) ? (s as IDimensions).width : s as number;\n const scaleY = isDimensions(s) ? (s as IDimensions).height : s as number;\n return new Box({\n x: this.x * scaleX,\n y: this.y * scaleY,\n width: this.width * scaleX,\n height: this.height * scaleY,\n });\n }\n\n public pad(padX: number, padY: number): Box {\n const [x, y, width, height] = [\n this.x - (padX / 2),\n this.y - (padY / 2),\n this.width + padX,\n this.height + padY,\n ];\n return new Box({ x, y, width, height });\n }\n\n public clipAtImageBorders(imgWidth: number, imgHeight: number): Box {\n const { x, y, right, bottom } = this;\n const clippedX = Math.max(x, 0);\n const clippedY = Math.max(y, 0);\n\n const newWidth = right - clippedX;\n const newHeight = bottom - clippedY;\n const clippedWidth = Math.min(newWidth, imgWidth - clippedX);\n const clippedHeight = Math.min(newHeight, imgHeight - clippedY);\n\n return (new Box({ x: clippedX, y: clippedY, width: clippedWidth, height: clippedHeight })).floor();\n }\n\n public shift(sx: number, sy: number): Box {\n const { width, height } = this;\n const x = this.x + sx;\n const y = this.y + sy;\n\n return new Box({ x, y, width, height });\n }\n\n public padAtBorders(imageHeight: number, imageWidth: number) {\n const w = this.width + 1;\n const h = this.height + 1;\n\n const dx = 1;\n const dy = 1;\n let edx = w;\n let edy = h;\n\n let x = this.left;\n let y = this.top;\n let ex = this.right;\n let ey = this.bottom;\n\n if (ex > imageWidth) {\n edx = -ex + imageWidth + w;\n ex = imageWidth;\n }\n if (ey > imageHeight) {\n edy = -ey + imageHeight + h;\n ey = imageHeight;\n }\n if (x < 1) {\n edy = 2 - x;\n x = 1;\n }\n if (y < 1) {\n edy = 2 - y;\n y = 1;\n }\n\n return { dy, edy, dx, edx, y, ey, x, ex, w, h };\n }\n\n public calibrate(region: Box) {\n return new Box({\n left: this.left + (region.left * this.width),\n top: this.top + (region.top * this.height),\n right: this.right + (region.right * this.width),\n bottom: this.bottom + (region.bottom * this.height),\n }).toSquare().round();\n }\n}\n", "import { Box } from './Box';\n\nexport interface IBoundingBox {\n left: number\n top: number\n right: number\n bottom: number\n}\n\nexport class BoundingBox extends Box implements IBoundingBox {\n constructor(left: number, top: number, right: number, bottom: number, allowNegativeDimensions = false) {\n super({ left, top, right, bottom }, allowNegativeDimensions);\n }\n}\n", "import { Box } from './Box';\nimport { Dimensions, IDimensions } from './Dimensions';\nimport { IRect, Rect } from './Rect';\n\nexport class ObjectDetection {\n private _score: number;\n\n private _classScore: number;\n\n private _className: string;\n\n private _box: Rect;\n\n private _imageDims: Dimensions;\n\n constructor(\n score: number,\n classScore: number,\n className: string,\n relativeBox: IRect,\n imageDims: IDimensions,\n ) {\n this._imageDims = new Dimensions(imageDims.width, imageDims.height);\n this._score = score;\n this._classScore = classScore;\n this._className = className;\n this._box = new Box(relativeBox).rescale(this._imageDims);\n }\n\n public get score(): number { return this._score; }\n\n public get classScore(): number { return this._classScore; }\n\n public get className(): string { return this._className; }\n\n public get box(): Box { return this._box; }\n\n public get imageDims(): Dimensions { return this._imageDims; }\n\n public get imageWidth(): number { return this.imageDims.width; }\n\n public get imageHeight(): number { return this.imageDims.height; }\n\n public get relativeBox(): Box { return new Box(this._box).rescale(this.imageDims.reverse()); }\n\n public forSize(width: number, height: number): ObjectDetection {\n return new ObjectDetection(\n this.score,\n this.classScore,\n this.className,\n this.relativeBox,\n { width, height },\n );\n }\n}\n", "import { Box } from './Box';\nimport { IDimensions } from './Dimensions';\nimport { ObjectDetection } from './ObjectDetection';\nimport { Rect } from './Rect';\n\nexport interface IFaceDetecion {\n score: number\n box: Box\n}\n\nexport class FaceDetection extends ObjectDetection implements IFaceDetecion {\n constructor(\n score: number,\n relativeBox: Rect,\n imageDims: IDimensions,\n ) {\n super(score, score, '', relativeBox, imageDims);\n }\n\n public override forSize(width: number, height: number): FaceDetection {\n const { score, relativeBox, imageDims } = super.forSize(width, height);\n return new FaceDetection(score, relativeBox, imageDims);\n }\n}\n", "import { Box } from '../classes/Box';\n\nexport function iou(box1: Box, box2: Box, isIOU = true) {\n const width = Math.max(0.0, Math.min(box1.right, box2.right) - Math.max(box1.left, box2.left));\n const height = Math.max(0.0, Math.min(box1.bottom, box2.bottom) - Math.max(box1.top, box2.top));\n const interSection = width * height;\n\n return isIOU\n ? interSection / (box1.area + box2.area - interSection)\n : interSection / Math.min(box1.area, box2.area);\n}\n", "import { BoundingBox, IPoint } from '../classes/index';\n\nexport function minBbox(pts: IPoint[]): BoundingBox {\n const xs = pts.map((pt) => pt.x);\n const ys = pts.map((pt) => pt.y);\n const minX = xs.reduce((min, x) => (x < min ? x : min), Infinity);\n const minY = ys.reduce((min, y) => (y < min ? y : min), Infinity);\n const maxX = xs.reduce((max, x) => (max < x ? x : max), 0);\n const maxY = ys.reduce((max, y) => (max < y ? y : max), 0);\n\n return new BoundingBox(minX, minY, maxX, maxY);\n}\n", "import { Box } from '../classes/Box';\nimport { iou } from './iou';\n\nexport function nonMaxSuppression(\n boxes: Box[],\n scores: number[],\n iouThreshold: number,\n isIOU = true,\n): number[] {\n let indicesSortedByScore = scores\n .map((score, boxIndex) => ({ score, boxIndex }))\n .sort((c1, c2) => c1.score - c2.score)\n .map((c) => c.boxIndex);\n\n const pick: number[] = [];\n\n while (indicesSortedByScore.length > 0) {\n const curr = indicesSortedByScore.pop() as number;\n pick.push(curr);\n\n const indices = indicesSortedByScore;\n\n const outputs: number[] = [];\n for (let i = 0; i < indices.length; i++) {\n const idx = indices[i];\n\n const currBox = boxes[curr];\n const idxBox = boxes[idx];\n\n outputs.push(iou(currBox, idxBox, isIOU));\n }\n\n indicesSortedByScore = indicesSortedByScore.filter(\n (_, j) => outputs[j] <= iouThreshold,\n );\n }\n\n return pick;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function normalize(x: tf.Tensor4D, meanRgb: number[]): tf.Tensor4D {\n return tf.tidy(() => {\n const [r, g, b] = meanRgb;\n const avg_r = tf.fill([...x.shape.slice(0, 3), 1], r, 'float32');\n const avg_g = tf.fill([...x.shape.slice(0, 3), 1], g, 'float32');\n const avg_b = tf.fill([...x.shape.slice(0, 3), 1], b, 'float32');\n const avg_rgb = tf.concat([avg_r, avg_g, avg_b], 3);\n\n return tf.sub(x, avg_rgb);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\n/**\n * Pads the smaller dimension of an image tensor with zeros, such that width === height.\n *\n * @param imgTensor The image tensor.\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\n * both sides of the minor dimension oof the image.\n * @returns The padded tensor with width === height.\n */\nexport function padToSquare(imgTensor: tf.Tensor4D, isCenterImage = false): tf.Tensor4D {\n return tf.tidy(() => {\n const [height, width] = imgTensor.shape.slice(1);\n if (height === width) return imgTensor;\n const dimDiff = Math.abs(height - width);\n const paddingAmount = Math.round(dimDiff * (isCenterImage ? 0.5 : 1));\n const paddingAxis = height > width ? 2 : 1;\n const createPaddingTensor = (paddingAmountLocal: number): tf.Tensor => {\n const paddingTensorShape = imgTensor.shape.slice();\n paddingTensorShape[paddingAxis] = paddingAmountLocal;\n return tf.fill(paddingTensorShape, 0, 'float32');\n };\n const paddingTensorAppend = createPaddingTensor(paddingAmount);\n const remainingPaddingAmount = dimDiff - (paddingTensorAppend.shape[paddingAxis] as number);\n const paddingTensorPrepend = isCenterImage && remainingPaddingAmount ? createPaddingTensor(remainingPaddingAmount) : null;\n const tensorsToStack = [paddingTensorPrepend, imgTensor, paddingTensorAppend]\n .filter((t) => !!t)\n .map((t) => tf.cast(t as tf.Tensor4D, 'float32')) as tf.Tensor4D[];\n return tf.concat(tensorsToStack, paddingAxis);\n });\n}\n", "export function shuffleArray(inputArray: any[]) {\n const array = inputArray.slice();\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const x = array[i];\n array[i] = array[j];\n array[j] = x;\n }\n return array;\n}\n", "export * from './iou';\nexport * from './minBbox';\nexport * from './nonMaxSuppression';\nexport * from './normalize';\nexport * from './padToSquare';\nexport * from './shuffleArray';\n\nexport function sigmoid(x: number) {\n return 1 / (1 + Math.exp(-x));\n}\n\nexport function inverseSigmoid(x: number) {\n return Math.log(x / (1 - x));\n}\n", "import { Box } from './Box';\n\nexport interface IRect {\n x: number\n y: number\n width: number\n height: number\n}\n\nexport class Rect extends Box implements IRect {\n constructor(x: number, y: number, width: number, height: number, allowNegativeDimensions = false) {\n super({ x, y, width, height }, allowNegativeDimensions);\n }\n}\n", "import { minBbox } from '../ops/index';\nimport { getCenterPoint } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { Box } from './Box';\nimport { Dimensions, IDimensions } from './Dimensions';\nimport { FaceDetection } from './FaceDetection';\nimport { Point } from './Point';\nimport { IRect, Rect } from './Rect';\n\n// face alignment constants\nconst relX = 0.5;\nconst relY = 0.43;\nconst relScale = 0.45;\n\nexport interface IFaceLandmarks {\n positions: Point[]\n shift: Point\n}\n\nexport class FaceLandmarks implements IFaceLandmarks {\n protected _shift: Point;\n\n protected _positions: Point[];\n\n protected _imgDims: Dimensions;\n\n constructor(\n relativeFaceLandmarkPositions: Point[],\n imgDims: IDimensions,\n shift: Point = new Point(0, 0),\n ) {\n const { width, height } = imgDims;\n this._imgDims = new Dimensions(width, height);\n this._shift = shift;\n this._positions = relativeFaceLandmarkPositions.map(\n (pt) => pt.mul(new Point(width, height)).add(shift),\n );\n }\n\n public get shift(): Point { return new Point(this._shift.x, this._shift.y); }\n\n public get imageWidth(): number { return this._imgDims.width; }\n\n public get imageHeight(): number { return this._imgDims.height; }\n\n public get positions(): Point[] { return this._positions; }\n\n public get relativePositions(): Point[] {\n return this._positions.map(\n (pt) => pt.sub(this._shift).div(new Point(this.imageWidth, this.imageHeight)),\n );\n }\n\n public forSize(width: number, height: number): T {\n return new (this.constructor as any)(\n this.relativePositions,\n { width, height },\n );\n }\n\n public shiftBy(x: number, y: number): T {\n return new (this.constructor as any)(\n this.relativePositions,\n this._imgDims,\n new Point(x, y),\n );\n }\n\n public shiftByPoint(pt: Point): T {\n return this.shiftBy(pt.x, pt.y);\n }\n\n /**\n * Aligns the face landmarks after face detection from the relative positions of the faces\n * bounding box, or it's current shift. This function should be used to align the face images\n * after face detection has been performed, before they are passed to the face recognition net.\n * This will make the computed face descriptor more accurate.\n *\n * @param detection (optional) The bounding box of the face or the face detection result. If\n * no argument was passed the position of the face landmarks are assumed to be relative to\n * it's current shift.\n * @returns The bounding box of the aligned face.\n */\n public align(\n detection?: FaceDetection | IRect | IBoundingBox | null,\n options: { useDlibAlignment?: boolean, minBoxPadding?: number } = { },\n ): Box {\n if (detection) {\n const box = detection instanceof FaceDetection\n ? detection.box.floor()\n : new Box(detection);\n\n return this.shiftBy(box.x, box.y).align(null, options);\n }\n\n const { useDlibAlignment, minBoxPadding } = { useDlibAlignment: false, minBoxPadding: 0.2, ...options };\n\n if (useDlibAlignment) {\n return this.alignDlib();\n }\n\n return this.alignMinBbox(minBoxPadding);\n }\n\n private alignDlib(): Box {\n const centers = this.getRefPointsForAlignment();\n\n const [leftEyeCenter, rightEyeCenter, mouthCenter] = centers;\n const distToMouth = (pt: Point) => mouthCenter.sub(pt).magnitude();\n const eyeToMouthDist = (distToMouth(leftEyeCenter) + distToMouth(rightEyeCenter)) / 2;\n\n const size = Math.floor(eyeToMouthDist / relScale);\n\n const refPoint = getCenterPoint(centers);\n // TODO: pad in case rectangle is out of image bounds\n const x = Math.floor(Math.max(0, refPoint.x - (relX * size)));\n const y = Math.floor(Math.max(0, refPoint.y - (relY * size)));\n\n return new Rect(x, y, Math.min(size, this.imageWidth + x), Math.min(size, this.imageHeight + y));\n }\n\n private alignMinBbox(padding: number): Box {\n const box = minBbox(this.positions);\n return box.pad(box.width * padding, box.height * padding);\n }\n\n protected getRefPointsForAlignment(): Point[] {\n throw new Error('getRefPointsForAlignment not implemented by base class');\n }\n}\n", "import { getCenterPoint } from '../utils/index';\nimport { FaceLandmarks } from './FaceLandmarks';\nimport { Point } from './Point';\n\nexport class FaceLandmarks5 extends FaceLandmarks {\n protected override getRefPointsForAlignment(): Point[] {\n const pts = this.positions;\n return [\n pts[0],\n pts[1],\n getCenterPoint([pts[3], pts[4]]),\n ];\n }\n}\n", "import { getCenterPoint } from '../utils/index';\nimport { FaceLandmarks } from './FaceLandmarks';\nimport { Point } from './Point';\n\nexport class FaceLandmarks68 extends FaceLandmarks {\n public getJawOutline(): Point[] {\n return this.positions.slice(0, 17);\n }\n\n public getLeftEyeBrow(): Point[] {\n return this.positions.slice(17, 22);\n }\n\n public getRightEyeBrow(): Point[] {\n return this.positions.slice(22, 27);\n }\n\n public getNose(): Point[] {\n return this.positions.slice(27, 36);\n }\n\n public getLeftEye(): Point[] {\n return this.positions.slice(36, 42);\n }\n\n public getRightEye(): Point[] {\n return this.positions.slice(42, 48);\n }\n\n public getMouth(): Point[] {\n return this.positions.slice(48, 68);\n }\n\n protected override getRefPointsForAlignment(): Point[] {\n return [\n this.getLeftEye(),\n this.getRightEye(),\n this.getMouth(),\n ].map(getCenterPoint);\n }\n}\n", "import { round } from '../utils/index';\n\nexport interface IFaceMatch {\n label: string\n distance: number\n}\n\nexport class FaceMatch implements IFaceMatch {\n private _label: string;\n private _distance: number;\n\n constructor(label: string, distance: number) {\n this._label = label;\n this._distance = distance;\n }\n\n public get label(): string { return this._label; }\n\n public get distance(): number { return this._distance; }\n\n public toString(withDistance = true): string {\n return `${this.label}${withDistance ? ` (${round(this.distance)})` : ''}`;\n }\n}\n", "import { isValidNumber } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { Box } from './Box';\nimport { IRect } from './Rect';\n\nexport class LabeledBox extends Box {\n public static assertIsValidLabeledBox(box: any, callee: string) {\n Box.assertIsValidBox(box, callee);\n if (!isValidNumber(box.label)) {\n throw new Error(`${callee} - expected property label (${box.label}) to be a number`);\n }\n }\n\n private _label: number;\n\n constructor(box: IBoundingBox | IRect | any, label: number) {\n super(box);\n this._label = label;\n }\n\n public get label(): number { return this._label; }\n}\n", "export class LabeledFaceDescriptors {\n private _label: string;\n\n private _descriptors: Float32Array[];\n\n constructor(label: string, descriptors: Float32Array[]) {\n if (!(typeof label === 'string')) {\n throw new Error('LabeledFaceDescriptors - constructor expected label to be a string');\n }\n\n if (!Array.isArray(descriptors) || descriptors.some((desc) => !(desc instanceof Float32Array))) {\n throw new Error('LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array');\n }\n\n this._label = label;\n this._descriptors = descriptors;\n }\n\n public get label(): string { return this._label; }\n\n public get descriptors(): Float32Array[] { return this._descriptors; }\n\n public toJSON(): any {\n return {\n label: this.label,\n descriptors: this.descriptors.map((d) => Array.from(d)),\n };\n }\n\n public static fromJSON(json: any): LabeledFaceDescriptors {\n const descriptors = json.descriptors.map((d: any) => new Float32Array(d));\n return new LabeledFaceDescriptors(json.label, descriptors);\n }\n}\n", "import { isValidProbablitiy } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { LabeledBox } from './LabeledBox';\nimport { IRect } from './Rect';\n\nexport class PredictedBox extends LabeledBox {\n public static assertIsValidPredictedBox(box: any, callee: string) {\n LabeledBox.assertIsValidLabeledBox(box, callee);\n\n if (\n !isValidProbablitiy(box.score)\n || !isValidProbablitiy(box.classScore)\n ) {\n throw new Error(`${callee} - expected properties score (${box.score}) and (${box.classScore}) to be a number between [0, 1]`);\n }\n }\n\n private _score: number;\n\n private _classScore: number;\n\n constructor(box: IBoundingBox | IRect | any, label: number, score: number, classScore: number) {\n super(box, label);\n this._score = score;\n this._classScore = classScore;\n }\n\n public get score(): number { return this._score; }\n\n public get classScore(): number { return this._classScore; }\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\n\nexport type WithFaceDetection = TSource & {\n detection: FaceDetection\n}\n\nexport function isWithFaceDetection(obj: any): obj is WithFaceDetection<{}> {\n return obj.detection instanceof FaceDetection;\n}\n\nexport function extendWithFaceDetection(sourceObj: TSource, detection: FaceDetection): WithFaceDetection {\n const extension = { detection };\n return { ...sourceObj, ...extension };\n}\n", "import { Environment } from './types';\n\nexport function createBrowserEnv(): Environment {\n const fetch = window.fetch;\n if (!fetch) throw new Error('fetch - missing fetch implementation for browser environment');\n\n const readFile = () => {\n throw new Error('readFile - filesystem not available for browser environment');\n };\n\n return {\n Canvas: HTMLCanvasElement,\n CanvasRenderingContext2D,\n Image: HTMLImageElement,\n ImageData,\n Video: HTMLVideoElement,\n createCanvasElement: () => document.createElement('canvas'),\n createImageElement: () => document.createElement('img'),\n createVideoElement: () => document.createElement('video'),\n fetch,\n readFile,\n };\n}\n", "export function isNodejs(): boolean {\n return typeof global === 'object'\n && typeof process !== 'undefined'\n && process.versions != null\n && process.versions.node != null;\n}\n", "import { FileSystem } from './types';\nimport { isNodejs } from './isNodejs';\n\nexport function createFileSystem(fs?: any): FileSystem {\n let requireFsError = '';\n if (!fs && isNodejs()) {\n try {\n // eslint-disable-next-line global-require\n fs = require('fs');\n } catch (err) {\n requireFsError = (err as any).toString();\n }\n }\n\n const readFile = fs\n ? (filePath: string) => new Promise((resolve, reject) => { fs.readFile(filePath, (err: any, buffer) => (err ? reject(err) : resolve(buffer))); })\n : () => { throw new Error(`readFile - failed to require fs in nodejs environment with error: ${requireFsError}`); };\n return { readFile };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { createFileSystem } from './createFileSystem';\nimport { Environment } from './types';\n\nexport function createNodejsEnv(): Environment {\n // eslint-disable-next-line dot-notation\n const Canvas = global['Canvas'] || global.HTMLCanvasElement;\n const Image = global.Image || global.HTMLImageElement;\n // eslint-disable-next-line dot-notation\n const Video = global['Video'] || global.HTMLVideoElement;\n\n const createCanvasElement = () => {\n if (Canvas) return new Canvas();\n throw new Error('createCanvasElement - missing Canvas implementation for nodejs environment');\n };\n\n const createImageElement = () => {\n if (Image) return new Image();\n throw new Error('createImageElement - missing Image implementation for nodejs environment');\n };\n\n const createVideoElement = () => {\n if (Video) return new Video();\n throw new Error('createVideoElement - missing Video implementation for nodejs environment');\n };\n\n const fetch = global.fetch;\n // if (!fetch) throw new Error('fetch - missing fetch implementation for nodejs environment');\n\n const fileSystem = createFileSystem();\n\n return {\n Canvas: Canvas || class {},\n CanvasRenderingContext2D: global.CanvasRenderingContext2D || class {},\n Image: Image || class {},\n ImageData: global.ImageData || class {},\n Video: global.HTMLVideoElement || class {},\n createCanvasElement,\n createImageElement,\n createVideoElement,\n fetch,\n ...fileSystem,\n };\n}\n", "export function isBrowser(): boolean {\n return typeof window === 'object'\n && typeof document !== 'undefined'\n && typeof HTMLImageElement !== 'undefined'\n && typeof HTMLCanvasElement !== 'undefined'\n && typeof HTMLVideoElement !== 'undefined'\n && typeof ImageData !== 'undefined'\n && typeof CanvasRenderingContext2D !== 'undefined';\n}\n", "import { createBrowserEnv } from './createBrowserEnv';\nimport { createFileSystem } from './createFileSystem';\nimport { createNodejsEnv } from './createNodejsEnv';\nimport { isBrowser } from './isBrowser';\nimport { isNodejs } from './isNodejs';\nimport { Environment } from './types';\n\nlet environment: Environment | null;\n\nfunction getEnv(): Environment {\n if (!environment) {\n throw new Error('getEnv - environment is not defined, check isNodejs() and isBrowser()');\n }\n return environment;\n}\n\nfunction setEnv(env: Environment) {\n environment = env;\n}\n\nfunction initialize() {\n // check for isBrowser() first to prevent electron renderer process\n // to be initialized with wrong environment due to isNodejs() returning true\n if (isBrowser()) return setEnv(createBrowserEnv());\n if (isNodejs()) return setEnv(createNodejsEnv());\n return null;\n}\n\nfunction monkeyPatch(env: Partial) {\n if (!environment) {\n initialize();\n }\n\n if (!environment) {\n throw new Error('monkeyPatch - environment is not defined, check isNodejs() and isBrowser()');\n }\n\n const { Canvas = environment.Canvas, Image = environment.Image } = env;\n environment.Canvas = Canvas;\n environment.Image = Image;\n environment.createCanvasElement = env.createCanvasElement || (() => new Canvas());\n environment.createImageElement = env.createImageElement || (() => new Image());\n\n environment.ImageData = env.ImageData || environment.ImageData;\n environment.Video = env.Video || environment.Video;\n environment.fetch = env.fetch || environment.fetch;\n environment.readFile = env.readFile || environment.readFile;\n}\n\nexport const env = {\n getEnv,\n setEnv,\n initialize,\n createBrowserEnv,\n createFileSystem,\n createNodejsEnv,\n monkeyPatch,\n isBrowser,\n isNodejs,\n};\n\ninitialize();\n\nexport * from './types';\n", "import { env } from '../env/index';\n\nexport function resolveInput(arg: string | any) {\n if (!env.isNodejs() && typeof arg === 'string') {\n return document.getElementById(arg);\n }\n return arg;\n}\n", "import { env } from '../env/index';\nimport { resolveInput } from './resolveInput';\n\nexport function getContext2dOrThrow(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D): CanvasRenderingContext2D {\n const { Canvas, CanvasRenderingContext2D } = env.getEnv();\n\n if (canvasArg instanceof CanvasRenderingContext2D) {\n return canvasArg;\n }\n\n const canvas = resolveInput(canvasArg);\n\n if (!(canvas instanceof Canvas)) {\n throw new Error('resolveContext2d - expected canvas to be of instance of Canvas');\n }\n\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n throw new Error('resolveContext2d - canvas 2d context is null');\n }\n\n return ctx;\n}\n", "/* eslint-disable max-classes-per-file */\nimport { IDimensions, IPoint } from '../classes/index';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { resolveInput } from '../dom/resolveInput';\n\n// eslint-disable-next-line no-shadow\nexport enum AnchorPosition {\n // eslint-disable-next-line no-unused-vars\n TOP_LEFT = 'TOP_LEFT',\n // eslint-disable-next-line no-unused-vars\n TOP_RIGHT = 'TOP_RIGHT',\n // eslint-disable-next-line no-unused-vars\n BOTTOM_LEFT = 'BOTTOM_LEFT',\n // eslint-disable-next-line no-unused-vars\n BOTTOM_RIGHT = 'BOTTOM_RIGHT'\n}\n\nexport interface IDrawTextFieldOptions {\n anchorPosition?: AnchorPosition\n backgroundColor?: string\n fontColor?: string\n fontSize?: number\n fontStyle?: string\n padding?: number\n}\n\nexport class DrawTextFieldOptions implements IDrawTextFieldOptions {\n public anchorPosition: AnchorPosition;\n\n public backgroundColor: string;\n\n public fontColor: string;\n\n public fontSize: number;\n\n public fontStyle: string;\n\n public padding: number;\n\n constructor(options: IDrawTextFieldOptions = {}) {\n const {\n anchorPosition, backgroundColor, fontColor, fontSize, fontStyle, padding,\n } = options;\n this.anchorPosition = anchorPosition || AnchorPosition.TOP_LEFT;\n this.backgroundColor = backgroundColor || 'rgba(0, 0, 0, 0.5)';\n this.fontColor = fontColor || 'rgba(255, 255, 255, 1)';\n this.fontSize = fontSize || 14;\n this.fontStyle = fontStyle || 'Georgia';\n this.padding = padding || 4;\n }\n}\n\nexport class DrawTextField {\n public text: string[];\n\n public anchor : IPoint;\n\n public options: DrawTextFieldOptions;\n\n constructor(\n text: string | string[] | DrawTextField,\n anchor: IPoint,\n options: IDrawTextFieldOptions = {},\n ) {\n // eslint-disable-next-line no-nested-ternary\n this.text = typeof text === 'string'\n ? [text]\n : (text instanceof DrawTextField ? text.text : text);\n this.anchor = anchor;\n this.options = new DrawTextFieldOptions(options);\n }\n\n measureWidth(ctx: CanvasRenderingContext2D): number {\n const { padding } = this.options;\n return this.text.map((l) => ctx.measureText(l).width).reduce((w0, w1) => (w0 < w1 ? w1 : w0), 0) + (2 * padding);\n }\n\n measureHeight(): number {\n const { fontSize, padding } = this.options;\n return this.text.length * fontSize + (2 * padding);\n }\n\n getUpperLeft(ctx: CanvasRenderingContext2D, canvasDims?: IDimensions): IPoint {\n const { anchorPosition } = this.options;\n const isShiftLeft = anchorPosition === AnchorPosition.BOTTOM_RIGHT || anchorPosition === AnchorPosition.TOP_RIGHT;\n const isShiftTop = anchorPosition === AnchorPosition.BOTTOM_LEFT || anchorPosition === AnchorPosition.BOTTOM_RIGHT;\n\n const textFieldWidth = this.measureWidth(ctx);\n const textFieldHeight = this.measureHeight();\n const x = (isShiftLeft ? this.anchor.x - textFieldWidth : this.anchor.x);\n const y = isShiftTop ? this.anchor.y - textFieldHeight : this.anchor.y;\n\n // adjust anchor if text box exceeds canvas borders\n if (canvasDims) {\n const { width, height } = canvasDims;\n const newX = Math.max(Math.min(x, width - textFieldWidth), 0);\n const newY = Math.max(Math.min(y, height - textFieldHeight), 0);\n return { x: newX, y: newY };\n }\n return { x, y };\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const canvas = resolveInput(canvasArg);\n const ctx = getContext2dOrThrow(canvas);\n\n const {\n backgroundColor, fontColor, fontSize, fontStyle, padding,\n } = this.options;\n\n ctx.font = `${fontSize}px ${fontStyle}`;\n const maxTextWidth = this.measureWidth(ctx);\n const textHeight = this.measureHeight();\n\n ctx.fillStyle = backgroundColor;\n const upperLeft = this.getUpperLeft(ctx, canvas);\n ctx.fillRect(upperLeft.x, upperLeft.y, maxTextWidth, textHeight);\n\n ctx.fillStyle = fontColor;\n this.text.forEach((textLine, i) => {\n const x = padding + upperLeft.x;\n const y = padding + upperLeft.y + ((i + 1) * fontSize);\n ctx.fillText(textLine, x, y);\n });\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { Box, IBoundingBox, IRect } from '../classes/index';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { AnchorPosition, DrawTextField, DrawTextFieldOptions, IDrawTextFieldOptions } from './DrawTextField';\n\nexport interface IDrawBoxOptions {\n boxColor?: string\n lineWidth?: number\n drawLabelOptions?: IDrawTextFieldOptions\n label?: string\n}\n\nexport class DrawBoxOptions {\n public boxColor: string;\n\n public lineWidth: number;\n\n public drawLabelOptions: DrawTextFieldOptions;\n\n public label?: string;\n\n constructor(options: IDrawBoxOptions = {}) {\n const {\n boxColor, lineWidth, label, drawLabelOptions,\n } = options;\n this.boxColor = boxColor || 'rgba(0, 0, 255, 1)';\n this.lineWidth = lineWidth || 2;\n this.label = label;\n\n const defaultDrawLabelOptions = {\n anchorPosition: AnchorPosition.BOTTOM_LEFT,\n backgroundColor: this.boxColor,\n };\n this.drawLabelOptions = new DrawTextFieldOptions({ ...defaultDrawLabelOptions, ...drawLabelOptions });\n }\n}\n\nexport class DrawBox {\n public box: Box;\n\n public options: DrawBoxOptions;\n\n constructor(\n box: IBoundingBox | IRect,\n options: IDrawBoxOptions = {},\n ) {\n this.box = new Box(box);\n this.options = new DrawBoxOptions(options);\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const ctx = getContext2dOrThrow(canvasArg);\n\n const { boxColor, lineWidth } = this.options;\n\n const {\n x, y, width, height,\n } = this.box;\n ctx.strokeStyle = boxColor;\n ctx.lineWidth = lineWidth;\n ctx.strokeRect(x, y, width, height);\n\n const { label } = this.options;\n if (label) {\n new DrawTextField([label], { x: x - (lineWidth / 2), y }, this.options.drawLabelOptions).draw(canvasArg);\n }\n }\n}\n", "import { Box, IBoundingBox, IRect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { isWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\nimport { round } from '../utils/index';\nimport { DrawBox } from './DrawBox';\n\nexport type TDrawDetectionsInput = IRect | IBoundingBox | FaceDetection | WithFaceDetection<{}>\n\nexport function drawDetections(\n canvasArg: string | HTMLCanvasElement,\n detections: TDrawDetectionsInput | Array,\n) {\n const detectionsArray = Array.isArray(detections) ? detections : [detections];\n\n detectionsArray.forEach((det) => {\n // eslint-disable-next-line no-nested-ternary\n const score = det instanceof FaceDetection\n ? det.score\n : (isWithFaceDetection(det) ? det.detection.score : undefined);\n\n // eslint-disable-next-line no-nested-ternary\n const box = det instanceof FaceDetection\n ? det.box\n : (isWithFaceDetection(det) ? det.detection.box : new Box(det));\n\n const label = score ? `${round(score)}` : undefined;\n new DrawBox(box, { label }).draw(canvasArg);\n });\n}\n", "import { env } from '../env/index';\n\nexport function isMediaLoaded(media: HTMLImageElement | HTMLVideoElement) : boolean {\n const { Image, Video } = env.getEnv();\n\n return (media instanceof Image && media.complete)\n || (media instanceof Video && media.readyState >= 3);\n}\n", "import { env } from '../env/index';\nimport { isMediaLoaded } from './isMediaLoaded';\n\nexport function awaitMediaLoaded(media: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement) {\n // eslint-disable-next-line consistent-return\n return new Promise((resolve, reject) => {\n if (media instanceof env.getEnv().Canvas || isMediaLoaded(media)) resolve(null);\n\n function onError(e: Event) {\n if (!e.currentTarget) return;\n // eslint-disable-next-line no-use-before-define\n e.currentTarget.removeEventListener('load', onLoad);\n e.currentTarget.removeEventListener('error', onError);\n reject(e);\n }\n\n function onLoad(e: Event) {\n if (!e.currentTarget) return;\n e.currentTarget.removeEventListener('load', onLoad);\n e.currentTarget.removeEventListener('error', onError);\n resolve(e);\n }\n\n media.addEventListener('load', onLoad);\n media.addEventListener('error', onError);\n });\n}\n", "import { env } from '../env/index';\n\nexport function bufferToImage(buf: Blob): Promise {\n return new Promise((resolve, reject) => {\n if (!(buf instanceof Blob)) reject(new Error('bufferToImage - expected buf to be of type: Blob'));\n const reader = new FileReader();\n reader.onload = () => {\n if (typeof reader.result !== 'string') reject(new Error('bufferToImage - expected reader.result to be a string, in onload'));\n const img = env.getEnv().createImageElement();\n img.onload = () => resolve(img);\n img.onerror = reject;\n img.src = reader.result as string;\n };\n reader.onerror = reject;\n reader.readAsDataURL(buf);\n });\n}\n", "import { Dimensions, IDimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\n\nexport function getMediaDimensions(input: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | IDimensions): Dimensions {\n const { Image, Video } = env.getEnv();\n\n if (input instanceof Image) {\n return new Dimensions(input.naturalWidth, input.naturalHeight);\n }\n if (input instanceof Video) {\n return new Dimensions(input.videoWidth, input.videoHeight);\n }\n return new Dimensions(input.width, input.height);\n}\n", "import { IDimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { getMediaDimensions } from './getMediaDimensions';\nimport { isMediaLoaded } from './isMediaLoaded';\n\nexport function createCanvas({ width, height }: IDimensions): HTMLCanvasElement {\n const { createCanvasElement } = env.getEnv();\n const canvas = createCanvasElement();\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nexport function createCanvasFromMedia(media: HTMLImageElement | HTMLVideoElement | ImageData, dims?: IDimensions): HTMLCanvasElement {\n const { ImageData } = env.getEnv();\n\n if (!(media instanceof ImageData) && !isMediaLoaded(media)) {\n throw new Error('createCanvasFromMedia - media has not finished loading yet');\n }\n\n const { width, height } = dims || getMediaDimensions(media);\n const canvas = createCanvas({ width, height });\n\n if (media instanceof ImageData) {\n getContext2dOrThrow(canvas).putImageData(media, 0, 0);\n } else {\n getContext2dOrThrow(canvas).drawImage(media, 0, 0, width, height);\n }\n return canvas;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { env } from '../env/index';\nimport { isTensor4D } from '../utils/index';\n\nexport async function imageTensorToCanvas(\n imgTensor: tf.Tensor,\n canvas?: HTMLCanvasElement,\n): Promise {\n const targetCanvas = canvas || env.getEnv().createCanvasElement();\n\n const [height, width, numChannels] = imgTensor.shape.slice(isTensor4D(imgTensor) ? 1 : 0);\n const imgTensor3D = tf.tidy(() => imgTensor.as3D(height, width, numChannels).toInt());\n await tf['browser'].toPixels(imgTensor3D, targetCanvas);\n\n imgTensor3D.dispose();\n\n return targetCanvas;\n}\n", "import { env } from '../env/index';\n\nexport function isMediaElement(input: any) {\n const { Image, Canvas, Video } = env.getEnv();\n\n return input instanceof Image\n || input instanceof Canvas\n || input instanceof Video;\n}\n", "import { env } from '../env/index';\nimport { createCanvas, createCanvasFromMedia } from './createCanvas';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { getMediaDimensions } from './getMediaDimensions';\n\nexport function imageToSquare(input: HTMLImageElement | HTMLCanvasElement, inputSize: number, centerImage = false) {\n const { Image, Canvas } = env.getEnv();\n\n if (!(input instanceof Image || input instanceof Canvas)) {\n throw new Error('imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement');\n }\n\n if (inputSize <= 0) return createCanvas({ width: 1, height: 1 });\n const dims = getMediaDimensions(input);\n const scale = inputSize / Math.max(dims.height, dims.width);\n const width = scale * dims.width;\n const height = scale * dims.height;\n\n const targetCanvas = createCanvas({ width: inputSize, height: inputSize });\n const inputCanvas = input instanceof Canvas ? input : createCanvasFromMedia(input);\n\n const offset = Math.abs(width - height) / 2;\n const dx = centerImage && width < height ? offset : 0;\n const dy = centerImage && height < width ? offset : 0;\n if (inputCanvas.width > 0 && inputCanvas.height > 0) getContext2dOrThrow(targetCanvas).drawImage(inputCanvas, dx, dy, width, height);\n\n return targetCanvas;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Dimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\nimport { padToSquare } from '../ops/padToSquare';\nimport { computeReshapedDimensions, isTensor3D, isTensor4D, range } from '../utils/index';\nimport { createCanvasFromMedia } from './createCanvas';\nimport { imageToSquare } from './imageToSquare';\nimport { TResolvedNetInput } from './types';\n\nexport class NetInput {\n private _imageTensors: Array = [];\n\n private _canvases: HTMLCanvasElement[] = [];\n\n private _batchSize: number;\n\n private _treatAsBatchInput = false;\n\n private _inputDimensions: number[][] = [];\n\n private _inputSize = 0;\n\n constructor(inputs: Array, treatAsBatchInput = false) {\n if (!Array.isArray(inputs)) {\n throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${inputs}`);\n }\n\n this._treatAsBatchInput = treatAsBatchInput;\n this._batchSize = inputs.length;\n\n inputs.forEach((input, idx) => {\n if (isTensor3D(input)) {\n this._imageTensors[idx] = input;\n this._inputDimensions[idx] = input.shape;\n return;\n }\n\n if (isTensor4D(input)) {\n const batchSize = (input as any).shape[0];\n if (batchSize !== 1) {\n throw new Error(`NetInput - tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n\n this._imageTensors[idx] = input;\n this._inputDimensions[idx] = (input as any).shape.slice(1);\n return;\n }\n\n // @ts-ignore\n const canvas = (input as any) instanceof env.getEnv().Canvas ? input : createCanvasFromMedia(input);\n this._canvases[idx] = canvas as HTMLCanvasElement;\n this._inputDimensions[idx] = [canvas.height, canvas.width, 3];\n });\n }\n\n public get imageTensors(): Array {\n return this._imageTensors;\n }\n\n public get canvases(): HTMLCanvasElement[] {\n return this._canvases;\n }\n\n public get isBatchInput(): boolean {\n return this.batchSize > 1 || this._treatAsBatchInput;\n }\n\n public get batchSize(): number {\n return this._batchSize;\n }\n\n public get inputDimensions(): number[][] {\n return this._inputDimensions;\n }\n\n public get inputSize(): number | undefined {\n return this._inputSize;\n }\n\n public get reshapedInputDimensions(): Dimensions[] {\n return range(this.batchSize, 0, 1).map(\n (_, batchIdx) => this.getReshapedInputDimensions(batchIdx),\n );\n }\n\n public getInput(batchIdx: number): tf.Tensor3D | tf.Tensor4D | HTMLCanvasElement {\n return this.canvases[batchIdx] || this.imageTensors[batchIdx];\n }\n\n public getInputDimensions(batchIdx: number): number[] {\n return this._inputDimensions[batchIdx];\n }\n\n public getInputHeight(batchIdx: number): number {\n return this._inputDimensions[batchIdx][0];\n }\n\n public getInputWidth(batchIdx: number): number {\n return this._inputDimensions[batchIdx][1];\n }\n\n public getReshapedInputDimensions(batchIdx: number): Dimensions {\n if (typeof this.inputSize !== 'number') {\n throw new Error('getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet');\n }\n\n const width = this.getInputWidth(batchIdx);\n const height = this.getInputHeight(batchIdx);\n return computeReshapedDimensions({ width, height }, this.inputSize);\n }\n\n /**\n * Create a batch tensor from all input canvases and tensors\n * with size [batchSize, inputSize, inputSize, 3].\n *\n * @param inputSize Height and width of the tensor.\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\n * both sides of the minor dimension oof the image.\n * @returns The batch tensor.\n */\n public toBatchTensor(inputSize: number, isCenterInputs = true): tf.Tensor4D {\n this._inputSize = inputSize;\n\n return tf.tidy(() => {\n const inputTensors = range(this.batchSize, 0, 1).map((batchIdx) => {\n const input = this.getInput(batchIdx);\n\n if (input instanceof tf.Tensor) {\n let imgTensor = isTensor4D(input) ? input : tf.expandDims(input);\n imgTensor = padToSquare(imgTensor as tf.Tensor4D, isCenterInputs);\n\n if (imgTensor.shape[1] !== inputSize || imgTensor.shape[2] !== inputSize) {\n imgTensor = tf['image'].resizeBilinear(imgTensor as tf.Tensor4D, [inputSize, inputSize], false, false);\n }\n\n return imgTensor.as3D(inputSize, inputSize, 3);\n }\n\n if (input instanceof env.getEnv().Canvas) {\n return tf['browser'].fromPixels(imageToSquare(input, inputSize, isCenterInputs));\n }\n\n throw new Error(`toBatchTensor - at batchIdx ${batchIdx}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${input}`);\n });\n\n const batchTensor = tf.stack(inputTensors.map((t) => tf.cast(t, 'float32'))).as4D(this.batchSize, inputSize, inputSize, 3);\n // const batchTensor = tf.stack(inputTensors.map((t) => tf.cast(t, 'float32'))) as tf.Tensor4D;\n\n return batchTensor;\n });\n }\n}\n", "import { isTensor3D, isTensor4D } from '../utils/index';\nimport { awaitMediaLoaded } from './awaitMediaLoaded';\nimport { isMediaElement } from './isMediaElement';\nimport { NetInput } from './NetInput';\nimport { resolveInput } from './resolveInput';\nimport { TNetInput } from './types';\n\n/**\n * Validates the input to make sure, they are valid net inputs and awaits all media elements\n * to be finished loading.\n *\n * @param input The input, which can be a media element or an array of different media elements.\n * @returns A NetInput instance, which can be passed into one of the neural networks.\n */\nexport async function toNetInput(inputs: TNetInput): Promise {\n if (inputs instanceof NetInput) return inputs;\n const inputArgArray = Array.isArray(inputs) ? inputs : [inputs];\n if (!inputArgArray.length) throw new Error('toNetInput - empty array passed as input');\n const getIdxHint = (idx: number) => (Array.isArray(inputs) ? ` at input index ${idx}:` : '');\n const inputArray = inputArgArray.map(resolveInput);\n inputArray.forEach((input, i) => {\n if (!isMediaElement(input) && !isTensor3D(input) && !isTensor4D(input)) {\n if (typeof inputArgArray[i] === 'string') throw new Error(`toNetInput -${getIdxHint(i)} string passed, but could not resolve HTMLElement for element id ${inputArgArray[i]}`);\n throw new Error(`toNetInput -${getIdxHint(i)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);\n }\n if (isTensor4D(input)) {\n // if tf.Tensor4D is passed in the input array, the batch size has to be 1\n const batchSize = input.shape[0];\n if (batchSize !== 1) throw new Error(`toNetInput -${getIdxHint(i)} tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n });\n // wait for all media elements being loaded\n await Promise.all(inputArray.map((input) => isMediaElement(input) && awaitMediaLoaded(input)));\n return new NetInput(inputArray, Array.isArray(inputs));\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\nimport { Rect } from '../classes/Rect';\nimport { env } from '../env/index';\nimport { createCanvas } from './createCanvas';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { imageTensorToCanvas } from './imageTensorToCanvas';\nimport { toNetInput } from './toNetInput';\nimport { TNetInput } from './types';\n\n/**\n * Extracts the image regions containing the detected faces.\n *\n * @param input The image that face detection has been performed on.\n * @param detections The face detection results or face bounding boxes for that image.\n * @returns The Canvases of the corresponding image region for each detected face.\n */\nexport async function extractFaces(input: TNetInput, detections: Array): Promise {\n const { Canvas } = env.getEnv();\n let canvas = input as HTMLCanvasElement;\n if (!(input instanceof Canvas)) {\n const netInput = await toNetInput(input);\n if (netInput.batchSize > 1) throw new Error('extractFaces - batchSize > 1 not supported');\n const tensorOrCanvas = netInput.getInput(0);\n canvas = tensorOrCanvas instanceof Canvas ? tensorOrCanvas : await imageTensorToCanvas(tensorOrCanvas);\n }\n const ctx = getContext2dOrThrow(canvas);\n const boxes = detections\n .map((det) => (det instanceof FaceDetection ? det.forSize(canvas.width, canvas.height).box.floor() : det))\n .map((box) => box.clipAtImageBorders(canvas.width, canvas.height));\n return boxes.map(({ x, y, width, height }) => {\n const faceImg = createCanvas({ width, height });\n if (width > 0 && height > 0) getContext2dOrThrow(faceImg).putImageData(ctx.getImageData(x, y, width, height), 0, 0);\n return faceImg;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Rect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { isTensor3D, isTensor4D } from '../utils/index';\n\n/**\n * Extracts the tensors of the image regions containing the detected faces.\n * Useful if you want to compute the face descriptors for the face images.\n * Using this method is faster then extracting a canvas for each face and\n * converting them to tensors individually.\n *\n * @param imageTensor The image tensor that face detection has been performed on.\n * @param detections The face detection results or face bounding boxes for that image.\n * @returns Tensors of the corresponding image region for each detected face.\n */\nexport async function extractFaceTensors(imageTensor: tf.Tensor3D | tf.Tensor4D, detections: Array): Promise {\n if (!isTensor3D(imageTensor) && !isTensor4D(imageTensor)) {\n throw new Error('extractFaceTensors - expected image tensor to be 3D or 4D');\n }\n\n if (isTensor4D(imageTensor) && imageTensor.shape[0] > 1) {\n throw new Error('extractFaceTensors - batchSize > 1 not supported');\n }\n\n return tf.tidy(() => {\n const [imgHeight, imgWidth, numChannels] = imageTensor.shape.slice(isTensor4D(imageTensor) ? 1 : 0);\n const boxes = detections.map((det) => (det instanceof FaceDetection ? det.forSize(imgWidth, imgHeight).box : det))\n .map((box) => box.clipAtImageBorders(imgWidth, imgHeight));\n const faceTensors = boxes\n .filter((box) => box.width > 0 && box.height > 0)\n .map(({ x, y, width, height }) => tf.slice3d(imageTensor.as3D(imgHeight, imgWidth, numChannels), [y, x, 0], [height, width, numChannels]));\n return faceTensors;\n });\n}\n", "import { env } from '../env/index';\n\nexport async function fetchOrThrow(\n url: string,\n // eslint-disable-next-line no-undef\n init?: RequestInit,\n): Promise {\n const { fetch } = env.getEnv();\n const res = await fetch(url, init);\n if (!(res.status < 400)) {\n throw new Error(`failed to fetch: (${res.status}) ${res.statusText}, from url: ${res.url}`);\n }\n return res;\n}\n", "import { bufferToImage } from './bufferToImage';\nimport { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchImage(uri: string): Promise {\n const res = await fetchOrThrow(uri);\n const blob = await (res).blob();\n\n if (!blob.type.startsWith('image/')) {\n throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${blob.type}, for url: ${res.url}`);\n }\n return bufferToImage(blob);\n}\n", "import { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchJson(uri: string): Promise {\n return (await fetchOrThrow(uri)).json();\n}\n", "import { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchNetWeights(uri: string): Promise {\n return new Float32Array(await (await fetchOrThrow(uri)).arrayBuffer());\n}\n", "import { env } from '../env/index';\n\nexport function bufferToVideo(buf: Blob): Promise {\n return new Promise((resolve, reject) => {\n if (!(buf instanceof Blob)) reject(new Error('bufferToVideo - expected buf to be of type: Blob'));\n\n const video = env.getEnv().createVideoElement();\n video.oncanplay = () => resolve(video);\n video.onerror = reject;\n video.playsInline = true;\n video.muted = true;\n video.src = URL.createObjectURL(buf);\n video.play();\n });\n}\n", "import { bufferToVideo } from './bufferToVideo';\nimport { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchVideo(uri: string): Promise {\n const res = await fetchOrThrow(uri);\n const blob = await (res).blob();\n\n if (!blob.type.startsWith('video/')) {\n throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${blob.type}, for url: ${res.url}`);\n }\n return bufferToVideo(blob);\n}\n", "export function getModelUris(uri: string | undefined, defaultModelName: string) {\n const defaultManifestFilename = `${defaultModelName}-weights_manifest.json`;\n\n if (!uri) {\n return {\n modelBaseUri: '',\n manifestUri: defaultManifestFilename,\n };\n }\n\n if (uri === '/') {\n return {\n modelBaseUri: '/',\n manifestUri: `/${defaultManifestFilename}`,\n };\n }\n // eslint-disable-next-line no-nested-ternary\n const protocol = uri.startsWith('http://') ? 'http://' : uri.startsWith('https://') ? 'https://' : '';\n uri = uri.replace(protocol, '');\n\n const parts = uri.split('/').filter((s) => s);\n\n const manifestFile = uri.endsWith('.json')\n ? parts[parts.length - 1]\n : defaultManifestFilename;\n\n let modelBaseUri = protocol + (uri.endsWith('.json') ? parts.slice(0, parts.length - 1) : parts).join('/');\n modelBaseUri = uri.startsWith('/') ? `/${modelBaseUri}` : modelBaseUri;\n\n return {\n modelBaseUri,\n manifestUri: modelBaseUri === '/' ? `/${manifestFile}` : `${modelBaseUri}/${manifestFile}`,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { getModelUris } from '../common/getModelUris';\nimport { fetchJson } from './fetchJson';\n\nexport async function loadWeightMap(\n uri: string | undefined,\n defaultModelName: string,\n): Promise {\n const { manifestUri, modelBaseUri } = getModelUris(uri, defaultModelName);\n // @ts-ignore\n const manifest = await fetchJson(manifestUri);\n // if (manifest['weightsManifest']) manifest = manifest['weightsManifest'];\n return tf['io'].loadWeights(manifest, modelBaseUri);\n}\n", "import { IDimensions } from '../classes/index';\nimport { getMediaDimensions } from './getMediaDimensions';\n\nexport function matchDimensions(input: IDimensions, reference: IDimensions, useMediaDimensions = false) {\n const { width, height } = useMediaDimensions\n ? getMediaDimensions(reference)\n : reference;\n input.width = width;\n input.height = height;\n return { width, height };\n}\n", "import * as tf from '../dist/tfjs.esm';\n\nimport { ParamMapping } from './common/index';\nimport { getModelUris } from './common/getModelUris';\nimport { loadWeightMap } from './dom/index';\nimport { env } from './env/index';\n\nexport abstract class NeuralNetwork {\n constructor(name: string) {\n this._name = name;\n }\n\n protected _params: TNetParams | undefined = undefined;\n\n protected _paramMappings: ParamMapping[] = [];\n\n public _name: any;\n\n public get params(): TNetParams | undefined { return this._params; }\n\n public get paramMappings(): ParamMapping[] { return this._paramMappings; }\n\n public get isLoaded(): boolean { return !!this.params; }\n\n public getParamFromPath(paramPath: string): tf.Tensor {\n const { obj, objProp } = this.traversePropertyPath(paramPath);\n return obj[objProp];\n }\n\n public reassignParamFromPath(paramPath: string, tensor: tf.Tensor) {\n const { obj, objProp } = this.traversePropertyPath(paramPath);\n obj[objProp].dispose();\n obj[objProp] = tensor;\n }\n\n public getParamList() {\n return this._paramMappings.map(({ paramPath }) => ({\n path: paramPath,\n tensor: this.getParamFromPath(paramPath),\n }));\n }\n\n public getTrainableParams() {\n return this.getParamList().filter((param) => param.tensor instanceof tf.Variable);\n }\n\n public getFrozenParams() {\n return this.getParamList().filter((param) => !(param.tensor instanceof tf.Variable));\n }\n\n public variable() {\n this.getFrozenParams().forEach(({ path, tensor }) => {\n this.reassignParamFromPath(path, tensor.variable());\n });\n }\n\n public freeze() {\n this.getTrainableParams().forEach(({ path, tensor: variable }) => {\n const tensor = tf.tensor(variable.dataSync());\n variable.dispose();\n this.reassignParamFromPath(path, tensor);\n });\n }\n\n public dispose(throwOnRedispose = true) {\n this.getParamList().forEach((param) => {\n if (throwOnRedispose && param.tensor.isDisposed) {\n throw new Error(`param tensor has already been disposed for path ${param.path}`);\n }\n param.tensor.dispose();\n });\n this._params = undefined;\n }\n\n public serializeParams(): Float32Array {\n return new Float32Array(\n this.getParamList()\n .map(({ tensor }) => Array.from(tensor.dataSync()) as number[])\n .reduce((flat, arr) => flat.concat(arr)),\n );\n }\n\n public async load(weightsOrUrl: Float32Array | string | undefined): Promise {\n if (weightsOrUrl instanceof Float32Array) {\n this.extractWeights(weightsOrUrl);\n return;\n }\n await this.loadFromUri(weightsOrUrl);\n }\n\n public async loadFromUri(uri: string | undefined) {\n if (uri && typeof uri !== 'string') {\n throw new Error(`${this._name}.loadFromUri - expected model uri`);\n }\n const weightMap = await loadWeightMap(uri, this.getDefaultModelName());\n this.loadFromWeightMap(weightMap);\n }\n\n public async loadFromDisk(filePath: string | undefined) {\n if (filePath && typeof filePath !== 'string') {\n throw new Error(`${this._name}.loadFromDisk - expected model file path`);\n }\n const { readFile } = env.getEnv();\n const { manifestUri, modelBaseUri } = getModelUris(filePath, this.getDefaultModelName());\n const fetchWeightsFromDisk = (filePaths: string[]) => Promise.all(filePaths.map((fp) => readFile(fp).then((buf) => buf.buffer)));\n const loadWeights = tf['io'].weightsLoaderFactory(fetchWeightsFromDisk);\n const manifest = JSON.parse((await readFile(manifestUri)).toString());\n const weightMap = await loadWeights(manifest, modelBaseUri);\n this.loadFromWeightMap(weightMap);\n }\n\n public loadFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { paramMappings, params } = this.extractParamsFromWeightMap(weightMap);\n this._paramMappings = paramMappings;\n this._params = params;\n }\n\n public extractWeights(weights: Float32Array) {\n const { paramMappings, params } = this.extractParams(weights);\n this._paramMappings = paramMappings;\n this._params = params;\n }\n\n private traversePropertyPath(paramPath: string) {\n if (!this.params) {\n throw new Error('traversePropertyPath - model has no loaded params');\n }\n\n const result = paramPath.split('/').reduce((res: { nextObj: any, obj?: any, objProp?: string }, objProp) => {\n // eslint-disable-next-line no-prototype-builtins\n if (!res.nextObj.hasOwnProperty(objProp)) {\n throw new Error(`traversePropertyPath - object does not have property ${objProp}, for path ${paramPath}`);\n }\n return { obj: res.nextObj, objProp, nextObj: res.nextObj[objProp] };\n }, { nextObj: this.params });\n\n const { obj, objProp } = result;\n if (!obj || !objProp || !(obj[objProp] instanceof tf.Tensor)) {\n throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${paramPath}`);\n }\n\n return { obj, objProp };\n }\n\n protected abstract getDefaultModelName(): string\n\n // eslint-disable-next-line no-unused-vars\n protected abstract extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TNetParams, paramMappings: ParamMapping[] }\n\n // eslint-disable-next-line no-unused-vars\n protected abstract extractParams(weights: Float32Array): { params: TNetParams, paramMappings: ParamMapping[] }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { SeparableConvParams } from './types';\n\nexport function depthwiseSeparableConv(\n x: tf.Tensor4D,\n params: SeparableConvParams,\n stride: [number, number],\n): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.separableConv2d(x, params.depthwise_filter, params.pointwise_filter, stride, 'same');\n out = tf.add(out, params.bias);\n return out;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, SeparableConvParams } from '../common/index';\nimport { depthwiseSeparableConv } from '../common/depthwiseSeparableConv';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function denseBlock3(\n x: tf.Tensor4D,\n denseBlockParams: DenseBlock3Params,\n isFirstLayer = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out1 = tf.relu(\n isFirstLayer\n ? tf.add(\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, [2, 2], 'same'),\n denseBlockParams.conv0.bias,\n )\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, [2, 2]),\n ) as tf.Tensor4D;\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);\n\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D;\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);\n\n return tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D;\n });\n}\n\nexport function denseBlock4(\n x: tf.Tensor4D,\n denseBlockParams: DenseBlock4Params,\n isFirstLayer = false,\n isScaleDown = true,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out1 = tf.relu(\n isFirstLayer\n ? tf.add(\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, isScaleDown ? [2, 2] : [1, 1], 'same'),\n denseBlockParams.conv0.bias,\n )\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, isScaleDown ? [2, 2] : [1, 1]),\n ) as tf.Tensor4D;\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);\n\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D;\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);\n\n const in4 = tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D;\n const out4 = depthwiseSeparableConv(in4, denseBlockParams.conv3, [1, 1]);\n\n return tf.relu(tf.add(out1, tf.add(out2, tf.add(out3, out4)))) as tf.Tensor4D;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from './types';\n\nexport function convLayer(\n x: tf.Tensor4D,\n params: ConvParams,\n padding: 'valid' | 'same' = 'same',\n withRelu = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out = tf.add(\n tf.conv2d(x, params.filters, [1, 1], padding),\n params.bias,\n ) as tf.Tensor4D;\n\n return withRelu ? tf.relu(out) : out;\n });\n}\n", "import { ParamMapping } from './types';\n\nexport function disposeUnusedWeightTensors(weightMap: any, paramMappings: ParamMapping[]) {\n Object.keys(weightMap).forEach((path) => {\n if (!paramMappings.some((pm) => pm.originalPath === path)) {\n weightMap[path].dispose();\n }\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, ExtractWeightsFunction, ParamMapping } from './types';\n\nexport function extractConvParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvParams => {\n const filters = tf.tensor4d(\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\n [filterSize, filterSize, channelsIn, channelsOut],\n );\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return { filters, bias };\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, FCParams, ParamMapping } from './types';\n\nexport function extractFCParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (\n channelsIn: number,\n channelsOut: number,\n mappedPrefix: string,\n ): FCParams => {\n const fc_weights = tf.tensor2d(extractWeights(channelsIn * channelsOut), [channelsIn, channelsOut]);\n const fc_bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/weights` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return {\n weights: fc_weights,\n bias: fc_bias,\n };\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\n// eslint-disable-next-line no-unused-vars\nexport type ExtractWeightsFunction = (numWeights: number) => Float32Array\n\nexport type ParamMapping = {\n originalPath?: string\n paramPath: string\n}\n\nexport type ConvParams = {\n filters: tf.Tensor4D\n bias: tf.Tensor1D\n}\n\nexport type FCParams = {\n weights: tf.Tensor2D\n bias: tf.Tensor1D\n}\n\nexport class SeparableConvParams {\n // eslint-disable-next-line no-useless-constructor\n constructor(\n // eslint-disable-next-line no-unused-vars\n public depthwise_filter: tf.Tensor4D,\n // eslint-disable-next-line no-unused-vars\n public pointwise_filter: tf.Tensor4D,\n // eslint-disable-next-line no-unused-vars\n public bias: tf.Tensor1D,\n // eslint-disable-next-line no-empty-function\n ) {}\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, ParamMapping, SeparableConvParams } from './types';\n\nexport function extractSeparableConvParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (channelsIn: number, channelsOut: number, mappedPrefix: string): SeparableConvParams => {\n const depthwise_filter = tf.tensor4d(extractWeights(3 * 3 * channelsIn), [3, 3, channelsIn, 1]);\n const pointwise_filter = tf.tensor4d(extractWeights(channelsIn * channelsOut), [1, 1, channelsIn, channelsOut]);\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/depthwise_filter` },\n { paramPath: `${mappedPrefix}/pointwise_filter` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return new SeparableConvParams(\n depthwise_filter,\n pointwise_filter,\n bias,\n );\n };\n}\n\nexport function loadSeparableConvParamsFactory(\n // eslint-disable-next-line no-unused-vars\n extractWeightEntry: (originalPath: string, paramRank: number) => T,\n) {\n return (prefix: string): SeparableConvParams => {\n const depthwise_filter = extractWeightEntry(`${prefix}/depthwise_filter`, 4);\n const pointwise_filter = extractWeightEntry(`${prefix}/pointwise_filter`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n\n return new SeparableConvParams(\n depthwise_filter,\n pointwise_filter,\n bias,\n );\n };\n}\n", "import { isTensor } from '../utils/index';\nimport { ParamMapping } from './types';\n\nexport function extractWeightEntryFactory(weightMap: any, paramMappings: ParamMapping[]) {\n return (originalPath: string, paramRank: number, mappedPath?: string) => {\n const tensor = weightMap[originalPath];\n\n if (!isTensor(tensor, paramRank)) {\n throw new Error(`expected weightMap[${originalPath}] to be a Tensor${paramRank}D, instead have ${tensor}`);\n }\n\n paramMappings.push(\n { originalPath, paramPath: mappedPath || originalPath },\n );\n\n return tensor;\n };\n}\n", "export function extractWeightsFactory(weights: Float32Array) {\n let remainingWeights = weights;\n\n function extractWeights(numWeights: number): Float32Array {\n const ret = remainingWeights.slice(0, numWeights);\n remainingWeights = remainingWeights.slice(numWeights);\n return ret;\n }\n\n function getRemainingWeights(): Float32Array {\n return remainingWeights;\n }\n\n return {\n extractWeights,\n getRemainingWeights,\n };\n}\n", "import { extractConvParamsFactory, extractSeparableConvParamsFactory, ExtractWeightsFunction, ParamMapping } from '../common/index';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n function extractDenseBlock3Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer = false): DenseBlock3Params {\n const conv0 = isFirstLayer\n ? extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv0`)\n : extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/conv0`);\n const conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv1`);\n const conv2 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv2`);\n\n return { conv0, conv1, conv2 };\n }\n\n function extractDenseBlock4Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer = false): DenseBlock4Params {\n const { conv0, conv1, conv2 } = extractDenseBlock3Params(channelsIn, channelsOut, mappedPrefix, isFirstLayer);\n const conv3 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv3`);\n\n return {\n conv0, conv1, conv2, conv3,\n };\n }\n\n return {\n extractDenseBlock3Params,\n extractDenseBlock4Params,\n };\n}\n", "import { extractWeightsFactory, ParamMapping } from '../common/index';\nimport { extractorsFactory } from './extractorsFactory';\nimport { FaceFeatureExtractorParams } from './types';\n\nexport function extractParams(weights: Float32Array): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractDenseBlock4Params,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const dense0 = extractDenseBlock4Params(3, 32, 'dense0', true);\n const dense1 = extractDenseBlock4Params(32, 64, 'dense1');\n const dense2 = extractDenseBlock4Params(64, 128, 'dense2');\n const dense3 = extractDenseBlock4Params(128, 256, 'dense3');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: {\n dense0, dense1, dense2, dense3,\n },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from './types';\n\n// eslint-disable-next-line no-unused-vars\nexport function loadConvParamsFactory(extractWeightEntry: (originalPath: string, paramRank: number) => T) {\n return (prefix: string): ConvParams => {\n const filters = extractWeightEntry(`${prefix}/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n\n return { filters, bias };\n };\n}\n", "import { extractWeightEntryFactory, loadSeparableConvParamsFactory, ParamMapping } from '../common/index';\nimport { loadConvParamsFactory } from '../common/loadConvParamsFactory';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n const extractConvParams = loadConvParamsFactory(extractWeightEntry);\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n\n function extractDenseBlock3Params(prefix: string, isFirstLayer = false): DenseBlock3Params {\n const conv0 = isFirstLayer\n ? extractConvParams(`${prefix}/conv0`)\n : extractSeparableConvParams(`${prefix}/conv0`);\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`);\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`);\n\n return { conv0, conv1, conv2 };\n }\n\n function extractDenseBlock4Params(prefix: string, isFirstLayer = false): DenseBlock4Params {\n const conv0 = isFirstLayer\n ? extractConvParams(`${prefix}/conv0`)\n : extractSeparableConvParams(`${prefix}/conv0`);\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`);\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`);\n const conv3 = extractSeparableConvParams(`${prefix}/conv3`);\n\n return {\n conv0, conv1, conv2, conv3,\n };\n }\n\n return {\n extractDenseBlock3Params,\n extractDenseBlock4Params,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, ParamMapping } from '../common/index';\nimport { loadParamsFactory } from './loadParamsFactory';\nimport { FaceFeatureExtractorParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractDenseBlock4Params,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const params = {\n dense0: extractDenseBlock4Params('dense0', true),\n dense1: extractDenseBlock4Params('dense1'),\n dense2: extractDenseBlock4Params('dense2'),\n dense3: extractDenseBlock4Params('dense3'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { denseBlock4 } from './denseBlock';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { FaceFeatureExtractorParams, IFaceFeatureExtractor } from './types';\n\nexport class FaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\n constructor() {\n super('FaceFeatureExtractor');\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('FaceFeatureExtractor - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(255) as tf.Tensor4D;\n\n let out = denseBlock4(normalized, params.dense0, true);\n out = denseBlock4(out, params.dense1);\n out = denseBlock4(out, params.dense2);\n out = denseBlock4(out, params.dense3);\n out = tf.avgPool(out, [7, 7], [2, 2], 'valid');\n\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'face_feature_extractor_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FCParams } from './types';\n\nexport function fullyConnectedLayer(\n x: tf.Tensor2D,\n params: FCParams,\n): tf.Tensor2D {\n return tf.tidy(() => tf.add(\n tf.matMul(x, params.weights),\n params.bias,\n ));\n}\n", "import { extractFCParamsFactory, extractWeightsFactory, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParams(weights: Float32Array, channelsIn: number, channelsOut: number): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings);\n\n const fc = extractFCParams(channelsIn, channelsOut, 'fc');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { fc },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractFcParams(prefix: string): FCParams {\n const weights = extractWeightEntry(`${prefix}/weights`, 2);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { weights, bias };\n }\n\n const params = {\n fc: extractFcParams('fc'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function seperateWeightMaps(weightMap: tf.NamedTensorMap) {\n const featureExtractorMap: tf.NamedTensorMap = {};\n const classifierMap: tf.NamedTensorMap = {};\n\n Object.keys(weightMap).forEach((key) => {\n const map = key.startsWith('fc') ? classifierMap : featureExtractorMap;\n map[key] = weightMap[key];\n });\n\n return { featureExtractorMap, classifierMap };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { NetInput } from '../dom/index';\nimport { FaceFeatureExtractorParams, IFaceFeatureExtractor, TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { NetParams } from './types';\nimport { seperateWeightMaps } from './util';\n\nexport abstract class FaceProcessor<\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\n>\n extends NeuralNetwork {\n protected _faceFeatureExtractor: IFaceFeatureExtractor;\n\n constructor(_name: string, faceFeatureExtractor: IFaceFeatureExtractor) {\n super(_name);\n this._faceFeatureExtractor = faceFeatureExtractor;\n }\n\n public get faceFeatureExtractor(): IFaceFeatureExtractor {\n return this._faceFeatureExtractor;\n }\n\n protected abstract override getDefaultModelName(): string\n\n protected abstract getClassifierChannelsIn(): number\n\n protected abstract getClassifierChannelsOut(): number\n\n public runNet(input: NetInput | tf.Tensor4D): tf.Tensor2D {\n const { params } = this;\n\n if (!params) {\n throw new Error(`${this._name} - load model before inference`);\n }\n\n return tf.tidy(() => {\n const bottleneckFeatures = input instanceof NetInput\n ? this.faceFeatureExtractor.forwardInput(input)\n : input;\n return fullyConnectedLayer(bottleneckFeatures.as2D(bottleneckFeatures.shape[0], -1), params.fc);\n });\n }\n\n public override dispose(throwOnRedispose = true) {\n this.faceFeatureExtractor.dispose(throwOnRedispose);\n super.dispose(throwOnRedispose);\n }\n\n public loadClassifierParams(weights: Float32Array) {\n const { params, paramMappings } = this.extractClassifierParams(weights);\n this._params = params;\n this._paramMappings = paramMappings;\n }\n\n public extractClassifierParams(weights: Float32Array) {\n return extractParams(weights, this.getClassifierChannelsIn(), this.getClassifierChannelsOut());\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap);\n\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap);\n\n return extractParamsFromWeightMap(classifierMap);\n }\n\n protected extractParams(weights: Float32Array) {\n const cIn = this.getClassifierChannelsIn();\n const cOut = this.getClassifierChannelsOut();\n const classifierWeightSize = (cOut * cIn) + cOut;\n\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize);\n const classifierWeights = weights.slice(weights.length - classifierWeightSize);\n\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights);\n return this.extractClassifierParams(classifierWeights);\n }\n}\n", "export const FACE_EXPRESSION_LABELS = ['neutral', 'happy', 'sad', 'angry', 'fearful', 'disgusted', 'surprised'];\n\nexport class FaceExpressions {\n public neutral = 0;\n public happy = 0;\n public sad = 0;\n public angry = 0;\n public fearful = 0;\n public disgusted = 0;\n public surprised = 0;\n\n constructor(probabilities: number[] | Float32Array) {\n if (probabilities.length !== 7) {\n throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${probabilities.length}`);\n }\n\n FACE_EXPRESSION_LABELS.forEach((expression, idx) => {\n this[expression] = probabilities[idx];\n });\n }\n\n asSortedArray() {\n return FACE_EXPRESSION_LABELS\n .map((expression) => ({ expression, probability: this[expression] as number }))\n .sort((e0, e1) => e1.probability - e0.probability);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\nimport { FaceExpressions } from './FaceExpressions';\n\nexport class FaceExpressionNet extends FaceProcessor {\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\n super('FaceExpressionNet', faceFeatureExtractor);\n }\n\n public forwardInput(input: NetInput | tf.Tensor4D): tf.Tensor2D {\n return tf.tidy(() => tf.softmax(this.runNet(input)));\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async predictExpressions(input: TNetInput) {\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput);\n const probabilitesByBatch = await Promise.all(tf.unstack(out).map(async (t) => {\n const data = t.dataSync();\n t.dispose();\n return data;\n }));\n out.dispose();\n\n const predictionsByBatch = probabilitesByBatch\n .map((probabilites) => new FaceExpressions(probabilites as Float32Array));\n\n return netInput.isBatchInput\n ? predictionsByBatch\n : predictionsByBatch[0];\n }\n\n protected getDefaultModelName(): string {\n return 'face_expression_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 256;\n }\n\n protected getClassifierChannelsOut(): number {\n return 7;\n }\n}\n", "import { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\n\nexport type WithFaceExpressions = TSource & { expressions: FaceExpressions }\n\nexport function isWithFaceExpressions(obj: any): obj is WithFaceExpressions<{}> {\n return obj.expressions instanceof FaceExpressions;\n}\n\nexport function extendWithFaceExpressions(sourceObj: TSource, expressions: FaceExpressions): WithFaceExpressions {\n const extension = { expressions };\n return { ...sourceObj, ...extension };\n}\n", "import { IPoint, Point } from '../classes/index';\nimport { FaceExpressions } from '../faceExpressionNet/index';\nimport { isWithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\nimport { round } from '../utils/index';\nimport { DrawTextField } from './DrawTextField';\n\nexport type DrawFaceExpressionsInput = FaceExpressions | WithFaceExpressions<{}>\n\nexport function drawFaceExpressions(canvasArg: string | HTMLCanvasElement, faceExpressions: DrawFaceExpressionsInput | Array, minConfidence = 0.1, textFieldAnchor?: IPoint) {\n const faceExpressionsArray = Array.isArray(faceExpressions) ? faceExpressions : [faceExpressions];\n\n faceExpressionsArray.forEach((e) => {\n // eslint-disable-next-line no-nested-ternary\n const expr = e instanceof FaceExpressions\n ? e\n : (isWithFaceExpressions(e) ? e.expressions : undefined);\n if (!expr) {\n throw new Error('drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof');\n }\n\n const sorted = expr.asSortedArray();\n const resultsToDisplay = sorted.filter((exprLocal) => exprLocal.probability > minConfidence);\n\n const anchor = isWithFaceDetection(e)\n ? e.detection.box.bottomLeft\n : (textFieldAnchor || new Point(0, 0));\n\n const drawTextField = new DrawTextField(\n resultsToDisplay.map((exprLocal) => `${exprLocal.expression} (${round(exprLocal.probability)})`),\n anchor,\n );\n drawTextField.draw(canvasArg);\n });\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { isWithFaceDetection, WithFaceDetection } from './WithFaceDetection';\n\nexport type WithFaceLandmarks<\n TSource extends WithFaceDetection<{}>,\n TFaceLandmarks extends FaceLandmarks = FaceLandmarks68\n> = TSource & {\n landmarks: TFaceLandmarks;\n unshiftedLandmarks: TFaceLandmarks;\n alignedRect: FaceDetection;\n angle: {\n roll: number | undefined;\n pitch: number | undefined;\n yaw: number | undefined;\n };\n};\n\nexport function isWithFaceLandmarks(\n obj: any,\n): obj is WithFaceLandmarks, FaceLandmarks> {\n return (\n isWithFaceDetection(obj)\n // eslint-disable-next-line dot-notation\n && obj['landmarks'] instanceof FaceLandmarks\n // eslint-disable-next-line dot-notation\n && obj['unshiftedLandmarks'] instanceof FaceLandmarks\n // eslint-disable-next-line dot-notation\n && obj['alignedRect'] instanceof FaceDetection\n );\n}\n\nfunction calculateFaceAngle(mesh) {\n // Helper to convert radians to degrees\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n const degrees = (radians) => (radians * 180) / Math.PI;\n const calcLengthBetweenTwoPoints = (a, b) => Math.sqrt((a._x - b._x) ** 2 + (a._y - b._y) ** 2);\n\n const angle = {\n roll: undefined,\n pitch: undefined,\n yaw: undefined,\n };\n\n const calcYaw = (leftPoint, midPoint, rightPoint) => {\n // Calc x-distance from left side of the face (\"ear\") to facial midpoint (\"nose\")\n const leftToMidpoint = Math.floor(leftPoint._x - midPoint._x);\n // Calc x-distance from facial midpoint (\"nose\") to the right side of the face (\"ear\")\n const rightToMidpoint = Math.floor(midPoint._x - rightPoint._x);\n // Difference in distances coincidentally approximates to angles\n return leftToMidpoint - rightToMidpoint;\n };\n\n const calcRoll = (lever, pivot) => {\n // When rolling, the head seems to pivot from the nose/lips/chin area.\n // So, we'll choose any two points from the facial midline, where the first point should be the pivot, and the other \"lever\"\n // Plan/Execution: get the hypotenuse & opposite sides of a 90deg triangle ==> Calculate angle in radians\n const hypotenuse = Math.hypot(pivot._x - lever._x, pivot._y - lever._y);\n const opposite = pivot._y - lever._y;\n const angleInRadians = Math.asin(opposite / hypotenuse);\n const angleInDegrees = degrees(angleInRadians);\n const normalizeAngle = Math.floor(90 - angleInDegrees);\n // If lever more to the left of the pivot, then we're tilting left\n // \"-\" is negative direction. \"+\", or absence of a sign is positive direction\n const tiltDirection = pivot._x - lever._x < 0 ? -1 : 1;\n const result = normalizeAngle * tiltDirection;\n return result;\n };\n\n const calcPitch = (leftPoint, midPoint, rightPoint) => {\n // Theory: While pitching, the nose is the most salient point --> That's what we'll use to make a trianle.\n // The \"base\" is between point that don't move when we pitch our head (i.e. an imaginary line running ear to ear through the nose).\n // Executuin: Get the opposite & adjacent lengths of the triangle from the ear's perspective. Use it to get angle.\n\n const base = calcLengthBetweenTwoPoints(leftPoint, rightPoint);\n // adjecent is base/2 technically.\n const baseCoords = {\n _x: (leftPoint._x + rightPoint._x) / 2,\n _y: (leftPoint._y + rightPoint._y) / 2,\n };\n const midToBaseLength = calcLengthBetweenTwoPoints(midPoint, baseCoords);\n const angleInRadians = Math.atan(midToBaseLength / base);\n const angleInDegrees = Math.floor(degrees(angleInRadians));\n // Account for directionality.\n // pitch forwards (_i.e. tilting your head forwards) is positive (or no sign); backward is negative.\n const direction = baseCoords._y - midPoint._y < 0 ? -1 : 1;\n const result = angleInDegrees * direction;\n return result;\n };\n\n if (!mesh || !mesh._positions || mesh._positions.length !== 68) return angle;\n const pt = mesh._positions;\n angle.roll = calcRoll(pt[27], pt[66]);\n angle.pitch = calcPitch(pt[14], pt[30], pt[2]);\n angle.yaw = calcYaw(pt[14], pt[33], pt[2]);\n return angle;\n}\n\nexport function extendWithFaceLandmarks, TFaceLandmarks extends FaceLandmarks = FaceLandmarks68>(\n sourceObj: TSource,\n unshiftedLandmarks: TFaceLandmarks,\n): WithFaceLandmarks {\n const { box: shift } = sourceObj.detection;\n const landmarks = unshiftedLandmarks.shiftBy(shift.x, shift.y);\n const rect = landmarks.align();\n const { imageDims } = sourceObj.detection;\n const alignedRect = new FaceDetection(\n sourceObj.detection.score,\n rect.rescale(imageDims.reverse()),\n imageDims,\n );\n const angle = calculateFaceAngle(unshiftedLandmarks);\n const extension = { landmarks, unshiftedLandmarks, alignedRect, angle };\n return { ...sourceObj, ...extension };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { IPoint } from '../classes/index';\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { drawContour } from './drawContour';\n\nexport interface IDrawFaceLandmarksOptions {\n drawLines?: boolean\n drawPoints?: boolean\n lineWidth?: number\n pointSize?: number\n lineColor?: string\n pointColor?: string\n}\n\nexport class DrawFaceLandmarksOptions {\n public drawLines: boolean;\n\n public drawPoints: boolean;\n\n public lineWidth: number;\n\n public pointSize: number;\n\n public lineColor: string;\n\n public pointColor: string;\n\n constructor(options: IDrawFaceLandmarksOptions = {}) {\n const {\n drawLines = true, drawPoints = true, lineWidth, lineColor, pointSize, pointColor,\n } = options;\n this.drawLines = drawLines;\n this.drawPoints = drawPoints;\n this.lineWidth = lineWidth || 1;\n this.pointSize = pointSize || 2;\n this.lineColor = lineColor || 'rgba(0, 255, 255, 1)';\n this.pointColor = pointColor || 'rgba(255, 0, 255, 1)';\n }\n}\n\nexport class DrawFaceLandmarks {\n public faceLandmarks: FaceLandmarks;\n\n public options: DrawFaceLandmarksOptions;\n\n constructor(\n faceLandmarks: FaceLandmarks,\n options: IDrawFaceLandmarksOptions = {},\n ) {\n this.faceLandmarks = faceLandmarks;\n this.options = new DrawFaceLandmarksOptions(options);\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const ctx = getContext2dOrThrow(canvasArg);\n\n const {\n drawLines, drawPoints, lineWidth, lineColor, pointSize, pointColor,\n } = this.options;\n\n if (drawLines && this.faceLandmarks instanceof FaceLandmarks68) {\n ctx.strokeStyle = lineColor;\n ctx.lineWidth = lineWidth;\n drawContour(ctx, this.faceLandmarks.getJawOutline());\n drawContour(ctx, this.faceLandmarks.getLeftEyeBrow());\n drawContour(ctx, this.faceLandmarks.getRightEyeBrow());\n drawContour(ctx, this.faceLandmarks.getNose());\n drawContour(ctx, this.faceLandmarks.getLeftEye(), true);\n drawContour(ctx, this.faceLandmarks.getRightEye(), true);\n drawContour(ctx, this.faceLandmarks.getMouth(), true);\n }\n\n if (drawPoints) {\n ctx.strokeStyle = pointColor;\n ctx.fillStyle = pointColor;\n\n const drawPoint = (pt: IPoint) => {\n ctx.beginPath();\n ctx.arc(pt.x, pt.y, pointSize, 0, 2 * Math.PI);\n ctx.fill();\n };\n this.faceLandmarks.positions.forEach(drawPoint);\n }\n }\n}\n\nexport type DrawFaceLandmarksInput = FaceLandmarks | WithFaceLandmarks>\n\nexport function drawFaceLandmarks(\n canvasArg: string | HTMLCanvasElement,\n faceLandmarks: DrawFaceLandmarksInput | Array,\n) {\n const faceLandmarksArray = Array.isArray(faceLandmarks) ? faceLandmarks : [faceLandmarks];\n faceLandmarksArray.forEach((f) => {\n // eslint-disable-next-line no-nested-ternary\n const landmarks = f instanceof FaceLandmarks\n ? f\n : (isWithFaceLandmarks(f) ? f.landmarks : undefined);\n if (!landmarks) {\n throw new Error('drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof');\n }\n\n new DrawFaceLandmarks(landmarks).draw(canvasArg);\n });\n}\n", "import { extractConvParamsFactory, extractSeparableConvParamsFactory, extractWeightsFactory } from '../common/index';\nimport { ExtractWeightsFunction, ParamMapping } from '../common/types';\nimport { range } from '../utils/index';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n function extractReductionBlockParams(channelsIn: number, channelsOut: number, mappedPrefix: string): ReductionBlockParams {\n const separable_conv0 = extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/separable_conv1`);\n const expansion_conv = extractConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/expansion_conv`);\n\n return { separable_conv0, separable_conv1, expansion_conv };\n }\n\n function extractMainBlockParams(channels: number, mappedPrefix: string): MainBlockParams {\n const separable_conv0 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv1`);\n const separable_conv2 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv2`);\n\n return { separable_conv0, separable_conv1, separable_conv2 };\n }\n\n return {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n };\n}\n\nexport function extractParams(weights: Float32Array, numMainBlocks: number): { params: TinyXceptionParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const entry_flow_conv_in = extractConvParams(3, 32, 3, 'entry_flow/conv_in');\n const entry_flow_reduction_block_0 = extractReductionBlockParams(32, 64, 'entry_flow/reduction_block_0');\n const entry_flow_reduction_block_1 = extractReductionBlockParams(64, 128, 'entry_flow/reduction_block_1');\n\n const entry_flow = {\n conv_in: entry_flow_conv_in,\n reduction_block_0: entry_flow_reduction_block_0,\n reduction_block_1: entry_flow_reduction_block_1,\n };\n\n const middle_flow = {};\n range(numMainBlocks, 0, 1).forEach((idx) => {\n middle_flow[`main_block_${idx}`] = extractMainBlockParams(128, `middle_flow/main_block_${idx}`);\n });\n\n const exit_flow_reduction_block = extractReductionBlockParams(128, 256, 'exit_flow/reduction_block');\n const exit_flow_separable_conv = extractSeparableConvParams(256, 512, 'exit_flow/separable_conv');\n\n const exit_flow = {\n reduction_block: exit_flow_reduction_block,\n separable_conv: exit_flow_separable_conv,\n };\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { entry_flow, middle_flow, exit_flow },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, loadSeparableConvParamsFactory, ParamMapping } from '../common/index';\nimport { loadConvParamsFactory } from '../common/loadConvParamsFactory';\nimport { range } from '../utils/index';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n const extractConvParams = loadConvParamsFactory(extractWeightEntry);\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n\n function extractReductionBlockParams(mappedPrefix: string): ReductionBlockParams {\n const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`);\n const expansion_conv = extractConvParams(`${mappedPrefix}/expansion_conv`);\n\n return { separable_conv0, separable_conv1, expansion_conv };\n }\n\n function extractMainBlockParams(mappedPrefix: string): MainBlockParams {\n const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`);\n const separable_conv2 = extractSeparableConvParams(`${mappedPrefix}/separable_conv2`);\n\n return { separable_conv0, separable_conv1, separable_conv2 };\n }\n\n return {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n numMainBlocks: number,\n): { params: TinyXceptionParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const entry_flow_conv_in = extractConvParams('entry_flow/conv_in');\n const entry_flow_reduction_block_0 = extractReductionBlockParams('entry_flow/reduction_block_0');\n const entry_flow_reduction_block_1 = extractReductionBlockParams('entry_flow/reduction_block_1');\n\n const entry_flow = {\n conv_in: entry_flow_conv_in,\n reduction_block_0: entry_flow_reduction_block_0,\n reduction_block_1: entry_flow_reduction_block_1,\n };\n\n const middle_flow = {};\n range(numMainBlocks, 0, 1).forEach((idx) => {\n middle_flow[`main_block_${idx}`] = extractMainBlockParams(`middle_flow/main_block_${idx}`);\n });\n\n const exit_flow_reduction_block = extractReductionBlockParams('exit_flow/reduction_block');\n const exit_flow_separable_conv = extractSeparableConvParams('exit_flow/separable_conv');\n\n const exit_flow = {\n reduction_block: exit_flow_reduction_block,\n separable_conv: exit_flow_separable_conv,\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params: { entry_flow, middle_flow, exit_flow }, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, depthwiseSeparableConv } from '../common/index';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { range } from '../utils/index';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction conv(x: tf.Tensor4D, params: ConvParams, stride: [number, number]): tf.Tensor4D {\n return tf.add(tf.conv2d(x, params.filters, stride, 'same'), params.bias);\n}\n\nfunction reductionBlock(x: tf.Tensor4D, params: ReductionBlockParams, isActivateInput = true): tf.Tensor4D {\n let out = isActivateInput ? tf.relu(x) : x;\n out = depthwiseSeparableConv(out, params.separable_conv0, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv1, [1, 1]);\n out = tf.maxPool(out, [3, 3], [2, 2], 'same');\n out = tf.add(out, conv(x, params.expansion_conv, [2, 2]));\n return out;\n}\n\nfunction mainBlock(x: tf.Tensor4D, params: MainBlockParams): tf.Tensor4D {\n let out = depthwiseSeparableConv(tf.relu(x), params.separable_conv0, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv1, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv2, [1, 1]);\n out = tf.add(out, x);\n return out;\n}\n\nexport class TinyXception extends NeuralNetwork {\n private _numMainBlocks: number;\n\n constructor(numMainBlocks: number) {\n super('TinyXception');\n this._numMainBlocks = numMainBlocks;\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n if (!params) {\n throw new Error('TinyXception - load model before inference');\n }\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(255) as tf.Tensor4D;\n let out = tf.relu(conv(normalized, params.entry_flow.conv_in, [2, 2]));\n out = reductionBlock(out, params.entry_flow.reduction_block_0, false);\n out = reductionBlock(out, params.entry_flow.reduction_block_1);\n range(this._numMainBlocks, 0, 1).forEach((idx) => {\n out = mainBlock(out, params.middle_flow[`main_block_${idx}`]);\n });\n out = reductionBlock(out, params.exit_flow.reduction_block);\n out = tf.relu(depthwiseSeparableConv(out, params.exit_flow.separable_conv, [1, 1]));\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'tiny_xception_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap, this._numMainBlocks);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights, this._numMainBlocks);\n }\n}\n", "import { extractFCParamsFactory, extractWeightsFactory, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings);\n\n const age = extractFCParams(512, 1, 'fc/age');\n const gender = extractFCParams(512, 2, 'fc/gender');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { fc: { age, gender } },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractFcParams(prefix: string): FCParams {\n const weights = extractWeightEntry(`${prefix}/weights`, 2);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { weights, bias };\n }\n\n const params = {\n fc: {\n age: extractFcParams('fc/age'),\n gender: extractFcParams('fc/gender'),\n },\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FCParams } from '../common/index';\n\n// eslint-disable-next-line no-shadow\nexport enum Gender {\n // eslint-disable-next-line no-unused-vars\n FEMALE = 'female',\n // eslint-disable-next-line no-unused-vars\n MALE = 'male'\n}\n\nexport type AgeAndGenderPrediction = {\n age: number\n gender: Gender\n genderProbability: number\n}\n\nexport type NetOutput = { age: tf.Tensor1D, gender: tf.Tensor2D }\n\nexport type NetParams = {\n fc: {\n age: FCParams\n gender: FCParams\n }\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { seperateWeightMaps } from '../faceProcessor/util';\nimport { TinyXception } from '../xception/TinyXception';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { AgeAndGenderPrediction, Gender, NetOutput, NetParams } from './types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\n\nexport class AgeGenderNet extends NeuralNetwork {\n private _faceFeatureExtractor: TinyXception;\n\n constructor(faceFeatureExtractor: TinyXception = new TinyXception(2)) {\n super('AgeGenderNet');\n this._faceFeatureExtractor = faceFeatureExtractor;\n }\n\n public get faceFeatureExtractor(): TinyXception {\n return this._faceFeatureExtractor;\n }\n\n public runNet(input: NetInput | tf.Tensor4D): NetOutput {\n const { params } = this;\n\n if (!params) {\n throw new Error(`${this._name} - load model before inference`);\n }\n\n return tf.tidy(() => {\n const bottleneckFeatures = input instanceof NetInput\n ? this.faceFeatureExtractor.forwardInput(input)\n : input;\n\n const pooled = tf.avgPool(bottleneckFeatures, [7, 7], [2, 2], 'valid').as2D(bottleneckFeatures.shape[0], -1);\n const age = fullyConnectedLayer(pooled, params.fc.age).as1D();\n const gender = fullyConnectedLayer(pooled, params.fc.gender);\n return { age, gender };\n });\n }\n\n public forwardInput(input: NetInput | tf.Tensor4D): NetOutput {\n return tf.tidy(() => {\n const { age, gender } = this.runNet(input);\n return { age, gender: tf.softmax(gender) };\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async predictAgeAndGender(input: TNetInput): Promise {\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput);\n\n const ages = tf.unstack(out.age);\n const genders = tf.unstack(out.gender);\n const ageAndGenderTensors = ages.map((ageTensor, i) => ({\n ageTensor,\n genderTensor: genders[i],\n }));\n\n const predictionsByBatch = await Promise.all(\n ageAndGenderTensors.map(async ({ ageTensor, genderTensor }) => {\n const age = (ageTensor.dataSync())[0];\n const probMale = (genderTensor.dataSync())[0];\n const isMale = probMale > 0.5;\n const gender = isMale ? Gender.MALE : Gender.FEMALE;\n const genderProbability = isMale ? probMale : (1 - probMale);\n\n ageTensor.dispose();\n genderTensor.dispose();\n return { age, gender, genderProbability };\n }),\n );\n out.age.dispose();\n out.gender.dispose();\n\n return netInput.isBatchInput ? predictionsByBatch as AgeAndGenderPrediction[] : predictionsByBatch[0] as AgeAndGenderPrediction;\n }\n\n protected getDefaultModelName(): string {\n return 'age_gender_model';\n }\n\n public override dispose(throwOnRedispose = true) {\n this.faceFeatureExtractor.dispose(throwOnRedispose);\n super.dispose(throwOnRedispose);\n }\n\n public loadClassifierParams(weights: Float32Array) {\n const { params, paramMappings } = this.extractClassifierParams(weights);\n this._params = params;\n this._paramMappings = paramMappings;\n }\n\n public extractClassifierParams(weights: Float32Array) {\n return extractParams(weights);\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap);\n\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap);\n\n return extractParamsFromWeightMap(classifierMap);\n }\n\n protected extractParams(weights: Float32Array) {\n const classifierWeightSize = (512 * 1 + 1) + (512 * 2 + 2);\n\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize);\n const classifierWeights = weights.slice(weights.length - classifierWeightSize);\n\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights);\n return this.extractClassifierParams(classifierWeights);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { IDimensions, Point } from '../classes/index';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { FaceFeatureExtractorParams, TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\nimport { isEven } from '../utils/index';\n\nexport abstract class FaceLandmark68NetBase<\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\n>\n extends FaceProcessor {\n public postProcess(output: tf.Tensor2D, inputSize: number, originalDimensions: IDimensions[]): tf.Tensor2D {\n const inputDimensions = originalDimensions.map(({ width, height }) => {\n const scale = inputSize / Math.max(height, width);\n return {\n width: width * scale,\n height: height * scale,\n };\n });\n\n const batchSize = inputDimensions.length;\n\n return tf.tidy(() => {\n const createInterleavedTensor = (fillX: number, fillY: number) => tf.stack([tf.fill([68], fillX, 'float32'), tf.fill([68], fillY, 'float32')], 1).as2D(1, 136).as1D();\n\n // eslint-disable-next-line no-unused-vars\n const getPadding = (batchIdx: number, cond: (w: number, h: number) => boolean): number => {\n const { width, height } = inputDimensions[batchIdx];\n return cond(width, height) ? Math.abs(width - height) / 2 : 0;\n };\n\n const getPaddingX = (batchIdx: number) => getPadding(batchIdx, (w, h) => w < h);\n const getPaddingY = (batchIdx: number) => getPadding(batchIdx, (w, h) => h < w);\n\n const landmarkTensors = output\n .mul(tf.fill([batchSize, 136], inputSize, 'float32'))\n .sub(tf.stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(\n getPaddingX(batchIdx),\n getPaddingY(batchIdx),\n ))))\n .div(tf.stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(\n inputDimensions[batchIdx].width,\n inputDimensions[batchIdx].height,\n ))));\n\n return landmarkTensors as tf.Tensor2D;\n });\n }\n\n public forwardInput(input: NetInput): tf.Tensor2D {\n return tf.tidy(() => {\n const out = this.runNet(input);\n return this.postProcess(\n out,\n input.inputSize as number,\n input.inputDimensions.map(([height, width]) => ({ height, width })),\n );\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async detectLandmarks(input: TNetInput): Promise {\n const netInput = await toNetInput(input);\n const landmarkTensors = tf.tidy(\n () => tf.unstack(this.forwardInput(netInput)),\n );\n\n const landmarksForBatch = await Promise.all(landmarkTensors.map(\n async (landmarkTensor, batchIdx) => {\n const landmarksArray = Array.from(landmarkTensor.dataSync());\n const xCoords = landmarksArray.filter((_, i) => isEven(i));\n const yCoords = landmarksArray.filter((_, i) => !isEven(i));\n\n return new FaceLandmarks68(\n Array(68).fill(0).map((_, i) => new Point(xCoords[i] as number, yCoords[i] as number)),\n {\n height: netInput.getInputHeight(batchIdx),\n width: netInput.getInputWidth(batchIdx),\n },\n );\n },\n ));\n\n landmarkTensors.forEach((t) => t.dispose());\n\n return netInput.isBatchInput ? landmarksForBatch as FaceLandmarks68[] : landmarksForBatch[0] as FaceLandmarks68;\n }\n\n protected getClassifierChannelsOut(): number {\n return 136;\n }\n}\n", "import { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\n\nexport class FaceLandmark68Net extends FaceLandmark68NetBase {\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\n super('FaceLandmark68Net', faceFeatureExtractor);\n }\n\n protected getDefaultModelName(): string {\n return 'face_landmark_68_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 256;\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, ParamMapping } from '../common/index';\nimport { loadParamsFactory } from './loadParamsFactory';\nimport { TinyFaceFeatureExtractorParams } from './types';\n\nexport function extractParamsFromWeightMapTiny(\n weightMap: tf.NamedTensorMap,\n): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractDenseBlock3Params,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const params = {\n dense0: extractDenseBlock3Params('dense0', true),\n dense1: extractDenseBlock3Params('dense1'),\n dense2: extractDenseBlock3Params('dense2'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import { extractWeightsFactory, ParamMapping } from '../common/index';\nimport { extractorsFactory } from './extractorsFactory';\nimport { TinyFaceFeatureExtractorParams } from './types';\n\nexport function extractParamsTiny(weights: Float32Array): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractDenseBlock3Params,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const dense0 = extractDenseBlock3Params(3, 32, 'dense0', true);\n const dense1 = extractDenseBlock3Params(32, 64, 'dense1');\n const dense2 = extractDenseBlock3Params(64, 128, 'dense2');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { dense0, dense1, dense2 },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { denseBlock3 } from './denseBlock';\nimport { extractParamsFromWeightMapTiny } from './extractParamsFromWeightMapTiny';\nimport { extractParamsTiny } from './extractParamsTiny';\nimport { IFaceFeatureExtractor, TinyFaceFeatureExtractorParams } from './types';\n\nexport class TinyFaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\n constructor() {\n super('TinyFaceFeatureExtractor');\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('TinyFaceFeatureExtractor - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(255) as tf.Tensor4D;\n\n let out = denseBlock3(normalized, params.dense0, true);\n out = denseBlock3(out, params.dense1);\n out = denseBlock3(out, params.dense2);\n out = tf.avgPool(out, [14, 14], [2, 2], 'valid');\n\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'face_feature_extractor_tiny_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMapTiny(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParamsTiny(weights);\n }\n}\n", "import { TinyFaceFeatureExtractor } from '../faceFeatureExtractor/TinyFaceFeatureExtractor';\nimport { TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\n\nexport class FaceLandmark68TinyNet extends FaceLandmark68NetBase {\n constructor(faceFeatureExtractor: TinyFaceFeatureExtractor = new TinyFaceFeatureExtractor()) {\n super('FaceLandmark68TinyNet', faceFeatureExtractor);\n }\n\n protected getDefaultModelName(): string {\n return 'face_landmark_68_tiny_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 128;\n }\n}\n", "import { FaceLandmark68Net } from './FaceLandmark68Net';\n\nexport * from './FaceLandmark68Net';\nexport * from './FaceLandmark68TinyNet';\nexport class FaceLandmarkNet extends FaceLandmark68Net {}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ScaleLayerParams } from './types';\n\nexport function scale(x: tf.Tensor4D, params: ScaleLayerParams): tf.Tensor4D {\n return tf.add(tf.mul(x, params.weights), params.biases);\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { scale } from './scaleLayer';\nimport { ConvLayerParams } from './types';\n\nfunction convLayer(\n x: tf.Tensor4D,\n params: ConvLayerParams,\n strides: [number, number],\n withRelu: boolean,\n padding: 'valid' | 'same' = 'same',\n): tf.Tensor4D {\n const { filters, bias } = params.conv;\n\n let out = tf.conv2d(x, filters, strides, padding);\n out = tf.add(out, bias);\n out = scale(out, params.scale);\n return withRelu ? tf.relu(out) : out;\n}\n\nexport function conv(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [1, 1], true);\n}\n\nexport function convNoRelu(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [1, 1], false);\n}\n\nexport function convDown(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [2, 2], true, 'valid');\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, extractWeightsFactory, ExtractWeightsFunction, ParamMapping } from '../common/index';\nimport { isFloat } from '../utils/index';\nimport { ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n function extractFilterValues(numFilterValues: number, numFilters: number, filterSize: number): tf.Tensor4D {\n const weights = extractWeights(numFilterValues);\n const depth = weights.length / (numFilters * filterSize * filterSize);\n\n if (isFloat(depth)) {\n throw new Error(`depth has to be an integer: ${depth}, weights.length: ${weights.length}, numFilters: ${numFilters}, filterSize: ${filterSize}`);\n }\n\n return tf.tidy(\n () => tf.transpose(\n tf.tensor4d(weights, [numFilters, depth, filterSize, filterSize]),\n [2, 3, 1, 0],\n ),\n );\n }\n\n function extractConvParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvParams {\n const filters = extractFilterValues(numFilterValues, numFilters, filterSize);\n const bias = tf.tensor1d(extractWeights(numFilters));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return { filters, bias };\n }\n\n function extractScaleLayerParams(numWeights: number, mappedPrefix: string): ScaleLayerParams {\n const weights = tf.tensor1d(extractWeights(numWeights));\n const biases = tf.tensor1d(extractWeights(numWeights));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/weights` },\n { paramPath: `${mappedPrefix}/biases` },\n );\n\n return {\n weights,\n biases,\n };\n }\n\n function extractConvLayerParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvLayerParams {\n const conv = extractConvParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv`);\n const scale = extractScaleLayerParams(numFilters, `${mappedPrefix}/scale`);\n\n return { conv, scale };\n }\n\n function extractResidualLayerParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n isDown = false,\n ): ResidualLayerParams {\n const conv1 = extractConvLayerParams((isDown ? 0.5 : 1) * numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv1`);\n const conv2 = extractConvLayerParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv2`);\n\n return { conv1, conv2 };\n }\n\n return {\n extractConvLayerParams,\n extractResidualLayerParams,\n };\n}\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvLayerParams,\n extractResidualLayerParams,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const conv32_down = extractConvLayerParams(4704, 32, 7, 'conv32_down');\n const conv32_1 = extractResidualLayerParams(9216, 32, 3, 'conv32_1');\n const conv32_2 = extractResidualLayerParams(9216, 32, 3, 'conv32_2');\n const conv32_3 = extractResidualLayerParams(9216, 32, 3, 'conv32_3');\n\n const conv64_down = extractResidualLayerParams(36864, 64, 3, 'conv64_down', true);\n const conv64_1 = extractResidualLayerParams(36864, 64, 3, 'conv64_1');\n const conv64_2 = extractResidualLayerParams(36864, 64, 3, 'conv64_2');\n const conv64_3 = extractResidualLayerParams(36864, 64, 3, 'conv64_3');\n\n const conv128_down = extractResidualLayerParams(147456, 128, 3, 'conv128_down', true);\n const conv128_1 = extractResidualLayerParams(147456, 128, 3, 'conv128_1');\n const conv128_2 = extractResidualLayerParams(147456, 128, 3, 'conv128_2');\n\n const conv256_down = extractResidualLayerParams(589824, 256, 3, 'conv256_down', true);\n const conv256_1 = extractResidualLayerParams(589824, 256, 3, 'conv256_1');\n const conv256_2 = extractResidualLayerParams(589824, 256, 3, 'conv256_2');\n const conv256_down_out = extractResidualLayerParams(589824, 256, 3, 'conv256_down_out');\n\n const fc = tf.tidy(\n () => tf.transpose(tf.tensor2d(extractWeights(256 * 128), [128, 256]), [1, 0]),\n );\n paramMappings.push({ paramPath: 'fc' });\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n const params = {\n conv32_down,\n conv32_1,\n conv32_2,\n conv32_3,\n conv64_down,\n conv64_1,\n conv64_2,\n conv64_3,\n conv128_down,\n conv128_1,\n conv128_2,\n conv256_down,\n conv256_1,\n conv256_2,\n conv256_down_out,\n fc,\n };\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping } from '../common/index';\nimport { isTensor2D } from '../utils/index';\nimport { ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractScaleLayerParams(prefix: string): ScaleLayerParams {\n const weights = extractWeightEntry(`${prefix}/scale/weights`, 1);\n const biases = extractWeightEntry(`${prefix}/scale/biases`, 1);\n\n return { weights, biases };\n }\n\n function extractConvLayerParams(prefix: string): ConvLayerParams {\n const filters = extractWeightEntry(`${prefix}/conv/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/conv/bias`, 1);\n const scale = extractScaleLayerParams(prefix);\n\n return { conv: { filters, bias }, scale };\n }\n\n function extractResidualLayerParams(prefix: string): ResidualLayerParams {\n return {\n conv1: extractConvLayerParams(`${prefix}/conv1`),\n conv2: extractConvLayerParams(`${prefix}/conv2`),\n };\n }\n\n return {\n extractConvLayerParams,\n extractResidualLayerParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvLayerParams,\n extractResidualLayerParams,\n } = extractorsFactory(weightMap, paramMappings);\n\n const conv32_down = extractConvLayerParams('conv32_down');\n const conv32_1 = extractResidualLayerParams('conv32_1');\n const conv32_2 = extractResidualLayerParams('conv32_2');\n const conv32_3 = extractResidualLayerParams('conv32_3');\n\n const conv64_down = extractResidualLayerParams('conv64_down');\n const conv64_1 = extractResidualLayerParams('conv64_1');\n const conv64_2 = extractResidualLayerParams('conv64_2');\n const conv64_3 = extractResidualLayerParams('conv64_3');\n\n const conv128_down = extractResidualLayerParams('conv128_down');\n const conv128_1 = extractResidualLayerParams('conv128_1');\n const conv128_2 = extractResidualLayerParams('conv128_2');\n\n const conv256_down = extractResidualLayerParams('conv256_down');\n const conv256_1 = extractResidualLayerParams('conv256_1');\n const conv256_2 = extractResidualLayerParams('conv256_2');\n const conv256_down_out = extractResidualLayerParams('conv256_down_out');\n\n const { fc } = weightMap;\n paramMappings.push({ originalPath: 'fc', paramPath: 'fc' });\n\n if (!isTensor2D(fc)) {\n throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${fc}`);\n }\n\n const params = {\n conv32_down,\n conv32_1,\n conv32_2,\n conv32_3,\n conv64_down,\n conv64_1,\n conv64_2,\n conv64_3,\n conv128_down,\n conv128_1,\n conv128_2,\n conv256_down,\n conv256_1,\n conv256_2,\n conv256_down_out,\n fc,\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { conv, convDown, convNoRelu } from './convLayer';\nimport { ResidualLayerParams } from './types';\n\nexport function residual(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\n let out = conv(x, params.conv1);\n out = convNoRelu(out, params.conv2);\n out = tf.add(out, x);\n out = tf.relu(out);\n return out;\n}\n\nexport function residualDown(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\n let out = convDown(x, params.conv1);\n out = convNoRelu(out, params.conv2);\n\n let pooled = tf.avgPool(x, 2, 2, 'valid') as tf.Tensor4D;\n const zeros = tf.zeros(pooled.shape);\n const isPad = pooled.shape[3] !== out.shape[3];\n const isAdjustShape = pooled.shape[1] !== out.shape[1] || pooled.shape[2] !== out.shape[2];\n\n if (isAdjustShape) {\n const padShapeX = [...out.shape] as [number, number, number, number];\n padShapeX[1] = 1;\n const zerosW = tf.zeros(padShapeX);\n out = tf.concat([out, zerosW], 1);\n\n const padShapeY = [...out.shape] as [number, number, number, number];\n padShapeY[2] = 1;\n const zerosH = tf.zeros(padShapeY);\n out = tf.concat([out, zerosH], 2);\n }\n\n pooled = isPad ? tf.concat([pooled, zeros], 3) : pooled;\n out = tf.add(pooled, out) as tf.Tensor4D;\n\n out = tf.relu(out);\n return out;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { convDown } from './convLayer';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { residual, residualDown } from './residualLayer';\nimport { NetParams } from './types';\n\nexport class FaceRecognitionNet extends NeuralNetwork {\n constructor() {\n super('FaceRecognitionNet');\n }\n\n public forwardInput(input: NetInput): tf.Tensor2D {\n const { params } = this;\n\n if (!params) {\n throw new Error('FaceRecognitionNet - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(150, true), 'float32');\n\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(255) as tf.Tensor4D;\n\n let out = convDown(normalized, params.conv32_down);\n out = tf.maxPool(out, 3, 2, 'valid');\n\n out = residual(out, params.conv32_1);\n out = residual(out, params.conv32_2);\n out = residual(out, params.conv32_3);\n\n out = residualDown(out, params.conv64_down);\n out = residual(out, params.conv64_1);\n out = residual(out, params.conv64_2);\n out = residual(out, params.conv64_3);\n\n out = residualDown(out, params.conv128_down);\n out = residual(out, params.conv128_1);\n out = residual(out, params.conv128_2);\n\n out = residualDown(out, params.conv256_down);\n out = residual(out, params.conv256_1);\n out = residual(out, params.conv256_2);\n out = residualDown(out, params.conv256_down_out);\n\n const globalAvg = out.mean([1, 2]) as tf.Tensor2D;\n const fullyConnected = tf.matMul(globalAvg, params.fc);\n\n return fullyConnected as tf.Tensor2D;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async computeFaceDescriptor(input: TNetInput): Promise {\n // @ts-ignore\n if (input?.shape?.some((dim) => dim <= 0)) return new Float32Array(128);\n const netInput = await toNetInput(input);\n const faceDescriptorTensors = tf.tidy(() => tf.unstack(this.forwardInput(netInput)));\n const faceDescriptorsForBatch = await Promise.all(faceDescriptorTensors.map((t) => t.data())) as Float32Array[];\n faceDescriptorTensors.forEach((t) => t.dispose());\n return netInput.isBatchInput ? faceDescriptorsForBatch : faceDescriptorsForBatch[0];\n }\n\n protected getDefaultModelName(): string {\n return 'face_recognition_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import { FaceRecognitionNet } from './FaceRecognitionNet';\n\nexport * from './FaceRecognitionNet';\n\nexport function createFaceRecognitionNet(weights: Float32Array) {\n const net = new FaceRecognitionNet();\n net.extractWeights(weights);\n return net;\n}\n", "export type WithFaceDescriptor = TSource & {\n descriptor: Float32Array\n}\n\nexport function extendWithFaceDescriptor<\n TSource\n>(\n sourceObj: TSource,\n descriptor: Float32Array,\n): WithFaceDescriptor {\n const extension = { descriptor };\n return { ...sourceObj, ...extension };\n}\n", "export type WithAge = TSource & {\n age: number\n}\n\nexport function isWithAge(obj: any): obj is WithAge<{}> {\n return typeof obj.age === 'number';\n}\n\nexport function extendWithAge<\n TSource\n>(\n sourceObj: TSource,\n age: number,\n): WithAge {\n const extension = { age };\n return { ...sourceObj, ...extension };\n}\n", "import { Gender } from '../ageGenderNet/types';\nimport { isValidProbablitiy } from '../utils/index';\n\nexport type WithGender = TSource & {\n gender: Gender\n genderProbability: number\n}\n\nexport function isWithGender(obj: any): obj is WithGender<{}> {\n return (obj.gender === Gender.MALE || obj.gender === Gender.FEMALE)\n && isValidProbablitiy(obj.genderProbability);\n}\n\nexport function extendWithGender<\n TSource\n>(\n sourceObj: TSource,\n gender: Gender,\n genderProbability: number,\n): WithGender {\n const extension = { gender, genderProbability };\n return { ...sourceObj, ...extension };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, ParamMapping, ConvParams, extractWeightsFactory } from '../common/index';\nimport { MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n function extractDepthwiseConvParams(numChannels: number, mappedPrefix: string): MobileNetV1.DepthwiseConvParams {\n const filters = tf.tensor4d(extractWeights(3 * 3 * numChannels), [3, 3, numChannels, 1]);\n const batch_norm_scale = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_offset = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_mean = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_variance = tf.tensor1d(extractWeights(numChannels));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/batch_norm_scale` },\n { paramPath: `${mappedPrefix}/batch_norm_offset` },\n { paramPath: `${mappedPrefix}/batch_norm_mean` },\n { paramPath: `${mappedPrefix}/batch_norm_variance` },\n );\n\n return {\n filters,\n batch_norm_scale,\n batch_norm_offset,\n batch_norm_mean,\n batch_norm_variance,\n };\n }\n\n function extractConvParams(\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n isPointwiseConv?: boolean,\n ): ConvParams {\n const filters = tf.tensor4d(\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\n [filterSize, filterSize, channelsIn, channelsOut],\n );\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/${isPointwiseConv ? 'batch_norm_offset' : 'bias'}` },\n );\n\n return { filters, bias };\n }\n\n function extractPointwiseConvParams(\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n ): PointwiseConvParams {\n const {\n filters,\n bias,\n } = extractConvParams(channelsIn, channelsOut, filterSize, mappedPrefix, true);\n\n return {\n filters,\n batch_norm_offset: bias,\n };\n }\n\n function extractConvPairParams(\n channelsIn: number,\n channelsOut: number,\n mappedPrefix: string,\n ): MobileNetV1.ConvPairParams {\n const depthwise_conv = extractDepthwiseConvParams(channelsIn, `${mappedPrefix}/depthwise_conv`);\n const pointwise_conv = extractPointwiseConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/pointwise_conv`);\n\n return { depthwise_conv, pointwise_conv };\n }\n\n function extractMobilenetV1Params(): MobileNetV1.Params {\n const conv_0 = extractPointwiseConvParams(3, 32, 3, 'mobilenetv1/conv_0');\n const conv_1 = extractConvPairParams(32, 64, 'mobilenetv1/conv_1');\n const conv_2 = extractConvPairParams(64, 128, 'mobilenetv1/conv_2');\n const conv_3 = extractConvPairParams(128, 128, 'mobilenetv1/conv_3');\n const conv_4 = extractConvPairParams(128, 256, 'mobilenetv1/conv_4');\n const conv_5 = extractConvPairParams(256, 256, 'mobilenetv1/conv_5');\n const conv_6 = extractConvPairParams(256, 512, 'mobilenetv1/conv_6');\n const conv_7 = extractConvPairParams(512, 512, 'mobilenetv1/conv_7');\n const conv_8 = extractConvPairParams(512, 512, 'mobilenetv1/conv_8');\n const conv_9 = extractConvPairParams(512, 512, 'mobilenetv1/conv_9');\n const conv_10 = extractConvPairParams(512, 512, 'mobilenetv1/conv_10');\n const conv_11 = extractConvPairParams(512, 512, 'mobilenetv1/conv_11');\n const conv_12 = extractConvPairParams(512, 1024, 'mobilenetv1/conv_12');\n const conv_13 = extractConvPairParams(1024, 1024, 'mobilenetv1/conv_13');\n return {\n conv_0,\n conv_1,\n conv_2,\n conv_3,\n conv_4,\n conv_5,\n conv_6,\n conv_7,\n conv_8,\n conv_9,\n conv_10,\n conv_11,\n conv_12,\n conv_13,\n };\n }\n\n function extractPredictionLayerParams(): PredictionLayerParams {\n const conv_0 = extractPointwiseConvParams(1024, 256, 1, 'prediction_layer/conv_0');\n const conv_1 = extractPointwiseConvParams(256, 512, 3, 'prediction_layer/conv_1');\n const conv_2 = extractPointwiseConvParams(512, 128, 1, 'prediction_layer/conv_2');\n const conv_3 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_3');\n const conv_4 = extractPointwiseConvParams(256, 128, 1, 'prediction_layer/conv_4');\n const conv_5 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_5');\n const conv_6 = extractPointwiseConvParams(256, 64, 1, 'prediction_layer/conv_6');\n const conv_7 = extractPointwiseConvParams(64, 128, 3, 'prediction_layer/conv_7');\n const box_encoding_0_predictor = extractConvParams(512, 12, 1, 'prediction_layer/box_predictor_0/box_encoding_predictor');\n const class_predictor_0 = extractConvParams(512, 9, 1, 'prediction_layer/box_predictor_0/class_predictor');\n const box_encoding_1_predictor = extractConvParams(1024, 24, 1, 'prediction_layer/box_predictor_1/box_encoding_predictor');\n const class_predictor_1 = extractConvParams(1024, 18, 1, 'prediction_layer/box_predictor_1/class_predictor');\n const box_encoding_2_predictor = extractConvParams(512, 24, 1, 'prediction_layer/box_predictor_2/box_encoding_predictor');\n const class_predictor_2 = extractConvParams(512, 18, 1, 'prediction_layer/box_predictor_2/class_predictor');\n const box_encoding_3_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_3/box_encoding_predictor');\n const class_predictor_3 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_3/class_predictor');\n const box_encoding_4_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_4/box_encoding_predictor');\n const class_predictor_4 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_4/class_predictor');\n const box_encoding_5_predictor = extractConvParams(128, 24, 1, 'prediction_layer/box_predictor_5/box_encoding_predictor');\n const class_predictor_5 = extractConvParams(128, 18, 1, 'prediction_layer/box_predictor_5/class_predictor');\n\n const box_predictor_0 = {\n box_encoding_predictor: box_encoding_0_predictor,\n class_predictor: class_predictor_0,\n };\n const box_predictor_1 = {\n box_encoding_predictor: box_encoding_1_predictor,\n class_predictor: class_predictor_1,\n };\n const box_predictor_2 = {\n box_encoding_predictor: box_encoding_2_predictor,\n class_predictor: class_predictor_2,\n };\n const box_predictor_3 = {\n box_encoding_predictor: box_encoding_3_predictor,\n class_predictor: class_predictor_3,\n };\n const box_predictor_4 = {\n box_encoding_predictor: box_encoding_4_predictor,\n class_predictor: class_predictor_4,\n };\n const box_predictor_5 = {\n box_encoding_predictor: box_encoding_5_predictor,\n class_predictor: class_predictor_5,\n };\n return {\n conv_0,\n conv_1,\n conv_2,\n conv_3,\n conv_4,\n conv_5,\n conv_6,\n conv_7,\n box_predictor_0,\n box_predictor_1,\n box_predictor_2,\n box_predictor_3,\n box_predictor_4,\n box_predictor_5,\n };\n }\n\n return {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n };\n}\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n const {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n } = extractorsFactory(extractWeights, paramMappings);\n const mobilenetv1 = extractMobilenetV1Params();\n const prediction_layer = extractPredictionLayerParams();\n const extra_dim = tf.tensor3d(\n extractWeights(5118 * 4),\n [1, 5118, 4],\n );\n const output_layer = {\n extra_dim,\n };\n paramMappings.push({ paramPath: 'output_layer/extra_dim' });\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n params: {\n mobilenetv1,\n prediction_layer,\n output_layer,\n },\n paramMappings,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping } from '../common/index';\nimport { isTensor3D } from '../utils/index';\nimport { BoxPredictionParams, MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractPointwiseConvParams(prefix: string, idx: number, mappedPrefix: string): PointwiseConvParams {\n const filters = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/weights`, 4, `${mappedPrefix}/filters`);\n const batch_norm_offset = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/convolution_bn_offset`, 1, `${mappedPrefix}/batch_norm_offset`);\n return { filters, batch_norm_offset };\n }\n\n function extractConvPairParams(idx: number): MobileNetV1.ConvPairParams {\n const mappedPrefix = `mobilenetv1/conv_${idx}`;\n const prefixDepthwiseConv = `MobilenetV1/Conv2d_${idx}_depthwise`;\n const mappedPrefixDepthwiseConv = `${mappedPrefix}/depthwise_conv`;\n const mappedPrefixPointwiseConv = `${mappedPrefix}/pointwise_conv`;\n\n const filters = extractWeightEntry(`${prefixDepthwiseConv}/depthwise_weights`, 4, `${mappedPrefixDepthwiseConv}/filters`);\n const batch_norm_scale = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/gamma`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_scale`);\n const batch_norm_offset = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/beta`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_offset`);\n const batch_norm_mean = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_mean`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_mean`);\n const batch_norm_variance = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_variance`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_variance`);\n\n return {\n depthwise_conv: {\n filters,\n batch_norm_scale,\n batch_norm_offset,\n batch_norm_mean,\n batch_norm_variance,\n },\n pointwise_conv: extractPointwiseConvParams('MobilenetV1', idx, mappedPrefixPointwiseConv),\n };\n }\n\n function extractMobilenetV1Params(): MobileNetV1.Params {\n return {\n conv_0: extractPointwiseConvParams('MobilenetV1', 0, 'mobilenetv1/conv_0'),\n conv_1: extractConvPairParams(1),\n conv_2: extractConvPairParams(2),\n conv_3: extractConvPairParams(3),\n conv_4: extractConvPairParams(4),\n conv_5: extractConvPairParams(5),\n conv_6: extractConvPairParams(6),\n conv_7: extractConvPairParams(7),\n conv_8: extractConvPairParams(8),\n conv_9: extractConvPairParams(9),\n conv_10: extractConvPairParams(10),\n conv_11: extractConvPairParams(11),\n conv_12: extractConvPairParams(12),\n conv_13: extractConvPairParams(13),\n };\n }\n\n function extractConvParams(prefix: string, mappedPrefix: string): ConvParams {\n const filters = extractWeightEntry(`${prefix}/weights`, 4, `${mappedPrefix}/filters`);\n const bias = extractWeightEntry(`${prefix}/biases`, 1, `${mappedPrefix}/bias`);\n return { filters, bias };\n }\n\n function extractBoxPredictorParams(idx: number): BoxPredictionParams {\n const box_encoding_predictor = extractConvParams(\n `Prediction/BoxPredictor_${idx}/BoxEncodingPredictor`,\n `prediction_layer/box_predictor_${idx}/box_encoding_predictor`,\n );\n const class_predictor = extractConvParams(\n `Prediction/BoxPredictor_${idx}/ClassPredictor`,\n `prediction_layer/box_predictor_${idx}/class_predictor`,\n );\n return { box_encoding_predictor, class_predictor };\n }\n\n function extractPredictionLayerParams(): PredictionLayerParams {\n return {\n conv_0: extractPointwiseConvParams('Prediction', 0, 'prediction_layer/conv_0'),\n conv_1: extractPointwiseConvParams('Prediction', 1, 'prediction_layer/conv_1'),\n conv_2: extractPointwiseConvParams('Prediction', 2, 'prediction_layer/conv_2'),\n conv_3: extractPointwiseConvParams('Prediction', 3, 'prediction_layer/conv_3'),\n conv_4: extractPointwiseConvParams('Prediction', 4, 'prediction_layer/conv_4'),\n conv_5: extractPointwiseConvParams('Prediction', 5, 'prediction_layer/conv_5'),\n conv_6: extractPointwiseConvParams('Prediction', 6, 'prediction_layer/conv_6'),\n conv_7: extractPointwiseConvParams('Prediction', 7, 'prediction_layer/conv_7'),\n box_predictor_0: extractBoxPredictorParams(0),\n box_predictor_1: extractBoxPredictorParams(1),\n box_predictor_2: extractBoxPredictorParams(2),\n box_predictor_3: extractBoxPredictorParams(3),\n box_predictor_4: extractBoxPredictorParams(4),\n box_predictor_5: extractBoxPredictorParams(5),\n };\n }\n\n return {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n const {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n } = extractorsFactory(weightMap, paramMappings);\n const extra_dim = weightMap['Output/extra_dim'];\n paramMappings.push({ originalPath: 'Output/extra_dim', paramPath: 'output_layer/extra_dim' });\n if (!isTensor3D(extra_dim)) {\n throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${extra_dim}`);\n }\n\n const params = {\n mobilenetv1: extractMobilenetV1Params(),\n prediction_layer: extractPredictionLayerParams(),\n output_layer: {\n extra_dim,\n },\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { PointwiseConvParams } from './types';\n\nexport function pointwiseConvLayer(x: tf.Tensor4D, params: PointwiseConvParams, strides: [number, number]) {\n return tf.tidy(() => {\n let out = tf.conv2d(x, params.filters, strides, 'same');\n out = tf.add(out, params.batch_norm_offset);\n return tf.clipByValue(out, 0, 6);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\nimport { MobileNetV1 } from './types';\n\nconst epsilon = 0.0010000000474974513;\n\nfunction depthwiseConvLayer(x: tf.Tensor4D, params: MobileNetV1.DepthwiseConvParams, strides: [number, number]) {\n return tf.tidy(() => {\n let out = tf.depthwiseConv2d(x, params.filters, strides, 'same');\n out = tf.batchNorm(\n out,\n params.batch_norm_mean,\n params.batch_norm_variance,\n params.batch_norm_offset,\n params.batch_norm_scale,\n epsilon,\n );\n return tf.clipByValue(out, 0, 6);\n });\n}\n\nfunction getStridesForLayerIdx(layerIdx: number): [number, number] {\n return [2, 4, 6, 12].some((idx) => idx === layerIdx) ? [2, 2] : [1, 1];\n}\n\nexport function mobileNetV1(x: tf.Tensor4D, params: MobileNetV1.Params) {\n return tf.tidy(() => {\n let conv11;\n let out = pointwiseConvLayer(x, params.conv_0, [2, 2]);\n\n const convPairParams = [\n params.conv_1,\n params.conv_2,\n params.conv_3,\n params.conv_4,\n params.conv_5,\n params.conv_6,\n params.conv_7,\n params.conv_8,\n params.conv_9,\n params.conv_10,\n params.conv_11,\n params.conv_12,\n params.conv_13,\n ];\n\n convPairParams.forEach((param, i) => {\n const layerIdx = i + 1;\n const depthwiseConvStrides = getStridesForLayerIdx(layerIdx);\n out = depthwiseConvLayer(out, param.depthwise_conv, depthwiseConvStrides);\n out = pointwiseConvLayer(out, param.pointwise_conv, [1, 1]);\n if (layerIdx === 11) conv11 = out;\n });\n\n if (conv11 === null) {\n throw new Error('mobileNetV1 - output of conv layer 11 is null');\n }\n\n return {\n out,\n conv11: conv11 as any,\n };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nfunction IOU(boxes: tf.Tensor2D, i: number, j: number) {\n const boxesData = boxes.arraySync();\n const yminI = Math.min(boxesData[i][0], boxesData[i][2]);\n const xminI = Math.min(boxesData[i][1], boxesData[i][3]);\n const ymaxI = Math.max(boxesData[i][0], boxesData[i][2]);\n const xmaxI = Math.max(boxesData[i][1], boxesData[i][3]);\n const yminJ = Math.min(boxesData[j][0], boxesData[j][2]);\n const xminJ = Math.min(boxesData[j][1], boxesData[j][3]);\n const ymaxJ = Math.max(boxesData[j][0], boxesData[j][2]);\n const xmaxJ = Math.max(boxesData[j][1], boxesData[j][3]);\n const areaI = (ymaxI - yminI) * (xmaxI - xminI);\n const areaJ = (ymaxJ - yminJ) * (xmaxJ - xminJ);\n if (areaI <= 0 || areaJ <= 0) return 0.0;\n const intersectionYmin = Math.max(yminI, yminJ);\n const intersectionXmin = Math.max(xminI, xminJ);\n const intersectionYmax = Math.min(ymaxI, ymaxJ);\n const intersectionXmax = Math.min(xmaxI, xmaxJ);\n const intersectionArea = Math.max(intersectionYmax - intersectionYmin, 0.0) * Math.max(intersectionXmax - intersectionXmin, 0.0);\n return intersectionArea / (areaI + areaJ - intersectionArea);\n}\n\nexport function nonMaxSuppression(\n boxes: tf.Tensor2D,\n scores: number[],\n maxOutputSize: number,\n iouThreshold: number,\n scoreThreshold: number,\n): number[] {\n const numBoxes = boxes.shape[0];\n const outputSize = Math.min(maxOutputSize, numBoxes);\n\n const candidates = scores\n .map((score, boxIndex) => ({ score, boxIndex }))\n .filter((c) => c.score > scoreThreshold)\n .sort((c1, c2) => c2.score - c1.score);\n\n const suppressFunc = (x: number) => (x <= iouThreshold ? 1 : 0);\n const selected: number[] = [];\n\n candidates.forEach((c) => {\n if (selected.length >= outputSize) return;\n const originalScore = c.score;\n for (let j = selected.length - 1; j >= 0; --j) {\n const iou = IOU(boxes, c.boxIndex, selected[j]);\n if (iou === 0.0) continue;\n c.score *= suppressFunc(iou);\n if (c.score <= scoreThreshold) break;\n }\n if (originalScore === c.score) {\n selected.push(c.boxIndex);\n }\n });\n return selected;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { OutputLayerParams } from './types';\n\nfunction getCenterCoordinatesAndSizesLayer(x: tf.Tensor2D) {\n const vec = tf.unstack(tf.transpose(x, [1, 0]));\n\n const sizes = [\n tf.sub(vec[2], vec[0]),\n tf.sub(vec[3], vec[1]),\n ];\n const centers = [\n tf.add(vec[0], tf.div(sizes[0], 2)),\n tf.add(vec[1], tf.div(sizes[1], 2)),\n ];\n return { sizes, centers };\n}\n\nfunction decodeBoxesLayer(x0: tf.Tensor2D, x1: tf.Tensor2D) {\n const { sizes, centers } = getCenterCoordinatesAndSizesLayer(x0);\n\n const vec = tf.unstack(tf.transpose(x1, [1, 0]));\n const div0_out = tf.div(tf.mul(tf.exp(tf.div(vec[2], 5)), sizes[0]), 2);\n const add0_out = tf.add(tf.mul(tf.div(vec[0], 10), sizes[0]), centers[0]);\n const div1_out = tf.div(tf.mul(tf.exp(tf.div(vec[3], 5)), sizes[1]), 2);\n const add1_out = tf.add(tf.mul(tf.div(vec[1], 10), sizes[1]), centers[1]);\n\n return tf.transpose(\n tf.stack([\n tf.sub(add0_out, div0_out),\n tf.sub(add1_out, div1_out),\n tf.add(add0_out, div0_out),\n tf.add(add1_out, div1_out),\n ]),\n [1, 0],\n );\n}\n\nexport function outputLayer(boxPredictions: tf.Tensor4D, classPredictions: tf.Tensor4D, params: OutputLayerParams) {\n return tf.tidy(() => {\n const batchSize = boxPredictions.shape[0];\n\n let boxes = decodeBoxesLayer(\n tf.reshape(tf.tile(params.extra_dim, [batchSize, 1, 1]), [-1, 4]) as tf.Tensor2D,\n tf.reshape(boxPredictions, [-1, 4]) as tf.Tensor2D,\n );\n boxes = tf.reshape(boxes, [batchSize, (boxes.shape[0] / batchSize), 4]);\n\n const scoresAndClasses = tf.sigmoid(tf.slice(classPredictions, [0, 0, 1], [-1, -1, -1]));\n let scores = tf.slice(scoresAndClasses, [0, 0, 0], [-1, -1, 1]) as tf.Tensor;\n\n scores = tf.reshape(scores, [batchSize, scores.shape[1] as number]);\n\n const boxesByBatch = tf.unstack(boxes) as tf.Tensor2D[];\n const scoresByBatch = tf.unstack(scores) as tf.Tensor1D[];\n\n return { boxes: boxesByBatch, scores: scoresByBatch };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { convLayer } from '../common/index';\nimport { BoxPredictionParams } from './types';\n\nexport function boxPredictionLayer(\n x: tf.Tensor4D,\n params: BoxPredictionParams,\n) {\n return tf.tidy(() => {\n const batchSize = x.shape[0];\n const boxPredictionEncoding = tf.reshape(\n convLayer(x, params.box_encoding_predictor),\n [batchSize, -1, 1, 4],\n );\n const classPrediction = tf.reshape(\n convLayer(x, params.class_predictor),\n [batchSize, -1, 3],\n );\n return { boxPredictionEncoding, classPrediction };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { boxPredictionLayer } from './boxPredictionLayer';\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\nimport { PredictionLayerParams } from './types';\n\nexport function predictionLayer(\n x: tf.Tensor4D,\n conv11: tf.Tensor4D,\n params: PredictionLayerParams,\n) {\n return tf.tidy(() => {\n const conv0 = pointwiseConvLayer(x, params.conv_0, [1, 1]);\n const conv1 = pointwiseConvLayer(conv0, params.conv_1, [2, 2]);\n const conv2 = pointwiseConvLayer(conv1, params.conv_2, [1, 1]);\n const conv3 = pointwiseConvLayer(conv2, params.conv_3, [2, 2]);\n const conv4 = pointwiseConvLayer(conv3, params.conv_4, [1, 1]);\n const conv5 = pointwiseConvLayer(conv4, params.conv_5, [2, 2]);\n const conv6 = pointwiseConvLayer(conv5, params.conv_6, [1, 1]);\n const conv7 = pointwiseConvLayer(conv6, params.conv_7, [2, 2]);\n\n const boxPrediction0 = boxPredictionLayer(conv11, params.box_predictor_0);\n const boxPrediction1 = boxPredictionLayer(x, params.box_predictor_1);\n const boxPrediction2 = boxPredictionLayer(conv1, params.box_predictor_2);\n const boxPrediction3 = boxPredictionLayer(conv3, params.box_predictor_3);\n const boxPrediction4 = boxPredictionLayer(conv5, params.box_predictor_4);\n const boxPrediction5 = boxPredictionLayer(conv7, params.box_predictor_5);\n\n const boxPredictions = tf.concat([\n boxPrediction0.boxPredictionEncoding,\n boxPrediction1.boxPredictionEncoding,\n boxPrediction2.boxPredictionEncoding,\n boxPrediction3.boxPredictionEncoding,\n boxPrediction4.boxPredictionEncoding,\n boxPrediction5.boxPredictionEncoding,\n ], 1) as tf.Tensor4D;\n\n const classPredictions = tf.concat([\n boxPrediction0.classPrediction,\n boxPrediction1.classPrediction,\n boxPrediction2.classPrediction,\n boxPrediction3.classPrediction,\n boxPrediction4.classPrediction,\n boxPrediction5.classPrediction,\n ], 1) as tf.Tensor4D;\n\n return {\n boxPredictions,\n classPredictions,\n };\n });\n}\n", "export interface ISsdMobilenetv1Options {\n minConfidence?: number\n maxResults?: number\n}\n\nexport class SsdMobilenetv1Options {\n protected _name = 'SsdMobilenetv1Options';\n\n private _minConfidence: number;\n\n private _maxResults: number;\n\n constructor({ minConfidence, maxResults }: ISsdMobilenetv1Options = {}) {\n this._minConfidence = minConfidence || 0.5;\n this._maxResults = maxResults || 100;\n\n if (typeof this._minConfidence !== 'number' || this._minConfidence <= 0 || this._minConfidence >= 1) {\n throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);\n }\n\n if (typeof this._maxResults !== 'number') {\n throw new Error(`${this._name} - expected maxResults to be a number`);\n }\n }\n\n get minConfidence(): number { return this._minConfidence; }\n\n get maxResults(): number { return this._maxResults; }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Rect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { mobileNetV1 } from './mobileNetV1';\nimport { nonMaxSuppression } from './nonMaxSuppression';\nimport { outputLayer } from './outputLayer';\nimport { predictionLayer } from './predictionLayer';\nimport { ISsdMobilenetv1Options, SsdMobilenetv1Options } from './SsdMobilenetv1Options';\nimport { NetParams } from './types';\n\nexport class SsdMobilenetv1 extends NeuralNetwork {\n constructor() {\n super('SsdMobilenetv1');\n }\n\n public forwardInput(input: NetInput) {\n const { params } = this;\n if (!params) throw new Error('SsdMobilenetv1 - load model before inference');\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(512, false), 'float32');\n const x = tf.sub(tf.div(batchTensor, 127.5), 1) as tf.Tensor4D; // input is normalized -1..1\n const features = mobileNetV1(x, params.mobilenetv1);\n const { boxPredictions, classPredictions } = predictionLayer(features.out, features.conv11, params.prediction_layer);\n return outputLayer(boxPredictions, classPredictions, params.output_layer);\n });\n }\n\n public async forward(input: TNetInput) {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async locateFaces(input: TNetInput, options: ISsdMobilenetv1Options = {}): Promise {\n const { maxResults, minConfidence } = new SsdMobilenetv1Options(options);\n const netInput = await toNetInput(input);\n const { boxes: _boxes, scores: _scores } = this.forwardInput(netInput);\n const boxes = _boxes[0];\n const scores = _scores[0];\n for (let i = 1; i < _boxes.length; i++) {\n _boxes[i].dispose();\n _scores[i].dispose();\n }\n const scoresData = Array.from(scores.dataSync());\n const iouThreshold = 0.5;\n const indices = nonMaxSuppression(boxes, scoresData as number[], maxResults, iouThreshold, minConfidence);\n const reshapedDims = netInput.getReshapedInputDimensions(0);\n const inputSize = netInput.inputSize as number;\n const padX = inputSize / reshapedDims.width;\n const padY = inputSize / reshapedDims.height;\n const boxesData = boxes.arraySync();\n const results = indices\n .map((idx) => {\n const [top, bottom] = [\n Math.max(0, boxesData[idx][0]),\n Math.min(1.0, boxesData[idx][2]),\n ].map((val) => val * padY);\n const [left, right] = [\n Math.max(0, boxesData[idx][1]),\n Math.min(1.0, boxesData[idx][3]),\n ].map((val) => val * padX);\n return new FaceDetection(\n scoresData[idx] as number,\n new Rect(left, top, right - left, bottom - top),\n { height: netInput.getInputHeight(0), width: netInput.getInputWidth(0) },\n );\n });\n boxes.dispose();\n scores.dispose();\n return results;\n }\n\n protected getDefaultModelName(): string {\n return 'ssd_mobilenetv1_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import { SsdMobilenetv1 } from './SsdMobilenetv1';\n\nexport * from './SsdMobilenetv1';\nexport * from './SsdMobilenetv1Options';\n\nexport function createSsdMobilenetv1(weights: Float32Array) {\n const net = new SsdMobilenetv1();\n net.extractWeights(weights);\n return net;\n}\n\nexport function createFaceDetectionNet(weights: Float32Array) {\n return createSsdMobilenetv1(weights);\n}\n\n// alias for backward compatibily\nexport class FaceDetectionNet extends SsdMobilenetv1 {}\n", "import { Point } from '../classes/index';\n\nexport const IOU_THRESHOLD = 0.4;\n\nexport const BOX_ANCHORS = [\n new Point(0.738768, 0.874946),\n new Point(2.42204, 2.65704),\n new Point(4.30971, 7.04493),\n new Point(10.246, 4.59428),\n new Point(12.6868, 11.8741),\n];\n\nexport const BOX_ANCHORS_SEPARABLE = [\n new Point(1.603231, 2.094468),\n new Point(6.041143, 7.080126),\n new Point(2.882459, 3.518061),\n new Point(4.266906, 5.178857),\n new Point(9.041765, 10.66308),\n];\n\nexport const MEAN_RGB_SEPARABLE: [number, number, number] = [117.001, 114.697, 97.404];\n\nexport const DEFAULT_MODEL_NAME = 'tiny_yolov2_model';\nexport const DEFAULT_MODEL_NAME_SEPARABLE_CONV = 'tiny_yolov2_separable_conv_model';\n", "import { Point } from '../classes/Point';\n\nexport type TinyYolov2Config = {\n withSeparableConvs: boolean\n iouThreshold: number\n anchors: Point[]\n classes: string[]\n meanRgb?: [number, number, number]\n withClassScores?: boolean,\n filterSizes?: number[]\n isFirstLayerConv2d?: boolean\n}\n\nconst isNumber = (arg: any) => typeof arg === 'number';\n\nexport function validateConfig(config: any) {\n if (!config) {\n throw new Error(`invalid config: ${config}`);\n }\n\n if (typeof config.withSeparableConvs !== 'boolean') {\n throw new Error(`config.withSeparableConvs has to be a boolean, have: ${config.withSeparableConvs}`);\n }\n\n if (!isNumber(config.iouThreshold) || config.iouThreshold < 0 || config.iouThreshold > 1.0) {\n throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${config.iouThreshold}`);\n }\n\n if (\n !Array.isArray(config.classes)\n || !config.classes.length\n || !config.classes.every((c: any) => typeof c === 'string')\n ) {\n throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(config.classes)}`);\n }\n\n if (\n !Array.isArray(config.anchors)\n || !config.anchors.length\n || !config.anchors.map((a: any) => a || {}).every((a: any) => isNumber(a.x) && isNumber(a.y))\n ) {\n throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(config.anchors)}`);\n }\n\n if (config.meanRgb && (\n !Array.isArray(config.meanRgb)\n || config.meanRgb.length !== 3\n || !config.meanRgb.every(isNumber)\n )) {\n throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(config.meanRgb)}`);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function leaky(x: tf.Tensor4D): tf.Tensor4D {\n return tf.tidy(() => {\n const min = tf.mul(x, tf.scalar(0.10000000149011612));\n return tf.add(tf.relu(tf.sub(x, min)), min);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { leaky } from './leaky';\nimport { ConvWithBatchNorm } from './types';\n\nexport function convWithBatchNorm(x: tf.Tensor4D, params: ConvWithBatchNorm): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]) as tf.Tensor4D;\n out = tf.conv2d(out, params.conv.filters, [1, 1], 'valid');\n out = tf.sub(out, params.bn.sub);\n out = tf.mul(out, params.bn.truediv);\n out = tf.add(out, params.conv.bias);\n return leaky(out);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { SeparableConvParams } from '../common/types';\nimport { leaky } from './leaky';\n\nexport function depthwiseSeparableConv(x: tf.Tensor4D, params: SeparableConvParams): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]) as tf.Tensor4D;\n out = tf.separableConv2d(out, params.depthwise_filter, params.pointwise_filter, [1, 1], 'valid');\n out = tf.add(out, params.bias);\n return leaky(out);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { extractConvParamsFactory } from '../common/index';\nimport { extractSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\nimport { extractWeightsFactory } from '../common/extractWeightsFactory';\nimport { ExtractWeightsFunction, ParamMapping } from '../common/types';\nimport { TinyYolov2Config } from './config';\nimport { BatchNorm, ConvWithBatchNorm, TinyYolov2NetParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n\n function extractBatchNormParams(size: number, mappedPrefix: string): BatchNorm {\n const sub = tf.tensor1d(extractWeights(size));\n const truediv = tf.tensor1d(extractWeights(size));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/sub` },\n { paramPath: `${mappedPrefix}/truediv` },\n );\n return { sub, truediv };\n }\n\n function extractConvWithBatchNormParams(channelsIn: number, channelsOut: number, mappedPrefix: string): ConvWithBatchNorm {\n const conv = extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv`);\n const bn = extractBatchNormParams(channelsOut, `${mappedPrefix}/bn`);\n return { conv, bn };\n }\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n return {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n };\n}\n\nexport function extractParams(\n weights: Float32Array,\n config: TinyYolov2Config,\n boxEncodingSize: number,\n filterSizes: number[],\n): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const paramMappings: ParamMapping[] = [];\n const {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n } = extractorsFactory(extractWeights, paramMappings);\n let params: TinyYolov2NetParams;\n\n if (config.withSeparableConvs) {\n const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes;\n const conv0 = config.isFirstLayerConv2d\n ? extractConvParams(s0, s1, 3, 'conv0')\n : extractSeparableConvParams(s0, s1, 'conv0');\n const conv1 = extractSeparableConvParams(s1, s2, 'conv1');\n const conv2 = extractSeparableConvParams(s2, s3, 'conv2');\n const conv3 = extractSeparableConvParams(s3, s4, 'conv3');\n const conv4 = extractSeparableConvParams(s4, s5, 'conv4');\n const conv5 = extractSeparableConvParams(s5, s6, 'conv5');\n const conv6 = s7 ? extractSeparableConvParams(s6, s7, 'conv6') : undefined;\n const conv7 = s8 ? extractSeparableConvParams(s7, s8, 'conv7') : undefined;\n const conv8 = extractConvParams(s8 || s7 || s6, 5 * boxEncodingSize, 1, 'conv8');\n params = {\n conv0, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8,\n };\n } else {\n const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes;\n const conv0 = extractConvWithBatchNormParams(s0, s1, 'conv0');\n const conv1 = extractConvWithBatchNormParams(s1, s2, 'conv1');\n const conv2 = extractConvWithBatchNormParams(s2, s3, 'conv2');\n const conv3 = extractConvWithBatchNormParams(s3, s4, 'conv3');\n const conv4 = extractConvWithBatchNormParams(s4, s5, 'conv4');\n const conv5 = extractConvWithBatchNormParams(s5, s6, 'conv5');\n const conv6 = extractConvWithBatchNormParams(s6, s7, 'conv6');\n const conv7 = extractConvWithBatchNormParams(s7, s8, 'conv7');\n const conv8 = extractConvParams(s8, 5 * boxEncodingSize, 1, 'conv8');\n params = {\n conv0, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8,\n };\n }\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from '../common/index';\nimport { disposeUnusedWeightTensors } from '../common/disposeUnusedWeightTensors';\nimport { loadSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\nimport { extractWeightEntryFactory } from '../common/extractWeightEntryFactory';\nimport { ParamMapping } from '../common/types';\nimport { TinyYolov2Config } from './config';\nimport { BatchNorm, ConvWithBatchNorm, TinyYolov2NetParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractBatchNormParams(prefix: string): BatchNorm {\n const sub = extractWeightEntry(`${prefix}/sub`, 1);\n const truediv = extractWeightEntry(`${prefix}/truediv`, 1);\n return { sub, truediv };\n }\n\n function extractConvParams(prefix: string): ConvParams {\n const filters = extractWeightEntry(`${prefix}/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { filters, bias };\n }\n\n function extractConvWithBatchNormParams(prefix: string): ConvWithBatchNorm {\n const conv = extractConvParams(`${prefix}/conv`);\n const bn = extractBatchNormParams(`${prefix}/bn`);\n return { conv, bn };\n }\n\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n return {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n config: TinyYolov2Config,\n): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n } = extractorsFactory(weightMap, paramMappings);\n\n let params: TinyYolov2NetParams;\n\n if (config.withSeparableConvs) {\n // eslint-disable-next-line no-mixed-operators\n const numFilters = (config.filterSizes && config.filterSizes.length || 9);\n params = {\n conv0: config.isFirstLayerConv2d ? extractConvParams('conv0') : extractSeparableConvParams('conv0'),\n conv1: extractSeparableConvParams('conv1'),\n conv2: extractSeparableConvParams('conv2'),\n conv3: extractSeparableConvParams('conv3'),\n conv4: extractSeparableConvParams('conv4'),\n conv5: extractSeparableConvParams('conv5'),\n conv6: numFilters > 7 ? extractSeparableConvParams('conv6') : undefined,\n conv7: numFilters > 8 ? extractSeparableConvParams('conv7') : undefined,\n conv8: extractConvParams('conv8'),\n };\n } else {\n params = {\n conv0: extractConvWithBatchNormParams('conv0'),\n conv1: extractConvWithBatchNormParams('conv1'),\n conv2: extractConvWithBatchNormParams('conv2'),\n conv3: extractConvWithBatchNormParams('conv3'),\n conv4: extractConvWithBatchNormParams('conv4'),\n conv5: extractConvWithBatchNormParams('conv5'),\n conv6: extractConvWithBatchNormParams('conv6'),\n conv7: extractConvWithBatchNormParams('conv7'),\n conv8: extractConvParams('conv8'),\n };\n }\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n return { params, paramMappings };\n}\n", "export interface ITinyYolov2Options {\n inputSize?: number\n scoreThreshold?: number\n}\n\nexport class TinyYolov2Options {\n protected _name = 'TinyYolov2Options';\n\n private _inputSize: number;\n\n private _scoreThreshold: number;\n\n constructor({ inputSize, scoreThreshold }: ITinyYolov2Options = {}) {\n this._inputSize = inputSize || 416;\n this._scoreThreshold = scoreThreshold || 0.5;\n\n if (typeof this._inputSize !== 'number' || this._inputSize % 32 !== 0) {\n throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);\n }\n\n if (typeof this._scoreThreshold !== 'number' || this._scoreThreshold <= 0 || this._scoreThreshold >= 1) {\n throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`);\n }\n }\n\n get inputSize(): number { return this._inputSize; }\n\n get scoreThreshold(): number { return this._scoreThreshold; }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { BoundingBox } from '../classes/BoundingBox';\nimport { Dimensions } from '../classes/Dimensions';\nimport { ObjectDetection } from '../classes/ObjectDetection';\nimport { convLayer } from '../common/index';\nimport { ConvParams, SeparableConvParams } from '../common/types';\nimport { toNetInput } from '../dom/index';\nimport { NetInput } from '../dom/NetInput';\nimport { TNetInput } from '../dom/types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { sigmoid } from '../ops/index';\nimport { nonMaxSuppression } from '../ops/nonMaxSuppression';\nimport { normalize } from '../ops/normalize';\nimport { TinyYolov2Config, validateConfig } from './config';\nimport { convWithBatchNorm } from './convWithBatchNorm';\nimport { depthwiseSeparableConv } from './depthwiseSeparableConv';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { leaky } from './leaky';\nimport { ITinyYolov2Options, TinyYolov2Options } from './TinyYolov2Options';\nimport { DefaultTinyYolov2NetParams, MobilenetParams, TinyYolov2NetParams } from './types';\n\nexport class TinyYolov2Base extends NeuralNetwork {\n public static DEFAULT_FILTER_SIZES = [3, 16, 32, 64, 128, 256, 512, 1024, 1024];\n\n private _config: TinyYolov2Config;\n\n constructor(config: TinyYolov2Config) {\n super('TinyYolov2');\n validateConfig(config);\n this._config = config;\n }\n\n public get config(): TinyYolov2Config {\n return this._config;\n }\n\n public get withClassScores(): boolean {\n return this.config.withClassScores || this.config.classes.length > 1;\n }\n\n public get boxEncodingSize(): number {\n return 5 + (this.withClassScores ? this.config.classes.length : 0);\n }\n\n public runTinyYolov2(x: tf.Tensor4D, params: DefaultTinyYolov2NetParams): tf.Tensor4D {\n let out = convWithBatchNorm(x, params.conv0);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv1);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv2);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv3);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv4);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv5);\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\n out = convWithBatchNorm(out, params.conv6);\n out = convWithBatchNorm(out, params.conv7);\n return convLayer(out, params.conv8, 'valid', false);\n }\n\n public runMobilenet(x: tf.Tensor4D, params: MobilenetParams): tf.Tensor4D {\n let out = this.config.isFirstLayerConv2d\n ? leaky(convLayer(x, params.conv0 as ConvParams, 'valid', false))\n : depthwiseSeparableConv(x, params.conv0 as SeparableConvParams);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv1);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv2);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv3);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv4);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv5);\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\n out = params.conv6 ? depthwiseSeparableConv(out, params.conv6) : out;\n out = params.conv7 ? depthwiseSeparableConv(out, params.conv7) : out;\n return convLayer(out, params.conv8, 'valid', false);\n }\n\n public forwardInput(input: NetInput, inputSize: number): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('TinyYolov2 - load model before inference');\n }\n\n return tf.tidy(() => {\n let batchTensor = tf.cast(input.toBatchTensor(inputSize, false), 'float32');\n batchTensor = this.config.meanRgb\n ? normalize(batchTensor, this.config.meanRgb)\n : batchTensor;\n batchTensor = batchTensor.div(255) as tf.Tensor4D;\n return this.config.withSeparableConvs\n ? this.runMobilenet(batchTensor, params as MobilenetParams)\n : this.runTinyYolov2(batchTensor, params as DefaultTinyYolov2NetParams);\n });\n }\n\n public async forward(input: TNetInput, inputSize: number): Promise {\n return this.forwardInput(await toNetInput(input), inputSize);\n }\n\n public async detect(input: TNetInput, forwardParams: ITinyYolov2Options = {}): Promise {\n const { inputSize, scoreThreshold } = new TinyYolov2Options(forwardParams);\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput, inputSize);\n const out0 = tf.tidy(() => tf.unstack(out)[0].expandDims()) as tf.Tensor4D;\n const inputDimensions = {\n width: netInput.getInputWidth(0),\n height: netInput.getInputHeight(0),\n };\n\n const results = await this.extractBoxes(out0, netInput.getReshapedInputDimensions(0), scoreThreshold);\n out.dispose();\n out0.dispose();\n\n const boxes = results.map((res) => res.box);\n const scores = results.map((res) => res.score);\n const classScores = results.map((res) => res.classScore);\n const classNames = results.map((res) => this.config.classes[res.label]);\n\n const indices = nonMaxSuppression(\n boxes.map((box) => box.rescale(inputSize)),\n scores,\n this.config.iouThreshold,\n true,\n );\n\n const detections = indices.map((idx) => new ObjectDetection(\n scores[idx],\n classScores[idx],\n classNames[idx],\n boxes[idx],\n inputDimensions,\n ));\n return detections;\n }\n\n protected getDefaultModelName(): string {\n return '';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap, this.config);\n }\n\n protected extractParams(weights: Float32Array) {\n const filterSizes = this.config.filterSizes || TinyYolov2Base.DEFAULT_FILTER_SIZES;\n\n const numFilters = filterSizes ? filterSizes.length : undefined;\n if (numFilters !== 7 && numFilters !== 8 && numFilters !== 9) {\n throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${numFilters} filterSizes in config`);\n }\n return extractParams(weights, this.config, this.boxEncodingSize, filterSizes);\n }\n\n protected async extractBoxes(\n outputTensor: tf.Tensor4D,\n inputBlobDimensions: Dimensions,\n scoreThreshold?: number,\n ) {\n const { width, height } = inputBlobDimensions;\n const inputSize = Math.max(width, height);\n const correctionFactorX = inputSize / width;\n const correctionFactorY = inputSize / height;\n\n const numCells = outputTensor.shape[1];\n const numBoxes = this.config.anchors.length;\n\n const [boxesTensor, scoresTensor, classScoresTensor] = tf.tidy(() => {\n const reshaped = outputTensor.reshape([numCells, numCells, numBoxes, this.boxEncodingSize]);\n\n const boxes = reshaped.slice([0, 0, 0, 0], [numCells, numCells, numBoxes, 4]);\n const scores = reshaped.slice([0, 0, 0, 4], [numCells, numCells, numBoxes, 1]);\n const classScores = this.withClassScores\n ? tf.softmax(reshaped.slice([0, 0, 0, 5], [numCells, numCells, numBoxes, this.config.classes.length]), 3)\n : tf.scalar(0);\n return [boxes, scores, classScores];\n });\n\n const results = [] as any;\n const scoresData = await scoresTensor.array();\n const boxesData = await boxesTensor.array();\n for (let row = 0; row < numCells; row++) {\n for (let col = 0; col < numCells; col++) {\n for (let anchor = 0; anchor < numBoxes; anchor++) {\n const score = sigmoid(scoresData[row][col][anchor][0]);\n if (!scoreThreshold || score > scoreThreshold) {\n const ctX = ((col + sigmoid(boxesData[row][col][anchor][0])) / numCells) * correctionFactorX;\n const ctY = ((row + sigmoid(boxesData[row][col][anchor][1])) / numCells) * correctionFactorY;\n const widthLocal = ((Math.exp(boxesData[row][col][anchor][2]) * this.config.anchors[anchor].x) / numCells) * correctionFactorX;\n const heightLocal = ((Math.exp(boxesData[row][col][anchor][3]) * this.config.anchors[anchor].y) / numCells) * correctionFactorY;\n const x = (ctX - (widthLocal / 2));\n const y = (ctY - (heightLocal / 2));\n const pos = { row, col, anchor };\n const { classScore, label } = this.withClassScores\n ? await this.extractPredictedClass(classScoresTensor as tf.Tensor4D, pos)\n : { classScore: 1, label: 0 };\n results.push({\n box: new BoundingBox(x, y, x + widthLocal, y + heightLocal),\n score,\n classScore: score * classScore,\n label,\n ...pos,\n });\n }\n }\n }\n }\n\n boxesTensor.dispose();\n scoresTensor.dispose();\n classScoresTensor.dispose();\n return results;\n }\n\n private async extractPredictedClass(classesTensor: tf.Tensor4D, pos: { row: number, col: number, anchor: number }) {\n const { row, col, anchor } = pos;\n const classesData = await classesTensor.array();\n return Array(this.config.classes.length).fill(0)\n .map((_, i) => classesData[row][col][anchor][i])\n .map((classScore, label) => ({\n classScore,\n label,\n }))\n .reduce((max, curr) => (max.classScore > curr.classScore ? max : curr));\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection, Point } from '../classes/index';\nimport { ParamMapping } from '../common/types';\nimport { TNetInput } from '../dom/types';\nimport {\n BOX_ANCHORS,\n BOX_ANCHORS_SEPARABLE,\n DEFAULT_MODEL_NAME,\n DEFAULT_MODEL_NAME_SEPARABLE_CONV,\n IOU_THRESHOLD,\n MEAN_RGB_SEPARABLE,\n} from './const';\nimport { TinyYolov2Base } from './TinyYolov2Base';\nimport { ITinyYolov2Options } from './TinyYolov2Options';\nimport { TinyYolov2NetParams } from './types';\n\nexport class TinyYolov2 extends TinyYolov2Base {\n constructor(withSeparableConvs = true) {\n const config = {\n withSeparableConvs,\n iouThreshold: IOU_THRESHOLD,\n classes: ['face'],\n ...(withSeparableConvs\n ? {\n anchors: BOX_ANCHORS_SEPARABLE,\n meanRgb: MEAN_RGB_SEPARABLE,\n }\n : {\n anchors: BOX_ANCHORS,\n withClassScores: true,\n }),\n };\n\n super(config);\n }\n\n public get withSeparableConvs(): boolean {\n return this.config.withSeparableConvs;\n }\n\n public get anchors(): Point[] {\n return this.config.anchors;\n }\n\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\n const objectDetections = await this.detect(input, forwardParams);\n return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }));\n }\n\n protected override getDefaultModelName(): string {\n return this.withSeparableConvs ? DEFAULT_MODEL_NAME_SEPARABLE_CONV : DEFAULT_MODEL_NAME;\n }\n\n protected override extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n return super.extractParamsFromWeightMap(weightMap);\n }\n}\n", "import { TinyYolov2 } from './TinyYolov2';\n\nexport * from './TinyYolov2Options';\nexport * from './config';\nexport * from './types';\nexport { TinyYolov2 };\n\nexport function createTinyYolov2(weights: Float32Array, withSeparableConvs = true) {\n const net = new TinyYolov2(withSeparableConvs);\n net.extractWeights(weights);\n return net;\n}\n", "import { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\n\nexport type ITinyFaceDetectorOptions = ITinyYolov2Options\n\nexport class TinyFaceDetectorOptions extends TinyYolov2Options {\n protected override _name = 'TinyFaceDetectorOptions';\n}\n", "export class ComposableTask {\n // eslint-disable-next-line no-unused-vars\n public async then(onfulfilled: (value: T) => T | PromiseLike): Promise {\n return onfulfilled(await this.run());\n }\n\n public async run(): Promise {\n throw new Error('ComposableTask - run is not implemented');\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { extractFaces, extractFaceTensors, TNetInput } from '../dom/index';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\n\nexport async function extractAllFacesAndComputeResults, TResult>(\n parentResults: TSource[],\n input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n computeResults: (faces: Array) => Promise,\n extractedFaces?: Array | null,\n // eslint-disable-next-line no-unused-vars\n getRectForAlignment: (parentResult: WithFaceLandmarks) => FaceDetection = ({ alignedRect }) => alignedRect,\n) {\n const faceBoxes = parentResults.map((parentResult) => (isWithFaceLandmarks(parentResult)\n ? getRectForAlignment(parentResult)\n : parentResult.detection));\n const faces: Array = extractedFaces || (\n input instanceof tf.Tensor\n ? await extractFaceTensors(input, faceBoxes)\n : await extractFaces(input, faceBoxes)\n );\n const results = await computeResults(faces);\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n return results;\n}\n\nexport async function extractSingleFaceAndComputeResult, TResult>(\n parentResult: TSource,\n input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n computeResult: (face: HTMLCanvasElement | tf.Tensor3D) => Promise,\n extractedFaces?: Array | null,\n // eslint-disable-next-line no-unused-vars\n getRectForAlignment?: (parentResultLocal: WithFaceLandmarks) => FaceDetection,\n) {\n return extractAllFacesAndComputeResults(\n [parentResult],\n input,\n async (faces) => computeResult(faces[0]),\n extractedFaces,\n getRectForAlignment,\n );\n}\n", "import { Point } from '../classes/index';\n\nexport const IOU_THRESHOLD = 0.4;\n\nexport const BOX_ANCHORS = [\n new Point(1.603231, 2.094468),\n new Point(6.041143, 7.080126),\n new Point(2.882459, 3.518061),\n new Point(4.266906, 5.178857),\n new Point(9.041765, 10.66308),\n];\n\nexport const MEAN_RGB: [number, number, number] = [117.001, 114.697, 97.404];\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection, Point } from '../classes/index';\nimport { ParamMapping } from '../common/index';\nimport { TNetInput } from '../dom/index';\nimport { ITinyYolov2Options } from '../tinyYolov2/index';\nimport { TinyYolov2Base } from '../tinyYolov2/TinyYolov2Base';\nimport { TinyYolov2NetParams } from '../tinyYolov2/types';\nimport { BOX_ANCHORS, IOU_THRESHOLD, MEAN_RGB } from './const';\n\nexport class TinyFaceDetector extends TinyYolov2Base {\n constructor() {\n const config = {\n withSeparableConvs: true,\n iouThreshold: IOU_THRESHOLD,\n classes: ['face'],\n anchors: BOX_ANCHORS,\n meanRgb: MEAN_RGB,\n isFirstLayerConv2d: true,\n filterSizes: [3, 16, 32, 64, 128, 256, 512],\n };\n\n super(config);\n }\n\n public get anchors(): Point[] {\n return this.config.anchors;\n }\n\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\n const objectDetections = await this.detect(input, forwardParams);\n return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }));\n }\n\n protected override getDefaultModelName(): string {\n return 'tiny_face_detector_model';\n }\n\n protected override extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n return super.extractParamsFromWeightMap(weightMap);\n }\n}\n", "import { AgeGenderNet } from '../ageGenderNet/AgeGenderNet';\nimport { AgeAndGenderPrediction } from '../ageGenderNet/types';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { TNetInput } from '../dom/index';\nimport { FaceExpressionNet } from '../faceExpressionNet/FaceExpressionNet';\nimport { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\nimport { FaceRecognitionNet } from '../faceRecognitionNet/FaceRecognitionNet';\nimport { SsdMobilenetv1 } from '../ssdMobilenetv1/SsdMobilenetv1';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { TinyFaceDetector } from '../tinyFaceDetector/TinyFaceDetector';\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\nimport { ITinyYolov2Options, TinyYolov2 } from '../tinyYolov2/index';\n\nexport const nets = {\n ssdMobilenetv1: new SsdMobilenetv1(),\n tinyFaceDetector: new TinyFaceDetector(),\n tinyYolov2: new TinyYolov2(),\n faceLandmark68Net: new FaceLandmark68Net(),\n faceLandmark68TinyNet: new FaceLandmark68TinyNet(),\n faceRecognitionNet: new FaceRecognitionNet(),\n faceExpressionNet: new FaceExpressionNet(),\n ageGenderNet: new AgeGenderNet(),\n};\n\n/**\n * Attempts to detect all faces in an image using SSD Mobilenetv1 Network.\n *\n * @param input The input image.\n * @param options (optional, default: see SsdMobilenetv1Options constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const ssdMobilenetv1 = (input: TNetInput, options: SsdMobilenetv1Options): Promise => nets.ssdMobilenetv1.locateFaces(input, options);\n\n/**\n * Attempts to detect all faces in an image using the Tiny Face Detector.\n *\n * @param input The input image.\n * @param options (optional, default: see TinyFaceDetectorOptions constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const tinyFaceDetector = (input: TNetInput, options: TinyFaceDetectorOptions): Promise => nets.tinyFaceDetector.locateFaces(input, options);\n\n/**\n * Attempts to detect all faces in an image using the Tiny Yolov2 Network.\n *\n * @param input The input image.\n * @param options (optional, default: see TinyYolov2Options constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const tinyYolov2 = (input: TNetInput, options: ITinyYolov2Options): Promise => nets.tinyYolov2.locateFaces(input, options);\n\n/**\n * Detects the 68 point face landmark positions of the face shown in an image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns 68 point face landmarks or array thereof in case of batch input.\n */\nexport const detectFaceLandmarks = (input: TNetInput): Promise => nets.faceLandmark68Net.detectLandmarks(input);\n\n/**\n * Detects the 68 point face landmark positions of the face shown in an image\n * using a tinier version of the 68 point face landmark model, which is slightly\n * faster at inference, but also slightly less accurate.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns 68 point face landmarks or array thereof in case of batch input.\n */\nexport const detectFaceLandmarksTiny = (input: TNetInput): Promise => nets.faceLandmark68TinyNet.detectLandmarks(input);\n\n/**\n * Computes a 128 entry vector (face descriptor / face embeddings) from the face shown in an image,\n * which uniquely represents the features of that persons face. The computed face descriptor can\n * be used to measure the similarity between faces, by computing the euclidean distance of two\n * face descriptors.\n *\n * @param inputs The face image extracted from the aligned bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Face descriptor with 128 entries or array thereof in case of batch input.\n */\nexport const computeFaceDescriptor = (input: TNetInput): Promise => nets.faceRecognitionNet.computeFaceDescriptor(input);\n\n/**\n * Recognizes the facial expressions from a face image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Facial expressions with corresponding probabilities or array thereof in case of batch input.\n */\nexport const recognizeFaceExpressions = (input: TNetInput): Promise => nets.faceExpressionNet.predictExpressions(input);\n\n/**\n * Predicts age and gender from a face image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Predictions with age, gender and gender probability or array thereof in case of batch input.\n */\nexport const predictAgeAndGender = (input: TNetInput): Promise => nets.ageGenderNet.predictAgeAndGender(input);\n\nexport const loadSsdMobilenetv1Model = (url: string) => nets.ssdMobilenetv1.load(url);\nexport const loadTinyFaceDetectorModel = (url: string) => nets.tinyFaceDetector.load(url);\nexport const loadTinyYolov2Model = (url: string) => nets.tinyYolov2.load(url);\nexport const loadFaceLandmarkModel = (url: string) => nets.faceLandmark68Net.load(url);\nexport const loadFaceLandmarkTinyModel = (url: string) => nets.faceLandmark68TinyNet.load(url);\nexport const loadFaceRecognitionModel = (url: string) => nets.faceRecognitionNet.load(url);\nexport const loadFaceExpressionModel = (url: string) => nets.faceExpressionNet.load(url);\nexport const loadAgeGenderModel = (url: string) => nets.ageGenderNet.load(url);\n\n// backward compatibility\nexport const loadFaceDetectionModel = loadSsdMobilenetv1Model;\nexport const locateFaces = ssdMobilenetv1;\nexport const detectLandmarks = detectFaceLandmarks;\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { TNetInput } from '../dom/index';\nimport { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { extendWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport { PredictAllAgeAndGenderTask, PredictAllAgeAndGenderWithFaceAlignmentTask, PredictSingleAgeAndGenderTask, PredictSingleAgeAndGenderWithFaceAlignmentTask } from './PredictAgeAndGenderTask';\n\nexport class PredictFaceExpressionsTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected extractedFaces?: Array,\n ) {\n super();\n }\n}\n\nexport class PredictAllFaceExpressionsTask> extends PredictFaceExpressionsTaskBase[], TSource[]> {\n public override async run(): Promise[]> {\n const parentResults = await this.parentTask;\n\n const faceExpressionsByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(\n faces.map((face) => nets.faceExpressionNet.predictExpressions(face) as Promise),\n ),\n this.extractedFaces,\n );\n\n return parentResults.map(\n (parentResult, i) => extendWithFaceExpressions(parentResult, faceExpressionsByFace[i]),\n );\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderTask(this, this.input);\n }\n}\n\nexport class PredictSingleFaceExpressionsTask> extends PredictFaceExpressionsTaskBase | undefined, TSource | undefined> {\n public override async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const faceExpressions = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.faceExpressionNet.predictExpressions(face) as Promise,\n this.extractedFaces,\n );\n\n return extendWithFaceExpressions(parentResult, faceExpressions);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderTask(this, this.input);\n }\n}\n\nexport class PredictAllFaceExpressionsWithFaceAlignmentTask>> extends PredictAllFaceExpressionsTask {\n override withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class PredictSingleFaceExpressionsWithFaceAlignmentTask>> extends PredictSingleFaceExpressionsTask {\n override withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { AgeAndGenderPrediction } from '../ageGenderNet/types';\nimport { TNetInput } from '../dom/index';\nimport { extendWithAge, WithAge } from '../factories/WithAge';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { extendWithGender, WithGender } from '../factories/WithGender';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport { PredictAllFaceExpressionsTask, PredictAllFaceExpressionsWithFaceAlignmentTask, PredictSingleFaceExpressionsTask, PredictSingleFaceExpressionsWithFaceAlignmentTask } from './PredictFaceExpressionsTask';\n\nexport class PredictAgeAndGenderTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected extractedFaces?: Array,\n ) {\n super();\n }\n}\n\nexport class PredictAllAgeAndGenderTask> extends PredictAgeAndGenderTaskBase>[], TSource[]> {\n public override async run(): Promise>[]> {\n const parentResults = await this.parentTask;\n const ageAndGenderByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(faces.map((face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise)),\n this.extractedFaces,\n );\n return parentResults.map((parentResult, i) => {\n const { age, gender, genderProbability } = ageAndGenderByFace[i];\n return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n });\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictSingleAgeAndGenderTask> extends PredictAgeAndGenderTaskBase> | undefined, TSource | undefined> {\n public override async run(): Promise> | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) return undefined;\n const { age, gender, genderProbability } = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise,\n this.extractedFaces,\n );\n return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictAllAgeAndGenderWithFaceAlignmentTask>> extends PredictAllAgeAndGenderTask {\n override withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class PredictSingleAgeAndGenderWithFaceAlignmentTask>> extends PredictSingleAgeAndGenderTask {\n override withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { TNetInput } from '../dom/index';\nimport { extendWithFaceDescriptor, WithFaceDescriptor } from '../factories/WithFaceDescriptor';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport { PredictAllAgeAndGenderWithFaceAlignmentTask, PredictSingleAgeAndGenderWithFaceAlignmentTask } from './PredictAgeAndGenderTask';\nimport { PredictAllFaceExpressionsWithFaceAlignmentTask, PredictSingleFaceExpressionsWithFaceAlignmentTask } from './PredictFaceExpressionsTask';\n\nexport class ComputeFaceDescriptorsTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n ) {\n super();\n }\n}\n\nexport class ComputeAllFaceDescriptorsTask>> extends ComputeFaceDescriptorsTaskBase[], TSource[]> {\n public override async run(): Promise[]> {\n const parentResults = await this.parentTask;\n const descriptors = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n (faces) => Promise.all(faces.map((face) => nets.faceRecognitionNet.computeFaceDescriptor(face) as Promise)),\n null,\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\n );\n return descriptors.map((descriptor, i) => extendWithFaceDescriptor(parentResults[i], descriptor));\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n}\n\nexport class ComputeSingleFaceDescriptorTask>> extends ComputeFaceDescriptorsTaskBase | undefined, TSource | undefined> {\n public override async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) return undefined;\n const descriptor = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.faceRecognitionNet.computeFaceDescriptor(face) as Promise,\n null,\n // eslint-disable-next-line no-shadow, @typescript-eslint/no-shadow\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\n );\n return extendWithFaceDescriptor(parentResult, descriptor);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { extractFaces, extractFaceTensors, TNetInput } from '../dom/index';\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { extendWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { nets } from './nets';\nimport { PredictAllAgeAndGenderWithFaceAlignmentTask, PredictSingleAgeAndGenderWithFaceAlignmentTask } from './PredictAgeAndGenderTask';\nimport { PredictAllFaceExpressionsWithFaceAlignmentTask, PredictSingleFaceExpressionsWithFaceAlignmentTask } from './PredictFaceExpressionsTask';\n\nexport class DetectFaceLandmarksTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected useTinyLandmarkNet: boolean,\n ) {\n super();\n }\n\n protected get landmarkNet(): FaceLandmark68Net | FaceLandmark68TinyNet {\n return this.useTinyLandmarkNet\n ? nets.faceLandmark68TinyNet\n : nets.faceLandmark68Net;\n }\n}\n\nexport class DetectAllFaceLandmarksTask> extends DetectFaceLandmarksTaskBase[], TSource[]> {\n public override async run(): Promise[]> {\n const parentResults = await this.parentTask;\n const detections = parentResults.map((res) => res.detection);\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, detections)\n : await extractFaces(this.input, detections);\n const faceLandmarksByFace = await Promise.all(faces.map((face) => this.landmarkNet.detectLandmarks(face))) as FaceLandmarks68[];\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n const result = parentResults\n .filter((_parentResult, i) => faceLandmarksByFace[i])\n .map((parentResult, i) => extendWithFaceLandmarks(parentResult, faceLandmarksByFace[i]));\n return result;\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class DetectSingleFaceLandmarksTask> extends DetectFaceLandmarksTaskBase | undefined, TSource | undefined> {\n public override async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n const { detection } = parentResult;\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, [detection])\n : await extractFaces(this.input, [detection]);\n const landmarks = await this.landmarkNet.detectLandmarks(faces[0]) as FaceLandmarks68;\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n return extendWithFaceLandmarks(parentResult, landmarks);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { TNetInput } from '../dom/index';\nimport { extendWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\nimport { TinyYolov2Options } from '../tinyYolov2/index';\nimport { ComposableTask } from './ComposableTask';\nimport { DetectAllFaceLandmarksTask, DetectSingleFaceLandmarksTask } from './DetectFaceLandmarksTasks';\nimport { nets } from './nets';\nimport { PredictAllAgeAndGenderTask, PredictSingleAgeAndGenderTask } from './PredictAgeAndGenderTask';\nimport { PredictAllFaceExpressionsTask, PredictSingleFaceExpressionsTask } from './PredictFaceExpressionsTask';\nimport { FaceDetectionOptions } from './types';\n\nexport class DetectFacesTaskBase extends ComposableTask {\n // eslint-disable-next-line no-unused-vars\n constructor(protected input: TNetInput, protected options: FaceDetectionOptions = new SsdMobilenetv1Options()) {\n super();\n }\n}\n\nexport class DetectAllFacesTask extends DetectFacesTaskBase {\n public override async run(): Promise {\n const { input, options } = this;\n let result;\n if (options instanceof TinyFaceDetectorOptions) result = nets.tinyFaceDetector.locateFaces(input, options);\n else if (options instanceof SsdMobilenetv1Options) result = nets.ssdMobilenetv1.locateFaces(input, options);\n else if (options instanceof TinyYolov2Options) result = nets.tinyYolov2.locateFaces(input, options);\n else throw new Error('detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options');\n return result;\n }\n\n private runAndExtendWithFaceDetections(): Promise[]> {\n return new Promise[]>((resolve, reject) => {\n this.run()\n .then((detections) => resolve(detections.map((detection) => extendWithFaceDetection({}, detection))))\n .catch((err) => reject(err));\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet = false) {\n return new DetectAllFaceLandmarksTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n useTinyLandmarkNet,\n );\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n );\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n );\n }\n}\n\nexport class DetectSingleFaceTask extends DetectFacesTaskBase {\n public override async run(): Promise {\n const faceDetections = await new DetectAllFacesTask(this.input, this.options);\n let faceDetectionWithHighestScore = faceDetections[0];\n faceDetections.forEach((faceDetection) => {\n if (faceDetection.score > faceDetectionWithHighestScore.score) faceDetectionWithHighestScore = faceDetection;\n });\n return faceDetectionWithHighestScore;\n }\n\n private runAndExtendWithFaceDetection(): Promise | undefined> {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise | undefined>(async (resolve) => {\n const detection = await this.run();\n resolve(detection ? extendWithFaceDetection<{}>({}, detection) : undefined);\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet = false) {\n return new DetectSingleFaceLandmarksTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n useTinyLandmarkNet,\n );\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n );\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n );\n }\n}\n", "import { TNetInput } from '../dom/index';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { DetectAllFacesTask, DetectSingleFaceTask } from './DetectFacesTasks';\nimport { FaceDetectionOptions } from './types';\n\nexport function detectSingleFace(input: TNetInput, options: FaceDetectionOptions = new SsdMobilenetv1Options()): DetectSingleFaceTask {\n return new DetectSingleFaceTask(input, options);\n}\n\nexport function detectAllFaces(input: TNetInput, options: FaceDetectionOptions = new SsdMobilenetv1Options()): DetectAllFacesTask {\n return new DetectAllFacesTask(input, options);\n}\n", "import { TNetInput } from '../dom/index';\nimport { WithFaceDescriptor, WithFaceDetection, WithFaceLandmarks } from '../factories/index';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/index';\nimport { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\nimport { detectAllFaces } from './detectFaces';\n\nexport async function allFacesSsdMobilenetv1(input: TNetInput, minConfidence?: number): Promise>>[]> {\n return detectAllFaces(input, new SsdMobilenetv1Options(minConfidence ? { minConfidence } : {}))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport async function allFacesTinyYolov2(input: TNetInput, forwardParams: ITinyYolov2Options = {}): Promise>>[]> {\n return detectAllFaces(input, new TinyYolov2Options(forwardParams))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport const allFaces = allFacesSsdMobilenetv1;\n", "export function euclideanDistance(arr1: number[] | Float32Array, arr2: number[] | Float32Array) {\n if (arr1.length !== arr2.length) throw new Error('euclideanDistance: arr1.length !== arr2.length');\n const desc1 = Array.from(arr1);\n const desc2 = Array.from(arr2);\n return Math.sqrt(\n desc1\n .map((val, i) => val - desc2[i])\n .reduce((res, diff) => res + (diff * diff), 0),\n );\n}\n", "import { FaceMatch } from '../classes/FaceMatch';\nimport { LabeledFaceDescriptors } from '../classes/LabeledFaceDescriptors';\nimport { euclideanDistance } from '../euclideanDistance';\nimport { WithFaceDescriptor } from '../factories/index';\n\nexport class FaceMatcher {\n private _labeledDescriptors: LabeledFaceDescriptors[];\n private _distanceThreshold: number;\n\n constructor(inputs: LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>, distanceThreshold = 0.6) {\n this._distanceThreshold = distanceThreshold;\n const inputArray = Array.isArray(inputs) ? inputs : [inputs];\n if (!inputArray.length) throw new Error('FaceRecognizer.constructor - expected atleast one input');\n let count = 1;\n const createUniqueLabel = () => `person ${count++}`;\n this._labeledDescriptors = inputArray.map((desc) => {\n if (desc instanceof LabeledFaceDescriptors) return desc;\n if (desc instanceof Float32Array) return new LabeledFaceDescriptors(createUniqueLabel(), [desc]);\n if (desc.descriptor && desc.descriptor instanceof Float32Array) return new LabeledFaceDescriptors(createUniqueLabel(), [desc.descriptor]);\n throw new Error('FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>');\n });\n }\n\n public get labeledDescriptors(): LabeledFaceDescriptors[] { return this._labeledDescriptors; }\n\n public get distanceThreshold(): number { return this._distanceThreshold; }\n\n public computeMeanDistance(queryDescriptor: Float32Array, descriptors: Float32Array[]): number {\n return descriptors\n .map((d) => euclideanDistance(d, queryDescriptor))\n .reduce((d1, d2) => d1 + d2, 0) / (descriptors.length || 1);\n }\n\n public matchDescriptor(queryDescriptor: Float32Array): FaceMatch {\n return this.labeledDescriptors\n .map(({ descriptors, label }) => new FaceMatch(label, this.computeMeanDistance(queryDescriptor, descriptors)))\n .reduce((best, curr) => (best.distance < curr.distance ? best : curr));\n }\n\n public findBestMatch(queryDescriptor: Float32Array): FaceMatch {\n const bestMatch = this.matchDescriptor(queryDescriptor);\n return (bestMatch.distance < this._distanceThreshold) ? bestMatch : new FaceMatch('unknown', bestMatch.distance);\n }\n\n public toJSON(): any {\n return {\n distanceThreshold: this._distanceThreshold,\n labeledDescriptors: this._labeledDescriptors.map((ld) => ld.toJSON()),\n };\n }\n\n public static fromJSON(json: any): FaceMatcher {\n const labeledDescriptors = json.labeledDescriptors.map((ld: any) => LabeledFaceDescriptors.fromJSON(ld));\n return new FaceMatcher(labeledDescriptors, json.distanceThreshold);\n }\n}\n", "import { TinyFaceDetector } from './TinyFaceDetector';\n\nexport * from './TinyFaceDetector';\nexport * from './TinyFaceDetectorOptions';\n\nexport function createTinyFaceDetector(weights: Float32Array) {\n const net = new TinyFaceDetector();\n net.extractWeights(weights);\n return net;\n}\n", "import { Dimensions, IDimensions } from './classes/index';\nimport { FaceDetection } from './classes/FaceDetection';\nimport { FaceLandmarks } from './classes/FaceLandmarks';\nimport { extendWithFaceDetection, isWithFaceDetection } from './factories/WithFaceDetection';\nimport { extendWithFaceLandmarks, isWithFaceLandmarks } from './factories/WithFaceLandmarks';\n\nexport function resizeResults(results: T, dimensions: IDimensions): T {\n const { width, height } = new Dimensions(dimensions.width, dimensions.height);\n\n if (width <= 0 || height <= 0) {\n throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({ width, height })}`);\n }\n\n if (Array.isArray(results)) {\n // return results.map(obj => resizeResults(obj, { width, height })) as any as T\n return (results as Array).map((obj) => resizeResults(obj, { width, height } as IDimensions)) as any as T;\n }\n\n if (isWithFaceLandmarks(results)) {\n const resizedDetection = results.detection.forSize(width, height);\n const resizedLandmarks = results.unshiftedLandmarks.forSize(resizedDetection.box.width, resizedDetection.box.height);\n return extendWithFaceLandmarks(extendWithFaceDetection(results, resizedDetection), resizedLandmarks);\n }\n\n if (isWithFaceDetection(results)) {\n return extendWithFaceDetection(results, results.detection.forSize(width, height));\n }\n\n if (results instanceof FaceLandmarks || results instanceof FaceDetection) {\n return (results as any).forSize(width, height);\n }\n\n return results;\n}\n", "import * as tf from '../dist/tfjs.esm';\nimport * as draw from './draw/index';\nimport * as utils from './utils/index';\nimport * as pkg from '../package.json';\n\nexport { tf, draw, utils };\n\nexport * from './ageGenderNet/index';\nexport * from './classes/index';\nexport * from './dom/index';\nexport * from './env/index';\nexport * from './faceExpressionNet/index';\nexport * from './faceLandmarkNet/index';\nexport * from './faceRecognitionNet/index';\nexport * from './factories/index';\nexport * from './globalApi/index';\nexport * from './ops/index';\nexport * from './ssdMobilenetv1/index';\nexport * from './tinyFaceDetector/index';\nexport * from './tinyYolov2/index';\nexport * from './euclideanDistance';\nexport * from './NeuralNetwork';\nexport * from './resizeResults';\n\nexport const version = pkg.version as string;\n\n// set webgl defaults\n// if (browser) tf.ENV.set('WEBGL_USE_SHAPES_UNIFORMS', true);\n"], + "mappings": "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AAI,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,O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AM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,EAAE,CAAC,OAAO,OAAO,KAAK,aAAa,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,EAAE,CAAC,OAAO,OAAO,KAAK,aAAa,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,QAAQ,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aA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", + "names": ["tfjs_esm_exports", "__export", "ii", "oa", "sa", "cu", "pu", "mu", "fu", "Zn", "Go", "ia", "aa", "Wo", "kl", "la", "ua", "ca", "ma", "pa", "Uo", "El", "lp", "ap", "cg", "Ho", "ai", "up", "cp", "p1", "Sb", "Py", "lo", "qo", "uo", "pp", "_l", "li", "Ko", "mp", "jo", "Al", "fp", "dp", "Xo", "Yo", "da", "fa", "Zo", "My", "ra", "hp", "ha", "Jo", "gp", "xp", "yp", "$l", "Xd", "jd", "iv", "vb", "bp", "ts", "wp", "qd", "xa", "ga", "es", "ui", "ya", "Cp", "Dl", "ba", "rs", "ns", "Yd", "os", "Ii", "Si", "Bc", "wa", "ci", "Ph", "Ca", "ss", "Ly", "Ip", "co", "Sp", "ye", "Ia", "Sa", "va", "zo", "Rl", "Np", "Ch", "Bn", "is", "Na", "Ta", "vp", "as", "ka", "f1", "Ea", "_a", "Aa", "m1", "xlt", "_u", "ls", "cs", "Fl", "kp", "Tp", "Ep", "us", "ps", "ms", "fs", "ds", "$a", "du", "_p", "hs", "pi", "Ra", "Fa", "Oa", "Da", "kv", "gs", "mi", "Wr", "Ws", "fi", "xs", "ylt", "ys", "bs", "ws", "hu", "Tn", "Ap", "$p", "Dp", "Ol", "xv", "Rp", "Qo", "Pa", "Xe", "Cs", "vs", "di", "Ss", "Op", "Is", "Fp", "Ns", "qa", "Ts", "ks", "Bi", "La", "Pp", "hi", "Ma", "qi", "_s", "Ba", "Es", "za", "gi", "Ds", "Va", "xi", "Pl", "Ga", "Ll", "Ml", "Lp", "yi", "As", "zl", "Rs", "po", "Wa", "Bl", "Vl", "Gl", "Fs", "$s", "Jr", "Os", "Ps", "Ft", "pe", "Jn", "Ua", "Ha", "Qn", "Mp", "bi", "Wl", "blt", "Ka", "wi", "Ci", "Ee", "ax", "lx", "X", "LE", "Zp", "qu", "Ai", "ux", "cx", "px", "mx", "fx", "dx", "Yl", "gx", "gE", "v", "BE", "Di", "xx", "yx", "bx", "Zl", "wx", "n6", "GE", "Ri", "Vr", "nx", "wt", "VZ", "J", "Cx", "Cr", "sn", "wn", "ne", "Ix", "Sx", "vx", "Nx", "K$", "Qp", "In", "em", "Tx", "Ex", "Tlt", "Jl", "rm", "hh", "Xu", "nm", "un", "AR", "ch", "Wv", "_x", "Fi", "HZ", "Kl", "WE", "Ax", "gpt", "vt", "xpt", "pt", "$x", "Dx", "l0", "UE", "Oi", "hpt", "dpt", "u0", "Pn", "z", "$r", "Rx", "Fx", "er", "rr", "Ox", "Yu", "au", "xo", "Spt", "vpt", "Pi", "Yp", "hM", "uu", "Li", "m6", "ox", "Cpt", "uv", "Jd", "zg", "olt", "ik", "bK", "wK", "Re", "ln", "tl", "Xl", "Gs", "h6", "j$", "P0", "_r", "xm", "Px", "Lx", "Mx", "De", "Ur", "ED", "Ql", "om", "Ln", "p0", "KE", "M7", "z7", "hD", "zx", "Sr", "tu", "Gx", "sm", "im", "Rr", "eu", "am", "Wx", "hX", "jE", "Lt", "yE", "Ir", "ru", "Hx", "XE", "Sn", "ve", "ah", "YE", "_D", "Ja", "Mi", "qx", "Kx", "q8", "AD", "Zu", "s6", "D", "ZE", "JE", "Ht", "gh", "Qa", "Bs", "Ei", "cr", "yr", "T", "QE", "cn", "t_", "e_", "r_", "n_", "jx", "an", "ou", "Jg", "Xx", "ypt", "o_", "s_", "i_", "a_", "v_", "tc", "N_", "zi", "su", "wpt", "Za", "ty", "Xp", "j8", "h1", "Lu", "UZ", "$D", "Fr", "lm", "Ipt", "R", "pr", "T_", "k_", "E_", "__", "lu", "um", "cm", "mt", "a6", "lh", "mh", "pm", "mm", "K8", "Q", "tH", "Npt", "nlt", "elt", "rlt", "wT", "A_", "Yr", "ey", "dX", "fm", "dm", "Rt", "hm", "dh", "gm", "ec", "Le", "iu", "zs", "nu", "gX", "c6", "fX", "mr", "Se", "Mt", "ym", "Mn", "nr", "bo", "ry", "xX", "ct", "ft", "Wu", "ny", "$i", "ur", "Me", "Vs", "rx", "$_", "D_", "R_", "go", "OE", "B", "Dr", "bpt", "oy", "ic", "Ot", "bm", "sy", "Nlt", "vlt", "wm", "vr", "sr", "F_", "y", "CK", "IK", "iy", "Bx", "plt", "cR", "PE", "Um", "slt", "dM", "Zke", "dd", "_e", "ly", "Ne", "It", "DU", "QS", "RU", "FU", "OU", "PU", "Pg", "r", "__require", "e", "gr", "Wt", "LU", "n", "o", "Tl", "T1", "Elt", "N1", "Ue", "mo", "t", "Fn", "g1", "x1", "zu", "He", "fo", "Mu", "ho", "C1", "v1", "b1", "Rn", "S1", "Vp", "Bg", "mv", "s", "i", "a", "u", "l", "Ls", "y1", "s4", "w1", "Bp", "I1", "pv", "gt", "c", "p", "m", "f", "d", "iE", "aE", "u_", "l_", "r0", "p_", "c_", "n0", "f_", "m_", "o0", "h_", "d_", "s0", "x_", "g_", "i0", "h", "g", "b_", "y_", "a0", "w_", "I_", "C_", "Yx", "w", "C", "N", "_", "A", "b", "$", "P", "V", "G", "W", "q", "H", "fh", "fNt", "S_", "lj", "uj", "cj", "pj", "mj", "fj", "Ju", "gN", "Zb", "ig", "BW", "VW", "GW", "WW", "fI", "Ok", "Fk", "st", "jt", "qe", "ke", "fe", "Ae", "_n", "or", "Hn", "Lr", "L", "U", "x", "F", "Ru", "Y", "ut", "xt", "Dt", "ie", "Mo", "j", "Z", "et", "rt", "ot", "at", "nt", "Yc", "dt", "ht", "bt", "kt", "_t", "Vt", "Gt", "Xt", "hr", "Xn", "Zt", "ce", "he", "We", "Mr", "zr", "qn", "Kn", "Xr", "Zi", "Il", "Rd", "Md", "Tr", "Ji", "Gk", "Fd", "Sl", "Xc", "Qi", "Wk", "Uk", "gI", "pg", "Od", "en", "mg", "xI", "yI", "vg", "EI", "Kt", "ea", "bI", "Hk", "wI", "CI", "YS", "II", "Pd", "fg", "dg", "Ld", "vl", "qk", "gg", "hg", "SI", "Ag", "zd", "vI", "ZS", "$g", "Kk", "jk", "NI", "e1", "Zc", "TI", "kI", "t1", "Xk", "_I", "AI", "Zk", "$I", "xg", "yg", "DI", "RI", "FI", "Qk", "OI", "PI", "LI", "Fu", "MI", "zI", "bg", "BI", "Jc", "VI", "GI", "Dg", "Jk", "Bd", "WI", "ZI", "UI", "HI", "qI", "wg", "Cg", "KI", "jI", "Ig", "Sg", "XI", "An", "rp", "o1", "n1", "JS", "$U", "YI", "Yk", "JI", "QI", "tS", "eS", "rS", "nS", "oS", "sS", "iS", "aS", "lS", "uS", "cS", "pS", "mS", "fS", "dS", "hS", "gS", "xS", "yS", "bS", "wS", "CS", "IS", "SS", "vS", "NS", "TS", "kS", "ES", "_S", "AS", "$S", "DS", "RS", "FS", "OS", "PS", "LS", "MS", "zS", "BS", "VS", "GS", "WS", "US", "HS", "Ng", "Tg", "Vd", "qS", "KS", "Qc", "kg", "tp", "ep", "jS", "K", "lt", "At", "re", "Ke", "je", "ee", "te", "dr", "jn", "ta", "Eg", "Gd", "XS", "rn", "Nl", "_g", "QW", "tU", "eU", "rU", "nU", "oU", "sU", "iU", "aU", "lU", "uU", "cU", "pU", "mU", "fU", "dU", "hU", "gU", "xU", "yU", "bU", "wU", "CU", "IU", "SU", "vU", "NU", "TU", "kU", "EU", "_U", "Rg", "r1", "Fg", "Og", "AU", "HW", "G5e", "UW", "qW", "dI", "Lk", "Pk", "ra", "zo", "$n", "s1", "Lg", "MU", "np", "zU", "BU", "VU", "GU", "E", "$e", "Dn", "Yn", "Bo", "xr", "Jt", "WU", "na", "UU", "HU", "qU", "Pu", "KU", "jU", "lr", "tv", "ev", "rv", "nv", "ov", "XU", "Mg", "sv", "Vo", "i1", "a1", "op", "oi", "sp", "si", "l1", "Ou", "Wd", "ip", "YU", "Ud", "ZU", "JU", "Hd", "u1", "qd", "t4", "z", "r4", "e4", "iv", "c1", "av", "lv", "n4", "Kd", "ii", "oa", "sa", "Zn", "Go", "ia", "aa", "Wo", "kl", "la", "ua", "ca", "pa", "ma", "Uo", "ap", "El", "lp", "Ho", "ai", "up", "p1", "cp", "lo", "qo", "uo", "pp", "_l", "li", "Ko", "mp", "jo", "Al", "fp", "dp", "Xo", "Yo", "fa", "Zo", "da", "hp", "ha", "Jo", "gp", "xp", "yp", "$l", "jd", "Xd", "Qo", "bp", "ts", "wp", "ga", "xa", "es", "ui", "ya", "Cp", "Dl", "ba", "rs", "ns", "os", "ci", "wa", "Ca", "ss", "co", "Ip", "Sp", "Ia", "Sa", "va", "is", "Na", "Ta", "vp", "as", "ka", "Ea", "_a", "Aa", "m1", "f1", "xlt", "Rl", "Np", "ls", "us", "cs", "Tp", "Fl", "kp", "Ep", "ps", "ms", "fs", "ds", "$a", "_p", "hs", "pi", "Da", "Ra", "Fa", "Oa", "mi", "gs", "fi", "xs", "ylt", "ys", "bs", "ws", "Ap", "$p", "Dp", "Ol", "Rp", "Pa", "Cs", "di", "Is", "Fp", "Ss", "Op", "vs", "Ns", "Ts", "ks", "La", "Pp", "hi", "Ma", "gi", "Es", "za", "Ba", "_s", "Va", "As", "$s", "xi", "yi", "Ds", "Pl", "Ga", "Ll", "Ml", "Lp", "Rs", "zl", "Wa", "Bl", "Vl", "Gl", "Fs", "Os", "Ps", "Jn", "Ua", "Ha", "Qn", "Mp", "bi", "Wl", "blt", "wi", "po", "Yd", "qa", "Ci", "Ii", "Si", "vi", "o4", "zp", "Zd", "Jd", "cv", "uv", "zg", "Lu", "h1", "vlt", "Nlt", "Tlt", "y", "p4", "Wp", "Hl", "f4", "c4", "Qd", "Gu", "Gp", "dv", "Vu", "E1", "Bu", "nn", "fv", "_1", "Pe", "k1", "kr", "Ul", "i4", "Vg", "a4", "l4", "u4", "m4", "Gg", "hv", "d4", "A1", "$1", "D1", "th", "gv", "R1", "h4", "Wg", "rh", "eh", "F1", "pe", "Ms", "Up", "g4", "O1", "P1", "L1", "Ft", "O", "Ka", "go", "Iv", "nh", "y4", "Ut", "xv", "yv", "bv", "wv", "Cv", "x4", "sr", "Wu", "M1", "b4", "Sv", "Ug", "ql", "k", "w4", "C4", "vv", "Kl", "Tv", "v4", "S4", "I4", "Nv", "On", "Br", "B1", "z1", "I", "ja", "kv", "T", "N4", "wn", "on", "ur", "oh", "Hg", "G1", "T4", "qg", "A4", "Ev", "V1", "W1", "U1", "Hp", "_v", "Kg", "Av", "qp", "Ni", "jg", "k4", "E4", "_4", "Ce", "H1", "q1", "K1", "j1", "$v", "Dv", "Uu", "jl", "X1", "Rv", "Ti", "Y1", "$4", "D4", "Xg", "Xa", "Kp", "Z1", "R4", "F4", "O4", "P4", "J1", "Q1", "L4", "M4", "ki", "tE", "z4", "Yg", "jp", "Er", "Zg", "eE", "rE", "nE", "oE", "sE", "Fv", "B4", "Ov", "Pv", "wt", "V4", "J", "G4", "sn", "Jg", "W4", "_r", "uE", "mE", "fE", "Gv", "tx", "Qg", "cE", "Bv", "dE", "hE", "U4", "H4", "q4", "lE", "Ya", "Lv", "K4", "j4", "Mv", "zv", "X4", "Y4", "sh", "Z4", "pE", "ih", "ex", "Vv", "yE", "xE", "J4", "Lt", "Q4", "Ei", "dpt", "hpt", "gpt", "Wv", "xpt", "Pn", "ah", "ypt", "B", "vt", "De", "bpt", "tH", "wpt", "Cpt", "Ipt", "Spt", "vpt", "Xp", "gE", "Npt", "eH", "Xl", "rH", "Ht", "nH", "Za", "oH", "Ot", "sH", "Vr", "Pt", "bE", "ge", "nx", "mH", "cH", "pH", "rx", "Hu", "wE", "iH", "aH", "lH", "uH", "ox", "CE", "lh", "IE", "sx", "Uv", "Le", "dH", "bH", "gH", "xH", "yH", "hH", "qv", "wH", "AE", "kE", "$E", "EE", "_E", "vE", "Hv", "fH", "NE", "TE", "CH", "SE", "Q", "uh", "_i", "Cn", "OE", "DE", "EH", "FE", "kH", "SH", "NH", "RE", "vH", "TH", "_H", "ix", "IH", "Kv", "jv", "PE", "AH", "X", "$H", "Yp", "DH", "pt", "RH", "D", "FH", "Ee", "OH", "ax", "PH", "lx", "LH", "LE", "MH", "Zp", "zH", "qu", "BH", "Ai", "VH", "ux", "GH", "cx", "WH", "px", "UH", "mx", "HH", "fx", "qH", "dx", "KH", "zE", "ju", "Yv", "hx", "jH", "Xv", "ME", "Jp", "ZH", "JH", "XH", "Zv", "Ku", "YH", "to", "Ar", "Ie", "QH", "R", "tq", "Yl", "eq", "gx", "rq", "ne", "nq", "Yr", "oq", "Rt", "sq", "$i", "iq", "BE", "aq", "Zl", "VE", "lq", "Di", "uq", "xx", "cq", "yx", "pq", "bx", "mq", "wx", "fq", "GE", "dq", "Ri", "hq", "Cx", "xo", "gq", "Cr", "xq", "Ix", "yq", "Sx", "bq", "vx", "wq", "Nx", "Cq", "In", "Iq", "Qp", "Sq", "tm", "vq", "em", "Nq", "Tx", "Tq", "kx", "kq", "Ex", "Eq", "Jl", "_q", "rm", "Aq", "Xu", "$q", "nm", "Dq", "ch", "Rq", "_x", "Fq", "Fi", "Oq", "WE", "Pq", "Ax", "Lq", "$r", "Mq", "_e", "zq", "It", "Bq", "$x", "Vq", "Dx", "Gq", "UE", "Wq", "Oi", "Uq", "Rx", "Jv", "HE", "Qv", "yo", "Hq", "t0", "ph", "qq", "Kq", "Ir", "jq", "Ja", "Xq", "an", "mt", "Yq", "Se", "Zq", "Mt", "Jq", "ft", "Qq", "qE", "Qa", "tK", "Fx", "eK", "er", "rK", "rr", "nK", "Ox", "oK", "Dr", "sK", "Yu", "iK", "Pi", "aK", "Li", "lK", "Re", "uK", "ln", "cK", "Px", "pK", "Lx", "mK", "Mx", "fK", "Ql", "dK", "om", "hK", "Ln", "KE", "gK", "zx", "xK", "Sr", "yK", "tu", "bK", "Vx", "wK", "CK", "IK", "Bx", "un", "SK", "zs", "vK", "Gx", "NK", "ct", "TK", "sm", "kK", "im", "EK", "Rr", "_K", "eu", "AK", "am", "$K", "Wx", "Ux", "DK", "mh", "jE", "RK", "ru", "FK", "Hx", "OK", "XE", "PK", "Sn", "LK", "ve", "Ne", "cr", "YE", "MK", "Mi", "zK", "qx", "BK", "Kx", "VK", "Zu", "GK", "ZE", "WK", "JE", "UK", "Bs", "HK", "yr", "qK", "QE", "KK", "cn", "jK", "t_", "XK", "e_", "YK", "r_", "ZK", "n_", "JK", "nu", "QK", "ej", "tj", "jx", "rj", "ou", "nj", "Xx", "oj", "o_", "sj", "s_", "ij", "i_", "aj", "a_", "Qx", "Qu", "Zx", "Jx", "dj", "v_", "hj", "tc", "gj", "N_", "xj", "zi", "su", "yj", "ty", "bj", "Fr", "wj", "lm", "Cj", "pr", "Ij", "T_", "Sj", "k_", "vj", "E_", "Nj", "__", "Tj", "um", "kj", "cm", "Ej", "pm", "_j", "mm", "Aj", "A_", "$j", "ey", "Dj", "fm", "Rj", "dm", "Fj", "hm", "Oj", "dh", "Pj", "gm", "Lj", "ec", "Mj", "iu", "zj", "au", "Bj", "tl", "Vj", "xm", "Gj", "mr", "Wj", "lu", "Uj", "ym", "Hj", "Mn", "qj", "nr", "Kj", "bo", "jj", "ry", "Xj", "ny", "Me", "Vs", "$_", "D_", "R_", "Yj", "oy", "Zj", "bm", "Jj", "sy", "Qj", "wm", "t6", "vr", "F_", "iy", "ay", "e6", "ly", "r6", "n6", "o6", "s6", "i6", "a6", "O_", "u6", "c6", "p6", "m6", "P_", "f6", "l0", "u0", "hh", "d6", "h6", "uu", "L_", "M_", "z_", "g6", "Cm", "rc", "nc", "oc", "sc", "x6", "y6", "uy", "b6", "cy", "w6", "C6", "I6", "B_", "S6", "py", "v6", "my", "N6", "V_", "T6", "G_", "k6", "W_", "E6", "U_", "_6", "H_", "wo", "A6", "q_", "K_", "$6", "R6", "D6", "fy", "c0", "dy", "hy", "j_", "F6", "O6", "P6", "X_", "L6", "Y_", "M6", "Z_", "z6", "J_", "B6", "Q_", "V6", "gy", "G6", "xy", "W6", "U6", "tA", "H6", "eA", "q6", "rA", "K6", "nA", "j6", "oA", "sA", "Xe", "X6", "Gr", "Y6", "iA", "Z6", "aA", "J6", "lA", "Q6", "uA", "tX", "cA", "eX", "pA", "rX", "nX", "mA", "oX", "sX", "fA", "iX", "dA", "aX", "hA", "lX", "gA", "uX", "xA", "cX", "yA", "pX", "bA", "mX", "wA", "fX", "dX", "Gs", "p0", "hX", "gX", "xX", "Wr", "cu", "pu", "mu", "fu", "Bi", "du", "hu", "Ws", "ic", "yX", "gh", "v", "RX", "FX", "OX", "PX", "LX", "DX", "yy", "Vi", "f0", "m0", "bX", "WX", "XX", "CX", "BX", "VX", "NX", "wX", "KX", "HX", "UX", "g5", "h5", "GX", "YX", "jX", "TX", "EX", "SX", "kX", "_X", "IX", "AX", "$X", "t5", "e5", "r5", "s5", "a5", "i5", "n5", "o5", "p5", "l5", "u5", "c5", "ZX", "MX", "QX", "h0", "zX", "vX", "d0", "qX", "CA", "IA", "JX", "d5", "f5", "m5", "Ur", "by", "SA", "vA", "NA", "TA", "kA", "EA", "_A", "AA", "$A", "DA", "RA", "x5", "FA", "OA", "y5", "PA", "LA", "MA", "zA", "BA", "VA", "GA", "WA", "UA", "HA", "qA", "KA", "b5", "jA", "XA", "YA", "ZA", "JA", "QA", "t2", "e2", "r2", "n2", "o2", "s2", "i2", "a2", "l2", "p2", "u2", "c2", "m2", "f2", "d2", "h2", "g2", "x2", "y2", "b2", "w2", "w5", "C2", "I2", "wy", "g0", "S2", "C5", "v2", "N2", "I5", "T2", "k2", "E2", "_2", "A2", "$2", "D2", "R2", "F2", "O2", "P2", "L2", "x0", "M2", "z2", "S5", "v5", "B2", "V2", "G2", "W2", "U2", "H2", "q2", "K2", "j2", "X2", "Y2", "Z2", "J2", "Q2", "t$", "e$", "r$", "n$", "o$", "s$", "y0", "b0", "i$", "a$", "l$", "u$", "c$", "p$", "m$", "f$", "d$", "h$", "g$", "x$", "N5", "y$", "T5", "vn", "Hr", "M", "St", "Im", "xh", "Io", "ro", "C0", "Nr", "xe", "So", "el", "Co", "Sm", "w0", "Gi", "k5", "yh", "vo", "b$", "Wi", "Cy", "Ze", "w$", "C$", "Iy", "E5", "vy", "Sy", "gu", "I$", "S$", "v$", "N$", "T$", "vm", "Fe", "E$", "pn", "I0", "bh", "k$", "Hs", "_5", "Ny", "_$", "Ty", "A5", "A$", "No", "ac", "qs", "Zr", "S0", "ir", "mn", "no", "nl", "$$", "Ey", "D$", "R$", "rl", "v0", "wh", "Nm", "T0", "Tm", "To", "N0", "_y", "lc", "fn", "F$", "O$", "Ay", "P$", "xu", "L$", "M$", "$5", "D5", "dn", "km", "yu", "Em", "_m", "Am", "$m", "Dm", "R5", "qr", "uc", "cc", "pc", "mc", "fc", "dc", "Rm", "z$", "B$", "Te", "de", "$y", "Fm", "Nt", "Bt", "Om", "G$", "Ch", "O5", "Ih", "Pm", "ye", "Jr", "P5", "ol", "L5", "$t", "M5", "z5", "k0", "Ks", "Dy", "B5", "ko", "Ry", "Fy", "U$", "hc", "V5", "W5", "W$", "G5", "U5", "K$", "H5", "j5", "K5", "q5", "E0", "gc", "Lm", "Mm", "zm", "Bm", "H$", "ze", "q$", "Be", "j$", "Z5", "o8", "n8", "s8", "i8", "e8", "a8", "l8", "Y5", "u8", "Q5", "J5", "t8", "r8", "X5", "ED", "Tn", "ll", "NY", "FY", "xZ", "OY", "G0", "W0", "U0", "UY", "qY", "jY", "HY", "KY", "XY", "VY", "uZ", "CZ", "PY", "gY", "xY", "yY", "bY", "wY", "sZ", "iZ", "IY", "TY", "vY", "BY", "kY", "cY", "RY", "_Y", "gZ", "hZ", "YY", "ZY", "pZ", "mZ", "vD", "ND", "QY", "tZ", "P0", "uY", "GY", "mY", "eZ", "rZ", "yZ", "fZ", "dZ", "TD", "kD", "JY", "LY", "MY", "zY", "DY", "fY", "pY", "AY", "bZ", "$Y", "wZ", "aZ", "CY", "nZ", "oZ", "dY", "EY", "lZ", "hY", "cZ", "SY", "WY", "Ui", "Oy", "X$", "c8", "sl", "Py", "_0", "Ly", "My", "zy", "hn", "By", "gn", "Sh", "Hi", "Vm", "bu", "p8", "m8", "f8", "d8", "h8", "xc", "Gm", "g8", "Wm", "x8", "y8", "Nh", "vh", "Vy", "Th", "kh", "Z$", "b8", "w8", "A0", "J$", "Wy", "Uy", "C8", "I8", "S8", "v8", "N8", "T8", "Eh", "k8", "$0", "Gy", "Q$", "_h", "eD", "R0", "D0", "rD", "A8", "Hy", "$8", "D8", "_8", "nD", "yc", "qy", "Um", "zn", "R8", "Ky", "jy", "oD", "F8", "aD", "sD", "O8", "lD", "iD", "P8", "L8", "uD", "Xy", "Hm", "Yy", "Zy", "M8", "cD", "Eo", "F0", "z8", "O0", "pD", "mD", "B8", "V8", "fD", "G8", "W8", "Bn", "Jy", "dD", "hD", "U8", "H8", "qi", "q8", "K8", "j8", "Qr", "Qy", "tb", "eb", "rb", "nb", "ob", "sb", "ib", "ab", "lb", "qm", "ub", "cb", "pb", "js", "L0", "Xs", "M0", "mb", "wu", "yD", "bD", "gD", "me", "xD", "be", "Km", "jm", "Xm", "Ym", "Zm", "Jm", "Cu", "Nn", "Ys", "Ah", "z0", "Y8", "wD", "Z8", "bc", "Iu", "il", "al", "Qm", "tf", "fb", "ef", "Su", "rf", "nf", "J8", "of", "B0", "V0", "Ic", "wc", "cl", "sf", "Cc", "af", "ul", "lf", "Q8", "db", "Sc", "uf", "vc", "cf", "pf", "mf", "ff", "df", "hf", "gf", "xf", "yf", "pl", "bf", "wf", "Cf", "If", "Sf", "vf", "$h", "tY", "Nf", "Tf", "kf", "Ef", "Dh", "eY", "rY", "nY", "_f", "Af", "oY", "$f", "wb", "CD", "hb", "Df", "Rf", "gb", "Ff", "Of", "xb", "Pf", "Lf", "yb", "Mf", "zf", "bb", "Bf", "Vf", "Cb", "Gf", "sY", "iY", "Wf", "Uf", "aY", "ID", "Hf", "SD", "qf", "_D", "DZ", "OZ", "IZ", "SZ", "NZ", "TZ", "_Z", "RZ", "AZ", "$Z", "FZ", "PZ", "kZ", "EZ", "vZ", "AD", "$D", "MZ", "LZ", "zZ", "Sb", "Ib", "DD", "vb", "BZ", "VZ", "GZ", "oo", "RD", "H0", "UZ", "Nb", "HZ", "S", "br", "xn", "Tb", "FD", "_o", "Rh", "Zs", "q0", "qZ", "K0", "KZ", "j0", "jZ", "X0", "XZ", "Y0", "YZ", "Z0", "ZZ", "J0", "JZ", "Q0", "QZ", "tN", "t7", "eN", "e7", "rN", "r7", "nN", "n7", "oN", "o7", "sN", "s7", "iN", "i7", "aN", "a7", "lN", "l7", "uN", "u7", "cN", "c7", "Fh", "kb", "Fb", "_b", "Rb", "Eb", "Pb", "Db", "Ob", "Ab", "$b", "OD", "pN", "p7", "PD", "LD", "Lb", "ae", "MD", "zD", "Vn", "BD", "Kf", "Mb", "zb", "VD", "GD", "WD", "UD", "HD", "qD", "KD", "jD", "mN", "XD", "YD", "ZD", "Bb", "JD", "QD", "tR", "eR", "rR", "nR", "oR", "sR", "iR", "aR", "lR", "fN", "Oh", "dN", "hN", "F7", "O7", "uR", "$7", "D7", "R7", "Nc", "Vb", "P7", "L7", "Ph", "M7", "B7", "z7", "cR", "AR", "Yf", "Js", "ed", "Xf", "rd", "wR", "NR", "TR", "kR", "_R", "PN", "ER", "CR", "bR", "gR", "pR", "Gb", "vu", "mR", "xN", "fR", "Wb", "dR", "V7", "hR", "G7", "jf", "Tc", "AN", "yN", "Lh", "bN", "xR", "Hb", "yR", "fl", "EN", "Je", "TN", "vN", "NN", "Ub", "kN", "SN", "IN", "CN", "qb", "_N", "wN", "kc", "kn", "W7", "U7", "Kb", "Mh", "IR", "jb", "$N", "SR", "Zf", "Jf", "Qf", "zh", "DN", "RN", "Xb", "FN", "ON", "td", "vR", "H7", "Yb", "tt", "q7", "Nu", "mw", "zN", "sd", "Jb", "MN", "BN", "Ec", "VN", "WN", "HN", "qN", "Qb", "tw", "jN", "KN", "YN", "XN", "ew", "ZN", "rw", "JN", "QN", "Bh", "tT", "eT", "rT", "nw", "ow", "sw", "Ac", "nT", "dl", "sF", "LN", "$c", "iw", "aw", "ld", "lF", "sT", "lw", "Dc", "Rc", "Fc", "aT", "uw", "cw", "id", "pw", "K7", "$R", "Qt", "wr", "DR", "nd", "Kr", "RR", "Ao", "FR", "$o", "OR", "oe", "od", "j7", "Ki", "PR", "yn", "Et", "Do", "X7", "LR", "GN", "MR", "UN", "zR", "Y7", "BR", "Z7", "VR", "J7", "GR", "Q7", "WR", "tJ", "UR", "eJ", "HR", "rJ", "qR", "nJ", "KR", "oJ", "jR", "sJ", "_c", "XR", "iJ", "YR", "aJ", "ZR", "Ve", "JR", "lJ", "QR", "uJ", "cJ", "pJ", "mJ", "tF", "fJ", "dJ", "eF", "Ro", "ad", "nF", "rF", "hJ", "oF", "oT", "iF", "Fo", "aF", "gJ", "uF", "xJ", "cF", "iT", "yJ", "bJ", "Vh", "pF", "Gh", "mF", "lT", "fF", "uT", "dF", "CJ", "cT", "hF", "pT", "gF", "mT", "xF", "Oc", "Yt", "yF", "fT", "bF", "IJ", "wF", "SJ", "CF", "vJ", "IF", "NJ", "SF", "TJ", "vF", "kJ", "NF", "EJ", "TF", "_J", "kF", "AJ", "EF", "$J", "_F", "DJ", "AF", "RJ", "FJ", "$F", "OJ", "DF", "ud", "fw", "dw", "RF", "PJ", "FF", "LJ", "OF", "MJ", "PF", "zJ", "LF", "BJ", "MF", "VJ", "zF", "GJ", "BF", "WJ", "VF", "UJ", "GF", "HJ", "WF", "ji", "UF", "Tu", "HF", "dT", "qF", "qJ", "KF", "KJ", "jF", "jJ", "XF", "XJ", "YF", "YJ", "ZF", "ZJ", "JF", "JJ", "QF", "QJ", "tO", "tQ", "eO", "eQ", "rO", "rQ", "nO", "nQ", "oO", "hT", "sO", "oQ", "iO", "sQ", "aO", "iQ", "lO", "uO", "cO", "pO", "hl", "mO", "aQ", "fO", "lQ", "dO", "uQ", "cQ", "pQ", "mQ", "fQ", "dQ", "hQ", "hO", "cd", "gO", "gQ", "Wh", "Uh", "hw", "xQ", "yQ", "gT", "bQ", "wQ", "xO", "Hh", "CQ", "yO", "bO", "IQ", "SQ", "wO", "vQ", "CO", "NQ", "IO", "TQ", "SO", "kQ", "vO", "EQ", "NO", "_Q", "TO", "AQ", "kO", "$Q", "EO", "DQ", "_O", "RQ", "AO", "FQ", "OQ", "$O", "PQ", "DO", "LQ", "MQ", "RO", "zQ", "FO", "BQ", "OO", "xT", "PO", "VQ", "LO", "GQ", "MO", "WQ", "zO", "UQ", "BO", "VO", "GO", "HQ", "WO", "qQ", "UO", "KQ", "HO", "jQ", "XQ", "qO", "jO", "yT", "KO", "YQ", "XO", "ZQ", "JQ", "YO", "QQ", "t9", "ZO", "e9", "r9", "JO", "n9", "QO", "qh", "tP", "eP", "rP", "bT", "nP", "o9", "gw", "s9", "i9", "oP", "a9", "sP", "l9", "iP", "u9", "aP", "c9", "lP", "p9", "uP", "m9", "cP", "f9", "pP", "d9", "mP", "h9", "fP", "g9", "dP", "hP", "x9", "gP", "y9", "xP", "b9", "w9", "yP", "C9", "bP", "I9", "wP", "S9", "v9", "N9", "CP", "T9", "IP", "k9", "SP", "E9", "vP", "_9", "NP", "A9", "TP", "$9", "kP", "D9", "EP", "R9", "_P", "F9", "AP", "O9", "$P", "P9", "DP", "L9", "RP", "FP", "M9", "OP", "z9", "PP", "B9", "LP", "V9", "MP", "G9", "zP", "W9", "BP", "U9", "VP", "H9", "GP", "q9", "WP", "K9", "UP", "J9", "Q9", "HP", "j9", "X9", "Z9", "Y9", "Kh", "ttt", "qP", "ett", "KP", "rtt", "jP", "ntt", "dd", "Qs", "mtt", "Zh", "OT", "JP", "Iw", "yt", "ST", "NT", "DT", "TT", "_T", "ET", "AT", "vT", "xl", "pd", "QP", "MT", "ctt", "FT", "RT", "yl", "fd", "PT", "zT", "ZP", "LT", "Wn", "BT", "VT", "Eu", "GT", "vw", "kT", "Cw", "ftt", "dtt", "Sw", "ptt", "md", "Yh", "$T", "Pc", "xw", "wT", "Gn", "stt", "ott", "ku", "jr", "Pr", "Lc", "XP", "jh", "Xi", "YP", "Xh", "itt", "att", "ltt", "gl", "utt", "tL", "yw", "bw", "ww", "IT", "htt", "Tt", "Ge", "ti", "Mc", "gtt", "eL", "hd", "gd", "Nw", "rL", "nL", "Tw", "xtt", "wtt", "Stt", "ytt", "Itt", "btt", "Ctt", "ktt", "yd", "ztt", "Vtt", "Wtt", "Htt", "Ktt", "jtt", "Xtt", "oL", "Mtt", "Btt", "Gtt", "Utt", "qtt", "Ytt", "Ztt", "sL", "Ett", "Ptt", "Att", "Dtt", "_tt", "Ltt", "$tt", "Rtt", "Ftt", "Ott", "vtt", "Ntt", "Ttt", "zc", "bd", "wd", "Cd", "zt", "aL", "WT", "iL", "lL", "uL", "we", "kw", "Ew", "_w", "Aw", "tet", "Jh", "$w", "ik", "JT", "ek", "jT", "ZT", "KT", "qT", "YT", "XT", "HT", "UT", "nk", "rk", "sk", "ok", "Rw", "Pw", "Dw", "Ow", "Fw", "QT", "tk", "Qh", "Bc", "eet", "cL", "Lw", "pL", "mL", "fL", "dL", "hL", "gL", "xL", "yL", "bL", "wL", "CL", "IL", "SL", "vL", "NL", "TL", "kL", "EL", "_L", "AL", "$L", "DL", "RL", "FL", "OL", "PL", "LL", "ML", "zL", "BL", "Mw", "VL", "GL", "WL", "zw", "UL", "HL", "qL", "KL", "jL", "XL", "YL", "ZL", "Vc", "JL", "ak", "Qe", "QL", "Bw", "Id", "ret", "Vw", "eM", "rM", "tM", "net", "oet", "set", "tn", "fr", "nM", "lk", "oM", "sM", "iM", "Gc", "aM", "uM", "cM", "pM", "mM", "fM", "so", "Gw", "aet", "uet", "cet", "Ww", "pet", "met", "fet", "det", "_u", "het", "dM", "hM", "Zke", "Sd", "io", "Yi", "Oo", "tr", "gM", "En", "xM", "uk", "ck", "get", "yM", "pk", "mk", "xet", "bM", "Po", "Ct", "le", "bl", "vd", "fk", "tg", "wM", "eg", "CM", "IM", "it", "SM", "rg", "Uw", "bet", "Un", "Hw", "wet", "qw", "Au", "vM", "Wc", "NM", "Oe", "TM", "dk", "Uc", "Cet", "kM", "EM", "Iet", "_M", "vet", "Net", "AM", "Tet", "ket", "$M", "DM", "Eet", "RM", "Kw", "jw", "Xw", "FM", "_et", "OM", "Aet", "PM", "Yw", "Zw", "LM", "MM", "Jw", "$et", "zM", "Det", "BM", "Ret", "Fet", "VM", "Oet", "Pet", "GM", "Let", "Met", "WM", "zet", "Bet", "Vet", "UM", "Get", "Wet", "HM", "ei", "$u", "Uet", "qM", "Het", "KM", "Qw", "tC", "qet", "jM", "Ket", "XM", "jet", "YM", "eC", "rC", "Xet", "ZM", "nC", "Yet", "hk", "oC", "Zet", "ri", "JM", "Jet", "QM", "Qet", "tz", "trt", "ez", "ert", "gk", "rz", "wl", "nz", "rrt", "oz", "xk", "sz", "iz", "nrt", "az", "sC", "iC", "ort", "lz", "aC", "uz", "srt", "cz", "lC", "cC", "uC", "Hc", "pz", "Nd", "irt", "yk", "mz", "Td", "pC", "kd", "mC", "fC", "dC", "hC", "art", "fz", "gC", "xC", "yC", "bC", "lrt", "dz", "urt", "hz", "crt", "gz", "prt", "xz", "mrt", "yz", "frt", "drt", "bz", "hrt", "grt", "wz", "wC", "xrt", "Cz", "qc", "ng", "Iz", "Sz", "CC", "yrt", "vz", "brt", "Nz", "wrt", "Tz", "IC", "Crt", "kz", "Ed", "_d", "Irt", "Ez", "SC", "vC", "Srt", "_z", "vrt", "Az", "NC", "Nrt", "$z", "TC", "Trt", "Dz", "krt", "Rz", "Ert", "_rt", "Art", "Fz", "$rt", "Drt", "Rrt", "Oz", "Frt", "Ort", "Prt", "Pz", "Lrt", "Mrt", "Lz", "zrt", "Brt", "bk", "Mz", "kC", "zz", "Bz", "Vrt", "Vz", "og", "EC", "Grt", "Gz", "_C", "Cl", "Wz", "AC", "Uz", "Hz", "Wrt", "qz", "Urt", "Hrt", "qrt", "Kz", "$C", "DC", "jz", "Krt", "Ad", "wk", "jrt", "Xz", "Xrt", "Yz", "RC", "Yrt", "Zz", "FC", "Zrt", "Ck", "Jz", "Jrt", "Qrt", "tnt", "Qz", "ent", "rnt", "nnt", "t3", "ont", "e3", "snt", "int", "r3", "ant", "lnt", "n3", "unt", "cnt", "o3", "pnt", "mnt", "fnt", "s3", "dnt", "hnt", "gnt", "i3", "xnt", "a3", "ynt", "bnt", "wnt", "l3", "Cnt", "Int", "u3", "Snt", "vnt", "Nnt", "c3", "Tnt", "knt", "p3", "Ent", "_nt", "Ant", "m3", "OC", "PC", "$nt", "f3", "LC", "Dnt", "d3", "h3", "Ik", "g3", "Rnt", "Fnt", "Ont", "x3", "Pnt", "y3", "Lnt", "b3", "MC", "zC", "Mnt", "w3", "znt", "C3", "I3", "S3", "v3", "N3", "Bnt", "T3", "Vnt", "Gnt", "Wnt", "k3", "BC", "VC", "Unt", "E3", "Hnt", "qnt", "Knt", "_3", "GC", "jnt", "Xnt", "Sk", "A3", "$3", "vk", "D3", "Nk", "R3", "Ynt", "F3", "Znt", "Jnt", "Qnt", "O3", "tot", "eot", "P3", "rot", "not", "L3", "oot", "sot", "M3", "WC", "iot", "z3", "sg", "B3", "V3", "G3", "aot", "W3", "UC", "HC", "Tk", "U3", "lot", "uot", "cot", "H3", "pot", "q3", "mot", "K3", "fot", "j3", "dot", "X3", "kk", "Y3", "hot", "got", "Z3", "xot", "yot", "bot", "J3", "wot", "Cot", "Iot", "Q3", "qC", "KC", "Sot", "tB", "jC", "vot", "eB", "XC", "YC", "Not", "rB", "ZC", "Tot", "nB", "JC", "QC", "kot", "oB", "tI", "sB", "Eot", "_ot", "iB", "Aot", "$ot", "aB", "$d", "Dot", "lB", "eI", "Rot", "uB", "rI", "Fot", "cB", "Oot", "Pot", "pB", "Lot", "Mot", "zot", "mB", "Bot", "Vot", "fB", "Got", "Wot", "dB", "Uot", "Hot", "hB", "qot", "Kot", "gB", "jot", "xB", "Xot", "yB", "Yot", "bB", "Zot", "wB", "Jot", "CB", "Qot", "IB", "tst", "SB", "vB", "est", "NB", "rst", "nst", "TB", "kB", "ost", "EB", "sst", "_B", "nI", "ist", "AB", "ast", "$B", "lst", "DB", "ust", "RB", "cst", "pst", "FB", "mst", "fst", "OB", "oI", "dst", "Ek", "PB", "sI", "iI", "Kc", "LB", "hst", "MB", "aI", "gst", "zB", "xst", "BB", "yst", "VB", "lI", "bst", "GB", "wst", "qt", "Du", "WB", "Cst", "Ist", "UB", "se", "HB", "ue", "Sst", "qB", "KB", "vst", "Nst", "jB", "jc", "XB", "YB", "Tst", "ao", "Est", "kst", "ZB", "bn", "JB", "_st", "Ast", "QB", "tV", "$st", "Dst", "eV", "rV", "Rst", "Fst", "nV", "oV", "Ost", "Pst", "sV", "ar", "iV", "aV", "Lst", "Mst", "lV", "Lo", "zst", "Bst", "Vst", "uV", "Gst", "cV", "ni", "pV", "mV", "fV", "Wst", "Ust", "dV", "_k", "hV", "gV", "Hst", "qst", "xV", "yV", "Kst", "jst", "bV", "wV", "CV", "Ak", "IV", "Xst", "Yst", "SV", "vV", "Zst", "Jst", "NV", "TV", "Qst", "tit", "kV", "EV", "eit", "rit", "_V", "AV", "nit", "oit", "$V", "DV", "sit", "RV", "FV", "uI", "OV", "$k", "PV", "LV", "iit", "ait", "MV", "zV", "lit", "BV", "VV", "uit", "cit", "GV", "WV", "pit", "mit", "UV", "HV", "fit", "dit", "qV", "KV", "hit", "git", "jV", "XV", "xit", "yit", "YV", "bit", "ZV", "wit", "JV", "QV", "Cit", "Iit", "tG", "Sit", "eG", "vit", "rG", "nG", "Nit", "oG", "sG", "Tit", "iG", "kit", "aG", "lG", "Eit", "_it", "uG", "Ait", "cG", "pG", "$it", "Dit", "mG", "fG", "Rit", "Fit", "dG", "hG", "Oit", "Pit", "gG", "Lit", "xG", "Dk", "yG", "Mit", "zit", "bG", "Bit", "wG", "CG", "Dd", "IG", "Vit", "Git", "SG", "vG", "Wit", "Uit", "NG", "TG", "Hit", "qit", "kG", "Kit", "EG", "_G", "jit", "Xit", "AG", "Yit", "$G", "Zit", "DG", "RG", "Jit", "Qit", "cI", "tat", "FG", "OG", "eat", "rat", "PG", "LG", "nat", "oat", "MG", "sat", "zG", "iat", "BG", "VG", "GG", "WG", "aat", "lat", "UG", "HG", "uat", "cat", "qG", "KG", "pat", "mat", "jG", "XG", "fat", "dat", "YG", "ZG", "JG", "QG", "hat", "gat", "tW", "eW", "xat", "yat", "rW", "nW", "bat", "wat", "oW", "sW", "iW", "Cat", "Iat", "aW", "Sat", "lW", "uW", "vat", "Nat", "cW", "pW", "Tat", "kat", "mW", "fW", "pI", "mI", "Eat", "dW", "_at", "hW", "Aat", "gW", "xW", "yW", "$at", "bW", "wW", "Dat", "Rat", "CW", "IW", "Fat", "Oat", "SW", "Pat", "vW", "Lat", "NW", "Mat", "TW", "zat", "kW", "EW", "Bat", "Vat", "_W", "AW", "$W", "DW", "Gat", "Wat", "RW", "FW", "Uat", "Hat", "OW", "PW", "qat", "Kat", "LW", "jat", "MW", "Xat", "zW", "Yat", "Rk", "zk", "XW", "Bk", "KW", "Zat", "cg", "ZW", "Mk", "Qat", "Jat", "jW", "hI", "lg", "YW", "ag", "Vk", "ug", "tlt", "elt", "rlt", "nlt", "olt", "slt", "ilt", "JW", "alt", "llt", "ult", "clt", "plt", "draw_exports", "__export", "AnchorPosition", "DrawBox", "DrawBoxOptions", "DrawFaceLandmarks", "DrawFaceLandmarksOptions", "DrawTextField", "DrawTextFieldOptions", "drawContour", "drawDetections", "drawFaceExpressions", "drawFaceLandmarks", "drawContour", "ctx", "points", "isClosed", "x", "y", "prevIdx", "from", "to", "utils_exports", "__export", "computeReshapedDimensions", "getCenterPoint", "isDimensions", "isEven", "isFloat", "isTensor", "isTensor1D", "isTensor2D", "isTensor3D", "isTensor4D", "isValidNumber", "isValidProbablitiy", "range", "round", "Dimensions", "width", "height", "isValidNumber", "isTensor", "tensor", "dim", "Ft", "isTensor1D", "isTensor2D", "isTensor3D", "isTensor4D", "isFloat", "num", "isEven", "round", "prec", "f", "isDimensions", "obj", "computeReshapedDimensions", "width", "height", "inputSize", "scale", "Dimensions", "getCenterPoint", "pts", "sum", "pt", "Point", "range", "start", "step", "_", "i", "isValidNumber", "isValidProbablitiy", "Point", "x", "y", "pt", "Box", "rect", "isValidNumber", "box", "callee", "allowNegativeDimensions", "_box", "isBbox", "isRect", "x", "y", "width", "height", "Point", "val", "diff", "s", "scaleX", "isDimensions", "scaleY", "padX", "padY", "imgWidth", "imgHeight", "right", "bottom", "clippedX", "clippedY", "newWidth", "newHeight", "clippedWidth", "clippedHeight", "sx", "sy", "imageHeight", "imageWidth", "w", "h", "dx", "dy", "edx", "edy", "ex", "ey", "region", "BoundingBox", "Box", "left", "top", "right", "bottom", "allowNegativeDimensions", "ObjectDetection", "score", "classScore", "className", "relativeBox", "imageDims", "Dimensions", "Box", "width", "height", "FaceDetection", "ObjectDetection", "score", "relativeBox", "imageDims", "width", "height", "iou", "box1", "box2", "isIOU", "width", "height", "interSection", "minBbox", "pts", "xs", "pt", "ys", "minX", "min", "x", "minY", "y", "maxX", "max", "maxY", "BoundingBox", "nonMaxSuppression", "boxes", "scores", "iouThreshold", "isIOU", "indicesSortedByScore", "score", "boxIndex", "c1", "c2", "c", "pick", "curr", "indices", "outputs", "i", "idx", "currBox", "idxBox", "iou", "_", "j", "normalize", "x", "meanRgb", "B", "r", "g", "b", "avg_r", "xo", "avg_g", "avg_b", "avg_rgb", "ne", "ct", "padToSquare", "imgTensor", "isCenterImage", "B", "height", "width", "dimDiff", "paddingAmount", "paddingAxis", "createPaddingTensor", "paddingAmountLocal", "paddingTensorShape", "xo", "paddingTensorAppend", "remainingPaddingAmount", "tensorsToStack", "t", "J", "ne", "shuffleArray", "inputArray", "array", "i", "j", "x", "sigmoid", "x", "inverseSigmoid", "Rect", "Box", "x", "y", "width", "height", "allowNegativeDimensions", "relX", "relY", "relScale", "FaceLandmarks", "relativeFaceLandmarkPositions", "imgDims", "shift", "Point", "width", "height", "Dimensions", "pt", "x", "y", "detection", "options", "box", "FaceDetection", "Box", "useDlibAlignment", "minBoxPadding", "centers", "leftEyeCenter", "rightEyeCenter", "mouthCenter", "distToMouth", "eyeToMouthDist", "size", "refPoint", "getCenterPoint", "Rect", "padding", "minBbox", "FaceLandmarks5", "FaceLandmarks", "pts", "getCenterPoint", "FaceLandmarks68", "FaceLandmarks", "getCenterPoint", "FaceMatch", "label", "distance", "withDistance", "round", "LabeledBox", "Box", "box", "label", "callee", "isValidNumber", "LabeledFaceDescriptors", "label", "descriptors", "desc", "d", "json", "PredictedBox", "LabeledBox", "box", "label", "score", "classScore", "callee", "isValidProbablitiy", "isWithFaceDetection", "obj", "FaceDetection", "extendWithFaceDetection", "sourceObj", "detection", "createBrowserEnv", "fetch", "isNodejs", "createFileSystem", "fs", "requireFsError", "isNodejs", "err", "filePath", "resolve", "reject", "buffer", "createNodejsEnv", "Canvas", "Image", "Video", "createCanvasElement", "createImageElement", "createVideoElement", "fetch", "fileSystem", "createFileSystem", "isBrowser", "environment", "getEnv", "setEnv", "env", "initialize", "isBrowser", "createBrowserEnv", "isNodejs", "createNodejsEnv", "monkeyPatch", "Canvas", "Image", "createFileSystem", "resolveInput", "arg", "env", "getContext2dOrThrow", "canvasArg", "Canvas", "CanvasRenderingContext2D", "env", "canvas", "resolveInput", "ctx", "AnchorPosition", "DrawTextFieldOptions", "options", "anchorPosition", "backgroundColor", "fontColor", "fontSize", "fontStyle", "padding", "DrawTextField", "text", "anchor", "ctx", "l", "w0", "w1", "canvasDims", "isShiftLeft", "isShiftTop", "textFieldWidth", "textFieldHeight", "x", "y", "width", "height", "newX", "newY", "canvasArg", "canvas", "resolveInput", "getContext2dOrThrow", "maxTextWidth", "textHeight", "upperLeft", "textLine", "i", "DrawBoxOptions", "options", "boxColor", "lineWidth", "label", "drawLabelOptions", "defaultDrawLabelOptions", "DrawTextFieldOptions", "DrawBox", "box", "Box", "canvasArg", "ctx", "getContext2dOrThrow", "x", "y", "width", "height", "DrawTextField", "drawDetections", "canvasArg", "detections", "det", "score", "FaceDetection", "isWithFaceDetection", "box", "Box", "label", "round", "DrawBox", "isMediaLoaded", "media", "Image", "Video", "env", "awaitMediaLoaded", "media", "resolve", "reject", "env", "isMediaLoaded", "onError", "e", "onLoad", "bufferToImage", "buf", "resolve", "reject", "reader", "img", "env", "getMediaDimensions", "input", "Image", "Video", "env", "Dimensions", "createCanvas", "width", "height", "createCanvasElement", "env", "canvas", "createCanvasFromMedia", "media", "dims", "ImageData", "isMediaLoaded", "getMediaDimensions", "getContext2dOrThrow", "imageTensorToCanvas", "imgTensor", "canvas", "targetCanvas", "env", "height", "width", "numChannels", "isTensor4D", "imgTensor3D", "B", "nx", "isMediaElement", "input", "Image", "Canvas", "Video", "env", "imageToSquare", "input", "inputSize", "centerImage", "Image", "Canvas", "env", "createCanvas", "dims", "getMediaDimensions", "scale", "width", "height", "targetCanvas", "inputCanvas", "createCanvasFromMedia", "offset", "dx", "dy", "getContext2dOrThrow", "NetInput", "inputs", "treatAsBatchInput", "input", "idx", "isTensor3D", "isTensor4D", "batchSize", "canvas", "env", "createCanvasFromMedia", "range", "_", "batchIdx", "width", "height", "computeReshapedDimensions", "inputSize", "isCenterInputs", "B", "inputTensors", "Ft", "imgTensor", "rr", "padToSquare", "Gs", "nx", "imageToSquare", "nr", "t", "J", "toNetInput", "inputs", "NetInput", "inputArgArray", "getIdxHint", "idx", "inputArray", "resolveInput", "input", "i", "isMediaElement", "isTensor3D", "isTensor4D", "batchSize", "awaitMediaLoaded", "extractFaces", "input", "detections", "Canvas", "env", "canvas", "netInput", "toNetInput", "tensorOrCanvas", "imageTensorToCanvas", "ctx", "getContext2dOrThrow", "det", "FaceDetection", "box", "x", "y", "width", "height", "faceImg", "createCanvas", "extractFaceTensors", "imageTensor", "detections", "isTensor3D", "isTensor4D", "B", "imgHeight", "imgWidth", "numChannels", "det", "FaceDetection", "box", "x", "y", "width", "height", "gm", "fetchOrThrow", "url", "init", "fetch", "env", "res", "fetchImage", "uri", "res", "fetchOrThrow", "blob", "bufferToImage", "fetchJson", "uri", "fetchOrThrow", "fetchNetWeights", "uri", "fetchOrThrow", "bufferToVideo", "buf", "resolve", "reject", "video", "env", "fetchVideo", "uri", "res", "fetchOrThrow", "blob", "bufferToVideo", "getModelUris", "uri", "defaultModelName", "defaultManifestFilename", "protocol", "parts", "s", "manifestFile", "modelBaseUri", "loadWeightMap", "uri", "defaultModelName", "manifestUri", "modelBaseUri", "getModelUris", "manifest", "fetchJson", "_r", "matchDimensions", "input", "reference", "useMediaDimensions", "width", "height", "getMediaDimensions", "NeuralNetwork", "name", "paramPath", "obj", "objProp", "tensor", "param", "Ka", "path", "variable", "ur", "throwOnRedispose", "flat", "arr", "weightsOrUrl", "uri", "weightMap", "loadWeightMap", "filePath", "readFile", "env", "manifestUri", "modelBaseUri", "getModelUris", "fetchWeightsFromDisk", "filePaths", "fp", "buf", "loadWeights", "_r", "manifest", "paramMappings", "params", "weights", "result", "res", "Ft", "depthwiseSeparableConv", "x", "params", "stride", "B", "out", "mm", "X", "denseBlock3", "x", "denseBlockParams", "isFirstLayer", "B", "out1", "Fr", "X", "In", "depthwiseSeparableConv", "out2", "in3", "out3", "denseBlock4", "isScaleDown", "in4", "out4", "convLayer", "x", "params", "padding", "withRelu", "B", "out", "X", "In", "Fr", "disposeUnusedWeightTensors", "weightMap", "paramMappings", "path", "pm", "extractConvParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "filterSize", "mappedPrefix", "filters", "$_", "bias", "Me", "extractFCParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "mappedPrefix", "fc_weights", "Vs", "fc_bias", "Me", "SeparableConvParams", "depthwise_filter", "pointwise_filter", "bias", "extractSeparableConvParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "mappedPrefix", "depthwise_filter", "$_", "pointwise_filter", "bias", "Me", "SeparableConvParams", "loadSeparableConvParamsFactory", "extractWeightEntry", "prefix", "extractWeightEntryFactory", "weightMap", "paramMappings", "originalPath", "paramRank", "mappedPath", "tensor", "isTensor", "extractWeightsFactory", "weights", "remainingWeights", "extractWeights", "numWeights", "ret", "getRemainingWeights", "extractorsFactory", "extractWeights", "paramMappings", "extractConvParams", "extractConvParamsFactory", "extractSeparableConvParams", "extractSeparableConvParamsFactory", "extractDenseBlock3Params", "channelsIn", "channelsOut", "mappedPrefix", "isFirstLayer", "conv0", "conv1", "conv2", "extractDenseBlock4Params", "conv3", "extractParams", "weights", "paramMappings", "extractWeights", "getRemainingWeights", "extractWeightsFactory", "extractDenseBlock4Params", "extractorsFactory", "dense0", "dense1", "dense2", "dense3", "loadConvParamsFactory", "extractWeightEntry", "prefix", "filters", "bias", "loadParamsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractConvParams", "loadConvParamsFactory", "extractSeparableConvParams", "loadSeparableConvParamsFactory", "extractDenseBlock3Params", "prefix", "isFirstLayer", "conv0", "conv1", "conv2", "extractDenseBlock4Params", "conv3", "extractParamsFromWeightMap", "weightMap", "paramMappings", "extractDenseBlock4Params", "loadParamsFactory", "params", "disposeUnusedWeightTensors", "FaceFeatureExtractor", "NeuralNetwork", "input", "params", "B", "batchTensor", "J", "normalized", "normalize", "out", "denseBlock4", "Yl", "toNetInput", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "fullyConnectedLayer", "x", "params", "B", "X", "Lt", "extractParams", "weights", "channelsIn", "channelsOut", "paramMappings", "extractWeights", "getRemainingWeights", "extractWeightsFactory", "fc", "extractFCParamsFactory", "extractParamsFromWeightMap", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractFcParams", "prefix", "weights", "bias", "params", "disposeUnusedWeightTensors", "seperateWeightMaps", "weightMap", "featureExtractorMap", "classifierMap", "key", "map", "FaceProcessor", "NeuralNetwork", "_name", "faceFeatureExtractor", "input", "params", "B", "bottleneckFeatures", "NetInput", "fullyConnectedLayer", "throwOnRedispose", "weights", "paramMappings", "extractParams", "weightMap", "featureExtractorMap", "classifierMap", "seperateWeightMaps", "extractParamsFromWeightMap", "cIn", "cOut", "classifierWeightSize", "featureExtractorWeights", "classifierWeights", "FACE_EXPRESSION_LABELS", "FaceExpressions", "probabilities", "expression", "idx", "e0", "e1", "FaceExpressionNet", "FaceProcessor", "faceFeatureExtractor", "FaceFeatureExtractor", "input", "B", "iu", "toNetInput", "netInput", "out", "probabilitesByBatch", "vr", "t", "data", "predictionsByBatch", "probabilites", "FaceExpressions", "isWithFaceExpressions", "obj", "FaceExpressions", "extendWithFaceExpressions", "sourceObj", "expressions", "drawFaceExpressions", "canvasArg", "faceExpressions", "minConfidence", "textFieldAnchor", "e", "expr", "FaceExpressions", "isWithFaceExpressions", "resultsToDisplay", "exprLocal", "anchor", "isWithFaceDetection", "Point", "DrawTextField", "round", "isWithFaceLandmarks", "obj", "isWithFaceDetection", "FaceLandmarks", "FaceDetection", "calculateFaceAngle", "mesh", "degrees", "radians", "calcLengthBetweenTwoPoints", "a", "b", "angle", "calcYaw", "leftPoint", "midPoint", "rightPoint", "leftToMidpoint", "rightToMidpoint", "calcRoll", "lever", "pivot", "hypotenuse", "opposite", "angleInRadians", "angleInDegrees", "normalizeAngle", "tiltDirection", "calcPitch", "base", "baseCoords", "midToBaseLength", "direction", "pt", "extendWithFaceLandmarks", "sourceObj", "unshiftedLandmarks", "shift", "landmarks", "rect", "imageDims", "alignedRect", "DrawFaceLandmarksOptions", "options", "drawLines", "drawPoints", "lineWidth", "lineColor", "pointSize", "pointColor", "DrawFaceLandmarks", "faceLandmarks", "canvasArg", "ctx", "getContext2dOrThrow", "FaceLandmarks68", "drawContour", "drawPoint", "pt", "drawFaceLandmarks", "f", "landmarks", "FaceLandmarks", "isWithFaceLandmarks", "extractorsFactory", "extractWeights", "paramMappings", "extractConvParams", "extractConvParamsFactory", "extractSeparableConvParams", "extractSeparableConvParamsFactory", "extractReductionBlockParams", "channelsIn", "channelsOut", "mappedPrefix", "separable_conv0", "separable_conv1", "expansion_conv", "extractMainBlockParams", "channels", "separable_conv2", "extractParams", "weights", "numMainBlocks", "getRemainingWeights", "extractWeightsFactory", "entry_flow_conv_in", "entry_flow_reduction_block_0", "entry_flow_reduction_block_1", "entry_flow", "middle_flow", "range", "idx", "exit_flow_reduction_block", "exit_flow_separable_conv", "exit_flow", "loadParamsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractConvParams", "loadConvParamsFactory", "extractSeparableConvParams", "loadSeparableConvParamsFactory", "extractReductionBlockParams", "mappedPrefix", "separable_conv0", "separable_conv1", "expansion_conv", "extractMainBlockParams", "separable_conv2", "extractParamsFromWeightMap", "numMainBlocks", "entry_flow_conv_in", "entry_flow_reduction_block_0", "entry_flow_reduction_block_1", "entry_flow", "middle_flow", "range", "idx", "exit_flow_reduction_block", "exit_flow_separable_conv", "exit_flow", "disposeUnusedWeightTensors", "conv", "x", "params", "stride", "X", "In", "reductionBlock", "isActivateInput", "out", "Fr", "depthwiseSeparableConv", "ru", "mainBlock", "TinyXception", "NeuralNetwork", "numMainBlocks", "input", "B", "batchTensor", "J", "normalized", "normalize", "range", "idx", "toNetInput", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "extractParams", "weights", "paramMappings", "extractWeights", "getRemainingWeights", "extractWeightsFactory", "extractFCParams", "extractFCParamsFactory", "age", "gender", "extractParamsFromWeightMap", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractFcParams", "prefix", "weights", "bias", "params", "disposeUnusedWeightTensors", "Gender", "AgeGenderNet", "NeuralNetwork", "faceFeatureExtractor", "TinyXception", "input", "params", "B", "bottleneckFeatures", "NetInput", "pooled", "Yl", "age", "fullyConnectedLayer", "gender", "iu", "toNetInput", "netInput", "out", "ages", "vr", "genders", "ageAndGenderTensors", "ageTensor", "i", "predictionsByBatch", "genderTensor", "probMale", "isMale", "genderProbability", "throwOnRedispose", "weights", "paramMappings", "extractParams", "weightMap", "featureExtractorMap", "classifierMap", "seperateWeightMaps", "extractParamsFromWeightMap", "featureExtractorWeights", "classifierWeights", "FaceLandmark68NetBase", "FaceProcessor", "output", "inputSize", "originalDimensions", "inputDimensions", "width", "height", "scale", "batchSize", "B", "createInterleavedTensor", "fillX", "fillY", "nr", "xo", "getPadding", "batchIdx", "cond", "getPaddingX", "w", "getPaddingY", "_", "input", "out", "toNetInput", "netInput", "landmarkTensors", "vr", "landmarksForBatch", "landmarkTensor", "landmarksArray", "xCoords", "i", "isEven", "yCoords", "FaceLandmarks68", "Point", "t", "FaceLandmark68Net", "FaceLandmark68NetBase", "faceFeatureExtractor", "FaceFeatureExtractor", "extractParamsFromWeightMapTiny", "weightMap", "paramMappings", "extractDenseBlock3Params", "loadParamsFactory", "params", "disposeUnusedWeightTensors", "extractParamsTiny", "weights", "paramMappings", "extractWeights", "getRemainingWeights", "extractWeightsFactory", "extractDenseBlock3Params", "extractorsFactory", "dense0", "dense1", "dense2", "TinyFaceFeatureExtractor", "NeuralNetwork", "input", "params", "B", "batchTensor", "J", "normalized", "normalize", "out", "denseBlock3", "Yl", "toNetInput", "weightMap", "extractParamsFromWeightMapTiny", "weights", "extractParamsTiny", "FaceLandmark68TinyNet", "FaceLandmark68NetBase", "faceFeatureExtractor", "TinyFaceFeatureExtractor", "FaceLandmarkNet", "FaceLandmark68Net", "scale", "x", "params", "X", "D", "convLayer", "x", "params", "strides", "withRelu", "padding", "filters", "bias", "out", "In", "X", "scale", "Fr", "conv", "convNoRelu", "convDown", "extractorsFactory", "extractWeights", "paramMappings", "extractFilterValues", "numFilterValues", "numFilters", "filterSize", "weights", "depth", "isFloat", "B", "Ot", "$_", "extractConvParams", "mappedPrefix", "filters", "bias", "Me", "extractScaleLayerParams", "numWeights", "biases", "extractConvLayerParams", "conv", "scale", "extractResidualLayerParams", "isDown", "conv1", "conv2", "extractParams", "getRemainingWeights", "extractWeightsFactory", "conv32_down", "conv32_1", "conv32_2", "conv32_3", "conv64_down", "conv64_1", "conv64_2", "conv64_3", "conv128_down", "conv128_1", "conv128_2", "conv256_down", "conv256_1", "conv256_2", "conv256_down_out", "fc", "Vs", "extractorsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractScaleLayerParams", "prefix", "weights", "biases", "extractConvLayerParams", "filters", "bias", "scale", "extractResidualLayerParams", "extractParamsFromWeightMap", "conv32_down", "conv32_1", "conv32_2", "conv32_3", "conv64_down", "conv64_1", "conv64_2", "conv64_3", "conv128_down", "conv128_1", "conv128_2", "conv256_down", "conv256_1", "conv256_2", "conv256_down_out", "fc", "isTensor2D", "params", "disposeUnusedWeightTensors", "residual", "x", "params", "out", "conv", "convNoRelu", "X", "Fr", "residualDown", "convDown", "pooled", "Yl", "zeros", "Ne", "isPad", "padShapeX", "zerosW", "ne", "padShapeY", "zerosH", "FaceRecognitionNet", "NeuralNetwork", "input", "params", "B", "batchTensor", "J", "normalized", "normalize", "out", "convDown", "ru", "residual", "residualDown", "globalAvg", "Lt", "toNetInput", "_a", "dim", "netInput", "faceDescriptorTensors", "vr", "faceDescriptorsForBatch", "t", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "createFaceRecognitionNet", "weights", "net", "FaceRecognitionNet", "extendWithFaceDescriptor", "sourceObj", "descriptor", "isWithAge", "obj", "extendWithAge", "sourceObj", "age", "isWithGender", "obj", "isValidProbablitiy", "extendWithGender", "sourceObj", "gender", "genderProbability", "extractorsFactory", "extractWeights", "paramMappings", "extractDepthwiseConvParams", "numChannels", "mappedPrefix", "filters", "$_", "batch_norm_scale", "Me", "batch_norm_offset", "batch_norm_mean", "batch_norm_variance", "extractConvParams", "channelsIn", "channelsOut", "filterSize", "isPointwiseConv", "bias", "extractPointwiseConvParams", "extractConvPairParams", "depthwise_conv", "pointwise_conv", "extractMobilenetV1Params", "conv_0", "conv_1", "conv_2", "conv_3", "conv_4", "conv_5", "conv_6", "conv_7", "conv_8", "conv_9", "conv_10", "conv_11", "conv_12", "conv_13", "extractPredictionLayerParams", "box_encoding_0_predictor", "class_predictor_0", "box_encoding_1_predictor", "class_predictor_1", "box_encoding_2_predictor", "class_predictor_2", "box_encoding_3_predictor", "class_predictor_3", "box_encoding_4_predictor", "class_predictor_4", "box_encoding_5_predictor", "class_predictor_5", "extractParams", "weights", "getRemainingWeights", "extractWeightsFactory", "mobilenetv1", "prediction_layer", "output_layer", "rx", "extractorsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractPointwiseConvParams", "prefix", "idx", "mappedPrefix", "filters", "batch_norm_offset", "extractConvPairParams", "prefixDepthwiseConv", "mappedPrefixDepthwiseConv", "mappedPrefixPointwiseConv", "batch_norm_scale", "batch_norm_mean", "batch_norm_variance", "extractMobilenetV1Params", "extractConvParams", "bias", "extractBoxPredictorParams", "box_encoding_predictor", "class_predictor", "extractPredictionLayerParams", "extractParamsFromWeightMap", "extra_dim", "isTensor3D", "params", "disposeUnusedWeightTensors", "pointwiseConvLayer", "x", "params", "strides", "B", "out", "In", "X", "Cr", "epsilon", "depthwiseConvLayer", "x", "params", "strides", "B", "out", "Fi", "Di", "Cr", "getStridesForLayerIdx", "layerIdx", "idx", "mobileNetV1", "conv11", "pointwiseConvLayer", "param", "depthwiseConvStrides", "IOU", "boxes", "i", "j", "boxesData", "yminI", "xminI", "ymaxI", "xmaxI", "yminJ", "xminJ", "ymaxJ", "xmaxJ", "areaI", "areaJ", "intersectionYmin", "intersectionXmin", "intersectionYmax", "intersectionXmax", "intersectionArea", "nonMaxSuppression", "scores", "maxOutputSize", "iouThreshold", "scoreThreshold", "numBoxes", "outputSize", "candidates", "score", "boxIndex", "c", "c1", "c2", "suppressFunc", "x", "selected", "originalScore", "iou", "getCenterCoordinatesAndSizesLayer", "x", "vec", "vr", "Ot", "sizes", "ct", "centers", "X", "pt", "decodeBoxesLayer", "x0", "x1", "div0_out", "D", "er", "add0_out", "div1_out", "add1_out", "nr", "outputLayer", "boxPredictions", "classPredictions", "params", "B", "batchSize", "boxes", "R", "Dr", "scoresAndClasses", "Yr", "Rt", "scores", "boxesByBatch", "scoresByBatch", "boxPredictionLayer", "x", "params", "B", "batchSize", "boxPredictionEncoding", "R", "convLayer", "classPrediction", "predictionLayer", "x", "conv11", "params", "B", "conv0", "pointwiseConvLayer", "conv1", "conv2", "conv3", "conv4", "conv5", "conv6", "conv7", "boxPrediction0", "boxPredictionLayer", "boxPrediction1", "boxPrediction2", "boxPrediction3", "boxPrediction4", "boxPrediction5", "boxPredictions", "ne", "classPredictions", "SsdMobilenetv1Options", "minConfidence", "maxResults", "SsdMobilenetv1", "NeuralNetwork", "input", "params", "B", "batchTensor", "J", "x", "ct", "pt", "features", "mobileNetV1", "boxPredictions", "classPredictions", "predictionLayer", "outputLayer", "toNetInput", "options", "maxResults", "minConfidence", "SsdMobilenetv1Options", "netInput", "_boxes", "_scores", "boxes", "scores", "i", "scoresData", "indices", "nonMaxSuppression", "reshapedDims", "inputSize", "padX", "padY", "boxesData", "results", "idx", "top", "bottom", "val", "left", "right", "FaceDetection", "Rect", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "createSsdMobilenetv1", "weights", "net", "SsdMobilenetv1", "createFaceDetectionNet", "FaceDetectionNet", "IOU_THRESHOLD", "BOX_ANCHORS", "Point", "BOX_ANCHORS_SEPARABLE", "MEAN_RGB_SEPARABLE", "DEFAULT_MODEL_NAME", "DEFAULT_MODEL_NAME_SEPARABLE_CONV", "isNumber", "arg", "validateConfig", "config", "c", "a", "leaky", "x", "B", "min", "D", "mt", "X", "Fr", "ct", "convWithBatchNorm", "x", "params", "B", "out", "cn", "In", "ct", "D", "X", "leaky", "depthwiseSeparableConv", "x", "params", "B", "out", "cn", "mm", "X", "leaky", "extractorsFactory", "extractWeights", "paramMappings", "extractConvParams", "extractConvParamsFactory", "extractBatchNormParams", "size", "mappedPrefix", "sub", "Me", "truediv", "extractConvWithBatchNormParams", "channelsIn", "channelsOut", "conv", "bn", "extractSeparableConvParams", "extractSeparableConvParamsFactory", "extractParams", "weights", "config", "boxEncodingSize", "filterSizes", "getRemainingWeights", "extractWeightsFactory", "params", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "conv0", "conv1", "conv2", "conv3", "conv4", "conv5", "conv6", "conv7", "conv8", "extractorsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractBatchNormParams", "prefix", "sub", "truediv", "extractConvParams", "filters", "bias", "extractConvWithBatchNormParams", "conv", "bn", "extractSeparableConvParams", "loadSeparableConvParamsFactory", "extractParamsFromWeightMap", "config", "params", "numFilters", "disposeUnusedWeightTensors", "TinyYolov2Options", "inputSize", "scoreThreshold", "_TinyYolov2Base", "NeuralNetwork", "config", "validateConfig", "x", "params", "out", "convWithBatchNorm", "ru", "convLayer", "leaky", "depthwiseSeparableConv", "input", "inputSize", "B", "batchTensor", "J", "normalize", "toNetInput", "forwardParams", "scoreThreshold", "TinyYolov2Options", "netInput", "out0", "vr", "inputDimensions", "results", "boxes", "res", "scores", "classScores", "classNames", "nonMaxSuppression", "box", "idx", "ObjectDetection", "weightMap", "extractParamsFromWeightMap", "weights", "filterSizes", "numFilters", "extractParams", "outputTensor", "inputBlobDimensions", "width", "height", "correctionFactorX", "correctionFactorY", "numCells", "numBoxes", "boxesTensor", "scoresTensor", "classScoresTensor", "reshaped", "iu", "mt", "scoresData", "boxesData", "row", "col", "anchor", "score", "sigmoid", "ctX", "ctY", "widthLocal", "heightLocal", "y", "pos", "classScore", "label", "BoundingBox", "classesTensor", "classesData", "_", "i", "max", "curr", "TinyYolov2Base", "TinyYolov2", "TinyYolov2Base", "withSeparableConvs", "config", "IOU_THRESHOLD", "BOX_ANCHORS_SEPARABLE", "MEAN_RGB_SEPARABLE", "BOX_ANCHORS", "input", "forwardParams", "det", "FaceDetection", "DEFAULT_MODEL_NAME_SEPARABLE_CONV", "DEFAULT_MODEL_NAME", "weightMap", "createTinyYolov2", "weights", "withSeparableConvs", "net", "TinyYolov2", "TinyFaceDetectorOptions", "TinyYolov2Options", "ComposableTask", "onfulfilled", "extractAllFacesAndComputeResults", "parentResults", "input", "computeResults", "extractedFaces", "getRectForAlignment", "alignedRect", "faceBoxes", "parentResult", "isWithFaceLandmarks", "faces", "Ft", "extractFaceTensors", "extractFaces", "results", "f", "extractSingleFaceAndComputeResult", "computeResult", "IOU_THRESHOLD", "BOX_ANCHORS", "Point", "MEAN_RGB", "TinyFaceDetector", "TinyYolov2Base", "config", "IOU_THRESHOLD", "BOX_ANCHORS", "MEAN_RGB", "input", "forwardParams", "det", "FaceDetection", "weightMap", "nets", "SsdMobilenetv1", "TinyFaceDetector", "TinyYolov2", "FaceLandmark68Net", "FaceLandmark68TinyNet", "FaceRecognitionNet", "FaceExpressionNet", "AgeGenderNet", "ssdMobilenetv1", "input", "options", "tinyFaceDetector", "tinyYolov2", "detectFaceLandmarks", "detectFaceLandmarksTiny", "computeFaceDescriptor", "recognizeFaceExpressions", "predictAgeAndGender", "loadSsdMobilenetv1Model", "url", "loadTinyFaceDetectorModel", "loadTinyYolov2Model", "loadFaceLandmarkModel", "loadFaceLandmarkTinyModel", "loadFaceRecognitionModel", "loadFaceExpressionModel", "loadAgeGenderModel", "loadFaceDetectionModel", "locateFaces", "detectLandmarks", "PredictFaceExpressionsTaskBase", "ComposableTask", "parentTask", "input", "extractedFaces", "PredictAllFaceExpressionsTask", "parentResults", "faceExpressionsByFace", "extractAllFacesAndComputeResults", "faces", "face", "nets", "parentResult", "i", "extendWithFaceExpressions", "PredictAllAgeAndGenderTask", "PredictSingleFaceExpressionsTask", "faceExpressions", "extractSingleFaceAndComputeResult", "PredictSingleAgeAndGenderTask", "PredictAllFaceExpressionsWithFaceAlignmentTask", "PredictAllAgeAndGenderWithFaceAlignmentTask", "ComputeAllFaceDescriptorsTask", "PredictSingleFaceExpressionsWithFaceAlignmentTask", "PredictSingleAgeAndGenderWithFaceAlignmentTask", "ComputeSingleFaceDescriptorTask", "PredictAgeAndGenderTaskBase", "ComposableTask", "parentTask", "input", "extractedFaces", "PredictAllAgeAndGenderTask", "parentResults", "ageAndGenderByFace", "extractAllFacesAndComputeResults", "faces", "face", "nets", "parentResult", "i", "age", "gender", "genderProbability", "extendWithAge", "extendWithGender", "PredictAllFaceExpressionsTask", "PredictSingleAgeAndGenderTask", "extractSingleFaceAndComputeResult", "PredictSingleFaceExpressionsTask", "PredictAllAgeAndGenderWithFaceAlignmentTask", "PredictAllFaceExpressionsWithFaceAlignmentTask", "ComputeAllFaceDescriptorsTask", "PredictSingleAgeAndGenderWithFaceAlignmentTask", "PredictSingleFaceExpressionsWithFaceAlignmentTask", "ComputeSingleFaceDescriptorTask", "ComputeFaceDescriptorsTaskBase", "ComposableTask", "parentTask", "input", "ComputeAllFaceDescriptorsTask", "parentResults", "extractAllFacesAndComputeResults", "faces", "face", "nets", "parentResult", "descriptor", "i", "extendWithFaceDescriptor", "PredictAllFaceExpressionsWithFaceAlignmentTask", "PredictAllAgeAndGenderWithFaceAlignmentTask", "ComputeSingleFaceDescriptorTask", "extractSingleFaceAndComputeResult", "PredictSingleFaceExpressionsWithFaceAlignmentTask", "PredictSingleAgeAndGenderWithFaceAlignmentTask", "DetectFaceLandmarksTaskBase", "ComposableTask", "parentTask", "input", "useTinyLandmarkNet", "nets", "DetectAllFaceLandmarksTask", "parentResults", "detections", "res", "faces", "Ft", "extractFaceTensors", "extractFaces", "faceLandmarksByFace", "face", "f", "_parentResult", "i", "parentResult", "extendWithFaceLandmarks", "PredictAllFaceExpressionsWithFaceAlignmentTask", "PredictAllAgeAndGenderWithFaceAlignmentTask", "ComputeAllFaceDescriptorsTask", "DetectSingleFaceLandmarksTask", "detection", "landmarks", "PredictSingleFaceExpressionsWithFaceAlignmentTask", "PredictSingleAgeAndGenderWithFaceAlignmentTask", "ComputeSingleFaceDescriptorTask", "DetectFacesTaskBase", "ComposableTask", "input", "options", "SsdMobilenetv1Options", "DetectAllFacesTask", "result", "TinyFaceDetectorOptions", "nets", "TinyYolov2Options", "resolve", "reject", "detections", "detection", "extendWithFaceDetection", "err", "useTinyLandmarkNet", "DetectAllFaceLandmarksTask", "PredictAllFaceExpressionsTask", "PredictAllAgeAndGenderTask", "DetectSingleFaceTask", "faceDetections", "faceDetectionWithHighestScore", "faceDetection", "DetectSingleFaceLandmarksTask", "PredictSingleFaceExpressionsTask", "PredictSingleAgeAndGenderTask", "detectSingleFace", "input", "options", "SsdMobilenetv1Options", "DetectSingleFaceTask", "detectAllFaces", "DetectAllFacesTask", "allFacesSsdMobilenetv1", "input", "minConfidence", "detectAllFaces", "SsdMobilenetv1Options", "allFacesTinyYolov2", "forwardParams", "TinyYolov2Options", "allFaces", "euclideanDistance", "arr1", "arr2", "desc1", "desc2", "val", "i", "res", "diff", "FaceMatcher", "inputs", "distanceThreshold", "inputArray", "count", "createUniqueLabel", "desc", "LabeledFaceDescriptors", "queryDescriptor", "descriptors", "d", "euclideanDistance", "d1", "d2", "label", "FaceMatch", "best", "curr", "bestMatch", "ld", "json", "labeledDescriptors", "createTinyFaceDetector", "weights", "net", "TinyFaceDetector", "resizeResults", "results", "dimensions", "width", "height", "Dimensions", "obj", "isWithFaceLandmarks", "resizedDetection", "resizedLandmarks", "extendWithFaceLandmarks", "extendWithFaceDetection", "isWithFaceDetection", "FaceLandmarks", "FaceDetection", "version"] } diff --git a/dist/face-api.js b/dist/face-api.js index f3f07248..cc69e538 100644 --- a/dist/face-api.js +++ b/dist/face-api.js @@ -4,65 +4,65 @@ author: ' */ -"use strict";var faceapi=(()=>{var cb=Object.defineProperty;var pF=Object.getOwnPropertyDescriptor;var cF=Object.getOwnPropertyNames;var dF=Object.prototype.hasOwnProperty;var Xr=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,n)=>(typeof require!="undefined"?require:t)[n]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')});var rh=(e,t)=>{for(var n in t)cb(e,n,{get:t[n],enumerable:!0})},hF=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of cF(t))!dF.call(e,r)&&r!==n&&cb(e,r,{get:()=>t[r],enumerable:!(a=pF(t,r))||a.enumerable});return e};var mF=e=>hF(cb({},"__esModule",{value:!0}),e);var Lce={};rh(Lce,{AgeGenderNet:()=>wd,BoundingBox:()=>Co,Box:()=>st,ComposableTask:()=>ka,ComputeAllFaceDescriptorsTask:()=>Gr,ComputeFaceDescriptorsTaskBase:()=>Td,ComputeSingleFaceDescriptorTask:()=>Hr,DetectAllFaceLandmarksTask:()=>Cd,DetectAllFacesTask:()=>xp,DetectFaceLandmarksTaskBase:()=>Nd,DetectFacesTaskBase:()=>Ed,DetectSingleFaceLandmarksTask:()=>_d,DetectSingleFaceTask:()=>Ad,Dimensions:()=>yn,FACE_EXPRESSION_LABELS:()=>D1,FaceDetection:()=>yt,FaceDetectionNet:()=>W1,FaceExpressionNet:()=>vd,FaceExpressions:()=>Br,FaceLandmark68Net:()=>Po,FaceLandmark68TinyNet:()=>kd,FaceLandmarkNet:()=>O1,FaceLandmarks:()=>ra,FaceLandmarks5:()=>x1,FaceLandmarks68:()=>Eo,FaceMatch:()=>sp,FaceMatcher:()=>$d,FaceRecognitionNet:()=>Oo,Gender:()=>gg,LabeledBox:()=>ip,LabeledFaceDescriptors:()=>gr,NetInput:()=>br,NeuralNetwork:()=>sn,ObjectDetection:()=>Lr,Point:()=>De,PredictedBox:()=>v1,Rect:()=>_o,SsdMobilenetv1:()=>As,SsdMobilenetv1Options:()=>wa,TinyFaceDetector:()=>Vo,TinyFaceDetectorOptions:()=>Sd,TinyYolov2:()=>Wo,TinyYolov2Options:()=>Qa,allFaces:()=>Mce,allFacesSsdMobilenetv1:()=>E$,allFacesTinyYolov2:()=>Rce,awaitMediaLoaded:()=>C1,bufferToImage:()=>_1,computeFaceDescriptor:()=>vce,createCanvas:()=>Do,createCanvasFromMedia:()=>gd,createFaceDetectionNet:()=>hce,createFaceRecognitionNet:()=>nce,createSsdMobilenetv1:()=>m$,createTinyFaceDetector:()=>Pce,createTinyYolov2:()=>gce,detectAllFaces:()=>Tg,detectFaceLandmarks:()=>C$,detectFaceLandmarksTiny:()=>xce,detectLandmarks:()=>Fce,detectSingleFace:()=>Dce,draw:()=>M1,env:()=>Je,euclideanDistance:()=>U1,extendWithAge:()=>vg,extendWithFaceDescriptor:()=>xg,extendWithFaceDetection:()=>Ao,extendWithFaceExpressions:()=>dg,extendWithFaceLandmarks:()=>fp,extendWithGender:()=>wg,extractFaceTensors:()=>up,extractFaces:()=>lp,fetchImage:()=>Vpe,fetchJson:()=>$1,fetchNetWeights:()=>Upe,fetchOrThrow:()=>Wr,fetchVideo:()=>Gpe,getContext2dOrThrow:()=>Gn,getMediaDimensions:()=>Fo,imageTensorToCanvas:()=>E1,imageToSquare:()=>A1,inverseSigmoid:()=>Mpe,iou:()=>f1,isMediaElement:()=>rg,isMediaLoaded:()=>fd,isWithAge:()=>ace,isWithFaceDetection:()=>yr,isWithFaceExpressions:()=>R1,isWithFaceLandmarks:()=>Mo,isWithGender:()=>rce,loadAgeGenderModel:()=>Ece,loadFaceDetectionModel:()=>Ace,loadFaceExpressionModel:()=>_ce,loadFaceLandmarkModel:()=>Tce,loadFaceLandmarkTinyModel:()=>Nce,loadFaceRecognitionModel:()=>Cce,loadSsdMobilenetv1Model:()=>_$,loadTinyFaceDetectorModel:()=>Ice,loadTinyYolov2Model:()=>Sce,loadWeightMap:()=>F1,locateFaces:()=>$ce,matchDimensions:()=>Hpe,minBbox:()=>g1,nets:()=>Qe,nonMaxSuppression:()=>y1,normalize:()=>Za,padToSquare:()=>b1,predictAgeAndGender:()=>kce,recognizeFaceExpressions:()=>wce,resizeResults:()=>A$,resolveInput:()=>$o,shuffleArray:()=>Rpe,sigmoid:()=>dd,ssdMobilenetv1:()=>N$,tf:()=>Pe,tinyFaceDetector:()=>yce,tinyYolov2:()=>bce,toNetInput:()=>bt,utils:()=>m1,validateConfig:()=>B1,version:()=>Oce});var Pe={};rh(Pe,{Abs:()=>Dl,Acos:()=>Rl,Acosh:()=>Ml,AdadeltaOptimizer:()=>kf,AdagradOptimizer:()=>If,AdamOptimizer:()=>Sf,AdamaxOptimizer:()=>Tf,Add:()=>gs,AddN:()=>fi,All:()=>Pl,Any:()=>Ol,ArgMax:()=>gi,ArgMin:()=>cc,Asin:()=>Ll,Asinh:()=>zl,Atan:()=>Wl,Atan2:()=>Vl,Atanh:()=>Bl,AvgPool:()=>yi,AvgPool3D:()=>dc,AvgPool3DGrad:()=>cm,AvgPoolGrad:()=>pm,BackendWasm:()=>UA,BatchMatMul:()=>bi,BatchToSpaceND:()=>Ul,Bincount:()=>dm,BroadcastArgs:()=>hm,BroadcastTo:()=>tS,Callback:()=>x2,CallbackList:()=>IN,Cast:()=>xi,Ceil:()=>vi,ClipByValue:()=>ys,Complex:()=>mm,ComplexAbs:()=>hc,Concat:()=>Gl,Conv2D:()=>wi,Conv2DBackpropFilter:()=>fm,Conv2DBackpropInput:()=>ki,Conv3D:()=>mc,Conv3DBackpropFilterV2:()=>gm,Conv3DBackpropInputV2:()=>ym,Cos:()=>Ii,Cosh:()=>Si,CropAndResize:()=>jl,Cumprod:()=>Hl,Cumsum:()=>Ti,CustomCallback:()=>TN,DataStorage:()=>om,DenseBincount:()=>bm,DepthToSpace:()=>ql,DepthwiseConv2dNative:()=>Ni,DepthwiseConv2dNativeBackpropFilter:()=>xm,DepthwiseConv2dNativeBackpropInput:()=>vm,Diag:()=>wm,Dilation2D:()=>fc,Dilation2DBackpropFilter:()=>$h,Dilation2DBackpropInput:()=>Ah,ENV:()=>$x,EarlyStopping:()=>v2,Einsum:()=>km,Elu:()=>_i,EluGrad:()=>Im,Environment:()=>QI,Equal:()=>Xl,Erf:()=>Kl,Exp:()=>Ei,ExpandDims:()=>Yl,Expm1:()=>Zl,FFT:()=>Sm,Fill:()=>gc,FlipLeftRight:()=>Jl,Floor:()=>Ai,FloorDiv:()=>$i,FromPixels:()=>Fh,FusedBatchNorm:()=>Fi,FusedConv2D:()=>ei,FusedDepthwiseConv2D:()=>ti,GPGPUContext:()=>Th,GatherNd:()=>eu,GatherV2:()=>Ql,GraphModel:()=>A0,Greater:()=>tu,GreaterEqual:()=>Di,History:()=>SN,IFFT:()=>Tm,Identity:()=>Ri,Imag:()=>Nm,InputSpec:()=>zt,IsFinite:()=>nu,IsInf:()=>au,IsNan:()=>ru,KernelBackend:()=>pc,LRN:()=>yc,LRNGrad:()=>_m,LayerVariable:()=>gN,LayersModel:()=>Er,LeakyRelu:()=>Mi,Less:()=>su,LessEqual:()=>iu,LinSpace:()=>Cm,Log:()=>Pi,Log1p:()=>ou,LogSoftmax:()=>aS,LogicalAnd:()=>lu,LogicalNot:()=>uu,LogicalOr:()=>pu,LogicalXor:()=>nS,LowerBound:()=>rD,MathBackendWebGL:()=>Xf,Max:()=>Oi,MaxPool:()=>zi,MaxPool3D:()=>bc,MaxPool3DGrad:()=>Am,MaxPoolGrad:()=>Em,MaxPoolWithArgmax:()=>$m,Maximum:()=>Li,Mean:()=>Wi,Min:()=>Bi,Minimum:()=>Vi,MirrorPad:()=>Ui,Mod:()=>cu,MomentumOptimizer:()=>Nf,Multinomial:()=>Fm,Multiply:()=>Gi,Neg:()=>du,NonMaxSuppressionV3:()=>mu,NonMaxSuppressionV4:()=>fu,NonMaxSuppressionV5:()=>gu,NotEqual:()=>hu,OP_SCOPE_SUFFIX:()=>Mx,OneHot:()=>Hi,OnesLike:()=>yu,Optimizer:()=>Rr,OptimizerConstructors:()=>Yr,Pack:()=>bu,PadV2:()=>ji,Pool:()=>sD,Pow:()=>qi,Prelu:()=>Ki,Prod:()=>Xi,RMSPropOptimizer:()=>Cf,RNN:()=>mr,RaggedGather:()=>Dm,RaggedRange:()=>Rm,RaggedTensorToTensor:()=>Mm,Range:()=>xc,Rank:()=>Eb,Real:()=>Pm,RealDiv:()=>Ci,Reciprocal:()=>xu,Reduction:()=>vn,Relu:()=>Yi,Relu6:()=>Qi,Reshape:()=>vu,ResizeBilinear:()=>Ji,ResizeBilinearGrad:()=>Lm,ResizeNearestNeighbor:()=>Zi,ResizeNearestNeighborGrad:()=>Om,Reverse:()=>eo,RotateWithOffset:()=>Pu,Round:()=>to,Rsqrt:()=>no,SGDOptimizer:()=>qc,ScatterNd:()=>wu,SearchSorted:()=>zm,Select:()=>ku,Selu:()=>Iu,Sequential:()=>Tl,Sigmoid:()=>ro,Sign:()=>Nu,Sin:()=>ao,Sinh:()=>Tu,Slice:()=>Su,Softmax:()=>oo,Softplus:()=>Cu,SpaceToBatchND:()=>_u,SparseFillEmptyRows:()=>vc,SparseReshape:()=>Au,SparseSegmentMean:()=>wc,SparseSegmentSum:()=>kc,SparseToDense:()=>Wm,SplitV:()=>Eu,Sqrt:()=>so,Square:()=>Ic,SquaredDifference:()=>lo,Step:()=>xs,StridedSlice:()=>$u,StringNGrams:()=>Sc,StringSplit:()=>Tc,StringToHashBucketFast:()=>Nc,Sub:()=>uo,Sum:()=>io,SymbolicTensor:()=>Ba,Tan:()=>po,Tanh:()=>co,Tensor:()=>Te,TensorBuffer:()=>Ht,Tile:()=>bs,TopK:()=>Fu,Transform:()=>Du,Transpose:()=>_r,Unique:()=>Bm,Unpack:()=>Ru,UnsortedSegmentSum:()=>Cc,UpperBound:()=>iD,Variable:()=>is,ZerosLike:()=>Mu,_FusedMatMul:()=>Qs,abs:()=>Lt,acos:()=>Xx,acosh:()=>Yx,add:()=>Y,addN:()=>KS,all:()=>jm,any:()=>Qp,argMax:()=>ri,argMin:()=>Zx,asin:()=>Jx,asinh:()=>Qx,atan:()=>ev,atan2:()=>tv,atanh:()=>nv,avgPool:()=>ya,avgPool3d:()=>rv,backend:()=>AS,backend_util:()=>N,basicLSTMCell:()=>JS,batchNorm:()=>ks,batchNorm2d:()=>sv,batchNorm3d:()=>iv,batchNorm4d:()=>ov,batchToSpaceND:()=>Pc,bincount:()=>lv,booleanMaskAsync:()=>RT,broadcastArgs:()=>QS,broadcastTo:()=>Xs,broadcast_util:()=>Ou,browser:()=>ho,buffer:()=>Oe,callbacks:()=>EH,cast:()=>oe,ceil:()=>uv,clipByValue:()=>en,clone:()=>ir,complex:()=>Ar,concat:()=>Ze,concat1d:()=>pv,concat2d:()=>cv,concat3d:()=>dv,concat4d:()=>hv,constraints:()=>xN,conv1d:()=>qm,conv2d:()=>$t,conv2dTranspose:()=>Km,conv3d:()=>fv,conv3dTranspose:()=>gv,copyRegisteredKernels:()=>pD,cos:()=>Oc,cosh:()=>Xm,cosineWindow:()=>yf,cumprod:()=>ec,cumsum:()=>Ym,customGrad:()=>ur,data:()=>G2,denseBincount:()=>zh,deprecationWarn:()=>Vx,depthToSpace:()=>yv,depthwiseConv2d:()=>Is,deregisterOp:()=>FH,device_util:()=>$c,diag:()=>tT,dilation2d:()=>bv,disableDeprecationWarnings:()=>LR,dispose:()=>_e,disposeVariables:()=>zR,div:()=>he,divNoNan:()=>xv,dot:()=>vv,dropout:()=>qv,einsum:()=>nT,elu:()=>Lu,enableDebugMode:()=>OR,enableProdMode:()=>PR,enclosingPowerOfTwo:()=>Kv,engine:()=>_a,env:()=>H,equal:()=>ea,erf:()=>wv,euclideanNorm:()=>Sv,exp:()=>fn,expandDims:()=>Zt,expm1:()=>Tv,eye:()=>Zm,fft:()=>Hc,fill:()=>gn,findBackend:()=>jR,findBackendFactory:()=>qR,floor:()=>Wu,floorDiv:()=>Hm,forceHalfFloat:()=>uE,fused:()=>kl,gather:()=>Bu,gatherND:()=>LT,gather_util:()=>Ux,getBackend:()=>GR,getGradient:()=>Cb,getKernel:()=>Dh,getKernelsForBackend:()=>Rh,getThreadsCount:()=>Tpe,gpgpu_util:()=>B_,grad:()=>yO,grads:()=>bO,greater:()=>Cn,greaterEqual:()=>Fr,ifft:()=>wl,imag:()=>Dc,image:()=>za,inTopKAsync:()=>zT,initializers:()=>vN,input:()=>zN,io:()=>Ut,irfft:()=>hf,isFinite:()=>Nv,isInf:()=>Cv,isNaN:()=>_v,keep:()=>Jt,kernel_impls:()=>hr,layers:()=>wN,leakyRelu:()=>Lc,less:()=>Jm,lessEqual:()=>Ss,linalg:()=>Zv,linspace:()=>oT,loadGraphModel:()=>M6,loadGraphModelSync:()=>P6,loadLayersModel:()=>AU,localResponseNormalization:()=>Ev,log:()=>ta,log1p:()=>zc,logSigmoid:()=>Av,logSoftmax:()=>ef,logSumExp:()=>tf,logicalAnd:()=>$a,logicalNot:()=>Wc,logicalOr:()=>nf,logicalXor:()=>$v,losses:()=>ZT,lowerBound:()=>uT,matMul:()=>Fe,math:()=>ES,max:()=>ma,maxPool:()=>Dt,maxPool3d:()=>Fv,maxPoolWithArgmax:()=>pT,maximum:()=>dr,mean:()=>Nt,memory:()=>Oh,meshgrid:()=>cT,metrics:()=>g2,min:()=>bl,minimum:()=>Vu,mirrorPad:()=>Dv,mod:()=>Rv,model:()=>DU,models:()=>y2,moments:()=>Bc,movingAverage:()=>MT,mul:()=>z,multiRNNCell:()=>dT,multinomial:()=>hT,neg:()=>vt,nextFrame:()=>Jv,norm:()=>zu,notEqual:()=>oi,oneHot:()=>gl,ones:()=>Jn,onesLike:()=>na,op:()=>L,outerProduct:()=>mT,pad:()=>ba,pad1d:()=>fT,pad2d:()=>gT,pad3d:()=>yT,pad4d:()=>bT,pool:()=>Mv,pow:()=>$r,prelu:()=>Uc,print:()=>zx,prod:()=>Pv,profile:()=>WR,raggedGather:()=>xT,raggedRange:()=>vT,raggedTensorToTensor:()=>wT,rand:()=>kT,randomGamma:()=>IT,randomNormal:()=>rf,randomStandardNormal:()=>ST,randomUniform:()=>Uu,range:()=>xl,ready:()=>UR,real:()=>yl,reciprocal:()=>zv,registerBackend:()=>Gm,registerCallbackConstructor:()=>MU,registerGradient:()=>rS,registerKernel:()=>_c,registerOp:()=>$H,regularizers:()=>b2,relu:()=>Xe,relu6:()=>sf,removeBackend:()=>HR,reshape:()=>W,reverse:()=>ga,reverse1d:()=>TT,reverse2d:()=>NT,reverse3d:()=>CT,reverse4d:()=>_T,rfft:()=>jc,round:()=>of,rsqrt:()=>lf,scalar:()=>be,scatterND:()=>PT,scatter_util:()=>Gx,searchSorted:()=>af,selu:()=>uf,separableConv2d:()=>Ts,sequential:()=>RU,serialization:()=>ne,setBackend:()=>VR,setPlatform:()=>KR,setThreadsCount:()=>Spe,setWasmPath:()=>kpe,setWasmPaths:()=>Ipe,setWebGLContext:()=>c_,setdiff1dAsync:()=>ET,sigmoid:()=>ha,sign:()=>Wv,signal:()=>YT,sin:()=>pf,sinh:()=>cf,slice:()=>Be,slice1d:()=>Gc,slice2d:()=>df,slice3d:()=>fo,slice4d:()=>vl,slice_util:()=>jt,softmax:()=>Ka,softplus:()=>mo,spaceToBatchND:()=>Vc,sparse:()=>JT,sparseToDense:()=>OT,spectral:()=>XT,split:()=>zn,sqrt:()=>un,square:()=>lt,squaredDifference:()=>mf,squeeze:()=>Ns,stack:()=>Ft,step:()=>go,stridedSlice:()=>Bv,string:()=>QT,sub:()=>pe,sum:()=>fe,sumOutType:()=>Um,tan:()=>Vv,tanh:()=>si,tensor:()=>In,tensor1d:()=>Ke,tensor2d:()=>Aa,tensor3d:()=>Rc,tensor4d:()=>Da,tensor5d:()=>AT,tensor6d:()=>$T,tensor_util:()=>Va,test_util:()=>HS,tidy:()=>P,tile:()=>Ln,time:()=>BR,topk:()=>Uv,train:()=>Ws,transpose:()=>Ee,truncatedNormal:()=>ff,unique:()=>Gv,unregisterGradient:()=>uD,unregisterKernel:()=>lD,unsortedSegmentSum:()=>gf,unstack:()=>ct,upcastType:()=>fa,upperBound:()=>FT,util:()=>v,valueAndGrad:()=>xO,valueAndGrads:()=>vO,variable:()=>Hv,variableGrads:()=>lT,version:()=>Fpe,version_converter:()=>L6,version_core:()=>NM,version_layers:()=>vw,version_wasm:()=>Npe,version_webgl:()=>fJ,webgl:()=>gJ,webgl_util:()=>p_,where:()=>mn,whereAsync:()=>jv,zeros:()=>It,zerosLike:()=>qe});var fF=Object.create,Nx=Object.defineProperty,gF=Object.getOwnPropertyDescriptor,yF=Object.getOwnPropertyNames,bF=Object.getPrototypeOf,xF=Object.prototype.hasOwnProperty,BI=(e=>typeof Xr!="undefined"?Xr:typeof Proxy!="undefined"?new Proxy(e,{get:(t,n)=>(typeof Xr!="undefined"?Xr:t)[n]}):e)(function(e){if(typeof Xr!="undefined")return Xr.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')}),Bt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ae=(e,t)=>{for(var n in t)Nx(e,n,{get:t[n],enumerable:!0})},vF=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of yF(t))!xF.call(e,r)&&r!==n&&Nx(e,r,{get:()=>t[r],enumerable:!(a=gF(t,r))||a.enumerable});return e},ms=(e,t,n)=>(n=e!=null?fF(bF(e)):{},vF(t||!e||!e.__esModule?Nx(n,"default",{value:e,enumerable:!0}):n,e)),wF=Bt((e,t)=>{t.exports=a;var n=null;try{n=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(S){}function a(S,M,B){this.low=S|0,this.high=M|0,this.unsigned=!!B}a.prototype.__isLong__,Object.defineProperty(a.prototype,"__isLong__",{value:!0});function r(S){return(S&&S.__isLong__)===!0}a.isLong=r;var s={},i={};function o(S,M){var B,U,G;return M?(S>>>=0,(G=0<=S&&S<256)&&(U=i[S],U)?U:(B=u(S,(S|0)<0?-1:0,!0),G&&(i[S]=B),B)):(S|=0,(G=-128<=S&&S<128)&&(U=s[S],U)?U:(B=u(S,S<0?-1:0,!1),G&&(s[S]=B),B))}a.fromInt=o;function l(S,M){if(isNaN(S))return M?w:x;if(M){if(S<0)return w;if(S>=g)return A}else{if(S<=-y)return R;if(S+1>=y)return E}return S<0?l(-S,M).neg():u(S%f|0,S/f|0,M)}a.fromNumber=l;function u(S,M,B){return new a(S,M,B)}a.fromBits=u;var p=Math.pow;function d(S,M,B){if(S.length===0)throw Error("empty string");if(S==="NaN"||S==="Infinity"||S==="+Infinity"||S==="-Infinity")return x;if(typeof M=="number"?(B=M,M=!1):M=!!M,B=B||10,B<2||360)throw Error("interior hyphen");if(U===0)return d(S.substring(1),M,B).neg();for(var G=l(p(B,8)),q=x,K=0;K>>0:this.low},F.toNumber=function(){return this.unsigned?(this.high>>>0)*f+(this.low>>>0):this.high*f+(this.low>>>0)},F.toString=function(S){if(S=S||10,S<2||36>>0,ee=Q.toString(S);if(q=Z,q.isZero())return ee+K;for(;ee.length<6;)ee="0"+ee;K=""+ee+K}},F.getHighBits=function(){return this.high},F.getHighBitsUnsigned=function(){return this.high>>>0},F.getLowBits=function(){return this.low},F.getLowBitsUnsigned=function(){return this.low>>>0},F.getNumBitsAbs=function(){if(this.isNegative())return this.eq(R)?64:this.neg().getNumBitsAbs();for(var S=this.high!=0?this.high:this.low,M=31;M>0&&(S&1<=0},F.isOdd=function(){return(this.low&1)===1},F.isEven=function(){return(this.low&1)===0},F.equals=function(S){return r(S)||(S=c(S)),this.unsigned!==S.unsigned&&this.high>>>31===1&&S.high>>>31===1?!1:this.high===S.high&&this.low===S.low},F.eq=F.equals,F.notEquals=function(S){return!this.eq(S)},F.neq=F.notEquals,F.ne=F.notEquals,F.lessThan=function(S){return this.comp(S)<0},F.lt=F.lessThan,F.lessThanOrEqual=function(S){return this.comp(S)<=0},F.lte=F.lessThanOrEqual,F.le=F.lessThanOrEqual,F.greaterThan=function(S){return this.comp(S)>0},F.gt=F.greaterThan,F.greaterThanOrEqual=function(S){return this.comp(S)>=0},F.gte=F.greaterThanOrEqual,F.ge=F.greaterThanOrEqual,F.compare=function(S){if(r(S)||(S=c(S)),this.eq(S))return 0;var M=this.isNegative(),B=S.isNegative();return M&&!B?-1:!M&&B?1:this.unsigned?S.high>>>0>this.high>>>0||S.high===this.high&&S.low>>>0>this.low>>>0?-1:1:this.sub(S).isNegative()?-1:1},F.comp=F.compare,F.negate=function(){return!this.unsigned&&this.eq(R)?R:this.not().add(I)},F.neg=F.negate,F.add=function(S){r(S)||(S=c(S));var M=this.high>>>16,B=this.high&65535,U=this.low>>>16,G=this.low&65535,q=S.high>>>16,K=S.high&65535,Z=S.low>>>16,Q=S.low&65535,ee=0,ae=0,te=0,le=0;return le+=G+Q,te+=le>>>16,le&=65535,te+=U+Z,ae+=te>>>16,te&=65535,ae+=B+K,ee+=ae>>>16,ae&=65535,ee+=M+q,ee&=65535,u(te<<16|le,ee<<16|ae,this.unsigned)},F.subtract=function(S){return r(S)||(S=c(S)),this.add(S.neg())},F.sub=F.subtract,F.multiply=function(S){if(this.isZero())return x;if(r(S)||(S=c(S)),n){var M=n.mul(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}if(S.isZero())return x;if(this.eq(R))return S.isOdd()?R:x;if(S.eq(R))return this.isOdd()?R:x;if(this.isNegative())return S.isNegative()?this.neg().mul(S.neg()):this.neg().mul(S).neg();if(S.isNegative())return this.mul(S.neg()).neg();if(this.lt(b)&&S.lt(b))return l(this.toNumber()*S.toNumber(),this.unsigned);var B=this.high>>>16,U=this.high&65535,G=this.low>>>16,q=this.low&65535,K=S.high>>>16,Z=S.high&65535,Q=S.low>>>16,ee=S.low&65535,ae=0,te=0,le=0,ie=0;return ie+=q*ee,le+=ie>>>16,ie&=65535,le+=G*ee,te+=le>>>16,le&=65535,le+=q*Q,te+=le>>>16,le&=65535,te+=U*ee,ae+=te>>>16,te&=65535,te+=G*Q,ae+=te>>>16,te&=65535,te+=q*Z,ae+=te>>>16,te&=65535,ae+=B*ee+U*Q+G*Z+q*K,ae&=65535,u(le<<16|ie,ae<<16|te,this.unsigned)},F.mul=F.multiply,F.divide=function(S){if(r(S)||(S=c(S)),S.isZero())throw Error("division by zero");if(n){if(!this.unsigned&&this.high===-2147483648&&S.low===-1&&S.high===-1)return this;var M=(this.unsigned?n.div_u:n.div_s)(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?w:x;var B,U,G;if(this.unsigned){if(S.unsigned||(S=S.toUnsigned()),S.gt(this))return w;if(S.gt(this.shru(1)))return T;G=w}else{if(this.eq(R)){if(S.eq(I)||S.eq(C))return R;if(S.eq(R))return I;var q=this.shr(1);return B=q.div(S).shl(1),B.eq(x)?S.isNegative()?I:C:(U=this.sub(S.mul(B)),G=B.add(U.div(S)),G)}else if(S.eq(R))return this.unsigned?w:x;if(this.isNegative())return S.isNegative()?this.neg().div(S.neg()):this.neg().div(S).neg();if(S.isNegative())return this.div(S.neg()).neg();G=x}for(U=this;U.gte(S);){B=Math.max(1,Math.floor(U.toNumber()/S.toNumber()));for(var K=Math.ceil(Math.log(B)/Math.LN2),Z=K<=48?1:p(2,K-48),Q=l(B),ee=Q.mul(S);ee.isNegative()||ee.gt(U);)B-=Z,Q=l(B,this.unsigned),ee=Q.mul(S);Q.isZero()&&(Q=I),G=G.add(Q),U=U.sub(ee)}return G},F.div=F.divide,F.modulo=function(S){if(r(S)||(S=c(S)),n){var M=(this.unsigned?n.rem_u:n.rem_s)(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}return this.sub(this.div(S).mul(S))},F.mod=F.modulo,F.rem=F.modulo,F.not=function(){return u(~this.low,~this.high,this.unsigned)},F.and=function(S){return r(S)||(S=c(S)),u(this.low&S.low,this.high&S.high,this.unsigned)},F.or=function(S){return r(S)||(S=c(S)),u(this.low|S.low,this.high|S.high,this.unsigned)},F.xor=function(S){return r(S)||(S=c(S)),u(this.low^S.low,this.high^S.high,this.unsigned)},F.shiftLeft=function(S){return r(S)&&(S=S.toInt()),(S&=63)===0?this:S<32?u(this.low<>>32-S,this.unsigned):u(0,this.low<>>S|this.high<<32-S,this.high>>S,this.unsigned):u(this.high>>S-32,this.high>=0?0:-1,this.unsigned)},F.shr=F.shiftRight,F.shiftRightUnsigned=function(S){if(r(S)&&(S=S.toInt()),S&=63,S===0)return this;var M=this.high;if(S<32){var B=this.low;return u(B>>>S|M<<32-S,M>>>S,this.unsigned)}else return S===32?u(M,0,this.unsigned):u(M>>>S-32,0,this.unsigned)},F.shru=F.shiftRightUnsigned,F.shr_u=F.shiftRightUnsigned,F.toSigned=function(){return this.unsigned?u(this.low,this.high,!1):this},F.toUnsigned=function(){return this.unsigned?this:u(this.low,this.high,!0)},F.toBytes=function(S){return S?this.toBytesLE():this.toBytesBE()},F.toBytesLE=function(){var S=this.high,M=this.low;return[M&255,M>>>8&255,M>>>16&255,M>>>24,S&255,S>>>8&255,S>>>16&255,S>>>24]},F.toBytesBE=function(){var S=this.high,M=this.low;return[S>>>24,S>>>16&255,S>>>8&255,S&255,M>>>24,M>>>16&255,M>>>8&255,M&255]},a.fromBytes=function(S,M,B){return B?a.fromBytesLE(S,M):a.fromBytesBE(S,M)},a.fromBytesLE=function(S,M){return new a(S[0]|S[1]<<8|S[2]<<16|S[3]<<24,S[4]|S[5]<<8|S[6]<<16|S[7]<<24,M)},a.fromBytesBE=function(S,M){return new a(S[4]<<24|S[5]<<16|S[6]<<8|S[7],S[0]<<24|S[1]<<16|S[2]<<8|S[3],M)}}),kF=Bt(()=>{}),IF=Bt(()=>{}),SF=Bt((e,t)=>{(function(n,a,r){function s(u){var p=this,d=l();p.next=function(){var c=2091639*p.s0+p.c*23283064365386963e-26;return p.s0=p.s1,p.s1=p.s2,p.s2=c-(p.c=c|0)},p.c=1,p.s0=d(" "),p.s1=d(" "),p.s2=d(" "),p.s0-=d(u),p.s0<0&&(p.s0+=1),p.s1-=d(u),p.s1<0&&(p.s1+=1),p.s2-=d(u),p.s2<0&&(p.s2+=1),d=null}function i(u,p){return p.c=u.c,p.s0=u.s0,p.s1=u.s1,p.s2=u.s2,p}function o(u,p){var d=new s(u),c=p&&p.state,h=d.next;return h.int32=function(){return d.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,c&&(typeof c=="object"&&i(c,d),h.state=function(){return i(d,{})}),h}function l(){var u=4022871197,p=function(d){d=String(d);for(var c=0;c>>0,h-=u,h*=u,u=h>>>0,h-=u,u+=h*4294967296}return(u>>>0)*23283064365386963e-26};return p}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.alea=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),TF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.x=0,u.y=0,u.z=0,u.w=0,u.next=function(){var c=u.x^u.x<<11;return u.x=u.y,u.y=u.z,u.z=u.w,u.w^=u.w>>>19^c^c>>>8},l===(l|0)?u.x=l:p+=l;for(var d=0;d>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor128=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),NF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.next=function(){var c=u.x^u.x>>>2;return u.x=u.y,u.y=u.z,u.z=u.w,u.w=u.v,(u.d=u.d+362437|0)+(u.v=u.v^u.v<<4^(c^c<<1))|0},u.x=0,u.y=0,u.z=0,u.w=0,u.v=0,l===(l|0)?u.x=l:p+=l;for(var d=0;d>>4),u.next()}function i(l,u){return u.x=l.x,u.y=l.y,u.z=l.z,u.w=l.w,u.v=l.v,u.d=l.d,u}function o(l,u){var p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorwow=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),CF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var d=u.x,c=u.i,h,m,f;return h=d[c],h^=h>>>7,m=h^h<<24,h=d[c+1&7],m^=h^h>>>10,h=d[c+3&7],m^=h^h>>>3,h=d[c+4&7],m^=h^h<<7,h=d[c+7&7],h=h^h<<13,m^=h^h<<9,d[c]=m,u.i=c+1&7,m};function p(d,c){var h,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=""+c,h=0;h0;--h)d.next()}p(u,l)}function i(l,u){return u.x=l.x.slice(),u.i=l.i,u}function o(l,u){l==null&&(l=+new Date);var p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(d.x&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorshift7=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),_F=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var d=u.w,c=u.X,h=u.i,m,f;return u.w=d=d+1640531527|0,f=c[h+34&127],m=c[h=h+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[h]=f^m,u.i=h,f+(d^d>>>16)|0};function p(d,c){var h,m,f,g,y,b=[],x=128;for(c===(c|0)?(m=c,c=null):(c=c+"\0",m=0,x=Math.max(x,c.length)),f=0,g=-32;g>>15,m^=m<<4,m^=m>>>13,g>=0&&(y=y+1640531527|0,h=b[g&127]^=m+y,f=h==0?f+1:0);for(f>=128&&(b[(c&&c.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=b[f+34&127],h=b[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,b[f]=m^h;d.w=y,d.X=b,d.i=f}p(u,l)}function i(l,u){return u.i=l.i,u.w=l.w,u.X=l.X.slice(),u}function o(l,u){l==null&&(l=+new Date);var p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(d.X&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor4096=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),EF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.next=function(){var c=u.b,h=u.c,m=u.d,f=u.a;return c=c<<25^c>>>7^h,h=h-m|0,m=m<<24^m>>>8^f,f=f-c|0,u.b=c=c<<20^c>>>12^h,u.c=h=h-m|0,u.d=m<<16^h>>>16^f,u.a=f-c|0},u.a=0,u.b=0,u.c=-1640531527,u.d=1367130551,l===Math.floor(l)?(u.a=l/4294967296|0,u.b=l|0):p+=l;for(var d=0;d>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.tychei=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),AF=Bt(()=>{}),$F=Bt((e,t)=>{(function(n,a,r){var s=256,i=6,o=52,l="random",u=r.pow(s,i),p=r.pow(2,o),d=p*2,c=s-1,h;function m(I,T,C){var E=[];T=T==!0?{entropy:!0}:T||{};var A=b(y(T.entropy?[I,w(a)]:I==null?x():I,3),E),R=new f(E),F=function(){for(var S=R.g(i),M=u,B=0;S=d;)S/=2,M/=2,B>>>=1;return(S+B)/M};return F.int32=function(){return R.g(4)|0},F.quick=function(){return R.g(4)/4294967296},F.double=F,b(w(R.S),a),(T.pass||C||function(S,M,B,U){return U&&(U.S&&g(U,R),S.state=function(){return g(R,{})}),B?(r[l]=S,M):S})(F,A,"global"in T?T.global:this==r,T.state)}function f(I){var T,C=I.length,E=this,A=0,R=E.i=E.j=0,F=E.S=[];for(C||(I=[C++]);A{var n=SF(),a=TF(),r=NF(),s=CF(),i=_F(),o=EF(),l=$F();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),VI=Bt(()=>{}),Cx=Bt(()=>{}),Ch=Bt(()=>{}),FF=Bt(()=>{}),DF=Bt(()=>{}),RF=Bt(()=>{}),MF=Bt((e,t)=>{var n=(()=>{var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};function s(){return ue.buffer!=ze&&ot(ue.buffer),dt}function i(){return ue.buffer!=ze&&ot(ue.buffer),jn}function o(){return ue.buffer!=ze&&ot(ue.buffer),Mt}function l(){return ue.buffer!=ze&&ot(ue.buffer),on}function u(){return ue.buffer!=ze&&ot(ue.buffer),Fn}function p(){return ue.buffer!=ze&&ot(ue.buffer),oa}function d(){return ue.buffer!=ze&&ot(ue.buffer),Dn}var c=typeof r!="undefined"?r:{},h,m;c.ready=new Promise(function(D,j){h=D,m=j});var f;typeof process!="undefined"&&process.listeners&&(f={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var g=Object.assign({},c),y=[],b="./this.program",x=(D,j)=>{throw j},w=typeof window=="object",I=typeof importScripts=="function",T=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",C=c.ENVIRONMENT_IS_PTHREAD||!1,E="";function A(D){return c.locateFile?c.locateFile(D,E):E+D}var R,F,S,M;function B(D){D instanceof Ms||Q("exiting due to exception: "+D)}if(T){I?E=Ch().dirname(E)+"/":E=__dirname+"/";var U,G;typeof BI=="function"&&(U=Cx(),G=Ch()),R=(j,re)=>(j=G.normalize(j),U.readFileSync(j,re?void 0:"utf8")),S=j=>{var re=R(j,!0);return re.buffer||(re=new Uint8Array(re)),re},F=(j,re,ce)=>{j=G.normalize(j),U.readFile(j,function(ke,je){ke?ce(ke):re(je.buffer)})},process.argv.length>1&&(b=process.argv[1].replace(/\\/g,"/")),y=process.argv.slice(2),process.on("uncaughtException",function(j){if(!(j instanceof Ms))throw j}),process.on("unhandledRejection",function(j){throw j}),x=(j,re)=>{if(Ia())throw process.exitCode=j,re;B(re),process.exit(j)},c.inspect=function(){return"[Emscripten Module object]"};let D;try{D=FF()}catch(j){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),j}global.Worker=D.Worker}else(w||I)&&(I?E=self.location.href:typeof document!="undefined"&&document.currentScript&&(E=document.currentScript.src),typeof a!="undefined"&&a&&(E=a),E.indexOf("blob:")!==0?E=E.substr(0,E.replace(/[?#].*/,"").lastIndexOf("/")+1):E="",T||(R=D=>{var j=new XMLHttpRequest;return j.open("GET",D,!1),j.send(null),j.responseText},I&&(S=D=>{var j=new XMLHttpRequest;return j.open("GET",D,!1),j.responseType="arraybuffer",j.send(null),new Uint8Array(j.response)}),F=(D,j,re)=>{var ce=new XMLHttpRequest;ce.open("GET",D,!0),ce.responseType="arraybuffer",ce.onload=()=>{if(ce.status==200||ce.status==0&&ce.response){j(ce.response);return}re()},ce.onerror=re,ce.send(null)}),M=D=>document.title=D);T&&typeof performance=="undefined"&&(global.performance=DF().performance);var q=console.log.bind(console),K=console.warn.bind(console);T&&(q=D=>U.writeSync(1,D+` +"use strict";var faceapi=(()=>{var cb=Object.defineProperty;var pF=Object.getOwnPropertyDescriptor;var cF=Object.getOwnPropertyNames;var dF=Object.prototype.hasOwnProperty;var Xr=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,n)=>(typeof require!="undefined"?require:t)[n]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')});var rh=(e,t)=>{for(var n in t)cb(e,n,{get:t[n],enumerable:!0})},hF=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of cF(t))!dF.call(e,r)&&r!==n&&cb(e,r,{get:()=>t[r],enumerable:!(a=pF(t,r))||a.enumerable});return e};var mF=e=>hF(cb({},"__esModule",{value:!0}),e);var Lce={};rh(Lce,{AgeGenderNet:()=>wd,BoundingBox:()=>Co,Box:()=>st,ComposableTask:()=>ka,ComputeAllFaceDescriptorsTask:()=>Gr,ComputeFaceDescriptorsTaskBase:()=>Td,ComputeSingleFaceDescriptorTask:()=>Hr,DetectAllFaceLandmarksTask:()=>Cd,DetectAllFacesTask:()=>xp,DetectFaceLandmarksTaskBase:()=>Nd,DetectFacesTaskBase:()=>Ed,DetectSingleFaceLandmarksTask:()=>_d,DetectSingleFaceTask:()=>$d,Dimensions:()=>yn,FACE_EXPRESSION_LABELS:()=>D1,FaceDetection:()=>yt,FaceDetectionNet:()=>W1,FaceExpressionNet:()=>vd,FaceExpressions:()=>Br,FaceLandmark68Net:()=>Po,FaceLandmark68TinyNet:()=>kd,FaceLandmarkNet:()=>O1,FaceLandmarks:()=>ra,FaceLandmarks5:()=>x1,FaceLandmarks68:()=>Eo,FaceMatch:()=>sp,FaceMatcher:()=>Ad,FaceRecognitionNet:()=>Oo,Gender:()=>gg,LabeledBox:()=>ip,LabeledFaceDescriptors:()=>gr,NetInput:()=>br,NeuralNetwork:()=>sn,ObjectDetection:()=>Lr,Point:()=>De,PredictedBox:()=>v1,Rect:()=>_o,SsdMobilenetv1:()=>$s,SsdMobilenetv1Options:()=>wa,TinyFaceDetector:()=>Vo,TinyFaceDetectorOptions:()=>Sd,TinyYolov2:()=>Wo,TinyYolov2Options:()=>Qa,allFaces:()=>Mce,allFacesSsdMobilenetv1:()=>EA,allFacesTinyYolov2:()=>Rce,awaitMediaLoaded:()=>C1,bufferToImage:()=>_1,computeFaceDescriptor:()=>vce,createCanvas:()=>Do,createCanvasFromMedia:()=>gd,createFaceDetectionNet:()=>hce,createFaceRecognitionNet:()=>nce,createSsdMobilenetv1:()=>mA,createTinyFaceDetector:()=>Pce,createTinyYolov2:()=>gce,detectAllFaces:()=>Tg,detectFaceLandmarks:()=>CA,detectFaceLandmarksTiny:()=>xce,detectLandmarks:()=>Fce,detectSingleFace:()=>Dce,draw:()=>M1,env:()=>Je,euclideanDistance:()=>U1,extendWithAge:()=>vg,extendWithFaceDescriptor:()=>xg,extendWithFaceDetection:()=>$o,extendWithFaceExpressions:()=>dg,extendWithFaceLandmarks:()=>fp,extendWithGender:()=>wg,extractFaceTensors:()=>up,extractFaces:()=>lp,fetchImage:()=>Vpe,fetchJson:()=>A1,fetchNetWeights:()=>Upe,fetchOrThrow:()=>Wr,fetchVideo:()=>Gpe,getContext2dOrThrow:()=>Gn,getMediaDimensions:()=>Fo,imageTensorToCanvas:()=>E1,imageToSquare:()=>$1,inverseSigmoid:()=>Mpe,iou:()=>f1,isMediaElement:()=>rg,isMediaLoaded:()=>fd,isWithAge:()=>ace,isWithFaceDetection:()=>yr,isWithFaceExpressions:()=>R1,isWithFaceLandmarks:()=>Mo,isWithGender:()=>rce,loadAgeGenderModel:()=>Ece,loadFaceDetectionModel:()=>$ce,loadFaceExpressionModel:()=>_ce,loadFaceLandmarkModel:()=>Tce,loadFaceLandmarkTinyModel:()=>Nce,loadFaceRecognitionModel:()=>Cce,loadSsdMobilenetv1Model:()=>_A,loadTinyFaceDetectorModel:()=>Ice,loadTinyYolov2Model:()=>Sce,loadWeightMap:()=>F1,locateFaces:()=>Ace,matchDimensions:()=>Hpe,minBbox:()=>g1,nets:()=>Qe,nonMaxSuppression:()=>y1,normalize:()=>Za,padToSquare:()=>b1,predictAgeAndGender:()=>kce,recognizeFaceExpressions:()=>wce,resizeResults:()=>$A,resolveInput:()=>Ao,shuffleArray:()=>Rpe,sigmoid:()=>dd,ssdMobilenetv1:()=>NA,tf:()=>Pe,tinyFaceDetector:()=>yce,tinyYolov2:()=>bce,toNetInput:()=>bt,utils:()=>m1,validateConfig:()=>B1,version:()=>Oce});var Pe={};rh(Pe,{Abs:()=>Dl,Acos:()=>Rl,Acosh:()=>Ml,AdadeltaOptimizer:()=>kf,AdagradOptimizer:()=>If,AdamOptimizer:()=>Sf,AdamaxOptimizer:()=>Tf,Add:()=>gs,AddN:()=>fi,All:()=>Pl,Any:()=>Ol,ArgMax:()=>gi,ArgMin:()=>cc,Asin:()=>Ll,Asinh:()=>zl,Atan:()=>Wl,Atan2:()=>Vl,Atanh:()=>Bl,AvgPool:()=>yi,AvgPool3D:()=>dc,AvgPool3DGrad:()=>cm,AvgPoolGrad:()=>pm,BackendWasm:()=>U$,BatchMatMul:()=>bi,BatchToSpaceND:()=>Ul,Bincount:()=>dm,BroadcastArgs:()=>hm,BroadcastTo:()=>tS,Callback:()=>x2,CallbackList:()=>IN,Cast:()=>xi,Ceil:()=>vi,ClipByValue:()=>ys,Complex:()=>mm,ComplexAbs:()=>hc,Concat:()=>Gl,Conv2D:()=>wi,Conv2DBackpropFilter:()=>fm,Conv2DBackpropInput:()=>ki,Conv3D:()=>mc,Conv3DBackpropFilterV2:()=>gm,Conv3DBackpropInputV2:()=>ym,Cos:()=>Ii,Cosh:()=>Si,CropAndResize:()=>jl,Cumprod:()=>Hl,Cumsum:()=>Ti,CustomCallback:()=>TN,DataStorage:()=>om,DenseBincount:()=>bm,DepthToSpace:()=>ql,DepthwiseConv2dNative:()=>Ni,DepthwiseConv2dNativeBackpropFilter:()=>xm,DepthwiseConv2dNativeBackpropInput:()=>vm,Diag:()=>wm,Dilation2D:()=>fc,Dilation2DBackpropFilter:()=>Ah,Dilation2DBackpropInput:()=>$h,ENV:()=>Ax,EarlyStopping:()=>v2,Einsum:()=>km,Elu:()=>_i,EluGrad:()=>Im,Environment:()=>QI,Equal:()=>Xl,Erf:()=>Kl,Exp:()=>Ei,ExpandDims:()=>Yl,Expm1:()=>Zl,FFT:()=>Sm,Fill:()=>gc,FlipLeftRight:()=>Jl,Floor:()=>$i,FloorDiv:()=>Ai,FromPixels:()=>Fh,FusedBatchNorm:()=>Fi,FusedConv2D:()=>ei,FusedDepthwiseConv2D:()=>ti,GPGPUContext:()=>Th,GatherNd:()=>eu,GatherV2:()=>Ql,GraphModel:()=>$0,Greater:()=>tu,GreaterEqual:()=>Di,History:()=>SN,IFFT:()=>Tm,Identity:()=>Ri,Imag:()=>Nm,InputSpec:()=>zt,IsFinite:()=>nu,IsInf:()=>au,IsNan:()=>ru,KernelBackend:()=>pc,LRN:()=>yc,LRNGrad:()=>_m,LayerVariable:()=>gN,LayersModel:()=>Er,LeakyRelu:()=>Mi,Less:()=>su,LessEqual:()=>iu,LinSpace:()=>Cm,Log:()=>Pi,Log1p:()=>ou,LogSoftmax:()=>aS,LogicalAnd:()=>lu,LogicalNot:()=>uu,LogicalOr:()=>pu,LogicalXor:()=>nS,LowerBound:()=>rD,MathBackendWebGL:()=>Xf,Max:()=>Oi,MaxPool:()=>zi,MaxPool3D:()=>bc,MaxPool3DGrad:()=>$m,MaxPoolGrad:()=>Em,MaxPoolWithArgmax:()=>Am,Maximum:()=>Li,Mean:()=>Wi,Min:()=>Bi,Minimum:()=>Vi,MirrorPad:()=>Ui,Mod:()=>cu,MomentumOptimizer:()=>Nf,Multinomial:()=>Fm,Multiply:()=>Gi,Neg:()=>du,NonMaxSuppressionV3:()=>mu,NonMaxSuppressionV4:()=>fu,NonMaxSuppressionV5:()=>gu,NotEqual:()=>hu,OP_SCOPE_SUFFIX:()=>Mx,OneHot:()=>Hi,OnesLike:()=>yu,Optimizer:()=>Rr,OptimizerConstructors:()=>Yr,Pack:()=>bu,PadV2:()=>ji,Pool:()=>sD,Pow:()=>qi,Prelu:()=>Ki,Prod:()=>Xi,RMSPropOptimizer:()=>Cf,RNN:()=>mr,RaggedGather:()=>Dm,RaggedRange:()=>Rm,RaggedTensorToTensor:()=>Mm,Range:()=>xc,Rank:()=>Eb,Real:()=>Pm,RealDiv:()=>Ci,Reciprocal:()=>xu,Reduction:()=>vn,Relu:()=>Yi,Relu6:()=>Qi,Reshape:()=>vu,ResizeBilinear:()=>Ji,ResizeBilinearGrad:()=>Lm,ResizeNearestNeighbor:()=>Zi,ResizeNearestNeighborGrad:()=>Om,Reverse:()=>eo,RotateWithOffset:()=>Pu,Round:()=>to,Rsqrt:()=>no,SGDOptimizer:()=>qc,ScatterNd:()=>wu,SearchSorted:()=>zm,Select:()=>ku,Selu:()=>Iu,Sequential:()=>Tl,Sigmoid:()=>ro,Sign:()=>Nu,Sin:()=>ao,Sinh:()=>Tu,Slice:()=>Su,Softmax:()=>oo,Softplus:()=>Cu,SpaceToBatchND:()=>_u,SparseFillEmptyRows:()=>vc,SparseReshape:()=>$u,SparseSegmentMean:()=>wc,SparseSegmentSum:()=>kc,SparseToDense:()=>Wm,SplitV:()=>Eu,Sqrt:()=>so,Square:()=>Ic,SquaredDifference:()=>lo,Step:()=>xs,StridedSlice:()=>Au,StringNGrams:()=>Sc,StringSplit:()=>Tc,StringToHashBucketFast:()=>Nc,Sub:()=>uo,Sum:()=>io,SymbolicTensor:()=>Ba,Tan:()=>po,Tanh:()=>co,Tensor:()=>Te,TensorBuffer:()=>Ht,Tile:()=>bs,TopK:()=>Fu,Transform:()=>Du,Transpose:()=>_r,Unique:()=>Bm,Unpack:()=>Ru,UnsortedSegmentSum:()=>Cc,UpperBound:()=>iD,Variable:()=>is,ZerosLike:()=>Mu,_FusedMatMul:()=>Qs,abs:()=>Lt,acos:()=>Xx,acosh:()=>Yx,add:()=>Y,addN:()=>KS,all:()=>jm,any:()=>Qp,argMax:()=>ri,argMin:()=>Zx,asin:()=>Jx,asinh:()=>Qx,atan:()=>ev,atan2:()=>tv,atanh:()=>nv,avgPool:()=>ya,avgPool3d:()=>rv,backend:()=>$S,backend_util:()=>N,basicLSTMCell:()=>JS,batchNorm:()=>ks,batchNorm2d:()=>sv,batchNorm3d:()=>iv,batchNorm4d:()=>ov,batchToSpaceND:()=>Pc,bincount:()=>lv,booleanMaskAsync:()=>RT,broadcastArgs:()=>QS,broadcastTo:()=>Xs,broadcast_util:()=>Ou,browser:()=>ho,buffer:()=>Oe,callbacks:()=>EH,cast:()=>le,ceil:()=>uv,clipByValue:()=>en,clone:()=>ir,complex:()=>$r,concat:()=>Ze,concat1d:()=>pv,concat2d:()=>cv,concat3d:()=>dv,concat4d:()=>hv,constraints:()=>xN,conv1d:()=>qm,conv2d:()=>At,conv2dTranspose:()=>Km,conv3d:()=>fv,conv3dTranspose:()=>gv,copyRegisteredKernels:()=>pD,cos:()=>Oc,cosh:()=>Xm,cosineWindow:()=>yf,cumprod:()=>ec,cumsum:()=>Ym,customGrad:()=>ur,data:()=>G2,denseBincount:()=>zh,deprecationWarn:()=>Vx,depthToSpace:()=>yv,depthwiseConv2d:()=>Is,deregisterOp:()=>FH,device_util:()=>Ac,diag:()=>tT,dilation2d:()=>bv,disableDeprecationWarnings:()=>LR,dispose:()=>_e,disposeVariables:()=>zR,div:()=>he,divNoNan:()=>xv,dot:()=>vv,dropout:()=>qv,einsum:()=>nT,elu:()=>Lu,enableDebugMode:()=>OR,enableProdMode:()=>PR,enclosingPowerOfTwo:()=>Kv,engine:()=>_a,env:()=>H,equal:()=>ea,erf:()=>wv,euclideanNorm:()=>Sv,exp:()=>fn,expandDims:()=>Zt,expm1:()=>Tv,eye:()=>Zm,fft:()=>Hc,fill:()=>gn,findBackend:()=>jR,findBackendFactory:()=>qR,floor:()=>Wu,floorDiv:()=>Hm,forceHalfFloat:()=>uE,fused:()=>kl,gather:()=>Bu,gatherND:()=>LT,gather_util:()=>Ux,getBackend:()=>GR,getGradient:()=>Cb,getKernel:()=>Dh,getKernelsForBackend:()=>Rh,getThreadsCount:()=>Tpe,gpgpu_util:()=>B_,grad:()=>yO,grads:()=>bO,greater:()=>Cn,greaterEqual:()=>Fr,ifft:()=>wl,imag:()=>Dc,image:()=>za,inTopKAsync:()=>zT,initializers:()=>vN,input:()=>zN,io:()=>Ut,irfft:()=>hf,isFinite:()=>Nv,isInf:()=>Cv,isNaN:()=>_v,keep:()=>Jt,kernel_impls:()=>hr,layers:()=>wN,leakyRelu:()=>Lc,less:()=>Jm,lessEqual:()=>Ss,linalg:()=>Zv,linspace:()=>oT,loadGraphModel:()=>M6,loadGraphModelSync:()=>P6,loadLayersModel:()=>$U,localResponseNormalization:()=>Ev,log:()=>ta,log1p:()=>zc,logSigmoid:()=>$v,logSoftmax:()=>ef,logSumExp:()=>tf,logicalAnd:()=>Aa,logicalNot:()=>Wc,logicalOr:()=>nf,logicalXor:()=>Av,losses:()=>ZT,lowerBound:()=>uT,matMul:()=>Fe,math:()=>ES,max:()=>ma,maxPool:()=>Dt,maxPool3d:()=>Fv,maxPoolWithArgmax:()=>pT,maximum:()=>dr,mean:()=>Nt,memory:()=>Oh,meshgrid:()=>cT,metrics:()=>g2,min:()=>bl,minimum:()=>Vu,mirrorPad:()=>Dv,mod:()=>Rv,model:()=>DU,models:()=>y2,moments:()=>Bc,movingAverage:()=>MT,mul:()=>z,multiRNNCell:()=>dT,multinomial:()=>hT,neg:()=>vt,nextFrame:()=>Jv,norm:()=>zu,notEqual:()=>oi,oneHot:()=>gl,ones:()=>Jn,onesLike:()=>na,op:()=>L,outerProduct:()=>mT,pad:()=>ba,pad1d:()=>fT,pad2d:()=>gT,pad3d:()=>yT,pad4d:()=>bT,pool:()=>Mv,pow:()=>Ar,prelu:()=>Uc,print:()=>zx,prod:()=>Pv,profile:()=>WR,raggedGather:()=>xT,raggedRange:()=>vT,raggedTensorToTensor:()=>wT,rand:()=>kT,randomGamma:()=>IT,randomNormal:()=>rf,randomStandardNormal:()=>ST,randomUniform:()=>Uu,range:()=>xl,ready:()=>UR,real:()=>yl,reciprocal:()=>zv,registerBackend:()=>Gm,registerCallbackConstructor:()=>MU,registerGradient:()=>rS,registerKernel:()=>_c,registerOp:()=>AH,regularizers:()=>b2,relu:()=>Xe,relu6:()=>sf,removeBackend:()=>HR,reshape:()=>W,reverse:()=>ga,reverse1d:()=>TT,reverse2d:()=>NT,reverse3d:()=>CT,reverse4d:()=>_T,rfft:()=>jc,round:()=>of,rsqrt:()=>lf,scalar:()=>xe,scatterND:()=>PT,scatter_util:()=>Gx,searchSorted:()=>af,selu:()=>uf,separableConv2d:()=>Ts,sequential:()=>RU,serialization:()=>ne,setBackend:()=>VR,setPlatform:()=>KR,setThreadsCount:()=>Spe,setWasmPath:()=>kpe,setWasmPaths:()=>Ipe,setWebGLContext:()=>c_,setdiff1dAsync:()=>ET,sigmoid:()=>ha,sign:()=>Wv,signal:()=>YT,sin:()=>pf,sinh:()=>cf,slice:()=>Be,slice1d:()=>Gc,slice2d:()=>df,slice3d:()=>fo,slice4d:()=>vl,slice_util:()=>jt,softmax:()=>Ka,softplus:()=>mo,spaceToBatchND:()=>Vc,sparse:()=>JT,sparseToDense:()=>OT,spectral:()=>XT,split:()=>zn,sqrt:()=>un,square:()=>lt,squaredDifference:()=>mf,squeeze:()=>Ns,stack:()=>Ft,step:()=>go,stridedSlice:()=>Bv,string:()=>QT,sub:()=>pe,sum:()=>fe,sumOutType:()=>Um,tan:()=>Vv,tanh:()=>si,tensor:()=>In,tensor1d:()=>Ke,tensor2d:()=>$a,tensor3d:()=>Rc,tensor4d:()=>Da,tensor5d:()=>$T,tensor6d:()=>AT,tensor_util:()=>Va,test_util:()=>HS,tidy:()=>P,tile:()=>Ln,time:()=>BR,topk:()=>Uv,train:()=>Ws,transpose:()=>Ee,truncatedNormal:()=>ff,unique:()=>Gv,unregisterGradient:()=>uD,unregisterKernel:()=>lD,unsortedSegmentSum:()=>gf,unstack:()=>ct,upcastType:()=>fa,upperBound:()=>FT,util:()=>v,valueAndGrad:()=>xO,valueAndGrads:()=>vO,variable:()=>Hv,variableGrads:()=>lT,version:()=>Fpe,version_converter:()=>L6,version_core:()=>NM,version_layers:()=>vw,version_wasm:()=>Npe,version_webgl:()=>fJ,webgl:()=>gJ,webgl_util:()=>p_,where:()=>mn,whereAsync:()=>jv,zeros:()=>It,zerosLike:()=>qe});var fF=Object.create,Nx=Object.defineProperty,gF=Object.getOwnPropertyDescriptor,yF=Object.getOwnPropertyNames,bF=Object.getPrototypeOf,xF=Object.prototype.hasOwnProperty,BI=(e=>typeof Xr!="undefined"?Xr:typeof Proxy!="undefined"?new Proxy(e,{get:(t,n)=>(typeof Xr!="undefined"?Xr:t)[n]}):e)(function(e){if(typeof Xr!="undefined")return Xr.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')}),Bt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),$e=(e,t)=>{for(var n in t)Nx(e,n,{get:t[n],enumerable:!0})},vF=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of yF(t))!xF.call(e,r)&&r!==n&&Nx(e,r,{get:()=>t[r],enumerable:!(a=gF(t,r))||a.enumerable});return e},ms=(e,t,n)=>(n=e!=null?fF(bF(e)):{},vF(t||!e||!e.__esModule?Nx(n,"default",{value:e,enumerable:!0}):n,e)),wF=Bt((e,t)=>{t.exports=a;var n=null;try{n=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(S){}function a(S,M,B){this.low=S|0,this.high=M|0,this.unsigned=!!B}a.prototype.__isLong__,Object.defineProperty(a.prototype,"__isLong__",{value:!0});function r(S){return(S&&S.__isLong__)===!0}a.isLong=r;var s={},i={};function o(S,M){var B,U,G;return M?(S>>>=0,(G=0<=S&&S<256)&&(U=i[S],U)?U:(B=u(S,(S|0)<0?-1:0,!0),G&&(i[S]=B),B)):(S|=0,(G=-128<=S&&S<128)&&(U=s[S],U)?U:(B=u(S,S<0?-1:0,!1),G&&(s[S]=B),B))}a.fromInt=o;function l(S,M){if(isNaN(S))return M?w:x;if(M){if(S<0)return w;if(S>=g)return $}else{if(S<=-y)return R;if(S+1>=y)return E}return S<0?l(-S,M).neg():u(S%f|0,S/f|0,M)}a.fromNumber=l;function u(S,M,B){return new a(S,M,B)}a.fromBits=u;var p=Math.pow;function d(S,M,B){if(S.length===0)throw Error("empty string");if(S==="NaN"||S==="Infinity"||S==="+Infinity"||S==="-Infinity")return x;if(typeof M=="number"?(B=M,M=!1):M=!!M,B=B||10,B<2||360)throw Error("interior hyphen");if(U===0)return d(S.substring(1),M,B).neg();for(var G=l(p(B,8)),q=x,K=0;K>>0:this.low},F.toNumber=function(){return this.unsigned?(this.high>>>0)*f+(this.low>>>0):this.high*f+(this.low>>>0)},F.toString=function(S){if(S=S||10,S<2||36>>0,ee=J.toString(S);if(q=Z,q.isZero())return ee+K;for(;ee.length<6;)ee="0"+ee;K=""+ee+K}},F.getHighBits=function(){return this.high},F.getHighBitsUnsigned=function(){return this.high>>>0},F.getLowBits=function(){return this.low},F.getLowBitsUnsigned=function(){return this.low>>>0},F.getNumBitsAbs=function(){if(this.isNegative())return this.eq(R)?64:this.neg().getNumBitsAbs();for(var S=this.high!=0?this.high:this.low,M=31;M>0&&(S&1<=0},F.isOdd=function(){return(this.low&1)===1},F.isEven=function(){return(this.low&1)===0},F.equals=function(S){return r(S)||(S=c(S)),this.unsigned!==S.unsigned&&this.high>>>31===1&&S.high>>>31===1?!1:this.high===S.high&&this.low===S.low},F.eq=F.equals,F.notEquals=function(S){return!this.eq(S)},F.neq=F.notEquals,F.ne=F.notEquals,F.lessThan=function(S){return this.comp(S)<0},F.lt=F.lessThan,F.lessThanOrEqual=function(S){return this.comp(S)<=0},F.lte=F.lessThanOrEqual,F.le=F.lessThanOrEqual,F.greaterThan=function(S){return this.comp(S)>0},F.gt=F.greaterThan,F.greaterThanOrEqual=function(S){return this.comp(S)>=0},F.gte=F.greaterThanOrEqual,F.ge=F.greaterThanOrEqual,F.compare=function(S){if(r(S)||(S=c(S)),this.eq(S))return 0;var M=this.isNegative(),B=S.isNegative();return M&&!B?-1:!M&&B?1:this.unsigned?S.high>>>0>this.high>>>0||S.high===this.high&&S.low>>>0>this.low>>>0?-1:1:this.sub(S).isNegative()?-1:1},F.comp=F.compare,F.negate=function(){return!this.unsigned&&this.eq(R)?R:this.not().add(I)},F.neg=F.negate,F.add=function(S){r(S)||(S=c(S));var M=this.high>>>16,B=this.high&65535,U=this.low>>>16,G=this.low&65535,q=S.high>>>16,K=S.high&65535,Z=S.low>>>16,J=S.low&65535,ee=0,ae=0,te=0,ie=0;return ie+=G+J,te+=ie>>>16,ie&=65535,te+=U+Z,ae+=te>>>16,te&=65535,ae+=B+K,ee+=ae>>>16,ae&=65535,ee+=M+q,ee&=65535,u(te<<16|ie,ee<<16|ae,this.unsigned)},F.subtract=function(S){return r(S)||(S=c(S)),this.add(S.neg())},F.sub=F.subtract,F.multiply=function(S){if(this.isZero())return x;if(r(S)||(S=c(S)),n){var M=n.mul(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}if(S.isZero())return x;if(this.eq(R))return S.isOdd()?R:x;if(S.eq(R))return this.isOdd()?R:x;if(this.isNegative())return S.isNegative()?this.neg().mul(S.neg()):this.neg().mul(S).neg();if(S.isNegative())return this.mul(S.neg()).neg();if(this.lt(b)&&S.lt(b))return l(this.toNumber()*S.toNumber(),this.unsigned);var B=this.high>>>16,U=this.high&65535,G=this.low>>>16,q=this.low&65535,K=S.high>>>16,Z=S.high&65535,J=S.low>>>16,ee=S.low&65535,ae=0,te=0,ie=0,oe=0;return oe+=q*ee,ie+=oe>>>16,oe&=65535,ie+=G*ee,te+=ie>>>16,ie&=65535,ie+=q*J,te+=ie>>>16,ie&=65535,te+=U*ee,ae+=te>>>16,te&=65535,te+=G*J,ae+=te>>>16,te&=65535,te+=q*Z,ae+=te>>>16,te&=65535,ae+=B*ee+U*J+G*Z+q*K,ae&=65535,u(ie<<16|oe,ae<<16|te,this.unsigned)},F.mul=F.multiply,F.divide=function(S){if(r(S)||(S=c(S)),S.isZero())throw Error("division by zero");if(n){if(!this.unsigned&&this.high===-2147483648&&S.low===-1&&S.high===-1)return this;var M=(this.unsigned?n.div_u:n.div_s)(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?w:x;var B,U,G;if(this.unsigned){if(S.unsigned||(S=S.toUnsigned()),S.gt(this))return w;if(S.gt(this.shru(1)))return T;G=w}else{if(this.eq(R)){if(S.eq(I)||S.eq(C))return R;if(S.eq(R))return I;var q=this.shr(1);return B=q.div(S).shl(1),B.eq(x)?S.isNegative()?I:C:(U=this.sub(S.mul(B)),G=B.add(U.div(S)),G)}else if(S.eq(R))return this.unsigned?w:x;if(this.isNegative())return S.isNegative()?this.neg().div(S.neg()):this.neg().div(S).neg();if(S.isNegative())return this.div(S.neg()).neg();G=x}for(U=this;U.gte(S);){B=Math.max(1,Math.floor(U.toNumber()/S.toNumber()));for(var K=Math.ceil(Math.log(B)/Math.LN2),Z=K<=48?1:p(2,K-48),J=l(B),ee=J.mul(S);ee.isNegative()||ee.gt(U);)B-=Z,J=l(B,this.unsigned),ee=J.mul(S);J.isZero()&&(J=I),G=G.add(J),U=U.sub(ee)}return G},F.div=F.divide,F.modulo=function(S){if(r(S)||(S=c(S)),n){var M=(this.unsigned?n.rem_u:n.rem_s)(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}return this.sub(this.div(S).mul(S))},F.mod=F.modulo,F.rem=F.modulo,F.not=function(){return u(~this.low,~this.high,this.unsigned)},F.and=function(S){return r(S)||(S=c(S)),u(this.low&S.low,this.high&S.high,this.unsigned)},F.or=function(S){return r(S)||(S=c(S)),u(this.low|S.low,this.high|S.high,this.unsigned)},F.xor=function(S){return r(S)||(S=c(S)),u(this.low^S.low,this.high^S.high,this.unsigned)},F.shiftLeft=function(S){return r(S)&&(S=S.toInt()),(S&=63)===0?this:S<32?u(this.low<>>32-S,this.unsigned):u(0,this.low<>>S|this.high<<32-S,this.high>>S,this.unsigned):u(this.high>>S-32,this.high>=0?0:-1,this.unsigned)},F.shr=F.shiftRight,F.shiftRightUnsigned=function(S){if(r(S)&&(S=S.toInt()),S&=63,S===0)return this;var M=this.high;if(S<32){var B=this.low;return u(B>>>S|M<<32-S,M>>>S,this.unsigned)}else return S===32?u(M,0,this.unsigned):u(M>>>S-32,0,this.unsigned)},F.shru=F.shiftRightUnsigned,F.shr_u=F.shiftRightUnsigned,F.toSigned=function(){return this.unsigned?u(this.low,this.high,!1):this},F.toUnsigned=function(){return this.unsigned?this:u(this.low,this.high,!0)},F.toBytes=function(S){return S?this.toBytesLE():this.toBytesBE()},F.toBytesLE=function(){var S=this.high,M=this.low;return[M&255,M>>>8&255,M>>>16&255,M>>>24,S&255,S>>>8&255,S>>>16&255,S>>>24]},F.toBytesBE=function(){var S=this.high,M=this.low;return[S>>>24,S>>>16&255,S>>>8&255,S&255,M>>>24,M>>>16&255,M>>>8&255,M&255]},a.fromBytes=function(S,M,B){return B?a.fromBytesLE(S,M):a.fromBytesBE(S,M)},a.fromBytesLE=function(S,M){return new a(S[0]|S[1]<<8|S[2]<<16|S[3]<<24,S[4]|S[5]<<8|S[6]<<16|S[7]<<24,M)},a.fromBytesBE=function(S,M){return new a(S[4]<<24|S[5]<<16|S[6]<<8|S[7],S[0]<<24|S[1]<<16|S[2]<<8|S[3],M)}}),kF=Bt(()=>{}),IF=Bt(()=>{}),SF=Bt((e,t)=>{(function(n,a,r){function s(u){var p=this,d=l();p.next=function(){var c=2091639*p.s0+p.c*23283064365386963e-26;return p.s0=p.s1,p.s1=p.s2,p.s2=c-(p.c=c|0)},p.c=1,p.s0=d(" "),p.s1=d(" "),p.s2=d(" "),p.s0-=d(u),p.s0<0&&(p.s0+=1),p.s1-=d(u),p.s1<0&&(p.s1+=1),p.s2-=d(u),p.s2<0&&(p.s2+=1),d=null}function i(u,p){return p.c=u.c,p.s0=u.s0,p.s1=u.s1,p.s2=u.s2,p}function o(u,p){var d=new s(u),c=p&&p.state,h=d.next;return h.int32=function(){return d.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,c&&(typeof c=="object"&&i(c,d),h.state=function(){return i(d,{})}),h}function l(){var u=4022871197,p=function(d){d=String(d);for(var c=0;c>>0,h-=u,h*=u,u=h>>>0,h-=u,u+=h*4294967296}return(u>>>0)*23283064365386963e-26};return p}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.alea=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),TF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.x=0,u.y=0,u.z=0,u.w=0,u.next=function(){var c=u.x^u.x<<11;return u.x=u.y,u.y=u.z,u.z=u.w,u.w^=u.w>>>19^c^c>>>8},l===(l|0)?u.x=l:p+=l;for(var d=0;d>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor128=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),NF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.next=function(){var c=u.x^u.x>>>2;return u.x=u.y,u.y=u.z,u.z=u.w,u.w=u.v,(u.d=u.d+362437|0)+(u.v=u.v^u.v<<4^(c^c<<1))|0},u.x=0,u.y=0,u.z=0,u.w=0,u.v=0,l===(l|0)?u.x=l:p+=l;for(var d=0;d>>4),u.next()}function i(l,u){return u.x=l.x,u.y=l.y,u.z=l.z,u.w=l.w,u.v=l.v,u.d=l.d,u}function o(l,u){var p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorwow=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),CF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var d=u.x,c=u.i,h,m,f;return h=d[c],h^=h>>>7,m=h^h<<24,h=d[c+1&7],m^=h^h>>>10,h=d[c+3&7],m^=h^h>>>3,h=d[c+4&7],m^=h^h<<7,h=d[c+7&7],h=h^h<<13,m^=h^h<<9,d[c]=m,u.i=c+1&7,m};function p(d,c){var h,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=""+c,h=0;h0;--h)d.next()}p(u,l)}function i(l,u){return u.x=l.x.slice(),u.i=l.i,u}function o(l,u){l==null&&(l=+new Date);var p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(d.x&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorshift7=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),_F=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var d=u.w,c=u.X,h=u.i,m,f;return u.w=d=d+1640531527|0,f=c[h+34&127],m=c[h=h+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[h]=f^m,u.i=h,f+(d^d>>>16)|0};function p(d,c){var h,m,f,g,y,b=[],x=128;for(c===(c|0)?(m=c,c=null):(c=c+"\0",m=0,x=Math.max(x,c.length)),f=0,g=-32;g>>15,m^=m<<4,m^=m>>>13,g>=0&&(y=y+1640531527|0,h=b[g&127]^=m+y,f=h==0?f+1:0);for(f>=128&&(b[(c&&c.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=b[f+34&127],h=b[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,b[f]=m^h;d.w=y,d.X=b,d.i=f}p(u,l)}function i(l,u){return u.i=l.i,u.w=l.w,u.X=l.X.slice(),u}function o(l,u){l==null&&(l=+new Date);var p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(d.X&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor4096=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),EF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.next=function(){var c=u.b,h=u.c,m=u.d,f=u.a;return c=c<<25^c>>>7^h,h=h-m|0,m=m<<24^m>>>8^f,f=f-c|0,u.b=c=c<<20^c>>>12^h,u.c=h=h-m|0,u.d=m<<16^h>>>16^f,u.a=f-c|0},u.a=0,u.b=0,u.c=-1640531527,u.d=1367130551,l===Math.floor(l)?(u.a=l/4294967296|0,u.b=l|0):p+=l;for(var d=0;d>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.tychei=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),$F=Bt(()=>{}),AF=Bt((e,t)=>{(function(n,a,r){var s=256,i=6,o=52,l="random",u=r.pow(s,i),p=r.pow(2,o),d=p*2,c=s-1,h;function m(I,T,C){var E=[];T=T==!0?{entropy:!0}:T||{};var $=b(y(T.entropy?[I,w(a)]:I==null?x():I,3),E),R=new f(E),F=function(){for(var S=R.g(i),M=u,B=0;S=d;)S/=2,M/=2,B>>>=1;return(S+B)/M};return F.int32=function(){return R.g(4)|0},F.quick=function(){return R.g(4)/4294967296},F.double=F,b(w(R.S),a),(T.pass||C||function(S,M,B,U){return U&&(U.S&&g(U,R),S.state=function(){return g(R,{})}),B?(r[l]=S,M):S})(F,$,"global"in T?T.global:this==r,T.state)}function f(I){var T,C=I.length,E=this,$=0,R=E.i=E.j=0,F=E.S=[];for(C||(I=[C++]);${var n=SF(),a=TF(),r=NF(),s=CF(),i=_F(),o=EF(),l=AF();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),VI=Bt(()=>{}),Cx=Bt(()=>{}),Ch=Bt(()=>{}),FF=Bt(()=>{}),DF=Bt(()=>{}),RF=Bt(()=>{}),MF=Bt((e,t)=>{var n=(()=>{var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};function s(){return ue.buffer!=ze&&ot(ue.buffer),dt}function i(){return ue.buffer!=ze&&ot(ue.buffer),jn}function o(){return ue.buffer!=ze&&ot(ue.buffer),Mt}function l(){return ue.buffer!=ze&&ot(ue.buffer),on}function u(){return ue.buffer!=ze&&ot(ue.buffer),Fn}function p(){return ue.buffer!=ze&&ot(ue.buffer),oa}function d(){return ue.buffer!=ze&&ot(ue.buffer),Dn}var c=typeof r!="undefined"?r:{},h,m;c.ready=new Promise(function(D,j){h=D,m=j});var f;typeof process!="undefined"&&process.listeners&&(f={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var g=Object.assign({},c),y=[],b="./this.program",x=(D,j)=>{throw j},w=typeof window=="object",I=typeof importScripts=="function",T=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",C=c.ENVIRONMENT_IS_PTHREAD||!1,E="";function $(D){return c.locateFile?c.locateFile(D,E):E+D}var R,F,S,M;function B(D){D instanceof Ms||J("exiting due to exception: "+D)}if(T){I?E=Ch().dirname(E)+"/":E=__dirname+"/";var U,G;typeof BI=="function"&&(U=Cx(),G=Ch()),R=(j,re)=>(j=G.normalize(j),U.readFileSync(j,re?void 0:"utf8")),S=j=>{var re=R(j,!0);return re.buffer||(re=new Uint8Array(re)),re},F=(j,re,ce)=>{j=G.normalize(j),U.readFile(j,function(Ie,je){Ie?ce(Ie):re(je.buffer)})},process.argv.length>1&&(b=process.argv[1].replace(/\\/g,"/")),y=process.argv.slice(2),process.on("uncaughtException",function(j){if(!(j instanceof Ms))throw j}),process.on("unhandledRejection",function(j){throw j}),x=(j,re)=>{if(Ia())throw process.exitCode=j,re;B(re),process.exit(j)},c.inspect=function(){return"[Emscripten Module object]"};let D;try{D=FF()}catch(j){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),j}global.Worker=D.Worker}else(w||I)&&(I?E=self.location.href:typeof document!="undefined"&&document.currentScript&&(E=document.currentScript.src),typeof a!="undefined"&&a&&(E=a),E.indexOf("blob:")!==0?E=E.substr(0,E.replace(/[?#].*/,"").lastIndexOf("/")+1):E="",T||(R=D=>{var j=new XMLHttpRequest;return j.open("GET",D,!1),j.send(null),j.responseText},I&&(S=D=>{var j=new XMLHttpRequest;return j.open("GET",D,!1),j.responseType="arraybuffer",j.send(null),new Uint8Array(j.response)}),F=(D,j,re)=>{var ce=new XMLHttpRequest;ce.open("GET",D,!0),ce.responseType="arraybuffer",ce.onload=()=>{if(ce.status==200||ce.status==0&&ce.response){j(ce.response);return}re()},ce.onerror=re,ce.send(null)}),M=D=>document.title=D);T&&typeof performance=="undefined"&&(global.performance=DF().performance);var q=console.log.bind(console),K=console.warn.bind(console);T&&(q=D=>U.writeSync(1,D+` `),K=D=>U.writeSync(2,D+` -`));var Z=c.print||q,Q=c.printErr||K;Object.assign(c,g),g=null,c.arguments&&(y=c.arguments),c.thisProgram&&(b=c.thisProgram),c.quit&&(x=c.quit);var ee=4,ae=Atomics.load,te=Atomics.store,le=Atomics.compareExchange,ie;c.wasmBinary&&(ie=c.wasmBinary);var ye=c.noExitRuntime||!0;typeof WebAssembly!="object"&&Yo("no native wasm support detected");var ue,xe,Ie=!1,Se;function Le(D,j){D||Yo(j)}var Ve=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function nt(D,j,re){for(var ce=j+re,ke=j;D[ke]&&!(ke>=ce);)++ke;if(ke-j>16&&D.buffer&&Ve)return Ve.decode(D.buffer instanceof SharedArrayBuffer?D.slice(j,ke):D.subarray(j,ke));for(var je="";j>10,56320|ua&1023)}}return je}function it(D,j){return D?nt(i(),D,j):""}function et(D,j,re,ce){if(!(ce>0))return 0;for(var ke=re,je=re+ce-1,Ce=0;Ce=55296&&Re<=57343){var Ot=D.charCodeAt(++Ce);Re=65536+((Re&1023)<<10)|Ot&1023}if(Re<=127){if(re>=je)break;j[re++]=Re}else if(Re<=2047){if(re+1>=je)break;j[re++]=192|Re>>6,j[re++]=128|Re&63}else if(Re<=65535){if(re+2>=je)break;j[re++]=224|Re>>12,j[re++]=128|Re>>6&63,j[re++]=128|Re&63}else{if(re+3>=je)break;j[re++]=240|Re>>18,j[re++]=128|Re>>12&63,j[re++]=128|Re>>6&63,j[re++]=128|Re&63}}return j[re]=0,re-ke}function at(D,j,re){return et(D,i(),j,re)}var ze,dt,jn,Mt,ia,on,Fn,oa,Dn;C&&(ze=c.buffer);function ot(D){ze=D,c.HEAP8=dt=new Int8Array(D),c.HEAP16=Mt=new Int16Array(D),c.HEAP32=on=new Int32Array(D),c.HEAPU8=jn=new Uint8Array(D),c.HEAPU16=ia=new Uint16Array(D),c.HEAPU32=Fn=new Uint32Array(D),c.HEAPF32=oa=new Float32Array(D),c.HEAPF64=Dn=new Float64Array(D)}var Rn=c.INITIAL_MEMORY||16777216;if(C)ue=c.wasmMemory,ze=c.buffer;else if(c.wasmMemory)ue=c.wasmMemory;else if(ue=new WebAssembly.Memory({initial:Rn/65536,maximum:32768,shared:!0}),!(ue.buffer instanceof SharedArrayBuffer))throw Q("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),T&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");ue&&(ze=ue.buffer),Rn=ze.byteLength,ot(ze);var qn,xr=[],qo=[],er=[],vp=!1;function Ia(){return ye}function Ko(){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)Ng(c.preRun.shift());Sp(xr)}function Xt(){vp=!0,!C&&Sp(qo)}function Fd(){if(!C){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)G1(c.postRun.shift());Sp(er)}}function Ng(D){xr.unshift(D)}function Cg(D){qo.unshift(D)}function G1(D){er.unshift(D)}var jr=0,Xo=null,vr=null;function H1(D){jr++,c.monitorRunDependencies&&c.monitorRunDependencies(jr)}function j1(D){if(jr--,c.monitorRunDependencies&&c.monitorRunDependencies(jr),jr==0&&(Xo!==null&&(clearInterval(Xo),Xo=null),vr)){var j=vr;vr=null,j()}}function Yo(D){C?postMessage({cmd:"onAbort",arg:D}):c.onAbort&&c.onAbort(D),D="Aborted("+D+")",Q(D),Ie=!0,Se=1,D+=". Build with -sASSERTIONS for more info.";var j=new WebAssembly.RuntimeError(D);throw m(j),j}var _g="data:application/octet-stream;base64,";function Dd(D){return D.startsWith(_g)}function wp(D){return D.startsWith("file://")}var bn;bn="tfjs-backend-wasm-threaded-simd.wasm",Dd(bn)||(bn=A(bn));function Rd(D){try{if(D==bn&&ie)return new Uint8Array(ie);if(S)return S(D);throw"both async and sync fetching of the wasm failed"}catch(j){Yo(j)}}function Eg(){if(!ie&&(w||I)){if(typeof fetch=="function"&&!wp(bn))return fetch(bn,{credentials:"same-origin"}).then(function(D){if(!D.ok)throw"failed to load wasm binary file at '"+bn+"'";return D.arrayBuffer()}).catch(function(){return Rd(bn)});if(F)return new Promise(function(D,j){F(bn,function(re){D(new Uint8Array(re))},j)})}return Promise.resolve().then(function(){return Rd(bn)})}function Ag(){var D={env:jd,wasi_snapshot_preview1:jd};function j(Ce,Re){var Ot=Ce.exports;if(c.asm=Ot,Wg(c.asm._emscripten_tls_init),qn=c.asm.__indirect_function_table,Cg(c.asm.__wasm_call_ctors),xe=Re,!C){var ua=$e.unusedWorkers.length;$e.unusedWorkers.forEach(function(kr){$e.loadWasmModuleToWorker(kr,function(){--ua||j1("wasm-instantiate")})})}}C||H1("wasm-instantiate");function re(Ce){j(Ce.instance,Ce.module)}function ce(Ce){return Eg().then(function(Re){return WebAssembly.instantiate(Re,D)}).then(function(Re){return Re}).then(Ce,function(Re){Q("failed to asynchronously prepare wasm: "+Re),Yo(Re)})}function ke(){return!ie&&typeof WebAssembly.instantiateStreaming=="function"&&!Dd(bn)&&!wp(bn)&&!T&&typeof fetch=="function"?fetch(bn,{credentials:"same-origin"}).then(function(Ce){var Re=WebAssembly.instantiateStreaming(Ce,D);return Re.then(re,function(Ot){return Q("wasm streaming compile failed: "+Ot),Q("falling back to ArrayBuffer instantiation"),ce(re)})}):ce(re)}if(c.instantiateWasm)try{var je=c.instantiateWasm(D,j);return je}catch(Ce){Q("Module.instantiateWasm callback failed with error: "+Ce),m(Ce)}return ke().catch(m),{}}var $g,q1,Fg={};function Ms(D){this.name="ExitStatus",this.message="Program terminated with exit("+D+")",this.status=D}function Dg(D){var j=$e.pthreads[D];delete $e.pthreads[D],j.terminate(),lb(D),$e.runningWorkers.splice($e.runningWorkers.indexOf(j),1),j.pthread_ptr=0}function Rg(D){var j=$e.pthreads[D];j.postMessage({cmd:"cancel"})}function kp(D){var j=$e.pthreads[D];Le(j),$e.returnWorkerToPool(j)}function Md(D){var j=$e.getNewWorker();if(!j)return 6;$e.runningWorkers.push(j),$e.pthreads[D.pthread_ptr]=j,j.pthread_ptr=D.pthread_ptr;var re={cmd:"run",start_routine:D.startRoutine,arg:D.arg,pthread_ptr:D.pthread_ptr};return j.runPthread=()=>{re.time=performance.now(),j.postMessage(re,D.transferList)},j.loaded&&(j.runPthread(),delete j.runPthread),0}var Pd={varargs:void 0,get:function(){Pd.varargs+=4;var D=l()[Pd.varargs-4>>2];return D},getStr:function(D){var j=it(D);return j}};function Ip(D){if(C)return qr(1,1,D);Se=D,Ia()||($e.terminateAllThreads(),c.onExit&&c.onExit(D),Ie=!0),x(D,new Ms(D))}function K1(D,j){if(Se=D,!j&&C)throw Ld(D),"unwind";Ip(D)}var Od=K1;function Mg(D){if(D instanceof Ms||D=="unwind")return Se;x(1,D)}var $e={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?$e.initWorker():$e.initMainThread()},initMainThread:function(){for(var D=8;D--;)$e.allocateUnusedWorker()},initWorker:function(){ye=!1},setExitStatus:function(D){Se=D},terminateAllThreads:function(){for(var D of Object.values($e.pthreads))$e.returnWorkerToPool(D);for(var D of $e.unusedWorkers)D.terminate();$e.unusedWorkers=[]},returnWorkerToPool:function(D){var j=D.pthread_ptr;delete $e.pthreads[j],$e.unusedWorkers.push(D),$e.runningWorkers.splice($e.runningWorkers.indexOf(D),1),D.pthread_ptr=0,lb(j)},receiveObjectTransfer:function(D){},threadInitTLS:function(){$e.tlsInitFunctions.forEach(D=>D())},loadWasmModuleToWorker:function(D,j){D.onmessage=re=>{var ce=re.data,ke=ce.cmd;if(D.pthread_ptr&&($e.currentProxiedOperationCallerThread=D.pthread_ptr),ce.targetThread&&ce.targetThread!=Jd()){var je=$e.pthreads[ce.targetThread];je?je.postMessage(ce,ce.transferList):Q('Internal error! Worker sent a message "'+ke+'" to target pthread '+ce.targetThread+", but that thread no longer exists!"),$e.currentProxiedOperationCallerThread=void 0;return}ke==="processProxyingQueue"?Tp(ce.queue):ke==="spawnThread"?Md(ce):ke==="cleanupThread"?kp(ce.thread):ke==="killThread"?Dg(ce.thread):ke==="cancelThread"?Rg(ce.thread):ke==="loaded"?(D.loaded=!0,j&&j(D),D.runPthread&&(D.runPthread(),delete D.runPthread)):ke==="print"?Z("Thread "+ce.threadId+": "+ce.text):ke==="printErr"?Q("Thread "+ce.threadId+": "+ce.text):ke==="alert"?alert("Thread "+ce.threadId+": "+ce.text):ce.target==="setimmediate"?D.postMessage(ce):ke==="onAbort"?c.onAbort&&c.onAbort(ce.arg):ke&&Q("worker sent an unknown command "+ke),$e.currentProxiedOperationCallerThread=void 0},D.onerror=re=>{var ce="worker sent an error!";throw Q(ce+" "+re.filename+":"+re.lineno+": "+re.message),re},T&&(D.on("message",function(re){D.onmessage({data:re})}),D.on("error",function(re){D.onerror(re)}),D.on("detachedExit",function(){})),D.postMessage({cmd:"load",urlOrBlob:c.mainScriptUrlOrBlob||a,wasmMemory:ue,wasmModule:xe})},allocateUnusedWorker:function(){var D=A("tfjs-backend-wasm-threaded-simd.worker.js");$e.unusedWorkers.push(new Worker(D))},getNewWorker:function(){return $e.unusedWorkers.length==0&&($e.allocateUnusedWorker(),$e.loadWasmModuleToWorker($e.unusedWorkers[0])),$e.unusedWorkers.pop()}};c.PThread=$e;function Sp(D){for(;D.length>0;)D.shift()(c)}function Pg(D){var j=ub(),re=D();return Qd(j),re}function X1(D){return D}function Y1(D){var j=/\b_Z[\w\d_]+/g;return D.replace(j,function(re){var ce=re;return re===ce?re:ce+" ["+re+"]"})}function Og(){var D=Jd(),j=l()[D+44>>2],re=l()[D+48>>2],ce=j-re;ak(j,ce),Qd(j)}c.establishStackSpace=Og;function Ld(D){if(C)return qr(2,0,D);try{Od(D)}catch(j){Mg(j)}}var Zo=[];function Lg(D){var j=Zo[D];return j||(D>=Zo.length&&(Zo.length=D+1),Zo[D]=j=qn.get(D)),j}function zg(D,j){var re=Lg(D)(j);Ia()?$e.setExitStatus(re):nk(re)}c.invokeEntryPoint=zg;function Z1(){var D=new Error;if(!D.stack){try{throw new Error}catch(j){D=j}if(!D.stack)return"(no stack trace available)"}return D.stack.toString()}function Wg(D){$e.tlsInitFunctions.push(D)}function Bg(D,j){s().set(D,j)}function Vg(D){Q1(D,!I,1,!w),$e.threadInitTLS()}function Ug(D){C?postMessage({cmd:"cleanupThread",thread:D}):kp(D)}function zd(D,j,re,ce){return C?qr(3,1,D,j,re,ce):Wd(D,j,re,ce)}function Wd(D,j,re,ce){if(typeof SharedArrayBuffer=="undefined")return Q("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var ke=[],je=0;if(C&&(ke.length===0||je))return zd(D,j,re,ce);if(je)return je;var Ce={startRoutine:re,pthread_ptr:D,arg:ce,transferList:ke};return C?(Ce.cmd="spawnThread",postMessage(Ce,ke),0):Md(Ce)}function Gg(){return 2097152}var Hg=!0;function jg(){return Hg}function Tp(D){Atomics.store(l(),D>>2,1),Jd()&&tk(D),Atomics.compareExchange(l(),D>>2,1,0)}c.executeNotifiedProxyingQueue=Tp;function qg(D,j,re,ce){if(D==j)setTimeout(()=>Tp(ce));else if(C)postMessage({targetThread:D,cmd:"processProxyingQueue",queue:ce});else{var ke=$e.pthreads[D];if(!ke)return;ke.postMessage({cmd:"processProxyingQueue",queue:ce})}return 1}function Kg(D,j,re){return-1}function Xg(){Yo("")}function Ps(D){Ps.shown||(Ps.shown={}),Ps.shown[D]||(Ps.shown[D]=1,T&&(D="warning: "+D),Q(D))}function Yg(){T||I||Ps("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function Zg(){return Date.now()}function Bd(){return 2147483648}function Jg(){return Bd()}var Jo;T?Jo=()=>{var D=process.hrtime();return D[0]*1e3+D[1]/1e6}:C?Jo=()=>performance.now()-c.__performance_now_clock_drift:Jo=()=>performance.now();function Qg(D,j,re){i().copyWithin(D,j,j+re)}function ey(){return T?RF().cpus().length:navigator.hardwareConcurrency}function qr(D,j){var re=arguments.length-2,ce=arguments;return Pg(()=>{for(var ke=re,je=eh(ke*8),Ce=je>>3,Re=0;Re>3,ke=0;ke>>16),ot(ue.buffer),1}catch(j){}}function ay(D){var j=i().length;if(D=D>>>0,D<=j)return!1;var re=Bd();if(D>re)return!1;let ce=(Ot,ua)=>Ot+(ua-Ot%ua)%ua;for(var ke=1;ke<=4;ke*=2){var je=j*(1+.2/ke);je=Math.min(je,D+100663296);var Ce=Math.min(re,ce(Math.max(D,je),65536)),Re=ny(Ce);if(Re)return!0}return!1}function ry(){throw"unwind"}function Vd(D){return C?qr(4,1,D):52}function Ud(D,j,re,ce,ke){return C?qr(5,1,D,j,re,ce,ke):70}var sy=[null,[],[]];function iy(D,j){var re=sy[D];j===0||j===10?((D===1?Z:Q)(nt(re,0)),re.length=0):re.push(j)}function Gd(D,j,re,ce){if(C)return qr(6,1,D,j,re,ce);for(var ke=0,je=0;je>2],Re=u()[j+4>>2];j+=8;for(var Ot=0;Ot>2]=ke,0}function Hd(D){var j=c["_"+D];return j}function oy(D,j,re,ce,ke){var je={string:pa=>{var nl=0;if(pa!=null&&pa!==0){var ik=(pa.length<<2)+1;nl=eh(ik),at(pa,nl,ik)}return nl},array:pa=>{var nl=eh(pa.length);return Bg(pa,nl),nl}};function Ce(pa){return j==="string"?it(pa):j==="boolean"?Boolean(pa):pa}var Re=Hd(D),Ot=[],ua=0;if(ce)for(var kr=0;krCe==="number"||Ce==="boolean"),je=j!=="string";return je&&ke&&!ce?Hd(D):function(){return oy(D,j,re,arguments,ce)}}$e.init();var uy=[null,Ip,Ld,zd,Vd,Ud,Gd],jd={__emscripten_init_main_thread_js:Vg,__emscripten_thread_cleanup:Ug,__pthread_create_js:Wd,_emscripten_default_pthread_stack_size:Gg,_emscripten_get_now_is_monotonic:jg,_emscripten_notify_task_queue:qg,_emscripten_set_offscreencanvas_size:Kg,abort:Xg,emscripten_check_blocking_allowed:Yg,emscripten_date_now:Zg,emscripten_get_heap_max:Jg,emscripten_get_now:Jo,emscripten_memcpy_big:Qg,emscripten_num_logical_cores:ey,emscripten_receive_on_main_thread_js:ty,emscripten_resize_heap:ay,emscripten_unwind_to_js_event_loop:ry,exit:Od,fd_close:Vd,fd_seek:Ud,fd_write:Gd,memory:ue||c.wasmMemory},J1=Ag(),py=c.___wasm_call_ctors=function(){return(py=c.___wasm_call_ctors=c.asm.__wasm_call_ctors).apply(null,arguments)},cy=c._init=function(){return(cy=c._init=c.asm.init).apply(null,arguments)},dy=c._init_with_threads_count=function(){return(dy=c._init_with_threads_count=c.asm.init_with_threads_count).apply(null,arguments)},hy=c._get_threads_count=function(){return(hy=c._get_threads_count=c.asm.get_threads_count).apply(null,arguments)},my=c._register_tensor=function(){return(my=c._register_tensor=c.asm.register_tensor).apply(null,arguments)},fy=c._dispose_data=function(){return(fy=c._dispose_data=c.asm.dispose_data).apply(null,arguments)},gy=c._dispose=function(){return(gy=c._dispose=c.asm.dispose).apply(null,arguments)},yy=c._Abs=function(){return(yy=c._Abs=c.asm.Abs).apply(null,arguments)},by=c._Add=function(){return(by=c._Add=c.asm.Add).apply(null,arguments)},xy=c._AddN=function(){return(xy=c._AddN=c.asm.AddN).apply(null,arguments)},vy=c._All=function(){return(vy=c._All=c.asm.All).apply(null,arguments)},wy=c._Any=function(){return(wy=c._Any=c.asm.Any).apply(null,arguments)},ky=c._ArgMax=function(){return(ky=c._ArgMax=c.asm.ArgMax).apply(null,arguments)},Iy=c._AvgPool=function(){return(Iy=c._AvgPool=c.asm.AvgPool).apply(null,arguments)},Sy=c._BatchMatMul=function(){return(Sy=c._BatchMatMul=c.asm.BatchMatMul).apply(null,arguments)},Ty=c._Ceil=function(){return(Ty=c._Ceil=c.asm.Ceil).apply(null,arguments)},Ny=c._ClipByValue=function(){return(Ny=c._ClipByValue=c.asm.ClipByValue).apply(null,arguments)},Cy=c._Conv2D=function(){return(Cy=c._Conv2D=c.asm.Conv2D).apply(null,arguments)},_y=c._Conv2DBackpropInput=function(){return(_y=c._Conv2DBackpropInput=c.asm.Conv2DBackpropInput).apply(null,arguments)},Ey=c._Cos=function(){return(Ey=c._Cos=c.asm.Cos).apply(null,arguments)},Ay=c._Cosh=function(){return(Ay=c._Cosh=c.asm.Cosh).apply(null,arguments)},$y=c._CropAndResize=function(){return($y=c._CropAndResize=c.asm.CropAndResize).apply(null,arguments)},Fy=c._Cumprod=function(){return(Fy=c._Cumprod=c.asm.Cumprod).apply(null,arguments)},Dy=c._Cumsum=function(){return(Dy=c._Cumsum=c.asm.Cumsum).apply(null,arguments)},Ry=c._DepthToSpace=function(){return(Ry=c._DepthToSpace=c.asm.DepthToSpace).apply(null,arguments)},My=c._DepthwiseConv2dNative=function(){return(My=c._DepthwiseConv2dNative=c.asm.DepthwiseConv2dNative).apply(null,arguments)},Py=c._Elu=function(){return(Py=c._Elu=c.asm.Elu).apply(null,arguments)},Oy=c._Equal=function(){return(Oy=c._Equal=c.asm.Equal).apply(null,arguments)},Ly=c._Exp=function(){return(Ly=c._Exp=c.asm.Exp).apply(null,arguments)},zy=c._FlipLeftRight=function(){return(zy=c._FlipLeftRight=c.asm.FlipLeftRight).apply(null,arguments)},Wy=c._Floor=function(){return(Wy=c._Floor=c.asm.Floor).apply(null,arguments)},By=c._FloorDiv=function(){return(By=c._FloorDiv=c.asm.FloorDiv).apply(null,arguments)},Vy=c._FusedBatchNorm=function(){return(Vy=c._FusedBatchNorm=c.asm.FusedBatchNorm).apply(null,arguments)},Uy=c._FusedConv2D=function(){return(Uy=c._FusedConv2D=c.asm.FusedConv2D).apply(null,arguments)},Gy=c._FusedDepthwiseConv2D=function(){return(Gy=c._FusedDepthwiseConv2D=c.asm.FusedDepthwiseConv2D).apply(null,arguments)},Hy=c._Gather=function(){return(Hy=c._Gather=c.asm.Gather).apply(null,arguments)},jy=c._GatherNd=function(){return(jy=c._GatherNd=c.asm.GatherNd).apply(null,arguments)},qy=c._Greater=function(){return(qy=c._Greater=c.asm.Greater).apply(null,arguments)},Ky=c._GreaterEqual=function(){return(Ky=c._GreaterEqual=c.asm.GreaterEqual).apply(null,arguments)},Xy=c._LeakyRelu=function(){return(Xy=c._LeakyRelu=c.asm.LeakyRelu).apply(null,arguments)},Yy=c._Less=function(){return(Yy=c._Less=c.asm.Less).apply(null,arguments)},Zy=c._LessEqual=function(){return(Zy=c._LessEqual=c.asm.LessEqual).apply(null,arguments)},Jy=c._Log=function(){return(Jy=c._Log=c.asm.Log).apply(null,arguments)},Qy=c._LogicalAnd=function(){return(Qy=c._LogicalAnd=c.asm.LogicalAnd).apply(null,arguments)},eb=c._LogicalNot=function(){return(eb=c._LogicalNot=c.asm.LogicalNot).apply(null,arguments)},tb=c._LogicalOr=function(){return(tb=c._LogicalOr=c.asm.LogicalOr).apply(null,arguments)},nb=c._LogicalXor=function(){return(nb=c._LogicalXor=c.asm.LogicalXor).apply(null,arguments)},ab=c._Max=function(){return(ab=c._Max=c.asm.Max).apply(null,arguments)},qd=c._MaxPool=function(){return(qd=c._MaxPool=c.asm.MaxPool).apply(null,arguments)},Kd=c._Maximum=function(){return(Kd=c._Maximum=c.asm.Maximum).apply(null,arguments)},Cp=c._Mean=function(){return(Cp=c._Mean=c.asm.Mean).apply(null,arguments)},rb=c._Min=function(){return(rb=c._Min=c.asm.Min).apply(null,arguments)},sb=c._Minimum=function(){return(sb=c._Minimum=c.asm.Minimum).apply(null,arguments)},Qo=c._MirrorPad=function(){return(Qo=c._MirrorPad=c.asm.MirrorPad).apply(null,arguments)},Xd=c._Multiply=function(){return(Xd=c._Multiply=c.asm.Multiply).apply(null,arguments)},el=c._Neg=function(){return(el=c._Neg=c.asm.Neg).apply(null,arguments)},tl=c._NonMaxSuppressionV3=function(){return(tl=c._NonMaxSuppressionV3=c.asm.NonMaxSuppressionV3).apply(null,arguments)},ib=c._NonMaxSuppressionV4=function(){return(ib=c._NonMaxSuppressionV4=c.asm.NonMaxSuppressionV4).apply(null,arguments)},X=c._NonMaxSuppressionV5=function(){return(X=c._NonMaxSuppressionV5=c.asm.NonMaxSuppressionV5).apply(null,arguments)},se=c._NotEqual=function(){return(se=c._NotEqual=c.asm.NotEqual).apply(null,arguments)},we=c._OneHot=function(){return(we=c._OneHot=c.asm.OneHot).apply(null,arguments)},He=c._PadV2=function(){return(He=c._PadV2=c.asm.PadV2).apply(null,arguments)},wt=c._Pow=function(){return(wt=c._Pow=c.asm.Pow).apply(null,arguments)},kt=c._Prelu=function(){return(kt=c._Prelu=c.asm.Prelu).apply(null,arguments)},Ue=c._Prod=function(){return(Ue=c._Prod=c.asm.Prod).apply(null,arguments)},We=c._RealDiv=function(){return(We=c._RealDiv=c.asm.RealDiv).apply(null,arguments)},Pt=c._Relu=function(){return(Pt=c._Relu=c.asm.Relu).apply(null,arguments)},la=c._Relu6=function(){return(la=c._Relu6=c.asm.Relu6).apply(null,arguments)},wr=c._ResizeBilinear=function(){return(wr=c._ResizeBilinear=c.asm.ResizeBilinear).apply(null,arguments)},Yd=c._ResizeNearestNeighbor=function(){return(Yd=c._ResizeNearestNeighbor=c.asm.ResizeNearestNeighbor).apply(null,arguments)},_p=c._Reverse=function(){return(_p=c._Reverse=c.asm.Reverse).apply(null,arguments)},ob=c._RotateWithOffset=function(){return(ob=c._RotateWithOffset=c.asm.RotateWithOffset).apply(null,arguments)},Mn=c._Round=function(){return(Mn=c._Round=c.asm.Round).apply(null,arguments)},Kr=c._Rsqrt=function(){return(Kr=c._Rsqrt=c.asm.Rsqrt).apply(null,arguments)},Zd=c._ScatterNd=function(){return(Zd=c._ScatterNd=c.asm.ScatterNd).apply(null,arguments)},$$=c._SelectV2=function(){return($$=c._SelectV2=c.asm.SelectV2).apply(null,arguments)},F$=c._Sigmoid=function(){return(F$=c._Sigmoid=c.asm.Sigmoid).apply(null,arguments)},D$=c._Sin=function(){return(D$=c._Sin=c.asm.Sin).apply(null,arguments)},R$=c._Softmax=function(){return(R$=c._Softmax=c.asm.Softmax).apply(null,arguments)},M$=c._SparseFillEmptyRows=function(){return(M$=c._SparseFillEmptyRows=c.asm.SparseFillEmptyRows).apply(null,arguments)},P$=c._SparseReshape=function(){return(P$=c._SparseReshape=c.asm.SparseReshape).apply(null,arguments)},O$=c._SparseSegmentReduction=function(){return(O$=c._SparseSegmentReduction=c.asm.SparseSegmentReduction).apply(null,arguments)},L$=c._Sqrt=function(){return(L$=c._Sqrt=c.asm.Sqrt).apply(null,arguments)},z$=c._Square=function(){return(z$=c._Square=c.asm.Square).apply(null,arguments)},W$=c._SquaredDifference=function(){return(W$=c._SquaredDifference=c.asm.SquaredDifference).apply(null,arguments)},B$=c._Step=function(){return(B$=c._Step=c.asm.Step).apply(null,arguments)},V$=c._StridedSlice=function(){return(V$=c._StridedSlice=c.asm.StridedSlice).apply(null,arguments)},U$=c._Sub=function(){return(U$=c._Sub=c.asm.Sub).apply(null,arguments)},G$=c._Sum=function(){return(G$=c._Sum=c.asm.Sum).apply(null,arguments)},H$=c._Tan=function(){return(H$=c._Tan=c.asm.Tan).apply(null,arguments)},j$=c._Tanh=function(){return(j$=c._Tanh=c.asm.Tanh).apply(null,arguments)},q$=c._Tile=function(){return(q$=c._Tile=c.asm.Tile).apply(null,arguments)},K$=c._TopK=function(){return(K$=c._TopK=c.asm.TopK).apply(null,arguments)},X$=c._Transform=function(){return(X$=c._Transform=c.asm.Transform).apply(null,arguments)},Y$=c._Transpose=function(){return(Y$=c._Transpose=c.asm.Transpose).apply(null,arguments)},Z$=c.__FusedMatMul=function(){return(Z$=c.__FusedMatMul=c.asm._FusedMatMul).apply(null,arguments)},J$=c._malloc=function(){return(J$=c._malloc=c.asm.malloc).apply(null,arguments)},Q$=c._free=function(){return(Q$=c._free=c.asm.free).apply(null,arguments)},eF=c.__emscripten_tls_init=function(){return(eF=c.__emscripten_tls_init=c.asm._emscripten_tls_init).apply(null,arguments)},Jd=c._pthread_self=function(){return(Jd=c._pthread_self=c.asm.pthread_self).apply(null,arguments)},tF=c.___errno_location=function(){return(tF=c.___errno_location=c.asm.__errno_location).apply(null,arguments)},Q1=c.__emscripten_thread_init=function(){return(Q1=c.__emscripten_thread_init=c.asm._emscripten_thread_init).apply(null,arguments)},nF=c.__emscripten_thread_crashed=function(){return(nF=c.__emscripten_thread_crashed=c.asm._emscripten_thread_crashed).apply(null,arguments)},aF=c._emscripten_main_thread_process_queued_calls=function(){return(aF=c._emscripten_main_thread_process_queued_calls=c.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},rF=c._emscripten_main_browser_thread_id=function(){return(rF=c._emscripten_main_browser_thread_id=c.asm.emscripten_main_browser_thread_id).apply(null,arguments)},ek=c._emscripten_run_in_main_runtime_thread_js=function(){return(ek=c._emscripten_run_in_main_runtime_thread_js=c.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},sF=c._emscripten_dispatch_to_thread_=function(){return(sF=c._emscripten_dispatch_to_thread_=c.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},tk=c.__emscripten_proxy_execute_task_queue=function(){return(tk=c.__emscripten_proxy_execute_task_queue=c.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},lb=c.__emscripten_thread_free_data=function(){return(lb=c.__emscripten_thread_free_data=c.asm._emscripten_thread_free_data).apply(null,arguments)},nk=c.__emscripten_thread_exit=function(){return(nk=c.__emscripten_thread_exit=c.asm._emscripten_thread_exit).apply(null,arguments)},ak=c._emscripten_stack_set_limits=function(){return(ak=c._emscripten_stack_set_limits=c.asm.emscripten_stack_set_limits).apply(null,arguments)},ub=c.stackSave=function(){return(ub=c.stackSave=c.asm.stackSave).apply(null,arguments)},Qd=c.stackRestore=function(){return(Qd=c.stackRestore=c.asm.stackRestore).apply(null,arguments)},eh=c.stackAlloc=function(){return(eh=c.stackAlloc=c.asm.stackAlloc).apply(null,arguments)},iF=c.dynCall_iijjiiii=function(){return(iF=c.dynCall_iijjiiii=c.asm.dynCall_iijjiiii).apply(null,arguments)},oF=c.dynCall_jiji=function(){return(oF=c.dynCall_jiji=c.asm.dynCall_jiji).apply(null,arguments)};c.keepRuntimeAlive=Ia,c.wasmMemory=ue,c.cwrap=ly,c.ExitStatus=Ms,c.PThread=$e;var th;vr=function D(){th||rk(),th||(vr=D)};function rk(D){if(D=D||y,jr>0)return;if(C){h(c),Xt(),postMessage({cmd:"loaded"});return}if(Ko(),jr>0)return;function j(){th||(th=!0,c.calledRun=!0,!Ie&&(Xt(),h(c),c.onRuntimeInitialized&&c.onRuntimeInitialized(),Fd()))}c.setStatus?(c.setStatus("Running..."),setTimeout(function(){setTimeout(function(){c.setStatus("")},1),j()},1)):j()}if(c.preInit)for(typeof c.preInit=="function"&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.pop()();rk();var nh;f&&(nh={uncaughtException:process.listeners("uncaughtException").filter(function(D){return!f.uncaughtException.indexOf(D)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(D){return!f.unhandledRejection.indexOf(D)>-1})});var ah;if(typeof WasmBackendModule!="undefined")ah=WasmBackendModule;else if(typeof r!="undefined")ah=r;else throw new Error("Could not find wasm module in post.js");if(nh){var lF=ah._dispose;ah._dispose=function(){lF(),nh.uncaughtException.forEach(function(D){process.removeListener("uncaughtException",D)}),nh.unhandledRejection.forEach(function(D){process.removeListener("unhandledRejection",D)})}}return r.ready}})();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModuleThreadedSimd=n)}),PF=Bt((e,t)=>{t.exports.wasmWorkerContents=`"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",data=>onmessage({data:data}));var fs=require("fs");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,"utf8"))},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+" -");return}console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob=="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance})}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.pthread_ptr,0,0,1);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module["executeNotifiedProxyingQueue"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["__emscripten_thread_exit"](ex.status)}}else{throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processProxyingQueue"){if(initializedJS){Module["executeNotifiedProxyingQueue"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}};`}),OF=Bt((e,t)=>{var n=(()=>{var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};var s=typeof r!="undefined"?r:{},i,o;s.ready=new Promise(function(X,se){i=X,o=se});var l;typeof process!="undefined"&&process.listeners&&(l={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var u=Object.assign({},s),p=[],d="./this.program",c=(X,se)=>{throw se},h=typeof window=="object",m=typeof importScripts=="function",f=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g="";function y(X){return s.locateFile?s.locateFile(X,g):g+X}var b,x,w,I;function T(X){X instanceof Xo||R("exiting due to exception: "+X)}if(f){m?g=Ch().dirname(g)+"/":g=__dirname+"/";var C,E;typeof BI=="function"&&(C=Cx(),E=Ch()),b=(X,se)=>(X=E.normalize(X),C.readFileSync(X,se?void 0:"utf8")),w=X=>{var se=b(X,!0);return se.buffer||(se=new Uint8Array(se)),se},x=(X,se,we)=>{X=E.normalize(X),C.readFile(X,function(He,wt){He?we(He):se(wt.buffer)})},process.argv.length>1&&(d=process.argv[1].replace(/\\/g,"/")),p=process.argv.slice(2),process.on("uncaughtException",function(X){if(!(X instanceof Xo))throw X}),process.on("unhandledRejection",function(X){throw X}),c=(X,se)=>{if(jn())throw process.exitCode=X,se;T(se),process.exit(X)},s.inspect=function(){return"[Emscripten Module object]"}}else(h||m)&&(m?g=self.location.href:typeof document!="undefined"&&document.currentScript&&(g=document.currentScript.src),a&&(g=a),g.indexOf("blob:")!==0?g=g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1):g="",b=X=>{var se=new XMLHttpRequest;return se.open("GET",X,!1),se.send(null),se.responseText},m&&(w=X=>{var se=new XMLHttpRequest;return se.open("GET",X,!1),se.responseType="arraybuffer",se.send(null),new Uint8Array(se.response)}),x=(X,se,we)=>{var He=new XMLHttpRequest;He.open("GET",X,!0),He.responseType="arraybuffer",He.onload=()=>{if(He.status==200||He.status==0&&He.response){se(He.response);return}we()},He.onerror=we,He.send(null)},I=X=>document.title=X);var A=s.print||console.log.bind(console),R=s.printErr||console.warn.bind(console);Object.assign(s,u),u=null,s.arguments&&(p=s.arguments),s.thisProgram&&(d=s.thisProgram),s.quit&&(c=s.quit);var F=4,S;s.wasmBinary&&(S=s.wasmBinary);var M=s.noExitRuntime||!0;typeof WebAssembly!="object"&&er("no native wasm support detected");var B,U=!1,G;function q(X,se){X||er(se)}var K=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Z(X,se,we){for(var He=se+we,wt=se;X[wt]&&!(wt>=He);)++wt;if(wt-se>16&&X.buffer&&K)return K.decode(X.subarray(se,wt));for(var kt="";se>10,56320|la&1023)}}return kt}function Q(X,se){return X?Z(ie,X,se):""}function ee(X,se,we,He){if(!(He>0))return 0;for(var wt=we,kt=we+He-1,Ue=0;Ue=55296&&We<=57343){var Pt=X.charCodeAt(++Ue);We=65536+((We&1023)<<10)|Pt&1023}if(We<=127){if(we>=kt)break;se[we++]=We}else if(We<=2047){if(we+1>=kt)break;se[we++]=192|We>>6,se[we++]=128|We&63}else if(We<=65535){if(we+2>=kt)break;se[we++]=224|We>>12,se[we++]=128|We>>6&63,se[we++]=128|We&63}else{if(we+3>=kt)break;se[we++]=240|We>>18,se[we++]=128|We>>12&63,se[we++]=128|We>>6&63,se[we++]=128|We&63}}return se[we]=0,we-wt}function ae(X,se,we){return ee(X,ie,se,we)}var te,le,ie,ye,ue,xe,Ie,Se,Le;function Ve(X){te=X,s.HEAP8=le=new Int8Array(X),s.HEAP16=ye=new Int16Array(X),s.HEAP32=xe=new Int32Array(X),s.HEAPU8=ie=new Uint8Array(X),s.HEAPU16=ue=new Uint16Array(X),s.HEAPU32=Ie=new Uint32Array(X),s.HEAPF32=Se=new Float32Array(X),s.HEAPF64=Le=new Float64Array(X)}var nt=s.INITIAL_MEMORY||16777216,it,et=[],at=[],ze=[],dt=!1;function jn(){return M}function Mt(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)Fn(s.preRun.shift());vr(et)}function ia(){dt=!0,vr(at)}function on(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)Dn(s.postRun.shift());vr(ze)}function Fn(X){et.unshift(X)}function oa(X){at.unshift(X)}function Dn(X){ze.unshift(X)}var ot=0,Rn=null,qn=null;function xr(X){ot++,s.monitorRunDependencies&&s.monitorRunDependencies(ot)}function qo(X){if(ot--,s.monitorRunDependencies&&s.monitorRunDependencies(ot),ot==0&&(Rn!==null&&(clearInterval(Rn),Rn=null),qn)){var se=qn;qn=null,se()}}function er(X){s.onAbort&&s.onAbort(X),X="Aborted("+X+")",R(X),U=!0,G=1,X+=". Build with -sASSERTIONS for more info.";var se=new WebAssembly.RuntimeError(X);throw o(se),se}var vp="data:application/octet-stream;base64,";function Ia(X){return X.startsWith(vp)}function Ko(X){return X.startsWith("file://")}var Xt;Xt="tfjs-backend-wasm.wasm",Ia(Xt)||(Xt=y(Xt));function Fd(X){try{if(X==Xt&&S)return new Uint8Array(S);if(w)return w(X);throw"both async and sync fetching of the wasm failed"}catch(se){er(se)}}function Ng(){if(!S&&(h||m)){if(typeof fetch=="function"&&!Ko(Xt))return fetch(Xt,{credentials:"same-origin"}).then(function(X){if(!X.ok)throw"failed to load wasm binary file at '"+Xt+"'";return X.arrayBuffer()}).catch(function(){return Fd(Xt)});if(x)return new Promise(function(X,se){x(Xt,function(we){X(new Uint8Array(we))},se)})}return Promise.resolve().then(function(){return Fd(Xt)})}function Cg(){var X={env:Ip,wasi_snapshot_preview1:Ip};function se(Ue,We){var Pt=Ue.exports;s.asm=Pt,B=s.asm.memory,Ve(B.buffer),it=s.asm.__indirect_function_table,oa(s.asm.__wasm_call_ctors),qo("wasm-instantiate")}xr("wasm-instantiate");function we(Ue){se(Ue.instance)}function He(Ue){return Ng().then(function(We){return WebAssembly.instantiate(We,X)}).then(function(We){return We}).then(Ue,function(We){R("failed to asynchronously prepare wasm: "+We),er(We)})}function wt(){return!S&&typeof WebAssembly.instantiateStreaming=="function"&&!Ia(Xt)&&!Ko(Xt)&&!f&&typeof fetch=="function"?fetch(Xt,{credentials:"same-origin"}).then(function(Ue){var We=WebAssembly.instantiateStreaming(Ue,X);return We.then(we,function(Pt){return R("wasm streaming compile failed: "+Pt),R("falling back to ArrayBuffer instantiation"),He(we)})}):He(we)}if(s.instantiateWasm)try{var kt=s.instantiateWasm(X,se);return kt}catch(Ue){R("Module.instantiateWasm callback failed with error: "+Ue),o(Ue)}return wt().catch(o),{}}var G1,jr;function Xo(X){this.name="ExitStatus",this.message="Program terminated with exit("+X+")",this.status=X}function vr(X){for(;X.length>0;)X.shift()(s)}function H1(X){return X}function j1(X){var se=/\b_Z[\w\d_]+/g;return X.replace(se,function(we){var He=we;return we===He?we:He+" ["+we+"]"})}function Yo(){var X=new Error;if(!X.stack){try{throw new Error}catch(se){X=se}if(!X.stack)return"(no stack trace available)"}return X.stack.toString()}function _g(X,se){le.set(X,se)}function Dd(){er("")}function wp(){return 2147483648}function bn(){return wp()}function Rd(X,se,we){ie.copyWithin(X,se,se+we)}function Eg(X){try{return B.grow(X-te.byteLength+65535>>>16),Ve(B.buffer),1}catch(se){}}function Ag(X){var se=ie.length;X=X>>>0;var we=wp();if(X>we)return!1;let He=(Pt,la)=>Pt+(la-Pt%la)%la;for(var wt=1;wt<=4;wt*=2){var kt=se*(1+.2/wt);kt=Math.min(kt,X+100663296);var Ue=Math.min(we,He(Math.max(X,kt),65536)),We=Eg(Ue);if(We)return!0}return!1}var $g={varargs:void 0,get:function(){$g.varargs+=4;var X=xe[$g.varargs-4>>2];return X},getStr:function(X){var se=Q(X);return se}};function q1(X){return 52}function Fg(X,se,we,He,wt){return 70}var Ms=[null,[],[]];function Dg(X,se){var we=Ms[X];se===0||se===10?((X===1?A:R)(Z(we,0)),we.length=0):we.push(se)}function Rg(X,se,we,He){for(var wt=0,kt=0;kt>2],We=Ie[se+4>>2];se+=8;for(var Pt=0;Pt>2]=wt,0}function kp(X){var se=s["_"+X];return se}function Md(X,se,we,He,wt){var kt={string:Mn=>{var Kr=0;if(Mn!=null&&Mn!==0){var Zd=(Mn.length<<2)+1;Kr=Cp(Zd),ae(Mn,Kr,Zd)}return Kr},array:Mn=>{var Kr=Cp(Mn.length);return _g(Mn,Kr),Kr}};function Ue(Mn){return se==="string"?Q(Mn):se==="boolean"?Boolean(Mn):Mn}var We=kp(X),Pt=[],la=0;if(He)for(var wr=0;wrUe==="number"||Ue==="boolean"),kt=se!=="string";return kt&&wt&&!He?kp(X):function(){return Md(X,se,we,arguments,He)}}var Ip={abort:Dd,emscripten_get_heap_max:bn,emscripten_memcpy_big:Rd,emscripten_resize_heap:Ag,fd_close:q1,fd_seek:Fg,fd_write:Rg},K1=Cg(),Od=s.___wasm_call_ctors=function(){return(Od=s.___wasm_call_ctors=s.asm.__wasm_call_ctors).apply(null,arguments)},Mg=s._init=function(){return(Mg=s._init=s.asm.init).apply(null,arguments)},$e=s._init_with_threads_count=function(){return($e=s._init_with_threads_count=s.asm.init_with_threads_count).apply(null,arguments)},Sp=s._get_threads_count=function(){return(Sp=s._get_threads_count=s.asm.get_threads_count).apply(null,arguments)},Pg=s._register_tensor=function(){return(Pg=s._register_tensor=s.asm.register_tensor).apply(null,arguments)},X1=s._dispose_data=function(){return(X1=s._dispose_data=s.asm.dispose_data).apply(null,arguments)},Y1=s._dispose=function(){return(Y1=s._dispose=s.asm.dispose).apply(null,arguments)},Og=s._Abs=function(){return(Og=s._Abs=s.asm.Abs).apply(null,arguments)},Ld=s._Add=function(){return(Ld=s._Add=s.asm.Add).apply(null,arguments)},Zo=s._AddN=function(){return(Zo=s._AddN=s.asm.AddN).apply(null,arguments)},Lg=s._All=function(){return(Lg=s._All=s.asm.All).apply(null,arguments)},zg=s._Any=function(){return(zg=s._Any=s.asm.Any).apply(null,arguments)},Z1=s._ArgMax=function(){return(Z1=s._ArgMax=s.asm.ArgMax).apply(null,arguments)},Wg=s._AvgPool=function(){return(Wg=s._AvgPool=s.asm.AvgPool).apply(null,arguments)},Bg=s._BatchMatMul=function(){return(Bg=s._BatchMatMul=s.asm.BatchMatMul).apply(null,arguments)},Vg=s._Ceil=function(){return(Vg=s._Ceil=s.asm.Ceil).apply(null,arguments)},Ug=s._ClipByValue=function(){return(Ug=s._ClipByValue=s.asm.ClipByValue).apply(null,arguments)},zd=s._Conv2D=function(){return(zd=s._Conv2D=s.asm.Conv2D).apply(null,arguments)},Wd=s._Conv2DBackpropInput=function(){return(Wd=s._Conv2DBackpropInput=s.asm.Conv2DBackpropInput).apply(null,arguments)},Gg=s._Cos=function(){return(Gg=s._Cos=s.asm.Cos).apply(null,arguments)},Hg=s._Cosh=function(){return(Hg=s._Cosh=s.asm.Cosh).apply(null,arguments)},jg=s._CropAndResize=function(){return(jg=s._CropAndResize=s.asm.CropAndResize).apply(null,arguments)},Tp=s._Cumprod=function(){return(Tp=s._Cumprod=s.asm.Cumprod).apply(null,arguments)},qg=s._Cumsum=function(){return(qg=s._Cumsum=s.asm.Cumsum).apply(null,arguments)},Kg=s._DepthToSpace=function(){return(Kg=s._DepthToSpace=s.asm.DepthToSpace).apply(null,arguments)},Xg=s._DepthwiseConv2dNative=function(){return(Xg=s._DepthwiseConv2dNative=s.asm.DepthwiseConv2dNative).apply(null,arguments)},Ps=s._Elu=function(){return(Ps=s._Elu=s.asm.Elu).apply(null,arguments)},Yg=s._Equal=function(){return(Yg=s._Equal=s.asm.Equal).apply(null,arguments)},Zg=s._Exp=function(){return(Zg=s._Exp=s.asm.Exp).apply(null,arguments)},Bd=s._FlipLeftRight=function(){return(Bd=s._FlipLeftRight=s.asm.FlipLeftRight).apply(null,arguments)},Jg=s._Floor=function(){return(Jg=s._Floor=s.asm.Floor).apply(null,arguments)},Jo=s._FloorDiv=function(){return(Jo=s._FloorDiv=s.asm.FloorDiv).apply(null,arguments)},Qg=s._FusedBatchNorm=function(){return(Qg=s._FusedBatchNorm=s.asm.FusedBatchNorm).apply(null,arguments)},ey=s._FusedConv2D=function(){return(ey=s._FusedConv2D=s.asm.FusedConv2D).apply(null,arguments)},qr=s._FusedDepthwiseConv2D=function(){return(qr=s._FusedDepthwiseConv2D=s.asm.FusedDepthwiseConv2D).apply(null,arguments)},Np=s._Gather=function(){return(Np=s._Gather=s.asm.Gather).apply(null,arguments)},ty=s._GatherNd=function(){return(ty=s._GatherNd=s.asm.GatherNd).apply(null,arguments)},ny=s._Greater=function(){return(ny=s._Greater=s.asm.Greater).apply(null,arguments)},ay=s._GreaterEqual=function(){return(ay=s._GreaterEqual=s.asm.GreaterEqual).apply(null,arguments)},ry=s._LeakyRelu=function(){return(ry=s._LeakyRelu=s.asm.LeakyRelu).apply(null,arguments)},Vd=s._Less=function(){return(Vd=s._Less=s.asm.Less).apply(null,arguments)},Ud=s._LessEqual=function(){return(Ud=s._LessEqual=s.asm.LessEqual).apply(null,arguments)},sy=s._Log=function(){return(sy=s._Log=s.asm.Log).apply(null,arguments)},iy=s._LogicalAnd=function(){return(iy=s._LogicalAnd=s.asm.LogicalAnd).apply(null,arguments)},Gd=s._LogicalNot=function(){return(Gd=s._LogicalNot=s.asm.LogicalNot).apply(null,arguments)},Hd=s._LogicalOr=function(){return(Hd=s._LogicalOr=s.asm.LogicalOr).apply(null,arguments)},oy=s._LogicalXor=function(){return(oy=s._LogicalXor=s.asm.LogicalXor).apply(null,arguments)},ly=s._Max=function(){return(ly=s._Max=s.asm.Max).apply(null,arguments)},uy=s._MaxPool=function(){return(uy=s._MaxPool=s.asm.MaxPool).apply(null,arguments)},jd=s._Maximum=function(){return(jd=s._Maximum=s.asm.Maximum).apply(null,arguments)},J1=s._Mean=function(){return(J1=s._Mean=s.asm.Mean).apply(null,arguments)},py=s._Min=function(){return(py=s._Min=s.asm.Min).apply(null,arguments)},cy=s._Minimum=function(){return(cy=s._Minimum=s.asm.Minimum).apply(null,arguments)},dy=s._MirrorPad=function(){return(dy=s._MirrorPad=s.asm.MirrorPad).apply(null,arguments)},hy=s._Multiply=function(){return(hy=s._Multiply=s.asm.Multiply).apply(null,arguments)},my=s._Neg=function(){return(my=s._Neg=s.asm.Neg).apply(null,arguments)},fy=s._NonMaxSuppressionV3=function(){return(fy=s._NonMaxSuppressionV3=s.asm.NonMaxSuppressionV3).apply(null,arguments)},gy=s._NonMaxSuppressionV4=function(){return(gy=s._NonMaxSuppressionV4=s.asm.NonMaxSuppressionV4).apply(null,arguments)},yy=s._NonMaxSuppressionV5=function(){return(yy=s._NonMaxSuppressionV5=s.asm.NonMaxSuppressionV5).apply(null,arguments)},by=s._NotEqual=function(){return(by=s._NotEqual=s.asm.NotEqual).apply(null,arguments)},xy=s._OneHot=function(){return(xy=s._OneHot=s.asm.OneHot).apply(null,arguments)},vy=s._PadV2=function(){return(vy=s._PadV2=s.asm.PadV2).apply(null,arguments)},wy=s._Pow=function(){return(wy=s._Pow=s.asm.Pow).apply(null,arguments)},ky=s._Prelu=function(){return(ky=s._Prelu=s.asm.Prelu).apply(null,arguments)},Iy=s._Prod=function(){return(Iy=s._Prod=s.asm.Prod).apply(null,arguments)},Sy=s._RealDiv=function(){return(Sy=s._RealDiv=s.asm.RealDiv).apply(null,arguments)},Ty=s._Relu=function(){return(Ty=s._Relu=s.asm.Relu).apply(null,arguments)},Ny=s._Relu6=function(){return(Ny=s._Relu6=s.asm.Relu6).apply(null,arguments)},Cy=s._ResizeBilinear=function(){return(Cy=s._ResizeBilinear=s.asm.ResizeBilinear).apply(null,arguments)},_y=s._ResizeNearestNeighbor=function(){return(_y=s._ResizeNearestNeighbor=s.asm.ResizeNearestNeighbor).apply(null,arguments)},Ey=s._Reverse=function(){return(Ey=s._Reverse=s.asm.Reverse).apply(null,arguments)},Ay=s._RotateWithOffset=function(){return(Ay=s._RotateWithOffset=s.asm.RotateWithOffset).apply(null,arguments)},$y=s._Round=function(){return($y=s._Round=s.asm.Round).apply(null,arguments)},Fy=s._Rsqrt=function(){return(Fy=s._Rsqrt=s.asm.Rsqrt).apply(null,arguments)},Dy=s._ScatterNd=function(){return(Dy=s._ScatterNd=s.asm.ScatterNd).apply(null,arguments)},Ry=s._SelectV2=function(){return(Ry=s._SelectV2=s.asm.SelectV2).apply(null,arguments)},My=s._Sigmoid=function(){return(My=s._Sigmoid=s.asm.Sigmoid).apply(null,arguments)},Py=s._Sin=function(){return(Py=s._Sin=s.asm.Sin).apply(null,arguments)},Oy=s._Softmax=function(){return(Oy=s._Softmax=s.asm.Softmax).apply(null,arguments)},Ly=s._SparseFillEmptyRows=function(){return(Ly=s._SparseFillEmptyRows=s.asm.SparseFillEmptyRows).apply(null,arguments)},zy=s._SparseReshape=function(){return(zy=s._SparseReshape=s.asm.SparseReshape).apply(null,arguments)},Wy=s._SparseSegmentReduction=function(){return(Wy=s._SparseSegmentReduction=s.asm.SparseSegmentReduction).apply(null,arguments)},By=s._Sqrt=function(){return(By=s._Sqrt=s.asm.Sqrt).apply(null,arguments)},Vy=s._Square=function(){return(Vy=s._Square=s.asm.Square).apply(null,arguments)},Uy=s._SquaredDifference=function(){return(Uy=s._SquaredDifference=s.asm.SquaredDifference).apply(null,arguments)},Gy=s._Step=function(){return(Gy=s._Step=s.asm.Step).apply(null,arguments)},Hy=s._StridedSlice=function(){return(Hy=s._StridedSlice=s.asm.StridedSlice).apply(null,arguments)},jy=s._Sub=function(){return(jy=s._Sub=s.asm.Sub).apply(null,arguments)},qy=s._Sum=function(){return(qy=s._Sum=s.asm.Sum).apply(null,arguments)},Ky=s._Tan=function(){return(Ky=s._Tan=s.asm.Tan).apply(null,arguments)},Xy=s._Tanh=function(){return(Xy=s._Tanh=s.asm.Tanh).apply(null,arguments)},Yy=s._Tile=function(){return(Yy=s._Tile=s.asm.Tile).apply(null,arguments)},Zy=s._TopK=function(){return(Zy=s._TopK=s.asm.TopK).apply(null,arguments)},Jy=s._Transform=function(){return(Jy=s._Transform=s.asm.Transform).apply(null,arguments)},Qy=s._Transpose=function(){return(Qy=s._Transpose=s.asm.Transpose).apply(null,arguments)},eb=s.__FusedMatMul=function(){return(eb=s.__FusedMatMul=s.asm._FusedMatMul).apply(null,arguments)},tb=s._malloc=function(){return(tb=s._malloc=s.asm.malloc).apply(null,arguments)},nb=s._free=function(){return(nb=s._free=s.asm.free).apply(null,arguments)},ab=s.___errno_location=function(){return(ab=s.___errno_location=s.asm.__errno_location).apply(null,arguments)},qd=s.stackSave=function(){return(qd=s.stackSave=s.asm.stackSave).apply(null,arguments)},Kd=s.stackRestore=function(){return(Kd=s.stackRestore=s.asm.stackRestore).apply(null,arguments)},Cp=s.stackAlloc=function(){return(Cp=s.stackAlloc=s.asm.stackAlloc).apply(null,arguments)},rb=s.dynCall_iijjiiii=function(){return(rb=s.dynCall_iijjiiii=s.asm.dynCall_iijjiiii).apply(null,arguments)},sb=s.dynCall_jiji=function(){return(sb=s.dynCall_jiji=s.asm.dynCall_jiji).apply(null,arguments)};s.cwrap=Pd;var Qo;qn=function X(){Qo||Xd(),Qo||(qn=X)};function Xd(X){if(X=X||p,ot>0||(Mt(),ot>0))return;function se(){Qo||(Qo=!0,s.calledRun=!0,!U&&(ia(),i(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),on()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),se()},1)):se()}if(s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();Xd();var el;l&&(el={uncaughtException:process.listeners("uncaughtException").filter(function(X){return!l.uncaughtException.indexOf(X)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(X){return!l.unhandledRejection.indexOf(X)>-1})});var tl;if(typeof r!="undefined")tl=r;else if(typeof WasmBackendModuleThreadedSimd!="undefined")tl=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(el){var ib=tl._dispose;tl._dispose=function(){ib(),el.uncaughtException.forEach(function(X){process.removeListener("uncaughtException",X)}),el.unhandledRejection.forEach(function(X){process.removeListener("unhandledRejection",X)})}}return r.ready}})();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModule=n)}),om=class{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}},pc=class{refCount(e){return Kn("refCount")}incRef(e){return Kn("incRef")}timerAvailable(){return!0}time(e){return Kn("time")}read(e){return Kn("read")}readSync(e){return Kn("readSync")}readToGPU(e,t){return Kn("readToGPU")}numDataIds(){return Kn("numDataIds")}disposeData(e,t){return Kn("disposeData")}write(e,t,n){return Kn("write")}move(e,t,n,a,r){return Kn("move")}createTensorFromTexture(e,t,n){return Kn("createTensorFromTexture")}memory(){return Kn("memory")}floatPrecision(){return Kn("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return Kn("dispose")}};function Kn(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 UI(e){let t=e.length,n=0;for(;t>0;)n=Math.random()*t|0,t--,_h(e,t,n)}function LF(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=e.length,a=0;for(;n>0;)a=Math.random()*n|0,n--,_h(e,n,a),_h(t,n,a)}function Kp(e,t,n){return Math.max(e,Math.min(t,n))}function zF(e){return e%2===0?e:e+1}function _h(e,t,n){let a=e[t];e[t]=e[n],e[n]=a}function WF(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function mi(e){$(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function Js(e,t=[],n=!1){if(t==null&&(t=[]),Array.isArray(e)||hn(e)&&!n)for(let a=0;a0,n,a){return new Promise((r,s)=>{let i=0,o=()=>{if(e()){r();return}i++;let l=t(i);if(n!=null&&i>=n){s();return}a!=null?a(o,l):setTimeout(o,l)};o()})}function KF(e,t){let n=1,a=-1;for(let s=0;s=0)n*=e[s];else if(e[s]===-1){if(a!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${a} and dim ${s}`);a=s}else if(e[s]<0)throw Error(`Shapes can not be < 0. Found ${e[s]} at dim ${s}`);if(a===-1){if(t>0&&t!==n)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(n===0)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}`);let r=e.slice();return r[a]=t/n,r}function Fa(e,t){let n=t.length;return e=e==null?t.map((a,r)=>r):[].concat(e),$(e.every(a=>a>=-n&&a`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),$(e.every(a=>hl(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function GI(e,t){let n=[],a=[],r=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||r?null:Fa(t,e).sort(),i=0;for(let o=0;oo)&&e[o]===1&&(n.push(e[o]),a.push(o)),s[i]<=o&&i++}e[o]!==1&&(n.push(e[o]),a.push(o))}return{newShape:n,keptDims:a}}function HI(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else throw new Error(`Unknown data type ${e}`);return n}function jI(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else if(e==="string")n=new Array(t);else throw new Error(`Unknown data type ${e}`);return n}function qI(e,t){for(let n=0;nt+=n.length),t}function Qr(e){return typeof e=="string"||e instanceof String}function YI(e){return typeof e=="boolean"}function ZI(e){return typeof e=="number"}function lm(e){return Array.isArray(e)?lm(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":ZI(e)?"float32":Qr(e)?"string":YI(e)?"bool":"float32"}function ss(e){return!!(e&&e.constructor&&e.call&&e.apply)}function Eh(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function JI(e,t,n,a=!1){let r=new Array;if(t.length===1){let s=t[0]*(a?2:1);for(let i=0;il*u)*(a?2:1);for(let l=0;lr*s)*(n?2:1);if(a===0)return[];if(a!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}${n?" for a complex tensor":""}.`);return JI(0,e,t,n)}function _x(e,t){let n=um(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return ul(e,new Float32Array(n));if(t==="int32")return ul(e,new Int32Array(n));if(t==="bool")return ul(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function Ex(e){e.forEach(t=>{$(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function ZF(e,t,n){if(t===0)return 0;if(t===1)return e[0];let a=e[e.length-1];for(let r=0;r{let[n,a]=t.split(":");this.urlFlags[n]=tD(n,a)})}};function QF(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(eD(t,a[0],a[1]),a.join("="))),t}function eD(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function tD(e,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}function H(){return $x}var $x=null;function nD(e){$x=e}var db;function eS(){if(db==null){let e;if(typeof window!="undefined")e=window;else if(typeof global!="undefined")e=global;else if(typeof process!="undefined")e=process;else if(typeof self!="undefined")e=self;else throw new Error("Could not find a global object");db=e}return db}function aD(){let e=eS();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function Fx(e,t){let n=aD();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var Dl="Abs",Rl="Acos",Ml="Acosh",gs="Add",fi="AddN",Pl="All",Ol="Any",gi="ArgMax",cc="ArgMin",Ll="Asin",zl="Asinh",Wl="Atan",Bl="Atanh",Vl="Atan2",yi="AvgPool",pm="AvgPoolGrad",dc="AvgPool3D",cm="AvgPool3DGrad",bi="BatchMatMul",Ul="BatchToSpaceND",dm="Bincount",tS="BroadcastTo",hm="BroadcastArgs",xi="Cast",vi="Ceil",ys="ClipByValue",mm="Complex",hc="ComplexAbs",Gl="Concat",wi="Conv2D",fm="Conv2DBackpropFilter",ki="Conv2DBackpropInput",mc="Conv3D",gm="Conv3DBackpropFilterV2",ym="Conv3DBackpropInputV2",Ii="Cos",Si="Cosh",Hl="Cumprod",Ti="Cumsum",jl="CropAndResize",bm="DenseBincount",ql="DepthToSpace",Ni="DepthwiseConv2dNative",xm="DepthwiseConv2dNativeBackpropFilter",vm="DepthwiseConv2dNativeBackpropInput",wm="Diag",fc="Dilation2D",Ah="Dilation2DBackpropInput",$h="Dilation2DBackpropFilter",Ci="RealDiv",km="Einsum",_i="Elu",Im="EluGrad",Kl="Erf",Xl="Equal",Ei="Exp",Yl="ExpandDims",Zl="Expm1",Sm="FFT",gc="Fill",Jl="FlipLeftRight",Ai="Floor",$i="FloorDiv",Fi="FusedBatchNorm",Ql="GatherV2",eu="GatherNd",tu="Greater",Di="GreaterEqual",Ri="Identity",Tm="IFFT",Nm="Imag",nu="IsFinite",au="IsInf",ru="IsNan",Mi="LeakyRelu",su="Less",iu="LessEqual",Cm="LinSpace",Pi="Log",ou="Log1p",lu="LogicalAnd",uu="LogicalNot",pu="LogicalOr",nS="LogicalXor",aS="LogSoftmax",rD="LowerBound",yc="LRN",_m="LRNGrad",Oi="Max",Li="Maximum",zi="MaxPool",Em="MaxPoolGrad",bc="MaxPool3D",Am="MaxPool3DGrad",$m="MaxPoolWithArgmax",Wi="Mean",Bi="Min",Vi="Minimum",Ui="MirrorPad",cu="Mod",Fm="Multinomial",Gi="Multiply",du="Neg",hu="NotEqual",mu="NonMaxSuppressionV3",fu="NonMaxSuppressionV4",gu="NonMaxSuppressionV5",yu="OnesLike",Hi="OneHot",bu="Pack",ji="PadV2",sD="Pool",qi="Pow",Ki="Prelu",Xi="Prod",Dm="RaggedGather",Rm="RaggedRange",Mm="RaggedTensorToTensor",xc="Range",Pm="Real",xu="Reciprocal",Yi="Relu",vu="Reshape",Zi="ResizeNearestNeighbor",Om="ResizeNearestNeighborGrad",Ji="ResizeBilinear",Lm="ResizeBilinearGrad",Qi="Relu6",eo="Reverse",to="Round",no="Rsqrt",wu="ScatterNd",zm="SearchSorted",ku="Select",Iu="Selu",Su="Slice",ao="Sin",Tu="Sinh",Nu="Sign",ro="Sigmoid",Cu="Softplus",so="Sqrt",io="Sum",_u="SpaceToBatchND",Eu="SplitV",oo="Softmax",vc="SparseFillEmptyRows",Au="SparseReshape",wc="SparseSegmentMean",kc="SparseSegmentSum",Wm="SparseToDense",lo="SquaredDifference",Ic="Square",$u="StridedSlice",Sc="StringNGrams",Tc="StringSplit",Nc="StringToHashBucketFast",uo="Sub",po="Tan",co="Tanh",bs="Tile",Fu="TopK",Du="Transform",_r="Transpose",Bm="Unique",Ru="Unpack",Cc="UnsortedSegmentSum",iD="UpperBound",Mu="ZerosLike",xs="Step",Fh="FromPixels",Pu="RotateWithOffset",Qs="_FusedMatMul",ei="FusedConv2D",ti="FusedDepthwiseConv2D";function Jr(...e){H().getBool("IS_TEST")||H().getBool("PROD")||console.warn(...e)}function oD(...e){H().getBool("IS_TEST")||H().getBool("PROD")||console.log(...e)}var ml=Fx("kernelRegistry",()=>new Map),Xp=Fx("gradRegistry",()=>new Map);function Dh(e,t){let n=Dx(e,t);return ml.get(n)}function Cb(e){return Xp.get(e)}function Rh(e){let t=ml.entries(),n=[];for(;;){let{done:a,value:r}=t.next();if(a)break;let[s,i]=r,[o]=s.split("_");o===e&&n.push(i)}return n}function _c(e){let{kernelName:t,backendName:n}=e,a=Dx(t,n);ml.has(a)&&Jr(`The kernel '${t}' for backend '${n}' is already registered`),ml.set(a,e)}function rS(e){let{kernelName:t}=e;Xp.has(t)&&H().getBool("DEBUG")&&Jr(`Overriding the gradient for '${t}'`),Xp.set(t,e)}function lD(e,t){let n=Dx(e,t);if(!ml.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);ml.delete(n)}function uD(e){if(!Xp.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);Xp.delete(e)}function pD(e,t){Rh(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});_c(a)})}function Dx(e,t){return`${t}_${e}`}var v={};Ae(v,{arraysEqual:()=>fs,assert:()=>$,assertNonNegativeIntegerDimensions:()=>Ex,assertNonNull:()=>mi,assertShapesMatch:()=>Tn,bytesFromStringArray:()=>XI,bytesPerElement:()=>Nb,checkConversionForErrors:()=>qI,clamp:()=>Kp,computeStrides:()=>Fl,createScalarValue:()=>gD,createShuffledIndices:()=>jF,decodeString:()=>Mh,distSquared:()=>VF,encodeString:()=>Ac,fetch:()=>bD,fingerPrint64:()=>fD,flatten:()=>Js,getArrayFromDType:()=>jI,getTypedArrayFromDType:()=>HI,hasEncodingLoss:()=>XF,hexToLong:()=>Ec,indexToLoc:()=>JF,inferDtype:()=>lm,inferFromImplicitShape:()=>KF,isBoolean:()=>YI,isFunction:()=>ss,isInt:()=>hl,isNumber:()=>ZI,isPromise:()=>Ax,isScalarShape:()=>UF,isString:()=>Qr,isTypedArray:()=>hn,isValidDtype:()=>KI,locToIndex:()=>ZF,makeOnesTypedArray:()=>_x,makeZerosNestedTypedArray:()=>YF,makeZerosTypedArray:()=>um,nearestDivisor:()=>Eh,nearestLargerEven:()=>zF,now:()=>Yp,parseAxisParam:()=>Fa,randUniform:()=>BF,repeatedTry:()=>qF,rightPad:()=>Gp,shuffle:()=>UI,shuffleCombo:()=>LF,sizeFromShape:()=>mt,sizeToSquarishShape:()=>HF,squeezeShape:()=>GI,sum:()=>WF,swap:()=>_h,tanh:()=>GF,toNestedArray:()=>ul,toTypedArray:()=>Vm});var lk=ms(wF()),Bs=lk.default||lk;function Ec(e){return Bs.fromString(e,!0,16)}var sS=Ec("c3a5c85c97cb3127"),zs=Ec("b492b66fbe98f273"),xn=Ec("9ae16a3b2f90404f");function _b(e){return e.xor(e.shru(47))}function iS(e,t,n){let a=e.slice(t,t+n);return Bs.fromBytes(Array.from(a),!0,!0)}function ht(e,t){return iS(e,t,8)}function uk(e,t){return iS(e,t,4)}function Yt(e,t){return t===0?e:e.shru(t).or(e.shl(64-t))}function ns(e,t,n=Ec("9ddfea08eb382d69")){let a=e.xor(t).mul(n);a=a.xor(a.shru(47));let r=t.xor(a).mul(n);return r=r.xor(r.shru(47)),r=r.mul(n),r}function cD(e,t,n,a,r,s){r=r.add(e),s=Yt(s.add(r).add(a),21);let i=r;return r=r.add(t),r=r.add(n),s=s.add(Yt(r,44)),[r.add(a),s.add(i)]}function sh(e,t,n,a){return cD(ht(e,t),ht(e,t+8),ht(e,t+16),ht(e,t+24),n,a)}function dD(e,t=e.length){if(t>=8){let n=xn.add(t*2),a=ht(e,0).add(xn),r=ht(e,t-8),s=Yt(r,37).mul(n).add(a),i=Yt(a,25).add(r).mul(n);return ns(s,i,n)}if(t>=4){let n=xn.add(t*2),a=uk(e,0);return ns(a.shl(3).add(t),uk(e,t-4),n)}if(t>0){let n=e[0],a=e[t>>1],r=e[t-1],s=n+(a<<8),i=t+(r<<2);return _b(xn.mul(s).xor(sS.mul(i))).mul(xn)}return xn}function hD(e,t=e.length){let n=xn.add(t*2),a=ht(e,0).mul(zs),r=ht(e,8),s=ht(e,t-8).mul(n),i=ht(e,t-16).mul(xn);return ns(Yt(a.add(r),43).add(Yt(s,30)).add(i),a.add(Yt(r.add(xn),18)).add(s),n)}function mD(e,t=e.length){let n=xn.add(t*2),a=ht(e,0).mul(xn),r=ht(e,8),s=ht(e,t-8).mul(n),i=ht(e,t-16).mul(xn),o=Yt(a.add(r),43).add(Yt(s,30)).add(i),l=ns(o,a.add(Yt(r.add(xn),18)).add(s),n),u=ht(e,16).mul(n),p=ht(e,24),d=o.add(ht(e,t-32)).mul(n),c=l.add(ht(e,t-24)).mul(n);return ns(Yt(u.add(p),43).add(Yt(d,30)).add(c),u.add(Yt(p.add(a),18)).add(d),n)}function fD(e,t=e.length){let n=Bs.fromNumber(81,!0);if(t<=32)return t<=16?dD(e,t):hD(e,t);if(t<=64)return mD(e,t);let a=n,r=n.mul(zs).add(113),s=_b(r.mul(xn).add(113)).mul(xn),i=[Bs.UZERO,Bs.UZERO],o=[Bs.UZERO,Bs.UZERO];a=a.mul(xn).add(ht(e,0));let l=0,u=(t-1>>6)*64,p=u+(t-1&63)-63;do a=Yt(a.add(r).add(i[0]).add(ht(e,l+8)),37).mul(zs),r=Yt(r.add(i[1]).add(ht(e,l+48)),42).mul(zs),a=a.xor(o[1]),r=r.add(i[0]).add(ht(e,l+40)),s=Yt(s.add(o[0]),33).mul(zs),i=sh(e,l,i[1].mul(zs),a.add(o[0])),o=sh(e,l+32,s.add(o[1]),r.add(ht(e,l+16))),[s,a]=[a,s],l+=64;while(l!==u);let d=zs.add(s.and(255).shl(1));return l=p,o[0]=o[0].add(t-1&63),i[0]=i[0].add(o[0]),o[0]=o[0].add(i[0]),a=Yt(a.add(r).add(i[0]).add(ht(e,l+8)),37).mul(d),r=Yt(r.add(i[1]).add(ht(e,l+48)),42).mul(d),a=a.xor(o[1].mul(9)),r=r.add(i[0].mul(9).add(ht(e,l+40))),s=Yt(s.add(o[0]),33).mul(d),i=sh(e,l,i[1].mul(d),a.add(o[0])),o=sh(e,l+32,s.add(o[1]),r.add(ht(e,l+16))),[s,a]=[a,s],ns(ns(i[0],o[0],d).add(_b(r).mul(sS)).add(s),ns(i[1],o[1],d).add(a),d)}function gD(e,t){return t==="string"?Ac(e):Vm([e],t)}function yD(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Vm(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=Js(e)),H().getBool("DEBUG")&&qI(e,t),yD(e,t))return e;if(t==null||t==="float32"||t==="complex64")return new Float32Array(e);if(t==="int32")return new Int32Array(e);if(t==="bool"){let n=new Uint8Array(e.length);for(let a=0;a{a=n()},s,i=Yp();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(r);else{r();for(let o of a)o.dataSync();s=Promise.resolve({kernelMs:Yp()-i})}if(H().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{vD(u,l.dtype,e)})}return{kernelName:e,outputs:a,inputs:t,timeMs:s.then(o=>o.kernelMs),extraInfo:s.then(o=>o.getExtraProfileInfo!=null?o.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:n,timeMs:a,inputs:r,extraInfo:s}=e;n.forEach(i=>{Promise.all([i.data(),a,s]).then(o=>{this.logger.logKernelProfile(t,i,o[0],o[1],r,o[2])})})}};function vD(e,t,n){if(t!=="float32")return!1;for(let a=0;a0?m:""} `}}console.log(`%c${o} %c${i} %c${l}D ${p} %c${u} %c${d} %c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function kD(e,t,n){let a={},r={};for(let l=0;la[f.id]=!0),h=!0,r[u.id]=!0;break}if(h)break}}let s={};s[n.id]=!0;let i={};for(let l=e.length-1;l>=0;l--){let u=e[l],p=u.inputs;for(let d=0;d=0;r--){let s=t[r],i=[];if(s.outputs.forEach(l=>{let u=e[l.id];u!=null?i.push(u):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let o=s.gradient(i);for(let l in s.inputs){if(!(l in o))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(o)}.`);let u=n(()=>o[l]());if(u.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${u.dtype}'`);let p=s.inputs[l];if(!fs(u.shape,p.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${l}' has shape '${u.shape}', which does not match the shape of the input '${p.shape}'`);if(e[p.id]==null)e[p.id]=u;else{let d=e[p.id];e[p.id]=a(d,u),d.dispose()}}}}var pk=20,Ep=3,hb=7;function SD(e,t,n,a){let r=Fl(t),s=TD(e,t,n,r),i=t.length,o=bh(e,t,n,r,s),l=["Tensor"];return a&&(l.push(` dtype: ${n}`),l.push(` rank: ${i}`),l.push(` shape: [${t}]`),l.push(" values:")),l.push(o.map(u=>" "+u).join(` +`));var Z=c.print||q,J=c.printErr||K;Object.assign(c,g),g=null,c.arguments&&(y=c.arguments),c.thisProgram&&(b=c.thisProgram),c.quit&&(x=c.quit);var ee=4,ae=Atomics.load,te=Atomics.store,ie=Atomics.compareExchange,oe;c.wasmBinary&&(oe=c.wasmBinary);var ye=c.noExitRuntime||!0;typeof WebAssembly!="object"&&Yo("no native wasm support detected");var ue,be,ke=!1,Se;function Le(D,j){D||Yo(j)}var Ve=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function nt(D,j,re){for(var ce=j+re,Ie=j;D[Ie]&&!(Ie>=ce);)++Ie;if(Ie-j>16&&D.buffer&&Ve)return Ve.decode(D.buffer instanceof SharedArrayBuffer?D.slice(j,Ie):D.subarray(j,Ie));for(var je="";j>10,56320|ua&1023)}}return je}function it(D,j){return D?nt(i(),D,j):""}function et(D,j,re,ce){if(!(ce>0))return 0;for(var Ie=re,je=re+ce-1,Ce=0;Ce=55296&&Re<=57343){var Ot=D.charCodeAt(++Ce);Re=65536+((Re&1023)<<10)|Ot&1023}if(Re<=127){if(re>=je)break;j[re++]=Re}else if(Re<=2047){if(re+1>=je)break;j[re++]=192|Re>>6,j[re++]=128|Re&63}else if(Re<=65535){if(re+2>=je)break;j[re++]=224|Re>>12,j[re++]=128|Re>>6&63,j[re++]=128|Re&63}else{if(re+3>=je)break;j[re++]=240|Re>>18,j[re++]=128|Re>>12&63,j[re++]=128|Re>>6&63,j[re++]=128|Re&63}}return j[re]=0,re-Ie}function at(D,j,re){return et(D,i(),j,re)}var ze,dt,jn,Mt,ia,on,Fn,oa,Dn;C&&(ze=c.buffer);function ot(D){ze=D,c.HEAP8=dt=new Int8Array(D),c.HEAP16=Mt=new Int16Array(D),c.HEAP32=on=new Int32Array(D),c.HEAPU8=jn=new Uint8Array(D),c.HEAPU16=ia=new Uint16Array(D),c.HEAPU32=Fn=new Uint32Array(D),c.HEAPF32=oa=new Float32Array(D),c.HEAPF64=Dn=new Float64Array(D)}var Rn=c.INITIAL_MEMORY||16777216;if(C)ue=c.wasmMemory,ze=c.buffer;else if(c.wasmMemory)ue=c.wasmMemory;else if(ue=new WebAssembly.Memory({initial:Rn/65536,maximum:32768,shared:!0}),!(ue.buffer instanceof SharedArrayBuffer))throw J("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),T&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");ue&&(ze=ue.buffer),Rn=ze.byteLength,ot(ze);var qn,xr=[],qo=[],er=[],vp=!1;function Ia(){return ye}function Ko(){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)Ng(c.preRun.shift());Sp(xr)}function Xt(){vp=!0,!C&&Sp(qo)}function Fd(){if(!C){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)G1(c.postRun.shift());Sp(er)}}function Ng(D){xr.unshift(D)}function Cg(D){qo.unshift(D)}function G1(D){er.unshift(D)}var jr=0,Xo=null,vr=null;function H1(D){jr++,c.monitorRunDependencies&&c.monitorRunDependencies(jr)}function j1(D){if(jr--,c.monitorRunDependencies&&c.monitorRunDependencies(jr),jr==0&&(Xo!==null&&(clearInterval(Xo),Xo=null),vr)){var j=vr;vr=null,j()}}function Yo(D){C?postMessage({cmd:"onAbort",arg:D}):c.onAbort&&c.onAbort(D),D="Aborted("+D+")",J(D),ke=!0,Se=1,D+=". Build with -sASSERTIONS for more info.";var j=new WebAssembly.RuntimeError(D);throw m(j),j}var _g="data:application/octet-stream;base64,";function Dd(D){return D.startsWith(_g)}function wp(D){return D.startsWith("file://")}var bn;bn="tfjs-backend-wasm-threaded-simd.wasm",Dd(bn)||(bn=$(bn));function Rd(D){try{if(D==bn&&oe)return new Uint8Array(oe);if(S)return S(D);throw"both async and sync fetching of the wasm failed"}catch(j){Yo(j)}}function Eg(){if(!oe&&(w||I)){if(typeof fetch=="function"&&!wp(bn))return fetch(bn,{credentials:"same-origin"}).then(function(D){if(!D.ok)throw"failed to load wasm binary file at '"+bn+"'";return D.arrayBuffer()}).catch(function(){return Rd(bn)});if(F)return new Promise(function(D,j){F(bn,function(re){D(new Uint8Array(re))},j)})}return Promise.resolve().then(function(){return Rd(bn)})}function $g(){var D={env:jd,wasi_snapshot_preview1:jd};function j(Ce,Re){var Ot=Ce.exports;if(c.asm=Ot,Wg(c.asm._emscripten_tls_init),qn=c.asm.__indirect_function_table,Cg(c.asm.__wasm_call_ctors),be=Re,!C){var ua=Ae.unusedWorkers.length;Ae.unusedWorkers.forEach(function(kr){Ae.loadWasmModuleToWorker(kr,function(){--ua||j1("wasm-instantiate")})})}}C||H1("wasm-instantiate");function re(Ce){j(Ce.instance,Ce.module)}function ce(Ce){return Eg().then(function(Re){return WebAssembly.instantiate(Re,D)}).then(function(Re){return Re}).then(Ce,function(Re){J("failed to asynchronously prepare wasm: "+Re),Yo(Re)})}function Ie(){return!oe&&typeof WebAssembly.instantiateStreaming=="function"&&!Dd(bn)&&!wp(bn)&&!T&&typeof fetch=="function"?fetch(bn,{credentials:"same-origin"}).then(function(Ce){var Re=WebAssembly.instantiateStreaming(Ce,D);return Re.then(re,function(Ot){return J("wasm streaming compile failed: "+Ot),J("falling back to ArrayBuffer instantiation"),ce(re)})}):ce(re)}if(c.instantiateWasm)try{var je=c.instantiateWasm(D,j);return je}catch(Ce){J("Module.instantiateWasm callback failed with error: "+Ce),m(Ce)}return Ie().catch(m),{}}var Ag,q1,Fg={};function Ms(D){this.name="ExitStatus",this.message="Program terminated with exit("+D+")",this.status=D}function Dg(D){var j=Ae.pthreads[D];delete Ae.pthreads[D],j.terminate(),lb(D),Ae.runningWorkers.splice(Ae.runningWorkers.indexOf(j),1),j.pthread_ptr=0}function Rg(D){var j=Ae.pthreads[D];j.postMessage({cmd:"cancel"})}function kp(D){var j=Ae.pthreads[D];Le(j),Ae.returnWorkerToPool(j)}function Md(D){var j=Ae.getNewWorker();if(!j)return 6;Ae.runningWorkers.push(j),Ae.pthreads[D.pthread_ptr]=j,j.pthread_ptr=D.pthread_ptr;var re={cmd:"run",start_routine:D.startRoutine,arg:D.arg,pthread_ptr:D.pthread_ptr};return j.runPthread=()=>{re.time=performance.now(),j.postMessage(re,D.transferList)},j.loaded&&(j.runPthread(),delete j.runPthread),0}var Pd={varargs:void 0,get:function(){Pd.varargs+=4;var D=l()[Pd.varargs-4>>2];return D},getStr:function(D){var j=it(D);return j}};function Ip(D){if(C)return qr(1,1,D);Se=D,Ia()||(Ae.terminateAllThreads(),c.onExit&&c.onExit(D),ke=!0),x(D,new Ms(D))}function K1(D,j){if(Se=D,!j&&C)throw Ld(D),"unwind";Ip(D)}var Od=K1;function Mg(D){if(D instanceof Ms||D=="unwind")return Se;x(1,D)}var Ae={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?Ae.initWorker():Ae.initMainThread()},initMainThread:function(){for(var D=8;D--;)Ae.allocateUnusedWorker()},initWorker:function(){ye=!1},setExitStatus:function(D){Se=D},terminateAllThreads:function(){for(var D of Object.values(Ae.pthreads))Ae.returnWorkerToPool(D);for(var D of Ae.unusedWorkers)D.terminate();Ae.unusedWorkers=[]},returnWorkerToPool:function(D){var j=D.pthread_ptr;delete Ae.pthreads[j],Ae.unusedWorkers.push(D),Ae.runningWorkers.splice(Ae.runningWorkers.indexOf(D),1),D.pthread_ptr=0,lb(j)},receiveObjectTransfer:function(D){},threadInitTLS:function(){Ae.tlsInitFunctions.forEach(D=>D())},loadWasmModuleToWorker:function(D,j){D.onmessage=re=>{var ce=re.data,Ie=ce.cmd;if(D.pthread_ptr&&(Ae.currentProxiedOperationCallerThread=D.pthread_ptr),ce.targetThread&&ce.targetThread!=Jd()){var je=Ae.pthreads[ce.targetThread];je?je.postMessage(ce,ce.transferList):J('Internal error! Worker sent a message "'+Ie+'" to target pthread '+ce.targetThread+", but that thread no longer exists!"),Ae.currentProxiedOperationCallerThread=void 0;return}Ie==="processProxyingQueue"?Tp(ce.queue):Ie==="spawnThread"?Md(ce):Ie==="cleanupThread"?kp(ce.thread):Ie==="killThread"?Dg(ce.thread):Ie==="cancelThread"?Rg(ce.thread):Ie==="loaded"?(D.loaded=!0,j&&j(D),D.runPthread&&(D.runPthread(),delete D.runPthread)):Ie==="print"?Z("Thread "+ce.threadId+": "+ce.text):Ie==="printErr"?J("Thread "+ce.threadId+": "+ce.text):Ie==="alert"?alert("Thread "+ce.threadId+": "+ce.text):ce.target==="setimmediate"?D.postMessage(ce):Ie==="onAbort"?c.onAbort&&c.onAbort(ce.arg):Ie&&J("worker sent an unknown command "+Ie),Ae.currentProxiedOperationCallerThread=void 0},D.onerror=re=>{var ce="worker sent an error!";throw J(ce+" "+re.filename+":"+re.lineno+": "+re.message),re},T&&(D.on("message",function(re){D.onmessage({data:re})}),D.on("error",function(re){D.onerror(re)}),D.on("detachedExit",function(){})),D.postMessage({cmd:"load",urlOrBlob:c.mainScriptUrlOrBlob||a,wasmMemory:ue,wasmModule:be})},allocateUnusedWorker:function(){var D=$("tfjs-backend-wasm-threaded-simd.worker.js");Ae.unusedWorkers.push(new Worker(D))},getNewWorker:function(){return Ae.unusedWorkers.length==0&&(Ae.allocateUnusedWorker(),Ae.loadWasmModuleToWorker(Ae.unusedWorkers[0])),Ae.unusedWorkers.pop()}};c.PThread=Ae;function Sp(D){for(;D.length>0;)D.shift()(c)}function Pg(D){var j=ub(),re=D();return Qd(j),re}function X1(D){return D}function Y1(D){var j=/\b_Z[\w\d_]+/g;return D.replace(j,function(re){var ce=re;return re===ce?re:ce+" ["+re+"]"})}function Og(){var D=Jd(),j=l()[D+44>>2],re=l()[D+48>>2],ce=j-re;ak(j,ce),Qd(j)}c.establishStackSpace=Og;function Ld(D){if(C)return qr(2,0,D);try{Od(D)}catch(j){Mg(j)}}var Zo=[];function Lg(D){var j=Zo[D];return j||(D>=Zo.length&&(Zo.length=D+1),Zo[D]=j=qn.get(D)),j}function zg(D,j){var re=Lg(D)(j);Ia()?Ae.setExitStatus(re):nk(re)}c.invokeEntryPoint=zg;function Z1(){var D=new Error;if(!D.stack){try{throw new Error}catch(j){D=j}if(!D.stack)return"(no stack trace available)"}return D.stack.toString()}function Wg(D){Ae.tlsInitFunctions.push(D)}function Bg(D,j){s().set(D,j)}function Vg(D){Q1(D,!I,1,!w),Ae.threadInitTLS()}function Ug(D){C?postMessage({cmd:"cleanupThread",thread:D}):kp(D)}function zd(D,j,re,ce){return C?qr(3,1,D,j,re,ce):Wd(D,j,re,ce)}function Wd(D,j,re,ce){if(typeof SharedArrayBuffer=="undefined")return J("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var Ie=[],je=0;if(C&&(Ie.length===0||je))return zd(D,j,re,ce);if(je)return je;var Ce={startRoutine:re,pthread_ptr:D,arg:ce,transferList:Ie};return C?(Ce.cmd="spawnThread",postMessage(Ce,Ie),0):Md(Ce)}function Gg(){return 2097152}var Hg=!0;function jg(){return Hg}function Tp(D){Atomics.store(l(),D>>2,1),Jd()&&tk(D),Atomics.compareExchange(l(),D>>2,1,0)}c.executeNotifiedProxyingQueue=Tp;function qg(D,j,re,ce){if(D==j)setTimeout(()=>Tp(ce));else if(C)postMessage({targetThread:D,cmd:"processProxyingQueue",queue:ce});else{var Ie=Ae.pthreads[D];if(!Ie)return;Ie.postMessage({cmd:"processProxyingQueue",queue:ce})}return 1}function Kg(D,j,re){return-1}function Xg(){Yo("")}function Ps(D){Ps.shown||(Ps.shown={}),Ps.shown[D]||(Ps.shown[D]=1,T&&(D="warning: "+D),J(D))}function Yg(){T||I||Ps("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function Zg(){return Date.now()}function Bd(){return 2147483648}function Jg(){return Bd()}var Jo;T?Jo=()=>{var D=process.hrtime();return D[0]*1e3+D[1]/1e6}:C?Jo=()=>performance.now()-c.__performance_now_clock_drift:Jo=()=>performance.now();function Qg(D,j,re){i().copyWithin(D,j,j+re)}function ey(){return T?RF().cpus().length:navigator.hardwareConcurrency}function qr(D,j){var re=arguments.length-2,ce=arguments;return Pg(()=>{for(var Ie=re,je=eh(Ie*8),Ce=je>>3,Re=0;Re>3,Ie=0;Ie>>16),ot(ue.buffer),1}catch(j){}}function ay(D){var j=i().length;if(D=D>>>0,D<=j)return!1;var re=Bd();if(D>re)return!1;let ce=(Ot,ua)=>Ot+(ua-Ot%ua)%ua;for(var Ie=1;Ie<=4;Ie*=2){var je=j*(1+.2/Ie);je=Math.min(je,D+100663296);var Ce=Math.min(re,ce(Math.max(D,je),65536)),Re=ny(Ce);if(Re)return!0}return!1}function ry(){throw"unwind"}function Vd(D){return C?qr(4,1,D):52}function Ud(D,j,re,ce,Ie){return C?qr(5,1,D,j,re,ce,Ie):70}var sy=[null,[],[]];function iy(D,j){var re=sy[D];j===0||j===10?((D===1?Z:J)(nt(re,0)),re.length=0):re.push(j)}function Gd(D,j,re,ce){if(C)return qr(6,1,D,j,re,ce);for(var Ie=0,je=0;je>2],Re=u()[j+4>>2];j+=8;for(var Ot=0;Ot>2]=Ie,0}function Hd(D){var j=c["_"+D];return j}function oy(D,j,re,ce,Ie){var je={string:pa=>{var nl=0;if(pa!=null&&pa!==0){var ik=(pa.length<<2)+1;nl=eh(ik),at(pa,nl,ik)}return nl},array:pa=>{var nl=eh(pa.length);return Bg(pa,nl),nl}};function Ce(pa){return j==="string"?it(pa):j==="boolean"?Boolean(pa):pa}var Re=Hd(D),Ot=[],ua=0;if(ce)for(var kr=0;krCe==="number"||Ce==="boolean"),je=j!=="string";return je&&Ie&&!ce?Hd(D):function(){return oy(D,j,re,arguments,ce)}}Ae.init();var uy=[null,Ip,Ld,zd,Vd,Ud,Gd],jd={__emscripten_init_main_thread_js:Vg,__emscripten_thread_cleanup:Ug,__pthread_create_js:Wd,_emscripten_default_pthread_stack_size:Gg,_emscripten_get_now_is_monotonic:jg,_emscripten_notify_task_queue:qg,_emscripten_set_offscreencanvas_size:Kg,abort:Xg,emscripten_check_blocking_allowed:Yg,emscripten_date_now:Zg,emscripten_get_heap_max:Jg,emscripten_get_now:Jo,emscripten_memcpy_big:Qg,emscripten_num_logical_cores:ey,emscripten_receive_on_main_thread_js:ty,emscripten_resize_heap:ay,emscripten_unwind_to_js_event_loop:ry,exit:Od,fd_close:Vd,fd_seek:Ud,fd_write:Gd,memory:ue||c.wasmMemory},J1=$g(),py=c.___wasm_call_ctors=function(){return(py=c.___wasm_call_ctors=c.asm.__wasm_call_ctors).apply(null,arguments)},cy=c._init=function(){return(cy=c._init=c.asm.init).apply(null,arguments)},dy=c._init_with_threads_count=function(){return(dy=c._init_with_threads_count=c.asm.init_with_threads_count).apply(null,arguments)},hy=c._get_threads_count=function(){return(hy=c._get_threads_count=c.asm.get_threads_count).apply(null,arguments)},my=c._register_tensor=function(){return(my=c._register_tensor=c.asm.register_tensor).apply(null,arguments)},fy=c._dispose_data=function(){return(fy=c._dispose_data=c.asm.dispose_data).apply(null,arguments)},gy=c._dispose=function(){return(gy=c._dispose=c.asm.dispose).apply(null,arguments)},yy=c._Abs=function(){return(yy=c._Abs=c.asm.Abs).apply(null,arguments)},by=c._Add=function(){return(by=c._Add=c.asm.Add).apply(null,arguments)},xy=c._AddN=function(){return(xy=c._AddN=c.asm.AddN).apply(null,arguments)},vy=c._All=function(){return(vy=c._All=c.asm.All).apply(null,arguments)},wy=c._Any=function(){return(wy=c._Any=c.asm.Any).apply(null,arguments)},ky=c._ArgMax=function(){return(ky=c._ArgMax=c.asm.ArgMax).apply(null,arguments)},Iy=c._AvgPool=function(){return(Iy=c._AvgPool=c.asm.AvgPool).apply(null,arguments)},Sy=c._BatchMatMul=function(){return(Sy=c._BatchMatMul=c.asm.BatchMatMul).apply(null,arguments)},Ty=c._Ceil=function(){return(Ty=c._Ceil=c.asm.Ceil).apply(null,arguments)},Ny=c._ClipByValue=function(){return(Ny=c._ClipByValue=c.asm.ClipByValue).apply(null,arguments)},Cy=c._Conv2D=function(){return(Cy=c._Conv2D=c.asm.Conv2D).apply(null,arguments)},_y=c._Conv2DBackpropInput=function(){return(_y=c._Conv2DBackpropInput=c.asm.Conv2DBackpropInput).apply(null,arguments)},Ey=c._Cos=function(){return(Ey=c._Cos=c.asm.Cos).apply(null,arguments)},$y=c._Cosh=function(){return($y=c._Cosh=c.asm.Cosh).apply(null,arguments)},Ay=c._CropAndResize=function(){return(Ay=c._CropAndResize=c.asm.CropAndResize).apply(null,arguments)},Fy=c._Cumprod=function(){return(Fy=c._Cumprod=c.asm.Cumprod).apply(null,arguments)},Dy=c._Cumsum=function(){return(Dy=c._Cumsum=c.asm.Cumsum).apply(null,arguments)},Ry=c._DepthToSpace=function(){return(Ry=c._DepthToSpace=c.asm.DepthToSpace).apply(null,arguments)},My=c._DepthwiseConv2dNative=function(){return(My=c._DepthwiseConv2dNative=c.asm.DepthwiseConv2dNative).apply(null,arguments)},Py=c._Elu=function(){return(Py=c._Elu=c.asm.Elu).apply(null,arguments)},Oy=c._Equal=function(){return(Oy=c._Equal=c.asm.Equal).apply(null,arguments)},Ly=c._Exp=function(){return(Ly=c._Exp=c.asm.Exp).apply(null,arguments)},zy=c._FlipLeftRight=function(){return(zy=c._FlipLeftRight=c.asm.FlipLeftRight).apply(null,arguments)},Wy=c._Floor=function(){return(Wy=c._Floor=c.asm.Floor).apply(null,arguments)},By=c._FloorDiv=function(){return(By=c._FloorDiv=c.asm.FloorDiv).apply(null,arguments)},Vy=c._FusedBatchNorm=function(){return(Vy=c._FusedBatchNorm=c.asm.FusedBatchNorm).apply(null,arguments)},Uy=c._FusedConv2D=function(){return(Uy=c._FusedConv2D=c.asm.FusedConv2D).apply(null,arguments)},Gy=c._FusedDepthwiseConv2D=function(){return(Gy=c._FusedDepthwiseConv2D=c.asm.FusedDepthwiseConv2D).apply(null,arguments)},Hy=c._Gather=function(){return(Hy=c._Gather=c.asm.Gather).apply(null,arguments)},jy=c._GatherNd=function(){return(jy=c._GatherNd=c.asm.GatherNd).apply(null,arguments)},qy=c._Greater=function(){return(qy=c._Greater=c.asm.Greater).apply(null,arguments)},Ky=c._GreaterEqual=function(){return(Ky=c._GreaterEqual=c.asm.GreaterEqual).apply(null,arguments)},Xy=c._LeakyRelu=function(){return(Xy=c._LeakyRelu=c.asm.LeakyRelu).apply(null,arguments)},Yy=c._Less=function(){return(Yy=c._Less=c.asm.Less).apply(null,arguments)},Zy=c._LessEqual=function(){return(Zy=c._LessEqual=c.asm.LessEqual).apply(null,arguments)},Jy=c._Log=function(){return(Jy=c._Log=c.asm.Log).apply(null,arguments)},Qy=c._LogicalAnd=function(){return(Qy=c._LogicalAnd=c.asm.LogicalAnd).apply(null,arguments)},eb=c._LogicalNot=function(){return(eb=c._LogicalNot=c.asm.LogicalNot).apply(null,arguments)},tb=c._LogicalOr=function(){return(tb=c._LogicalOr=c.asm.LogicalOr).apply(null,arguments)},nb=c._LogicalXor=function(){return(nb=c._LogicalXor=c.asm.LogicalXor).apply(null,arguments)},ab=c._Max=function(){return(ab=c._Max=c.asm.Max).apply(null,arguments)},qd=c._MaxPool=function(){return(qd=c._MaxPool=c.asm.MaxPool).apply(null,arguments)},Kd=c._Maximum=function(){return(Kd=c._Maximum=c.asm.Maximum).apply(null,arguments)},Cp=c._Mean=function(){return(Cp=c._Mean=c.asm.Mean).apply(null,arguments)},rb=c._Min=function(){return(rb=c._Min=c.asm.Min).apply(null,arguments)},sb=c._Minimum=function(){return(sb=c._Minimum=c.asm.Minimum).apply(null,arguments)},Qo=c._MirrorPad=function(){return(Qo=c._MirrorPad=c.asm.MirrorPad).apply(null,arguments)},Xd=c._Multiply=function(){return(Xd=c._Multiply=c.asm.Multiply).apply(null,arguments)},el=c._Neg=function(){return(el=c._Neg=c.asm.Neg).apply(null,arguments)},tl=c._NonMaxSuppressionV3=function(){return(tl=c._NonMaxSuppressionV3=c.asm.NonMaxSuppressionV3).apply(null,arguments)},ib=c._NonMaxSuppressionV4=function(){return(ib=c._NonMaxSuppressionV4=c.asm.NonMaxSuppressionV4).apply(null,arguments)},X=c._NonMaxSuppressionV5=function(){return(X=c._NonMaxSuppressionV5=c.asm.NonMaxSuppressionV5).apply(null,arguments)},se=c._NotEqual=function(){return(se=c._NotEqual=c.asm.NotEqual).apply(null,arguments)},we=c._OneHot=function(){return(we=c._OneHot=c.asm.OneHot).apply(null,arguments)},He=c._PadV2=function(){return(He=c._PadV2=c.asm.PadV2).apply(null,arguments)},wt=c._Pow=function(){return(wt=c._Pow=c.asm.Pow).apply(null,arguments)},kt=c._Prelu=function(){return(kt=c._Prelu=c.asm.Prelu).apply(null,arguments)},Ue=c._Prod=function(){return(Ue=c._Prod=c.asm.Prod).apply(null,arguments)},We=c._RealDiv=function(){return(We=c._RealDiv=c.asm.RealDiv).apply(null,arguments)},Pt=c._Relu=function(){return(Pt=c._Relu=c.asm.Relu).apply(null,arguments)},la=c._Relu6=function(){return(la=c._Relu6=c.asm.Relu6).apply(null,arguments)},wr=c._ResizeBilinear=function(){return(wr=c._ResizeBilinear=c.asm.ResizeBilinear).apply(null,arguments)},Yd=c._ResizeNearestNeighbor=function(){return(Yd=c._ResizeNearestNeighbor=c.asm.ResizeNearestNeighbor).apply(null,arguments)},_p=c._Reverse=function(){return(_p=c._Reverse=c.asm.Reverse).apply(null,arguments)},ob=c._RotateWithOffset=function(){return(ob=c._RotateWithOffset=c.asm.RotateWithOffset).apply(null,arguments)},Mn=c._Round=function(){return(Mn=c._Round=c.asm.Round).apply(null,arguments)},Kr=c._Rsqrt=function(){return(Kr=c._Rsqrt=c.asm.Rsqrt).apply(null,arguments)},Zd=c._ScatterNd=function(){return(Zd=c._ScatterNd=c.asm.ScatterNd).apply(null,arguments)},AA=c._SelectV2=function(){return(AA=c._SelectV2=c.asm.SelectV2).apply(null,arguments)},FA=c._Sigmoid=function(){return(FA=c._Sigmoid=c.asm.Sigmoid).apply(null,arguments)},DA=c._Sin=function(){return(DA=c._Sin=c.asm.Sin).apply(null,arguments)},RA=c._Softmax=function(){return(RA=c._Softmax=c.asm.Softmax).apply(null,arguments)},MA=c._SparseFillEmptyRows=function(){return(MA=c._SparseFillEmptyRows=c.asm.SparseFillEmptyRows).apply(null,arguments)},PA=c._SparseReshape=function(){return(PA=c._SparseReshape=c.asm.SparseReshape).apply(null,arguments)},OA=c._SparseSegmentReduction=function(){return(OA=c._SparseSegmentReduction=c.asm.SparseSegmentReduction).apply(null,arguments)},LA=c._Sqrt=function(){return(LA=c._Sqrt=c.asm.Sqrt).apply(null,arguments)},zA=c._Square=function(){return(zA=c._Square=c.asm.Square).apply(null,arguments)},WA=c._SquaredDifference=function(){return(WA=c._SquaredDifference=c.asm.SquaredDifference).apply(null,arguments)},BA=c._Step=function(){return(BA=c._Step=c.asm.Step).apply(null,arguments)},VA=c._StridedSlice=function(){return(VA=c._StridedSlice=c.asm.StridedSlice).apply(null,arguments)},UA=c._Sub=function(){return(UA=c._Sub=c.asm.Sub).apply(null,arguments)},GA=c._Sum=function(){return(GA=c._Sum=c.asm.Sum).apply(null,arguments)},HA=c._Tan=function(){return(HA=c._Tan=c.asm.Tan).apply(null,arguments)},jA=c._Tanh=function(){return(jA=c._Tanh=c.asm.Tanh).apply(null,arguments)},qA=c._Tile=function(){return(qA=c._Tile=c.asm.Tile).apply(null,arguments)},KA=c._TopK=function(){return(KA=c._TopK=c.asm.TopK).apply(null,arguments)},XA=c._Transform=function(){return(XA=c._Transform=c.asm.Transform).apply(null,arguments)},YA=c._Transpose=function(){return(YA=c._Transpose=c.asm.Transpose).apply(null,arguments)},ZA=c.__FusedMatMul=function(){return(ZA=c.__FusedMatMul=c.asm._FusedMatMul).apply(null,arguments)},JA=c._malloc=function(){return(JA=c._malloc=c.asm.malloc).apply(null,arguments)},QA=c._free=function(){return(QA=c._free=c.asm.free).apply(null,arguments)},eF=c.__emscripten_tls_init=function(){return(eF=c.__emscripten_tls_init=c.asm._emscripten_tls_init).apply(null,arguments)},Jd=c._pthread_self=function(){return(Jd=c._pthread_self=c.asm.pthread_self).apply(null,arguments)},tF=c.___errno_location=function(){return(tF=c.___errno_location=c.asm.__errno_location).apply(null,arguments)},Q1=c.__emscripten_thread_init=function(){return(Q1=c.__emscripten_thread_init=c.asm._emscripten_thread_init).apply(null,arguments)},nF=c.__emscripten_thread_crashed=function(){return(nF=c.__emscripten_thread_crashed=c.asm._emscripten_thread_crashed).apply(null,arguments)},aF=c._emscripten_main_thread_process_queued_calls=function(){return(aF=c._emscripten_main_thread_process_queued_calls=c.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},rF=c._emscripten_main_browser_thread_id=function(){return(rF=c._emscripten_main_browser_thread_id=c.asm.emscripten_main_browser_thread_id).apply(null,arguments)},ek=c._emscripten_run_in_main_runtime_thread_js=function(){return(ek=c._emscripten_run_in_main_runtime_thread_js=c.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},sF=c._emscripten_dispatch_to_thread_=function(){return(sF=c._emscripten_dispatch_to_thread_=c.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},tk=c.__emscripten_proxy_execute_task_queue=function(){return(tk=c.__emscripten_proxy_execute_task_queue=c.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},lb=c.__emscripten_thread_free_data=function(){return(lb=c.__emscripten_thread_free_data=c.asm._emscripten_thread_free_data).apply(null,arguments)},nk=c.__emscripten_thread_exit=function(){return(nk=c.__emscripten_thread_exit=c.asm._emscripten_thread_exit).apply(null,arguments)},ak=c._emscripten_stack_set_limits=function(){return(ak=c._emscripten_stack_set_limits=c.asm.emscripten_stack_set_limits).apply(null,arguments)},ub=c.stackSave=function(){return(ub=c.stackSave=c.asm.stackSave).apply(null,arguments)},Qd=c.stackRestore=function(){return(Qd=c.stackRestore=c.asm.stackRestore).apply(null,arguments)},eh=c.stackAlloc=function(){return(eh=c.stackAlloc=c.asm.stackAlloc).apply(null,arguments)},iF=c.dynCall_iijjiiii=function(){return(iF=c.dynCall_iijjiiii=c.asm.dynCall_iijjiiii).apply(null,arguments)},oF=c.dynCall_jiji=function(){return(oF=c.dynCall_jiji=c.asm.dynCall_jiji).apply(null,arguments)};c.keepRuntimeAlive=Ia,c.wasmMemory=ue,c.cwrap=ly,c.ExitStatus=Ms,c.PThread=Ae;var th;vr=function D(){th||rk(),th||(vr=D)};function rk(D){if(D=D||y,jr>0)return;if(C){h(c),Xt(),postMessage({cmd:"loaded"});return}if(Ko(),jr>0)return;function j(){th||(th=!0,c.calledRun=!0,!ke&&(Xt(),h(c),c.onRuntimeInitialized&&c.onRuntimeInitialized(),Fd()))}c.setStatus?(c.setStatus("Running..."),setTimeout(function(){setTimeout(function(){c.setStatus("")},1),j()},1)):j()}if(c.preInit)for(typeof c.preInit=="function"&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.pop()();rk();var nh;f&&(nh={uncaughtException:process.listeners("uncaughtException").filter(function(D){return!f.uncaughtException.indexOf(D)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(D){return!f.unhandledRejection.indexOf(D)>-1})});var ah;if(typeof WasmBackendModule!="undefined")ah=WasmBackendModule;else if(typeof r!="undefined")ah=r;else throw new Error("Could not find wasm module in post.js");if(nh){var lF=ah._dispose;ah._dispose=function(){lF(),nh.uncaughtException.forEach(function(D){process.removeListener("uncaughtException",D)}),nh.unhandledRejection.forEach(function(D){process.removeListener("unhandledRejection",D)})}}return r.ready}})();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModuleThreadedSimd=n)}),PF=Bt((e,t)=>{t.exports.wasmWorkerContents=`"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",data=>onmessage({data:data}));var fs=require("fs");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,"utf8"))},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+" +");return}console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob=="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance})}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.pthread_ptr,0,0,1);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module["executeNotifiedProxyingQueue"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["__emscripten_thread_exit"](ex.status)}}else{throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processProxyingQueue"){if(initializedJS){Module["executeNotifiedProxyingQueue"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}};`}),OF=Bt((e,t)=>{var n=(()=>{var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};var s=typeof r!="undefined"?r:{},i,o;s.ready=new Promise(function(X,se){i=X,o=se});var l;typeof process!="undefined"&&process.listeners&&(l={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var u=Object.assign({},s),p=[],d="./this.program",c=(X,se)=>{throw se},h=typeof window=="object",m=typeof importScripts=="function",f=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g="";function y(X){return s.locateFile?s.locateFile(X,g):g+X}var b,x,w,I;function T(X){X instanceof Xo||R("exiting due to exception: "+X)}if(f){m?g=Ch().dirname(g)+"/":g=__dirname+"/";var C,E;typeof BI=="function"&&(C=Cx(),E=Ch()),b=(X,se)=>(X=E.normalize(X),C.readFileSync(X,se?void 0:"utf8")),w=X=>{var se=b(X,!0);return se.buffer||(se=new Uint8Array(se)),se},x=(X,se,we)=>{X=E.normalize(X),C.readFile(X,function(He,wt){He?we(He):se(wt.buffer)})},process.argv.length>1&&(d=process.argv[1].replace(/\\/g,"/")),p=process.argv.slice(2),process.on("uncaughtException",function(X){if(!(X instanceof Xo))throw X}),process.on("unhandledRejection",function(X){throw X}),c=(X,se)=>{if(jn())throw process.exitCode=X,se;T(se),process.exit(X)},s.inspect=function(){return"[Emscripten Module object]"}}else(h||m)&&(m?g=self.location.href:typeof document!="undefined"&&document.currentScript&&(g=document.currentScript.src),a&&(g=a),g.indexOf("blob:")!==0?g=g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1):g="",b=X=>{var se=new XMLHttpRequest;return se.open("GET",X,!1),se.send(null),se.responseText},m&&(w=X=>{var se=new XMLHttpRequest;return se.open("GET",X,!1),se.responseType="arraybuffer",se.send(null),new Uint8Array(se.response)}),x=(X,se,we)=>{var He=new XMLHttpRequest;He.open("GET",X,!0),He.responseType="arraybuffer",He.onload=()=>{if(He.status==200||He.status==0&&He.response){se(He.response);return}we()},He.onerror=we,He.send(null)},I=X=>document.title=X);var $=s.print||console.log.bind(console),R=s.printErr||console.warn.bind(console);Object.assign(s,u),u=null,s.arguments&&(p=s.arguments),s.thisProgram&&(d=s.thisProgram),s.quit&&(c=s.quit);var F=4,S;s.wasmBinary&&(S=s.wasmBinary);var M=s.noExitRuntime||!0;typeof WebAssembly!="object"&&er("no native wasm support detected");var B,U=!1,G;function q(X,se){X||er(se)}var K=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Z(X,se,we){for(var He=se+we,wt=se;X[wt]&&!(wt>=He);)++wt;if(wt-se>16&&X.buffer&&K)return K.decode(X.subarray(se,wt));for(var kt="";se>10,56320|la&1023)}}return kt}function J(X,se){return X?Z(oe,X,se):""}function ee(X,se,we,He){if(!(He>0))return 0;for(var wt=we,kt=we+He-1,Ue=0;Ue=55296&&We<=57343){var Pt=X.charCodeAt(++Ue);We=65536+((We&1023)<<10)|Pt&1023}if(We<=127){if(we>=kt)break;se[we++]=We}else if(We<=2047){if(we+1>=kt)break;se[we++]=192|We>>6,se[we++]=128|We&63}else if(We<=65535){if(we+2>=kt)break;se[we++]=224|We>>12,se[we++]=128|We>>6&63,se[we++]=128|We&63}else{if(we+3>=kt)break;se[we++]=240|We>>18,se[we++]=128|We>>12&63,se[we++]=128|We>>6&63,se[we++]=128|We&63}}return se[we]=0,we-wt}function ae(X,se,we){return ee(X,oe,se,we)}var te,ie,oe,ye,ue,be,ke,Se,Le;function Ve(X){te=X,s.HEAP8=ie=new Int8Array(X),s.HEAP16=ye=new Int16Array(X),s.HEAP32=be=new Int32Array(X),s.HEAPU8=oe=new Uint8Array(X),s.HEAPU16=ue=new Uint16Array(X),s.HEAPU32=ke=new Uint32Array(X),s.HEAPF32=Se=new Float32Array(X),s.HEAPF64=Le=new Float64Array(X)}var nt=s.INITIAL_MEMORY||16777216,it,et=[],at=[],ze=[],dt=!1;function jn(){return M}function Mt(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)Fn(s.preRun.shift());vr(et)}function ia(){dt=!0,vr(at)}function on(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)Dn(s.postRun.shift());vr(ze)}function Fn(X){et.unshift(X)}function oa(X){at.unshift(X)}function Dn(X){ze.unshift(X)}var ot=0,Rn=null,qn=null;function xr(X){ot++,s.monitorRunDependencies&&s.monitorRunDependencies(ot)}function qo(X){if(ot--,s.monitorRunDependencies&&s.monitorRunDependencies(ot),ot==0&&(Rn!==null&&(clearInterval(Rn),Rn=null),qn)){var se=qn;qn=null,se()}}function er(X){s.onAbort&&s.onAbort(X),X="Aborted("+X+")",R(X),U=!0,G=1,X+=". Build with -sASSERTIONS for more info.";var se=new WebAssembly.RuntimeError(X);throw o(se),se}var vp="data:application/octet-stream;base64,";function Ia(X){return X.startsWith(vp)}function Ko(X){return X.startsWith("file://")}var Xt;Xt="tfjs-backend-wasm.wasm",Ia(Xt)||(Xt=y(Xt));function Fd(X){try{if(X==Xt&&S)return new Uint8Array(S);if(w)return w(X);throw"both async and sync fetching of the wasm failed"}catch(se){er(se)}}function Ng(){if(!S&&(h||m)){if(typeof fetch=="function"&&!Ko(Xt))return fetch(Xt,{credentials:"same-origin"}).then(function(X){if(!X.ok)throw"failed to load wasm binary file at '"+Xt+"'";return X.arrayBuffer()}).catch(function(){return Fd(Xt)});if(x)return new Promise(function(X,se){x(Xt,function(we){X(new Uint8Array(we))},se)})}return Promise.resolve().then(function(){return Fd(Xt)})}function Cg(){var X={env:Ip,wasi_snapshot_preview1:Ip};function se(Ue,We){var Pt=Ue.exports;s.asm=Pt,B=s.asm.memory,Ve(B.buffer),it=s.asm.__indirect_function_table,oa(s.asm.__wasm_call_ctors),qo("wasm-instantiate")}xr("wasm-instantiate");function we(Ue){se(Ue.instance)}function He(Ue){return Ng().then(function(We){return WebAssembly.instantiate(We,X)}).then(function(We){return We}).then(Ue,function(We){R("failed to asynchronously prepare wasm: "+We),er(We)})}function wt(){return!S&&typeof WebAssembly.instantiateStreaming=="function"&&!Ia(Xt)&&!Ko(Xt)&&!f&&typeof fetch=="function"?fetch(Xt,{credentials:"same-origin"}).then(function(Ue){var We=WebAssembly.instantiateStreaming(Ue,X);return We.then(we,function(Pt){return R("wasm streaming compile failed: "+Pt),R("falling back to ArrayBuffer instantiation"),He(we)})}):He(we)}if(s.instantiateWasm)try{var kt=s.instantiateWasm(X,se);return kt}catch(Ue){R("Module.instantiateWasm callback failed with error: "+Ue),o(Ue)}return wt().catch(o),{}}var G1,jr;function Xo(X){this.name="ExitStatus",this.message="Program terminated with exit("+X+")",this.status=X}function vr(X){for(;X.length>0;)X.shift()(s)}function H1(X){return X}function j1(X){var se=/\b_Z[\w\d_]+/g;return X.replace(se,function(we){var He=we;return we===He?we:He+" ["+we+"]"})}function Yo(){var X=new Error;if(!X.stack){try{throw new Error}catch(se){X=se}if(!X.stack)return"(no stack trace available)"}return X.stack.toString()}function _g(X,se){ie.set(X,se)}function Dd(){er("")}function wp(){return 2147483648}function bn(){return wp()}function Rd(X,se,we){oe.copyWithin(X,se,se+we)}function Eg(X){try{return B.grow(X-te.byteLength+65535>>>16),Ve(B.buffer),1}catch(se){}}function $g(X){var se=oe.length;X=X>>>0;var we=wp();if(X>we)return!1;let He=(Pt,la)=>Pt+(la-Pt%la)%la;for(var wt=1;wt<=4;wt*=2){var kt=se*(1+.2/wt);kt=Math.min(kt,X+100663296);var Ue=Math.min(we,He(Math.max(X,kt),65536)),We=Eg(Ue);if(We)return!0}return!1}var Ag={varargs:void 0,get:function(){Ag.varargs+=4;var X=be[Ag.varargs-4>>2];return X},getStr:function(X){var se=J(X);return se}};function q1(X){return 52}function Fg(X,se,we,He,wt){return 70}var Ms=[null,[],[]];function Dg(X,se){var we=Ms[X];se===0||se===10?((X===1?$:R)(Z(we,0)),we.length=0):we.push(se)}function Rg(X,se,we,He){for(var wt=0,kt=0;kt>2],We=ke[se+4>>2];se+=8;for(var Pt=0;Pt>2]=wt,0}function kp(X){var se=s["_"+X];return se}function Md(X,se,we,He,wt){var kt={string:Mn=>{var Kr=0;if(Mn!=null&&Mn!==0){var Zd=(Mn.length<<2)+1;Kr=Cp(Zd),ae(Mn,Kr,Zd)}return Kr},array:Mn=>{var Kr=Cp(Mn.length);return _g(Mn,Kr),Kr}};function Ue(Mn){return se==="string"?J(Mn):se==="boolean"?Boolean(Mn):Mn}var We=kp(X),Pt=[],la=0;if(He)for(var wr=0;wrUe==="number"||Ue==="boolean"),kt=se!=="string";return kt&&wt&&!He?kp(X):function(){return Md(X,se,we,arguments,He)}}var Ip={abort:Dd,emscripten_get_heap_max:bn,emscripten_memcpy_big:Rd,emscripten_resize_heap:$g,fd_close:q1,fd_seek:Fg,fd_write:Rg},K1=Cg(),Od=s.___wasm_call_ctors=function(){return(Od=s.___wasm_call_ctors=s.asm.__wasm_call_ctors).apply(null,arguments)},Mg=s._init=function(){return(Mg=s._init=s.asm.init).apply(null,arguments)},Ae=s._init_with_threads_count=function(){return(Ae=s._init_with_threads_count=s.asm.init_with_threads_count).apply(null,arguments)},Sp=s._get_threads_count=function(){return(Sp=s._get_threads_count=s.asm.get_threads_count).apply(null,arguments)},Pg=s._register_tensor=function(){return(Pg=s._register_tensor=s.asm.register_tensor).apply(null,arguments)},X1=s._dispose_data=function(){return(X1=s._dispose_data=s.asm.dispose_data).apply(null,arguments)},Y1=s._dispose=function(){return(Y1=s._dispose=s.asm.dispose).apply(null,arguments)},Og=s._Abs=function(){return(Og=s._Abs=s.asm.Abs).apply(null,arguments)},Ld=s._Add=function(){return(Ld=s._Add=s.asm.Add).apply(null,arguments)},Zo=s._AddN=function(){return(Zo=s._AddN=s.asm.AddN).apply(null,arguments)},Lg=s._All=function(){return(Lg=s._All=s.asm.All).apply(null,arguments)},zg=s._Any=function(){return(zg=s._Any=s.asm.Any).apply(null,arguments)},Z1=s._ArgMax=function(){return(Z1=s._ArgMax=s.asm.ArgMax).apply(null,arguments)},Wg=s._AvgPool=function(){return(Wg=s._AvgPool=s.asm.AvgPool).apply(null,arguments)},Bg=s._BatchMatMul=function(){return(Bg=s._BatchMatMul=s.asm.BatchMatMul).apply(null,arguments)},Vg=s._Ceil=function(){return(Vg=s._Ceil=s.asm.Ceil).apply(null,arguments)},Ug=s._ClipByValue=function(){return(Ug=s._ClipByValue=s.asm.ClipByValue).apply(null,arguments)},zd=s._Conv2D=function(){return(zd=s._Conv2D=s.asm.Conv2D).apply(null,arguments)},Wd=s._Conv2DBackpropInput=function(){return(Wd=s._Conv2DBackpropInput=s.asm.Conv2DBackpropInput).apply(null,arguments)},Gg=s._Cos=function(){return(Gg=s._Cos=s.asm.Cos).apply(null,arguments)},Hg=s._Cosh=function(){return(Hg=s._Cosh=s.asm.Cosh).apply(null,arguments)},jg=s._CropAndResize=function(){return(jg=s._CropAndResize=s.asm.CropAndResize).apply(null,arguments)},Tp=s._Cumprod=function(){return(Tp=s._Cumprod=s.asm.Cumprod).apply(null,arguments)},qg=s._Cumsum=function(){return(qg=s._Cumsum=s.asm.Cumsum).apply(null,arguments)},Kg=s._DepthToSpace=function(){return(Kg=s._DepthToSpace=s.asm.DepthToSpace).apply(null,arguments)},Xg=s._DepthwiseConv2dNative=function(){return(Xg=s._DepthwiseConv2dNative=s.asm.DepthwiseConv2dNative).apply(null,arguments)},Ps=s._Elu=function(){return(Ps=s._Elu=s.asm.Elu).apply(null,arguments)},Yg=s._Equal=function(){return(Yg=s._Equal=s.asm.Equal).apply(null,arguments)},Zg=s._Exp=function(){return(Zg=s._Exp=s.asm.Exp).apply(null,arguments)},Bd=s._FlipLeftRight=function(){return(Bd=s._FlipLeftRight=s.asm.FlipLeftRight).apply(null,arguments)},Jg=s._Floor=function(){return(Jg=s._Floor=s.asm.Floor).apply(null,arguments)},Jo=s._FloorDiv=function(){return(Jo=s._FloorDiv=s.asm.FloorDiv).apply(null,arguments)},Qg=s._FusedBatchNorm=function(){return(Qg=s._FusedBatchNorm=s.asm.FusedBatchNorm).apply(null,arguments)},ey=s._FusedConv2D=function(){return(ey=s._FusedConv2D=s.asm.FusedConv2D).apply(null,arguments)},qr=s._FusedDepthwiseConv2D=function(){return(qr=s._FusedDepthwiseConv2D=s.asm.FusedDepthwiseConv2D).apply(null,arguments)},Np=s._Gather=function(){return(Np=s._Gather=s.asm.Gather).apply(null,arguments)},ty=s._GatherNd=function(){return(ty=s._GatherNd=s.asm.GatherNd).apply(null,arguments)},ny=s._Greater=function(){return(ny=s._Greater=s.asm.Greater).apply(null,arguments)},ay=s._GreaterEqual=function(){return(ay=s._GreaterEqual=s.asm.GreaterEqual).apply(null,arguments)},ry=s._LeakyRelu=function(){return(ry=s._LeakyRelu=s.asm.LeakyRelu).apply(null,arguments)},Vd=s._Less=function(){return(Vd=s._Less=s.asm.Less).apply(null,arguments)},Ud=s._LessEqual=function(){return(Ud=s._LessEqual=s.asm.LessEqual).apply(null,arguments)},sy=s._Log=function(){return(sy=s._Log=s.asm.Log).apply(null,arguments)},iy=s._LogicalAnd=function(){return(iy=s._LogicalAnd=s.asm.LogicalAnd).apply(null,arguments)},Gd=s._LogicalNot=function(){return(Gd=s._LogicalNot=s.asm.LogicalNot).apply(null,arguments)},Hd=s._LogicalOr=function(){return(Hd=s._LogicalOr=s.asm.LogicalOr).apply(null,arguments)},oy=s._LogicalXor=function(){return(oy=s._LogicalXor=s.asm.LogicalXor).apply(null,arguments)},ly=s._Max=function(){return(ly=s._Max=s.asm.Max).apply(null,arguments)},uy=s._MaxPool=function(){return(uy=s._MaxPool=s.asm.MaxPool).apply(null,arguments)},jd=s._Maximum=function(){return(jd=s._Maximum=s.asm.Maximum).apply(null,arguments)},J1=s._Mean=function(){return(J1=s._Mean=s.asm.Mean).apply(null,arguments)},py=s._Min=function(){return(py=s._Min=s.asm.Min).apply(null,arguments)},cy=s._Minimum=function(){return(cy=s._Minimum=s.asm.Minimum).apply(null,arguments)},dy=s._MirrorPad=function(){return(dy=s._MirrorPad=s.asm.MirrorPad).apply(null,arguments)},hy=s._Multiply=function(){return(hy=s._Multiply=s.asm.Multiply).apply(null,arguments)},my=s._Neg=function(){return(my=s._Neg=s.asm.Neg).apply(null,arguments)},fy=s._NonMaxSuppressionV3=function(){return(fy=s._NonMaxSuppressionV3=s.asm.NonMaxSuppressionV3).apply(null,arguments)},gy=s._NonMaxSuppressionV4=function(){return(gy=s._NonMaxSuppressionV4=s.asm.NonMaxSuppressionV4).apply(null,arguments)},yy=s._NonMaxSuppressionV5=function(){return(yy=s._NonMaxSuppressionV5=s.asm.NonMaxSuppressionV5).apply(null,arguments)},by=s._NotEqual=function(){return(by=s._NotEqual=s.asm.NotEqual).apply(null,arguments)},xy=s._OneHot=function(){return(xy=s._OneHot=s.asm.OneHot).apply(null,arguments)},vy=s._PadV2=function(){return(vy=s._PadV2=s.asm.PadV2).apply(null,arguments)},wy=s._Pow=function(){return(wy=s._Pow=s.asm.Pow).apply(null,arguments)},ky=s._Prelu=function(){return(ky=s._Prelu=s.asm.Prelu).apply(null,arguments)},Iy=s._Prod=function(){return(Iy=s._Prod=s.asm.Prod).apply(null,arguments)},Sy=s._RealDiv=function(){return(Sy=s._RealDiv=s.asm.RealDiv).apply(null,arguments)},Ty=s._Relu=function(){return(Ty=s._Relu=s.asm.Relu).apply(null,arguments)},Ny=s._Relu6=function(){return(Ny=s._Relu6=s.asm.Relu6).apply(null,arguments)},Cy=s._ResizeBilinear=function(){return(Cy=s._ResizeBilinear=s.asm.ResizeBilinear).apply(null,arguments)},_y=s._ResizeNearestNeighbor=function(){return(_y=s._ResizeNearestNeighbor=s.asm.ResizeNearestNeighbor).apply(null,arguments)},Ey=s._Reverse=function(){return(Ey=s._Reverse=s.asm.Reverse).apply(null,arguments)},$y=s._RotateWithOffset=function(){return($y=s._RotateWithOffset=s.asm.RotateWithOffset).apply(null,arguments)},Ay=s._Round=function(){return(Ay=s._Round=s.asm.Round).apply(null,arguments)},Fy=s._Rsqrt=function(){return(Fy=s._Rsqrt=s.asm.Rsqrt).apply(null,arguments)},Dy=s._ScatterNd=function(){return(Dy=s._ScatterNd=s.asm.ScatterNd).apply(null,arguments)},Ry=s._SelectV2=function(){return(Ry=s._SelectV2=s.asm.SelectV2).apply(null,arguments)},My=s._Sigmoid=function(){return(My=s._Sigmoid=s.asm.Sigmoid).apply(null,arguments)},Py=s._Sin=function(){return(Py=s._Sin=s.asm.Sin).apply(null,arguments)},Oy=s._Softmax=function(){return(Oy=s._Softmax=s.asm.Softmax).apply(null,arguments)},Ly=s._SparseFillEmptyRows=function(){return(Ly=s._SparseFillEmptyRows=s.asm.SparseFillEmptyRows).apply(null,arguments)},zy=s._SparseReshape=function(){return(zy=s._SparseReshape=s.asm.SparseReshape).apply(null,arguments)},Wy=s._SparseSegmentReduction=function(){return(Wy=s._SparseSegmentReduction=s.asm.SparseSegmentReduction).apply(null,arguments)},By=s._Sqrt=function(){return(By=s._Sqrt=s.asm.Sqrt).apply(null,arguments)},Vy=s._Square=function(){return(Vy=s._Square=s.asm.Square).apply(null,arguments)},Uy=s._SquaredDifference=function(){return(Uy=s._SquaredDifference=s.asm.SquaredDifference).apply(null,arguments)},Gy=s._Step=function(){return(Gy=s._Step=s.asm.Step).apply(null,arguments)},Hy=s._StridedSlice=function(){return(Hy=s._StridedSlice=s.asm.StridedSlice).apply(null,arguments)},jy=s._Sub=function(){return(jy=s._Sub=s.asm.Sub).apply(null,arguments)},qy=s._Sum=function(){return(qy=s._Sum=s.asm.Sum).apply(null,arguments)},Ky=s._Tan=function(){return(Ky=s._Tan=s.asm.Tan).apply(null,arguments)},Xy=s._Tanh=function(){return(Xy=s._Tanh=s.asm.Tanh).apply(null,arguments)},Yy=s._Tile=function(){return(Yy=s._Tile=s.asm.Tile).apply(null,arguments)},Zy=s._TopK=function(){return(Zy=s._TopK=s.asm.TopK).apply(null,arguments)},Jy=s._Transform=function(){return(Jy=s._Transform=s.asm.Transform).apply(null,arguments)},Qy=s._Transpose=function(){return(Qy=s._Transpose=s.asm.Transpose).apply(null,arguments)},eb=s.__FusedMatMul=function(){return(eb=s.__FusedMatMul=s.asm._FusedMatMul).apply(null,arguments)},tb=s._malloc=function(){return(tb=s._malloc=s.asm.malloc).apply(null,arguments)},nb=s._free=function(){return(nb=s._free=s.asm.free).apply(null,arguments)},ab=s.___errno_location=function(){return(ab=s.___errno_location=s.asm.__errno_location).apply(null,arguments)},qd=s.stackSave=function(){return(qd=s.stackSave=s.asm.stackSave).apply(null,arguments)},Kd=s.stackRestore=function(){return(Kd=s.stackRestore=s.asm.stackRestore).apply(null,arguments)},Cp=s.stackAlloc=function(){return(Cp=s.stackAlloc=s.asm.stackAlloc).apply(null,arguments)},rb=s.dynCall_iijjiiii=function(){return(rb=s.dynCall_iijjiiii=s.asm.dynCall_iijjiiii).apply(null,arguments)},sb=s.dynCall_jiji=function(){return(sb=s.dynCall_jiji=s.asm.dynCall_jiji).apply(null,arguments)};s.cwrap=Pd;var Qo;qn=function X(){Qo||Xd(),Qo||(qn=X)};function Xd(X){if(X=X||p,ot>0||(Mt(),ot>0))return;function se(){Qo||(Qo=!0,s.calledRun=!0,!U&&(ia(),i(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),on()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),se()},1)):se()}if(s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();Xd();var el;l&&(el={uncaughtException:process.listeners("uncaughtException").filter(function(X){return!l.uncaughtException.indexOf(X)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(X){return!l.unhandledRejection.indexOf(X)>-1})});var tl;if(typeof r!="undefined")tl=r;else if(typeof WasmBackendModuleThreadedSimd!="undefined")tl=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(el){var ib=tl._dispose;tl._dispose=function(){ib(),el.uncaughtException.forEach(function(X){process.removeListener("uncaughtException",X)}),el.unhandledRejection.forEach(function(X){process.removeListener("unhandledRejection",X)})}}return r.ready}})();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModule=n)}),om=class{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}},pc=class{refCount(e){return Kn("refCount")}incRef(e){return Kn("incRef")}timerAvailable(){return!0}time(e){return Kn("time")}read(e){return Kn("read")}readSync(e){return Kn("readSync")}readToGPU(e,t){return Kn("readToGPU")}numDataIds(){return Kn("numDataIds")}disposeData(e,t){return Kn("disposeData")}write(e,t,n){return Kn("write")}move(e,t,n,a,r){return Kn("move")}createTensorFromTexture(e,t,n){return Kn("createTensorFromTexture")}memory(){return Kn("memory")}floatPrecision(){return Kn("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return Kn("dispose")}};function Kn(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 UI(e){let t=e.length,n=0;for(;t>0;)n=Math.random()*t|0,t--,_h(e,t,n)}function LF(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=e.length,a=0;for(;n>0;)a=Math.random()*n|0,n--,_h(e,n,a),_h(t,n,a)}function Kp(e,t,n){return Math.max(e,Math.min(t,n))}function zF(e){return e%2===0?e:e+1}function _h(e,t,n){let a=e[t];e[t]=e[n],e[n]=a}function WF(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function mi(e){A(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function Js(e,t=[],n=!1){if(t==null&&(t=[]),Array.isArray(e)||hn(e)&&!n)for(let a=0;a0,n,a){return new Promise((r,s)=>{let i=0,o=()=>{if(e()){r();return}i++;let l=t(i);if(n!=null&&i>=n){s();return}a!=null?a(o,l):setTimeout(o,l)};o()})}function KF(e,t){let n=1,a=-1;for(let s=0;s=0)n*=e[s];else if(e[s]===-1){if(a!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${a} and dim ${s}`);a=s}else if(e[s]<0)throw Error(`Shapes can not be < 0. Found ${e[s]} at dim ${s}`);if(a===-1){if(t>0&&t!==n)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(n===0)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}`);let r=e.slice();return r[a]=t/n,r}function Fa(e,t){let n=t.length;return e=e==null?t.map((a,r)=>r):[].concat(e),A(e.every(a=>a>=-n&&a`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),A(e.every(a=>hl(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function GI(e,t){let n=[],a=[],r=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||r?null:Fa(t,e).sort(),i=0;for(let o=0;oo)&&e[o]===1&&(n.push(e[o]),a.push(o)),s[i]<=o&&i++}e[o]!==1&&(n.push(e[o]),a.push(o))}return{newShape:n,keptDims:a}}function HI(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else throw new Error(`Unknown data type ${e}`);return n}function jI(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else if(e==="string")n=new Array(t);else throw new Error(`Unknown data type ${e}`);return n}function qI(e,t){for(let n=0;nt+=n.length),t}function Qr(e){return typeof e=="string"||e instanceof String}function YI(e){return typeof e=="boolean"}function ZI(e){return typeof e=="number"}function lm(e){return Array.isArray(e)?lm(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":ZI(e)?"float32":Qr(e)?"string":YI(e)?"bool":"float32"}function ss(e){return!!(e&&e.constructor&&e.call&&e.apply)}function Eh(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function JI(e,t,n,a=!1){let r=new Array;if(t.length===1){let s=t[0]*(a?2:1);for(let i=0;il*u)*(a?2:1);for(let l=0;lr*s)*(n?2:1);if(a===0)return[];if(a!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}${n?" for a complex tensor":""}.`);return JI(0,e,t,n)}function _x(e,t){let n=um(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return ul(e,new Float32Array(n));if(t==="int32")return ul(e,new Int32Array(n));if(t==="bool")return ul(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function Ex(e){e.forEach(t=>{A(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function ZF(e,t,n){if(t===0)return 0;if(t===1)return e[0];let a=e[e.length-1];for(let r=0;r{let[n,a]=t.split(":");this.urlFlags[n]=tD(n,a)})}};function QF(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(eD(t,a[0],a[1]),a.join("="))),t}function eD(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function tD(e,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}function H(){return Ax}var Ax=null;function nD(e){Ax=e}var db;function eS(){if(db==null){let e;if(typeof window!="undefined")e=window;else if(typeof global!="undefined")e=global;else if(typeof process!="undefined")e=process;else if(typeof self!="undefined")e=self;else throw new Error("Could not find a global object");db=e}return db}function aD(){let e=eS();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function Fx(e,t){let n=aD();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var Dl="Abs",Rl="Acos",Ml="Acosh",gs="Add",fi="AddN",Pl="All",Ol="Any",gi="ArgMax",cc="ArgMin",Ll="Asin",zl="Asinh",Wl="Atan",Bl="Atanh",Vl="Atan2",yi="AvgPool",pm="AvgPoolGrad",dc="AvgPool3D",cm="AvgPool3DGrad",bi="BatchMatMul",Ul="BatchToSpaceND",dm="Bincount",tS="BroadcastTo",hm="BroadcastArgs",xi="Cast",vi="Ceil",ys="ClipByValue",mm="Complex",hc="ComplexAbs",Gl="Concat",wi="Conv2D",fm="Conv2DBackpropFilter",ki="Conv2DBackpropInput",mc="Conv3D",gm="Conv3DBackpropFilterV2",ym="Conv3DBackpropInputV2",Ii="Cos",Si="Cosh",Hl="Cumprod",Ti="Cumsum",jl="CropAndResize",bm="DenseBincount",ql="DepthToSpace",Ni="DepthwiseConv2dNative",xm="DepthwiseConv2dNativeBackpropFilter",vm="DepthwiseConv2dNativeBackpropInput",wm="Diag",fc="Dilation2D",$h="Dilation2DBackpropInput",Ah="Dilation2DBackpropFilter",Ci="RealDiv",km="Einsum",_i="Elu",Im="EluGrad",Kl="Erf",Xl="Equal",Ei="Exp",Yl="ExpandDims",Zl="Expm1",Sm="FFT",gc="Fill",Jl="FlipLeftRight",$i="Floor",Ai="FloorDiv",Fi="FusedBatchNorm",Ql="GatherV2",eu="GatherNd",tu="Greater",Di="GreaterEqual",Ri="Identity",Tm="IFFT",Nm="Imag",nu="IsFinite",au="IsInf",ru="IsNan",Mi="LeakyRelu",su="Less",iu="LessEqual",Cm="LinSpace",Pi="Log",ou="Log1p",lu="LogicalAnd",uu="LogicalNot",pu="LogicalOr",nS="LogicalXor",aS="LogSoftmax",rD="LowerBound",yc="LRN",_m="LRNGrad",Oi="Max",Li="Maximum",zi="MaxPool",Em="MaxPoolGrad",bc="MaxPool3D",$m="MaxPool3DGrad",Am="MaxPoolWithArgmax",Wi="Mean",Bi="Min",Vi="Minimum",Ui="MirrorPad",cu="Mod",Fm="Multinomial",Gi="Multiply",du="Neg",hu="NotEqual",mu="NonMaxSuppressionV3",fu="NonMaxSuppressionV4",gu="NonMaxSuppressionV5",yu="OnesLike",Hi="OneHot",bu="Pack",ji="PadV2",sD="Pool",qi="Pow",Ki="Prelu",Xi="Prod",Dm="RaggedGather",Rm="RaggedRange",Mm="RaggedTensorToTensor",xc="Range",Pm="Real",xu="Reciprocal",Yi="Relu",vu="Reshape",Zi="ResizeNearestNeighbor",Om="ResizeNearestNeighborGrad",Ji="ResizeBilinear",Lm="ResizeBilinearGrad",Qi="Relu6",eo="Reverse",to="Round",no="Rsqrt",wu="ScatterNd",zm="SearchSorted",ku="Select",Iu="Selu",Su="Slice",ao="Sin",Tu="Sinh",Nu="Sign",ro="Sigmoid",Cu="Softplus",so="Sqrt",io="Sum",_u="SpaceToBatchND",Eu="SplitV",oo="Softmax",vc="SparseFillEmptyRows",$u="SparseReshape",wc="SparseSegmentMean",kc="SparseSegmentSum",Wm="SparseToDense",lo="SquaredDifference",Ic="Square",Au="StridedSlice",Sc="StringNGrams",Tc="StringSplit",Nc="StringToHashBucketFast",uo="Sub",po="Tan",co="Tanh",bs="Tile",Fu="TopK",Du="Transform",_r="Transpose",Bm="Unique",Ru="Unpack",Cc="UnsortedSegmentSum",iD="UpperBound",Mu="ZerosLike",xs="Step",Fh="FromPixels",Pu="RotateWithOffset",Qs="_FusedMatMul",ei="FusedConv2D",ti="FusedDepthwiseConv2D";function Jr(...e){H().getBool("IS_TEST")||H().getBool("PROD")||console.warn(...e)}function oD(...e){H().getBool("IS_TEST")||H().getBool("PROD")||console.log(...e)}var ml=Fx("kernelRegistry",()=>new Map),Xp=Fx("gradRegistry",()=>new Map);function Dh(e,t){let n=Dx(e,t);return ml.get(n)}function Cb(e){return Xp.get(e)}function Rh(e){let t=ml.entries(),n=[];for(;;){let{done:a,value:r}=t.next();if(a)break;let[s,i]=r,[o]=s.split("_");o===e&&n.push(i)}return n}function _c(e){let{kernelName:t,backendName:n}=e,a=Dx(t,n);ml.has(a)&&Jr(`The kernel '${t}' for backend '${n}' is already registered`),ml.set(a,e)}function rS(e){let{kernelName:t}=e;Xp.has(t)&&H().getBool("DEBUG")&&Jr(`Overriding the gradient for '${t}'`),Xp.set(t,e)}function lD(e,t){let n=Dx(e,t);if(!ml.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);ml.delete(n)}function uD(e){if(!Xp.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);Xp.delete(e)}function pD(e,t){Rh(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});_c(a)})}function Dx(e,t){return`${t}_${e}`}var v={};$e(v,{arraysEqual:()=>fs,assert:()=>A,assertNonNegativeIntegerDimensions:()=>Ex,assertNonNull:()=>mi,assertShapesMatch:()=>Tn,bytesFromStringArray:()=>XI,bytesPerElement:()=>Nb,checkConversionForErrors:()=>qI,clamp:()=>Kp,computeStrides:()=>Fl,createScalarValue:()=>gD,createShuffledIndices:()=>jF,decodeString:()=>Mh,distSquared:()=>VF,encodeString:()=>$c,fetch:()=>bD,fingerPrint64:()=>fD,flatten:()=>Js,getArrayFromDType:()=>jI,getTypedArrayFromDType:()=>HI,hasEncodingLoss:()=>XF,hexToLong:()=>Ec,indexToLoc:()=>JF,inferDtype:()=>lm,inferFromImplicitShape:()=>KF,isBoolean:()=>YI,isFunction:()=>ss,isInt:()=>hl,isNumber:()=>ZI,isPromise:()=>$x,isScalarShape:()=>UF,isString:()=>Qr,isTypedArray:()=>hn,isValidDtype:()=>KI,locToIndex:()=>ZF,makeOnesTypedArray:()=>_x,makeZerosNestedTypedArray:()=>YF,makeZerosTypedArray:()=>um,nearestDivisor:()=>Eh,nearestLargerEven:()=>zF,now:()=>Yp,parseAxisParam:()=>Fa,randUniform:()=>BF,repeatedTry:()=>qF,rightPad:()=>Gp,shuffle:()=>UI,shuffleCombo:()=>LF,sizeFromShape:()=>mt,sizeToSquarishShape:()=>HF,squeezeShape:()=>GI,sum:()=>WF,swap:()=>_h,tanh:()=>GF,toNestedArray:()=>ul,toTypedArray:()=>Vm});var lk=ms(wF()),Bs=lk.default||lk;function Ec(e){return Bs.fromString(e,!0,16)}var sS=Ec("c3a5c85c97cb3127"),zs=Ec("b492b66fbe98f273"),xn=Ec("9ae16a3b2f90404f");function _b(e){return e.xor(e.shru(47))}function iS(e,t,n){let a=e.slice(t,t+n);return Bs.fromBytes(Array.from(a),!0,!0)}function ht(e,t){return iS(e,t,8)}function uk(e,t){return iS(e,t,4)}function Yt(e,t){return t===0?e:e.shru(t).or(e.shl(64-t))}function ns(e,t,n=Ec("9ddfea08eb382d69")){let a=e.xor(t).mul(n);a=a.xor(a.shru(47));let r=t.xor(a).mul(n);return r=r.xor(r.shru(47)),r=r.mul(n),r}function cD(e,t,n,a,r,s){r=r.add(e),s=Yt(s.add(r).add(a),21);let i=r;return r=r.add(t),r=r.add(n),s=s.add(Yt(r,44)),[r.add(a),s.add(i)]}function sh(e,t,n,a){return cD(ht(e,t),ht(e,t+8),ht(e,t+16),ht(e,t+24),n,a)}function dD(e,t=e.length){if(t>=8){let n=xn.add(t*2),a=ht(e,0).add(xn),r=ht(e,t-8),s=Yt(r,37).mul(n).add(a),i=Yt(a,25).add(r).mul(n);return ns(s,i,n)}if(t>=4){let n=xn.add(t*2),a=uk(e,0);return ns(a.shl(3).add(t),uk(e,t-4),n)}if(t>0){let n=e[0],a=e[t>>1],r=e[t-1],s=n+(a<<8),i=t+(r<<2);return _b(xn.mul(s).xor(sS.mul(i))).mul(xn)}return xn}function hD(e,t=e.length){let n=xn.add(t*2),a=ht(e,0).mul(zs),r=ht(e,8),s=ht(e,t-8).mul(n),i=ht(e,t-16).mul(xn);return ns(Yt(a.add(r),43).add(Yt(s,30)).add(i),a.add(Yt(r.add(xn),18)).add(s),n)}function mD(e,t=e.length){let n=xn.add(t*2),a=ht(e,0).mul(xn),r=ht(e,8),s=ht(e,t-8).mul(n),i=ht(e,t-16).mul(xn),o=Yt(a.add(r),43).add(Yt(s,30)).add(i),l=ns(o,a.add(Yt(r.add(xn),18)).add(s),n),u=ht(e,16).mul(n),p=ht(e,24),d=o.add(ht(e,t-32)).mul(n),c=l.add(ht(e,t-24)).mul(n);return ns(Yt(u.add(p),43).add(Yt(d,30)).add(c),u.add(Yt(p.add(a),18)).add(d),n)}function fD(e,t=e.length){let n=Bs.fromNumber(81,!0);if(t<=32)return t<=16?dD(e,t):hD(e,t);if(t<=64)return mD(e,t);let a=n,r=n.mul(zs).add(113),s=_b(r.mul(xn).add(113)).mul(xn),i=[Bs.UZERO,Bs.UZERO],o=[Bs.UZERO,Bs.UZERO];a=a.mul(xn).add(ht(e,0));let l=0,u=(t-1>>6)*64,p=u+(t-1&63)-63;do a=Yt(a.add(r).add(i[0]).add(ht(e,l+8)),37).mul(zs),r=Yt(r.add(i[1]).add(ht(e,l+48)),42).mul(zs),a=a.xor(o[1]),r=r.add(i[0]).add(ht(e,l+40)),s=Yt(s.add(o[0]),33).mul(zs),i=sh(e,l,i[1].mul(zs),a.add(o[0])),o=sh(e,l+32,s.add(o[1]),r.add(ht(e,l+16))),[s,a]=[a,s],l+=64;while(l!==u);let d=zs.add(s.and(255).shl(1));return l=p,o[0]=o[0].add(t-1&63),i[0]=i[0].add(o[0]),o[0]=o[0].add(i[0]),a=Yt(a.add(r).add(i[0]).add(ht(e,l+8)),37).mul(d),r=Yt(r.add(i[1]).add(ht(e,l+48)),42).mul(d),a=a.xor(o[1].mul(9)),r=r.add(i[0].mul(9).add(ht(e,l+40))),s=Yt(s.add(o[0]),33).mul(d),i=sh(e,l,i[1].mul(d),a.add(o[0])),o=sh(e,l+32,s.add(o[1]),r.add(ht(e,l+16))),[s,a]=[a,s],ns(ns(i[0],o[0],d).add(_b(r).mul(sS)).add(s),ns(i[1],o[1],d).add(a),d)}function gD(e,t){return t==="string"?$c(e):Vm([e],t)}function yD(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Vm(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=Js(e)),H().getBool("DEBUG")&&qI(e,t),yD(e,t))return e;if(t==null||t==="float32"||t==="complex64")return new Float32Array(e);if(t==="int32")return new Int32Array(e);if(t==="bool"){let n=new Uint8Array(e.length);for(let a=0;a{a=n()},s,i=Yp();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(r);else{r();for(let o of a)o.dataSync();s=Promise.resolve({kernelMs:Yp()-i})}if(H().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{vD(u,l.dtype,e)})}return{kernelName:e,outputs:a,inputs:t,timeMs:s.then(o=>o.kernelMs),extraInfo:s.then(o=>o.getExtraProfileInfo!=null?o.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:n,timeMs:a,inputs:r,extraInfo:s}=e;n.forEach(i=>{Promise.all([i.data(),a,s]).then(o=>{this.logger.logKernelProfile(t,i,o[0],o[1],r,o[2])})})}};function vD(e,t,n){if(t!=="float32")return!1;for(let a=0;a0?m:""} `}}console.log(`%c${o} %c${i} %c${l}D ${p} %c${u} %c${d} %c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function kD(e,t,n){let a={},r={};for(let l=0;la[f.id]=!0),h=!0,r[u.id]=!0;break}if(h)break}}let s={};s[n.id]=!0;let i={};for(let l=e.length-1;l>=0;l--){let u=e[l],p=u.inputs;for(let d=0;d=0;r--){let s=t[r],i=[];if(s.outputs.forEach(l=>{let u=e[l.id];u!=null?i.push(u):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let o=s.gradient(i);for(let l in s.inputs){if(!(l in o))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(o)}.`);let u=n(()=>o[l]());if(u.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${u.dtype}'`);let p=s.inputs[l];if(!fs(u.shape,p.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${l}' has shape '${u.shape}', which does not match the shape of the input '${p.shape}'`);if(e[p.id]==null)e[p.id]=u;else{let d=e[p.id];e[p.id]=a(d,u),d.dispose()}}}}var pk=20,Ep=3,hb=7;function SD(e,t,n,a){let r=Fl(t),s=TD(e,t,n,r),i=t.length,o=bh(e,t,n,r,s),l=["Tensor"];return a&&(l.push(` dtype: ${n}`),l.push(` rank: ${i}`),l.push(` shape: [${t}]`),l.push(" values:")),l.push(o.map(u=>" "+u).join(` `)),l.join(` -`)}function TD(e,t,n,a){let r=mt(t),s=a[a.length-1],i=new Array(s).fill(0),o=t.length,l=n==="complex64"?Rp(e):e;if(o>1)for(let u=0;upk){let g=Ep*i,y=Array.from(e.slice(0,g)),b=Array.from(e.slice((o-Ep)*i,o*i));return n==="complex64"&&(y=Rp(y),b=Rp(b)),["["+y.map((x,w)=>Dp(x,r[w],n)).join(", ")+", ..., "+b.map((x,w)=>Dp(x,r[o-Ep+w],n)).join(", ")+"]"]}let f=n==="complex64"?Rp(e):Array.from(e);return["["+f.map((g,y)=>Dp(g,r[y],n)).join(", ")+"]"]}let u=t.slice(1),p=a.slice(1),d=a[0]*i,c=[];if(o>pk){for(let f=0;f1)for(let u=0;upk){let f=Ep*i,g=Array.from(e.slice(0,f)),y=Array.from(e.slice((o-Ep)*i,o*i));return n==="complex64"&&(g=Rp(g),y=Rp(y)),["["+g.map((b,x)=>Dp(b,r[x],n)).join(", ")+", ..., "+y.map((b,x)=>Dp(b,r[o-Ep+x],n)).join(", ")+"]"]}return["["+(n==="complex64"?Rp(e):Array.from(e)).map((f,g)=>Dp(f,r[g],n)).join(", ")+"]"]}let u=t.slice(1),p=a.slice(1),d=a[0]*i,c=[];if(o>pk){for(let f=0;f`Length of values '${a}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")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||jI(t,this.size),this.strides=Fl(e)}set(e,...t){t.length===0&&(t=[0]),$(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);let n=this.locToIndex(t);this.values[n]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(let a of e){if(a<0||a>=this.shape[t]){let r=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(r)}t++}let n=e[e.length-1];for(let a=0;aMh(n))}catch(n){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataToGPU(e){return this.throwIfDisposed(),Oa().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();let e=Oa().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>Mh(t))}catch(t){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();let e=await Oa().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(Oa().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return il.print(this,e)}clone(){return this.throwIfDisposed(),il.clone(this)}toString(e=!1){let t=this.dataSync();return SD(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),il.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Oa().makeVariable(this,e,t,n)}};Object.defineProperty(Te,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function J(){return Fx("Tensor",()=>Te)}J();var is=class extends Te{constructor(e,t,n,a){super(e.shape,e.dtype,e.dataId,a),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(!fs(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Oa().disposeTensor(this),this.dataId=e.dataId,Oa().incRef(this,null)}dispose(){Oa().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(is,Symbol.hasInstance,{value:e=>e instanceof Te&&e.assign!=null&&e.assign instanceof Function});var Va={};Ae(Va,{assertTypesMatch:()=>lS,getTensorsInContainer:()=>Rx,isTensorInList:()=>$D,makeTypesMatch:()=>_t});var Eb;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(Eb||(Eb={}));var Ab;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(Ab||(Ab={}));var $b;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})($b||($b={}));var Fb;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(Fb||(Fb={}));var Db;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(Db||(Db={}));var AD={float32:Fb,int32:Ab,bool:$b,complex64:Db};function fa(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return AD[e][t]}function Um(e){return fa(e,"int32")}function _t(e,t){if(e.dtype===t.dtype)return[e,t];let n=fa(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function lS(e,t){$(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function $D(e,t){return t.some(n=>n.id===e.id)}function Rx(e){let t=[];return uS(e,t,new Set),t}function uS(e,t,n){if(e==null)return;if(e instanceof Te){t.push(e);return}if(!FD(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),uS(s,t,n))}}function FD(e){return Array.isArray(e)||typeof e=="object"}function mb(e){return e.kernelName!=null}var ck=class{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(let e in this.registeredVariables)this.registeredVariables[e].dispose()}},Zp=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new ck}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let e=this.getSortedBackends();for(let t=0;t{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){Rh(e).forEach(t=>{t.disposeFunc!=null&&t.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{let n=t.factory();if(n&&!(n instanceof pc)&&typeof n.then=="function"){let a=++this.pendingBackendInitId,r=n.then(s=>a(athis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;tthis.startScope(n),()=>this.endScope(a),()=>(a=t(),a instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),a))}scopedRun(e,t,n){e();try{let a=n();return t(),a}catch(a){throw t(),a}}nextTensorId(){return Zp.nextTensorId++}nextVariableId(){return Zp.nextVariableId++}clone(e){let t=O.runKernel(Ri,{x:e}),n={x:e},a=s=>({x:()=>{let i="float32",o={x:s},l={dtype:i};return O.runKernel(xi,o,l)}}),r=[];return this.addTapeNode(this.state.activeScope.name,n,[t],a,r,{}),t}runKernel(e,t,n){if(this.backendName==null&&this.backend,Dh(e,this.backendName)==null)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){let a=this.backend.numDataIds(),r=0;n.forEach(o=>{r+=o.dtype==="complex64"?3:1});let s=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=a-t-r-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=[],a=this.isTapeOn(),r=this.state.numBytes,s=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let i;this.backendName==null&&this.backend;let o,l=mb(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(mb(e)){let{kernelName:h,inputs:m,attrs:f}=e;this.backendName==null&&this.backend;let g=Dh(h,this.backendName);$(g!=null,()=>`Cannot find registered kernel '${h}' for backend '${this.backendName}'`),i=()=>{let y=this.backend.numDataIds();o=g.kernelFunc({inputs:m,attrs:f,backend:this.backend});let b=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(h,y,b);let x=b.map(w=>w.rank!=null?w:this.makeTensorFromTensorInfo(w));if(a){let w=this.getTensorsForGradient(h,m,x);n=this.saveTensorsForBackwardMode(w)}return x}}else{let{forwardFunc:h}=e,m=f=>{!a||(n=f.map(g=>this.keep(this.clone(g))))};i=()=>{let f=this.backend.numDataIds();o=this.tidy(()=>h(this.backend,m));let g=Array.isArray(o)?o:[o];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,f,g),g}}let{inputs:u,attrs:p}=e,d=mb(e)?null:e.backwardsFunc,c;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?t=i():(c=this.profiler.profileKernel(l,u,()=>i()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(c),t=c.outputs)}),a&&this.addTapeNode(l,u,t,d,n,p),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-r,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-s,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(u).map(h=>u[h]!=null?u[h].shape:null),outputShapes:t.map(h=>h.shape),kernelTimeMs:c.timeMs,extraInfo:c.extraInfo}),Array.isArray(o)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(t=>this.keep(this.clone(t)))}getTensorsForGradient(e,t,n){let a=Cb(e);if(a!=null){let r=a.inputsToSave||[],s=a.outputsToSave||[],i;a.saveAllInputs?($(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),i=Object.keys(t).map(l=>t[l])):i=r.map(l=>t[l]);let o=n.filter((l,u)=>s[u]);return i.concat(o)}return[]}makeTensor(e,t,n,a){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",a=a||this.backend;let r=e;n==="string"&&Qr(e[0])&&(r=e.map(o=>Ac(o)));let s=a.write(r,t,n),i=new Te(t,n,s,this.nextTensorId());if(this.trackTensor(i,a),n==="string"){let o=this.state.tensorInfo.get(s),l=XI(r);this.state.numBytes+=l-o.bytes,o.bytes=l}return i}makeTensorFromDataId(e,t,n,a){n=n||"float32";let r={dataId:e,shape:t,dtype:n};return this.makeTensorFromTensorInfo(r,a)}makeTensorFromTensorInfo(e,t){let{dataId:n,shape:a,dtype:r}=e,s=new Te(a,r,n,this.nextTensorId());return this.trackTensor(s,t),s}makeVariable(e,t=!0,n,a){n=n||this.nextVariableId().toString(),a!=null&&a!==e.dtype&&(e=e.cast(a));let r=new is(e,t,n,this.nextTensorId());if(this.state.registeredVariables[r.name]!=null)throw new Error(`Variable with name ${r.name} was already registered`);return this.state.registeredVariables[r.name]=r,this.incRef(r,this.backend),r}trackTensor(e,t){this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++;let n=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(n=e.size*Nb(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 is||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;let t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,e.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),e.dtype!=="complex64"&&e.dtype!=="string"){let n=e.size*Nb(e.dtype);this.state.numBytes-=n}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(let e in this.state.registeredVariables){let t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){let 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,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;let 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(a=>a.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let a of this.state.activeProfile.kernels)a.kernelTimeMs=await a.kernelTimeMs,a.extraInfo=await a.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,n,a,r,s){let i={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:n,saved:r},o=Cb(e);o!=null&&(a=o.gradFunc),a!=null&&(i.gradient=l=>(l=l.map((u,p)=>{if(u==null){let d=n[p],c=um(d.size,d.dtype);return this.makeTensor(c,d.shape,d.dtype)}return u}),a(l.length>1?l:l[0],r,s))),this.state.activeTape.push(i)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){let t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){let t=Rx(e),n=new Set(t.map(r=>r.id));for(let r=0;r{!r.kept&&r.scopeId===a.id&&this.track(r)})}gradients(e,t,n,a=!1){if($(t.length>0,()=>"gradients() received an empty list of xs."),n!=null&&n.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);let r=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));$(r instanceof Te,()=>"The result y returned by f() must be a tensor.");let s=kD(this.state.activeTape,t,r);if(!a&&s.length===0&&t.length>0)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",()=>{let i={};i[r.id]=n==null?DD(r.shape):n,ID(i,s,l=>this.tidy(l),RD);let o=t.map(l=>i[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let u of l.saved)u.dispose()}),this.state.activeTape=null),{value:r,grads:o}})}customGrad(e){return $(ss(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{$(t.every(i=>i instanceof Te),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n,a={};t.forEach((i,o)=>{a[o]=i});let r=(i,o)=>(n=e(...t,o),$(n.value instanceof Te,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),$(ss(n.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),n.value),s=(i,o)=>{let l=n.gradFunc(i,o),u=Array.isArray(l)?l:[l];$(u.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(...)."),$(u.every(d=>d instanceof Te),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let p={};return u.forEach((d,c)=>{p[c]=()=>d}),p};return this.runKernelFunc({forwardFunc:r,backwardsFunc:s,inputs:a})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}readToGPU(e,t){return this.state.tensorInfo.get(e).backend.readToGPU(e,t)}async time(e){let t=Yp(),n=await this.backend.time(e);return n.wallMs=Yp()-t,n}track(e){return this.state.activeScope!=null&&(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 ck;for(let e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};Zp.nextTensorId=0;Zp.nextVariableId=0;function DD(e){let t=_x(mt(e),"float32");return O.makeTensor(t,e,"float32")}function pS(){let e=eS();if(e._tfengine==null){let t=new QI(e);e._tfengine=new Zp(t)}return nD(e._tfengine.ENV),CD(()=>e._tfengine),e._tfengine}var O=pS();function RD(e,t){let n={a:e,b:t};return O.runKernel(gs,n)}var $c={};Ae($c,{isBrowser:()=>cS,isMobile:()=>OD,mockIsMobile:()=>PD});function MD(){return typeof navigator!="undefined"&&navigator!=null}var Rb;function PD(e){Rb=e}function OD(e){if(Rb!==void 0)return Rb;if(e||MD()){if(e||(e=navigator),e.product==="ReactNative")return!0;let t=e.userAgent||e.vendor||(typeof window!="undefined"?window.opera:"");if(!t){let n=e;return n.userAgentData&&n.userAgentData.mobile}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(t)||/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(t.substr(0,4))}return!1}function cS(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Qn=H();Qn.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.")});Qn.registerFlag("IS_BROWSER",()=>cS());Qn.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Qn.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Qn.registerFlag("PROD",()=>!1);Qn.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Qn.getBool("DEBUG"));Qn.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Qn.registerFlag("IS_TEST",()=>!1);Qn.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);Qn.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);Qn.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);Qn.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);Qn.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function lr(e,t){let n=e;if(hn(e))return t==="string"?[]:[e.length];if(typeof e=="object"&&"texture"in e){let r=e.channels||"RGBA";return[e.height,e.width*r.length]}if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||hn(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&H().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&dS(e,a,[]),a}function dS(e,t,n){if(n=n||[],!Array.isArray(e)&&!hn(e)){$(t.length===0,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}$(t.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`),$(e.length===t[0],()=>`Element arr[${n.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`);let a=t.slice(1);for(let r=0;r=0&&(r=a),dk(a,r,t,n),e==null||!hn(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string"){let o=e==null?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${n}' must be a Tensor or TensorLike, but got '${o}'`)}let s=lr(e,r);!hn(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?Vm(e,r):Js(e,[],!0);return O.makeTensor(i,s,r)}function Jp(e,t,n,a="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${n} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map((r,s)=>_(r,`${t}[${s}]`,n,a))}var Mx="__op";function L(e){let t=Object.keys(e);if(t.length!==1)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],a=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1)),n=n+Mx;let r=(...s)=>{O.startScope(n);try{let i=a(...s);return Ax(i)&&console.error("Cannot return a Promise inside of tidy."),O.endScope(i),i}catch(i){throw O.endScope(null),i}};return Object.defineProperty(r,"name",{value:n,configurable:!0}),r}function LD(e,t){let n=_(e,"real","complex"),a=_(t,"imag","complex");Tn(n.shape,a.shape,`real and imag shapes, ${n.shape} and ${a.shape}, must match in call to tf.complex().`);let r={real:n,imag:a};return O.runKernel(mm,r)}var Ar=L({complex_:LD});function vs(e,t,n,a){if(a==null&&(a=lm(e)),a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(typeof e=="object"&&"texture"in e){if(a!=="float32"&&a!=="int32")throw new Error(`Creating tensor from texture only supports 'float32'|'int32' dtype, while the dtype is ${a}.`);return e.channels=e.channels||"RGBA",O.backend.createTensorFromTexture(e,t||n,a)}if(!hn(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string")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(t!=null){Ex(t);let r=mt(t),s=mt(n);$(r===s,()=>`Based on the provided shape, [${t}], the tensor should have ${r} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${n}) does not match the provided shape (${t}). `)}}return!hn(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?Vm(e,a):Js(e,[],!0),O.makeTensor(e,t,a)}function In(e,t,n){let a=lr(e,n);return vs(e,t,a,n)}var Mb={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},Ph=4;async function zD(e,t){let n=[],a=[],r=Array.isArray(e)?e.map(i=>i.name):Object.keys(e);for(let i=0;i{let c=await l.bytes(),h=c.reduce((g,y)=>g+y.length,0)+Ph*c.length,m=new Uint8Array(h),f=0;for(let g=0;g{if(t+=s.byteLength,n.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let a=new Uint8Array(t),r=0;return n.forEach(s=>{a.set(new Uint8Array(s.buffer),r),r+=s.byteLength}),a.buffer}var Px=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function hk(e){return Px?Buffer.byteLength(e):new Blob([e]).size}function BD(e){if(Px)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),n="";for(let a=0,r=t.length;a{t+=r.byteLength});let n=new Uint8Array(t),a=0;return e.forEach(r=>{n.set(new Uint8Array(r),a),a+=r.byteLength}),n.buffer}function mk(e){let t="/";for(e=e.trim();e.endsWith(t);)e=e.slice(0,e.length-1);let n=e.split(t);return n[n.length-1]}function mS(e,t){let n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:t};return e.signature!=null&&(n.signature=e.signature),e.userDefinedMetadata!=null&&(n.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(n.modelInitializer=e.modelInitializer),e.initializerSignature!=null&&(n.initializerSignature=e.initializerSignature),e.trainingConfig!=null&&(n.trainingConfig=e.trainingConfig),n}function fS(e,t,n){let a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};if(e.trainingConfig!=null&&(a.trainingConfig=e.trainingConfig),e.weightsManifest!=null){if(!t)throw new Error("modelJSON has weightsManifest but weightSpecs is null");if(!n)throw new Error("modelJSON has weightsManifest but weightData is null");a.weightSpecs=t,a.weightData=n}return e.signature!=null&&(a.signature=e.signature),e.userDefinedMetadata!=null&&(a.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(a.modelInitializer=e.modelInitializer),e.initializerSignature!=null&&(a.initializerSignature=e.initializerSignature),a}async function Lx(e,t){let n,a;return e.weightsManifest!=null&&([n,a]=await t(e.weightsManifest)),fS(e,n,a)}function Fc(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:e.modelTopology==null?0:hk(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:hk(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function gS(e){let t=[];for(let n of e)t.push(...n.weights);return t}function UD(){let e=n=>{let a=n<<13,r=0;for(;(a&8388608)===0;)r-=8388608,a<<=1;return a&=-8388609,r+=947912704,a|r},t=new Uint32Array(2048);t[0]=0;for(let n=1;n<1024;n++)t[n]=e(n);for(let n=1024;n<2048;n++)t[n]=939524096+(n-1024<<13);return t}function GD(){let 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}function HD(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function jD(){let e=UD(),t=GD(),n=HD();return a=>{let r=new ArrayBuffer(4*a.length),s=new Uint32Array(r);for(let i=0;i>10]+(o&1023)]+t[o>>10];s[i]=l}return new Float32Array(r)}}var At=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return At.instance==null&&(At.instance=new At),At.instance}static registerSaveRouter(e){At.getInstance().saveRouters.push(e)}static registerLoadRouter(e){At.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return At.getHandlers(e,"save")}static getLoadHandlers(e,t){return At.getHandlers(e,"load",t)}static getHandlers(e,t,n){let a=[];return(t==="load"?At.getInstance().loadRouters:At.getInstance().saveRouters).forEach(r=>{let s=r(e,n);s!==null&&a.push(s)}),a}},qD=e=>At.registerSaveRouter(e),KD=e=>At.registerLoadRouter(e),XD=e=>At.getSaveHandlers(e),YD=(e,t)=>At.getLoadHandlers(e,t),Pb="tensorflowjs",Ob=1,Hs="models_store",es="model_info_store";function yS(){if(!H().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let e=typeof window=="undefined"?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(t==null)throw new Error("The current browser does not appear to support IndexedDB.");return t}function Lb(e){let t=e.result;t.createObjectStore(Hs,{keyPath:"modelPath"}),t.createObjectStore(es,{keyPath:"modelPath"})}var ni=class{constructor(e){if(this.indexedDB=yS(),e==null||!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((n,a)=>{let r=this.indexedDB.open(Pb,Ob);r.onupgradeneeded=()=>Lb(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(Hs,"readonly"),o=i.objectStore(Hs).get(this.modelPath);o.onsuccess=()=>{if(o.result==null)return s.close(),a(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(o.result.modelArtifacts)},o.onerror=l=>(s.close(),a(o.error)),i.oncomplete=()=>s.close()}else{let i=Fc(t),o=s.transaction(es,"readwrite"),l=o.objectStore(es),u=l.put({modelPath:this.modelPath,modelArtifactsInfo:i}),p;u.onsuccess=()=>{p=s.transaction(Hs,"readwrite");let d=p.objectStore(Hs).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i});d.onsuccess=()=>n({modelArtifactsInfo:i}),d.onerror=c=>{l=o.objectStore(es);let h=l.delete(this.modelPath);h.onsuccess=()=>(s.close(),a(d.error)),h.onerror=m=>(s.close(),a(d.error))}},u.onerror=d=>(s.close(),a(u.error)),o.oncomplete=()=>{p==null?s.close():p.oncomplete=()=>s.close()}}},r.onerror=s=>a(r.error)})}};ni.URL_SCHEME="indexeddb://";var bS=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ni.URL_SCHEME)?ZD(e.slice(ni.URL_SCHEME.length)):null;At.registerSaveRouter(bS);At.registerLoadRouter(bS);function ZD(e){return new ni(e)}function JD(e){return e.startsWith(ni.URL_SCHEME)?e.slice(ni.URL_SCHEME.length):e}var QD=class{constructor(){this.indexedDB=yS()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(Pb,Ob);n.onupgradeneeded=()=>Lb(n),n.onsuccess=()=>{let a=n.result,r=a.transaction(es,"readonly"),s=r.objectStore(es).getAll();s.onsuccess=()=>{let i={};for(let o of s.result)i[o.modelPath]=o.modelArtifactsInfo;e(i)},s.onerror=i=>(a.close(),t(s.error)),r.oncomplete=()=>a.close()},n.onerror=a=>t(n.error)})}async removeModel(e){return e=JD(e),new Promise((t,n)=>{let a=this.indexedDB.open(Pb,Ob);a.onupgradeneeded=()=>Lb(a),a.onsuccess=()=>{let r=a.result,s=r.transaction(es,"readwrite"),i=s.objectStore(es),o=i.get(e),l;o.onsuccess=()=>{if(o.result==null)return r.close(),n(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{let u=i.delete(e),p=()=>{l=r.transaction(Hs,"readwrite");let d=l.objectStore(Hs).delete(e);d.onsuccess=()=>t(o.result.modelArtifactsInfo),d.onerror=c=>n(o.error)};u.onsuccess=p,u.onerror=d=>(p(),r.close(),n(o.error))}},o.onerror=u=>(r.close(),n(o.error)),s.oncomplete=()=>{l==null?r.close():l.oncomplete=()=>r.close()}},a.onerror=r=>n(a.error)})}},Nr="/",ol="tensorflowjs_models",xS="info",eR="model_topology",tR="weight_specs",nR="weight_data",aR="model_metadata";function vS(e){return{info:[ol,e,xS].join(Nr),topology:[ol,e,eR].join(Nr),weightSpecs:[ol,e,tR].join(Nr),weightData:[ol,e,nR].join(Nr),modelMetadata:[ol,e,aR].join(Nr)}}function wS(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function rR(e){let t=e.split(Nr);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(Nr)}function sR(e){return e.startsWith(ai.URL_SCHEME)?e.slice(ai.URL_SCHEME.length):e}var ai=class{constructor(e){if(!H().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,e==null||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=vS(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.");{let t=JSON.stringify(e.modelTopology),n=JSON.stringify(e.weightSpecs),a=Fc(e);try{this.LS.setItem(this.keys.info,JSON.stringify(a)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,BD(e.weightData));let r={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,signature:e.signature!=null?e.signature:void 0,userDefinedMetadata:e.userDefinedMetadata!=null?e.userDefinedMetadata:void 0,modelInitializer:e.modelInitializer!=null?e.modelInitializer:void 0,initializerSignature:e.initializerSignature!=null?e.initializerSignature:void 0,trainingConfig:e.trainingConfig!=null?e.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(r)),{modelArtifactsInfo:a}}catch(r){throw wS(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${a.modelTopologyBytes}, weightSpecsBytes=${a.weightSpecsBytes}, weightDataBytes=${a.weightDataBytes}.`)}}}async load(){let e=JSON.parse(this.LS.getItem(this.keys.info));if(e==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(e.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},n=JSON.parse(this.LS.getItem(this.keys.topology));if(n==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=n;let a=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(a==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=a;let r=this.LS.getItem(this.keys.modelMetadata);if(r!=null){let i=JSON.parse(r);t.format=i.format,t.generatedBy=i.generatedBy,t.convertedBy=i.convertedBy,i.signature!=null&&(t.signature=i.signature),i.userDefinedMetadata!=null&&(t.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(t.modelInitializer=i.modelInitializer),i.initializerSignature!=null&&(t.initializerSignature=i.initializerSignature),i.trainingConfig!=null&&(t.trainingConfig=i.trainingConfig)}let s=this.LS.getItem(this.keys.weightData);if(s==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=VD(s),t}};ai.URL_SCHEME="localstorage://";var kS=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ai.URL_SCHEME)?iR(e.slice(ai.URL_SCHEME.length)):null;At.registerSaveRouter(kS);At.registerLoadRouter(kS);function iR(e){return new ai(e)}var oR=class{constructor(){$(H().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),$(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=ol+Nr,n=Nr+xS;for(let a=0;a"scheme must not be undefined or null."),e.endsWith(pl)&&(e=e.slice(0,e.indexOf(pl))),$(e.length>0,()=>"scheme must not be an empty string.");let n=Pn.getInstance();$(n.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),n.managers[e]=t}static getManager(e){let t=Pn.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(Pn.getInstance().managers)}};function xh(e){if(e.indexOf(pl)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Pn.getSchemes().join(",")}`);return{scheme:e.split(pl)[0],path:e.split(pl)[1]}}async function IS(e,t,n=!1){$(e!==t,()=>`Old path and new path are the same: '${e}'`);let a=At.getLoadHandlers(e);$(a.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),$(a.length<2,()=>`Copying failed because more than one (${a.length}) load handlers for source URL ${e}.`);let r=a[0],s=At.getSaveHandlers(t);$(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),$(s.length<2,()=>`Copying failed because more than one (${a.length}) save handlers for destination URL ${t}.`);let i=s[0],o=xh(e).scheme,l=xh(e).path,u=o===xh(e).scheme,p=await r.load();n&&u&&await Pn.getManager(o).removeModel(l);let d=await i.save(p);return n&&!u&&await Pn.getManager(o).removeModel(l),d.modelArtifactsInfo}async function lR(){let e=Pn.getSchemes(),t={};for(let n of e){let a=await Pn.getManager(n).listModels();for(let r in a){let s=n+pl+r;t[s]=a[r]}}return t}async function uR(e){let t=xh(e);return Pn.getManager(t.scheme).removeModel(t.path)}async function pR(e,t){return IS(e,t,!1)}async function cR(e,t){return IS(e,t,!0)}var dR=class{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}setTimeoutCustom(e,t){if(typeof window=="undefined"||!H().getBool("USE_SETTIMEOUTCUSTOM")){setTimeout(e,t);return}this.functionRefs.push(e),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")},t),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",n=>{if(n.source===window&&n.data.name===this.messageName){n.stopPropagation();let a=this.functionRefs[n.data.index];a(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}},!0))}};if(H().get("IS_BROWSER")){H().setPlatform("browser",new dR);try{Pn.registerManager(ai.URL_SCHEME,new oR)}catch(e){}try{Pn.registerManager(ni.URL_SCHEME,new QD)}catch(e){}}var hR={importFetch:()=>kF()},fb,mR=class{constructor(){this.util=IF(),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return H().global.fetch!=null?H().global.fetch(e,t):(fb==null&&(fb=hR.importFetch()),fb(e,t))}now(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return e.length===0?"":new this.util.TextDecoder(t).decode(e)}};H().get("IS_NODE")&&!H().get("IS_BROWSER")&&H().setPlatform("node",new mR);function Oe(e,t="float32",n){return t=t||"float32",Ex(e),new Ht(e,t,n)}function fR(e,t){let n=_(e,"x","cast");if(!KI(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&n.dtype!=="string"||t!=="string"&&n.dtype==="string")throw new Error("Only strings can be casted to strings");let a={x:n},r={dtype:t};return O.runKernel(xi,a,r)}var oe=L({cast_:fR});function gR(e){let t={x:_(e,"x","clone","string_or_numeric")};return O.runKernel(Ri,t)}var ir=L({clone_:gR});function zx(e,t=!1){console.log(e.toString(t))}pS();var yR={buffer:Oe,cast:oe,clone:ir,print:zx};_D(yR);var Ut={};Ae(Ut,{browserFiles:()=>SR,browserHTTPRequest:()=>ER,concatenateArrayBuffers:()=>Ox,copyModel:()=>pR,decodeWeights:()=>hS,encodeWeights:()=>zD,fromMemory:()=>$R,fromMemorySync:()=>_S,getLoadHandlers:()=>YD,getModelArtifactsForJSON:()=>Lx,getModelArtifactsForJSONSync:()=>fS,getModelArtifactsInfoForJSON:()=>Fc,getSaveHandlers:()=>XD,getWeightSpecs:()=>gS,http:()=>Bx,isHTTPScheme:()=>zb,listModels:()=>lR,loadWeights:()=>TR,moveModel:()=>cR,registerLoadRouter:()=>KD,registerSaveRouter:()=>qD,removeModel:()=>uR,weightsLoaderFactory:()=>TS,withSaveHandler:()=>FR,withSaveHandlerSync:()=>DR});var bR="model",xR=".json",vR=".weights.bin";function fk(e){return new Promise(t=>setTimeout(t)).then(e)}var fl=class{constructor(e){if(!H().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(fl.URL_SCHEME)&&(e=e.slice(fl.URL_SCHEME.length)),(e==null||e.length===0)&&(e=bR),this.modelJsonFileName=e+xR,this.weightDataFileName=e+vR}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let 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.");{let n=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],a=mS(e,n),r=window.URL.createObjectURL(new Blob([JSON.stringify(a)],{type:"application/json"})),s=this.modelJsonAnchor==null?document.createElement("a"):this.modelJsonAnchor;if(s.download=this.modelJsonFileName,s.href=r,await fk(()=>s.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){let i=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;i.download=this.weightDataFileName,i.href=t,await fk(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Fc(e)}}}};fl.URL_SCHEME="downloads://";var wR=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.jsonFile=e[0],this.weightsFiles=e.slice(1)}async load(){return new Promise((e,t)=>{let n=new FileReader;n.onload=a=>{let r=JSON.parse(a.target.result),s=r.modelTopology;if(s==null){t(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(r.weightsManifest==null){t(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){e({modelTopology:s});return}let i=Lx(r,o=>this.loadWeights(o));e(i)},n.onerror=a=>t(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)})}loadWeights(e){let t=[],n=[];for(let s of e)t.push(...s.weights),n.push(...s.paths);let a=this.checkManifestAndWeightFiles(e),r=n.map(s=>this.loadWeightsFile(s,a[s]));return Promise.all(r).then(s=>[t,Ox(s)])}loadWeightsFile(e,t){return new Promise((n,a)=>{let r=new FileReader;r.onload=s=>{let i=s.target.result;n(i)},r.onerror=s=>a(`Failed to weights data from file of path '${e}'.`),r.readAsArrayBuffer(t)})}checkManifestAndWeightFiles(e){let t=[],n=this.weightsFiles.map(r=>mk(r.name)),a={};for(let r of e)r.paths.forEach(s=>{let i=mk(s);if(t.indexOf(i)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${i}'`);if(t.push(i),n.indexOf(i)===-1)throw new Error(`Weight file with basename '${i}' is not provided.`);a[s]=this.weightsFiles[n.indexOf(i)]});if(t.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${t.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return a}},kR=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(fl.URL_SCHEME)?IR(e.slice(fl.URL_SCHEME.length)):null;At.registerSaveRouter(kR);function IR(e="model"){return new fl(e)}function SR(e){return new wR(e)}function gk(e,t,n,a){i(e),n=n==null?0:n,a=a==null?1:a,o(n,a);let r=0,s=l=>(l.then(u=>{let p=n+ ++r/e.length*(a-n);return t(p),u}),l);function i(l){$(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function o(l,u){$(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),$(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${u}`),$(u>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${u}`)}return Promise.all(e.map(s))}async function SS(e,t){t==null&&(t={});let n=t.fetchFunc==null?H().platform.fetch:t.fetchFunc,a=e.map(u=>n(u,t.requestInit,{isBinary:!0})),r=0,s=.5,i=(t.onProgress==null?await Promise.all(a):await gk(a,t.onProgress,r,s)).map(u=>u.arrayBuffer()),o=.5,l=1;return t.onProgress==null?await Promise.all(i):await gk(i,t.onProgress,o,l)}async function TR(e,t="",n,a){return TS(r=>SS(r,{requestInit:a}))(e,t,n)}function TS(e){return async(t,n="",a)=>{let r=t.map(()=>!1),s={},i=a!=null?a.map(()=>!1):[],o=[];if(t.forEach((h,m)=>{let f=0;h.weights.forEach(g=>{let y="quantization"in g?g.quantization.dtype:g.dtype,b=Mb[y]*mt(g.shape),x=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:b})};a!=null?a.forEach((w,I)=>{w===g.name&&(x(),i[I]=!0)}):x(),o.push(g.name),f+=b})}),!i.every(h=>h)){let h=a.filter((m,f)=>!i[f]);throw new Error(`Could not find weights in manifest with names: ${h.join(", ")}. -Manifest JSON has weights with names: ${o.join(", ")}.`)}let l=r.reduce((h,m,f)=>(m&&h.push(f),h),[]),u=[];l.forEach(h=>{t[h].paths.forEach(m=>{let f=n+(n.endsWith("/")?"":"/")+m;u.push(f)})});let p=await e(u),d={},c=0;return l.forEach(h=>{let m=t[h].paths.length,f=0;for(let x=0;x{let w=g.slice(x.groupOffset,x.groupOffset+x.sizeBytes),I=hS(w,[x.manifestEntry]);for(let T in I)d[T]=I[T]}),c+=m}),d}}var NR="application/octet-stream",CR="application/json",Wx=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?($(typeof t.fetchFunc=="function",()=>"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=H().platform.fetch,$(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&$(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)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.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],a=mS(e,n);t.body.append("model.json",new Blob([JSON.stringify(a)],{type:CR}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:NR}),"model.weights.bin");let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:Fc(e),responses:[r]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${r.status}.`)}async load(){let 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(r){let s=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?s+=" 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.":s+=" Please make sure the server is serving valid JSON for this request.",new Error(s)}let n=t.modelTopology,a=t.weightsManifest;if(n==null&&a==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return Lx(t,r=>this.loadWeights(r))}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=_R(t),r=this.weightPathPrefix||n,s=gS(e),i=[],o=[];for(let u of e)for(let p of u.paths)this.weightUrlConverter!=null?o.push(this.weightUrlConverter(p)):i.push(r+p+a);this.weightUrlConverter&&i.push(...await Promise.all(o));let l=await SS(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[s,Ox(l)]}};Wx.URL_SCHEME_REGEX=/^https?:\/\//;function _R(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function zb(e){return e.match(Wx.URL_SCHEME_REGEX)!=null}var NS=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>zb(a)):n=zb(e),n)return Bx(e,t)}return null};At.registerSaveRouter(NS);At.registerLoadRouter(NS);function Bx(e,t){return new Wx(e,t)}function ER(e,t){return Bx(e,t)}var gb=class{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}},CS=class{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}},AR=class{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}};function $R(e,t,n,a){let r=arguments;return new AR(_S(...r))}function _S(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new gb(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 gb({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 gb({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function FR(e){return new CS(e)}function DR(e){return new CS(e)}var ES={};Ae(ES,{confusionMatrix:()=>eM});function RR(e,t,n=!1,a=!1){let r=_(e,"a","matMul"),s=_(t,"b","matMul");[r,s]=_t(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return O.runKernel(bi,i,o)}var Fe=L({matMul_:RR});function MR(e,t,n=1,a=0,r="int32"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let s={indices:_(e,"indices","oneHot","int32")},i={dtype:r,depth:t,onValue:n,offValue:a};return O.runKernel(Hi,s,i)}var gl=L({oneHot_:MR});function PR(){H().set("PROD",!0)}function OR(){H().set("DEBUG",!0)}function LR(){H().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function Vx(e){H().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}ED(Vx);function zR(){O.disposeVariables()}function _a(){return O}function Oh(){return O.memory()}function WR(e){return O.profile(e)}function P(e,t){return O.tidy(e,t)}function _e(e){Rx(e).forEach(t=>t.dispose())}function Jt(e){return O.keep(e)}function BR(e){return O.time(e)}function VR(e){return O.setBackend(e)}function UR(){return O.ready()}function GR(){return O.backendName}function HR(e){O.removeBackend(e)}function jR(e){return O.findBackend(e)}function qR(e){return O.findBackendFactory(e)}function Gm(e,t,n=1){return O.registerBackend(e,t,n)}function AS(){return O.backend}function KR(e,t){H().setPlatform(e,t)}function XR(e){let t={input:_(e,"input","imag")};return O.runKernel(Nm,t)}var Dc=L({imag_:XR});function YR(e){let t={x:_(e,"x","neg")};return O.runKernel(du,t)}var vt=L({neg_:YR});function ZR(e){let t={input:_(e,"input","real")};return O.runKernel(Pm,t)}var yl=L({real_:ZR});function JR(e,t,n){let a=_(e,"x","transpose");if(t==null&&(t=a.shape.map((i,o)=>o).reverse()),$(a.rank===t.length,()=>`Error in transpose: rank of input ${a.rank} must match length of perm ${t}.`),t.forEach(i=>{$(i>=0&&i`All entries in 'perm' must be between 0 and ${a.rank-1} but got ${t}`)}),a.rank<=1)return a.clone();let r={x:a},s={perm:t};return a.dtype==="complex64"?P(()=>{let i=yl(a),o=Dc(a);return i=O.runKernel(_r,{x:i},s),o=O.runKernel(_r,{x:o},s),n&&(o=vt(o)),Ar(i,o)}):O.runKernel(_r,r,s)}var Ee=L({transpose_:JR});function QR(e,t,n){let a=_(e,"labels","confusionMatrix"),r=_(t,"predictions","confusionMatrix");$(n==null||n>0&&Number.isInteger(n),()=>`If provided, numClasses must be a positive integer, but got ${n}`),$(a.rank===1,()=>`Expected the rank of labels to be 1, but got ${a.rank}`),$(r.rank===1,()=>`Expected the rank of predictions to be 1, but got ${r.rank}`),$(a.shape[0]===r.shape[0],()=>`Mismatch in the number of examples: ${a.shape[0]} vs. ${r.shape[0]}. Labels and predictions should have the same number of elements.`),$(n>0&&Number.isInteger(n),()=>`numClasses is required to be a positive integer, but got ${n}`);let s=gl(oe(a,"int32"),n),i=gl(oe(r,"int32"),n),o=Ee(s),l=Fe(o,i);return oe(l,"int32")}var eM=L({confusionMatrix_:QR}),Ou={};Ae(Ou,{assertAndGetBroadcastShape:()=>ut,getBroadcastDims:()=>$S,getReductionAxes:()=>Wt});function $S(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function Wt(e,t){let n=[];for(let a=0;a1)&&n.unshift(s)}return n}function ut(e,t){let n=[],a=Math.max(e.length,t.length);for(let r=0;roM,fromPixelsAsync:()=>sM,toPixels:()=>iM});function Rc(e,t,n){if(mi(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let a=lr(e,n);if(a.length!==3&&a.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return vs(e,t,a,n)}var Os;function FS(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(e==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let n=!1,a=!1,r=!1,s=!1,i=!1,o=!1;if(e.data instanceof Uint8Array)n=!0;else if(typeof ImageData!="undefined"&&e instanceof ImageData)a=!0;else if(typeof HTMLVideoElement!="undefined"&&e instanceof HTMLVideoElement)r=!0;else if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement)s=!0;else if(e.getContext!=null)i=!0;else if(typeof ImageBitmap!="undefined"&&e instanceof ImageBitmap)o=!0;else 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}`);if(Dh(Fh,O.backendName)!=null){let c={pixels:e},h={numChannels:t};return O.runKernel(Fh,c,h)}let[l,u]=r?[e.videoWidth,e.videoHeight]:[e.width,e.height],p;if(i)p=e.getContext("2d").getImageData(0,0,l,u).data;else if(a||n)p=e.data;else if(s||r||o){if(Os==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")Os=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else Os=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Os.canvas.width=l,Os.canvas.height=u,Os.drawImage(e,0,0,l,u),p=Os.getImageData(0,0,l,u).data}let d;if(t===4)d=new Int32Array(p);else{let c=l*u;d=new Int32Array(c*t);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(n.dtype!=="float32"&&n.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${n.dtype}. Please use float32 or int32 tensors.`);let i=await n.data(),o=n.dtype==="float32"?255:1,l=new Uint8ClampedArray(r*a*4);for(let u=0;u1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${h}.`)}else if(n.dtype==="int32"&&(h<0||h>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${h}.`);s===1?(p[0]=h*o,p[1]=h*o,p[2]=h*o):p[c]=h*o}let d=u*4;l[d+0]=Math.round(p[0]),l[d+1]=Math.round(p[1]),l[d+2]=Math.round(p[2]),l[d+3]=Math.round(p[3])}if(t!=null){t.width=r,t.height=a;let u=t.getContext("2d"),p=new ImageData(l,r,a);u.putImageData(p,0,0)}return n!==e&&n.dispose(),l}var oM=L({fromPixels_:FS}),Ux={};Ae(Ux,{prepareAndValidate:()=>DS});function DS(e,t){let n=e.shape.length,a=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(a<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${a}.`);if(t.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[a-1]>n)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[a-1]} vs. ${n}`);if(mt(e.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);let r=t.shape,s=r[r.length-1],i=1;for(let d=0;dd/u),1].slice(0,s);return[l,i,u,p]}var Gx={};Ae(Gx,{calculateShapes:()=>RS,validateInput:()=>jx,validateUpdateShape:()=>Hx});function Hx(e,t,n){let a=t.rank>1?t.shape[t.rank-1]:1,r=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: ${a}, and batchDim: ${r}.`;if(n.rank1?t.shape[a-1]:1,s=n.length,i=1;for(let d=r;duM,computeFlatOffset:()=>mM,computeOutShape:()=>cM,getNormalizedAxes:()=>dM,isSliceContinous:()=>hM,maskToAxes:()=>pM,parseSliceParams:()=>US,sliceInfo:()=>fM,startForAxis:()=>BS,startIndicesWithElidedDims:()=>LS,stopForAxis:()=>VS,stopIndicesWithElidedDims:()=>zS,stridesForAxis:()=>WS,stridesWithElidedDims:()=>MS});var Wb=-2,lM=-1;function uM(e,t,n){let a=e.shape.length;$(a===t.length,()=>`Error in slice${a}D: Length of begin ${t} must match the rank of the array (${a}).`),$(a===n.length,()=>`Error in slice${a}D: Length of size ${n} must match the rank of the array (${a}).`);for(let r=0;r`Error in slice${a}D: begin[${r}] + size[${r}] (${t[r]+n[r]}) would overflow input.shape[${r}] (${e.shape[r]})`)}function pM(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function cM(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;p=LS(i,h,m,a,e),d=zS(o,h,m,r,e),c=MS(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=PS(t,n,o),u=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=PS(t,n,o),u=a[l];e&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),i=Kp(0,i,l-1),i}function VS(e,t,n,a,r,s){let i=t[r],o=n[r]||1;(e&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),o>0?i=Kp(0,i,l):i=Kp(-1,i,l-1),i}function hM(e,t,n){let a=n.length;for(let r=0;r1){a=r;break}for(let r=a+1;r0||n[r]!==e[r])return!1;return!0}function mM(e,t){let n=e.length>0?e[e.length-1]:1;for(let a=0;a{$(i!==-1,()=>"slice() does not support negative begin indexing.")});let s;return n==null?s=new Array(r).fill(-1):typeof n=="number"?s=[n,...new Array(r-1).fill(-1)]:n.lengthi>=0?i:($(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${o}.`),e.shape[o]-a[o])),[a,s]}function fM(e,t,n,a,r,s,i,o,l){let u;if(a==null?(u=new Array(t.length),u.fill(1)):u=a,i!=null&&(i&i-1)!==0)throw new Error("Multiple ellipses in slice is not allowed.");let p=!1,d={dims:u.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:n.slice(),strides:u.slice(),beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};for(let b=0;b0?0:-1,c.strides[b]>0?w:w-1];if(x&&c.strides[b]<=0)throw Error("only stride 1 allowed on non-range indexing.");f=f&&c.strides[b]===1;let C=!!(c.beginMask&1<=w)throw Error(`slice index ${c.begin[b]} of dimension ${b} out of bounds.`)}else c.begin[b]=yk(c.begin[b],0,c.strides[b],w,I,T),c.end[b]=yk(c.end[b],1,c.strides[b],w,I,T);let R=c.strides[b]===1&&c.begin[b]===0&&c.end[b]===w;h=h&&R,m=m&&(b===0&&c.strides[b]===1||R)}else h=h&&c.strides[b]===1&&C,m=m&&(b===0&&c.strides[b]===1||C);let E,A=!1;if(c.beginValid&&c.endValid?(E=c.end[b]-c.begin[b],A=!0):x?(E=1,A=!0):C&&w>=0&&(c.strides[b]<0?E=-w:E=w,A=!0),A){let R;E===0||E<0!=c.strides[b]<0?R=0:R=Math.trunc(E/c.strides[b])+(E%c.strides[b]!==0?1:0),g.push(R)}else g.push(-1)}for(let b=0;b=0?y.push(g[x]):x===Wb&&y.push(1)}return{finalShapeSparse:y.filter((b,x)=>c.finalShapeGatherIndices[x]!==Wb),finalShape:y,isIdentity:h,sliceDim0:m,isSimpleSlice:f,begin:c.begin,end:c.end,strides:c.strides}}function gM(e,t){t.beginMask=0,t.endMask=0,t.shrinkAxisMask=0;let n=0;t.beginValid=e.begin!=null,t.endValid=e.end!=null,t.begin=new Array(t.dims),t.end=new Array(t.dims),t.strides=new Array(t.dims),t.finalShapeGatherIndices=[],t.finalShapeGatherIndicesSparse=[],t.inputShapeGatherIndicesSparse=new Array(t.dims);for(let a=0;a0?s[t]:s[t+1&1];{let i=e<0?a+e:e;return is[1]?s[1]:i}}var ne={};Ae(ne,{Serializable:()=>GS,SerializationMap:()=>Vs,registerClass:()=>ws});var GS=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},Vs=class{constructor(){this.classNameMap={}}static getMap(){return Vs.instance==null&&(Vs.instance=new Vs),Vs.instance}static register(e){Vs.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function ws(e){$(e.className!=null,()=>"Class being registered does not have the static className property defined."),$(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),$(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),Vs.register(e)}var HS={};Ae(HS,{TEST_EPSILON_FLOAT16:()=>jS,createVideoElement:()=>SM,encodeStrings:()=>qS,expectArrayBuffersEqual:()=>IM,expectArraysClose:()=>bM,expectArraysEqual:()=>vM,expectNumbersClose:()=>wM,expectPromiseToFail:()=>xM,expectValuesInRange:()=>kM,play:()=>TM,testEpsilon:()=>qx});var yM=.001,jS=.1;function bM(e,t,n){return n==null&&(n=qx()),Bb(e,t,(a,r)=>Kx(a,r,n))}function qx(){return O.backend.floatPrecision()===32?yM:jS}function Bb(e,t,n){let a=!0;if((hn(e)||hn(t))&&(a=!1),hn(e)&&hn(t)&&(a=!0),a){let i=e.constructor.name,o=t.constructor.name;if(i!==o)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${o}`)}if(Array.isArray(e)&&Array.isArray(t)){let i=lr(e),o=lr(t);if(!fs(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=hn(e)?e:Js(e),s=hn(t)?t:Js(t);if(r.length!==s.length)throw new Error(`Arrays have different lengths actual: ${r.length} vs expected: ${s.length}. +`;return c[c.length-1]=" "+c[c.length-1]+"]"+(s?"":m),c}function Rp(e){let t=[];for(let n=0;n`Length of values '${a}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")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||jI(t,this.size),this.strides=Fl(e)}set(e,...t){t.length===0&&(t=[0]),A(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);let n=this.locToIndex(t);this.values[n]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(let a of e){if(a<0||a>=this.shape[t]){let r=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(r)}t++}let n=e[e.length-1];for(let a=0;aMh(n))}catch(n){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataToGPU(e){return this.throwIfDisposed(),Oa().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();let e=Oa().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>Mh(t))}catch(t){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();let e=await Oa().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(Oa().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return il.print(this,e)}clone(){return this.throwIfDisposed(),il.clone(this)}toString(e=!1){let t=this.dataSync();return SD(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),il.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Oa().makeVariable(this,e,t,n)}};Object.defineProperty(Te,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function Q(){return Fx("Tensor",()=>Te)}Q();var is=class extends Te{constructor(e,t,n,a){super(e.shape,e.dtype,e.dataId,a),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(!fs(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Oa().disposeTensor(this),this.dataId=e.dataId,Oa().incRef(this,null)}dispose(){Oa().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(is,Symbol.hasInstance,{value:e=>e instanceof Te&&e.assign!=null&&e.assign instanceof Function});var Va={};$e(Va,{assertTypesMatch:()=>lS,getTensorsInContainer:()=>Rx,isTensorInList:()=>AD,makeTypesMatch:()=>_t});var Eb;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(Eb||(Eb={}));var $b;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})($b||($b={}));var Ab;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(Ab||(Ab={}));var Fb;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(Fb||(Fb={}));var Db;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(Db||(Db={}));var $D={float32:Fb,int32:$b,bool:Ab,complex64:Db};function fa(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return $D[e][t]}function Um(e){return fa(e,"int32")}function _t(e,t){if(e.dtype===t.dtype)return[e,t];let n=fa(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function lS(e,t){A(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function AD(e,t){return t.some(n=>n.id===e.id)}function Rx(e){let t=[];return uS(e,t,new Set),t}function uS(e,t,n){if(e==null)return;if(e instanceof Te){t.push(e);return}if(!FD(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),uS(s,t,n))}}function FD(e){return Array.isArray(e)||typeof e=="object"}function mb(e){return e.kernelName!=null}var ck=class{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(let e in this.registeredVariables)this.registeredVariables[e].dispose()}},Zp=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new ck}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let e=this.getSortedBackends();for(let t=0;t{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){Rh(e).forEach(t=>{t.disposeFunc!=null&&t.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{let n=t.factory();if(n&&!(n instanceof pc)&&typeof n.then=="function"){let a=++this.pendingBackendInitId,r=n.then(s=>a(athis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;tthis.startScope(n),()=>this.endScope(a),()=>(a=t(),a instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),a))}scopedRun(e,t,n){e();try{let a=n();return t(),a}catch(a){throw t(),a}}nextTensorId(){return Zp.nextTensorId++}nextVariableId(){return Zp.nextVariableId++}clone(e){let t=O.runKernel(Ri,{x:e}),n={x:e},a=s=>({x:()=>{let i="float32",o={x:s},l={dtype:i};return O.runKernel(xi,o,l)}}),r=[];return this.addTapeNode(this.state.activeScope.name,n,[t],a,r,{}),t}runKernel(e,t,n){if(this.backendName==null&&this.backend,Dh(e,this.backendName)==null)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){let a=this.backend.numDataIds(),r=0;n.forEach(o=>{r+=o.dtype==="complex64"?3:1});let s=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=a-t-r-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=[],a=this.isTapeOn(),r=this.state.numBytes,s=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let i;this.backendName==null&&this.backend;let o,l=mb(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(mb(e)){let{kernelName:h,inputs:m,attrs:f}=e;this.backendName==null&&this.backend;let g=Dh(h,this.backendName);A(g!=null,()=>`Cannot find registered kernel '${h}' for backend '${this.backendName}'`),i=()=>{let y=this.backend.numDataIds();o=g.kernelFunc({inputs:m,attrs:f,backend:this.backend});let b=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(h,y,b);let x=b.map(w=>w.rank!=null?w:this.makeTensorFromTensorInfo(w));if(a){let w=this.getTensorsForGradient(h,m,x);n=this.saveTensorsForBackwardMode(w)}return x}}else{let{forwardFunc:h}=e,m=f=>{!a||(n=f.map(g=>this.keep(this.clone(g))))};i=()=>{let f=this.backend.numDataIds();o=this.tidy(()=>h(this.backend,m));let g=Array.isArray(o)?o:[o];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,f,g),g}}let{inputs:u,attrs:p}=e,d=mb(e)?null:e.backwardsFunc,c;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?t=i():(c=this.profiler.profileKernel(l,u,()=>i()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(c),t=c.outputs)}),a&&this.addTapeNode(l,u,t,d,n,p),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-r,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-s,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(u).map(h=>u[h]!=null?u[h].shape:null),outputShapes:t.map(h=>h.shape),kernelTimeMs:c.timeMs,extraInfo:c.extraInfo}),Array.isArray(o)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(t=>this.keep(this.clone(t)))}getTensorsForGradient(e,t,n){let a=Cb(e);if(a!=null){let r=a.inputsToSave||[],s=a.outputsToSave||[],i;a.saveAllInputs?(A(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),i=Object.keys(t).map(l=>t[l])):i=r.map(l=>t[l]);let o=n.filter((l,u)=>s[u]);return i.concat(o)}return[]}makeTensor(e,t,n,a){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",a=a||this.backend;let r=e;n==="string"&&Qr(e[0])&&(r=e.map(o=>$c(o)));let s=a.write(r,t,n),i=new Te(t,n,s,this.nextTensorId());if(this.trackTensor(i,a),n==="string"){let o=this.state.tensorInfo.get(s),l=XI(r);this.state.numBytes+=l-o.bytes,o.bytes=l}return i}makeTensorFromDataId(e,t,n,a){n=n||"float32";let r={dataId:e,shape:t,dtype:n};return this.makeTensorFromTensorInfo(r,a)}makeTensorFromTensorInfo(e,t){let{dataId:n,shape:a,dtype:r}=e,s=new Te(a,r,n,this.nextTensorId());return this.trackTensor(s,t),s}makeVariable(e,t=!0,n,a){n=n||this.nextVariableId().toString(),a!=null&&a!==e.dtype&&(e=e.cast(a));let r=new is(e,t,n,this.nextTensorId());if(this.state.registeredVariables[r.name]!=null)throw new Error(`Variable with name ${r.name} was already registered`);return this.state.registeredVariables[r.name]=r,this.incRef(r,this.backend),r}trackTensor(e,t){this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++;let n=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(n=e.size*Nb(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 is||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;let t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,e.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),e.dtype!=="complex64"&&e.dtype!=="string"){let n=e.size*Nb(e.dtype);this.state.numBytes-=n}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(let e in this.state.registeredVariables){let t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){let 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,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;let 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(a=>a.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let a of this.state.activeProfile.kernels)a.kernelTimeMs=await a.kernelTimeMs,a.extraInfo=await a.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,n,a,r,s){let i={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:n,saved:r},o=Cb(e);o!=null&&(a=o.gradFunc),a!=null&&(i.gradient=l=>(l=l.map((u,p)=>{if(u==null){let d=n[p],c=um(d.size,d.dtype);return this.makeTensor(c,d.shape,d.dtype)}return u}),a(l.length>1?l:l[0],r,s))),this.state.activeTape.push(i)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){let t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){let t=Rx(e),n=new Set(t.map(r=>r.id));for(let r=0;r{!r.kept&&r.scopeId===a.id&&this.track(r)})}gradients(e,t,n,a=!1){if(A(t.length>0,()=>"gradients() received an empty list of xs."),n!=null&&n.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);let r=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));A(r instanceof Te,()=>"The result y returned by f() must be a tensor.");let s=kD(this.state.activeTape,t,r);if(!a&&s.length===0&&t.length>0)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",()=>{let i={};i[r.id]=n==null?DD(r.shape):n,ID(i,s,l=>this.tidy(l),RD);let o=t.map(l=>i[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let u of l.saved)u.dispose()}),this.state.activeTape=null),{value:r,grads:o}})}customGrad(e){return A(ss(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{A(t.every(i=>i instanceof Te),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n,a={};t.forEach((i,o)=>{a[o]=i});let r=(i,o)=>(n=e(...t,o),A(n.value instanceof Te,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),A(ss(n.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),n.value),s=(i,o)=>{let l=n.gradFunc(i,o),u=Array.isArray(l)?l:[l];A(u.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(...)."),A(u.every(d=>d instanceof Te),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let p={};return u.forEach((d,c)=>{p[c]=()=>d}),p};return this.runKernelFunc({forwardFunc:r,backwardsFunc:s,inputs:a})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}readToGPU(e,t){return this.state.tensorInfo.get(e).backend.readToGPU(e,t)}async time(e){let t=Yp(),n=await this.backend.time(e);return n.wallMs=Yp()-t,n}track(e){return this.state.activeScope!=null&&(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 ck;for(let e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};Zp.nextTensorId=0;Zp.nextVariableId=0;function DD(e){let t=_x(mt(e),"float32");return O.makeTensor(t,e,"float32")}function pS(){let e=eS();if(e._tfengine==null){let t=new QI(e);e._tfengine=new Zp(t)}return nD(e._tfengine.ENV),CD(()=>e._tfengine),e._tfengine}var O=pS();function RD(e,t){let n={a:e,b:t};return O.runKernel(gs,n)}var Ac={};$e(Ac,{isBrowser:()=>cS,isMobile:()=>OD,mockIsMobile:()=>PD});function MD(){return typeof navigator!="undefined"&&navigator!=null}var Rb;function PD(e){Rb=e}function OD(e){if(Rb!==void 0)return Rb;if(e||MD()){if(e||(e=navigator),e.product==="ReactNative")return!0;let t=e.userAgent||e.vendor||(typeof window!="undefined"?window.opera:"");if(!t){let n=e;return n.userAgentData&&n.userAgentData.mobile}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(t)||/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(t.substr(0,4))}return!1}function cS(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Qn=H();Qn.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.")});Qn.registerFlag("IS_BROWSER",()=>cS());Qn.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Qn.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Qn.registerFlag("PROD",()=>!1);Qn.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Qn.getBool("DEBUG"));Qn.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Qn.registerFlag("IS_TEST",()=>!1);Qn.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);Qn.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);Qn.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);Qn.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);Qn.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function lr(e,t){let n=e;if(hn(e))return t==="string"?[]:[e.length];if(typeof e=="object"&&"texture"in e){let r=e.channels||"RGBA";return[e.height,e.width*r.length]}if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||hn(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&H().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&dS(e,a,[]),a}function dS(e,t,n){if(n=n||[],!Array.isArray(e)&&!hn(e)){A(t.length===0,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}A(t.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`),A(e.length===t[0],()=>`Element arr[${n.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`);let a=t.slice(1);for(let r=0;r=0&&(r=a),dk(a,r,t,n),e==null||!hn(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string"){let o=e==null?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${n}' must be a Tensor or TensorLike, but got '${o}'`)}let s=lr(e,r);!hn(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?Vm(e,r):Js(e,[],!0);return O.makeTensor(i,s,r)}function Jp(e,t,n,a="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${n} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map((r,s)=>_(r,`${t}[${s}]`,n,a))}var Mx="__op";function L(e){let t=Object.keys(e);if(t.length!==1)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],a=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1)),n=n+Mx;let r=(...s)=>{O.startScope(n);try{let i=a(...s);return $x(i)&&console.error("Cannot return a Promise inside of tidy."),O.endScope(i),i}catch(i){throw O.endScope(null),i}};return Object.defineProperty(r,"name",{value:n,configurable:!0}),r}function LD(e,t){let n=_(e,"real","complex"),a=_(t,"imag","complex");Tn(n.shape,a.shape,`real and imag shapes, ${n.shape} and ${a.shape}, must match in call to tf.complex().`);let r={real:n,imag:a};return O.runKernel(mm,r)}var $r=L({complex_:LD});function vs(e,t,n,a){if(a==null&&(a=lm(e)),a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(typeof e=="object"&&"texture"in e){if(a!=="float32"&&a!=="int32")throw new Error(`Creating tensor from texture only supports 'float32'|'int32' dtype, while the dtype is ${a}.`);return e.channels=e.channels||"RGBA",O.backend.createTensorFromTexture(e,t||n,a)}if(!hn(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string")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(t!=null){Ex(t);let r=mt(t),s=mt(n);A(r===s,()=>`Based on the provided shape, [${t}], the tensor should have ${r} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${n}) does not match the provided shape (${t}). `)}}return!hn(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?Vm(e,a):Js(e,[],!0),O.makeTensor(e,t,a)}function In(e,t,n){let a=lr(e,n);return vs(e,t,a,n)}var Mb={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},Ph=4;async function zD(e,t){let n=[],a=[],r=Array.isArray(e)?e.map(i=>i.name):Object.keys(e);for(let i=0;i{let c=await l.bytes(),h=c.reduce((g,y)=>g+y.length,0)+Ph*c.length,m=new Uint8Array(h),f=0;for(let g=0;g{if(t+=s.byteLength,n.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let a=new Uint8Array(t),r=0;return n.forEach(s=>{a.set(new Uint8Array(s.buffer),r),r+=s.byteLength}),a.buffer}var Px=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function hk(e){return Px?Buffer.byteLength(e):new Blob([e]).size}function BD(e){if(Px)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),n="";for(let a=0,r=t.length;a{t+=r.byteLength});let n=new Uint8Array(t),a=0;return e.forEach(r=>{n.set(new Uint8Array(r),a),a+=r.byteLength}),n.buffer}function mk(e){let t="/";for(e=e.trim();e.endsWith(t);)e=e.slice(0,e.length-1);let n=e.split(t);return n[n.length-1]}function mS(e,t){let n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:t};return e.signature!=null&&(n.signature=e.signature),e.userDefinedMetadata!=null&&(n.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(n.modelInitializer=e.modelInitializer),e.initializerSignature!=null&&(n.initializerSignature=e.initializerSignature),e.trainingConfig!=null&&(n.trainingConfig=e.trainingConfig),n}function fS(e,t,n){let a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};if(e.trainingConfig!=null&&(a.trainingConfig=e.trainingConfig),e.weightsManifest!=null){if(!t)throw new Error("modelJSON has weightsManifest but weightSpecs is null");if(!n)throw new Error("modelJSON has weightsManifest but weightData is null");a.weightSpecs=t,a.weightData=n}return e.signature!=null&&(a.signature=e.signature),e.userDefinedMetadata!=null&&(a.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(a.modelInitializer=e.modelInitializer),e.initializerSignature!=null&&(a.initializerSignature=e.initializerSignature),a}async function Lx(e,t){let n,a;return e.weightsManifest!=null&&([n,a]=await t(e.weightsManifest)),fS(e,n,a)}function Fc(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:e.modelTopology==null?0:hk(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:hk(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function gS(e){let t=[];for(let n of e)t.push(...n.weights);return t}function UD(){let e=n=>{let a=n<<13,r=0;for(;(a&8388608)===0;)r-=8388608,a<<=1;return a&=-8388609,r+=947912704,a|r},t=new Uint32Array(2048);t[0]=0;for(let n=1;n<1024;n++)t[n]=e(n);for(let n=1024;n<2048;n++)t[n]=939524096+(n-1024<<13);return t}function GD(){let 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}function HD(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function jD(){let e=UD(),t=GD(),n=HD();return a=>{let r=new ArrayBuffer(4*a.length),s=new Uint32Array(r);for(let i=0;i>10]+(o&1023)]+t[o>>10];s[i]=l}return new Float32Array(r)}}var $t=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return $t.instance==null&&($t.instance=new $t),$t.instance}static registerSaveRouter(e){$t.getInstance().saveRouters.push(e)}static registerLoadRouter(e){$t.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return $t.getHandlers(e,"save")}static getLoadHandlers(e,t){return $t.getHandlers(e,"load",t)}static getHandlers(e,t,n){let a=[];return(t==="load"?$t.getInstance().loadRouters:$t.getInstance().saveRouters).forEach(r=>{let s=r(e,n);s!==null&&a.push(s)}),a}},qD=e=>$t.registerSaveRouter(e),KD=e=>$t.registerLoadRouter(e),XD=e=>$t.getSaveHandlers(e),YD=(e,t)=>$t.getLoadHandlers(e,t),Pb="tensorflowjs",Ob=1,Hs="models_store",es="model_info_store";function yS(){if(!H().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let e=typeof window=="undefined"?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(t==null)throw new Error("The current browser does not appear to support IndexedDB.");return t}function Lb(e){let t=e.result;t.createObjectStore(Hs,{keyPath:"modelPath"}),t.createObjectStore(es,{keyPath:"modelPath"})}var ni=class{constructor(e){if(this.indexedDB=yS(),e==null||!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((n,a)=>{let r=this.indexedDB.open(Pb,Ob);r.onupgradeneeded=()=>Lb(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(Hs,"readonly"),o=i.objectStore(Hs).get(this.modelPath);o.onsuccess=()=>{if(o.result==null)return s.close(),a(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(o.result.modelArtifacts)},o.onerror=l=>(s.close(),a(o.error)),i.oncomplete=()=>s.close()}else{let i=Fc(t),o=s.transaction(es,"readwrite"),l=o.objectStore(es),u=l.put({modelPath:this.modelPath,modelArtifactsInfo:i}),p;u.onsuccess=()=>{p=s.transaction(Hs,"readwrite");let d=p.objectStore(Hs).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i});d.onsuccess=()=>n({modelArtifactsInfo:i}),d.onerror=c=>{l=o.objectStore(es);let h=l.delete(this.modelPath);h.onsuccess=()=>(s.close(),a(d.error)),h.onerror=m=>(s.close(),a(d.error))}},u.onerror=d=>(s.close(),a(u.error)),o.oncomplete=()=>{p==null?s.close():p.oncomplete=()=>s.close()}}},r.onerror=s=>a(r.error)})}};ni.URL_SCHEME="indexeddb://";var bS=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ni.URL_SCHEME)?ZD(e.slice(ni.URL_SCHEME.length)):null;$t.registerSaveRouter(bS);$t.registerLoadRouter(bS);function ZD(e){return new ni(e)}function JD(e){return e.startsWith(ni.URL_SCHEME)?e.slice(ni.URL_SCHEME.length):e}var QD=class{constructor(){this.indexedDB=yS()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(Pb,Ob);n.onupgradeneeded=()=>Lb(n),n.onsuccess=()=>{let a=n.result,r=a.transaction(es,"readonly"),s=r.objectStore(es).getAll();s.onsuccess=()=>{let i={};for(let o of s.result)i[o.modelPath]=o.modelArtifactsInfo;e(i)},s.onerror=i=>(a.close(),t(s.error)),r.oncomplete=()=>a.close()},n.onerror=a=>t(n.error)})}async removeModel(e){return e=JD(e),new Promise((t,n)=>{let a=this.indexedDB.open(Pb,Ob);a.onupgradeneeded=()=>Lb(a),a.onsuccess=()=>{let r=a.result,s=r.transaction(es,"readwrite"),i=s.objectStore(es),o=i.get(e),l;o.onsuccess=()=>{if(o.result==null)return r.close(),n(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{let u=i.delete(e),p=()=>{l=r.transaction(Hs,"readwrite");let d=l.objectStore(Hs).delete(e);d.onsuccess=()=>t(o.result.modelArtifactsInfo),d.onerror=c=>n(o.error)};u.onsuccess=p,u.onerror=d=>(p(),r.close(),n(o.error))}},o.onerror=u=>(r.close(),n(o.error)),s.oncomplete=()=>{l==null?r.close():l.oncomplete=()=>r.close()}},a.onerror=r=>n(a.error)})}},Nr="/",ol="tensorflowjs_models",xS="info",eR="model_topology",tR="weight_specs",nR="weight_data",aR="model_metadata";function vS(e){return{info:[ol,e,xS].join(Nr),topology:[ol,e,eR].join(Nr),weightSpecs:[ol,e,tR].join(Nr),weightData:[ol,e,nR].join(Nr),modelMetadata:[ol,e,aR].join(Nr)}}function wS(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function rR(e){let t=e.split(Nr);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(Nr)}function sR(e){return e.startsWith(ai.URL_SCHEME)?e.slice(ai.URL_SCHEME.length):e}var ai=class{constructor(e){if(!H().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,e==null||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=vS(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.");{let t=JSON.stringify(e.modelTopology),n=JSON.stringify(e.weightSpecs),a=Fc(e);try{this.LS.setItem(this.keys.info,JSON.stringify(a)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,BD(e.weightData));let r={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,signature:e.signature!=null?e.signature:void 0,userDefinedMetadata:e.userDefinedMetadata!=null?e.userDefinedMetadata:void 0,modelInitializer:e.modelInitializer!=null?e.modelInitializer:void 0,initializerSignature:e.initializerSignature!=null?e.initializerSignature:void 0,trainingConfig:e.trainingConfig!=null?e.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(r)),{modelArtifactsInfo:a}}catch(r){throw wS(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${a.modelTopologyBytes}, weightSpecsBytes=${a.weightSpecsBytes}, weightDataBytes=${a.weightDataBytes}.`)}}}async load(){let e=JSON.parse(this.LS.getItem(this.keys.info));if(e==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(e.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},n=JSON.parse(this.LS.getItem(this.keys.topology));if(n==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=n;let a=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(a==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=a;let r=this.LS.getItem(this.keys.modelMetadata);if(r!=null){let i=JSON.parse(r);t.format=i.format,t.generatedBy=i.generatedBy,t.convertedBy=i.convertedBy,i.signature!=null&&(t.signature=i.signature),i.userDefinedMetadata!=null&&(t.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(t.modelInitializer=i.modelInitializer),i.initializerSignature!=null&&(t.initializerSignature=i.initializerSignature),i.trainingConfig!=null&&(t.trainingConfig=i.trainingConfig)}let s=this.LS.getItem(this.keys.weightData);if(s==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=VD(s),t}};ai.URL_SCHEME="localstorage://";var kS=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ai.URL_SCHEME)?iR(e.slice(ai.URL_SCHEME.length)):null;$t.registerSaveRouter(kS);$t.registerLoadRouter(kS);function iR(e){return new ai(e)}var oR=class{constructor(){A(H().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),A(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=ol+Nr,n=Nr+xS;for(let a=0;a"scheme must not be undefined or null."),e.endsWith(pl)&&(e=e.slice(0,e.indexOf(pl))),A(e.length>0,()=>"scheme must not be an empty string.");let n=Pn.getInstance();A(n.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),n.managers[e]=t}static getManager(e){let t=Pn.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(Pn.getInstance().managers)}};function xh(e){if(e.indexOf(pl)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Pn.getSchemes().join(",")}`);return{scheme:e.split(pl)[0],path:e.split(pl)[1]}}async function IS(e,t,n=!1){A(e!==t,()=>`Old path and new path are the same: '${e}'`);let a=$t.getLoadHandlers(e);A(a.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),A(a.length<2,()=>`Copying failed because more than one (${a.length}) load handlers for source URL ${e}.`);let r=a[0],s=$t.getSaveHandlers(t);A(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),A(s.length<2,()=>`Copying failed because more than one (${a.length}) save handlers for destination URL ${t}.`);let i=s[0],o=xh(e).scheme,l=xh(e).path,u=o===xh(e).scheme,p=await r.load();n&&u&&await Pn.getManager(o).removeModel(l);let d=await i.save(p);return n&&!u&&await Pn.getManager(o).removeModel(l),d.modelArtifactsInfo}async function lR(){let e=Pn.getSchemes(),t={};for(let n of e){let a=await Pn.getManager(n).listModels();for(let r in a){let s=n+pl+r;t[s]=a[r]}}return t}async function uR(e){let t=xh(e);return Pn.getManager(t.scheme).removeModel(t.path)}async function pR(e,t){return IS(e,t,!1)}async function cR(e,t){return IS(e,t,!0)}var dR=class{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}setTimeoutCustom(e,t){if(typeof window=="undefined"||!H().getBool("USE_SETTIMEOUTCUSTOM")){setTimeout(e,t);return}this.functionRefs.push(e),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")},t),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",n=>{if(n.source===window&&n.data.name===this.messageName){n.stopPropagation();let a=this.functionRefs[n.data.index];a(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}},!0))}};if(H().get("IS_BROWSER")){H().setPlatform("browser",new dR);try{Pn.registerManager(ai.URL_SCHEME,new oR)}catch(e){}try{Pn.registerManager(ni.URL_SCHEME,new QD)}catch(e){}}var hR={importFetch:()=>kF()},fb,mR=class{constructor(){this.util=IF(),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return H().global.fetch!=null?H().global.fetch(e,t):(fb==null&&(fb=hR.importFetch()),fb(e,t))}now(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return e.length===0?"":new this.util.TextDecoder(t).decode(e)}};H().get("IS_NODE")&&!H().get("IS_BROWSER")&&H().setPlatform("node",new mR);function Oe(e,t="float32",n){return t=t||"float32",Ex(e),new Ht(e,t,n)}function fR(e,t){let n=_(e,"x","cast");if(!KI(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&n.dtype!=="string"||t!=="string"&&n.dtype==="string")throw new Error("Only strings can be casted to strings");let a={x:n},r={dtype:t};return O.runKernel(xi,a,r)}var le=L({cast_:fR});function gR(e){let t={x:_(e,"x","clone","string_or_numeric")};return O.runKernel(Ri,t)}var ir=L({clone_:gR});function zx(e,t=!1){console.log(e.toString(t))}pS();var yR={buffer:Oe,cast:le,clone:ir,print:zx};_D(yR);var Ut={};$e(Ut,{browserFiles:()=>SR,browserHTTPRequest:()=>ER,concatenateArrayBuffers:()=>Ox,copyModel:()=>pR,decodeWeights:()=>hS,encodeWeights:()=>zD,fromMemory:()=>AR,fromMemorySync:()=>_S,getLoadHandlers:()=>YD,getModelArtifactsForJSON:()=>Lx,getModelArtifactsForJSONSync:()=>fS,getModelArtifactsInfoForJSON:()=>Fc,getSaveHandlers:()=>XD,getWeightSpecs:()=>gS,http:()=>Bx,isHTTPScheme:()=>zb,listModels:()=>lR,loadWeights:()=>TR,moveModel:()=>cR,registerLoadRouter:()=>KD,registerSaveRouter:()=>qD,removeModel:()=>uR,weightsLoaderFactory:()=>TS,withSaveHandler:()=>FR,withSaveHandlerSync:()=>DR});var bR="model",xR=".json",vR=".weights.bin";function fk(e){return new Promise(t=>setTimeout(t)).then(e)}var fl=class{constructor(e){if(!H().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(fl.URL_SCHEME)&&(e=e.slice(fl.URL_SCHEME.length)),(e==null||e.length===0)&&(e=bR),this.modelJsonFileName=e+xR,this.weightDataFileName=e+vR}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let 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.");{let n=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],a=mS(e,n),r=window.URL.createObjectURL(new Blob([JSON.stringify(a)],{type:"application/json"})),s=this.modelJsonAnchor==null?document.createElement("a"):this.modelJsonAnchor;if(s.download=this.modelJsonFileName,s.href=r,await fk(()=>s.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){let i=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;i.download=this.weightDataFileName,i.href=t,await fk(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Fc(e)}}}};fl.URL_SCHEME="downloads://";var wR=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.jsonFile=e[0],this.weightsFiles=e.slice(1)}async load(){return new Promise((e,t)=>{let n=new FileReader;n.onload=a=>{let r=JSON.parse(a.target.result),s=r.modelTopology;if(s==null){t(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(r.weightsManifest==null){t(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){e({modelTopology:s});return}let i=Lx(r,o=>this.loadWeights(o));e(i)},n.onerror=a=>t(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)})}loadWeights(e){let t=[],n=[];for(let s of e)t.push(...s.weights),n.push(...s.paths);let a=this.checkManifestAndWeightFiles(e),r=n.map(s=>this.loadWeightsFile(s,a[s]));return Promise.all(r).then(s=>[t,Ox(s)])}loadWeightsFile(e,t){return new Promise((n,a)=>{let r=new FileReader;r.onload=s=>{let i=s.target.result;n(i)},r.onerror=s=>a(`Failed to weights data from file of path '${e}'.`),r.readAsArrayBuffer(t)})}checkManifestAndWeightFiles(e){let t=[],n=this.weightsFiles.map(r=>mk(r.name)),a={};for(let r of e)r.paths.forEach(s=>{let i=mk(s);if(t.indexOf(i)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${i}'`);if(t.push(i),n.indexOf(i)===-1)throw new Error(`Weight file with basename '${i}' is not provided.`);a[s]=this.weightsFiles[n.indexOf(i)]});if(t.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${t.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return a}},kR=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(fl.URL_SCHEME)?IR(e.slice(fl.URL_SCHEME.length)):null;$t.registerSaveRouter(kR);function IR(e="model"){return new fl(e)}function SR(e){return new wR(e)}function gk(e,t,n,a){i(e),n=n==null?0:n,a=a==null?1:a,o(n,a);let r=0,s=l=>(l.then(u=>{let p=n+ ++r/e.length*(a-n);return t(p),u}),l);function i(l){A(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function o(l,u){A(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),A(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${u}`),A(u>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${u}`)}return Promise.all(e.map(s))}async function SS(e,t){t==null&&(t={});let n=t.fetchFunc==null?H().platform.fetch:t.fetchFunc,a=e.map(u=>n(u,t.requestInit,{isBinary:!0})),r=0,s=.5,i=(t.onProgress==null?await Promise.all(a):await gk(a,t.onProgress,r,s)).map(u=>u.arrayBuffer()),o=.5,l=1;return t.onProgress==null?await Promise.all(i):await gk(i,t.onProgress,o,l)}async function TR(e,t="",n,a){return TS(r=>SS(r,{requestInit:a}))(e,t,n)}function TS(e){return async(t,n="",a)=>{let r=t.map(()=>!1),s={},i=a!=null?a.map(()=>!1):[],o=[];if(t.forEach((h,m)=>{let f=0;h.weights.forEach(g=>{let y="quantization"in g?g.quantization.dtype:g.dtype,b=Mb[y]*mt(g.shape),x=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:b})};a!=null?a.forEach((w,I)=>{w===g.name&&(x(),i[I]=!0)}):x(),o.push(g.name),f+=b})}),!i.every(h=>h)){let h=a.filter((m,f)=>!i[f]);throw new Error(`Could not find weights in manifest with names: ${h.join(", ")}. +Manifest JSON has weights with names: ${o.join(", ")}.`)}let l=r.reduce((h,m,f)=>(m&&h.push(f),h),[]),u=[];l.forEach(h=>{t[h].paths.forEach(m=>{let f=n+(n.endsWith("/")?"":"/")+m;u.push(f)})});let p=await e(u),d={},c=0;return l.forEach(h=>{let m=t[h].paths.length,f=0;for(let x=0;x{let w=g.slice(x.groupOffset,x.groupOffset+x.sizeBytes),I=hS(w,[x.manifestEntry]);for(let T in I)d[T]=I[T]}),c+=m}),d}}var NR="application/octet-stream",CR="application/json",Wx=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(A(typeof t.fetchFunc=="function",()=>"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=H().platform.fetch,A(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&A(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)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.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],a=mS(e,n);t.body.append("model.json",new Blob([JSON.stringify(a)],{type:CR}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:NR}),"model.weights.bin");let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:Fc(e),responses:[r]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${r.status}.`)}async load(){let 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(r){let s=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?s+=" 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.":s+=" Please make sure the server is serving valid JSON for this request.",new Error(s)}let n=t.modelTopology,a=t.weightsManifest;if(n==null&&a==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return Lx(t,r=>this.loadWeights(r))}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=_R(t),r=this.weightPathPrefix||n,s=gS(e),i=[],o=[];for(let u of e)for(let p of u.paths)this.weightUrlConverter!=null?o.push(this.weightUrlConverter(p)):i.push(r+p+a);this.weightUrlConverter&&i.push(...await Promise.all(o));let l=await SS(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[s,Ox(l)]}};Wx.URL_SCHEME_REGEX=/^https?:\/\//;function _R(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function zb(e){return e.match(Wx.URL_SCHEME_REGEX)!=null}var NS=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>zb(a)):n=zb(e),n)return Bx(e,t)}return null};$t.registerSaveRouter(NS);$t.registerLoadRouter(NS);function Bx(e,t){return new Wx(e,t)}function ER(e,t){return Bx(e,t)}var gb=class{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}},CS=class{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}},$R=class{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}};function AR(e,t,n,a){let r=arguments;return new $R(_S(...r))}function _S(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new gb(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 gb({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 gb({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function FR(e){return new CS(e)}function DR(e){return new CS(e)}var ES={};$e(ES,{confusionMatrix:()=>eM});function RR(e,t,n=!1,a=!1){let r=_(e,"a","matMul"),s=_(t,"b","matMul");[r,s]=_t(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return O.runKernel(bi,i,o)}var Fe=L({matMul_:RR});function MR(e,t,n=1,a=0,r="int32"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let s={indices:_(e,"indices","oneHot","int32")},i={dtype:r,depth:t,onValue:n,offValue:a};return O.runKernel(Hi,s,i)}var gl=L({oneHot_:MR});function PR(){H().set("PROD",!0)}function OR(){H().set("DEBUG",!0)}function LR(){H().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function Vx(e){H().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}ED(Vx);function zR(){O.disposeVariables()}function _a(){return O}function Oh(){return O.memory()}function WR(e){return O.profile(e)}function P(e,t){return O.tidy(e,t)}function _e(e){Rx(e).forEach(t=>t.dispose())}function Jt(e){return O.keep(e)}function BR(e){return O.time(e)}function VR(e){return O.setBackend(e)}function UR(){return O.ready()}function GR(){return O.backendName}function HR(e){O.removeBackend(e)}function jR(e){return O.findBackend(e)}function qR(e){return O.findBackendFactory(e)}function Gm(e,t,n=1){return O.registerBackend(e,t,n)}function $S(){return O.backend}function KR(e,t){H().setPlatform(e,t)}function XR(e){let t={input:_(e,"input","imag")};return O.runKernel(Nm,t)}var Dc=L({imag_:XR});function YR(e){let t={x:_(e,"x","neg")};return O.runKernel(du,t)}var vt=L({neg_:YR});function ZR(e){let t={input:_(e,"input","real")};return O.runKernel(Pm,t)}var yl=L({real_:ZR});function JR(e,t,n){let a=_(e,"x","transpose");if(t==null&&(t=a.shape.map((i,o)=>o).reverse()),A(a.rank===t.length,()=>`Error in transpose: rank of input ${a.rank} must match length of perm ${t}.`),t.forEach(i=>{A(i>=0&&i`All entries in 'perm' must be between 0 and ${a.rank-1} but got ${t}`)}),a.rank<=1)return a.clone();let r={x:a},s={perm:t};return a.dtype==="complex64"?P(()=>{let i=yl(a),o=Dc(a);return i=O.runKernel(_r,{x:i},s),o=O.runKernel(_r,{x:o},s),n&&(o=vt(o)),$r(i,o)}):O.runKernel(_r,r,s)}var Ee=L({transpose_:JR});function QR(e,t,n){let a=_(e,"labels","confusionMatrix"),r=_(t,"predictions","confusionMatrix");A(n==null||n>0&&Number.isInteger(n),()=>`If provided, numClasses must be a positive integer, but got ${n}`),A(a.rank===1,()=>`Expected the rank of labels to be 1, but got ${a.rank}`),A(r.rank===1,()=>`Expected the rank of predictions to be 1, but got ${r.rank}`),A(a.shape[0]===r.shape[0],()=>`Mismatch in the number of examples: ${a.shape[0]} vs. ${r.shape[0]}. Labels and predictions should have the same number of elements.`),A(n>0&&Number.isInteger(n),()=>`numClasses is required to be a positive integer, but got ${n}`);let s=gl(le(a,"int32"),n),i=gl(le(r,"int32"),n),o=Ee(s),l=Fe(o,i);return le(l,"int32")}var eM=L({confusionMatrix_:QR}),Ou={};$e(Ou,{assertAndGetBroadcastShape:()=>ut,getBroadcastDims:()=>AS,getReductionAxes:()=>Wt});function AS(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function Wt(e,t){let n=[];for(let a=0;a1)&&n.unshift(s)}return n}function ut(e,t){let n=[],a=Math.max(e.length,t.length);for(let r=0;roM,fromPixelsAsync:()=>sM,toPixels:()=>iM});function Rc(e,t,n){if(mi(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let a=lr(e,n);if(a.length!==3&&a.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return vs(e,t,a,n)}var Os;function FS(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(e==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let n=!1,a=!1,r=!1,s=!1,i=!1,o=!1;if(e.data instanceof Uint8Array)n=!0;else if(typeof ImageData!="undefined"&&e instanceof ImageData)a=!0;else if(typeof HTMLVideoElement!="undefined"&&e instanceof HTMLVideoElement)r=!0;else if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement)s=!0;else if(e.getContext!=null)i=!0;else if(typeof ImageBitmap!="undefined"&&e instanceof ImageBitmap)o=!0;else 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}`);if(Dh(Fh,O.backendName)!=null){let c={pixels:e},h={numChannels:t};return O.runKernel(Fh,c,h)}let[l,u]=r?[e.videoWidth,e.videoHeight]:[e.width,e.height],p;if(i)p=e.getContext("2d").getImageData(0,0,l,u).data;else if(a||n)p=e.data;else if(s||r||o){if(Os==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")Os=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else Os=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Os.canvas.width=l,Os.canvas.height=u,Os.drawImage(e,0,0,l,u),p=Os.getImageData(0,0,l,u).data}let d;if(t===4)d=new Int32Array(p);else{let c=l*u;d=new Int32Array(c*t);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(n.dtype!=="float32"&&n.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${n.dtype}. Please use float32 or int32 tensors.`);let i=await n.data(),o=n.dtype==="float32"?255:1,l=new Uint8ClampedArray(r*a*4);for(let u=0;u1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${h}.`)}else if(n.dtype==="int32"&&(h<0||h>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${h}.`);s===1?(p[0]=h*o,p[1]=h*o,p[2]=h*o):p[c]=h*o}let d=u*4;l[d+0]=Math.round(p[0]),l[d+1]=Math.round(p[1]),l[d+2]=Math.round(p[2]),l[d+3]=Math.round(p[3])}if(t!=null){t.width=r,t.height=a;let u=t.getContext("2d"),p=new ImageData(l,r,a);u.putImageData(p,0,0)}return n!==e&&n.dispose(),l}var oM=L({fromPixels_:FS}),Ux={};$e(Ux,{prepareAndValidate:()=>DS});function DS(e,t){let n=e.shape.length,a=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(a<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${a}.`);if(t.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[a-1]>n)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[a-1]} vs. ${n}`);if(mt(e.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);let r=t.shape,s=r[r.length-1],i=1;for(let d=0;dd/u),1].slice(0,s);return[l,i,u,p]}var Gx={};$e(Gx,{calculateShapes:()=>RS,validateInput:()=>jx,validateUpdateShape:()=>Hx});function Hx(e,t,n){let a=t.rank>1?t.shape[t.rank-1]:1,r=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: ${a}, and batchDim: ${r}.`;if(n.rank1?t.shape[a-1]:1,s=n.length,i=1;for(let d=r;duM,computeFlatOffset:()=>mM,computeOutShape:()=>cM,getNormalizedAxes:()=>dM,isSliceContinous:()=>hM,maskToAxes:()=>pM,parseSliceParams:()=>US,sliceInfo:()=>fM,startForAxis:()=>BS,startIndicesWithElidedDims:()=>LS,stopForAxis:()=>VS,stopIndicesWithElidedDims:()=>zS,stridesForAxis:()=>WS,stridesWithElidedDims:()=>MS});var Wb=-2,lM=-1;function uM(e,t,n){let a=e.shape.length;A(a===t.length,()=>`Error in slice${a}D: Length of begin ${t} must match the rank of the array (${a}).`),A(a===n.length,()=>`Error in slice${a}D: Length of size ${n} must match the rank of the array (${a}).`);for(let r=0;r`Error in slice${a}D: begin[${r}] + size[${r}] (${t[r]+n[r]}) would overflow input.shape[${r}] (${e.shape[r]})`)}function pM(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function cM(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;p=LS(i,h,m,a,e),d=zS(o,h,m,r,e),c=MS(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=PS(t,n,o),u=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=PS(t,n,o),u=a[l];e&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),i=Kp(0,i,l-1),i}function VS(e,t,n,a,r,s){let i=t[r],o=n[r]||1;(e&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),o>0?i=Kp(0,i,l):i=Kp(-1,i,l-1),i}function hM(e,t,n){let a=n.length;for(let r=0;r1){a=r;break}for(let r=a+1;r0||n[r]!==e[r])return!1;return!0}function mM(e,t){let n=e.length>0?e[e.length-1]:1;for(let a=0;a{A(i!==-1,()=>"slice() does not support negative begin indexing.")});let s;return n==null?s=new Array(r).fill(-1):typeof n=="number"?s=[n,...new Array(r-1).fill(-1)]:n.lengthi>=0?i:(A(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${o}.`),e.shape[o]-a[o])),[a,s]}function fM(e,t,n,a,r,s,i,o,l){let u;if(a==null?(u=new Array(t.length),u.fill(1)):u=a,i!=null&&(i&i-1)!==0)throw new Error("Multiple ellipses in slice is not allowed.");let p=!1,d={dims:u.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:n.slice(),strides:u.slice(),beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};for(let b=0;b0?0:-1,c.strides[b]>0?w:w-1];if(x&&c.strides[b]<=0)throw Error("only stride 1 allowed on non-range indexing.");f=f&&c.strides[b]===1;let C=!!(c.beginMask&1<=w)throw Error(`slice index ${c.begin[b]} of dimension ${b} out of bounds.`)}else c.begin[b]=yk(c.begin[b],0,c.strides[b],w,I,T),c.end[b]=yk(c.end[b],1,c.strides[b],w,I,T);let R=c.strides[b]===1&&c.begin[b]===0&&c.end[b]===w;h=h&&R,m=m&&(b===0&&c.strides[b]===1||R)}else h=h&&c.strides[b]===1&&C,m=m&&(b===0&&c.strides[b]===1||C);let E,$=!1;if(c.beginValid&&c.endValid?(E=c.end[b]-c.begin[b],$=!0):x?(E=1,$=!0):C&&w>=0&&(c.strides[b]<0?E=-w:E=w,$=!0),$){let R;E===0||E<0!=c.strides[b]<0?R=0:R=Math.trunc(E/c.strides[b])+(E%c.strides[b]!==0?1:0),g.push(R)}else g.push(-1)}for(let b=0;b=0?y.push(g[x]):x===Wb&&y.push(1)}return{finalShapeSparse:y.filter((b,x)=>c.finalShapeGatherIndices[x]!==Wb),finalShape:y,isIdentity:h,sliceDim0:m,isSimpleSlice:f,begin:c.begin,end:c.end,strides:c.strides}}function gM(e,t){t.beginMask=0,t.endMask=0,t.shrinkAxisMask=0;let n=0;t.beginValid=e.begin!=null,t.endValid=e.end!=null,t.begin=new Array(t.dims),t.end=new Array(t.dims),t.strides=new Array(t.dims),t.finalShapeGatherIndices=[],t.finalShapeGatherIndicesSparse=[],t.inputShapeGatherIndicesSparse=new Array(t.dims);for(let a=0;a0?s[t]:s[t+1&1];{let i=e<0?a+e:e;return is[1]?s[1]:i}}var ne={};$e(ne,{Serializable:()=>GS,SerializationMap:()=>Vs,registerClass:()=>ws});var GS=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},Vs=class{constructor(){this.classNameMap={}}static getMap(){return Vs.instance==null&&(Vs.instance=new Vs),Vs.instance}static register(e){Vs.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function ws(e){A(e.className!=null,()=>"Class being registered does not have the static className property defined."),A(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),A(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),Vs.register(e)}var HS={};$e(HS,{TEST_EPSILON_FLOAT16:()=>jS,createVideoElement:()=>SM,encodeStrings:()=>qS,expectArrayBuffersEqual:()=>IM,expectArraysClose:()=>bM,expectArraysEqual:()=>vM,expectNumbersClose:()=>wM,expectPromiseToFail:()=>xM,expectValuesInRange:()=>kM,play:()=>TM,testEpsilon:()=>qx});var yM=.001,jS=.1;function bM(e,t,n){return n==null&&(n=qx()),Bb(e,t,(a,r)=>Kx(a,r,n))}function qx(){return O.backend.floatPrecision()===32?yM:jS}function Bb(e,t,n){let a=!0;if((hn(e)||hn(t))&&(a=!1),hn(e)&&hn(t)&&(a=!0),a){let i=e.constructor.name,o=t.constructor.name;if(i!==o)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${o}`)}if(Array.isArray(e)&&Array.isArray(t)){let i=lr(e),o=lr(t);if(!fs(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=hn(e)?e:Js(e),s=hn(t)?t:Js(t);if(r.length!==s.length)throw new Error(`Arrays have different lengths actual: ${r.length} vs expected: ${s.length}. Actual: ${r}. Expected: ${s}.`);for(let i=0;it.fail(),()=>t()),typeof expect!="undefined"&&expect().nothing()}function vM(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Qr(e)||Qr(e[0])||Qr(t)||Qr(t[0])?Bb(e,n,(a,r)=>a==r):Bb(e,t,(a,r)=>Kx(a,r,0))}function wM(e,t,n){if(n==null&&(n=qx()),!Kx(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function Kx(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function kM(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function IM(e,t){let n=new Float32Array(e),a=new Float32Array(t);if(n.length!==a.length)throw new Error(`Expected ArrayBuffer to be of length ${a.length}, but it was ${n.length}`);for(let r=0;r{t.addEventListener("loadeddata",a=>n(t)),t.load()})}async function TM(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise(t=>{e.requestVideoFrameCallback(t)})}var NM="4.0.0";function CM(e,t){let n=_(e,"a","add"),a=_(t,"b","add");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(gs,r)}var Y=L({add_:CM});function _M(e,t){let n=_(e,"a","floorDiv"),a=_(t,"b","floorDiv");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel($i,r)}var Hm=L({floorDiv_:_M});function EM(e,t){let n=_(e,"a","div"),a=_(t,"b","div");if([n,a]=_t(n,a),n.dtype==="int32"&&a.dtype==="int32")return Hm(n,a);let r={a:n,b:a},s={};return O.runKernel(Ci,r,s)}var he=L({div_:EM});function AM(e,t){let n=_(e,"a","mul"),a=_(t,"b","mul");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(Gi,r)}var z=L({mul_:AM});function $M(e){let t=_(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return O.runKernel(hc,n)}else{let n={x:t};return O.runKernel(Dl,n)}}var Lt=L({abs_:$M});function FM(e){let t={x:_(e,"x","acos")};return O.runKernel(Rl,t)}var Xx=L({acos_:FM});function DM(e){let t={x:_(e,"x","acosh")};return O.runKernel(Ml,t)}var Yx=L({acosh_:DM});function RM(e){$(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),$(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);let t=e.map((r,s)=>_(r,`tensors${s}`,"addN")),n=t[0];t.forEach(r=>{if(r.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(r=>{if(!fs(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return O.runKernel(fi,a)}var KS=L({addN_:RM});function MM(e,t=null,n=!1){let a={x:_(e,"x","all","bool")},r={axis:t,keepDims:n};return O.runKernel(Pl,a,r)}var jm=L({all_:MM});function PM(e,t=null,n=!1){let a={x:_(e,"x","any","bool")},r={axis:t,keepDims:n};return O.runKernel(Ol,a,r)}var Qp=L({any_:PM});function OM(e,t=0){let n={x:_(e,"x","argMax")},a={axis:t};return O.runKernel(gi,n,a)}var ri=L({argMax_:OM});function LM(e,t=0){let n={x:_(e,"x","argMin")},a={axis:t};return O.runKernel(cc,n,a)}var Zx=L({argMin_:LM});function zM(e){let t={x:_(e,"x","asin")};return O.runKernel(Ll,t)}var Jx=L({asin_:zM});function WM(e){let t={x:_(e,"x","asinh")};return O.runKernel(zl,t)}var Qx=L({asinh_:WM});function BM(e){let t={x:_(e,"x","atan")};return O.runKernel(Wl,t)}var ev=L({atan_:BM});function VM(e,t){let n=_(e,"a","atan2"),a=_(t,"b","atan2");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(Vl,r)}var tv=L({atan2_:VM});function UM(e){let t={x:_(e,"x","atanh")};return O.runKernel(Bl,t)}var nv=L({atanh_:UM});function GM(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=ZS(r);return Mc(e,o,n,s,a,null,null,l)}function XS(e,t,n,a,r,s,i="channelsLast"){let[o,l]=Lh(t),u;if(i==="channelsLast")u=[o,l,e[3],e[3]];else if(i==="channelsFirst")u=[o,l,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return Mc(e,u,n,a,r,s,!1,i)}function HM(e,t,n,a,r,s,i="NDHWC"){let[o,l,u]=Vb(t),p,d;if(i==="NDHWC")d="channelsLast",p=[o,l,u,e[4],e[4]];else if(i==="NCDHW")d="channelsFirst",p=[o,l,u,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return YS(e,p,n,a,r,!1,d,s)}function Mc(e,t,n,a,r,s,i=!1,o="channelsLast"){let[l,u,p,d]=[-1,-1,-1,-1];if(o==="channelsLast")[l,u,p,d]=e;else if(o==="channelsFirst")[l,d,u,p]=e;else throw new Error(`Unknown dataFormat ${o}`);let[c,h,,m]=t,[f,g]=Lh(n),[y,b]=Lh(a),x=cl(c,y),w=cl(h,b),{padInfo:I,outHeight:T,outWidth:C}=KM(r,u,p,f,g,x,w,s,o),E=i?m*d:m,A;return o==="channelsFirst"?A=[l,E,T,C]:o==="channelsLast"&&(A=[l,T,C,E]),{batchSize:l,dataFormat:o,inHeight:u,inWidth:p,inChannels:d,outHeight:T,outWidth:C,outChannels:E,padInfo:I,strideHeight:f,strideWidth:g,filterHeight:c,filterWidth:h,effectiveFilterHeight:x,effectiveFilterWidth:w,dilationHeight:y,dilationWidth:b,inShape:e,outShape:A,filterShape:t}}function YS(e,t,n,a,r,s=!1,i="channelsLast",o){let[l,u,p,d,c]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[l,u,p,d,c]=e;else if(i==="channelsFirst")[l,c,u,p,d]=e;else throw new Error(`Unknown dataFormat ${i}`);let[h,m,f,,g]=t,[y,b,x]=Vb(n),[w,I,T]=Vb(a),C=cl(h,w),E=cl(m,I),A=cl(f,T),{padInfo:R,outDepth:F,outHeight:S,outWidth:M}=XM(r,u,p,d,y,b,x,C,E,A,o),B=s?g*c:g,U;return i==="channelsFirst"?U=[l,B,F,S,M]:i==="channelsLast"&&(U=[l,F,S,M,B]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:p,inWidth:d,inChannels:c,outDepth:F,outHeight:S,outWidth:M,outChannels:B,padInfo:R,strideDepth:y,strideHeight:b,strideWidth:x,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:C,effectiveFilterHeight:E,effectiveFilterWidth:A,dilationDepth:w,dilationHeight:I,dilationWidth:T,inShape:e,outShape:U,filterShape:t}}function jM(e,t,n,a,r){a==null&&(a=av(e,t,n));let s=e[0],i=e[1],o=Ks((s-t+2*a)/n+1,r),l=Ks((i-t+2*a)/n+1,r);return[o,l]}function qM(e,t,n,a,r,s){r==null&&(r=av(e,t,a));let i=e[0],o=e[1],l=e[2],u=Ks((i-t+2*r)/a+1,s),p=Ks((o-t+2*r)/a+1,s),d=Ks((l-t+2*r)/a+1,s);return[u,p,d,n]}function av(e,t,n,a=1){let r=cl(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function Lh(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function Vb(e){return typeof e=="number"?[e,e,e]:e}function cl(e,t){return t<=1?e:e+(e-1)*(t-1)}function KM(e,t,n,a,r,s,i,o,l){let u,p,d;if(typeof e=="number"){u={top:e,bottom:e,left:e,right:e,type:e===0?"VALID":"NUMBER"};let c=jM([t,n],s,a,e,o);p=c[0],d=c[1]}else if(e==="same"){p=Math.ceil(t/a),d=Math.ceil(n/r);let c=Math.max(0,(p-1)*a+s-t),h=Math.max(0,(d-1)*r+i-n),m=Math.floor(c/2),f=c-m,g=Math.floor(h/2),y=h-g;u={top:m,bottom:f,left:g,right:y,type:"SAME"}}else if(e==="valid")u={top:0,bottom:0,left:0,right:0,type:"VALID"},p=Math.ceil((t-s+1)/a),d=Math.ceil((n-i+1)/r);else if(typeof e=="object"){let c=l==="channelsLast"?e[1][0]:e[2][0],h=l==="channelsLast"?e[1][1]:e[2][1],m=l==="channelsLast"?e[2][0]:e[3][0],f=l==="channelsLast"?e[2][1]:e[3][1];u={top:c,bottom:h,left:m,right:f,type:c===0&&h===0&&m===0&&f===0?"VALID":"EXPLICIT"},p=Ks((t-s+c+h)/a+1,o),d=Ks((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outHeight:p,outWidth:d}}function XM(e,t,n,a,r,s,i,o,l,u,p){let d,c,h,m;if(typeof e=="number"){d={top:e,bottom:e,left:e,right:e,front:e,back:e,type:e===0?"VALID":"NUMBER"};let f=qM([t,n,a,1],o,1,r,e,p);c=f[0],h=f[1],m=f[2]}else if(e==="same"){c=Math.ceil(t/r),h=Math.ceil(n/s),m=Math.ceil(a/i);let f=(c-1)*r+o-t,g=(h-1)*s+l-n,y=(m-1)*i+u-a,b=Math.floor(f/2),x=f-b,w=Math.floor(g/2),I=g-w,T=Math.floor(y/2),C=y-T;d={top:w,bottom:I,left:T,right:C,front:b,back:x,type:"SAME"}}else if(e==="valid")d={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},c=Math.ceil((t-o+1)/r),h=Math.ceil((n-l+1)/s),m=Math.ceil((a-u+1)/i);else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:d,outDepth:c,outHeight:h,outWidth:m}}function Ks(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 os(e){let[t,n,a]=Lh(e);return t===1&&n===1&&a===1}function cr(e,t){return os(e)||os(t)}function ZS(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function Nn(e,t,n){if(n!=null){if(typeof t=="string")throw Error(`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);if(typeof t=="number")$(hl(t),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);else if(typeof t=="object")t.forEach(a=>{a.forEach(r=>{$(hl(r),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${r}.`)})});else throw Error(`Error in ${e}: Unknown padding parameter: ${t}`)}}function YM(e,t){let n={x:_(e,"x","reshape","string_or_numeric")},a={shape:t};return O.runKernel(vu,n,a)}var W=L({reshape_:YM});function ZM(e,t,n,a,r){let s=_(e,"x","avgPool","float32"),i=1;$(cr(n,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`);let o=s,l=!1;s.rank===3&&(l=!0,o=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),$(o.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${o.rank}.`),Nn("avgPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=O.runKernel(yi,u,p);return d=oe(d,s.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var ya=L({avgPool_:ZM});function JM(e,t,n,a,r,s="NDHWC"){let i=_(e,"x","avgPool3d","float32"),o=i,l=!1;i.rank===4&&(l=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),$(o.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`),$(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Nn("avgPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=O.runKernel(dc,u,p);return d=oe(d,o.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var rv=L({avgPool3d_:JM});function QM(e,t=0){$(e.length>=1,()=>"Pass at least one tensor to concat");let n=Jp(e,"tensors","concat","string_or_numeric");if(n[0].dtype==="complex64"&&n.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor - with dtype ${s.dtype}. `)}),n.length===1)return ir(n[0]);let a=n,r={axis:t};return O.runKernel(Gl,a,r)}var Ze=L({concat_:QM});function eP(e){let t={x:_(e,"x","sigmoid","float32")};return O.runKernel(ro,t)}var ha=L({sigmoid_:eP});function tP(e,t,n){let a=_(e,"x","slice","string_or_numeric");if(a.rank===0)throw new Error("Slicing scalar is not possible");let r={x:a},s={begin:t,size:n};return O.runKernel(Su,r,s)}var Be=L({slice_:tP});function nP(e){let t={x:_(e,"x","tanh","float32")};return O.runKernel(co,t)}var si=L({tanh_:nP});function aP(e,t,n,a,r,s){let i=_(e,"forgetBias","basicLSTMCell"),o=_(t,"lstmKernel","basicLSTMCell"),l=_(n,"lstmBias","basicLSTMCell"),u=_(a,"data","basicLSTMCell"),p=_(r,"c","basicLSTMCell"),d=_(s,"h","basicLSTMCell"),c=Ze([u,d],1),h=Fe(c,o),m=Y(h,l),f=m.shape[0],g=m.shape[1]/4,y=[f,g],b=Be(m,[0,0],y),x=Be(m,[0,g],y),w=Be(m,[0,g*2],y),I=Be(m,[0,g*3],y),T=Y(z(ha(b),si(x)),z(p,ha(Y(i,w)))),C=z(si(T),ha(I));return[T,C]}var JS=L({basicLSTMCell_:aP});function rP(e,t,n){let a=_(e,"x","batchToSpaceND"),r=t.reduce((o,l)=>o*l);$(a.rank>=1+t.length,()=>`input rank is ${a.rank} but should be > than blockShape.length ${t.length}`),$(n.length===t.length,()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`),$(a.shape[0]%r===0,()=>`input tensor batch is ${a.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${r}`);let s={x:a},i={blockShape:t,crops:n};return O.runKernel(Ul,s,i)}var Pc=L({batchToSpaceND_:rP});function sP(e){let t;return e.rank===0||e.rank===1?t=W(e,[1,1,1,e.size]):e.rank===2?t=W(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function iP(e,t,n,a,r,s){s==null&&(s=.001);let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let p;a!=null&&(p=_(a,"offset","batchNorm")),$(o.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),$(p==null||o.rank===p.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),$(u==null||o.rank===u.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let d={x:sP(i),scale:u,offset:p,mean:o,variance:l},c={varianceEpsilon:s},h=O.runKernel(Fi,d,c);return W(h,i.shape)}var ks=L({batchNorm_:iP});function oP(e,t,n,a,r,s){let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let p;return a!=null&&(p=_(a,"offset","batchNorm")),$(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),$(o.rank===2||o.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`),$(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),u!=null&&$(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`),p!=null&&$(p.rank===2||p.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${p.rank}.`),ks(i,o,l,p,u,s)}var sv=L({batchNorm2d_:oP});function lP(e,t,n,a,r,s){let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let p;return a!=null&&(p=_(a,"offset","batchNorm")),$(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),$(o.rank===3||o.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`),$(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),u!=null&&$(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`),p!=null&&$(p.rank===3||p.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${p.rank}.`),ks(i,o,l,p,u,s)}var iv=L({batchNorm3d_:lP});function uP(e,t,n,a,r,s){let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let p;return a!=null&&(p=_(a,"offset","batchNorm")),$(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),$(o.rank===4||o.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`),$(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),u!=null&&$(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`),p!=null&&$(p.rank===4||p.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${p.rank}.`),ks(i,o,l,p,u,s)}var ov=L({batchNorm4d_:uP});function pP(e,t,n){let a=_(e,"x","bincount"),r=_(t,"weights","bincount");$(a.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${a.dtype}`),$(n>=0,()=>`size must be non-negative, but got ${n}.`),$(r.size===a.size||r.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${a.shape}, weights shape: ${r.shape}.`);let s={x:a,weights:r},i={size:n};return O.runKernel(dm,s,i)}var lv=L({bincount_:pP});function cP(e,t){let n=_(e,"s0","broadcastArgs","int32"),a=_(t,"s1","broadcastArgs","int32");if(n.rank!==1)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${n.rank}`);if(a.rank!==1)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${a.rank}`);let r={s0:n,s1:a};return O.runKernel(hm,r)}var QS=L({broadcastArgs_:cP});function dP(e,t){let n=_(e,"broadcastTo","x"),a=n.shape;if(t.some(l=>!(l>0)||l%1!==0))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengthn.rank){let l=n.shape.slice();for(;l.length=0;l--)if(r[l]===t[l])s[l]=1;else if(n.shape[l]!==1)throw new Error(`broadcastTo(): [${a}] cannot be broadcast to [${t}].`);if(s.map((l,u)=>l>1?u:-1).filter(l=>l>=0).length===0)return ir(n);let i={x:n},o={reps:s};return O.runKernel(bs,i,o)}var Xs=L({broadcastTo_:dP});function hP(e){let t={x:_(e,"x","ceil","float32")};return O.runKernel(vi,t)}var uv=L({ceil_:hP});function gn(e,t,n){let a={shape:e,value:t,dtype:n};return O.runKernel(gc,{},a)}function mP(e,t,n){let a=_(e,"x","clipByValue");if($(t<=n,()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`),t===n)return gn(a.shape,t,a.dtype);let r={x:a},s={clipValueMin:t,clipValueMax:n};return O.runKernel(ys,r,s)}var en=L({clipByValue_:mP});function fP(e){return Ze(e,0)}var pv=L({concat1d_:fP});function gP(e,t){return Ze(e,t)}var cv=L({concat2d_:gP});function yP(e,t){return Ze(e,t)}var dv=L({concat3d_:yP});function bP(e,t){return Ze(e,t)}var hv=L({concat4d_:bP});function xP(e,t,n,a,r="NHWC",s=[1,1],i){let o=_(e,"x","conv2d","float32"),l=_(t,"filter","conv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),$(u.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${u.rank}.`),$(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),Nn("conv2d",a,i);let d=r==="NHWC"?u.shape[3]:u.shape[1];$(d===l.shape[2],()=>`Error in conv2d: depth of input (${d}) must match input depth for filter ${l.shape[2]}.`),$(cr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=O.runKernel(wi,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var $t=L({conv2d_:xP});function vP(e,t,n,a,r="NWC",s=1,i){let o=_(e,"x","conv1d"),l=_(t,"filter","conv1d"),u=o,p=!1;o.rank===2&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1]])),$(u.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${u.rank}.`),$(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),Nn("conv1d",a,i),$(u.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${u.shape[2]}) must match input depth for filter ${l.shape[1]}.`),$(cr(n,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`),$(r==="NWC",()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`);let d=W(l,[1,l.shape[0],l.shape[1],l.shape[2]]),c=W(u,[u.shape[0],1,u.shape[1],u.shape[2]]),h=$t(c,d,[1,n],a,"NHWC",[1,s],i);return p?W(h,[h.shape[2],h.shape[3]]):W(h,[h.shape[0],h.shape[2],h.shape[3]])}var qm=L({conv1d_:vP});function wP(e,t,n,a,r,s="NHWC",i){$(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let o=e,l=t,u=!1;t.rank===3&&(u=!0,l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),$(o.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`),$(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),$(n.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`);let p=s==="NHWC"?o[3]:o[1],d=s==="NHWC"?l.shape[3]:l.shape[1];$(p===n.shape[2],()=>`Error in conv2dDerInput: depth of input (${p}) must match input depth for filter ${n.shape[2]}.`),$(d===n.shape[3],()=>`Error in conv2dDerInput: depth of output (${d}) must match output depth for filter ${n.shape[3]}.`),Nn("conv2dDerInput",r,i);let c={dy:l,filter:n},h={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,inputShape:o},m=O.runKernel(ki,c,h);return u?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var mv=L({conv2DBackpropInput_:wP});function kP(e,t,n,a,r,s){let i=_(e,"x","conv2dTranspose"),o=_(t,"filter","conv2dTranspose");return mv(n,i,o,a,r,"NHWC",s)}var Km=L({conv2dTranspose_:kP});function IP(e,t,n,a,r="NDHWC",s=[1,1,1]){let i=_(e,"x","conv3d"),o=_(t,"filter","conv3d"),l=i,u=!1;i.rank===4&&(u=!0,l=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),$(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),$(o.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`),$(l.shape[4]===o.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`),$(cr(n,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),$(r==="NDHWC",()=>`Error in conv3d: got dataFormat of ${r} but only NDHWC is currently supported.`);let p={x:l,filter:o},d={strides:n,pad:a,dataFormat:r,dilations:s},c=O.runKernel(mc,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var fv=L({conv3d_:IP});function SP(e,t,n,a,r){$(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let s=e,i=t,o=!1;t.rank===4&&(o=!0,i=W(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,e[0],e[1],e[2],e[3]]);let l=s[4],u=i.shape[4];$(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),$(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),$(n.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`),$(l===n.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`),$(u===n.shape[4],()=>`Error in conv3dDerInput: depth of output (${u}) must match output depth for filter ${n.shape[4]}.`);let p={dy:i,filter:n},d={pad:r,strides:a,inputShape:s},c=O.runKernel(ym,p,d);return o?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var eT=L({conv3DBackpropInput_:SP});function TP(e,t,n,a,r){let s=_(e,"x","conv3dTranspose"),i=_(t,"filter","conv3dTranspose");return eT(n,s,i,a,r)}var gv=L({conv3dTranspose_:TP});function NP(e){let t={x:_(e,"x","cos","float32")};return O.runKernel(Ii,t)}var Oc=L({cos_:NP});function CP(e){let t={x:_(e,"x","cosh","float32")};return O.runKernel(Si,t)}var Xm=L({cosh_:CP});function _P(e,t=0,n=!1,a=!1){let r={x:_(e,"x","cumprod")},s={axis:t,exclusive:n,reverse:a};return O.runKernel(Hl,r,s)}var ec=L({cumprod_:_P});function EP(e,t=0,n=!1,a=!1){let r={x:_(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return O.runKernel(Ti,r,s)}var Ym=L({cumsum_:EP});function AP(e,t,n,a=!1){let r=_(e,"x","denseBincount"),s=_(t,"weights","denseBincount");$(r.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`),$(r.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`),$(n>=0,()=>`size must be non-negative, but got ${n}.`),$(s.size===r.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${r.shape}, weights shape: ${s.shape}.`);let i={x:r,weights:s},o={size:n,binaryOutput:a};return O.runKernel(bm,i,o)}var zh=L({denseBincount_:AP});function $P(e,t,n="NHWC"){let a=_(e,"x","depthToSpace","float32"),r=n==="NHWC"?a.shape[1]:a.shape[2],s=n==="NHWC"?a.shape[2]:a.shape[3],i=n==="NHWC"?a.shape[3]:a.shape[1];$(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),$(r*t>=0,()=>`Negative dimension size caused by overflow when multiplying +Expected: ${s}.`)}typeof expect!="undefined"&&expect().nothing()}function xM(e,t){e().then(()=>t.fail(),()=>t()),typeof expect!="undefined"&&expect().nothing()}function vM(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Qr(e)||Qr(e[0])||Qr(t)||Qr(t[0])?Bb(e,n,(a,r)=>a==r):Bb(e,t,(a,r)=>Kx(a,r,0))}function wM(e,t,n){if(n==null&&(n=qx()),!Kx(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function Kx(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function kM(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function IM(e,t){let n=new Float32Array(e),a=new Float32Array(t);if(n.length!==a.length)throw new Error(`Expected ArrayBuffer to be of length ${a.length}, but it was ${n.length}`);for(let r=0;r{t.addEventListener("loadeddata",a=>n(t)),t.load()})}async function TM(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise(t=>{e.requestVideoFrameCallback(t)})}var NM="4.0.0";function CM(e,t){let n=_(e,"a","add"),a=_(t,"b","add");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(gs,r)}var Y=L({add_:CM});function _M(e,t){let n=_(e,"a","floorDiv"),a=_(t,"b","floorDiv");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(Ai,r)}var Hm=L({floorDiv_:_M});function EM(e,t){let n=_(e,"a","div"),a=_(t,"b","div");if([n,a]=_t(n,a),n.dtype==="int32"&&a.dtype==="int32")return Hm(n,a);let r={a:n,b:a},s={};return O.runKernel(Ci,r,s)}var he=L({div_:EM});function $M(e,t){let n=_(e,"a","mul"),a=_(t,"b","mul");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(Gi,r)}var z=L({mul_:$M});function AM(e){let t=_(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return O.runKernel(hc,n)}else{let n={x:t};return O.runKernel(Dl,n)}}var Lt=L({abs_:AM});function FM(e){let t={x:_(e,"x","acos")};return O.runKernel(Rl,t)}var Xx=L({acos_:FM});function DM(e){let t={x:_(e,"x","acosh")};return O.runKernel(Ml,t)}var Yx=L({acosh_:DM});function RM(e){A(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),A(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);let t=e.map((r,s)=>_(r,`tensors${s}`,"addN")),n=t[0];t.forEach(r=>{if(r.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(r=>{if(!fs(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return O.runKernel(fi,a)}var KS=L({addN_:RM});function MM(e,t=null,n=!1){let a={x:_(e,"x","all","bool")},r={axis:t,keepDims:n};return O.runKernel(Pl,a,r)}var jm=L({all_:MM});function PM(e,t=null,n=!1){let a={x:_(e,"x","any","bool")},r={axis:t,keepDims:n};return O.runKernel(Ol,a,r)}var Qp=L({any_:PM});function OM(e,t=0){let n={x:_(e,"x","argMax")},a={axis:t};return O.runKernel(gi,n,a)}var ri=L({argMax_:OM});function LM(e,t=0){let n={x:_(e,"x","argMin")},a={axis:t};return O.runKernel(cc,n,a)}var Zx=L({argMin_:LM});function zM(e){let t={x:_(e,"x","asin")};return O.runKernel(Ll,t)}var Jx=L({asin_:zM});function WM(e){let t={x:_(e,"x","asinh")};return O.runKernel(zl,t)}var Qx=L({asinh_:WM});function BM(e){let t={x:_(e,"x","atan")};return O.runKernel(Wl,t)}var ev=L({atan_:BM});function VM(e,t){let n=_(e,"a","atan2"),a=_(t,"b","atan2");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(Vl,r)}var tv=L({atan2_:VM});function UM(e){let t={x:_(e,"x","atanh")};return O.runKernel(Bl,t)}var nv=L({atanh_:UM});function GM(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=ZS(r);return Mc(e,o,n,s,a,null,null,l)}function XS(e,t,n,a,r,s,i="channelsLast"){let[o,l]=Lh(t),u;if(i==="channelsLast")u=[o,l,e[3],e[3]];else if(i==="channelsFirst")u=[o,l,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return Mc(e,u,n,a,r,s,!1,i)}function HM(e,t,n,a,r,s,i="NDHWC"){let[o,l,u]=Vb(t),p,d;if(i==="NDHWC")d="channelsLast",p=[o,l,u,e[4],e[4]];else if(i==="NCDHW")d="channelsFirst",p=[o,l,u,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return YS(e,p,n,a,r,!1,d,s)}function Mc(e,t,n,a,r,s,i=!1,o="channelsLast"){let[l,u,p,d]=[-1,-1,-1,-1];if(o==="channelsLast")[l,u,p,d]=e;else if(o==="channelsFirst")[l,d,u,p]=e;else throw new Error(`Unknown dataFormat ${o}`);let[c,h,,m]=t,[f,g]=Lh(n),[y,b]=Lh(a),x=cl(c,y),w=cl(h,b),{padInfo:I,outHeight:T,outWidth:C}=KM(r,u,p,f,g,x,w,s,o),E=i?m*d:m,$;return o==="channelsFirst"?$=[l,E,T,C]:o==="channelsLast"&&($=[l,T,C,E]),{batchSize:l,dataFormat:o,inHeight:u,inWidth:p,inChannels:d,outHeight:T,outWidth:C,outChannels:E,padInfo:I,strideHeight:f,strideWidth:g,filterHeight:c,filterWidth:h,effectiveFilterHeight:x,effectiveFilterWidth:w,dilationHeight:y,dilationWidth:b,inShape:e,outShape:$,filterShape:t}}function YS(e,t,n,a,r,s=!1,i="channelsLast",o){let[l,u,p,d,c]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[l,u,p,d,c]=e;else if(i==="channelsFirst")[l,c,u,p,d]=e;else throw new Error(`Unknown dataFormat ${i}`);let[h,m,f,,g]=t,[y,b,x]=Vb(n),[w,I,T]=Vb(a),C=cl(h,w),E=cl(m,I),$=cl(f,T),{padInfo:R,outDepth:F,outHeight:S,outWidth:M}=XM(r,u,p,d,y,b,x,C,E,$,o),B=s?g*c:g,U;return i==="channelsFirst"?U=[l,B,F,S,M]:i==="channelsLast"&&(U=[l,F,S,M,B]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:p,inWidth:d,inChannels:c,outDepth:F,outHeight:S,outWidth:M,outChannels:B,padInfo:R,strideDepth:y,strideHeight:b,strideWidth:x,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:C,effectiveFilterHeight:E,effectiveFilterWidth:$,dilationDepth:w,dilationHeight:I,dilationWidth:T,inShape:e,outShape:U,filterShape:t}}function jM(e,t,n,a,r){a==null&&(a=av(e,t,n));let s=e[0],i=e[1],o=Ks((s-t+2*a)/n+1,r),l=Ks((i-t+2*a)/n+1,r);return[o,l]}function qM(e,t,n,a,r,s){r==null&&(r=av(e,t,a));let i=e[0],o=e[1],l=e[2],u=Ks((i-t+2*r)/a+1,s),p=Ks((o-t+2*r)/a+1,s),d=Ks((l-t+2*r)/a+1,s);return[u,p,d,n]}function av(e,t,n,a=1){let r=cl(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function Lh(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function Vb(e){return typeof e=="number"?[e,e,e]:e}function cl(e,t){return t<=1?e:e+(e-1)*(t-1)}function KM(e,t,n,a,r,s,i,o,l){let u,p,d;if(typeof e=="number"){u={top:e,bottom:e,left:e,right:e,type:e===0?"VALID":"NUMBER"};let c=jM([t,n],s,a,e,o);p=c[0],d=c[1]}else if(e==="same"){p=Math.ceil(t/a),d=Math.ceil(n/r);let c=Math.max(0,(p-1)*a+s-t),h=Math.max(0,(d-1)*r+i-n),m=Math.floor(c/2),f=c-m,g=Math.floor(h/2),y=h-g;u={top:m,bottom:f,left:g,right:y,type:"SAME"}}else if(e==="valid")u={top:0,bottom:0,left:0,right:0,type:"VALID"},p=Math.ceil((t-s+1)/a),d=Math.ceil((n-i+1)/r);else if(typeof e=="object"){let c=l==="channelsLast"?e[1][0]:e[2][0],h=l==="channelsLast"?e[1][1]:e[2][1],m=l==="channelsLast"?e[2][0]:e[3][0],f=l==="channelsLast"?e[2][1]:e[3][1];u={top:c,bottom:h,left:m,right:f,type:c===0&&h===0&&m===0&&f===0?"VALID":"EXPLICIT"},p=Ks((t-s+c+h)/a+1,o),d=Ks((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outHeight:p,outWidth:d}}function XM(e,t,n,a,r,s,i,o,l,u,p){let d,c,h,m;if(typeof e=="number"){d={top:e,bottom:e,left:e,right:e,front:e,back:e,type:e===0?"VALID":"NUMBER"};let f=qM([t,n,a,1],o,1,r,e,p);c=f[0],h=f[1],m=f[2]}else if(e==="same"){c=Math.ceil(t/r),h=Math.ceil(n/s),m=Math.ceil(a/i);let f=(c-1)*r+o-t,g=(h-1)*s+l-n,y=(m-1)*i+u-a,b=Math.floor(f/2),x=f-b,w=Math.floor(g/2),I=g-w,T=Math.floor(y/2),C=y-T;d={top:w,bottom:I,left:T,right:C,front:b,back:x,type:"SAME"}}else if(e==="valid")d={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},c=Math.ceil((t-o+1)/r),h=Math.ceil((n-l+1)/s),m=Math.ceil((a-u+1)/i);else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:d,outDepth:c,outHeight:h,outWidth:m}}function Ks(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 os(e){let[t,n,a]=Lh(e);return t===1&&n===1&&a===1}function cr(e,t){return os(e)||os(t)}function ZS(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function Nn(e,t,n){if(n!=null){if(typeof t=="string")throw Error(`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);if(typeof t=="number")A(hl(t),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);else if(typeof t=="object")t.forEach(a=>{a.forEach(r=>{A(hl(r),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${r}.`)})});else throw Error(`Error in ${e}: Unknown padding parameter: ${t}`)}}function YM(e,t){let n={x:_(e,"x","reshape","string_or_numeric")},a={shape:t};return O.runKernel(vu,n,a)}var W=L({reshape_:YM});function ZM(e,t,n,a,r){let s=_(e,"x","avgPool","float32"),i=1;A(cr(n,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`);let o=s,l=!1;s.rank===3&&(l=!0,o=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(o.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${o.rank}.`),Nn("avgPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=O.runKernel(yi,u,p);return d=le(d,s.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var ya=L({avgPool_:ZM});function JM(e,t,n,a,r,s="NDHWC"){let i=_(e,"x","avgPool3d","float32"),o=i,l=!1;i.rank===4&&(l=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Nn("avgPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=O.runKernel(dc,u,p);return d=le(d,o.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var rv=L({avgPool3d_:JM});function QM(e,t=0){A(e.length>=1,()=>"Pass at least one tensor to concat");let n=Jp(e,"tensors","concat","string_or_numeric");if(n[0].dtype==="complex64"&&n.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor + with dtype ${s.dtype}. `)}),n.length===1)return ir(n[0]);let a=n,r={axis:t};return O.runKernel(Gl,a,r)}var Ze=L({concat_:QM});function eP(e){let t={x:_(e,"x","sigmoid","float32")};return O.runKernel(ro,t)}var ha=L({sigmoid_:eP});function tP(e,t,n){let a=_(e,"x","slice","string_or_numeric");if(a.rank===0)throw new Error("Slicing scalar is not possible");let r={x:a},s={begin:t,size:n};return O.runKernel(Su,r,s)}var Be=L({slice_:tP});function nP(e){let t={x:_(e,"x","tanh","float32")};return O.runKernel(co,t)}var si=L({tanh_:nP});function aP(e,t,n,a,r,s){let i=_(e,"forgetBias","basicLSTMCell"),o=_(t,"lstmKernel","basicLSTMCell"),l=_(n,"lstmBias","basicLSTMCell"),u=_(a,"data","basicLSTMCell"),p=_(r,"c","basicLSTMCell"),d=_(s,"h","basicLSTMCell"),c=Ze([u,d],1),h=Fe(c,o),m=Y(h,l),f=m.shape[0],g=m.shape[1]/4,y=[f,g],b=Be(m,[0,0],y),x=Be(m,[0,g],y),w=Be(m,[0,g*2],y),I=Be(m,[0,g*3],y),T=Y(z(ha(b),si(x)),z(p,ha(Y(i,w)))),C=z(si(T),ha(I));return[T,C]}var JS=L({basicLSTMCell_:aP});function rP(e,t,n){let a=_(e,"x","batchToSpaceND"),r=t.reduce((o,l)=>o*l);A(a.rank>=1+t.length,()=>`input rank is ${a.rank} but should be > than blockShape.length ${t.length}`),A(n.length===t.length,()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`),A(a.shape[0]%r===0,()=>`input tensor batch is ${a.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${r}`);let s={x:a},i={blockShape:t,crops:n};return O.runKernel(Ul,s,i)}var Pc=L({batchToSpaceND_:rP});function sP(e){let t;return e.rank===0||e.rank===1?t=W(e,[1,1,1,e.size]):e.rank===2?t=W(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function iP(e,t,n,a,r,s){s==null&&(s=.001);let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let p;a!=null&&(p=_(a,"offset","batchNorm")),A(o.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),A(p==null||o.rank===p.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),A(u==null||o.rank===u.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let d={x:sP(i),scale:u,offset:p,mean:o,variance:l},c={varianceEpsilon:s},h=O.runKernel(Fi,d,c);return W(h,i.shape)}var ks=L({batchNorm_:iP});function oP(e,t,n,a,r,s){let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let p;return a!=null&&(p=_(a,"offset","batchNorm")),A(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),A(o.rank===2||o.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`),A(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),u!=null&&A(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`),p!=null&&A(p.rank===2||p.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${p.rank}.`),ks(i,o,l,p,u,s)}var sv=L({batchNorm2d_:oP});function lP(e,t,n,a,r,s){let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let p;return a!=null&&(p=_(a,"offset","batchNorm")),A(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),A(o.rank===3||o.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`),A(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),u!=null&&A(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`),p!=null&&A(p.rank===3||p.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${p.rank}.`),ks(i,o,l,p,u,s)}var iv=L({batchNorm3d_:lP});function uP(e,t,n,a,r,s){let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let p;return a!=null&&(p=_(a,"offset","batchNorm")),A(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),A(o.rank===4||o.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`),A(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),u!=null&&A(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`),p!=null&&A(p.rank===4||p.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${p.rank}.`),ks(i,o,l,p,u,s)}var ov=L({batchNorm4d_:uP});function pP(e,t,n){let a=_(e,"x","bincount"),r=_(t,"weights","bincount");A(a.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${a.dtype}`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(r.size===a.size||r.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${a.shape}, weights shape: ${r.shape}.`);let s={x:a,weights:r},i={size:n};return O.runKernel(dm,s,i)}var lv=L({bincount_:pP});function cP(e,t){let n=_(e,"s0","broadcastArgs","int32"),a=_(t,"s1","broadcastArgs","int32");if(n.rank!==1)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${n.rank}`);if(a.rank!==1)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${a.rank}`);let r={s0:n,s1:a};return O.runKernel(hm,r)}var QS=L({broadcastArgs_:cP});function dP(e,t){let n=_(e,"broadcastTo","x"),a=n.shape;if(t.some(l=>!(l>0)||l%1!==0))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengthn.rank){let l=n.shape.slice();for(;l.length=0;l--)if(r[l]===t[l])s[l]=1;else if(n.shape[l]!==1)throw new Error(`broadcastTo(): [${a}] cannot be broadcast to [${t}].`);if(s.map((l,u)=>l>1?u:-1).filter(l=>l>=0).length===0)return ir(n);let i={x:n},o={reps:s};return O.runKernel(bs,i,o)}var Xs=L({broadcastTo_:dP});function hP(e){let t={x:_(e,"x","ceil","float32")};return O.runKernel(vi,t)}var uv=L({ceil_:hP});function gn(e,t,n){let a={shape:e,value:t,dtype:n};return O.runKernel(gc,{},a)}function mP(e,t,n){let a=_(e,"x","clipByValue");if(A(t<=n,()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`),t===n)return gn(a.shape,t,a.dtype);let r={x:a},s={clipValueMin:t,clipValueMax:n};return O.runKernel(ys,r,s)}var en=L({clipByValue_:mP});function fP(e){return Ze(e,0)}var pv=L({concat1d_:fP});function gP(e,t){return Ze(e,t)}var cv=L({concat2d_:gP});function yP(e,t){return Ze(e,t)}var dv=L({concat3d_:yP});function bP(e,t){return Ze(e,t)}var hv=L({concat4d_:bP});function xP(e,t,n,a,r="NHWC",s=[1,1],i){let o=_(e,"x","conv2d","float32"),l=_(t,"filter","conv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(u.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${u.rank}.`),A(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),Nn("conv2d",a,i);let d=r==="NHWC"?u.shape[3]:u.shape[1];A(d===l.shape[2],()=>`Error in conv2d: depth of input (${d}) must match input depth for filter ${l.shape[2]}.`),A(cr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=O.runKernel(wi,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var At=L({conv2d_:xP});function vP(e,t,n,a,r="NWC",s=1,i){let o=_(e,"x","conv1d"),l=_(t,"filter","conv1d"),u=o,p=!1;o.rank===2&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1]])),A(u.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${u.rank}.`),A(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),Nn("conv1d",a,i),A(u.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${u.shape[2]}) must match input depth for filter ${l.shape[1]}.`),A(cr(n,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`),A(r==="NWC",()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`);let d=W(l,[1,l.shape[0],l.shape[1],l.shape[2]]),c=W(u,[u.shape[0],1,u.shape[1],u.shape[2]]),h=At(c,d,[1,n],a,"NHWC",[1,s],i);return p?W(h,[h.shape[2],h.shape[3]]):W(h,[h.shape[0],h.shape[2],h.shape[3]])}var qm=L({conv1d_:vP});function wP(e,t,n,a,r,s="NHWC",i){A(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let o=e,l=t,u=!1;t.rank===3&&(u=!0,l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),A(o.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`),A(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),A(n.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`);let p=s==="NHWC"?o[3]:o[1],d=s==="NHWC"?l.shape[3]:l.shape[1];A(p===n.shape[2],()=>`Error in conv2dDerInput: depth of input (${p}) must match input depth for filter ${n.shape[2]}.`),A(d===n.shape[3],()=>`Error in conv2dDerInput: depth of output (${d}) must match output depth for filter ${n.shape[3]}.`),Nn("conv2dDerInput",r,i);let c={dy:l,filter:n},h={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,inputShape:o},m=O.runKernel(ki,c,h);return u?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var mv=L({conv2DBackpropInput_:wP});function kP(e,t,n,a,r,s){let i=_(e,"x","conv2dTranspose"),o=_(t,"filter","conv2dTranspose");return mv(n,i,o,a,r,"NHWC",s)}var Km=L({conv2dTranspose_:kP});function IP(e,t,n,a,r="NDHWC",s=[1,1,1]){let i=_(e,"x","conv3d"),o=_(t,"filter","conv3d"),l=i,u=!1;i.rank===4&&(u=!0,l=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),A(o.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`),A(l.shape[4]===o.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`),A(cr(n,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),A(r==="NDHWC",()=>`Error in conv3d: got dataFormat of ${r} but only NDHWC is currently supported.`);let p={x:l,filter:o},d={strides:n,pad:a,dataFormat:r,dilations:s},c=O.runKernel(mc,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var fv=L({conv3d_:IP});function SP(e,t,n,a,r){A(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let s=e,i=t,o=!1;t.rank===4&&(o=!0,i=W(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,e[0],e[1],e[2],e[3]]);let l=s[4],u=i.shape[4];A(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),A(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),A(n.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`),A(l===n.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`),A(u===n.shape[4],()=>`Error in conv3dDerInput: depth of output (${u}) must match output depth for filter ${n.shape[4]}.`);let p={dy:i,filter:n},d={pad:r,strides:a,inputShape:s},c=O.runKernel(ym,p,d);return o?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var eT=L({conv3DBackpropInput_:SP});function TP(e,t,n,a,r){let s=_(e,"x","conv3dTranspose"),i=_(t,"filter","conv3dTranspose");return eT(n,s,i,a,r)}var gv=L({conv3dTranspose_:TP});function NP(e){let t={x:_(e,"x","cos","float32")};return O.runKernel(Ii,t)}var Oc=L({cos_:NP});function CP(e){let t={x:_(e,"x","cosh","float32")};return O.runKernel(Si,t)}var Xm=L({cosh_:CP});function _P(e,t=0,n=!1,a=!1){let r={x:_(e,"x","cumprod")},s={axis:t,exclusive:n,reverse:a};return O.runKernel(Hl,r,s)}var ec=L({cumprod_:_P});function EP(e,t=0,n=!1,a=!1){let r={x:_(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return O.runKernel(Ti,r,s)}var Ym=L({cumsum_:EP});function $P(e,t,n,a=!1){let r=_(e,"x","denseBincount"),s=_(t,"weights","denseBincount");A(r.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`),A(r.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(s.size===r.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${r.shape}, weights shape: ${s.shape}.`);let i={x:r,weights:s},o={size:n,binaryOutput:a};return O.runKernel(bm,i,o)}var zh=L({denseBincount_:$P});function AP(e,t,n="NHWC"){let a=_(e,"x","depthToSpace","float32"),r=n==="NHWC"?a.shape[1]:a.shape[2],s=n==="NHWC"?a.shape[2]:a.shape[3],i=n==="NHWC"?a.shape[3]:a.shape[1];A(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),A(r*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${r} and ${t} for depthToSpace with input shape - ${a.shape}`),$(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying + ${a.shape}`),A(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${s} and ${t} for depthToSpace with input shape - ${a.shape}`),$(i%(t*t)===0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${a.shape}`);let o={x:a},l={blockSize:t,dataFormat:n};return O.runKernel(ql,o,l)}var yv=L({depthToSpace_:$P});function FP(e,t,n,a,r="NHWC",s=[1,1],i){let o=_(e,"x","depthwiseConv2d","float32"),l=_(t,"filter","depthwiseConv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),$(u.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${u.rank}.`),$(l.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`);let d=r==="NHWC"?u.shape[3]:u.shape[1];$(d===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${d}) must match the inChannels dimension in filter ${l.shape[2]}.`),Nn("depthwiseConv2d",a,i);let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=O.runKernel(Ni,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Is=L({depthwiseConv2d_:FP});function DP(e){let t={x:_(e,"x","diag")};return O.runKernel(wm,t)}var tT=L({diag_:DP});function RP(e,t,n,a,r=[1,1],s="NHWC"){let i=_(e,"x","dilation2d"),o=_(t,"filter","dilation2d");$(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),$(o.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`),$(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=i,u=!1;i.rank===3&&(l=W(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=!0);let p={x:l,filter:o},d={strides:n,pad:a,dilations:r},c=O.runKernel(fc,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var bv=L({dilation2d_:RP});function MP(e,t){let n=_(e,"a","equal","string_or_numeric"),a=_(t,"b","equal","string_or_numeric");[n,a]=_t(n,a),ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Xl,r)}var ea=L({equal_:MP});function PP(e,t,n){let a=_(t,"a","where"),r=_(n,"b","where"),s=_(e,"condition","where","bool"),i=ut(ut(s.shape,a.shape),r.shape),o=Xs(s,i),l=Xs(a,i),u=Xs(r,i),p={condition:o,t:l,e:u};return O.runKernel(ku,p)}var mn=L({where_:PP});function OP(e){let t={x:_(e,"x","zerosLike")};return O.runKernel(Mu,t)}var qe=L({zerosLike_:OP});function LP(e,t){let n=_(e,"a","div"),a=_(t,"b","div");[n,a]=_t(n,a);let r=he(n,a),s=qe(r),i=ea(a,s);return mn(i,s,r)}var xv=L({divNoNan_:LP});function zP(e,t){let n=_(e,"t1","dot"),a=_(t,"t2","dot");$((n.rank===1||n.rank===2)&&(a.rank===1||a.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${n.rank} and ${a.rank}.`);let r=n.rank===1?n.size:n.shape[1],s=a.rank===1?a.size:a.shape[0];if($(r===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${s}.`),n.rank===1&&a.rank===1){let i=W(n,[1,-1]),o=W(a,[-1,1]),l=Fe(i,o);return W(l,[])}else if(n.rank===1&&a.rank===2){let i=W(n,[1,-1]),o=W(a,[a.shape[0],a.shape[1]]),l=Fe(i,o);return W(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=W(a,[-1,1]),o=Fe(n,i);return W(o,[o.size])}else{let i=W(a,[a.shape[0],a.shape[1]]);return Fe(n,i)}}var vv=L({dot_:zP});function WP(e,...t){let n=t.map((r,s)=>_(r,`tensors${s}`,"einsum")),a={equation:e};return O.runKernel(km,n,a)}var nT=L({einsum_:WP});function BP(e){let t={x:_(e,"x","elu","float32")};return O.runKernel(_i,t)}var Lu=L({elu_:BP});function VP(e){let t=_(e,"x","erf");$(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=oe(t,"float32"));let n={x:t};return O.runKernel(Kl,n)}var wv=L({erf_:VP});function kv(e,t){for(let n=0;ne[s]);return[n,r]}function ii(e,t){let n=t.map(a=>1);return aT(e,n,t)}function UP(e,t,n){$(kv(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function sT(e,t){if(kv(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function Iv(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function GP(e,t){let n=[];for(let a=t-e;a"Axis must be <= rank of the tensor");let a={input:n},r={dim:t};return O.runKernel(Yl,a,r)}var Zt=L({expandDims_:eO});function tO(e){let t={x:_(e,"x","expm1")};return O.runKernel(Zl,t)}var Tv=L({expm1_:tO});function nO(e,t){let n=_(e,"x","tile","string_or_numeric");$(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`);let a={x:n},r={reps:t};return O.runKernel(bs,a,r)}var Ln=L({tile_:nO});function aO(e,t,n,a="float32"){t==null&&(t=e);let r=Oe([e,t],a),s=e<=t?e:t;for(let o=0;o`Error in localResponseNormalization: x must be rank 3 or 4 but got - rank ${s.rank}.`),$(hl(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,o=!1;s.rank===3&&(o=!0,i=W(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let l={x:i},u={depthRadius:t,bias:n,alpha:a,beta:r},p=O.runKernel(yc,l,u);return o?W(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Ev=L({localResponseNormalization_:mO});function fO(e){let t={x:_(e,"x","log","float32")};return O.runKernel(Pi,t)}var ta=L({log_:fO});function gO(e){let t={x:_(e,"x","log1p")};return O.runKernel(ou,t)}var zc=L({log1p_:gO});function yO(e){return $(ss(e),()=>"The f passed in grad(f) must be a function"),(t,n)=>{let a=_(t,"x","tf.grad","string_or_numeric"),r=n!=null?_(n,"dy","tf.grad"):null;return O.tidy(()=>{let{value:s,grads:i}=O.gradients(()=>e(a),[a],r);return r!=null&&Tn(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Qm(i),i[0]})}}function bO(e){return $(ss(e),()=>"The f passed in grads(f) must be a function"),(t,n)=>{$(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let a=Jp(t,"args","tf.grads","string_or_numeric"),r=n!=null?_(n,"dy","tf.grads"):null;return O.tidy(()=>{let{value:s,grads:i}=O.gradients(()=>e(...a),a,r);return r!=null&&Tn(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Qm(i),i})}}function xO(e){return $(ss(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{$(t instanceof Te,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),$(n==null||n instanceof Te,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:a,value:r}=O.gradients(()=>e(t),[t],n);return Qm(a),{grad:a[0],value:r}}}function vO(e){return $(ss(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{$(Array.isArray(t)&&t.every(r=>r instanceof Te),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),$(n==null||n instanceof Te,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let a=O.gradients(()=>e(...t),t,n);return n!=null&&Tn(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Qm(a.grads),a}}function lT(e,t){$(ss(e),()=>"The f passed in variableGrads(f) must be a function"),$(t==null||Array.isArray(t)&&t.every(u=>u instanceof is),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let n=t!=null;if(!n){t=[];for(let u in O.registeredVariables)t.push(O.registeredVariables[u])}let a=n?t.filter(u=>!u.trainable):null,r=t.length;t=t.filter(u=>u.trainable),$(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${r} variables is trainable.`);let s=!0,{value:i,grads:o}=O.gradients(e,t,null,s);$(o.some(u=>u!=null),()=>"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()."),$(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let l={};return t.forEach((u,p)=>{o[p]!=null&&(l[u.name]=o[p])}),a!=null&&a.forEach(u=>l[u.name]=null),{value:i,grads:l}}function ur(e){return O.customGrad(e)}function Qm(e){if(e.filter(t=>t==null).length>0)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.`)}function wO(e){let t={x:_(e,"x","softplus")};return O.runKernel(Cu,t)}var mo=L({softplus_:wO});function kO(e){let t=_(e,"x","logSigmoid");return ur(n=>({value:vt(mo(vt(n))),gradFunc:a=>z(a,ha(vt(n)))}))(t)}var Av=L({logSigmoid_:kO});function IO(e,t){let n=_(e,"a","sub"),a=_(t,"b","sub");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(uo,r)}var pe=L({sub_:IO});function SO(e,t=-1){let n=_(e,"logits","logSoftmax");if(t===-1&&(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 ur((a,r)=>{let s=ma(a,t,!0),i=pe(a,s),o=pe(oe(i,"float32"),ta(fe(fn(i),t,!0)));return r([o]),{value:o,gradFunc:(l,u)=>{let[p]=u,d=!0,c=fn(p);return pe(l,z(fe(l,t,d),c))}}})(n)}var ef=L({logSoftmax_:SO});function TO(e,t=null,n=!1){let a=_(e,"x","logSumExp"),r=Fa(t,a.shape),s=ma(a,r,!0),i=pe(a,s),o=fn(i),l=fe(o,r),u=ta(l),p=Y(W(s,u.shape),u);if(n){let d=ii(p.shape,r);return W(p,d)}return p}var tf=L({logSumExp_:TO});function NO(e,t){let n=_(e,"a","logicalAnd","bool"),a=_(t,"b","logicalAnd","bool");ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(lu,r)}var $a=L({logicalAnd_:NO});function CO(e){let t={x:_(e,"x","logicalNot","bool")};return O.runKernel(uu,t)}var Wc=L({logicalNot_:CO});function _O(e,t){let n=_(e,"a","logicalOr","bool"),a=_(t,"b","logicalOr","bool");ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(pu,r)}var nf=L({logicalOr_:_O});function EO(e,t){let n=_(e,"a","logicalXor","bool"),a=_(t,"b","logicalXor","bool");return ut(n.shape,a.shape),$a(nf(e,t),Wc($a(e,t)))}var $v=L({logicalXor_:EO}),ih=2147483648;function AO(e,t,n="left"){let a=_(e,"sortedSequence","searchSorted"),r=_(t,"values","searchSorted"),s=a.shape[a.shape.length-1],i=r.shape[r.shape.length-1],o=W(a,[-1,s]),l=W(r,[-1,i]);if(o.rank<2)throw new Error("Sorted input argument must be at least 2-dimensional");if(o.shape[0]!==l.shape[0])throw new Error("Leading dimension of 'sortedSequence' and 'values' must match.");if(mt(l.shape)>=ih)throw new Error(`values tensor size must less than ${ih}`);if(o.shape[1]>=ih)throw new Error(`trailing dim_size must less than ${ih} for int32 output type, was ${o.shape[1]}`);let u={sortedSequence:o,values:l},p={side:n};return O.runKernel(zm,u,p)}var af=L({searchSorted_:AO});function uT(e,t){return af(e,t,"left")}function $O(e,t,n,a,r){let s=_(e,"x","maxPool"),i=1,o=s,l=!1;s.rank===3&&(l=!0,o=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),$(o.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${o.rank}.`),$(cr(n,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),Nn("maxPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=O.runKernel(zi,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Dt=L({maxPool_:$O});function FO(e,t=[1,1,1],n,a,r,s="NDHWC"){let i=_(e,"x","maxPool3d"),o=i,l=!1;i.rank===4&&(l=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),$(o.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`),$(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Nn("maxPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=O.runKernel(bc,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Fv=L({maxPool3d_:FO});function DO(e,t,n,a,r=!1){let s={x:_(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=O.runKernel($m,s,i);return{result:o[0],indexes:o[1]}}var pT=L({maxPoolWithArgmax_:DO});function RO(e,t){let n=_(e,"a","maximum"),a=_(t,"b","maximum");[n,a]=_t(n,a),n.dtype==="bool"&&(n=oe(n,"int32"),a=oe(a,"int32")),ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Li,r)}var dr=L({maximum_:RO});function MO(e,t=null,n=!1){let a={x:_(e,"x","mean")},r={axis:t,keepDims:n};return O.runKernel(Wi,a,r)}var Nt=L({mean_:MO});function It(e,t="float32"){if(t==="complex64"){let a=It(e,"float32"),r=It(e,"float32");return Ar(a,r)}let n=um(mt(e),t);return O.makeTensor(n,e,t)}function Jn(e,t="float32"){if(t==="complex64"){let a=Jn(e,"float32"),r=It(e,"float32");return Ar(a,r)}let n=_x(mt(e),t);return O.makeTensor(n,e,t)}function cT(e,t,{indexing:n="xy"}={}){if(n!=="xy"&&n!=="ij")throw new TypeError(`${n} is not a valid third argument to meshgrid`);if(e===void 0)return[];let a=_(e,"x","meshgrid",e instanceof Te?e.dtype:"float32");if(t===void 0)return[a];let r=_(t,"y","meshgrid",t instanceof Te?t.dtype:"float32"),s=mt(a.shape),i=mt(r.shape);return n==="xy"?(a=W(a,[1,-1]),r=W(r,[-1,1]),[Fe(Jn([i,1],a.dtype),a),Fe(r,Jn([1,s],r.dtype))]):(a=W(a,[-1,1]),r=W(r,[1,-1]),[Fe(a,Jn([1,i],a.dtype)),Fe(Jn([s,1],r.dtype),r)])}function PO(e,t){let n=_(e,"a","minimum"),a=_(t,"b","minimum");[n,a]=_t(n,a),n.dtype==="bool"&&(n=oe(n,"int32"),a=oe(a,"int32")),ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Vi,r)}var Vu=L({minimum_:PO});function OO(e,t,n){$(n==="reflect"||n==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`);let a=_(e,"x","mirrorPad");if(a.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");$(t.length===a.rank,()=>`Padding doesn't match input. Must be ${a.rank}. Got ${t.length}.`);let r=n==="reflect"?1:0;for(let o=0;o"Invalid number of paddings. Must be length of 2 each."),$(t[o][0]>=0&&t[o][0]<=a.shape[o]-r&&t[o][1]>=0&&t[o][1]<=a.shape[o]-r,()=>`Padding in dimension ${o} cannot be greater than or equal to ${a.shape[o]-r} or less than 0 for input of shape ${a.shape}`);let s={paddings:t,mode:n},i={x:a};return O.runKernel(Ui,i,s)}var Dv=L({mirrorPad_:OO});function LO(e,t){let n=_(e,"a","mod"),a=_(t,"b","mod");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(cu,r)}var Rv=L({mod_:LO});function zO(e,t=null,n=!1){e=_(e,"x","moments");let a=Fa(t,e.shape),r=Nt(e,a,n),s=r.shape;n||(s=ii(r.shape,a));let i=lt(pe(oe(e,"float32"),W(r,s))),o=Nt(i,a,n);return{mean:r,variance:o}}var Bc=L({moments_:zO});function WO(e,t,n,a){let r=_(t,"data","multiRNNCell"),s=Jp(n,"c","multiRNNCell"),i=Jp(a,"h","multiRNNCell"),o=r,l=[];for(let d=0;d2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);n=n||Math.random();let o={logits:i===1?W(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:a},u=O.runKernel(Fm,o,l);return i===1?W(u,[u.size]):u}var hT=L({multinomial_:BO});function VO(e,t){let n=_(e,"a","notEqual","string_or_numeric"),a=_(t,"b","notEqual","string_or_numeric");[n,a]=_t(n,a),ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(hu,r)}var oi=L({notEqual_:VO});function UO(e){let t={x:_(e,"x","onesLike")};return O.runKernel(yu,t)}var na=L({onesLike_:UO});function GO(e,t){let n=_(e,"v1","outerProduct"),a=_(t,"v2","outerProduct");$(n.rank===1&&a.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${a.rank}.`);let r=W(n,[-1,1]),s=W(a,[1,-1]);return Fe(r,s)}var mT=L({outerProduct_:GO});function HO(e,t,n=0){let a=_(e,"x","pad");if(a.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let r={paddings:t,constantValue:n},s={x:a};return O.runKernel(ji,s,r)}var ba=L({pad_:HO});function jO(e,t,n=0){return $(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),ba(e,[t],n)}var fT=L({pad1d_:jO});function qO(e,t,n=0){return $(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ba(e,t,n)}var gT=L({pad2d_:qO});function KO(e,t,n=0){return $(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ba(e,t,n)}var yT=L({pad3d_:KO});function XO(e,t,n=0){return $(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ba(e,t,n)}var bT=L({pad4d_:XO});function YO(e,t,n){let a=_(e,"x","spaceToBatchND");$(a.rank>=1+t.length,()=>`input rank ${a.rank} should be > than [blockShape] ${t.length}`),$(n.length===t.length,()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`),$(a.shape.reduce((i,o,l)=>l>0&&l<=t.length?i&&(o+n[l-1][0]+n[l-1][1])%t[l-1]===0:i,!0),()=>`input spatial dimensions ${a.shape.slice(1)} with paddings ${n.toString()} must be divisible by blockShapes ${t.toString()}`);let r={x:a},s={blockShape:t,paddings:n};return O.runKernel(_u,r,s)}var Vc=L({spaceToBatchND_:YO});function ZO(e,t,n,a,r,s,i){r==null&&(r=[1,1]),s==null&&(s=1),a===0&&(a="valid");let o=_(e,"x","maxPool"),l=o,u=!1;o.rank===3&&(u=!0,l=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),$(cr(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let p=XS(l.shape,t,s,r,a),d=[p.dilationHeight,p.dilationWidth],c;a==="same"?c=QO([p.filterHeight,p.filterWidth],d):c=[[0,0],[0,0]];let h=d[0]===1&&d[1]===1,[m,f]=JO([p.inHeight,p.inWidth],d,c),g=h?a:"valid",y=h?l:Vc(l,d,m),b=(n==="avg"?()=>ya(y,t,s,g,i):()=>Dt(y,t,s,g,i))(),x=h?b:Pc(b,d,f);return u?W(x,[x.shape[1],x.shape[2],x.shape[3]]):x}function JO(e,t,n){let a=n.map(p=>p[0]),r=n.map(p=>p[1]),s=e.concat(a,r),i=t.map((p,d)=>(p-s[d]%p)%p),o=r.map((p,d)=>p+i[d]),l=t.map((p,d)=>[a[d],o[d]]),u=t.map((p,d)=>[0,i[d]]);return[l,u]}function QO(e,t){let n=e.map((s,i)=>s+(s-1)*(t[i]-1)).map(s=>s-1),a=n.map(s=>Math.floor(s/2)),r=n.map((s,i)=>s-a[i]);return n.map((s,i)=>[a[i],r[i]])}var Mv=L({pool_:ZO});function e3(e,t){let n=_(e,"x","prelu"),a=_(t,"alpha","prelu"),r={x:n,alpha:a};return O.runKernel(Ki,r)}var Uc=L({prelu_:e3});function t3(e,t=null,n=!1){let a=_(e,"x","prod");a.dtype==="bool"&&(a=oe(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return O.runKernel(Xi,r,s)}var Pv=L({prod_:t3});function n3(e,t,n,a){let r=e.map((p,d)=>_(p,`tensors${d}`,"raggedGather","int32")),s=_(t,"paramsDenseValues","raggedGather"),i=_(n,"indices","raggedGather","int32"),o={paramsNestedSplits:r,paramsDenseValues:s,indices:i},l={outputRaggedRank:a},u=O.runKernel(Dm,o,l);return{outputNestedSplits:u.slice(0,u.length-1),outputDenseValues:u[u.length-1]}}var xT=L({raggedGather_:n3});function a3(e,t,n){let a=_(e,"starts","raggedRange"),r=_(t,"limits","raggedRange",a.dtype),s=_(n,"deltas","raggedRange",a.dtype),i={starts:a,limits:r,deltas:s},o=O.runKernel(Rm,i);return{rtNestedSplits:o[0],rtDenseValues:o[1]}}var vT=L({raggedRange_:a3});function r3(e,t,n,a,r){let s=_(e,"shape","raggedTensorToTensor","int32"),i=_(t,"values","raggedTensorToTensor"),o=_(n,"defaultValue","raggedTensorToTensor",i.dtype),l=a.map((d,c)=>_(d,`tensors${c}`,"raggedTensorToTensor","int32")),u={shape:s,values:i,defaultValue:o,rowPartitionTensors:l},p={rowPartitionTypes:r};return O.runKernel(Mm,u,p)}var wT=L({raggedTensorToTensor_:r3});function s3(e,t,n){let a=mt(e),r=null;if(n==null||n==="float32")r=new Float32Array(a);else if(n==="int32")r=new Int32Array(a);else if(n==="bool")r=new Uint8Array(a);else throw new Error(`Unknown data type ${n}`);for(let s=0;s=1||s===0);let i=Math.sqrt(-2*Math.log(s)/s);e=this.mean+this.stdDev*a*i,t=this.mean+this.stdDev*r*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 this.dtype==null||this.dtype==="float32"?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}},i3=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=Ov.alea(r.toString()),this.randn=new Lv(0,1,n,!1,this.randu()),e<1?this.d=e+2/3:this.d=e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,n,a,r,s;for(;;){do a=this.randn.nextValue(),s=1+this.c*a;while(s<=0);if(s*=s*s,e=a*a,t=1-.331*e*e,n=.5*e+this.d*(1-s+Math.log(s)),r=this.randu(),rthis.dtype==null||this.dtype==="float32",this.min=e,this.range=t-e,this.dtype=n,a==null&&(a=Math.random()),typeof a=="number"&&(a=a.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=Ov.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function l3(e,t,n=1,a="float32",r){if(n==null&&(n=1),a==null&&(a="float32"),a!=="float32"&&a!=="int32")throw new Error(`Unsupported data type ${a}`);let s=new i3(t,n,a,r),i=Oe(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),ga(t,0)}var TT=L({reverse1d_:g3});function y3(e,t){let n=_(e,"x","reverse");return $(n.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`),ga(n,t)}var NT=L({reverse2d_:y3});function b3(e,t){let n=_(e,"x","reverse");return $(n.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`),ga(n,t)}var CT=L({reverse3d_:b3});function x3(e,t){let n=_(e,"x","reverse");return $(n.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`),ga(n,t)}var _T=L({reverse4d_:x3});function v3(e){let t={x:_(e,"x","round")};return O.runKernel(to,t)}var of=L({round_:v3});function w3(e){let t={x:_(e,"x","rsqrt","float32")};return O.runKernel(no,t)}var lf=L({rsqrt_:w3});function k3(e){let t={x:_(e,"x","selu")};return O.runKernel(Iu,t)}var uf=L({selu_:k3});function I3(e,t,n,a,r,s=[1,1],i="NHWC"){let o=_(e,"x","separableConv2d"),l=_(t,"depthwiseFilter","separableConv2d"),u=_(n,"pointwiseFilter","separableConv2d"),p=o,d=!1;if(o.rank===3&&(d=!0,p=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),i==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");$(p.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${p.rank}.`),$(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),$(u.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),$(u.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${u.shape[0]}.`),$(u.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${u.shape[1]}.`);let c=l.shape[2],h=l.shape[3];$(u.shape[2]===c*h,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${c*h}, but got ${u.shape[2]}.`);let m=Is(p,l,a,r,i,s),f=$t(m,u,1,"valid",i);return d?W(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var Ts=L({separableConv2d_:I3});async function S3(e,t){let n=_(e,"x","setdiff1d"),a=_(t,"y","setdiff1d");$(n.dtype===a.dtype,()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${a.dtype}).`),$(n.rank===1,()=>`x should be 1D tensor, but got x (${n.shape}).`),$(a.rank===1,()=>`y should be 1D tensor, but got y (${a.shape}).`);let r=await n.data(),s=await a.data(),i=new Set(s),o=0;for(let p=0;p`slice1d expects a rank-1 tensor, but got a rank-${a.rank} tensor`),Be(a,[t],[n])}var Gc=L({slice1d_:_3});function E3(e,t,n){let a=_(e,"x","slice2d");return $(a.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var df=L({slice2d_:E3});function A3(e,t,n){let a=_(e,"x","slice3d");return $(a.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var fo=L({slice3d_:A3});function $3(e,t,n){let a=_(e,"x","slice4d");return $(a.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var vl=L({slice4d_:$3});function F3(e,t=-1){let n=_(e,"logits","softmax","float32");if(t===-1&&(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}`);let a={logits:n},r={dim:t};return O.runKernel(oo,a,r)}var Ka=L({softmax_:F3});function D3(e){$(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);let t={input:e};return O.runKernel(Sm,t)}var Hc=L({fft_:D3});function R3(e){$(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);let t={input:e};return O.runKernel(Tm,t)}var wl=L({ifft_:R3});function M3(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=W(e,[n,t]);a=wl(r)}else{let r=[n,2*(t-1)],s=W(yl(e),[n,t]),i=W(Dc(e),[n,t]),o=ga(Be(s,[0,1],[n,t-2]),1),l=z(ga(Be(i,[0,1],[n,t-2]),1),be(-1)),u=Ze([s,o],1),p=Ze([i,l],1),d=W(Ar(u,p),[r[0],r[1]]);a=wl(d)}if(a=yl(a),e.rank===3&&e.shape[0]!==0){let r=a,s=e.shape[0];a=W(a,[s,a.shape[0]/s,a.shape[1]]),r.dispose()}return a}var hf=L({irfft_:M3});function P3(e,t,n=0){let a={x:_(e,"x","split")},r={numOrSizeSplits:t,axis:n};return O.runKernel(Eu,a,r)}var zn=L({split_:P3});function O3(e,t){$(e.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${e.dtype}`);let n=e.shape[e.shape.length-1],a=e.size/n,r;if(t!=null&&t0),f=e.shape.map(g=>g);f[e.shape.length-1]=t,r=Be(e,m,f),n=t}else if(t!=null&&t>n){let m=e.shape.map(f=>f);m[e.shape.length-1]=t-n,r=Ze([e,It(m)],e.shape.length-1),n=t}else r=e;let s=qe(r),i=W(Ar(r,s),[a,n]),o=Hc(i),l=Math.floor(n/2)+1,u=yl(o),p=Dc(o),d=zn(u,[l,n-l],u.shape.length-1),c=zn(p,[l,n-l],p.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=l,W(Ar(d[0],c[0]),h)}var jc=L({rfft_:O3});function L3(e,t){let n=_(e,"a","squaredDifference"),a=_(t,"b","squaredDifference");[n,a]=_t(n,a),ut(n.shape,a.shape);let r={a:n,b:a},s={};return O.runKernel(lo,r,s)}var mf=L({squaredDifference_:L3});function z3(e,t){let n=_(e,"x","squeeze","string_or_numeric");return W(n,GI(n.shape,t).newShape)}var Ns=L({squeeze_:z3});function W3(e,t=0){let n=Jp(e,"tensors","stack","string_or_numeric");$(n.length>=1,()=>"Pass at least one tensor to tf.stack"),n.length>0&&$(t<=n[0].rank,()=>"Axis must be <= rank of the tensor");let a=n,r={axis:t};return O.runKernel(bu,a,r)}var Ft=L({stack_:W3});function B3(e,t=0){let n={x:_(e,"x","step")},a={alpha:t};return O.runKernel(xs,n,a)}var go=L({step_:B3});function V3(e,t,n,a,r=0,s=0,i=0,o=0,l=0){let u={x:_(e,"x","stridedSlice","string_or_numeric")},p={begin:t,end:n,strides:a,beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return O.runKernel($u,u,p)}var Bv=L({stridedSlice_:V3});function U3(e){let t={x:_(e,"x","tan","float32")};return O.runKernel(po,t)}var Vv=L({tan_:U3});function Ke(e,t){mi(e);let n=lr(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return vs(e,null,n,t)}function Aa(e,t,n){if(mi(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let a=lr(e,n);if(a.length!==2&&a.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return vs(e,t,a,n)}function Da(e,t,n){if(mi(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let a=lr(e,n);if(a.length!==4&&a.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return vs(e,t,a,n)}function AT(e,t,n){if(mi(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let a=lr(e,n);if(a.length!==5&&a.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return vs(e,t,a,n)}function $T(e,t,n){if(mi(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let a=lr(e,n);if(a.length!==6&&a.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||a,vs(e,t,a,n)}function G3(e,t=1,n=!0){let a=_(e,"x","topk");if(a.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let r=a.shape[a.shape.length-1];if(t<0)throw new Error(`'k' passed to topk() must be >= 0 but got ${t}`);if(t>r)throw new Error(`'k' passed to topk() must be <= the last dimension (${r}) but got ${t}`);let s={x:a},i={k:t,sorted:n},[o,l]=O.runKernel(Fu,s,i);return{values:o,indices:l}}var Uv=L({topk_:G3});function H3(e,t=0,n=1,a,r){if(a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new Lv(t,n,a,!0,r),i=Oe(e,a);for(let o=0;o0,()=>"The input tensor must be at least 1D");let a={x:n},r={axis:t},[s,i]=O.runKernel(Bm,a,r);return{values:s,indices:i}}var Gv=L({unique_:j3});function q3(e,t,n){let a=_(e,"x","unsortedSegmentSum"),r=_(t,"segmentIds","unsortedSegmentSum","int32");$(hl(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return O.runKernel(Cc,s,i)}var gf=L({unsortedSegmentSum_:q3});function K3(e,t=0){let n=_(e,"x","unstack","string_or_numeric");$(t>=-n.shape.length&&t`Axis = ${t} is not in [-${n.shape.length}, ${n.shape.length})`);let a={value:n},r={axis:t};return O.runKernel(Ru,a,r)}var ct=L({unstack_:K3});function FT(e,t){return af(e,t,"right")}function Hv(e,t=!0,n,a){return O.makeVariable(e,t,n,a)}function DT(e,t){let n=[];for(let s=0;s0,()=>"mask cannot be scalar"),Tn(o.slice(s,s+i),r.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let f=s;f"Shape mismatch in v and x");let l=be(1),u=pe(l,o),p=z(pe(i,s),u);if(r){$(a!=null,()=>"When using zeroDebias: true, step is required.");let d=_(a,"step","movingAverage");p=he(p,pe(l,$r(o,d)))}return Y(s,p)}var MT=L({movingAverage_:Z3});function J3(e,t,n){let a=_(e,"indices","scatterND","int32"),r=_(t,"updates","scatterND");jx(r,a,n);let s={indices:a,updates:r},i={shape:n};return O.runKernel(wu,s,i)}var PT=L({scatterND_:J3});function Q3(e,t,n,a){if(e.dtype!=="int32")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}.`);let r=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}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===r))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${r}]`);if(t.dtype!==a.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function eL(e,t,n,a=0){let r=_(e,"sparseIndices","sparseToDense","int32"),s=_(t,"sparseValues","sparseToDense","string_or_numeric"),i=_(a,"defaultValue","sparseToDense",s.dtype);Q3(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return O.runKernel(Wm,o,l)}var OT=L({sparseToDense_:eL});function tL(e,t){let n=_(t,"indices","gatherND","int32"),a={params:_(e,"x","gatherND","string_or_numeric"),indices:n};return O.runKernel(eu,a)}var LT=L({gatherND_:tL});function nL(e,t){if(t==null)return e.shape.slice();if(fs(e.shape,t))return t;if(e.shape.length===t.length){let n=[];for(let a=0;a`x has to be a floating point tensor since it's going to be scaled, but got a ${r.dtype} tensor instead.`),$(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof Te?r.clone():r;let s=nL(r,n),i=1-t,o=he(Wu(Y(Uu(s,0,1,"float32",a),i)),i);return z(r,o)}var qv=L({dropout_:aL});function Kv(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function yf(e,t,n){let a=1-e%2,r=new Float32Array(e);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${a.rank}`),$(a.rank-1===r.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${a.rank} and targets rank ${r.rank}`),Tn(a.shape.slice(0,a.shape.length-1),r.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=a.shape[a.shape.length-1];$(n>0&&n<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${n}`);let i=await a.data(),o=await r.data(),[l,u]=[i.length/s,s],p=HI("bool",l);for(let d=0;dg.value-f.value),p[d]=0;for(let f=0;foL,depthwiseConv2d:()=>cL,matMul:()=>hL});function sL(e,t,n,a,r,s="NHWC",i){let o=e;e.rank===3&&(o=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]])),$(o.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`),$(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),$(n.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`);let u=s==="NHWC"?o.shape[3]:o.shape[1],p=s==="NHWC"?l.shape[3]:l.shape[1];$(u===n[2],()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${n[2]}.`),$(p===n[3],()=>`Error in conv2dDerFilter: depth of dy (${p}) must match output depth for filter (${n[3]}).`),Nn("conv2dDerFilter",r,i);let d={x:o,dy:l},c={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,filterShape:n};return O.runKernel(fm,d,c)}var Xv=L({conv2DBackpropFilter_:sL});function bf(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return z(e,go(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function xf(e,t){let n=t,a=Wt(e.shape,t.shape);return a.length>0&&(n=fe(n,a)),W(n,e.shape)}function vf(e,t,n,a){if(t==="linear")return e;if(t==="relu")return Xe(e);if(t==="elu")return Lu(e);if(t==="relu6")return sf(e);if(t==="prelu")return Uc(e,n);if(t==="leakyrelu")return Lc(e,a);if(t==="sigmoid")return ha(e);throw new Error(`Unknown fused activation ${t}.`)}var wf=(e,t)=>!(e>0)||t==="linear";function iL({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:p}){if(l=l||"linear",wf(O.state.gradientDepth,l)===!1){$(r==="NHWC",()=>`Error in fused conv2d: got dataFormat of ${r} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let T=$t(e,t,n,a,r,s,i);return o!=null&&(T=Y(T,o)),vf(T,l,u,p)}let d=_(e,"x","conv2d","float32"),c=_(t,"filter","conv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=W(d,[1,d.shape[0],d.shape[1],d.shape[2]])),$(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),$(c.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${c.rank}.`),Nn("fused conv2d",a,i);let f=r==="NHWC"?h.shape[3]:h.shape[1];$(c.shape[2]===f,()=>`Error in conv2d: depth of input (${f}) must match input depth for filter ${c.shape[2]}.`),$(cr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let g=Mc(h.shape,c.shape,n,s,a,i),y;o!=null&&(y=_(o,"bias","fused conv2d"),[y]=_t(y,d),r==="NHWC"?ut(g.outShape,y.shape):($(y.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${y.shape.length}.`),$(y.shape.length===0||y.shape[0]===g.outChannels||y.shape[0]===1,()=>`Error in fused conv2d: bias shape (${y.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let b;if(u!=null){let T=u.shape;if($(T.length<=1||T.length===3,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${T.length}.`),T.length===1)$(T[0]===1||T[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${T}) is not compatible with the number of output channels (${g.outChannels}).`);else if(T.length===3)try{ut(T,g.outShape)}catch(C){let E=`Error in fused conv2d: PReLU activation weights (${T}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error(E)}b=_(u,"prelu weights","fused conv2d")}let x=(T,C)=>{$(r==="NHWC",()=>`Error in gradient of fused conv2D: got dataFormat of ${r} but only NHWC is currently supported.`);let[E,A,R,F]=C,S=bf(T,R,l);$(os(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let M=mv(A.shape,S,E,n,a),B=Xv(A,S,E.shape,n,a),U=[M,B];if(F!=null){let G=xf(F,S);U.push(G)}return U},w={x:h,filter:c,bias:y,preluActivationWeights:b},I={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?ur((T,C,E)=>{let A=O.runKernel(ei,w,I);return E([C,T,A]),m&&(A=W(A,[A.shape[1],A.shape[2],A.shape[3]])),{value:A,gradFunc:x}})(h,c):ur((T,C,E,A)=>{let R=O.runKernel(ei,w,I);return A([C,T,R,E]),m&&(R=W(R,[R.shape[1],R.shape[2],R.shape[3]])),{value:R,gradFunc:x}})(h,c,y)}var oL=L({fusedConv2d_:iL});function lL(e,t,n,a,r,s=[1,1],i){let o=e;e.rank===3&&(o=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={x:o,dy:l},p={strides:a,pad:r,dimRoundingMode:i,dilations:s,filterShape:n};return O.runKernel(xm,u,p)}var WT=L({depthwiseConv2dNativeBackpropFilter_:lL});function uL(e,t,n,a,r,s=[1,1],i){let o=t,l=!1;t.rank===3&&(l=!0,o=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={dy:o,filter:n},p={strides:a,pad:r,dimRoundingMode:i,dilations:s,inputShape:e},d=O.runKernel(vm,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var BT=L({depthwiseConv2dNativeBackpropInput_:uL});function pL({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:p}){if(wf(O.state.gradientDepth,l)===!1){let I=Is(e,t,n,a,r,s,i);return o!=null&&(I=Y(I,o)),vf(I,l,u,p)}let d=_(e,"x","depthwiseConv2d","float32"),c=_(t,"filter","depthwiseConv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=W(d,[1,d.shape[0],d.shape[1],d.shape[2]])),$(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),$(c.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${c.rank}.`),$(h.shape[3]===c.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${h.shape[3]}) must match the inChannels dimension in filter ${c.shape[2]}.`),s==null&&(s=[1,1]),$(cr(n,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),Nn("fused depthwiseConv2d",a,i);let f=Mc(h.shape,c.shape,n,s,a,i,!0),g;o!=null&&(g=_(o,"bias","fused conv2d"),[g]=_t(g,d),ut(f.outShape,g.shape));let y;u!=null&&(y=_(u,"prelu weights","fused depthwiseConv2d"));let b=(I,T)=>{$(os(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[C,E,A,R]=T,F=bf(I,A,l),S=BT(E.shape,F,C,n,a,s,i),M=WT(E,F,C.shape,n,a,s,i);if(R!=null){let B=xf(g,F);return[S,M,B]}return[S,M]},x={x:h,filter:c,bias:g,preluActivationWeights:y},w={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?ur((I,T,C)=>{let E=O.runKernel(ti,x,w);return C([T,I,E]),m&&(E=W(E,[E.shape[1],E.shape[2],E.shape[3]])),{value:E,gradFunc:b}})(h,c):ur((I,T,C,E)=>{let A=O.runKernel(ti,x,w);return E([T,I,A,C]),m&&(A=W(A,[A.shape[1],A.shape[2],A.shape[3]])),{value:A,gradFunc:b}})(h,c,g)}var cL=L({fusedDepthwiseConv2d_:pL});function dL({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o=.2}){if(wf(O.state.gradientDepth,s)===!1){let R=Fe(e,t,n,a);return r!=null&&(R=Y(R,r)),vf(R,s,i,o)}let l=_(e,"a","fused matMul"),u=_(t,"b","fused matMul");[l,u]=_t(l,u);let p=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=a?u.shape[u.rank-1]:u.shape[u.rank-2],c=n?l.shape[l.rank-1]:l.shape[l.rank-2],h=a?u.shape[u.rank-2]:u.shape[u.rank-1],m=l.shape.slice(0,-2),f=u.shape.slice(0,-2),g=mt(m),y=mt(f);$(p===d,()=>`Error in fused matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${l.shape} and ${u.shape} and transposeA=${n} and transposeB=${a} must match.`);let b=ut(l.shape.slice(0,-2),u.shape.slice(0,-2)).concat([c,h]),x=n?W(l,[g,p,c]):W(l,[g,c,p]),w=a?W(u,[y,h,d]):W(u,[y,d,h]),I;r!=null&&(I=_(r,"bias","fused matMul"),[I]=_t(I,l),ut(b,I.shape));let T;i!=null&&(T=_(i,"prelu weights","fused matMul"));let C=(R,F)=>{let[S,M,B,U]=F,G=bf(W(R,B.shape),B,s),q,K;if(!n&&!a?(q=Fe(G,M,!1,!0),K=Fe(S,G,!0,!1)):!n&&a?(q=Fe(G,M,!1,!1),K=Fe(G,S,!0,!1)):n&&!a?(q=Fe(M,G,!1,!0),K=Fe(S,G,!1,!1)):(q=Fe(M,G,!0,!0),K=Fe(G,S,!0,!0)),r!=null){let Z=xf(U,G);return[q,K,Z]}else return[q,K]},E={a:x,b:w,bias:I,preluActivationWeights:T},A={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?ur((R,F,S)=>{let M=O.runKernel(Qs,E,A);return S([R,F,M]),{value:W(M,b),gradFunc:C}})(x,w):ur((R,F,S,M)=>{let B=O.runKernel(Qs,E,A);return M([R,F,B,S]),{value:W(B,b),gradFunc:C}})(x,w,I)}var hL=L({fusedMatMul_:dL});function mL(e){return yf(e,.54,.46)}var fL=L({hammingWindow_:mL});function gL(e){return yf(e,.5,.5)}var VT=L({hannWindow_:gL});function yL(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(Be(e,s,t)),s+=n;if(a)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),$(o.rank===2&&o.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${o.shape}.`),$(l.rank===1&&l.shape[0]===u,()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${o.shape}.`),$(a.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${a.length}.`),$(a[0]>=1&&a[1]>=1,()=>`cropSize must be atleast [1,1], but was ${a}`),$(r==="bilinear"||r==="nearest",()=>`method must be bilinear or nearest, but was ${r}`);let p={image:i,boxes:o,boxInd:l},d={method:r,extrapolationValue:s,cropSize:a};return O.runKernel(jl,p,d)}var wL=L({cropAndResize_:vL});function kL(e){let t=_(e,"image","flipLeftRight","float32");$(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let n={image:t};return O.runKernel(Jl,n,{})}var IL=L({flipLeftRight_:kL});function SL(e){let t=_(e,"image","grayscaleToRGB"),n=t.rank-1,a=t.shape[n];$(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),$(a===1,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${a}.`);let r=new Array(t.rank);return r.fill(1,0,n),r[n]=3,Ln(t,r)}var TL=L({grayscaleToRGB_:SL});function NL(e,t,n=0,a=.5){let r=_(e,"image","rotateWithOffset","float32");$(r.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${r.rank}.`);let s={image:r},i={radians:t,fillValue:n,center:a};return O.runKernel(Pu,s,i)}var CL=L({rotateWithOffset_:NL});function Gu(e,t,n,a,r,s){a==null&&(a=.5),r==null&&(r=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=e.shape[0];return n=Math.min(n,i),$(0<=a&&a<=1,()=>`iouThreshold must be in [0, 1], but was '${a}'`),$(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),$(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),$(t.rank===1,()=>"scores must be a 1D tensor"),$(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),$(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s}}function _L(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppression","float32"),i=_(t,"scores","nonMaxSuppression","float32"),o=Gu(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l={maxOutputSize:n,iouThreshold:a,scoreThreshold:r};return O.runKernel(mu,{boxes:s,scores:i},l)}var EL=L({nonMaxSuppression_:_L});function AL(e,t,n){let a=$L(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function $L(e,t,n){return DL(e,t,n||FL)}function FL(e,t){return e>t?1:e>>1);let o=n(t,e[s]);o>0?a=s+1:(r=s,i=!o)}return i?a:-a-1}function GT(e,t,n,a,r){return Yv(e,t,n,a,r,0)}function HT(e,t,n,a,r,s){return Yv(e,t,n,a,r,0,!1,s,!0)}function jT(e,t,n,a,r,s){return Yv(e,t,n,a,r,s,!0)}function Yv(e,t,n,a,r,s,i=!1,o=!1,l=!1){let u=[];for(let g=0;gr&&u.push({score:t[g],boxIndex:g,suppressBeginIndex:0});u.sort(bk);let p=s>0?-.5/s:0,d=[],c=[];for(;d.length0;){let g=u.pop(),{score:y,boxIndex:b,suppressBeginIndex:x}=g;if(y=x;--I){let T=RL(e,b,d[I]);if(T>=a){w=!0;break}if(g.score=g.score*ML(a,p,T),g.score<=r)break}g.suppressBeginIndex=d.length,w||(g.score===y?(d.push(b),c.push(g.score)):g.score>r&&AL(u,g,bk))}let h=d.length,m=n-h;o&&m>0&&(d.push(...new Array(m).fill(0)),c.push(...new Array(m).fill(0)));let f={selectedIndices:d};return i&&(f.selectedScores=c),l&&(f.validOutputs=h),f}function RL(e,t,n){let a=e.subarray(t*4,t*4+4),r=e.subarray(n*4,n*4+4),s=Math.min(a[0],a[2]),i=Math.min(a[1],a[3]),o=Math.max(a[0],a[2]),l=Math.max(a[1],a[3]),u=Math.min(r[0],r[2]),p=Math.min(r[1],r[3]),d=Math.max(r[0],r[2]),c=Math.max(r[1],r[3]),h=(o-s)*(l-i),m=(d-u)*(c-p);if(h<=0||m<=0)return 0;let f=Math.max(s,u),g=Math.max(i,p),y=Math.min(o,d),b=Math.min(l,c),x=Math.max(y-f,0)*Math.max(b-g,0);return x/(h+m-x)}function ML(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function bk(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function PL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppressionAsync"),i=_(t,"scores","nonMaxSuppressionAsync"),o=Gu(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l=await Promise.all([s.data(),i.data()]),u=l[0],p=l[1],{selectedIndices:d}=GT(u,p,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),Ke(d,"int32")}var OL=PL;function LL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=Gu(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let u={boxes:i,scores:o},p={maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s},d=O.runKernel(gu,u,p);return{selectedIndices:d[0],selectedScores:d[1]}}var zL=L({nonMaxSuppressionWithScore_:LL});async function WL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=Gu(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let u=await Promise.all([i.data(),o.data()]),p=u[0],d=u[1],{selectedIndices:c,selectedScores:h}=jT(p,d,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ke(c,"int32"),selectedScores:Ke(h)}}var BL=WL;function VL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=Gu(i,o,n,a,r,null),u=l.maxOutputSize,p=l.iouThreshold,d=l.scoreThreshold,c={boxes:i,scores:o},h={maxOutputSize:u,iouThreshold:p,scoreThreshold:d,padToMaxOutputSize:s},m=O.runKernel(fu,c,h);return{selectedIndices:m[0],validOutputs:m[1]}}var UL=L({nonMaxSuppressionPadded_:VL});async function GL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=Gu(i,o,n,a,r,null),u=l.maxOutputSize,p=l.iouThreshold,d=l.scoreThreshold,[c,h]=await Promise.all([i.data(),o.data()]),{selectedIndices:m,validOutputs:f}=HT(c,h,u,p,d,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ke(m,"int32"),validOutputs:be(f,"int32")}}var HL=GL;function jL(e,t,n=!1,a=!1){let r=_(e,"images","resizeBilinear");$(r.rank===3||r.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`),$(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),$(a===!1||n===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=W(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},u=O.runKernel(Ji,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var qT=L({resizeBilinear_:jL});function qL(e,t,n=!1,a=!1){let r=_(e,"images","resizeNearestNeighbor");$(r.rank===3||r.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`),$(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),$(r.dtype==="float32"||r.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),$(a===!1||n===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=W(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},u=O.runKernel(Zi,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var KT=L({resizeNearestNeighbor_:qL});function KL(e,t="binary",n=!1,a=.5){let r=_(e,"image","threshold"),s=.2989,i=.587,o=.114,l=r.shape[0]*r.shape[1],u=z(Ke([a]),255),p,d,c,h;if($(r.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${r.rank}.`),$(r.shape[2]===3||r.shape[2]===1,()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${r.shape[2]}.`),$(r.dtype==="int32"||r.dtype==="float32",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${r.dtype}.`),$(t==="otsu"||t==="binary",()=>`Method must be binary or otsu, but was ${t}`),r.shape[2]===3){[p,d,c]=zn(r,[1,1,1],-1);let f=z(p,s),g=z(d,i),y=z(c,o);h=Y(Y(f,g),y)}else h=e;if(t==="otsu"){let f=lv(oe(of(h),"int32"),In([]),256);u=XL(f,l)}let m=n?Ss(h,u):Cn(h,u);return oe(z(m,255),"int32")}function XL(e,t){let n=Ke([-1]),a=Ke([0]),r=Ke([0]),s,i,o,l,u,p;for(let d=0;d`Error in transform: image must be rank 4,but got rank ${i.rank}.`),$(o.rank===2&&(o.shape[0]===i.shape[0]||o.shape[0]===1)&&o.shape[1]===8,()=>"Error in transform: Input transform should be batch x 8 or 1 x 8"),$(s==null||s.length===2,()=>`Error in transform: outputShape must be [height, width] or null, but got ${s}.`);let l={image:i,transforms:o},u={interpolation:n,fillMode:a,fillValue:r,outputShape:s};return O.runKernel(Du,l,u)}var JL=L({transform_:ZL});function QL(e,t,n){$(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),$(n%1===0,()=>`bandPart(): numUpper must be an integer, got ${n}.`);let a=_(e,"a","bandPart");$(a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${a.rank}.`);let r=a.shape,[s,i]=a.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);let o=W(xl(0,s,1,"int32"),[-1,1]),l=xl(0,i,1,"int32"),u=pe(o,l),p=$a(Ss(u,be(+t,"int32")),Fr(u,be(-n,"int32"))),d=It([s,i],a.dtype);return W(Ft(ct(W(a,[-1,s,i])).map(c=>mn(p,c,d))),r)}var ez=L({bandPart_:QL});function tz(e){let t;if(Array.isArray(e)){t=!1,$(e!=null&&e.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let r=e[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[s].shape[0]} vs. ${r})`)}else t=!0,e=zn(e,e.shape[0],0).map(r=>Ns(r,[0]));$(e.length<=e[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`);let n=[],a=e;for(let r=0;r{let s=a[r];if(r>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`),e.rank===2)return xk(e,t);{let n=e.shape.slice(0,e.shape.length-2).reduce((l,u)=>l*u),a=ct(W(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];a.forEach(l=>{let[u,p]=xk(l,t);r.push(u),s.push(p)});let i=W(Ft(r,0),e.shape),o=W(Ft(s,0),e.shape);return[i,o]}}function xk(e,t=!1){return O.tidy(()=>{$(e.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`);let n=e.shape[0],a=e.shape[1],r=Zm(n),s=ir(e),i=Aa([[1]],[1,1]),o=ir(i),l=n>=a?a:n;for(let u=0;u{let h=Be(s,[u,u],[n-u,1]),m=zu(h),f=Be(s,[u,u],[1,1]),g=mn(Cn(f,0),Aa([[-1]]),Aa([[1]])),y=pe(f,z(g,m)),b=he(h,y);b.shape[0]===1?o=ir(i):o=Ze([i,Be(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let x=vt(he(Fe(g,y),m)),w=Be(s,[u,0],[n-u,a]),I=z(x,o),T=Ee(o);if(u===0)s=pe(w,Fe(I,Fe(T,w)));else{let A=pe(w,Fe(I,Fe(T,w)));s=Ze([Be(s,[0,0],[u,a]),A],0)}let C=Ee(I),E=Be(r,[0,u],[n,r.shape[1]-u]);if(u===0)r=pe(E,Fe(Fe(E,o),C));else{let A=pe(E,Fe(Fe(E,o),C));r=Ze([Be(r,[0,0],[n,u]),A],1)}return[o,s,r]}),_e([p,d,c])}return!t&&n>a&&(r=Be(r,[0,0],[n,a]),s=Be(s,[0,0],[a,a])),[r,s]})}var rz=L({qr_:az}),vn;(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"})(vn||(vn={}));function sz(e,t,n=vn.SUM_BY_NONZERO_WEIGHTS){let a=_(e,"losses","computeWeightedLoss"),r=null;t!=null&&(r=_(t,"weights","computeWeightedLoss"));let s=r==null?a:z(a,r);if(n===vn.NONE)return s;if(n===vn.SUM)return fe(s);if(n===vn.MEAN){if(r==null)return Nt(s);{let i=a.size/r.size,o=he(fe(s),fe(r));return i>1?he(o,be(i)):o}}if(n===vn.SUM_BY_NONZERO_WEIGHTS){if(r==null)return he(fe(s),be(a.size));{let i=z(r,Jn(a.shape)),o=oe(fe(oi(i,be(0))),"float32");return he(fe(s),o)}}throw Error(`Unknown reduction: ${n}`)}var Dr=L({computeWeightedLoss_:sz});function iz(e,t,n,a=vn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","absoluteDifference"),s=_(t,"predictions","absoluteDifference"),i=null;n!=null&&(i=_(n,"weights","absoluteDifference")),Tn(r.shape,s.shape,"Error in absoluteDifference: ");let o=Lt(pe(r,s));return Dr(o,i,a)}var oz=L({absoluteDifference_:iz});function lz(e,t,n,a,r=vn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","cosineDistance"),i=_(t,"predictions","cosineDistance"),o=null;a!=null&&(o=_(a,"weights","cosineDistance")),Tn(s.shape,i.shape,"Error in cosineDistance: ");let l=be(1),u=pe(l,fe(z(s,i),n,!0));return Dr(u,o,r)}var uz=L({cosineDistance_:lz});function pz(e,t,n,a=vn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","hingeLoss"),s=_(t,"predictions","hingeLoss"),i=null;n!=null&&(i=_(n,"weights","hingeLoss")),Tn(r.shape,s.shape,"Error in hingeLoss: ");let o=be(1);r=pe(z(be(2),r),o);let l=Xe(pe(o,z(r,s)));return Dr(l,i,a)}var cz=L({hingeLoss_:pz});function dz(e,t,n,a=1,r=vn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","huberLoss"),i=_(t,"predictions","huberLoss"),o=null;n!=null&&(o=_(n,"weights","huberLoss")),Tn(s.shape,i.shape,"Error in huberLoss: ");let l=be(a),u=Lt(pe(i,s)),p=Vu(u,l),d=pe(u,p),c=Y(z(be(.5),lt(p)),z(l,d));return Dr(c,o,r)}var hz=L({huberLoss_:dz});function mz(e,t,n,a=1e-7,r=vn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","logLoss"),i=_(t,"predictions","logLoss"),o=null;n!=null&&(o=_(n,"weights","logLoss")),Tn(s.shape,i.shape,"Error in logLoss: ");let l=be(1),u=be(a),p=vt(z(s,ta(Y(i,u)))),d=z(pe(l,s),ta(Y(pe(l,i),u))),c=pe(p,d);return Dr(c,o,r)}var fz=L({logLoss_:mz});function gz(e,t,n,a=vn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","meanSquaredError"),s=_(t,"predictions","meanSquaredError"),i=null;n!=null&&(i=_(n,"weights","meanSquaredError")),Tn(r.shape,s.shape,"Error in meanSquaredError: ");let o=mf(r,s);return Dr(o,i,a)}var yz=L({meanSquaredError_:gz});function bz(e,t){let n=_(e,"labels","sigmoidCrossEntropyWithLogits"),a=_(t,"logits","sigmoidCrossEntropyWithLogits");Tn(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=Xe(a),s=z(a,n),i=zc(fn(vt(Lt(a))));return Y(pe(r,s),i)}function xz(e,t,n,a=0,r=vn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"multiClassLabels","sigmoidCrossEntropy"),i=_(t,"logits","sigmoidCrossEntropy"),o=null;if(n!=null&&(o=_(n,"weights","sigmoidCrossEntropy")),Tn(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let u=be(a),p=be(1),d=be(.5);s=Y(z(s,pe(p,u)),z(d,u))}let l=bz(s,i);return Dr(l,o,r)}var vz=L({sigmoidCrossEntropy_:xz});function wz(e,t,n=-1){if(n===-1&&(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 ur((a,r,s)=>{let i=tf(r,[n],!0),o=pe(oe(r,"float32"),i);s([a,o]);let l=vt(z(o,a));return{value:fe(l,[n]),gradFunc:(u,p)=>{let[d,c]=p,h=ii(u.shape,[n]);return[z(W(u,h),pe(oe(d,"float32"),fn(c))),z(W(u,h),pe(fn(c),oe(d,"float32")))]}}})(e,t)}function kz(e,t,n,a=0,r=vn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"onehotLabels","softmaxCrossEntropy"),i=_(t,"logits","softmaxCrossEntropy"),o=null;if(n!=null&&(o=_(n,"weights","softmaxCrossEntropy")),Tn(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let u=be(a),p=be(1),d=be(s.shape[1]);s=Y(z(s,pe(p,u)),he(u,d))}let l=wz(s,i);return Dr(l,o,r)}var Iz=L({softmaxCrossEntropy_:kz});function Sz(e,t,n,a){let r=_(e,"indices","sparseFillEmptyRows","int32"),s=_(t,"values","sparseFillEmptyRows"),i=_(n,"denseShape","sparseFillEmptyRows","int32"),o=_(a,"defaultValue","sparseFillEmptyRows",s.dtype);if(r.rank!==2)throw new Error(`Indices should be Tensor2D but received shape + ${a.shape}`),A(i%(t*t)===0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${a.shape}`);let o={x:a},l={blockSize:t,dataFormat:n};return O.runKernel(ql,o,l)}var yv=L({depthToSpace_:AP});function FP(e,t,n,a,r="NHWC",s=[1,1],i){let o=_(e,"x","depthwiseConv2d","float32"),l=_(t,"filter","depthwiseConv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(u.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${u.rank}.`),A(l.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`);let d=r==="NHWC"?u.shape[3]:u.shape[1];A(d===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${d}) must match the inChannels dimension in filter ${l.shape[2]}.`),Nn("depthwiseConv2d",a,i);let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=O.runKernel(Ni,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Is=L({depthwiseConv2d_:FP});function DP(e){let t={x:_(e,"x","diag")};return O.runKernel(wm,t)}var tT=L({diag_:DP});function RP(e,t,n,a,r=[1,1],s="NHWC"){let i=_(e,"x","dilation2d"),o=_(t,"filter","dilation2d");A(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),A(o.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`),A(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=i,u=!1;i.rank===3&&(l=W(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=!0);let p={x:l,filter:o},d={strides:n,pad:a,dilations:r},c=O.runKernel(fc,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var bv=L({dilation2d_:RP});function MP(e,t){let n=_(e,"a","equal","string_or_numeric"),a=_(t,"b","equal","string_or_numeric");[n,a]=_t(n,a),ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Xl,r)}var ea=L({equal_:MP});function PP(e,t,n){let a=_(t,"a","where"),r=_(n,"b","where"),s=_(e,"condition","where","bool"),i=ut(ut(s.shape,a.shape),r.shape),o=Xs(s,i),l=Xs(a,i),u=Xs(r,i),p={condition:o,t:l,e:u};return O.runKernel(ku,p)}var mn=L({where_:PP});function OP(e){let t={x:_(e,"x","zerosLike")};return O.runKernel(Mu,t)}var qe=L({zerosLike_:OP});function LP(e,t){let n=_(e,"a","div"),a=_(t,"b","div");[n,a]=_t(n,a);let r=he(n,a),s=qe(r),i=ea(a,s);return mn(i,s,r)}var xv=L({divNoNan_:LP});function zP(e,t){let n=_(e,"t1","dot"),a=_(t,"t2","dot");A((n.rank===1||n.rank===2)&&(a.rank===1||a.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${n.rank} and ${a.rank}.`);let r=n.rank===1?n.size:n.shape[1],s=a.rank===1?a.size:a.shape[0];if(A(r===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${s}.`),n.rank===1&&a.rank===1){let i=W(n,[1,-1]),o=W(a,[-1,1]),l=Fe(i,o);return W(l,[])}else if(n.rank===1&&a.rank===2){let i=W(n,[1,-1]),o=W(a,[a.shape[0],a.shape[1]]),l=Fe(i,o);return W(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=W(a,[-1,1]),o=Fe(n,i);return W(o,[o.size])}else{let i=W(a,[a.shape[0],a.shape[1]]);return Fe(n,i)}}var vv=L({dot_:zP});function WP(e,...t){let n=t.map((r,s)=>_(r,`tensors${s}`,"einsum")),a={equation:e};return O.runKernel(km,n,a)}var nT=L({einsum_:WP});function BP(e){let t={x:_(e,"x","elu","float32")};return O.runKernel(_i,t)}var Lu=L({elu_:BP});function VP(e){let t=_(e,"x","erf");A(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=le(t,"float32"));let n={x:t};return O.runKernel(Kl,n)}var wv=L({erf_:VP});function kv(e,t){for(let n=0;ne[s]);return[n,r]}function ii(e,t){let n=t.map(a=>1);return aT(e,n,t)}function UP(e,t,n){A(kv(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function sT(e,t){if(kv(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function Iv(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function GP(e,t){let n=[];for(let a=t-e;a"Axis must be <= rank of the tensor");let a={input:n},r={dim:t};return O.runKernel(Yl,a,r)}var Zt=L({expandDims_:eO});function tO(e){let t={x:_(e,"x","expm1")};return O.runKernel(Zl,t)}var Tv=L({expm1_:tO});function nO(e,t){let n=_(e,"x","tile","string_or_numeric");A(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`);let a={x:n},r={reps:t};return O.runKernel(bs,a,r)}var Ln=L({tile_:nO});function aO(e,t,n,a="float32"){t==null&&(t=e);let r=Oe([e,t],a),s=e<=t?e:t;for(let o=0;o`Error in localResponseNormalization: x must be rank 3 or 4 but got + rank ${s.rank}.`),A(hl(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,o=!1;s.rank===3&&(o=!0,i=W(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let l={x:i},u={depthRadius:t,bias:n,alpha:a,beta:r},p=O.runKernel(yc,l,u);return o?W(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Ev=L({localResponseNormalization_:mO});function fO(e){let t={x:_(e,"x","log","float32")};return O.runKernel(Pi,t)}var ta=L({log_:fO});function gO(e){let t={x:_(e,"x","log1p")};return O.runKernel(ou,t)}var zc=L({log1p_:gO});function yO(e){return A(ss(e),()=>"The f passed in grad(f) must be a function"),(t,n)=>{let a=_(t,"x","tf.grad","string_or_numeric"),r=n!=null?_(n,"dy","tf.grad"):null;return O.tidy(()=>{let{value:s,grads:i}=O.gradients(()=>e(a),[a],r);return r!=null&&Tn(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Qm(i),i[0]})}}function bO(e){return A(ss(e),()=>"The f passed in grads(f) must be a function"),(t,n)=>{A(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let a=Jp(t,"args","tf.grads","string_or_numeric"),r=n!=null?_(n,"dy","tf.grads"):null;return O.tidy(()=>{let{value:s,grads:i}=O.gradients(()=>e(...a),a,r);return r!=null&&Tn(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Qm(i),i})}}function xO(e){return A(ss(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{A(t instanceof Te,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),A(n==null||n instanceof Te,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:a,value:r}=O.gradients(()=>e(t),[t],n);return Qm(a),{grad:a[0],value:r}}}function vO(e){return A(ss(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{A(Array.isArray(t)&&t.every(r=>r instanceof Te),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),A(n==null||n instanceof Te,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let a=O.gradients(()=>e(...t),t,n);return n!=null&&Tn(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Qm(a.grads),a}}function lT(e,t){A(ss(e),()=>"The f passed in variableGrads(f) must be a function"),A(t==null||Array.isArray(t)&&t.every(u=>u instanceof is),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let n=t!=null;if(!n){t=[];for(let u in O.registeredVariables)t.push(O.registeredVariables[u])}let a=n?t.filter(u=>!u.trainable):null,r=t.length;t=t.filter(u=>u.trainable),A(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${r} variables is trainable.`);let s=!0,{value:i,grads:o}=O.gradients(e,t,null,s);A(o.some(u=>u!=null),()=>"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()."),A(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let l={};return t.forEach((u,p)=>{o[p]!=null&&(l[u.name]=o[p])}),a!=null&&a.forEach(u=>l[u.name]=null),{value:i,grads:l}}function ur(e){return O.customGrad(e)}function Qm(e){if(e.filter(t=>t==null).length>0)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.`)}function wO(e){let t={x:_(e,"x","softplus")};return O.runKernel(Cu,t)}var mo=L({softplus_:wO});function kO(e){let t=_(e,"x","logSigmoid");return ur(n=>({value:vt(mo(vt(n))),gradFunc:a=>z(a,ha(vt(n)))}))(t)}var $v=L({logSigmoid_:kO});function IO(e,t){let n=_(e,"a","sub"),a=_(t,"b","sub");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(uo,r)}var pe=L({sub_:IO});function SO(e,t=-1){let n=_(e,"logits","logSoftmax");if(t===-1&&(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 ur((a,r)=>{let s=ma(a,t,!0),i=pe(a,s),o=pe(le(i,"float32"),ta(fe(fn(i),t,!0)));return r([o]),{value:o,gradFunc:(l,u)=>{let[p]=u,d=!0,c=fn(p);return pe(l,z(fe(l,t,d),c))}}})(n)}var ef=L({logSoftmax_:SO});function TO(e,t=null,n=!1){let a=_(e,"x","logSumExp"),r=Fa(t,a.shape),s=ma(a,r,!0),i=pe(a,s),o=fn(i),l=fe(o,r),u=ta(l),p=Y(W(s,u.shape),u);if(n){let d=ii(p.shape,r);return W(p,d)}return p}var tf=L({logSumExp_:TO});function NO(e,t){let n=_(e,"a","logicalAnd","bool"),a=_(t,"b","logicalAnd","bool");ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(lu,r)}var Aa=L({logicalAnd_:NO});function CO(e){let t={x:_(e,"x","logicalNot","bool")};return O.runKernel(uu,t)}var Wc=L({logicalNot_:CO});function _O(e,t){let n=_(e,"a","logicalOr","bool"),a=_(t,"b","logicalOr","bool");ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(pu,r)}var nf=L({logicalOr_:_O});function EO(e,t){let n=_(e,"a","logicalXor","bool"),a=_(t,"b","logicalXor","bool");return ut(n.shape,a.shape),Aa(nf(e,t),Wc(Aa(e,t)))}var Av=L({logicalXor_:EO}),ih=2147483648;function $O(e,t,n="left"){let a=_(e,"sortedSequence","searchSorted"),r=_(t,"values","searchSorted"),s=a.shape[a.shape.length-1],i=r.shape[r.shape.length-1],o=W(a,[-1,s]),l=W(r,[-1,i]);if(o.rank<2)throw new Error("Sorted input argument must be at least 2-dimensional");if(o.shape[0]!==l.shape[0])throw new Error("Leading dimension of 'sortedSequence' and 'values' must match.");if(mt(l.shape)>=ih)throw new Error(`values tensor size must less than ${ih}`);if(o.shape[1]>=ih)throw new Error(`trailing dim_size must less than ${ih} for int32 output type, was ${o.shape[1]}`);let u={sortedSequence:o,values:l},p={side:n};return O.runKernel(zm,u,p)}var af=L({searchSorted_:$O});function uT(e,t){return af(e,t,"left")}function AO(e,t,n,a,r){let s=_(e,"x","maxPool"),i=1,o=s,l=!1;s.rank===3&&(l=!0,o=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(o.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${o.rank}.`),A(cr(n,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),Nn("maxPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=O.runKernel(zi,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Dt=L({maxPool_:AO});function FO(e,t=[1,1,1],n,a,r,s="NDHWC"){let i=_(e,"x","maxPool3d"),o=i,l=!1;i.rank===4&&(l=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Nn("maxPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=O.runKernel(bc,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Fv=L({maxPool3d_:FO});function DO(e,t,n,a,r=!1){let s={x:_(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=O.runKernel(Am,s,i);return{result:o[0],indexes:o[1]}}var pT=L({maxPoolWithArgmax_:DO});function RO(e,t){let n=_(e,"a","maximum"),a=_(t,"b","maximum");[n,a]=_t(n,a),n.dtype==="bool"&&(n=le(n,"int32"),a=le(a,"int32")),ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Li,r)}var dr=L({maximum_:RO});function MO(e,t=null,n=!1){let a={x:_(e,"x","mean")},r={axis:t,keepDims:n};return O.runKernel(Wi,a,r)}var Nt=L({mean_:MO});function It(e,t="float32"){if(t==="complex64"){let a=It(e,"float32"),r=It(e,"float32");return $r(a,r)}let n=um(mt(e),t);return O.makeTensor(n,e,t)}function Jn(e,t="float32"){if(t==="complex64"){let a=Jn(e,"float32"),r=It(e,"float32");return $r(a,r)}let n=_x(mt(e),t);return O.makeTensor(n,e,t)}function cT(e,t,{indexing:n="xy"}={}){if(n!=="xy"&&n!=="ij")throw new TypeError(`${n} is not a valid third argument to meshgrid`);if(e===void 0)return[];let a=_(e,"x","meshgrid",e instanceof Te?e.dtype:"float32");if(t===void 0)return[a];let r=_(t,"y","meshgrid",t instanceof Te?t.dtype:"float32"),s=mt(a.shape),i=mt(r.shape);return n==="xy"?(a=W(a,[1,-1]),r=W(r,[-1,1]),[Fe(Jn([i,1],a.dtype),a),Fe(r,Jn([1,s],r.dtype))]):(a=W(a,[-1,1]),r=W(r,[1,-1]),[Fe(a,Jn([1,i],a.dtype)),Fe(Jn([s,1],r.dtype),r)])}function PO(e,t){let n=_(e,"a","minimum"),a=_(t,"b","minimum");[n,a]=_t(n,a),n.dtype==="bool"&&(n=le(n,"int32"),a=le(a,"int32")),ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Vi,r)}var Vu=L({minimum_:PO});function OO(e,t,n){A(n==="reflect"||n==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`);let a=_(e,"x","mirrorPad");if(a.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");A(t.length===a.rank,()=>`Padding doesn't match input. Must be ${a.rank}. Got ${t.length}.`);let r=n==="reflect"?1:0;for(let o=0;o"Invalid number of paddings. Must be length of 2 each."),A(t[o][0]>=0&&t[o][0]<=a.shape[o]-r&&t[o][1]>=0&&t[o][1]<=a.shape[o]-r,()=>`Padding in dimension ${o} cannot be greater than or equal to ${a.shape[o]-r} or less than 0 for input of shape ${a.shape}`);let s={paddings:t,mode:n},i={x:a};return O.runKernel(Ui,i,s)}var Dv=L({mirrorPad_:OO});function LO(e,t){let n=_(e,"a","mod"),a=_(t,"b","mod");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(cu,r)}var Rv=L({mod_:LO});function zO(e,t=null,n=!1){e=_(e,"x","moments");let a=Fa(t,e.shape),r=Nt(e,a,n),s=r.shape;n||(s=ii(r.shape,a));let i=lt(pe(le(e,"float32"),W(r,s))),o=Nt(i,a,n);return{mean:r,variance:o}}var Bc=L({moments_:zO});function WO(e,t,n,a){let r=_(t,"data","multiRNNCell"),s=Jp(n,"c","multiRNNCell"),i=Jp(a,"h","multiRNNCell"),o=r,l=[];for(let d=0;d2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);n=n||Math.random();let o={logits:i===1?W(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:a},u=O.runKernel(Fm,o,l);return i===1?W(u,[u.size]):u}var hT=L({multinomial_:BO});function VO(e,t){let n=_(e,"a","notEqual","string_or_numeric"),a=_(t,"b","notEqual","string_or_numeric");[n,a]=_t(n,a),ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(hu,r)}var oi=L({notEqual_:VO});function UO(e){let t={x:_(e,"x","onesLike")};return O.runKernel(yu,t)}var na=L({onesLike_:UO});function GO(e,t){let n=_(e,"v1","outerProduct"),a=_(t,"v2","outerProduct");A(n.rank===1&&a.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${a.rank}.`);let r=W(n,[-1,1]),s=W(a,[1,-1]);return Fe(r,s)}var mT=L({outerProduct_:GO});function HO(e,t,n=0){let a=_(e,"x","pad");if(a.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let r={paddings:t,constantValue:n},s={x:a};return O.runKernel(ji,s,r)}var ba=L({pad_:HO});function jO(e,t,n=0){return A(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),ba(e,[t],n)}var fT=L({pad1d_:jO});function qO(e,t,n=0){return A(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ba(e,t,n)}var gT=L({pad2d_:qO});function KO(e,t,n=0){return A(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ba(e,t,n)}var yT=L({pad3d_:KO});function XO(e,t,n=0){return A(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ba(e,t,n)}var bT=L({pad4d_:XO});function YO(e,t,n){let a=_(e,"x","spaceToBatchND");A(a.rank>=1+t.length,()=>`input rank ${a.rank} should be > than [blockShape] ${t.length}`),A(n.length===t.length,()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`),A(a.shape.reduce((i,o,l)=>l>0&&l<=t.length?i&&(o+n[l-1][0]+n[l-1][1])%t[l-1]===0:i,!0),()=>`input spatial dimensions ${a.shape.slice(1)} with paddings ${n.toString()} must be divisible by blockShapes ${t.toString()}`);let r={x:a},s={blockShape:t,paddings:n};return O.runKernel(_u,r,s)}var Vc=L({spaceToBatchND_:YO});function ZO(e,t,n,a,r,s,i){r==null&&(r=[1,1]),s==null&&(s=1),a===0&&(a="valid");let o=_(e,"x","maxPool"),l=o,u=!1;o.rank===3&&(u=!0,l=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(cr(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let p=XS(l.shape,t,s,r,a),d=[p.dilationHeight,p.dilationWidth],c;a==="same"?c=QO([p.filterHeight,p.filterWidth],d):c=[[0,0],[0,0]];let h=d[0]===1&&d[1]===1,[m,f]=JO([p.inHeight,p.inWidth],d,c),g=h?a:"valid",y=h?l:Vc(l,d,m),b=(n==="avg"?()=>ya(y,t,s,g,i):()=>Dt(y,t,s,g,i))(),x=h?b:Pc(b,d,f);return u?W(x,[x.shape[1],x.shape[2],x.shape[3]]):x}function JO(e,t,n){let a=n.map(p=>p[0]),r=n.map(p=>p[1]),s=e.concat(a,r),i=t.map((p,d)=>(p-s[d]%p)%p),o=r.map((p,d)=>p+i[d]),l=t.map((p,d)=>[a[d],o[d]]),u=t.map((p,d)=>[0,i[d]]);return[l,u]}function QO(e,t){let n=e.map((s,i)=>s+(s-1)*(t[i]-1)).map(s=>s-1),a=n.map(s=>Math.floor(s/2)),r=n.map((s,i)=>s-a[i]);return n.map((s,i)=>[a[i],r[i]])}var Mv=L({pool_:ZO});function e3(e,t){let n=_(e,"x","prelu"),a=_(t,"alpha","prelu"),r={x:n,alpha:a};return O.runKernel(Ki,r)}var Uc=L({prelu_:e3});function t3(e,t=null,n=!1){let a=_(e,"x","prod");a.dtype==="bool"&&(a=le(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return O.runKernel(Xi,r,s)}var Pv=L({prod_:t3});function n3(e,t,n,a){let r=e.map((p,d)=>_(p,`tensors${d}`,"raggedGather","int32")),s=_(t,"paramsDenseValues","raggedGather"),i=_(n,"indices","raggedGather","int32"),o={paramsNestedSplits:r,paramsDenseValues:s,indices:i},l={outputRaggedRank:a},u=O.runKernel(Dm,o,l);return{outputNestedSplits:u.slice(0,u.length-1),outputDenseValues:u[u.length-1]}}var xT=L({raggedGather_:n3});function a3(e,t,n){let a=_(e,"starts","raggedRange"),r=_(t,"limits","raggedRange",a.dtype),s=_(n,"deltas","raggedRange",a.dtype),i={starts:a,limits:r,deltas:s},o=O.runKernel(Rm,i);return{rtNestedSplits:o[0],rtDenseValues:o[1]}}var vT=L({raggedRange_:a3});function r3(e,t,n,a,r){let s=_(e,"shape","raggedTensorToTensor","int32"),i=_(t,"values","raggedTensorToTensor"),o=_(n,"defaultValue","raggedTensorToTensor",i.dtype),l=a.map((d,c)=>_(d,`tensors${c}`,"raggedTensorToTensor","int32")),u={shape:s,values:i,defaultValue:o,rowPartitionTensors:l},p={rowPartitionTypes:r};return O.runKernel(Mm,u,p)}var wT=L({raggedTensorToTensor_:r3});function s3(e,t,n){let a=mt(e),r=null;if(n==null||n==="float32")r=new Float32Array(a);else if(n==="int32")r=new Int32Array(a);else if(n==="bool")r=new Uint8Array(a);else throw new Error(`Unknown data type ${n}`);for(let s=0;s=1||s===0);let i=Math.sqrt(-2*Math.log(s)/s);e=this.mean+this.stdDev*a*i,t=this.mean+this.stdDev*r*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 this.dtype==null||this.dtype==="float32"?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}},i3=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=Ov.alea(r.toString()),this.randn=new Lv(0,1,n,!1,this.randu()),e<1?this.d=e+2/3:this.d=e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,n,a,r,s;for(;;){do a=this.randn.nextValue(),s=1+this.c*a;while(s<=0);if(s*=s*s,e=a*a,t=1-.331*e*e,n=.5*e+this.d*(1-s+Math.log(s)),r=this.randu(),rthis.dtype==null||this.dtype==="float32",this.min=e,this.range=t-e,this.dtype=n,a==null&&(a=Math.random()),typeof a=="number"&&(a=a.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=Ov.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function l3(e,t,n=1,a="float32",r){if(n==null&&(n=1),a==null&&(a="float32"),a!=="float32"&&a!=="int32")throw new Error(`Unsupported data type ${a}`);let s=new i3(t,n,a,r),i=Oe(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),ga(t,0)}var TT=L({reverse1d_:g3});function y3(e,t){let n=_(e,"x","reverse");return A(n.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`),ga(n,t)}var NT=L({reverse2d_:y3});function b3(e,t){let n=_(e,"x","reverse");return A(n.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`),ga(n,t)}var CT=L({reverse3d_:b3});function x3(e,t){let n=_(e,"x","reverse");return A(n.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`),ga(n,t)}var _T=L({reverse4d_:x3});function v3(e){let t={x:_(e,"x","round")};return O.runKernel(to,t)}var of=L({round_:v3});function w3(e){let t={x:_(e,"x","rsqrt","float32")};return O.runKernel(no,t)}var lf=L({rsqrt_:w3});function k3(e){let t={x:_(e,"x","selu")};return O.runKernel(Iu,t)}var uf=L({selu_:k3});function I3(e,t,n,a,r,s=[1,1],i="NHWC"){let o=_(e,"x","separableConv2d"),l=_(t,"depthwiseFilter","separableConv2d"),u=_(n,"pointwiseFilter","separableConv2d"),p=o,d=!1;if(o.rank===3&&(d=!0,p=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),i==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");A(p.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${p.rank}.`),A(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),A(u.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),A(u.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${u.shape[0]}.`),A(u.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${u.shape[1]}.`);let c=l.shape[2],h=l.shape[3];A(u.shape[2]===c*h,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${c*h}, but got ${u.shape[2]}.`);let m=Is(p,l,a,r,i,s),f=At(m,u,1,"valid",i);return d?W(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var Ts=L({separableConv2d_:I3});async function S3(e,t){let n=_(e,"x","setdiff1d"),a=_(t,"y","setdiff1d");A(n.dtype===a.dtype,()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${a.dtype}).`),A(n.rank===1,()=>`x should be 1D tensor, but got x (${n.shape}).`),A(a.rank===1,()=>`y should be 1D tensor, but got y (${a.shape}).`);let r=await n.data(),s=await a.data(),i=new Set(s),o=0;for(let p=0;p`slice1d expects a rank-1 tensor, but got a rank-${a.rank} tensor`),Be(a,[t],[n])}var Gc=L({slice1d_:_3});function E3(e,t,n){let a=_(e,"x","slice2d");return A(a.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var df=L({slice2d_:E3});function $3(e,t,n){let a=_(e,"x","slice3d");return A(a.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var fo=L({slice3d_:$3});function A3(e,t,n){let a=_(e,"x","slice4d");return A(a.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var vl=L({slice4d_:A3});function F3(e,t=-1){let n=_(e,"logits","softmax","float32");if(t===-1&&(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}`);let a={logits:n},r={dim:t};return O.runKernel(oo,a,r)}var Ka=L({softmax_:F3});function D3(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);let t={input:e};return O.runKernel(Sm,t)}var Hc=L({fft_:D3});function R3(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);let t={input:e};return O.runKernel(Tm,t)}var wl=L({ifft_:R3});function M3(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=W(e,[n,t]);a=wl(r)}else{let r=[n,2*(t-1)],s=W(yl(e),[n,t]),i=W(Dc(e),[n,t]),o=ga(Be(s,[0,1],[n,t-2]),1),l=z(ga(Be(i,[0,1],[n,t-2]),1),xe(-1)),u=Ze([s,o],1),p=Ze([i,l],1),d=W($r(u,p),[r[0],r[1]]);a=wl(d)}if(a=yl(a),e.rank===3&&e.shape[0]!==0){let r=a,s=e.shape[0];a=W(a,[s,a.shape[0]/s,a.shape[1]]),r.dispose()}return a}var hf=L({irfft_:M3});function P3(e,t,n=0){let a={x:_(e,"x","split")},r={numOrSizeSplits:t,axis:n};return O.runKernel(Eu,a,r)}var zn=L({split_:P3});function O3(e,t){A(e.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${e.dtype}`);let n=e.shape[e.shape.length-1],a=e.size/n,r;if(t!=null&&t0),f=e.shape.map(g=>g);f[e.shape.length-1]=t,r=Be(e,m,f),n=t}else if(t!=null&&t>n){let m=e.shape.map(f=>f);m[e.shape.length-1]=t-n,r=Ze([e,It(m)],e.shape.length-1),n=t}else r=e;let s=qe(r),i=W($r(r,s),[a,n]),o=Hc(i),l=Math.floor(n/2)+1,u=yl(o),p=Dc(o),d=zn(u,[l,n-l],u.shape.length-1),c=zn(p,[l,n-l],p.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=l,W($r(d[0],c[0]),h)}var jc=L({rfft_:O3});function L3(e,t){let n=_(e,"a","squaredDifference"),a=_(t,"b","squaredDifference");[n,a]=_t(n,a),ut(n.shape,a.shape);let r={a:n,b:a},s={};return O.runKernel(lo,r,s)}var mf=L({squaredDifference_:L3});function z3(e,t){let n=_(e,"x","squeeze","string_or_numeric");return W(n,GI(n.shape,t).newShape)}var Ns=L({squeeze_:z3});function W3(e,t=0){let n=Jp(e,"tensors","stack","string_or_numeric");A(n.length>=1,()=>"Pass at least one tensor to tf.stack"),n.length>0&&A(t<=n[0].rank,()=>"Axis must be <= rank of the tensor");let a=n,r={axis:t};return O.runKernel(bu,a,r)}var Ft=L({stack_:W3});function B3(e,t=0){let n={x:_(e,"x","step")},a={alpha:t};return O.runKernel(xs,n,a)}var go=L({step_:B3});function V3(e,t,n,a,r=0,s=0,i=0,o=0,l=0){let u={x:_(e,"x","stridedSlice","string_or_numeric")},p={begin:t,end:n,strides:a,beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return O.runKernel(Au,u,p)}var Bv=L({stridedSlice_:V3});function U3(e){let t={x:_(e,"x","tan","float32")};return O.runKernel(po,t)}var Vv=L({tan_:U3});function Ke(e,t){mi(e);let n=lr(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return vs(e,null,n,t)}function $a(e,t,n){if(mi(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let a=lr(e,n);if(a.length!==2&&a.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return vs(e,t,a,n)}function Da(e,t,n){if(mi(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let a=lr(e,n);if(a.length!==4&&a.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return vs(e,t,a,n)}function $T(e,t,n){if(mi(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let a=lr(e,n);if(a.length!==5&&a.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return vs(e,t,a,n)}function AT(e,t,n){if(mi(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let a=lr(e,n);if(a.length!==6&&a.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||a,vs(e,t,a,n)}function G3(e,t=1,n=!0){let a=_(e,"x","topk");if(a.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let r=a.shape[a.shape.length-1];if(t<0)throw new Error(`'k' passed to topk() must be >= 0 but got ${t}`);if(t>r)throw new Error(`'k' passed to topk() must be <= the last dimension (${r}) but got ${t}`);let s={x:a},i={k:t,sorted:n},[o,l]=O.runKernel(Fu,s,i);return{values:o,indices:l}}var Uv=L({topk_:G3});function H3(e,t=0,n=1,a,r){if(a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new Lv(t,n,a,!0,r),i=Oe(e,a);for(let o=0;o0,()=>"The input tensor must be at least 1D");let a={x:n},r={axis:t},[s,i]=O.runKernel(Bm,a,r);return{values:s,indices:i}}var Gv=L({unique_:j3});function q3(e,t,n){let a=_(e,"x","unsortedSegmentSum"),r=_(t,"segmentIds","unsortedSegmentSum","int32");A(hl(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return O.runKernel(Cc,s,i)}var gf=L({unsortedSegmentSum_:q3});function K3(e,t=0){let n=_(e,"x","unstack","string_or_numeric");A(t>=-n.shape.length&&t`Axis = ${t} is not in [-${n.shape.length}, ${n.shape.length})`);let a={value:n},r={axis:t};return O.runKernel(Ru,a,r)}var ct=L({unstack_:K3});function FT(e,t){return af(e,t,"right")}function Hv(e,t=!0,n,a){return O.makeVariable(e,t,n,a)}function DT(e,t){let n=[];for(let s=0;s0,()=>"mask cannot be scalar"),Tn(o.slice(s,s+i),r.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let f=s;f"Shape mismatch in v and x");let l=xe(1),u=pe(l,o),p=z(pe(i,s),u);if(r){A(a!=null,()=>"When using zeroDebias: true, step is required.");let d=_(a,"step","movingAverage");p=he(p,pe(l,Ar(o,d)))}return Y(s,p)}var MT=L({movingAverage_:Z3});function J3(e,t,n){let a=_(e,"indices","scatterND","int32"),r=_(t,"updates","scatterND");jx(r,a,n);let s={indices:a,updates:r},i={shape:n};return O.runKernel(wu,s,i)}var PT=L({scatterND_:J3});function Q3(e,t,n,a){if(e.dtype!=="int32")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}.`);let r=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}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===r))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${r}]`);if(t.dtype!==a.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function eL(e,t,n,a=0){let r=_(e,"sparseIndices","sparseToDense","int32"),s=_(t,"sparseValues","sparseToDense","string_or_numeric"),i=_(a,"defaultValue","sparseToDense",s.dtype);Q3(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return O.runKernel(Wm,o,l)}var OT=L({sparseToDense_:eL});function tL(e,t){let n=_(t,"indices","gatherND","int32"),a={params:_(e,"x","gatherND","string_or_numeric"),indices:n};return O.runKernel(eu,a)}var LT=L({gatherND_:tL});function nL(e,t){if(t==null)return e.shape.slice();if(fs(e.shape,t))return t;if(e.shape.length===t.length){let n=[];for(let a=0;a`x has to be a floating point tensor since it's going to be scaled, but got a ${r.dtype} tensor instead.`),A(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof Te?r.clone():r;let s=nL(r,n),i=1-t,o=he(Wu(Y(Uu(s,0,1,"float32",a),i)),i);return z(r,o)}var qv=L({dropout_:aL});function Kv(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function yf(e,t,n){let a=1-e%2,r=new Float32Array(e);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${a.rank}`),A(a.rank-1===r.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${a.rank} and targets rank ${r.rank}`),Tn(a.shape.slice(0,a.shape.length-1),r.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=a.shape[a.shape.length-1];A(n>0&&n<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${n}`);let i=await a.data(),o=await r.data(),[l,u]=[i.length/s,s],p=HI("bool",l);for(let d=0;dg.value-f.value),p[d]=0;for(let f=0;foL,depthwiseConv2d:()=>cL,matMul:()=>hL});function sL(e,t,n,a,r,s="NHWC",i){let o=e;e.rank===3&&(o=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]])),A(o.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`),A(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),A(n.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`);let u=s==="NHWC"?o.shape[3]:o.shape[1],p=s==="NHWC"?l.shape[3]:l.shape[1];A(u===n[2],()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${n[2]}.`),A(p===n[3],()=>`Error in conv2dDerFilter: depth of dy (${p}) must match output depth for filter (${n[3]}).`),Nn("conv2dDerFilter",r,i);let d={x:o,dy:l},c={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,filterShape:n};return O.runKernel(fm,d,c)}var Xv=L({conv2DBackpropFilter_:sL});function bf(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return z(e,go(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function xf(e,t){let n=t,a=Wt(e.shape,t.shape);return a.length>0&&(n=fe(n,a)),W(n,e.shape)}function vf(e,t,n,a){if(t==="linear")return e;if(t==="relu")return Xe(e);if(t==="elu")return Lu(e);if(t==="relu6")return sf(e);if(t==="prelu")return Uc(e,n);if(t==="leakyrelu")return Lc(e,a);if(t==="sigmoid")return ha(e);throw new Error(`Unknown fused activation ${t}.`)}var wf=(e,t)=>!(e>0)||t==="linear";function iL({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:p}){if(l=l||"linear",wf(O.state.gradientDepth,l)===!1){A(r==="NHWC",()=>`Error in fused conv2d: got dataFormat of ${r} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let T=At(e,t,n,a,r,s,i);return o!=null&&(T=Y(T,o)),vf(T,l,u,p)}let d=_(e,"x","conv2d","float32"),c=_(t,"filter","conv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=W(d,[1,d.shape[0],d.shape[1],d.shape[2]])),A(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),A(c.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${c.rank}.`),Nn("fused conv2d",a,i);let f=r==="NHWC"?h.shape[3]:h.shape[1];A(c.shape[2]===f,()=>`Error in conv2d: depth of input (${f}) must match input depth for filter ${c.shape[2]}.`),A(cr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let g=Mc(h.shape,c.shape,n,s,a,i),y;o!=null&&(y=_(o,"bias","fused conv2d"),[y]=_t(y,d),r==="NHWC"?ut(g.outShape,y.shape):(A(y.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${y.shape.length}.`),A(y.shape.length===0||y.shape[0]===g.outChannels||y.shape[0]===1,()=>`Error in fused conv2d: bias shape (${y.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let b;if(u!=null){let T=u.shape;if(A(T.length<=1||T.length===3,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${T.length}.`),T.length===1)A(T[0]===1||T[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${T}) is not compatible with the number of output channels (${g.outChannels}).`);else if(T.length===3)try{ut(T,g.outShape)}catch(C){let E=`Error in fused conv2d: PReLU activation weights (${T}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error(E)}b=_(u,"prelu weights","fused conv2d")}let x=(T,C)=>{A(r==="NHWC",()=>`Error in gradient of fused conv2D: got dataFormat of ${r} but only NHWC is currently supported.`);let[E,$,R,F]=C,S=bf(T,R,l);A(os(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let M=mv($.shape,S,E,n,a),B=Xv($,S,E.shape,n,a),U=[M,B];if(F!=null){let G=xf(F,S);U.push(G)}return U},w={x:h,filter:c,bias:y,preluActivationWeights:b},I={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?ur((T,C,E)=>{let $=O.runKernel(ei,w,I);return E([C,T,$]),m&&($=W($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:x}})(h,c):ur((T,C,E,$)=>{let R=O.runKernel(ei,w,I);return $([C,T,R,E]),m&&(R=W(R,[R.shape[1],R.shape[2],R.shape[3]])),{value:R,gradFunc:x}})(h,c,y)}var oL=L({fusedConv2d_:iL});function lL(e,t,n,a,r,s=[1,1],i){let o=e;e.rank===3&&(o=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={x:o,dy:l},p={strides:a,pad:r,dimRoundingMode:i,dilations:s,filterShape:n};return O.runKernel(xm,u,p)}var WT=L({depthwiseConv2dNativeBackpropFilter_:lL});function uL(e,t,n,a,r,s=[1,1],i){let o=t,l=!1;t.rank===3&&(l=!0,o=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={dy:o,filter:n},p={strides:a,pad:r,dimRoundingMode:i,dilations:s,inputShape:e},d=O.runKernel(vm,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var BT=L({depthwiseConv2dNativeBackpropInput_:uL});function pL({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:p}){if(wf(O.state.gradientDepth,l)===!1){let I=Is(e,t,n,a,r,s,i);return o!=null&&(I=Y(I,o)),vf(I,l,u,p)}let d=_(e,"x","depthwiseConv2d","float32"),c=_(t,"filter","depthwiseConv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=W(d,[1,d.shape[0],d.shape[1],d.shape[2]])),A(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),A(c.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${c.rank}.`),A(h.shape[3]===c.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${h.shape[3]}) must match the inChannels dimension in filter ${c.shape[2]}.`),s==null&&(s=[1,1]),A(cr(n,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),Nn("fused depthwiseConv2d",a,i);let f=Mc(h.shape,c.shape,n,s,a,i,!0),g;o!=null&&(g=_(o,"bias","fused conv2d"),[g]=_t(g,d),ut(f.outShape,g.shape));let y;u!=null&&(y=_(u,"prelu weights","fused depthwiseConv2d"));let b=(I,T)=>{A(os(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[C,E,$,R]=T,F=bf(I,$,l),S=BT(E.shape,F,C,n,a,s,i),M=WT(E,F,C.shape,n,a,s,i);if(R!=null){let B=xf(g,F);return[S,M,B]}return[S,M]},x={x:h,filter:c,bias:g,preluActivationWeights:y},w={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?ur((I,T,C)=>{let E=O.runKernel(ti,x,w);return C([T,I,E]),m&&(E=W(E,[E.shape[1],E.shape[2],E.shape[3]])),{value:E,gradFunc:b}})(h,c):ur((I,T,C,E)=>{let $=O.runKernel(ti,x,w);return E([T,I,$,C]),m&&($=W($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:b}})(h,c,g)}var cL=L({fusedDepthwiseConv2d_:pL});function dL({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o=.2}){if(wf(O.state.gradientDepth,s)===!1){let R=Fe(e,t,n,a);return r!=null&&(R=Y(R,r)),vf(R,s,i,o)}let l=_(e,"a","fused matMul"),u=_(t,"b","fused matMul");[l,u]=_t(l,u);let p=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=a?u.shape[u.rank-1]:u.shape[u.rank-2],c=n?l.shape[l.rank-1]:l.shape[l.rank-2],h=a?u.shape[u.rank-2]:u.shape[u.rank-1],m=l.shape.slice(0,-2),f=u.shape.slice(0,-2),g=mt(m),y=mt(f);A(p===d,()=>`Error in fused matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${l.shape} and ${u.shape} and transposeA=${n} and transposeB=${a} must match.`);let b=ut(l.shape.slice(0,-2),u.shape.slice(0,-2)).concat([c,h]),x=n?W(l,[g,p,c]):W(l,[g,c,p]),w=a?W(u,[y,h,d]):W(u,[y,d,h]),I;r!=null&&(I=_(r,"bias","fused matMul"),[I]=_t(I,l),ut(b,I.shape));let T;i!=null&&(T=_(i,"prelu weights","fused matMul"));let C=(R,F)=>{let[S,M,B,U]=F,G=bf(W(R,B.shape),B,s),q,K;if(!n&&!a?(q=Fe(G,M,!1,!0),K=Fe(S,G,!0,!1)):!n&&a?(q=Fe(G,M,!1,!1),K=Fe(G,S,!0,!1)):n&&!a?(q=Fe(M,G,!1,!0),K=Fe(S,G,!1,!1)):(q=Fe(M,G,!0,!0),K=Fe(G,S,!0,!0)),r!=null){let Z=xf(U,G);return[q,K,Z]}else return[q,K]},E={a:x,b:w,bias:I,preluActivationWeights:T},$={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?ur((R,F,S)=>{let M=O.runKernel(Qs,E,$);return S([R,F,M]),{value:W(M,b),gradFunc:C}})(x,w):ur((R,F,S,M)=>{let B=O.runKernel(Qs,E,$);return M([R,F,B,S]),{value:W(B,b),gradFunc:C}})(x,w,I)}var hL=L({fusedMatMul_:dL});function mL(e){return yf(e,.54,.46)}var fL=L({hammingWindow_:mL});function gL(e){return yf(e,.5,.5)}var VT=L({hannWindow_:gL});function yL(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(Be(e,s,t)),s+=n;if(a)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),A(o.rank===2&&o.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${o.shape}.`),A(l.rank===1&&l.shape[0]===u,()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${o.shape}.`),A(a.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${a.length}.`),A(a[0]>=1&&a[1]>=1,()=>`cropSize must be atleast [1,1], but was ${a}`),A(r==="bilinear"||r==="nearest",()=>`method must be bilinear or nearest, but was ${r}`);let p={image:i,boxes:o,boxInd:l},d={method:r,extrapolationValue:s,cropSize:a};return O.runKernel(jl,p,d)}var wL=L({cropAndResize_:vL});function kL(e){let t=_(e,"image","flipLeftRight","float32");A(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let n={image:t};return O.runKernel(Jl,n,{})}var IL=L({flipLeftRight_:kL});function SL(e){let t=_(e,"image","grayscaleToRGB"),n=t.rank-1,a=t.shape[n];A(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),A(a===1,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${a}.`);let r=new Array(t.rank);return r.fill(1,0,n),r[n]=3,Ln(t,r)}var TL=L({grayscaleToRGB_:SL});function NL(e,t,n=0,a=.5){let r=_(e,"image","rotateWithOffset","float32");A(r.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${r.rank}.`);let s={image:r},i={radians:t,fillValue:n,center:a};return O.runKernel(Pu,s,i)}var CL=L({rotateWithOffset_:NL});function Gu(e,t,n,a,r,s){a==null&&(a=.5),r==null&&(r=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=e.shape[0];return n=Math.min(n,i),A(0<=a&&a<=1,()=>`iouThreshold must be in [0, 1], but was '${a}'`),A(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),A(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),A(t.rank===1,()=>"scores must be a 1D tensor"),A(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),A(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s}}function _L(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppression","float32"),i=_(t,"scores","nonMaxSuppression","float32"),o=Gu(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l={maxOutputSize:n,iouThreshold:a,scoreThreshold:r};return O.runKernel(mu,{boxes:s,scores:i},l)}var EL=L({nonMaxSuppression_:_L});function $L(e,t,n){let a=AL(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function AL(e,t,n){return DL(e,t,n||FL)}function FL(e,t){return e>t?1:e>>1);let o=n(t,e[s]);o>0?a=s+1:(r=s,i=!o)}return i?a:-a-1}function GT(e,t,n,a,r){return Yv(e,t,n,a,r,0)}function HT(e,t,n,a,r,s){return Yv(e,t,n,a,r,0,!1,s,!0)}function jT(e,t,n,a,r,s){return Yv(e,t,n,a,r,s,!0)}function Yv(e,t,n,a,r,s,i=!1,o=!1,l=!1){let u=[];for(let g=0;gr&&u.push({score:t[g],boxIndex:g,suppressBeginIndex:0});u.sort(bk);let p=s>0?-.5/s:0,d=[],c=[];for(;d.length0;){let g=u.pop(),{score:y,boxIndex:b,suppressBeginIndex:x}=g;if(y=x;--I){let T=RL(e,b,d[I]);if(T>=a){w=!0;break}if(g.score=g.score*ML(a,p,T),g.score<=r)break}g.suppressBeginIndex=d.length,w||(g.score===y?(d.push(b),c.push(g.score)):g.score>r&&$L(u,g,bk))}let h=d.length,m=n-h;o&&m>0&&(d.push(...new Array(m).fill(0)),c.push(...new Array(m).fill(0)));let f={selectedIndices:d};return i&&(f.selectedScores=c),l&&(f.validOutputs=h),f}function RL(e,t,n){let a=e.subarray(t*4,t*4+4),r=e.subarray(n*4,n*4+4),s=Math.min(a[0],a[2]),i=Math.min(a[1],a[3]),o=Math.max(a[0],a[2]),l=Math.max(a[1],a[3]),u=Math.min(r[0],r[2]),p=Math.min(r[1],r[3]),d=Math.max(r[0],r[2]),c=Math.max(r[1],r[3]),h=(o-s)*(l-i),m=(d-u)*(c-p);if(h<=0||m<=0)return 0;let f=Math.max(s,u),g=Math.max(i,p),y=Math.min(o,d),b=Math.min(l,c),x=Math.max(y-f,0)*Math.max(b-g,0);return x/(h+m-x)}function ML(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function bk(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function PL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppressionAsync"),i=_(t,"scores","nonMaxSuppressionAsync"),o=Gu(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l=await Promise.all([s.data(),i.data()]),u=l[0],p=l[1],{selectedIndices:d}=GT(u,p,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),Ke(d,"int32")}var OL=PL;function LL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=Gu(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let u={boxes:i,scores:o},p={maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s},d=O.runKernel(gu,u,p);return{selectedIndices:d[0],selectedScores:d[1]}}var zL=L({nonMaxSuppressionWithScore_:LL});async function WL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=Gu(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let u=await Promise.all([i.data(),o.data()]),p=u[0],d=u[1],{selectedIndices:c,selectedScores:h}=jT(p,d,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ke(c,"int32"),selectedScores:Ke(h)}}var BL=WL;function VL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=Gu(i,o,n,a,r,null),u=l.maxOutputSize,p=l.iouThreshold,d=l.scoreThreshold,c={boxes:i,scores:o},h={maxOutputSize:u,iouThreshold:p,scoreThreshold:d,padToMaxOutputSize:s},m=O.runKernel(fu,c,h);return{selectedIndices:m[0],validOutputs:m[1]}}var UL=L({nonMaxSuppressionPadded_:VL});async function GL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=Gu(i,o,n,a,r,null),u=l.maxOutputSize,p=l.iouThreshold,d=l.scoreThreshold,[c,h]=await Promise.all([i.data(),o.data()]),{selectedIndices:m,validOutputs:f}=HT(c,h,u,p,d,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ke(m,"int32"),validOutputs:xe(f,"int32")}}var HL=GL;function jL(e,t,n=!1,a=!1){let r=_(e,"images","resizeBilinear");A(r.rank===3||r.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),A(a===!1||n===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=W(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},u=O.runKernel(Ji,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var qT=L({resizeBilinear_:jL});function qL(e,t,n=!1,a=!1){let r=_(e,"images","resizeNearestNeighbor");A(r.rank===3||r.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),A(r.dtype==="float32"||r.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),A(a===!1||n===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=W(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},u=O.runKernel(Zi,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var KT=L({resizeNearestNeighbor_:qL});function KL(e,t="binary",n=!1,a=.5){let r=_(e,"image","threshold"),s=.2989,i=.587,o=.114,l=r.shape[0]*r.shape[1],u=z(Ke([a]),255),p,d,c,h;if(A(r.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${r.rank}.`),A(r.shape[2]===3||r.shape[2]===1,()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${r.shape[2]}.`),A(r.dtype==="int32"||r.dtype==="float32",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${r.dtype}.`),A(t==="otsu"||t==="binary",()=>`Method must be binary or otsu, but was ${t}`),r.shape[2]===3){[p,d,c]=zn(r,[1,1,1],-1);let f=z(p,s),g=z(d,i),y=z(c,o);h=Y(Y(f,g),y)}else h=e;if(t==="otsu"){let f=lv(le(of(h),"int32"),In([]),256);u=XL(f,l)}let m=n?Ss(h,u):Cn(h,u);return le(z(m,255),"int32")}function XL(e,t){let n=Ke([-1]),a=Ke([0]),r=Ke([0]),s,i,o,l,u,p;for(let d=0;d`Error in transform: image must be rank 4,but got rank ${i.rank}.`),A(o.rank===2&&(o.shape[0]===i.shape[0]||o.shape[0]===1)&&o.shape[1]===8,()=>"Error in transform: Input transform should be batch x 8 or 1 x 8"),A(s==null||s.length===2,()=>`Error in transform: outputShape must be [height, width] or null, but got ${s}.`);let l={image:i,transforms:o},u={interpolation:n,fillMode:a,fillValue:r,outputShape:s};return O.runKernel(Du,l,u)}var JL=L({transform_:ZL});function QL(e,t,n){A(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),A(n%1===0,()=>`bandPart(): numUpper must be an integer, got ${n}.`);let a=_(e,"a","bandPart");A(a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${a.rank}.`);let r=a.shape,[s,i]=a.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);let o=W(xl(0,s,1,"int32"),[-1,1]),l=xl(0,i,1,"int32"),u=pe(o,l),p=Aa(Ss(u,xe(+t,"int32")),Fr(u,xe(-n,"int32"))),d=It([s,i],a.dtype);return W(Ft(ct(W(a,[-1,s,i])).map(c=>mn(p,c,d))),r)}var ez=L({bandPart_:QL});function tz(e){let t;if(Array.isArray(e)){t=!1,A(e!=null&&e.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let r=e[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[s].shape[0]} vs. ${r})`)}else t=!0,e=zn(e,e.shape[0],0).map(r=>Ns(r,[0]));A(e.length<=e[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`);let n=[],a=e;for(let r=0;r{let s=a[r];if(r>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`),e.rank===2)return xk(e,t);{let n=e.shape.slice(0,e.shape.length-2).reduce((l,u)=>l*u),a=ct(W(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];a.forEach(l=>{let[u,p]=xk(l,t);r.push(u),s.push(p)});let i=W(Ft(r,0),e.shape),o=W(Ft(s,0),e.shape);return[i,o]}}function xk(e,t=!1){return O.tidy(()=>{A(e.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`);let n=e.shape[0],a=e.shape[1],r=Zm(n),s=ir(e),i=$a([[1]],[1,1]),o=ir(i),l=n>=a?a:n;for(let u=0;u{let h=Be(s,[u,u],[n-u,1]),m=zu(h),f=Be(s,[u,u],[1,1]),g=mn(Cn(f,0),$a([[-1]]),$a([[1]])),y=pe(f,z(g,m)),b=he(h,y);b.shape[0]===1?o=ir(i):o=Ze([i,Be(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let x=vt(he(Fe(g,y),m)),w=Be(s,[u,0],[n-u,a]),I=z(x,o),T=Ee(o);if(u===0)s=pe(w,Fe(I,Fe(T,w)));else{let $=pe(w,Fe(I,Fe(T,w)));s=Ze([Be(s,[0,0],[u,a]),$],0)}let C=Ee(I),E=Be(r,[0,u],[n,r.shape[1]-u]);if(u===0)r=pe(E,Fe(Fe(E,o),C));else{let $=pe(E,Fe(Fe(E,o),C));r=Ze([Be(r,[0,0],[n,u]),$],1)}return[o,s,r]}),_e([p,d,c])}return!t&&n>a&&(r=Be(r,[0,0],[n,a]),s=Be(s,[0,0],[a,a])),[r,s]})}var rz=L({qr_:az}),vn;(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"})(vn||(vn={}));function sz(e,t,n=vn.SUM_BY_NONZERO_WEIGHTS){let a=_(e,"losses","computeWeightedLoss"),r=null;t!=null&&(r=_(t,"weights","computeWeightedLoss"));let s=r==null?a:z(a,r);if(n===vn.NONE)return s;if(n===vn.SUM)return fe(s);if(n===vn.MEAN){if(r==null)return Nt(s);{let i=a.size/r.size,o=he(fe(s),fe(r));return i>1?he(o,xe(i)):o}}if(n===vn.SUM_BY_NONZERO_WEIGHTS){if(r==null)return he(fe(s),xe(a.size));{let i=z(r,Jn(a.shape)),o=le(fe(oi(i,xe(0))),"float32");return he(fe(s),o)}}throw Error(`Unknown reduction: ${n}`)}var Dr=L({computeWeightedLoss_:sz});function iz(e,t,n,a=vn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","absoluteDifference"),s=_(t,"predictions","absoluteDifference"),i=null;n!=null&&(i=_(n,"weights","absoluteDifference")),Tn(r.shape,s.shape,"Error in absoluteDifference: ");let o=Lt(pe(r,s));return Dr(o,i,a)}var oz=L({absoluteDifference_:iz});function lz(e,t,n,a,r=vn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","cosineDistance"),i=_(t,"predictions","cosineDistance"),o=null;a!=null&&(o=_(a,"weights","cosineDistance")),Tn(s.shape,i.shape,"Error in cosineDistance: ");let l=xe(1),u=pe(l,fe(z(s,i),n,!0));return Dr(u,o,r)}var uz=L({cosineDistance_:lz});function pz(e,t,n,a=vn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","hingeLoss"),s=_(t,"predictions","hingeLoss"),i=null;n!=null&&(i=_(n,"weights","hingeLoss")),Tn(r.shape,s.shape,"Error in hingeLoss: ");let o=xe(1);r=pe(z(xe(2),r),o);let l=Xe(pe(o,z(r,s)));return Dr(l,i,a)}var cz=L({hingeLoss_:pz});function dz(e,t,n,a=1,r=vn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","huberLoss"),i=_(t,"predictions","huberLoss"),o=null;n!=null&&(o=_(n,"weights","huberLoss")),Tn(s.shape,i.shape,"Error in huberLoss: ");let l=xe(a),u=Lt(pe(i,s)),p=Vu(u,l),d=pe(u,p),c=Y(z(xe(.5),lt(p)),z(l,d));return Dr(c,o,r)}var hz=L({huberLoss_:dz});function mz(e,t,n,a=1e-7,r=vn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","logLoss"),i=_(t,"predictions","logLoss"),o=null;n!=null&&(o=_(n,"weights","logLoss")),Tn(s.shape,i.shape,"Error in logLoss: ");let l=xe(1),u=xe(a),p=vt(z(s,ta(Y(i,u)))),d=z(pe(l,s),ta(Y(pe(l,i),u))),c=pe(p,d);return Dr(c,o,r)}var fz=L({logLoss_:mz});function gz(e,t,n,a=vn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","meanSquaredError"),s=_(t,"predictions","meanSquaredError"),i=null;n!=null&&(i=_(n,"weights","meanSquaredError")),Tn(r.shape,s.shape,"Error in meanSquaredError: ");let o=mf(r,s);return Dr(o,i,a)}var yz=L({meanSquaredError_:gz});function bz(e,t){let n=_(e,"labels","sigmoidCrossEntropyWithLogits"),a=_(t,"logits","sigmoidCrossEntropyWithLogits");Tn(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=Xe(a),s=z(a,n),i=zc(fn(vt(Lt(a))));return Y(pe(r,s),i)}function xz(e,t,n,a=0,r=vn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"multiClassLabels","sigmoidCrossEntropy"),i=_(t,"logits","sigmoidCrossEntropy"),o=null;if(n!=null&&(o=_(n,"weights","sigmoidCrossEntropy")),Tn(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let u=xe(a),p=xe(1),d=xe(.5);s=Y(z(s,pe(p,u)),z(d,u))}let l=bz(s,i);return Dr(l,o,r)}var vz=L({sigmoidCrossEntropy_:xz});function wz(e,t,n=-1){if(n===-1&&(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 ur((a,r,s)=>{let i=tf(r,[n],!0),o=pe(le(r,"float32"),i);s([a,o]);let l=vt(z(o,a));return{value:fe(l,[n]),gradFunc:(u,p)=>{let[d,c]=p,h=ii(u.shape,[n]);return[z(W(u,h),pe(le(d,"float32"),fn(c))),z(W(u,h),pe(fn(c),le(d,"float32")))]}}})(e,t)}function kz(e,t,n,a=0,r=vn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"onehotLabels","softmaxCrossEntropy"),i=_(t,"logits","softmaxCrossEntropy"),o=null;if(n!=null&&(o=_(n,"weights","softmaxCrossEntropy")),Tn(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let u=xe(a),p=xe(1),d=xe(s.shape[1]);s=Y(z(s,pe(p,u)),he(u,d))}let l=wz(s,i);return Dr(l,o,r)}var Iz=L({softmaxCrossEntropy_:kz});function Sz(e,t,n,a){let r=_(e,"indices","sparseFillEmptyRows","int32"),s=_(t,"values","sparseFillEmptyRows"),i=_(n,"denseShape","sparseFillEmptyRows","int32"),o=_(a,"defaultValue","sparseFillEmptyRows",s.dtype);if(r.rank!==2)throw new Error(`Indices should be Tensor2D but received shape ${r.shape}`);if(s.rank!==1)throw new Error(`Values should be Tensor1D but received shape ${s.shape}`);if(i.rank!==1)throw new Error(`Dense shape should be Tensor1D but received shape ${i.shape}`);if(o.rank!==0)throw new Error(`Default value should be a scalar but received shape ${o.shape}`);let l={indices:r,values:s,denseShape:i,defaultValue:o},u=O.runKernel(vc,l);return{outputIndices:u[0],outputValues:u[1],emptyRowIndicator:u[2],reverseIndexMap:u[3]}}var Tz=L({sparseFillEmptyRows_:Sz});function Nz(e,t,n){let a=_(e,"inputIndices","sparseReshape","int32"),r=_(t,"inputShape","sparseReshape","int32"),s=_(n,"newShape","sparseReshape","int32");if(a.rank!==2)throw new Error(`Input indices should be Tensor2D but received shape - ${a.shape}`);if(r.rank!==1)throw new Error(`Input shape should be Tensor1D but received shape ${r.shape}`);if(s.rank!==1)throw new Error(`New shape should be Tensor1D but received shape ${s.shape}`);let i={inputIndices:a,inputShape:r,newShape:s},o=O.runKernel(Au,i);return{outputIndices:o[0],outputShape:o[1]}}var Cz=L({sparseReshape_:Nz});function _z(e,t,n){let a=_(e,"data","sparseSegmentMean"),r=_(t,"indices","sparseSegmentMean","int32"),s=_(n,"segmentIds","sparseSegmentMean","int32");if(a.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.rank!==1)throw new Error(`Indices should be Tensor1D but received shape + ${a.shape}`);if(r.rank!==1)throw new Error(`Input shape should be Tensor1D but received shape ${r.shape}`);if(s.rank!==1)throw new Error(`New shape should be Tensor1D but received shape ${s.shape}`);let i={inputIndices:a,inputShape:r,newShape:s},o=O.runKernel($u,i);return{outputIndices:o[0],outputShape:o[1]}}var Cz=L({sparseReshape_:Nz});function _z(e,t,n){let a=_(e,"data","sparseSegmentMean"),r=_(t,"indices","sparseSegmentMean","int32"),s=_(n,"segmentIds","sparseSegmentMean","int32");if(a.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.rank!==1)throw new Error(`Indices should be Tensor1D but received shape ${r.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape - ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return O.runKernel(wc,i)}var Ez=L({sparseSegmentMean_:_z});function Az(e,t,n){let a=_(e,"data","sparseSegmentSum"),r=_(t,"indices","sparseSegmentSum","int32"),s=_(n,"segmentIds","sparseSegmentSum","int32");if(a.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.rank!==1)throw new Error(`Indices should be Tensor1D but received shape + ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return O.runKernel(wc,i)}var Ez=L({sparseSegmentMean_:_z});function $z(e,t,n){let a=_(e,"data","sparseSegmentSum"),r=_(t,"indices","sparseSegmentSum","int32"),s=_(n,"segmentIds","sparseSegmentSum","int32");if(a.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.rank!==1)throw new Error(`Indices should be Tensor1D but received shape ${r.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape - ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return O.runKernel(kc,i)}var $z=L({sparseSegmentSum_:Az});function Fz(e,t,n,a,r,s,i,o){let l=_(e,"data","stringNGrams","string");if(l.dtype!=="string")throw new Error("Data must be of datatype string");if(l.shape.length!==1)throw new Error(`Data must be a vector, saw: ${l.shape}`);let u=_(t,"dataSplits","stringNGrams");if(u.dtype!=="int32")throw new Error("Data splits must be of datatype int32");let p={separator:n,nGramWidths:a,leftPad:r,rightPad:s,padWidth:i,preserveShortSequences:o},d={data:l,dataSplits:u},c=O.runKernel(Sc,d,p);return{nGrams:c[0],nGramsSplits:c[1]}}var Dz=L({stringNGrams_:Fz});function Rz(e,t,n=!0){let a=_(e,"input","stringSplit","string"),r=_(t,"delimiter","stringSplit","string");if(a.rank!==1)throw new Error(`Input should be Tensor1D but received shape ${a.shape}`);if(r.rank!==0)throw new Error(`Delimiter should be a scalar but received shape ${r.shape}`);let s={skipEmpty:n},i={input:a,delimiter:r},o=O.runKernel(Tc,i,s);return{indices:o[0],values:o[1],shape:o[2]}}var Mz=L({stringSplit_:Rz});function Pz(e,t){let n=_(e,"input","stringToHashBucketFast","string"),a={numBuckets:t};if(t<=0)throw new Error("Number of buckets must be at least 1");let r={input:n};return O.runKernel(Nc,r,a)}var Oz=L({stringToHashBucketFast_:Pz}),XT={fft:Hc,ifft:wl,rfft:jc,irfft:hf},YT={hammingWindow:fL,hannWindow:VT,frame:UT,stft:xL},za={flipLeftRight:IL,grayscaleToRGB:TL,resizeNearestNeighbor:KT,resizeBilinear:qT,rotateWithOffset:CL,cropAndResize:wL,nonMaxSuppression:EL,nonMaxSuppressionAsync:OL,nonMaxSuppressionWithScore:zL,nonMaxSuppressionWithScoreAsync:BL,nonMaxSuppressionPadded:UL,nonMaxSuppressionPaddedAsync:HL,threshold:YL,transform:JL},Zv={bandPart:ez,gramSchmidt:nz,qr:rz},ZT={absoluteDifference:oz,computeWeightedLoss:Dr,cosineDistance:uz,hingeLoss:cz,huberLoss:hz,logLoss:fz,meanSquaredError:yz,sigmoidCrossEntropy:vz,softmaxCrossEntropy:Iz},JT={sparseFillEmptyRows:Tz,sparseReshape:Cz,sparseSegmentMean:Ez,sparseSegmentSum:$z},QT={stringNGrams:Dz,stringSplit:Mz,stringToHashBucketFast:Oz},Rr=class extends GS{minimize(e,t=!1,n){let{value:a,grads:r}=this.computeGradients(e,n);if(n!=null){let s=n.map(i=>({name:i.name,tensor:r[i.name]}));this.applyGradients(s)}else this.applyGradients(r);return _e(r),t?a:(a.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return lT(e,t)}dispose(){this.iterations_!=null&&_e(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:be(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(Rr,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var kf=class extends Rr{constructor(e,t,n=null){super(),this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=O.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t],r=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:P(()=>qe(a).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:P(()=>qe(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedGrads[n].variable,o=this.accumulatedUpdates[n].variable;P(()=>{let l=Y(z(i,this.rho),z(lt(s),1-this.rho)),u=z(he(un(Y(o,this.epsilon)),un(Y(i,this.epsilon))),s),p=Y(z(o,this.rho),z(lt(u),1-this.rho));i.assign(l),o.assign(p);let d=Y(z(u,-this.learningRate),a);a.assign(d)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(_e(this.accumulatedGrads.map(e=>e.variable)),_e(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){let e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=e.length/2,n=!1;this.accumulatedGrads=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedUpdates=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}};kf.className="Adadelta";ws(kf);var If=class extends Rr{constructor(e,t=.1){super(),this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t];this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:P(()=>gn(a.shape,this.initialAccumulatorValue).variable(!1))});let r=Array.isArray(e)?e[n].tensor:e[t];if(r==null)return;let s=this.accumulatedGrads[n].variable;P(()=>{let i=Y(s,lt(r));s.assign(i);let o=Y(z(he(r,un(Y(i,O.backend.epsilon()))),-this.learningRate),a);a.assign(o)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&_e(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);let t=!1;this.accumulatedGrads=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}};If.className="Adagrad";ws(If);var Sf=class extends Rr{constructor(e,t,n,a=null){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],P(()=>{this.accBeta1=be(t).variable(),this.accBeta2=be(n).variable()}),a==null&&(this.epsilon=O.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);P(()=>{let n=pe(1,this.accBeta1),a=pe(1,this.accBeta2);t.forEach((r,s)=>{let i=O.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:P(()=>qe(i).variable(o))}),this.accumulatedSecondMoment[s]==null&&(this.accumulatedSecondMoment[s]={originalName:`${r}/v`,variable:P(()=>qe(i).variable(o))});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,p=this.accumulatedSecondMoment[s].variable,d=Y(z(u,this.beta1),z(l,1-this.beta1)),c=Y(z(p,this.beta2),z(lt(l),1-this.beta2)),h=he(d,n),m=he(c,a);u.assign(d),p.assign(c);let f=Y(z(he(h,Y(un(m),this.epsilon)),-this.learningRate),i);i.assign(f)}),this.accBeta1.assign(z(this.accBeta1,this.beta1)),this.accBeta2.assign(z(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&_e(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&_e(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),P(()=>{this.accBeta1.assign($r(this.beta1,this.iterations_+1)),this.accBeta2.assign($r(this.beta2,this.iterations_+1))});let t=e.length/2,n=!1;this.accumulatedFirstMoment=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}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)}};Sf.className="Adam";ws(Sf);var Tf=class extends Rr{constructor(e,t,n,a=null,r=0){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.decay=r,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],P(()=>{this.iteration=be(0).variable(),this.accBeta1=be(t).variable()}),a==null&&(this.epsilon=O.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);P(()=>{let n=pe(1,this.accBeta1),a=he(-this.learningRate,Y(z(this.iteration,this.decay),1));t.forEach((r,s)=>{let i=O.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:qe(i).variable(o)}),this.accumulatedWeightedInfNorm[s]==null&&(this.accumulatedWeightedInfNorm[s]={originalName:`${r}/v`,variable:qe(i).variable(o)});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,p=this.accumulatedWeightedInfNorm[s].variable,d=Y(z(u,this.beta1),z(l,1-this.beta1)),c=z(p,this.beta2),h=Lt(l),m=dr(c,h);u.assign(d),p.assign(m);let f=Y(z(he(a,n),he(d,Y(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(Y(this.iteration,1)),this.accBeta1.assign(z(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&_e(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&_e(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)}};Tf.className="Adamax";ws(Tf);var qc=class extends Rr{constructor(e){super(),this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=Array.isArray(e)?e[n].tensor:e[t];if(a==null)return;let r=O.registeredVariables[t];P(()=>{let s=Y(z(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=Jt(be(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}};qc.className="SGD";ws(qc);var Nf=class extends qc{constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=be(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t];this.accumulations[n]==null&&(this.accumulations[n]={originalName:`${t}/momentum`,variable:P(()=>qe(a).variable(!1))});let r=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];s!=null&&P(()=>{let i,o=Y(z(this.m,r),s);this.useNesterov?i=Y(z(this.c,Y(s,z(o,this.m))),a):i=Y(z(this.c,o),a),r.assign(o),a.assign(i)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&_e(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);let t=!1;this.accumulations=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}};Nf.className="Momentum";ws(Nf);var Cf=class extends Rr{constructor(e,t=.9,n=0,a=null,r=!1){if(super(),this.learningRate=e,this.decay=t,this.momentum=n,this.epsilon=a,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=r,a==null&&(this.epsilon=O.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t],r=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:P(()=>qe(a).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:P(()=>qe(a).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:P(()=>qe(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedMeanSquares[n].variable,o=this.accumulatedMoments[n].variable;P(()=>{let l=Y(z(i,this.decay),z(lt(s),1-this.decay));if(this.centered){let u=this.accumulatedMeanGrads[n].variable,p=Y(z(u,this.decay),z(s,1-this.decay)),d=he(z(s,this.learningRate),un(pe(l,Y(lt(p),this.epsilon)))),c=Y(z(o,this.momentum),d);i.assign(l),u.assign(p),o.assign(c);let h=pe(a,c);a.assign(h)}else{let u=Y(z(i,this.decay),z(lt(s),1-this.decay)),p=Y(z(o,this.momentum),he(z(s,this.learningRate),un(Y(u,this.epsilon))));i.assign(u),o.assign(p);let d=pe(a,p);a.assign(d)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&_e(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&_e(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&_e(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=this.centered?e.length/3:e.length/2,n=!1;this.accumulatedMeanSquares=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedMoments=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(a=>({originalName:a.name,variable:a.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)}};Cf.className="RMSProp";ws(Cf);var Yr=class{static sgd(e){return new qc(e)}static momentum(e,t,n=!1){return new Nf(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new Cf(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new Sf(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new kf(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new Tf(e,t,n,a,r)}static adagrad(e,t=.1){return new If(e,t)}},Ws={sgd:Yr.sgd,momentum:Yr.momentum,adadelta:Yr.adadelta,adagrad:Yr.adagrad,rmsprop:Yr.rmsprop,adamax:Yr.adamax,adam:Yr.adam},Lz=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function Jv(){return new Promise(e=>Lz(()=>e()))}var N={};Ae(N,{ERF_A1:()=>Qz,ERF_A2:()=>eW,ERF_A3:()=>tW,ERF_A4:()=>nW,ERF_A5:()=>aW,ERF_P:()=>Jz,PARALLELIZE_THRESHOLD:()=>Qv,RowPartitionType:()=>nr,SELU_SCALE:()=>tN,SELU_SCALEALPHA:()=>eN,applyActivation:()=>vf,assertAndGetBroadcastShape:()=>ut,assertAxesAreInnerMostDims:()=>UP,assertParamsConsistent:()=>zz,assignToTypedArray:()=>uW,axesAreInnerMostDims:()=>kv,calculateShapes:()=>RS,checkEinsumDimSizes:()=>fW,checkPadOnDimRoundingMode:()=>Nn,combineLocations:()=>aT,combineRaggedTensorToTensorShapes:()=>Bz,complexWithEvenIndex:()=>iW,complexWithOddIndex:()=>oW,computeConv2DInfo:()=>Mc,computeConv3DInfo:()=>YS,computeDefaultPad:()=>av,computeDilation2DInfo:()=>GM,computeOptimalWindowSize:()=>Hz,computeOutAndReduceShapes:()=>rT,computeOutShape:()=>Wz,computePool2DInfo:()=>XS,computePool3DInfo:()=>HM,convertConv2DDataFormat:()=>ZS,decodeEinsumEquation:()=>hW,eitherStridesOrDilationsAreOne:()=>cr,expandShapeToKeepDim:()=>ii,exponent:()=>cW,exponents:()=>pW,fromStringArrayToUint8:()=>PW,fromUint8ToStringArray:()=>MW,getAxesPermutation:()=>sT,getBroadcastDims:()=>$S,getComplexWithIndex:()=>lW,getEinsumComputePath:()=>gW,getEinsumPermutation:()=>mW,getFusedBiasGradient:()=>xf,getFusedDyActivation:()=>bf,getImageCenter:()=>jz,getInnerMostAxes:()=>GP,getPermuted:()=>Kz,getRaggedRank:()=>Uz,getReductionAxes:()=>Wt,getReshaped:()=>qz,getReshapedPermuted:()=>Xz,getRowPartitionTypesHelper:()=>Vz,getSliceBeginCoords:()=>Yz,getSliceSize:()=>Zz,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>vW,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>wW,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>kW,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>TW,getSparseReshapeInputOutputMismatchErrorMessage:()=>CW,getSparseReshapeInputOutputMultipleErrorMessage:()=>NW,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>IW,getSparseReshapeNegativeOutputDimErrorMessage:()=>SW,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>$W,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>_W,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>EW,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>AW,getUndoAxesPermutation:()=>Iv,isIdentityPermutation:()=>yW,log:()=>oD,mergeRealAndImagArrays:()=>rW,prepareAndValidate:()=>DS,prepareSplitSize:()=>xW,segment_util:()=>nN,shouldFuse:()=>wf,slice_util:()=>jt,splitRealAndImagArrays:()=>sW,tupleValuesAreOne:()=>os,upcastType:()=>fa,validateDefaultValueShape:()=>Gz,validateInput:()=>jx,validateUpdateShape:()=>Hx,warn:()=>Jr});function zz(e,t){let n=e[0].length;e.forEach((r,s)=>{$(r.length===n,()=>`Error in concat${n}D: rank of tensors[${s}] must be the same as the rank of the rest (${n})`)}),$(t>=0&&t`Error in concat${n}D: axis must be between 0 and ${n-1}.`);let a=e[0];e.forEach((r,s)=>{for(let i=0;i`Error in concat${n}D: Shape of tensors[${s}] (${r}) does not match the shape of the rest (${a}) along the non-concatenated axis ${s}.`)})}function Wz(e,t){let n=e[0].slice();for(let a=1;a=0)if(o>=0){if(o!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${r+e}] = ${s} but shape[${r+e}] = ${o}`)}else a[i]=s}return a}function Vz(e){let t={FIRST_DIM_SIZE:nr.FIRST_DIM_SIZE,VALUE_ROWIDS:nr.VALUE_ROWIDS,ROW_LENGTHS:nr.ROW_LENGTHS,ROW_SPLITS:nr.ROW_SPLITS,ROW_LIMITS:nr.ROW_LIMITS,ROW_STARTS:nr.ROW_STARTS},n=[];for(let a of e)if(a in t)n.push(t[a]);else break;return n}function Uz(e){return e.length===0?0:e[0]===nr.FIRST_DIM_SIZE?e.length-1:e.length}function Gz(e,t){if(e==null||t==null)return;let n=e.length,a=t.length;if(n>=a)throw new Error(`defaultValue.shape=${e} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${n} must be less than ragged tensor input flatValues.rank = ${a})`);for(let r=0;r=0&&i>=0&&s!==1&&s!==i)throw new Error(`defaultValue.shape=${e}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${r-e.length}] = ${s} but ragged tensor input.flatValues.shape[${r-e.length}] = ${i}`)}}var Qv=30;function Hz(e){return e<=Qv?e:Eh(e,Math.floor(Math.sqrt(e)))}function jz(e,t,n){let a=n*(typeof e=="number"?e:e[0]),r=t*(typeof e=="number"?e:e[1]);return[a,r]}function qz(e,t,n,a=!0){let r=[];if(a)r=r.concat(t.slice(0)),r.push(e[0]/n),r=r.concat(e.slice(1));else{r=r.concat(e[0]);let s=t.length;for(let i=0;i=t*2+1||i%2===1?s.push(i):r.push(i);a.push(...r),a.push(0),a.push(...s)}return a}function Xz(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s/g,vk=",",wk="...";function hW(e,t){e=e.replace(/\s/g,"");let n=(e.length-e.replace(dW,"").length)/yb.length;if(n<1)throw new Error("Equations without an arrow are not supported.");if(n>1)throw new Error(`Equation must contain exactly one arrow ("${yb}").`);let[a,r]=e.split(yb);$(a.indexOf(wk)===-1,()=>`The ellipsis notation ("${wk}") is not supported yet.`);let s=a.split(vk),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error("Support for more than 2 input tensors is not implemented yet.");let o=[];for(let c=0;cm.indexOf(h)!==-1))throw new Error(`Output subscripts contain the label ${h} not present in the input subscripts.`);o.indexOf(h)===-1&&o.push(h)}for(let c=0;cr!==-1),{permutationIndices:n,expandDims:a}}function fW(e,t,n){let a=new Array(e);for(let r=0;r`Expected dimension ${a[t[r][i]]} at axis ${i} of input shaped ${JSON.stringify(s)}, but got dimension ${s[i]}`)}}function gW(e,t){let n=e,a=[],r=0;e.length===0&&n.push(-1),r=e.length+1;for(let i=0;it===n)}function bW(e,t){let n=[];for(let a=0;a"Number of splits must evenly divide the axis."),a=new Array(t).fill(e.shape[n]/t);else{let r=t.reduce((i,o)=>(o===-1&&(i+=1),i),0);$(r<=1,()=>"There should be only one negative value in split array.");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((o,l)=>l>0?o+l:o);t[s]=e.shape[n]-i}$(e.shape[n]===t.reduce((i,o)=>i+o),()=>"The sum of sizes must match the size of the axis dimension."),a=t}return a}function vW(e){return`Received SparseTensor with denseShape[0] = 0 but + ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return O.runKernel(kc,i)}var Az=L({sparseSegmentSum_:$z});function Fz(e,t,n,a,r,s,i,o){let l=_(e,"data","stringNGrams","string");if(l.dtype!=="string")throw new Error("Data must be of datatype string");if(l.shape.length!==1)throw new Error(`Data must be a vector, saw: ${l.shape}`);let u=_(t,"dataSplits","stringNGrams");if(u.dtype!=="int32")throw new Error("Data splits must be of datatype int32");let p={separator:n,nGramWidths:a,leftPad:r,rightPad:s,padWidth:i,preserveShortSequences:o},d={data:l,dataSplits:u},c=O.runKernel(Sc,d,p);return{nGrams:c[0],nGramsSplits:c[1]}}var Dz=L({stringNGrams_:Fz});function Rz(e,t,n=!0){let a=_(e,"input","stringSplit","string"),r=_(t,"delimiter","stringSplit","string");if(a.rank!==1)throw new Error(`Input should be Tensor1D but received shape ${a.shape}`);if(r.rank!==0)throw new Error(`Delimiter should be a scalar but received shape ${r.shape}`);let s={skipEmpty:n},i={input:a,delimiter:r},o=O.runKernel(Tc,i,s);return{indices:o[0],values:o[1],shape:o[2]}}var Mz=L({stringSplit_:Rz});function Pz(e,t){let n=_(e,"input","stringToHashBucketFast","string"),a={numBuckets:t};if(t<=0)throw new Error("Number of buckets must be at least 1");let r={input:n};return O.runKernel(Nc,r,a)}var Oz=L({stringToHashBucketFast_:Pz}),XT={fft:Hc,ifft:wl,rfft:jc,irfft:hf},YT={hammingWindow:fL,hannWindow:VT,frame:UT,stft:xL},za={flipLeftRight:IL,grayscaleToRGB:TL,resizeNearestNeighbor:KT,resizeBilinear:qT,rotateWithOffset:CL,cropAndResize:wL,nonMaxSuppression:EL,nonMaxSuppressionAsync:OL,nonMaxSuppressionWithScore:zL,nonMaxSuppressionWithScoreAsync:BL,nonMaxSuppressionPadded:UL,nonMaxSuppressionPaddedAsync:HL,threshold:YL,transform:JL},Zv={bandPart:ez,gramSchmidt:nz,qr:rz},ZT={absoluteDifference:oz,computeWeightedLoss:Dr,cosineDistance:uz,hingeLoss:cz,huberLoss:hz,logLoss:fz,meanSquaredError:yz,sigmoidCrossEntropy:vz,softmaxCrossEntropy:Iz},JT={sparseFillEmptyRows:Tz,sparseReshape:Cz,sparseSegmentMean:Ez,sparseSegmentSum:Az},QT={stringNGrams:Dz,stringSplit:Mz,stringToHashBucketFast:Oz},Rr=class extends GS{minimize(e,t=!1,n){let{value:a,grads:r}=this.computeGradients(e,n);if(n!=null){let s=n.map(i=>({name:i.name,tensor:r[i.name]}));this.applyGradients(s)}else this.applyGradients(r);return _e(r),t?a:(a.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return lT(e,t)}dispose(){this.iterations_!=null&&_e(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:xe(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(Rr,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var kf=class extends Rr{constructor(e,t,n=null){super(),this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=O.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t],r=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:P(()=>qe(a).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:P(()=>qe(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedGrads[n].variable,o=this.accumulatedUpdates[n].variable;P(()=>{let l=Y(z(i,this.rho),z(lt(s),1-this.rho)),u=z(he(un(Y(o,this.epsilon)),un(Y(i,this.epsilon))),s),p=Y(z(o,this.rho),z(lt(u),1-this.rho));i.assign(l),o.assign(p);let d=Y(z(u,-this.learningRate),a);a.assign(d)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(_e(this.accumulatedGrads.map(e=>e.variable)),_e(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){let e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=e.length/2,n=!1;this.accumulatedGrads=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedUpdates=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}};kf.className="Adadelta";ws(kf);var If=class extends Rr{constructor(e,t=.1){super(),this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t];this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:P(()=>gn(a.shape,this.initialAccumulatorValue).variable(!1))});let r=Array.isArray(e)?e[n].tensor:e[t];if(r==null)return;let s=this.accumulatedGrads[n].variable;P(()=>{let i=Y(s,lt(r));s.assign(i);let o=Y(z(he(r,un(Y(i,O.backend.epsilon()))),-this.learningRate),a);a.assign(o)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&_e(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);let t=!1;this.accumulatedGrads=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}};If.className="Adagrad";ws(If);var Sf=class extends Rr{constructor(e,t,n,a=null){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],P(()=>{this.accBeta1=xe(t).variable(),this.accBeta2=xe(n).variable()}),a==null&&(this.epsilon=O.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);P(()=>{let n=pe(1,this.accBeta1),a=pe(1,this.accBeta2);t.forEach((r,s)=>{let i=O.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:P(()=>qe(i).variable(o))}),this.accumulatedSecondMoment[s]==null&&(this.accumulatedSecondMoment[s]={originalName:`${r}/v`,variable:P(()=>qe(i).variable(o))});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,p=this.accumulatedSecondMoment[s].variable,d=Y(z(u,this.beta1),z(l,1-this.beta1)),c=Y(z(p,this.beta2),z(lt(l),1-this.beta2)),h=he(d,n),m=he(c,a);u.assign(d),p.assign(c);let f=Y(z(he(h,Y(un(m),this.epsilon)),-this.learningRate),i);i.assign(f)}),this.accBeta1.assign(z(this.accBeta1,this.beta1)),this.accBeta2.assign(z(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&_e(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&_e(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),P(()=>{this.accBeta1.assign(Ar(this.beta1,this.iterations_+1)),this.accBeta2.assign(Ar(this.beta2,this.iterations_+1))});let t=e.length/2,n=!1;this.accumulatedFirstMoment=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}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)}};Sf.className="Adam";ws(Sf);var Tf=class extends Rr{constructor(e,t,n,a=null,r=0){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.decay=r,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],P(()=>{this.iteration=xe(0).variable(),this.accBeta1=xe(t).variable()}),a==null&&(this.epsilon=O.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);P(()=>{let n=pe(1,this.accBeta1),a=he(-this.learningRate,Y(z(this.iteration,this.decay),1));t.forEach((r,s)=>{let i=O.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:qe(i).variable(o)}),this.accumulatedWeightedInfNorm[s]==null&&(this.accumulatedWeightedInfNorm[s]={originalName:`${r}/v`,variable:qe(i).variable(o)});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,p=this.accumulatedWeightedInfNorm[s].variable,d=Y(z(u,this.beta1),z(l,1-this.beta1)),c=z(p,this.beta2),h=Lt(l),m=dr(c,h);u.assign(d),p.assign(m);let f=Y(z(he(a,n),he(d,Y(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(Y(this.iteration,1)),this.accBeta1.assign(z(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&_e(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&_e(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)}};Tf.className="Adamax";ws(Tf);var qc=class extends Rr{constructor(e){super(),this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=Array.isArray(e)?e[n].tensor:e[t];if(a==null)return;let r=O.registeredVariables[t];P(()=>{let s=Y(z(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=Jt(xe(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}};qc.className="SGD";ws(qc);var Nf=class extends qc{constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=xe(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t];this.accumulations[n]==null&&(this.accumulations[n]={originalName:`${t}/momentum`,variable:P(()=>qe(a).variable(!1))});let r=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];s!=null&&P(()=>{let i,o=Y(z(this.m,r),s);this.useNesterov?i=Y(z(this.c,Y(s,z(o,this.m))),a):i=Y(z(this.c,o),a),r.assign(o),a.assign(i)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&_e(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);let t=!1;this.accumulations=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}};Nf.className="Momentum";ws(Nf);var Cf=class extends Rr{constructor(e,t=.9,n=0,a=null,r=!1){if(super(),this.learningRate=e,this.decay=t,this.momentum=n,this.epsilon=a,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=r,a==null&&(this.epsilon=O.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t],r=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:P(()=>qe(a).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:P(()=>qe(a).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:P(()=>qe(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedMeanSquares[n].variable,o=this.accumulatedMoments[n].variable;P(()=>{let l=Y(z(i,this.decay),z(lt(s),1-this.decay));if(this.centered){let u=this.accumulatedMeanGrads[n].variable,p=Y(z(u,this.decay),z(s,1-this.decay)),d=he(z(s,this.learningRate),un(pe(l,Y(lt(p),this.epsilon)))),c=Y(z(o,this.momentum),d);i.assign(l),u.assign(p),o.assign(c);let h=pe(a,c);a.assign(h)}else{let u=Y(z(i,this.decay),z(lt(s),1-this.decay)),p=Y(z(o,this.momentum),he(z(s,this.learningRate),un(Y(u,this.epsilon))));i.assign(u),o.assign(p);let d=pe(a,p);a.assign(d)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&_e(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&_e(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&_e(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=this.centered?e.length/3:e.length/2,n=!1;this.accumulatedMeanSquares=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedMoments=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(a=>({originalName:a.name,variable:a.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)}};Cf.className="RMSProp";ws(Cf);var Yr=class{static sgd(e){return new qc(e)}static momentum(e,t,n=!1){return new Nf(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new Cf(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new Sf(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new kf(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new Tf(e,t,n,a,r)}static adagrad(e,t=.1){return new If(e,t)}},Ws={sgd:Yr.sgd,momentum:Yr.momentum,adadelta:Yr.adadelta,adagrad:Yr.adagrad,rmsprop:Yr.rmsprop,adamax:Yr.adamax,adam:Yr.adam},Lz=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function Jv(){return new Promise(e=>Lz(()=>e()))}var N={};$e(N,{ERF_A1:()=>Qz,ERF_A2:()=>eW,ERF_A3:()=>tW,ERF_A4:()=>nW,ERF_A5:()=>aW,ERF_P:()=>Jz,PARALLELIZE_THRESHOLD:()=>Qv,RowPartitionType:()=>nr,SELU_SCALE:()=>tN,SELU_SCALEALPHA:()=>eN,applyActivation:()=>vf,assertAndGetBroadcastShape:()=>ut,assertAxesAreInnerMostDims:()=>UP,assertParamsConsistent:()=>zz,assignToTypedArray:()=>uW,axesAreInnerMostDims:()=>kv,calculateShapes:()=>RS,checkEinsumDimSizes:()=>fW,checkPadOnDimRoundingMode:()=>Nn,combineLocations:()=>aT,combineRaggedTensorToTensorShapes:()=>Bz,complexWithEvenIndex:()=>iW,complexWithOddIndex:()=>oW,computeConv2DInfo:()=>Mc,computeConv3DInfo:()=>YS,computeDefaultPad:()=>av,computeDilation2DInfo:()=>GM,computeOptimalWindowSize:()=>Hz,computeOutAndReduceShapes:()=>rT,computeOutShape:()=>Wz,computePool2DInfo:()=>XS,computePool3DInfo:()=>HM,convertConv2DDataFormat:()=>ZS,decodeEinsumEquation:()=>hW,eitherStridesOrDilationsAreOne:()=>cr,expandShapeToKeepDim:()=>ii,exponent:()=>cW,exponents:()=>pW,fromStringArrayToUint8:()=>PW,fromUint8ToStringArray:()=>MW,getAxesPermutation:()=>sT,getBroadcastDims:()=>AS,getComplexWithIndex:()=>lW,getEinsumComputePath:()=>gW,getEinsumPermutation:()=>mW,getFusedBiasGradient:()=>xf,getFusedDyActivation:()=>bf,getImageCenter:()=>jz,getInnerMostAxes:()=>GP,getPermuted:()=>Kz,getRaggedRank:()=>Uz,getReductionAxes:()=>Wt,getReshaped:()=>qz,getReshapedPermuted:()=>Xz,getRowPartitionTypesHelper:()=>Vz,getSliceBeginCoords:()=>Yz,getSliceSize:()=>Zz,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>vW,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>wW,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>kW,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>TW,getSparseReshapeInputOutputMismatchErrorMessage:()=>CW,getSparseReshapeInputOutputMultipleErrorMessage:()=>NW,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>IW,getSparseReshapeNegativeOutputDimErrorMessage:()=>SW,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>AW,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>_W,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>EW,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>$W,getUndoAxesPermutation:()=>Iv,isIdentityPermutation:()=>yW,log:()=>oD,mergeRealAndImagArrays:()=>rW,prepareAndValidate:()=>DS,prepareSplitSize:()=>xW,segment_util:()=>nN,shouldFuse:()=>wf,slice_util:()=>jt,splitRealAndImagArrays:()=>sW,tupleValuesAreOne:()=>os,upcastType:()=>fa,validateDefaultValueShape:()=>Gz,validateInput:()=>jx,validateUpdateShape:()=>Hx,warn:()=>Jr});function zz(e,t){let n=e[0].length;e.forEach((r,s)=>{A(r.length===n,()=>`Error in concat${n}D: rank of tensors[${s}] must be the same as the rank of the rest (${n})`)}),A(t>=0&&t`Error in concat${n}D: axis must be between 0 and ${n-1}.`);let a=e[0];e.forEach((r,s)=>{for(let i=0;i`Error in concat${n}D: Shape of tensors[${s}] (${r}) does not match the shape of the rest (${a}) along the non-concatenated axis ${s}.`)})}function Wz(e,t){let n=e[0].slice();for(let a=1;a=0)if(o>=0){if(o!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${r+e}] = ${s} but shape[${r+e}] = ${o}`)}else a[i]=s}return a}function Vz(e){let t={FIRST_DIM_SIZE:nr.FIRST_DIM_SIZE,VALUE_ROWIDS:nr.VALUE_ROWIDS,ROW_LENGTHS:nr.ROW_LENGTHS,ROW_SPLITS:nr.ROW_SPLITS,ROW_LIMITS:nr.ROW_LIMITS,ROW_STARTS:nr.ROW_STARTS},n=[];for(let a of e)if(a in t)n.push(t[a]);else break;return n}function Uz(e){return e.length===0?0:e[0]===nr.FIRST_DIM_SIZE?e.length-1:e.length}function Gz(e,t){if(e==null||t==null)return;let n=e.length,a=t.length;if(n>=a)throw new Error(`defaultValue.shape=${e} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${n} must be less than ragged tensor input flatValues.rank = ${a})`);for(let r=0;r=0&&i>=0&&s!==1&&s!==i)throw new Error(`defaultValue.shape=${e}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${r-e.length}] = ${s} but ragged tensor input.flatValues.shape[${r-e.length}] = ${i}`)}}var Qv=30;function Hz(e){return e<=Qv?e:Eh(e,Math.floor(Math.sqrt(e)))}function jz(e,t,n){let a=n*(typeof e=="number"?e:e[0]),r=t*(typeof e=="number"?e:e[1]);return[a,r]}function qz(e,t,n,a=!0){let r=[];if(a)r=r.concat(t.slice(0)),r.push(e[0]/n),r=r.concat(e.slice(1));else{r=r.concat(e[0]);let s=t.length;for(let i=0;i=t*2+1||i%2===1?s.push(i):r.push(i);a.push(...r),a.push(0),a.push(...s)}return a}function Xz(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s/g,vk=",",wk="...";function hW(e,t){e=e.replace(/\s/g,"");let n=(e.length-e.replace(dW,"").length)/yb.length;if(n<1)throw new Error("Equations without an arrow are not supported.");if(n>1)throw new Error(`Equation must contain exactly one arrow ("${yb}").`);let[a,r]=e.split(yb);A(a.indexOf(wk)===-1,()=>`The ellipsis notation ("${wk}") is not supported yet.`);let s=a.split(vk),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error("Support for more than 2 input tensors is not implemented yet.");let o=[];for(let c=0;cm.indexOf(h)!==-1))throw new Error(`Output subscripts contain the label ${h} not present in the input subscripts.`);o.indexOf(h)===-1&&o.push(h)}for(let c=0;cr!==-1),{permutationIndices:n,expandDims:a}}function fW(e,t,n){let a=new Array(e);for(let r=0;r`Expected dimension ${a[t[r][i]]} at axis ${i} of input shaped ${JSON.stringify(s)}, but got dimension ${s[i]}`)}}function gW(e,t){let n=e,a=[],r=0;e.length===0&&n.push(-1),r=e.length+1;for(let i=0;it===n)}function bW(e,t){let n=[];for(let a=0;a"Number of splits must evenly divide the axis."),a=new Array(t).fill(e.shape[n]/t);else{let r=t.reduce((i,o)=>(o===-1&&(i+=1),i),0);A(r<=1,()=>"There should be only one negative value in split array.");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((o,l)=>l>0?o+l:o);t[s]=e.shape[n]-i}A(e.shape[n]===t.reduce((i,o)=>i+o),()=>"The sum of sizes must match the size of the axis dimension."),a=t}return a}function vW(e){return`Received SparseTensor with denseShape[0] = 0 but indices.shape[0] = ${e}`}function wW(e,t){return`indices(${e}, 0) is invalid: ${t} < 0`}function kW(e,t,n){return`indices(${e}, 0) is invalid: ${t} >= ${n}`}function IW(e,t){return`only one output dimension may be -1, not both ${e} and ${t}`}function SW(e,t){return`size ${e} must be non-negative, not ${t}`}function TW(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function NW(e,t){let n=mt(e),a=mt(t);return`Input to reshape is a SparseTensor with ${n} - dense values, but the requested shape requires a multiple of ${a}. inputShape=${e} outputShape= ${t}`}function CW(e,t){let n=mt(e),a=mt(t);return`Input to reshape is a tensor with ${n} dense values, but the requested shape has ${a}. inputShape=${e} outputShape=${t}`}function _W(){return"segment ids must be >= 0"}function EW(){return"segment ids are not increasing"}function AW(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function $W(e,t,n){return`Bad: indices[${e}] == ${t} out of range [0, ${n})`}var nN={};Ae(nN,{collectGatherOpShapeInfo:()=>RW,computeOutShape:()=>DW,segOpComputeOptimalWindowSize:()=>FW});function FW(e,t){let n=!1,a;for(e<=Qv?(a=e,n=!0):a=Eh(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=Eh(e,a+1);return a}function DW(e,t,n){let a=[],r=e.length;for(let s=0;sr))throw new Error(`Expect batchDims in the range of [-${r}, ${r}], but got ${a}`);if(a<0&&(a+=r),a>s)throw new Error(`batchDims (${a}) must be less than rank(x) ( - ${s}).`);if(nMh(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function PW(e){return e.map(t=>Ac(t))}var hr={};Ae(hr,{nonMaxSuppressionV3Impl:()=>GT,nonMaxSuppressionV4Impl:()=>HT,nonMaxSuppressionV5Impl:()=>jT,whereImpl:()=>DT});var aN={kernelName:Dl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,go(oe(n,"float32"),-1))}}},OW={kernelName:Rl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=lt(oe(n,"float32")),r=un(pe(be(1),a));return vt(he(e,r))}}}},LW={kernelName:Ml,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=un(pe(lt(oe(n,"float32")),1));return he(e,a)}}}},zW={kernelName:gs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=e,i=Wt(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Wt(a.shape,r);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}},WW={kernelName:fi,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},BW={kernelName:gi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},VW={kernelName:cc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},UW={kernelName:Ll,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,un(pe(be(1),lt(oe(n,"float32")))))}}},GW={kernelName:zl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=un(Y(be(1),lt(oe(n,"float32"))));return he(e,a)}}}},HW={kernelName:Vl,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=Y(lt(n),lt(a)),i=z(e,he(a,s)),o=Wt(n.shape,r);return o.length>0&&(i=fe(i,o)),W(i,n.shape)},b:()=>{let s=Y(lt(n),lt(a)),i=vt(z(e,he(n,s))),o=Wt(a.shape,r);return o.length>0&&(i=fe(i,o)),W(i,a.shape)}}}},jW={kernelName:Wl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,Y(lt(oe(n,"float32")),1))}}},qW={kernelName:Bl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,pe(be(1),lt(oe(n,"float32"))))}}};function KW(e,t,n,a,r,s){let i=_(e,"dy","avgPool3dGrad"),o=_(t,"input","avgPool3dGrad"),l=i,u=o,p=!1;o.rank===4&&(p=!0,l=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),u=W(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),$(l.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`),$(u.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${u.rank}.`),Nn("avgPool3dGrad",r,s);let d={dy:l,input:u},c={filterSize:n,strides:a,pad:r,dimRoundingMode:s},h=O.runKernel(cm,d,c);return p?W(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var XW=L({avgPool3dGrad_:KW}),YW={kernelName:dc,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>XW(e,a,r,s,i,o)}}};function ZW(e,t,n,a,r){let s=_(e,"dy","avgPoolGrad"),i=_(t,"input","avgPoolGrad");$(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let o=i,l=s,u=!1;i.rank===3&&(u=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),$(l.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`),$(o.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`);let p={dy:l,input:o},d={filterSize:n,strides:a,pad:r},c=O.runKernel(pm,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var JW=L({avgPoolGrad_:ZW}),QW={kernelName:yi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>JW(e,a,r,s,i)}}},eB={kernelName:bi,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>Fe(e,r,!1,!0),b:()=>Fe(a,e,!0,!1)}:!s&&i?{a:()=>Fe(e,r,!1,!1),b:()=>Fe(e,a,!0,!1)}:s&&!i?{a:()=>Fe(r,e,!1,!0),b:()=>Fe(a,e,!1,!1)}:{a:()=>Fe(r,e,!0,!0),b:()=>Fe(e,a,!0,!0)}}},tB={kernelName:Ul,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>Vc(e,a,r)}}},nB={kernelName:tS,gradFunc:(e,t,n)=>{let a=n,r=a.inputShape,s=a.shape,i=Array.from(s);for(let l=r.length-1;l>=0;l--)if(r[l]===s[l])i[l]=1;else if(r[l]!==1)throw new Error(`broadcastTo(): [${r}] cannot be broadcast to [${s}].`);let o=[];for(let l=0;l1&&o.push(l);return{x:()=>fe(e,o,!0)}}},aB={kernelName:xi,gradFunc:e=>({x:()=>e.clone()})},rB={kernelName:vi,gradFunc:e=>({x:()=>qe(e)})},sB={kernelName:ys,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>mn($a(Fr(a,r),Ss(a,s)),e,qe(e))}}},iB={kernelName:hc,inputsToSave:["x"],gradFunc:aN.gradFunc},oB={kernelName:Gl,saveAllInputs:!0,gradFunc:(e,t,n)=>{let a=t.map(o=>o.shape),{axis:r}=n,s=Fa(r,t[0].shape)[0],i=a.map(o=>o[s]);return zn(e,i,s).map(o=>()=>o)}},lB={kernelName:wi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return $(os(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>mv(a.shape,e,r,i,o,l),filter:()=>Xv(a,e,r.shape,i,o,l)}}},uB={kernelName:ki,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>$t(e,r,s,i,o,1,l),filter:()=>Xv(e,a,r.shape,s,i,o,l)}}};function pB(e,t,n,a,r){let s=e;e.rank===4&&(s=W(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;i.rank===4&&(i=W(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),$(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),$(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),$(n.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`),$(s.shape[4]===n[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`),$(i.shape[4]===n[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${n[4]}).`);let o={x:s,dy:i},l={strides:a,pad:r,filterShape:n};return O.runKernel(gm,o,l)}var cB=L({conv3DBackpropFilter_:pB}),dB={kernelName:mc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;$(os(a),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${a}'`);let[i,o]=t;return{x:()=>eT(i.shape,e,o,r,s),filter:()=>cB(i,e,o.shape,r,s)}}},hB={kernelName:Ii,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(vt(pf(oe(n,"float32"))),e)}}},mB={kernelName:Si,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(cf(oe(n,"float32")),e)}}},fB={kernelName:Ti,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=sT([r],a.rank),l=Ym(e,r,s,!i);return o!=null&&(l=Ee(l,o)),l}}}},gB={kernelName:Ni,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;$(os(o),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`);let[l,u]=t;return $(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),$(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${u.rank}.`),$(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]}.`),$(cr(r,o),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`),Nn("depthwiseConv2d",s,i),{x:()=>BT(l.shape,e,u,r,s,o,i),filter:()=>WT(l,e,u.shape,r,s,o,i)}}},yB={kernelName:fc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,s={x:a,filter:r,dy:e},i={x:a,filter:r,dy:e};return{x:()=>O.runKernel(Ah,s,n),filter:()=>O.runKernel($h,i,n)}}},bB={kernelName:_i,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>O.runKernel(Im,a)}}},xB={kernelName:Kl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(fn(vt(lt(n))),2/Math.sqrt(Math.PI));return{x:()=>z(e,a)}}},vB={kernelName:Ei,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,n)}}},wB={kernelName:Yl,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>W(e,n.shape)}}},kB={kernelName:Zl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,fn(n))}}},IB={kernelName:Ai,gradFunc:e=>({x:()=>qe(e)})},SB={kernelName:$i,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=he(e,oe(a,"float32")),i=Wt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,oe(n,"float32")),i=Wt(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=lt(a);return vt(he(s,oe(o,"float32")))}}}},TB={kernelName:Fi,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?be(1):o,u=Wt(s.shape,r.shape),p=[];if(s.rank===1){for(let f=0;fs.rank===1?W(z(z(e,Ln(W(h,[1,1,1,s.shape[0]]),p)),l),r.shape):W(z(z(e,h),l),r.shape),mean:()=>{let f=z(z(h,be(-1)),c);return s.rank===1&&(f=fe(f,u)),W(f,s.shape)},variance:()=>{let f=z(z(m,d),c);return s.rank===1&&(f=fe(f,u)),W(f,s.shape)},scale:()=>{let f=z(d,h),g=z(e,f);return s.rank===1&&(g=fe(g,u)),W(g,s.shape)},offset:()=>{let f=e;return s.rank===1&&(f=fe(f,u)),W(f,s.shape)}}}},NB={kernelName:Ql,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{let[a,r]=t,{axis:s}=n,i=Fa(s,a.shape)[0];return{x:()=>{let o=a.shape,l=r.size,u=o.slice(0,i),p=u.length,d=o.slice(s,o.length).slice(1),c=d.length,h=kk(0,p),m=kk(p+1,p+1+c),f=Ik([u,[l],d]),g=W(e,f),y=W(r,[l]),b=Ik([[p],h,m]),x=Ee(g,b),w=gf(x,y,a.shape[i]),I=Iv(b);return w=Ee(w,I),w},indices:()=>r}}};function kk(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>qe(n),b:()=>qe(a)}}},_B={kernelName:Ri,gradFunc:e=>({x:()=>oe(e,"float32")})},EB={kernelName:nu,gradFunc:e=>({x:()=>qe(e)})},AB={kernelName:au,gradFunc:e=>({x:()=>qe(e)})},$B={kernelName:ru,gradFunc:e=>({x:()=>qe(e)})},FB={kernelName:Mi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=Cn(a,0);return{x:()=>mn(s,e,z(e,r))}}},DB={kernelName:ou,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,Y(n,1))}}},RB={kernelName:Pi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,oe(n,"float32"))}}},MB={kernelName:aS,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=fn(a);return pe(e,z(fe(e,r,!0),s))}}}};function PB(e,t,n,a=5,r=1,s=1,i=.5){let o={x:e,y:t,dy:n},l={depthRadius:a,bias:r,alpha:s,beta:i};return O.runKernel(_m,o,l)}var OB=L({localResponseNormalizationBackprop_:PB}),LB={kernelName:yc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>OB(a,r,e,s,i,o,l)}}};function rN(e,t,n,a){return t.rankz(e,oe(ea(n,t),e.dtype))}}var Sk={kernelName:Oi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{reductionIndices:r}=a,s=t[0],i=t[1],o=Fa(r,s.shape),l=rN(e,i,s,o);return{x:()=>l.x()}}},zB={kernelName:Li,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,oe(Fr(n,a),"float32")),b:()=>z(e,oe(Jm(n,a),"float32"))}}};function WB(e,t,n,a,r,s,i){let o=_(e,"dy","maxPool3dGrad"),l=_(t,"input","maxPool3dGrad"),u=_(n,"output","maxPool3dGrad"),p=o,d=l,c=u,h=!1;l.rank===4&&(h=!0,p=W(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),d=W(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),c=W(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]])),$(p.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${p.rank}.`),$(d.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${d.rank}.`),$(c.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${c.rank}.`),Nn("maxPool3dGrad",s,i);let m={dy:p,input:d,output:c},f={filterSize:a,strides:r,pad:s,dimRoundingMode:i},g=O.runKernel(Am,m,f);return h?W(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var BB=L({maxPool3dGrad_:WB}),VB={kernelName:bc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>BB(e,a,r,s,i,o,l)}}};function UB(e,t,n,a,r,s,i){let o=_(e,"dy","maxPoolGrad"),l=_(t,"input","maxPoolGrad"),u=_(n,"output","maxPoolGrad");$(l.rank===o.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`),$(o.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`),$(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),Nn("maxPoolGrad",s,i);let p={dy:o,input:l,output:u},d={filterSize:a,strides:r,pad:s,dimRoundingMode:i};return O.runKernel(Em,p,d)}var GB=L({maxPoolGrad_:UB}),HB={kernelName:zi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>GB(e,a,r,s,i,o)}}},jB={kernelName:Wi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=Fa(r,a.shape),i=rT(a.shape,s)[1],o=mt(i);return{x:()=>{let l=a.shape.slice();s.forEach(p=>{l[p]=1});let u=W(e,l);return he(z(u,Jn(a.shape,"float32")),o)}}}},qB={kernelName:Bi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=Fa(r,s.shape),l=rN(e,i,s,o);return{x:()=>l.x()}}},KB={kernelName:Vi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,oe(Ss(n,a),"float32")),b:()=>z(e,oe(Cn(n,a),"float32"))}}},XB={kernelName:Ui,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Be(e,s,a.shape)}}},YB={kernelName:cu,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=Wt(n.shape,r);return s.length>0?W(fe(e,s),n.shape):e},b:()=>{let s=z(e,vt(Wu(he(n,a)))),i=Wt(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},ZB={kernelName:Gi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=z(e,oe(a,"float32")),i=Wt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,oe(n,"float32")),i=Wt(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},JB={kernelName:du,gradFunc:e=>({x:()=>vt(e)})},QB={kernelName:Hi,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>It(n.shape,"float32")}}},e4={kernelName:yu,gradFunc:e=>({x:()=>qe(e)})},t4={kernelName:bu,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return ct(e,a).map(r=>()=>r)}},Tk={kernelName:ji,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Be(e,s,a.shape)}}},n4={kernelName:qi,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{let[n,a,r]=t,s=n,i=a,o=ut(s.shape,i.shape);return{a:()=>{let l=oe(i,"float32"),u=z(e,z(l,$r(s,pe(l,be(1))))),p=Wt(s.shape,o);return p.length>0&&(u=fe(u,p)),W(u,s.shape)},b:()=>{let l=Cn(s,0),u=mn(l,ta(s),qe(s)),p=z(e,z(r,u)),d=Wt(i.shape,o);return d.length>0&&(p=fe(p,d)),W(p,i.shape)}}}},a4={kernelName:Ki,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=Cn(n,0);return{x:()=>mn(r,e,z(e,a)),alpha:()=>{let s=mn(r,qe(e),z(e,n)),i=Wt(a.shape,e.shape);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}};function r4(e,t,n){let a=e.shape.slice();a[n]=1;let r=W(t,a),s=ec(e,n,!0,!1),i=ec(e,n,!0,!0),o=z(s,i);return z(r,o)}function s4(e,t,n){let a=e.shape.length,r=a-n.length,s=N.getAxesPermutation(n,a),i=e;s!=null&&(i=Ee(e,s));let o=i.shape.slice(),l=o.splice(a-n.length,n.length).reduce((d,c)=>d*c,1);o.push(l);let u=i.reshape(o),p=r4(u,t,r);if(p=p.reshape(i.shape),s!=null){let d=N.getUndoAxesPermutation(s);p=Ee(p,d)}return p}var i4={kernelName:Xi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=[];return r==null?s=a.shape.map((i,o)=>o):typeof r=="number"?s=[r]:s=r,{x:()=>s4(a,e,s)}}},o4={kernelName:Ci,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=he(e,oe(a,"float32")),i=Wt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,oe(n,"float32")),i=Wt(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=lt(a);return vt(he(s,oe(o,"float32")))}}}},l4={kernelName:xu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,vt(lt(n)))}}},u4={kernelName:Qi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(Ss(n,6),go(n));return{x:()=>z(e,oe(a,"float32"))}}},p4={kernelName:Yi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,oe(go(n),"float32"))}}},c4={kernelName:vu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,n.shape)}}},d4={kernelName:Ji,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(Lm,r,n)}}},h4={kernelName:Zi,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(Om,r,n)}}},m4={kernelName:eo,gradFunc:(e,t,n)=>{let{dims:a}=n,r=Fa(a,e.shape);return{x:()=>ga(e,r)}}},f4={kernelName:to,gradFunc:e=>({x:()=>qe(e)})},g4={kernelName:no,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>vt(he(e,z($r(n,1.5),2)))}}},y4={kernelName:ku,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>oe(qe(n),"float32"),t:()=>z(e,oe(n,e.dtype)),e:()=>z(e,oe(Wc(n),e.dtype))}}},b4={kernelName:Iu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=Cn(n,be(0)),r=be(eN),s=be(tN),i=z(e,s),o=z(z(e,r),fn(oe(n,"float32")));return mn(a,i,o)}}}},x4={kernelName:ro,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(n,pe(be(1),n)))}}},v4={kernelName:Nu,gradFunc:e=>({x:()=>qe(e)})},w4={kernelName:ao,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Oc(oe(n,"float32")),e)}}},k4={kernelName:Tu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Xm(oe(n,"float32")),e)}}},I4={kernelName:Su,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=US(a,r,s),u=[];for(let p=0;pba(e,u)}}},S4={kernelName:oo,outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{dim:r}=n,s=!0,i=z(e,a);return{logits:()=>pe(i,z(fe(i,[r],s),a))}}},T4={kernelName:Cu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,ha(n))}}},Nk={kernelName:_u,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>Pc(e,a,r)}}},Ck={kernelName:Eu,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>Ze(e,a)}}},N4={kernelName:so,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,z(un(oe(n,"float32")),2))}}},C4={kernelName:Ic,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(oe(n,"float32"),2))}}},_4={kernelName:lo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=be(2);return{a:()=>z(e,z(r,pe(n,a))),b:()=>z(e,z(r,pe(a,n)))}}},E4={kernelName:xs,gradFunc:e=>({x:()=>qe(e)})},A4={kernelName:uo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=e,i=Wt(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Wt(a.shape,r);return i.length>0&&(s=fe(s,i)),W(vt(s),a.shape)}}}},$4={kernelName:io,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,r=a.shape.slice(),{axis:s}=n;Fa(s,a.shape).forEach(l=>{r[l]=1});let i=W(e,r),o=z(i,Jn(a.shape,"float32"));return{x:()=>o}}},F4={kernelName:po,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,lt(Oc(n)))}}},D4={kernelName:co,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(pe(be(1),lt(n)),e)}}},R4={kernelName:bs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{reps:r}=n;return{x:()=>{let s=qe(a);if(a.rank===1)for(let i=0;i{let a=n,{perm:r}=a,s=Iv(r);return{x:()=>Ee(e,s)}}},P4={kernelName:Ru,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>Ft(e,r)}}},O4={kernelName:Cc,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L4(e,n)}}};function L4(e,t){let n=dr(t,qe(t)),a=Bu(e,n),r=Fr(t,be(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>qe(e)})},W4=[aN,OW,LW,zW,WW,BW,VW,UW,GW,HW,jW,qW,YW,QW,eB,tB,nB,aB,rB,sB,iB,oB,uB,lB,dB,hB,mB,fB,gB,yB,o4,bB,xB,vB,wB,kB,SB,IB,TB,NB,CB,_B,EB,AB,$B,FB,DB,RB,MB,LB,Sk,Sk,zB,VB,HB,jB,qB,KB,XB,YB,ZB,JB,QB,e4,t4,Tk,Tk,n4,a4,i4,l4,u4,p4,c4,d4,h4,m4,f4,g4,y4,b4,x4,v4,w4,k4,I4,S4,T4,Nk,Nk,Ck,Ck,N4,_4,C4,E4,A4,$4,F4,D4,R4,M4,P4,O4,z4];for(let e of W4)rS(e);J().prototype.abs=function(){return this.throwIfDisposed(),Lt(this)};J().prototype.acos=function(){return this.throwIfDisposed(),Xx(this)};J().prototype.acosh=function(){return this.throwIfDisposed(),Yx(this)};J().prototype.add=function(e){return this.throwIfDisposed(),Y(this,e)};J().prototype.all=function(e,t){return this.throwIfDisposed(),jm(this,e,t)};J().prototype.any=function(e,t){return this.throwIfDisposed(),Qp(this,e,t)};J().prototype.argMax=function(e){return this.throwIfDisposed(),ri(this,e)};J().prototype.argMin=function(e){return this.throwIfDisposed(),Zx(this,e)};J().prototype.asScalar=function(){return this.throwIfDisposed(),$(this.size===1,()=>"The array must have only 1 element."),W(this,[])};J().prototype.asType=function(e){return this.throwIfDisposed(),oe(this,e)};J().prototype.as1D=function(){return this.throwIfDisposed(),W(this,[this.size])};J().prototype.as2D=function(e,t){return this.throwIfDisposed(),W(this,[e,t])};J().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),W(this,[e,t,n])};J().prototype.as4D=function(e,t,n,a){return this.throwIfDisposed(),W(this,[e,t,n,a])};J().prototype.as5D=function(e,t,n,a,r){return this.throwIfDisposed(),W(this,[e,t,n,a,r])};J().prototype.asin=function(){return this.throwIfDisposed(),Jx(this)};J().prototype.asinh=function(){return this.throwIfDisposed(),Qx(this)};J().prototype.atan=function(){return this.throwIfDisposed(),ev(this)};J().prototype.atan2=function(e){return this.throwIfDisposed(),tv(this,e)};J().prototype.atanh=function(){return this.throwIfDisposed(),nv(this)};J().prototype.avgPool=function(e,t,n,a){return this.throwIfDisposed(),ya(this,e,t,n,a)};J().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),Pc(this,e,t)};J().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),ks(this,e,t,n,a,r)};J().prototype.broadcastTo=function(e){return this.throwIfDisposed(),Xs(this,e)};J().prototype.cast=function(e){return this.throwIfDisposed(),oe(this,e)};J().prototype.ceil=function(){return this.throwIfDisposed(),uv(this)};J().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),en(this,e,t)};J().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Te&&(e=[e]),Ze([this,...e],t)};J().prototype.conv1d=function(e,t,n,a,r,s){return this.throwIfDisposed(),qm(this,e,t,n,a,r,s)};J().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),Km(this,e,t,n,a,r)};J().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),$t(this,e,t,n,a,r,s)};J().prototype.cos=function(){return this.throwIfDisposed(),Oc(this)};J().prototype.cosh=function(){return this.throwIfDisposed(),Xm(this)};J().prototype.cumprod=function(e,t,n){return this.throwIfDisposed(),ec(this,e,t,n)};J().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),Ym(this,e,t,n)};J().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),yv(this,e,t)};J().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Is(this,e,t,n,a,r,s)};J().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),bv(this,e,t,n,a,r)};J().prototype.divNoNan=function(e){return this.throwIfDisposed(),xv(this,e)};J().prototype.div=function(e){return this.throwIfDisposed(),he(this,e)};J().prototype.dot=function(e){return this.throwIfDisposed(),vv(this,e)};J().prototype.elu=function(){return this.throwIfDisposed(),Lu(this)};J().prototype.equal=function(e){return this.throwIfDisposed(),ea(this,e)};J().prototype.erf=function(){return this.throwIfDisposed(),wv(this)};J().prototype.euclideanNorm=function(e,t){return this.throwIfDisposed(),Sv(this,e,t)};J().prototype.exp=function(){return this.throwIfDisposed(),fn(this)};J().prototype.expandDims=function(e){return this.throwIfDisposed(),Zt(this,e)};J().prototype.expm1=function(){return this.throwIfDisposed(),Tv(this)};J().prototype.fft=function(){return this.throwIfDisposed(),Hc(this)};J().prototype.flatten=function(){return this.throwIfDisposed(),W(this,[this.size])};J().prototype.floor=function(){return this.throwIfDisposed(),Wu(this)};J().prototype.floorDiv=function(e){return this.throwIfDisposed(),Hm(this,e)};J().prototype.gather=function(e,t){return this.throwIfDisposed(),Bu(this,e,t)};J().prototype.greaterEqual=function(e){return this.throwIfDisposed(),Fr(this,e)};J().prototype.greater=function(e){return this.throwIfDisposed(),Cn(this,e)};J().prototype.ifft=function(){return this.throwIfDisposed(),wl(this)};J().prototype.irfft=function(){return this.throwIfDisposed(),hf(this)};J().prototype.isFinite=function(){return this.throwIfDisposed(),Nv(this)};J().prototype.isInf=function(){return this.throwIfDisposed(),Cv(this)};J().prototype.isNaN=function(){return this.throwIfDisposed(),_v(this)};J().prototype.leakyRelu=function(e){return this.throwIfDisposed(),Lc(this,e)};J().prototype.lessEqual=function(e){return this.throwIfDisposed(),Ss(this,e)};J().prototype.less=function(e){return this.throwIfDisposed(),Jm(this,e)};J().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),Ev(this,e,t,n,a)};J().prototype.logSigmoid=function(){return this.throwIfDisposed(),Av(this)};J().prototype.logSoftmax=function(e){return this.throwIfDisposed(),ef(this,e)};J().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),tf(this,e,t)};J().prototype.log=function(){return this.throwIfDisposed(),ta(this)};J().prototype.log1p=function(){return this.throwIfDisposed(),zc(this)};J().prototype.logicalAnd=function(e){return this.throwIfDisposed(),$a(this,e)};J().prototype.logicalNot=function(){return this.throwIfDisposed(),Wc(this)};J().prototype.logicalOr=function(e){return this.throwIfDisposed(),nf(this,e)};J().prototype.logicalXor=function(e){return this.throwIfDisposed(),$v(this,e)};J().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),Fe(this,e,t,n)};J().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),Dt(this,e,t,n,a)};J().prototype.max=function(e,t){return this.throwIfDisposed(),ma(this,e,t)};J().prototype.maximum=function(e){return this.throwIfDisposed(),dr(this,e)};J().prototype.mean=function(e,t){return this.throwIfDisposed(),Nt(this,e,t)};J().prototype.min=function(e,t){return this.throwIfDisposed(),bl(this,e,t)};J().prototype.minimum=function(e){return this.throwIfDisposed(),Vu(this,e)};J().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),Dv(this,e,t)};J().prototype.mod=function(e){return this.throwIfDisposed(),Rv(this,e)};J().prototype.mul=function(e){return this.throwIfDisposed(),z(this,e)};J().prototype.neg=function(){return this.throwIfDisposed(),vt(this)};J().prototype.norm=function(e,t,n){return this.throwIfDisposed(),zu(this,e,t,n)};J().prototype.notEqual=function(e){return this.throwIfDisposed(),oi(this,e)};J().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),gl(this,e,t,n)};J().prototype.onesLike=function(){return this.throwIfDisposed(),na(this)};J().prototype.pad=function(e,t){return this.throwIfDisposed(),ba(this,e,t)};J().prototype.pool=function(e,t,n,a,r,s){return this.throwIfDisposed(),Mv(this,e,t,n,a,r,s)};J().prototype.pow=function(e){return this.throwIfDisposed(),$r(this,e)};J().prototype.prelu=function(e){return this.throwIfDisposed(),Uc(this,e)};J().prototype.prod=function(e,t){return this.throwIfDisposed(),Pv(this,e,t)};J().prototype.reciprocal=function(){return this.throwIfDisposed(),zv(this)};J().prototype.relu=function(){return this.throwIfDisposed(),Xe(this)};J().prototype.relu6=function(){return this.throwIfDisposed(),sf(this)};J().prototype.reshapeAs=function(e){return this.throwIfDisposed(),W(this,e.shape)};J().prototype.reshape=function(e){return this.throwIfDisposed(),W(this,e)};J().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),qT(this,e,t,n)};J().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),KT(this,e,t,n)};J().prototype.reverse=function(e){return this.throwIfDisposed(),ga(this,e)};J().prototype.rfft=function(){return this.throwIfDisposed(),jc(this)};J().prototype.round=function(){return this.throwIfDisposed(),of(this)};J().prototype.rsqrt=function(){return this.throwIfDisposed(),lf(this)};J().prototype.selu=function(){return this.throwIfDisposed(),uf(this)};J().prototype.separableConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Ts(this,e,t,n,a,r,s)};J().prototype.sigmoid=function(){return this.throwIfDisposed(),ha(this)};J().prototype.sign=function(){return this.throwIfDisposed(),Wv(this)};J().prototype.sin=function(){return this.throwIfDisposed(),pf(this)};J().prototype.sinh=function(){return this.throwIfDisposed(),cf(this)};J().prototype.slice=function(e,t){return this.throwIfDisposed(),Be(this,e,t)};J().prototype.softmax=function(e){return this.throwIfDisposed(),Ka(this,e)};J().prototype.softplus=function(){return this.throwIfDisposed(),mo(this)};J().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),Vc(this,e,t)};J().prototype.split=function(e,t){return this.throwIfDisposed(),zn(this,e,t)};J().prototype.sqrt=function(){return this.throwIfDisposed(),un(this)};J().prototype.square=function(){return this.throwIfDisposed(),lt(this)};J().prototype.squaredDifference=function(e){return this.throwIfDisposed(),mf(this,e)};J().prototype.squeeze=function(e){return this.throwIfDisposed(),Ns(this,e)};J().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof Te?[this,e]:[this,...e];return Ft(n,t)};J().prototype.step=function(e){return this.throwIfDisposed(),go(this,e)};J().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),Bv(this,e,t,n,a,r,s,i,o)};J().prototype.sub=function(e){return this.throwIfDisposed(),pe(this,e)};J().prototype.sum=function(e,t){return this.throwIfDisposed(),fe(this,e,t)};J().prototype.tan=function(){return this.throwIfDisposed(),Vv(this)};J().prototype.tanh=function(){return this.throwIfDisposed(),si(this)};J().prototype.tile=function(e){return this.throwIfDisposed(),Ln(this,e)};J().prototype.toBool=function(){return this.throwIfDisposed(),oe(this,"bool")};J().prototype.toFloat=function(){return this.throwIfDisposed(),oe(this,"float32")};J().prototype.toInt=function(){return this.throwIfDisposed(),oe(this,"int32")};J().prototype.topk=function(e,t){return this.throwIfDisposed(),Uv(this,e,t)};J().prototype.transpose=function(e){return this.throwIfDisposed(),Ee(this,e)};J().prototype.unique=function(e){return this.throwIfDisposed(),Gv(this,e)};J().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),gf(this,e,t)};J().prototype.unstack=function(e){return this.throwIfDisposed(),ct(this,e)};J().prototype.where=function(e,t){return this.throwIfDisposed(),mn(e,this,t)};J().prototype.zerosLike=function(){return this.throwIfDisposed(),qe(this)};var Ir=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Ir.prototype)}},Wa=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Wa.prototype)}},V=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,V.prototype)}},Me=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Me.prototype)}},sN=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,sN.prototype)}},iN=class{constructor(e){this.maxEntries=e||100,this.cache=new Map}get(e){let t;return this.cache.has(e)&&(t=this.cache.get(e),this.cache.delete(e),this.cache.set(e,t)),t}put(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxEntries){let n=this.cache.keys().next().value;this.cache.delete(n)}this.cache.set(e,t)}getMaxEntries(){return this.maxEntries}setMaxEntries(e){if(e<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${e}.`);if(this.maxEntries>e)for(let t=0;tn.toUpperCase())}var Sa={};function ew(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function Ub(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>Ub(t));else{let t=Object.keys(e);for(let n of t){let a=e[n];a!=null&&typeof a=="object"&&(!Array.isArray(a)&&a.type==="ndarray"&&typeof a.value=="number"?e[n]=a.value:Ub(a))}}}function Kc(e,t={},n={},a="object",r=!1){if(typeof e=="string"){let s=e,i;if(s in n)i=n[s];else if(s in Sa)i=Sa[s];else if(i=t[s],i==null)throw new V(`Unknown ${a}: ${e}. This may be due to one of the following reasons: + dense values, but the requested shape requires a multiple of ${a}. inputShape=${e} outputShape= ${t}`}function CW(e,t){let n=mt(e),a=mt(t);return`Input to reshape is a tensor with ${n} dense values, but the requested shape has ${a}. inputShape=${e} outputShape=${t}`}function _W(){return"segment ids must be >= 0"}function EW(){return"segment ids are not increasing"}function $W(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function AW(e,t,n){return`Bad: indices[${e}] == ${t} out of range [0, ${n})`}var nN={};$e(nN,{collectGatherOpShapeInfo:()=>RW,computeOutShape:()=>DW,segOpComputeOptimalWindowSize:()=>FW});function FW(e,t){let n=!1,a;for(e<=Qv?(a=e,n=!0):a=Eh(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=Eh(e,a+1);return a}function DW(e,t,n){let a=[],r=e.length;for(let s=0;sr))throw new Error(`Expect batchDims in the range of [-${r}, ${r}], but got ${a}`);if(a<0&&(a+=r),a>s)throw new Error(`batchDims (${a}) must be less than rank(x) ( + ${s}).`);if(nMh(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function PW(e){return e.map(t=>$c(t))}var hr={};$e(hr,{nonMaxSuppressionV3Impl:()=>GT,nonMaxSuppressionV4Impl:()=>HT,nonMaxSuppressionV5Impl:()=>jT,whereImpl:()=>DT});var aN={kernelName:Dl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,go(le(n,"float32"),-1))}}},OW={kernelName:Rl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=lt(le(n,"float32")),r=un(pe(xe(1),a));return vt(he(e,r))}}}},LW={kernelName:Ml,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=un(pe(lt(le(n,"float32")),1));return he(e,a)}}}},zW={kernelName:gs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=e,i=Wt(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Wt(a.shape,r);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}},WW={kernelName:fi,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},BW={kernelName:gi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},VW={kernelName:cc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},UW={kernelName:Ll,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,un(pe(xe(1),lt(le(n,"float32")))))}}},GW={kernelName:zl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=un(Y(xe(1),lt(le(n,"float32"))));return he(e,a)}}}},HW={kernelName:Vl,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=Y(lt(n),lt(a)),i=z(e,he(a,s)),o=Wt(n.shape,r);return o.length>0&&(i=fe(i,o)),W(i,n.shape)},b:()=>{let s=Y(lt(n),lt(a)),i=vt(z(e,he(n,s))),o=Wt(a.shape,r);return o.length>0&&(i=fe(i,o)),W(i,a.shape)}}}},jW={kernelName:Wl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,Y(lt(le(n,"float32")),1))}}},qW={kernelName:Bl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,pe(xe(1),lt(le(n,"float32"))))}}};function KW(e,t,n,a,r,s){let i=_(e,"dy","avgPool3dGrad"),o=_(t,"input","avgPool3dGrad"),l=i,u=o,p=!1;o.rank===4&&(p=!0,l=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),u=W(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),A(l.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`),A(u.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${u.rank}.`),Nn("avgPool3dGrad",r,s);let d={dy:l,input:u},c={filterSize:n,strides:a,pad:r,dimRoundingMode:s},h=O.runKernel(cm,d,c);return p?W(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var XW=L({avgPool3dGrad_:KW}),YW={kernelName:dc,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>XW(e,a,r,s,i,o)}}};function ZW(e,t,n,a,r){let s=_(e,"dy","avgPoolGrad"),i=_(t,"input","avgPoolGrad");A(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let o=i,l=s,u=!1;i.rank===3&&(u=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(l.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`),A(o.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`);let p={dy:l,input:o},d={filterSize:n,strides:a,pad:r},c=O.runKernel(pm,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var JW=L({avgPoolGrad_:ZW}),QW={kernelName:yi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>JW(e,a,r,s,i)}}},eB={kernelName:bi,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>Fe(e,r,!1,!0),b:()=>Fe(a,e,!0,!1)}:!s&&i?{a:()=>Fe(e,r,!1,!1),b:()=>Fe(e,a,!0,!1)}:s&&!i?{a:()=>Fe(r,e,!1,!0),b:()=>Fe(a,e,!1,!1)}:{a:()=>Fe(r,e,!0,!0),b:()=>Fe(e,a,!0,!0)}}},tB={kernelName:Ul,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>Vc(e,a,r)}}},nB={kernelName:tS,gradFunc:(e,t,n)=>{let a=n,r=a.inputShape,s=a.shape,i=Array.from(s);for(let l=r.length-1;l>=0;l--)if(r[l]===s[l])i[l]=1;else if(r[l]!==1)throw new Error(`broadcastTo(): [${r}] cannot be broadcast to [${s}].`);let o=[];for(let l=0;l1&&o.push(l);return{x:()=>fe(e,o,!0)}}},aB={kernelName:xi,gradFunc:e=>({x:()=>e.clone()})},rB={kernelName:vi,gradFunc:e=>({x:()=>qe(e)})},sB={kernelName:ys,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>mn(Aa(Fr(a,r),Ss(a,s)),e,qe(e))}}},iB={kernelName:hc,inputsToSave:["x"],gradFunc:aN.gradFunc},oB={kernelName:Gl,saveAllInputs:!0,gradFunc:(e,t,n)=>{let a=t.map(o=>o.shape),{axis:r}=n,s=Fa(r,t[0].shape)[0],i=a.map(o=>o[s]);return zn(e,i,s).map(o=>()=>o)}},lB={kernelName:wi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return A(os(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>mv(a.shape,e,r,i,o,l),filter:()=>Xv(a,e,r.shape,i,o,l)}}},uB={kernelName:ki,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>At(e,r,s,i,o,1,l),filter:()=>Xv(e,a,r.shape,s,i,o,l)}}};function pB(e,t,n,a,r){let s=e;e.rank===4&&(s=W(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;i.rank===4&&(i=W(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),A(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),A(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),A(n.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`),A(s.shape[4]===n[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`),A(i.shape[4]===n[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${n[4]}).`);let o={x:s,dy:i},l={strides:a,pad:r,filterShape:n};return O.runKernel(gm,o,l)}var cB=L({conv3DBackpropFilter_:pB}),dB={kernelName:mc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;A(os(a),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${a}'`);let[i,o]=t;return{x:()=>eT(i.shape,e,o,r,s),filter:()=>cB(i,e,o.shape,r,s)}}},hB={kernelName:Ii,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(vt(pf(le(n,"float32"))),e)}}},mB={kernelName:Si,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(cf(le(n,"float32")),e)}}},fB={kernelName:Ti,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=sT([r],a.rank),l=Ym(e,r,s,!i);return o!=null&&(l=Ee(l,o)),l}}}},gB={kernelName:Ni,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;A(os(o),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`);let[l,u]=t;return A(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),A(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${u.rank}.`),A(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]}.`),A(cr(r,o),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`),Nn("depthwiseConv2d",s,i),{x:()=>BT(l.shape,e,u,r,s,o,i),filter:()=>WT(l,e,u.shape,r,s,o,i)}}},yB={kernelName:fc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,s={x:a,filter:r,dy:e},i={x:a,filter:r,dy:e};return{x:()=>O.runKernel($h,s,n),filter:()=>O.runKernel(Ah,i,n)}}},bB={kernelName:_i,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>O.runKernel(Im,a)}}},xB={kernelName:Kl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(fn(vt(lt(n))),2/Math.sqrt(Math.PI));return{x:()=>z(e,a)}}},vB={kernelName:Ei,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,n)}}},wB={kernelName:Yl,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>W(e,n.shape)}}},kB={kernelName:Zl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,fn(n))}}},IB={kernelName:$i,gradFunc:e=>({x:()=>qe(e)})},SB={kernelName:Ai,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=he(e,le(a,"float32")),i=Wt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,le(n,"float32")),i=Wt(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=lt(a);return vt(he(s,le(o,"float32")))}}}},TB={kernelName:Fi,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?xe(1):o,u=Wt(s.shape,r.shape),p=[];if(s.rank===1){for(let f=0;fs.rank===1?W(z(z(e,Ln(W(h,[1,1,1,s.shape[0]]),p)),l),r.shape):W(z(z(e,h),l),r.shape),mean:()=>{let f=z(z(h,xe(-1)),c);return s.rank===1&&(f=fe(f,u)),W(f,s.shape)},variance:()=>{let f=z(z(m,d),c);return s.rank===1&&(f=fe(f,u)),W(f,s.shape)},scale:()=>{let f=z(d,h),g=z(e,f);return s.rank===1&&(g=fe(g,u)),W(g,s.shape)},offset:()=>{let f=e;return s.rank===1&&(f=fe(f,u)),W(f,s.shape)}}}},NB={kernelName:Ql,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{let[a,r]=t,{axis:s}=n,i=Fa(s,a.shape)[0];return{x:()=>{let o=a.shape,l=r.size,u=o.slice(0,i),p=u.length,d=o.slice(s,o.length).slice(1),c=d.length,h=kk(0,p),m=kk(p+1,p+1+c),f=Ik([u,[l],d]),g=W(e,f),y=W(r,[l]),b=Ik([[p],h,m]),x=Ee(g,b),w=gf(x,y,a.shape[i]),I=Iv(b);return w=Ee(w,I),w},indices:()=>r}}};function kk(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>qe(n),b:()=>qe(a)}}},_B={kernelName:Ri,gradFunc:e=>({x:()=>le(e,"float32")})},EB={kernelName:nu,gradFunc:e=>({x:()=>qe(e)})},$B={kernelName:au,gradFunc:e=>({x:()=>qe(e)})},AB={kernelName:ru,gradFunc:e=>({x:()=>qe(e)})},FB={kernelName:Mi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=Cn(a,0);return{x:()=>mn(s,e,z(e,r))}}},DB={kernelName:ou,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,Y(n,1))}}},RB={kernelName:Pi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,le(n,"float32"))}}},MB={kernelName:aS,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=fn(a);return pe(e,z(fe(e,r,!0),s))}}}};function PB(e,t,n,a=5,r=1,s=1,i=.5){let o={x:e,y:t,dy:n},l={depthRadius:a,bias:r,alpha:s,beta:i};return O.runKernel(_m,o,l)}var OB=L({localResponseNormalizationBackprop_:PB}),LB={kernelName:yc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>OB(a,r,e,s,i,o,l)}}};function rN(e,t,n,a){return t.rankz(e,le(ea(n,t),e.dtype))}}var Sk={kernelName:Oi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{reductionIndices:r}=a,s=t[0],i=t[1],o=Fa(r,s.shape),l=rN(e,i,s,o);return{x:()=>l.x()}}},zB={kernelName:Li,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,le(Fr(n,a),"float32")),b:()=>z(e,le(Jm(n,a),"float32"))}}};function WB(e,t,n,a,r,s,i){let o=_(e,"dy","maxPool3dGrad"),l=_(t,"input","maxPool3dGrad"),u=_(n,"output","maxPool3dGrad"),p=o,d=l,c=u,h=!1;l.rank===4&&(h=!0,p=W(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),d=W(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),c=W(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]])),A(p.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${p.rank}.`),A(d.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${d.rank}.`),A(c.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${c.rank}.`),Nn("maxPool3dGrad",s,i);let m={dy:p,input:d,output:c},f={filterSize:a,strides:r,pad:s,dimRoundingMode:i},g=O.runKernel($m,m,f);return h?W(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var BB=L({maxPool3dGrad_:WB}),VB={kernelName:bc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>BB(e,a,r,s,i,o,l)}}};function UB(e,t,n,a,r,s,i){let o=_(e,"dy","maxPoolGrad"),l=_(t,"input","maxPoolGrad"),u=_(n,"output","maxPoolGrad");A(l.rank===o.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`),A(o.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`),A(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),Nn("maxPoolGrad",s,i);let p={dy:o,input:l,output:u},d={filterSize:a,strides:r,pad:s,dimRoundingMode:i};return O.runKernel(Em,p,d)}var GB=L({maxPoolGrad_:UB}),HB={kernelName:zi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>GB(e,a,r,s,i,o)}}},jB={kernelName:Wi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=Fa(r,a.shape),i=rT(a.shape,s)[1],o=mt(i);return{x:()=>{let l=a.shape.slice();s.forEach(p=>{l[p]=1});let u=W(e,l);return he(z(u,Jn(a.shape,"float32")),o)}}}},qB={kernelName:Bi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=Fa(r,s.shape),l=rN(e,i,s,o);return{x:()=>l.x()}}},KB={kernelName:Vi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,le(Ss(n,a),"float32")),b:()=>z(e,le(Cn(n,a),"float32"))}}},XB={kernelName:Ui,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Be(e,s,a.shape)}}},YB={kernelName:cu,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=Wt(n.shape,r);return s.length>0?W(fe(e,s),n.shape):e},b:()=>{let s=z(e,vt(Wu(he(n,a)))),i=Wt(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},ZB={kernelName:Gi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=z(e,le(a,"float32")),i=Wt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,le(n,"float32")),i=Wt(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},JB={kernelName:du,gradFunc:e=>({x:()=>vt(e)})},QB={kernelName:Hi,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>It(n.shape,"float32")}}},e4={kernelName:yu,gradFunc:e=>({x:()=>qe(e)})},t4={kernelName:bu,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return ct(e,a).map(r=>()=>r)}},Tk={kernelName:ji,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Be(e,s,a.shape)}}},n4={kernelName:qi,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{let[n,a,r]=t,s=n,i=a,o=ut(s.shape,i.shape);return{a:()=>{let l=le(i,"float32"),u=z(e,z(l,Ar(s,pe(l,xe(1))))),p=Wt(s.shape,o);return p.length>0&&(u=fe(u,p)),W(u,s.shape)},b:()=>{let l=Cn(s,0),u=mn(l,ta(s),qe(s)),p=z(e,z(r,u)),d=Wt(i.shape,o);return d.length>0&&(p=fe(p,d)),W(p,i.shape)}}}},a4={kernelName:Ki,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=Cn(n,0);return{x:()=>mn(r,e,z(e,a)),alpha:()=>{let s=mn(r,qe(e),z(e,n)),i=Wt(a.shape,e.shape);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}};function r4(e,t,n){let a=e.shape.slice();a[n]=1;let r=W(t,a),s=ec(e,n,!0,!1),i=ec(e,n,!0,!0),o=z(s,i);return z(r,o)}function s4(e,t,n){let a=e.shape.length,r=a-n.length,s=N.getAxesPermutation(n,a),i=e;s!=null&&(i=Ee(e,s));let o=i.shape.slice(),l=o.splice(a-n.length,n.length).reduce((d,c)=>d*c,1);o.push(l);let u=i.reshape(o),p=r4(u,t,r);if(p=p.reshape(i.shape),s!=null){let d=N.getUndoAxesPermutation(s);p=Ee(p,d)}return p}var i4={kernelName:Xi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=[];return r==null?s=a.shape.map((i,o)=>o):typeof r=="number"?s=[r]:s=r,{x:()=>s4(a,e,s)}}},o4={kernelName:Ci,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=he(e,le(a,"float32")),i=Wt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,le(n,"float32")),i=Wt(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=lt(a);return vt(he(s,le(o,"float32")))}}}},l4={kernelName:xu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,vt(lt(n)))}}},u4={kernelName:Qi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(Ss(n,6),go(n));return{x:()=>z(e,le(a,"float32"))}}},p4={kernelName:Yi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,le(go(n),"float32"))}}},c4={kernelName:vu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,n.shape)}}},d4={kernelName:Ji,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(Lm,r,n)}}},h4={kernelName:Zi,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(Om,r,n)}}},m4={kernelName:eo,gradFunc:(e,t,n)=>{let{dims:a}=n,r=Fa(a,e.shape);return{x:()=>ga(e,r)}}},f4={kernelName:to,gradFunc:e=>({x:()=>qe(e)})},g4={kernelName:no,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>vt(he(e,z(Ar(n,1.5),2)))}}},y4={kernelName:ku,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>le(qe(n),"float32"),t:()=>z(e,le(n,e.dtype)),e:()=>z(e,le(Wc(n),e.dtype))}}},b4={kernelName:Iu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=Cn(n,xe(0)),r=xe(eN),s=xe(tN),i=z(e,s),o=z(z(e,r),fn(le(n,"float32")));return mn(a,i,o)}}}},x4={kernelName:ro,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(n,pe(xe(1),n)))}}},v4={kernelName:Nu,gradFunc:e=>({x:()=>qe(e)})},w4={kernelName:ao,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Oc(le(n,"float32")),e)}}},k4={kernelName:Tu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Xm(le(n,"float32")),e)}}},I4={kernelName:Su,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=US(a,r,s),u=[];for(let p=0;pba(e,u)}}},S4={kernelName:oo,outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{dim:r}=n,s=!0,i=z(e,a);return{logits:()=>pe(i,z(fe(i,[r],s),a))}}},T4={kernelName:Cu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,ha(n))}}},Nk={kernelName:_u,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>Pc(e,a,r)}}},Ck={kernelName:Eu,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>Ze(e,a)}}},N4={kernelName:so,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,z(un(le(n,"float32")),2))}}},C4={kernelName:Ic,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(le(n,"float32"),2))}}},_4={kernelName:lo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xe(2);return{a:()=>z(e,z(r,pe(n,a))),b:()=>z(e,z(r,pe(a,n)))}}},E4={kernelName:xs,gradFunc:e=>({x:()=>qe(e)})},$4={kernelName:uo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=e,i=Wt(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Wt(a.shape,r);return i.length>0&&(s=fe(s,i)),W(vt(s),a.shape)}}}},A4={kernelName:io,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,r=a.shape.slice(),{axis:s}=n;Fa(s,a.shape).forEach(l=>{r[l]=1});let i=W(e,r),o=z(i,Jn(a.shape,"float32"));return{x:()=>o}}},F4={kernelName:po,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,lt(Oc(n)))}}},D4={kernelName:co,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(pe(xe(1),lt(n)),e)}}},R4={kernelName:bs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{reps:r}=n;return{x:()=>{let s=qe(a);if(a.rank===1)for(let i=0;i{let a=n,{perm:r}=a,s=Iv(r);return{x:()=>Ee(e,s)}}},P4={kernelName:Ru,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>Ft(e,r)}}},O4={kernelName:Cc,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L4(e,n)}}};function L4(e,t){let n=dr(t,qe(t)),a=Bu(e,n),r=Fr(t,xe(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>qe(e)})},W4=[aN,OW,LW,zW,WW,BW,VW,UW,GW,HW,jW,qW,YW,QW,eB,tB,nB,aB,rB,sB,iB,oB,uB,lB,dB,hB,mB,fB,gB,yB,o4,bB,xB,vB,wB,kB,SB,IB,TB,NB,CB,_B,EB,$B,AB,FB,DB,RB,MB,LB,Sk,Sk,zB,VB,HB,jB,qB,KB,XB,YB,ZB,JB,QB,e4,t4,Tk,Tk,n4,a4,i4,l4,u4,p4,c4,d4,h4,m4,f4,g4,y4,b4,x4,v4,w4,k4,I4,S4,T4,Nk,Nk,Ck,Ck,N4,_4,C4,E4,$4,A4,F4,D4,R4,M4,P4,O4,z4];for(let e of W4)rS(e);Q().prototype.abs=function(){return this.throwIfDisposed(),Lt(this)};Q().prototype.acos=function(){return this.throwIfDisposed(),Xx(this)};Q().prototype.acosh=function(){return this.throwIfDisposed(),Yx(this)};Q().prototype.add=function(e){return this.throwIfDisposed(),Y(this,e)};Q().prototype.all=function(e,t){return this.throwIfDisposed(),jm(this,e,t)};Q().prototype.any=function(e,t){return this.throwIfDisposed(),Qp(this,e,t)};Q().prototype.argMax=function(e){return this.throwIfDisposed(),ri(this,e)};Q().prototype.argMin=function(e){return this.throwIfDisposed(),Zx(this,e)};Q().prototype.asScalar=function(){return this.throwIfDisposed(),A(this.size===1,()=>"The array must have only 1 element."),W(this,[])};Q().prototype.asType=function(e){return this.throwIfDisposed(),le(this,e)};Q().prototype.as1D=function(){return this.throwIfDisposed(),W(this,[this.size])};Q().prototype.as2D=function(e,t){return this.throwIfDisposed(),W(this,[e,t])};Q().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),W(this,[e,t,n])};Q().prototype.as4D=function(e,t,n,a){return this.throwIfDisposed(),W(this,[e,t,n,a])};Q().prototype.as5D=function(e,t,n,a,r){return this.throwIfDisposed(),W(this,[e,t,n,a,r])};Q().prototype.asin=function(){return this.throwIfDisposed(),Jx(this)};Q().prototype.asinh=function(){return this.throwIfDisposed(),Qx(this)};Q().prototype.atan=function(){return this.throwIfDisposed(),ev(this)};Q().prototype.atan2=function(e){return this.throwIfDisposed(),tv(this,e)};Q().prototype.atanh=function(){return this.throwIfDisposed(),nv(this)};Q().prototype.avgPool=function(e,t,n,a){return this.throwIfDisposed(),ya(this,e,t,n,a)};Q().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),Pc(this,e,t)};Q().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),ks(this,e,t,n,a,r)};Q().prototype.broadcastTo=function(e){return this.throwIfDisposed(),Xs(this,e)};Q().prototype.cast=function(e){return this.throwIfDisposed(),le(this,e)};Q().prototype.ceil=function(){return this.throwIfDisposed(),uv(this)};Q().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),en(this,e,t)};Q().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Te&&(e=[e]),Ze([this,...e],t)};Q().prototype.conv1d=function(e,t,n,a,r,s){return this.throwIfDisposed(),qm(this,e,t,n,a,r,s)};Q().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),Km(this,e,t,n,a,r)};Q().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),At(this,e,t,n,a,r,s)};Q().prototype.cos=function(){return this.throwIfDisposed(),Oc(this)};Q().prototype.cosh=function(){return this.throwIfDisposed(),Xm(this)};Q().prototype.cumprod=function(e,t,n){return this.throwIfDisposed(),ec(this,e,t,n)};Q().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),Ym(this,e,t,n)};Q().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),yv(this,e,t)};Q().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Is(this,e,t,n,a,r,s)};Q().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),bv(this,e,t,n,a,r)};Q().prototype.divNoNan=function(e){return this.throwIfDisposed(),xv(this,e)};Q().prototype.div=function(e){return this.throwIfDisposed(),he(this,e)};Q().prototype.dot=function(e){return this.throwIfDisposed(),vv(this,e)};Q().prototype.elu=function(){return this.throwIfDisposed(),Lu(this)};Q().prototype.equal=function(e){return this.throwIfDisposed(),ea(this,e)};Q().prototype.erf=function(){return this.throwIfDisposed(),wv(this)};Q().prototype.euclideanNorm=function(e,t){return this.throwIfDisposed(),Sv(this,e,t)};Q().prototype.exp=function(){return this.throwIfDisposed(),fn(this)};Q().prototype.expandDims=function(e){return this.throwIfDisposed(),Zt(this,e)};Q().prototype.expm1=function(){return this.throwIfDisposed(),Tv(this)};Q().prototype.fft=function(){return this.throwIfDisposed(),Hc(this)};Q().prototype.flatten=function(){return this.throwIfDisposed(),W(this,[this.size])};Q().prototype.floor=function(){return this.throwIfDisposed(),Wu(this)};Q().prototype.floorDiv=function(e){return this.throwIfDisposed(),Hm(this,e)};Q().prototype.gather=function(e,t){return this.throwIfDisposed(),Bu(this,e,t)};Q().prototype.greaterEqual=function(e){return this.throwIfDisposed(),Fr(this,e)};Q().prototype.greater=function(e){return this.throwIfDisposed(),Cn(this,e)};Q().prototype.ifft=function(){return this.throwIfDisposed(),wl(this)};Q().prototype.irfft=function(){return this.throwIfDisposed(),hf(this)};Q().prototype.isFinite=function(){return this.throwIfDisposed(),Nv(this)};Q().prototype.isInf=function(){return this.throwIfDisposed(),Cv(this)};Q().prototype.isNaN=function(){return this.throwIfDisposed(),_v(this)};Q().prototype.leakyRelu=function(e){return this.throwIfDisposed(),Lc(this,e)};Q().prototype.lessEqual=function(e){return this.throwIfDisposed(),Ss(this,e)};Q().prototype.less=function(e){return this.throwIfDisposed(),Jm(this,e)};Q().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),Ev(this,e,t,n,a)};Q().prototype.logSigmoid=function(){return this.throwIfDisposed(),$v(this)};Q().prototype.logSoftmax=function(e){return this.throwIfDisposed(),ef(this,e)};Q().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),tf(this,e,t)};Q().prototype.log=function(){return this.throwIfDisposed(),ta(this)};Q().prototype.log1p=function(){return this.throwIfDisposed(),zc(this)};Q().prototype.logicalAnd=function(e){return this.throwIfDisposed(),Aa(this,e)};Q().prototype.logicalNot=function(){return this.throwIfDisposed(),Wc(this)};Q().prototype.logicalOr=function(e){return this.throwIfDisposed(),nf(this,e)};Q().prototype.logicalXor=function(e){return this.throwIfDisposed(),Av(this,e)};Q().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),Fe(this,e,t,n)};Q().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),Dt(this,e,t,n,a)};Q().prototype.max=function(e,t){return this.throwIfDisposed(),ma(this,e,t)};Q().prototype.maximum=function(e){return this.throwIfDisposed(),dr(this,e)};Q().prototype.mean=function(e,t){return this.throwIfDisposed(),Nt(this,e,t)};Q().prototype.min=function(e,t){return this.throwIfDisposed(),bl(this,e,t)};Q().prototype.minimum=function(e){return this.throwIfDisposed(),Vu(this,e)};Q().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),Dv(this,e,t)};Q().prototype.mod=function(e){return this.throwIfDisposed(),Rv(this,e)};Q().prototype.mul=function(e){return this.throwIfDisposed(),z(this,e)};Q().prototype.neg=function(){return this.throwIfDisposed(),vt(this)};Q().prototype.norm=function(e,t,n){return this.throwIfDisposed(),zu(this,e,t,n)};Q().prototype.notEqual=function(e){return this.throwIfDisposed(),oi(this,e)};Q().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),gl(this,e,t,n)};Q().prototype.onesLike=function(){return this.throwIfDisposed(),na(this)};Q().prototype.pad=function(e,t){return this.throwIfDisposed(),ba(this,e,t)};Q().prototype.pool=function(e,t,n,a,r,s){return this.throwIfDisposed(),Mv(this,e,t,n,a,r,s)};Q().prototype.pow=function(e){return this.throwIfDisposed(),Ar(this,e)};Q().prototype.prelu=function(e){return this.throwIfDisposed(),Uc(this,e)};Q().prototype.prod=function(e,t){return this.throwIfDisposed(),Pv(this,e,t)};Q().prototype.reciprocal=function(){return this.throwIfDisposed(),zv(this)};Q().prototype.relu=function(){return this.throwIfDisposed(),Xe(this)};Q().prototype.relu6=function(){return this.throwIfDisposed(),sf(this)};Q().prototype.reshapeAs=function(e){return this.throwIfDisposed(),W(this,e.shape)};Q().prototype.reshape=function(e){return this.throwIfDisposed(),W(this,e)};Q().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),qT(this,e,t,n)};Q().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),KT(this,e,t,n)};Q().prototype.reverse=function(e){return this.throwIfDisposed(),ga(this,e)};Q().prototype.rfft=function(){return this.throwIfDisposed(),jc(this)};Q().prototype.round=function(){return this.throwIfDisposed(),of(this)};Q().prototype.rsqrt=function(){return this.throwIfDisposed(),lf(this)};Q().prototype.selu=function(){return this.throwIfDisposed(),uf(this)};Q().prototype.separableConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Ts(this,e,t,n,a,r,s)};Q().prototype.sigmoid=function(){return this.throwIfDisposed(),ha(this)};Q().prototype.sign=function(){return this.throwIfDisposed(),Wv(this)};Q().prototype.sin=function(){return this.throwIfDisposed(),pf(this)};Q().prototype.sinh=function(){return this.throwIfDisposed(),cf(this)};Q().prototype.slice=function(e,t){return this.throwIfDisposed(),Be(this,e,t)};Q().prototype.softmax=function(e){return this.throwIfDisposed(),Ka(this,e)};Q().prototype.softplus=function(){return this.throwIfDisposed(),mo(this)};Q().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),Vc(this,e,t)};Q().prototype.split=function(e,t){return this.throwIfDisposed(),zn(this,e,t)};Q().prototype.sqrt=function(){return this.throwIfDisposed(),un(this)};Q().prototype.square=function(){return this.throwIfDisposed(),lt(this)};Q().prototype.squaredDifference=function(e){return this.throwIfDisposed(),mf(this,e)};Q().prototype.squeeze=function(e){return this.throwIfDisposed(),Ns(this,e)};Q().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof Te?[this,e]:[this,...e];return Ft(n,t)};Q().prototype.step=function(e){return this.throwIfDisposed(),go(this,e)};Q().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),Bv(this,e,t,n,a,r,s,i,o)};Q().prototype.sub=function(e){return this.throwIfDisposed(),pe(this,e)};Q().prototype.sum=function(e,t){return this.throwIfDisposed(),fe(this,e,t)};Q().prototype.tan=function(){return this.throwIfDisposed(),Vv(this)};Q().prototype.tanh=function(){return this.throwIfDisposed(),si(this)};Q().prototype.tile=function(e){return this.throwIfDisposed(),Ln(this,e)};Q().prototype.toBool=function(){return this.throwIfDisposed(),le(this,"bool")};Q().prototype.toFloat=function(){return this.throwIfDisposed(),le(this,"float32")};Q().prototype.toInt=function(){return this.throwIfDisposed(),le(this,"int32")};Q().prototype.topk=function(e,t){return this.throwIfDisposed(),Uv(this,e,t)};Q().prototype.transpose=function(e){return this.throwIfDisposed(),Ee(this,e)};Q().prototype.unique=function(e){return this.throwIfDisposed(),Gv(this,e)};Q().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),gf(this,e,t)};Q().prototype.unstack=function(e){return this.throwIfDisposed(),ct(this,e)};Q().prototype.where=function(e,t){return this.throwIfDisposed(),mn(e,this,t)};Q().prototype.zerosLike=function(){return this.throwIfDisposed(),qe(this)};var Ir=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Ir.prototype)}},Wa=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Wa.prototype)}},V=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,V.prototype)}},Me=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Me.prototype)}},sN=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,sN.prototype)}},iN=class{constructor(e){this.maxEntries=e||100,this.cache=new Map}get(e){let t;return this.cache.has(e)&&(t=this.cache.get(e),this.cache.delete(e),this.cache.set(e,t)),t}put(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxEntries){let n=this.cache.keys().next().value;this.cache.delete(n)}this.cache.set(e,t)}getMaxEntries(){return this.maxEntries}setMaxEntries(e){if(e<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${e}.`);if(this.maxEntries>e)for(let t=0;tn.toUpperCase())}var Sa={};function ew(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function Ub(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>Ub(t));else{let t=Object.keys(e);for(let n of t){let a=e[n];a!=null&&typeof a=="object"&&(!Array.isArray(a)&&a.type==="ndarray"&&typeof a.value=="number"?e[n]=a.value:Ub(a))}}}function Kc(e,t={},n={},a="object",r=!1){if(typeof e=="string"){let s=e,i;if(s in n)i=n[s];else if(s in Sa)i=Sa[s];else if(i=t[s],i==null)throw new V(`Unknown ${a}: ${e}. This may be due to one of the following reasons: 1. The ${a} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. 2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return i}else{let s=e;if(s.className==null||s.config==null)throw new V(`${a}: Improper config format: ${JSON.stringify(s)}. 'className' and 'config' must set.`);let i=s.className,o,l;if(i in n?[o,l]=n[i]:i in Sa?[o,l]=Sa.className:i in t&&([o,l]=t[i]),o==null)throw new V(`Unknown ${a}: ${i}. This may be due to one of the following reasons: 1. The ${a} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. -2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(l!=null){let u={};for(let h of Object.keys(Sa))u[h]=Sa[h];for(let h of Object.keys(n))u[h]=n[h];let p=s.config;p.customObjects=u;let d=Object.assign({},Sa);for(let h of Object.keys(n))Sa[h]=n[h];Ub(s.config);let c=l(o,s.config,n,r);return Sa=Object.assign({},d),c}else{let u=Object.assign({},Sa);for(let d of Object.keys(n))Sa[d]=n[d];let p=new o(s.config);return Sa=Object.assign({},u),p}}}function B4(e,t){return et?1:0}function oh(e,t){return-1*B4(e,t)}function as(e){if(e==null)return e;let t=[];for(let n of e)t.indexOf(n)===-1&&t.push(n);return t}function V4(e){if(e==null)throw new V(`Invalid value in obj: ${JSON.stringify(e)}`);for(let t in e)if(e.hasOwnProperty(t))return!1;return!0}function yo(e,t,n){if(n!=null&&e.indexOf(n)<0)throw new V(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function tw(e,t,n=0,a=1/0){return ar(n>=0),ar(a>=n),Array.isArray(e)&&e.length>=n&&e.length<=a&&e.every(r=>typeof r===t)}function Qt(e,t){Array.isArray(e)?(v.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>Qt(n,`element ${a+1} of ${t}`))):v.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${oN(e)}.`)}function oN(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>oN(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function U4(e,t,n){let a=n!=null?n():v.now(),r;return(...s)=>{let i=n!=null?n():v.now();return i-a0){let n=`${e}_${t}`;return al.set(n,1),n}else return e}var J4=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function hN(e){return!!e.match(J4)}function Q4(e){return e===parseInt(e.toString(),10)}function rs(e,t,n){t==null&&(t=0),n==null&&(n=e.length);let a=1;for(let r=t;rt&&(t=a)}return t}function Ha(e,t){if(t{if(e.shape.length!==2)throw new V(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);let n=Xc(e,1);return Gb(n,[1,t,1])})}function tV(e){let t=[rs(e.shape)];return W(e,t)}function nV(e){if(e.rank<=1)throw new V(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);let t=[e.shape[0],rs(e.shape,1)];return W(e,t)}function Zs(e,t,n){return P(()=>{switch(e.rank){case 1:return Gc(e,t,n);case 2:return df(e,[t,0],[n,e.shape[1]]);case 3:return fo(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return vl(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return Be(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return Be(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 V(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}})}function xb(e,t,n){return P(()=>{switch(e.rank){case 1:return Gc(e,t,n);case 2:return df(e,[0,t],[e.shape[0],n]);case 3:return fo(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return vl(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new V(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function uh(e,t,n,a){return P(()=>{switch(e.rank){case 1:return Gc(e,t,n);case 2:switch(a){case 1:return Zs(e,t,n);case 2:return xb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}case 3:switch(a){case 1:return Zs(e,t,n);case 2:return fo(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return xb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}case 4:switch(a){case 1:return Zs(e,t,n);case 2:return vl(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return vl(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return xb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}default:throw new V(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function nw(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),Ze(e,t)}function Ak(e,t){switch(e.rank){case 1:return pv([e,t]);case 2:return cv([e,t],0);case 3:return dv([e,t],0);case 4:return hv([e,t],0);default:throw new V(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Gb(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new V(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return Ln(e,t)}function Ef(e,t=0,n=1,a,r){return rf(e,t,n,a,r)}function or(e,t,n,a){if(e.rank<2||t.rank<2)throw new Me(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3){let r=e.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(r!==s)throw new Me(`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(e.rank===2&&t.rank===2)return kl.matMul({a:e,b:t,transposeA:!1,transposeB:!1,bias:a?Hb(e.rank,a,ja()):null,activation:n});{let r=e.shape.slice(),s=r.pop();e=W(e,[-1,s]);let i=t.shape.slice(),o=i.pop(),l=i.pop(),u=[...i,o],p=Array.from({length:t.rank},(m,f)=>f===0?t.rank-2:f<=t.rank-2?f-1:f);t=W(Ee(t,p),[l,-1]);let d=[...r,...u],c=!1,h=!1;return W(kl.matMul({a:e,b:t,transposeA:c,transposeB:h,bias:a?Hb(e.rank,a,ja()):null,activation:n}),d)}}function mN(e,t,n){return P(()=>(Array.isArray(t)?t=Ke(t,"int32"):t=oe(t,"int32"),Bu(e,t,n)))}function Yc(e){return z(e,e)}function Hb(e,t,n){let a=t.shape;if(t.rank!==1&&t.rank!==e)throw new V(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(e===5){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1,1,1]):W(t,[1,a[3],a[0],a[1],a[2]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,1,1,a[0]]):W(t,[1].concat(a))}else if(e===4){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1,1]):W(t,[1,a[2],a[0],a[1]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,1,a[0]]):W(t,[1].concat(a))}else if(e===3){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1]):W(t,[1,a[1],a[0]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,a[0]]):W(t,[1].concat(a))}else if(e<3)return t;throw new V(`Unsupported input rank by biasAdd: ${t.rank}`)}function Xa(e,t,n){return P(()=>(n==null&&(n=ja()),Rt(n),Y(e,Hb(e.rank,t,n))))}function aV(e,t=1){if(t!==1)throw new Me(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Lu(e)}function rV(e){return P(()=>he(e,Y(Lt(e),1)))}function fN(e,t,n,a){return P(()=>qv(e,t,n,a))}function sV(e){return P(()=>{let t=Y(.5,z(.2,e));return en(t,0,1)})}function Zc(e,t,n=!1){return n?e():t()}var iV=["fanIn","fanOut","fanAvg"],oV=["normal","uniform","truncatedNormal"];function lV(e){yo(iV,"FanMode",e)}function uV(e){yo(oV,"Distribution",e)}var Ra=class extends ne.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},aw=class extends Ra{apply(e,t){return It(e,t)}};aw.className="Zeros";ne.registerClass(aw);var Af=class extends Ra{apply(e,t){return Jn(e,t)}};Af.className="Ones";ne.registerClass(Af);var rw=class extends Ra{constructor(e){if(super(),typeof e!="object")throw new V(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new V(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return P(()=>z(be(this.value),Jn(e,t)))}getConfig(){return{value:this.value}}};rw.className="Constant";ne.registerClass(rw);var sw=class extends Ra{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 Uu(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};sw.className="RandomUniform";ne.registerClass(sw);var iw=class extends Ra{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(t=t||"float32",t!=="float32"&&t!=="int32")throw new Me(`randomNormal does not support dType ${t}.`);return Ef(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};iw.className="RandomNormal";ne.registerClass(iw);var ow=class extends Ra{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(t=t||"float32",t!=="float32"&&t!=="int32")throw new Me(`truncatedNormal does not support dType ${t}.`);return ff(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};ow.className="TruncatedNormal";ne.registerClass(ow);var lw=class extends Ra{constructor(e){super(),this.gain=e.gain!=null?e.gain:1}apply(e,t){return P(()=>{if(e.length!==2||e[0]!==e[1])throw new V("Identity matrix initializer can only be used for 2D square matrices.");return z(this.gain,Zm(e[0]))})}getConfig(){return{gain:this.gain}}};lw.className="Identity";ne.registerClass(lw);function pV(e,t="channelsLast"){let n,a;if(Rt(t),e.length===2)n=e[0],a=e[1];else if([3,4,5].indexOf(e.length)!==-1){if(t==="channelsFirst"){let r=rs(e,2);n=e[1]*r,a=e[0]*r}else if(t==="channelsLast"){let r=rs(e,0,e.length-2);n=e[e.length-2]*r,a=e[e.length-1]*r}}else{let r=rs(e);n=Math.sqrt(r),a=Math.sqrt(r)}return[n,a]}var Bn=class extends Ra{constructor(e){if(super(),e.scale<0)throw new V(`scale must be a positive float. Got: ${e.scale}`);this.scale=e.scale==null?1:e.scale,this.mode=e.mode==null?"fanIn":e.mode,lV(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,uV(this.distribution),this.seed=e.seed}apply(e,t){let n=pV(e),a=n[0],r=n[1],s=this.scale;if(this.mode==="fanIn"?s/=Math.max(1,a):this.mode==="fanOut"?s/=Math.max(1,r):s/=Math.max(1,(a+r)/2),this.distribution==="normal"){let i=Math.sqrt(s);if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Me(`${this.getClassName()} does not support dType ${t}.`);return ff(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return Uu(e,-i,i,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Bn.className="VarianceScaling";ne.registerClass(Bn);var $f=class extends Bn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};$f.className="GlorotUniform";ne.registerClass($f);var Ff=class extends Bn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Ff.className="GlorotNormal";ne.registerClass(Ff);var Df=class extends Bn{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Df.className="HeNormal";ne.registerClass(Df);var Rf=class extends Bn{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Rf.className="HeUniform";ne.registerClass(Rf);var Mf=class extends Bn{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Mf.className="LeCunNormal";ne.registerClass(Mf);var Pf=class extends Bn{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Pf.className="LeCunNormal";ne.registerClass(Pf);var uw=class extends Ra{constructor(e){if(super(),this.DEFAULT_GAIN=1,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,this.seed!=null)throw new Me("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return P(()=>{if(e.length<2)throw new Me("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.`);let n=e[0]>e[1]?[e[1],e[0]]:e,a=Ef(n,0,1,"float32"),r=Zv.gramSchmidt(a);return e[0]>e[1]&&(r=Ee(r)),z(this.gain,r)})}getConfig(){return{gain:this.gain,seed:this.seed}}};uw.className="Orthogonal";ne.registerClass(uw);var $k={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 Fk(e,t={}){return Kc(e,ne.SerializationMap.getMap().classNameMap,t,"initializer")}function Ct(e){return ew(e)}function St(e){if(typeof e=="string"){let t=e in $k?$k[e]:e;if(t==="GlorotNormal")return new Ff;if(t==="GlorotUniform")return new $f;if(t==="HeNormal")return new Df;if(t==="HeUniform")return new Rf;if(t==="LeCunNormal")return new Mf;if(t==="LeCunUniform")return new Pf;{let n={};return n.className=t,n.config={},Fk(n)}}else return e instanceof Ra?e:Fk(e)}function jb(e){return Array.isArray(e)&&Array.isArray(e[0])}function Wh(e){return e.length===0?[]:Array.isArray(e[0])?e:[e]}function Ne(e){let t;if(Array.isArray(e)){if(e.length!==1)throw new V(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function tt(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(e.length===1)return e=e,e[0];throw new V(`Expected exactly 1 Shape; got ${e.length}`)}else return e}function Bh(e){let t=0;for(let n of e)n.shape.length===0?t+=1:t+=n.shape.reduce((a,r)=>a*r);return t}var Dk="Variable",gN=class{constructor(e,t="float32",n=Dk,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=uN(),n=n==null?Dk:n,this.originalName=cN(n),this.name=dN(this.originalName),this.trainable_=a,this.constraint=r,this.val=Hv(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),cV(this.val,e),this.val.id!==e.id&&(this.val.assign(e),this.constraint!=null&&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 cV(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function qb(e){return e.map(t=>t.read())}function pw(e){e.forEach(t=>{t[0].write(t[1])})}var zt=class{constructor(e){this.dtype=e.dtype,this.shape=e.shape,e.shape!=null?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}},Ba=class{constructor(e,t,n,a,r,s,i){this.dtype=e,this.shape=t,this.sourceLayer=n,this.inputs=a,this.callArgs=r,this.outputTensorIndex=i,this.id=uN(),s!=null&&(this.originalName=cN(s),this.name=dN(this.originalName)),this.rank=t.length}},dV=0,Of=class{constructor(e,t){this.callArgs=t,this.id=dV++,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(let n of e.inboundLayers)n!=null&&n.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){let e=[];for(let t of this.inboundLayers)t!=null?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},hV=0,Ge=class extends ne.Serializable{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=hV++,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){let n=this.getClassName();t=Sr(n)+"_"+_f(n)}if(this.name=t,this.trainable_=e.trainable==null?!0:e.trainable,e.inputShape!=null||e.batchInputShape!=null){let n;if(e.batchInputShape!=null)n=e.batchInputShape;else if(e.inputShape!=null){let r=null;e.batchSize!=null&&(r=e.batchSize),n=[r].concat(e.inputShape)}this.batchInputShape=n;let a=e.dtype;a==null&&(a=e.inputDType),a==null&&(a="float32"),this.dtype=a}e.weights!=null?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(this.inboundNodes.length===0)throw new Wa(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new V(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return On(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return On(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new Ir(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new Ir(`Layer ${this.name} is not connected, no input to return.`);return On(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new Ir(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Ir(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return On(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=xt(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=xt(this.inputSpec);if(e.length!==t.length)throw new V(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let n=0;nr.maxNDim)throw new V(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${r.maxNDim}, found ndim=${s}`);if(r.minNDim!=null&&s=0?i[l]:i[i.length+l];if(u!=null&&[u,null].indexOf(p)===-1)throw new V(`Input ${n} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${u} but got shape ${i}.`)}}if(r.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(e);let s=[];for(let i of xt(e))s.push(i.shape);this.build(On(s)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&r&&(this._refCount=1)}if(this.assertInputCompatibility(e),r){let s=this.call(e,t),i=xt(s),o=[];for(let l of i)n.indexOf(l)!==-1&&(l=l.clone()),o.push(l);if(s=On(o),this.activityRegularizer!=null)throw new Me("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=mV(e),i=this.computeOutputShape(s),o,l=fV(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?s[0]:s),i!=null&&i.length>0&&Array.isArray(i[0])?o=i.map((u,p)=>new Ba(l,u,this,xt(e),t,this.name,p)):o=new Ba(l,i,this,xt(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new Me("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return o}})}warnOnIncompatibleInputShape(e){if(this.batchInputShape!=null)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,a)=>{n!=null&&e[a]!=null&&e[a]!==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(this.inboundNodes==null||this.inboundNodes.length===0)throw new Ir(`The layer ${this.name} has never been called and thus has no defined output shape.`);let e=[];for(let t of this.inboundNodes){let n=JSON.stringify(t.outputShapes);e.indexOf(n)===-1&&e.push(n)}if(e.length===1){let t=this.inboundNodes[0].outputShapes;return Array.isArray(t)&&Array.isArray(t[0])&&t.length===1?t[0]:t}else throw new Ir(`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 Wa(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Bh(this.weights)}build(e){this.built=!0}getWeights(e=!1){return qb(e?this.trainableWeights:this.weights)}setWeights(e){P(()=>{let t=this.weights;if(t.length!==e.length)throw new V(`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(t.length===0)return;let n=[],a=qb(t);for(let r=0;rr.apply(u.read())),s==null&&(s=!0),s?this._trainableWeights.push(u):this._nonTrainableWeights.push(u),u}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){e==null||Array.isArray(e)&&e.length===0||(e=xt(e),this._losses!==void 0&&this._losses!==null&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(t!=null)if(Array.isArray(t))t.forEach(n=>{if(n!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return t}addInboundNode(e,t,n,a,r,s,i=null){let o=xt(e);t=xt(t),n=xt(n),a=xt(a),r=Wh(r),s=Wh(s);let l=[],u=[],p=[];for(let d of o)l.push(d.sourceLayer),u.push(d.nodeIndex),p.push(d.tensorIndex);new Of({outboundLayer:this,inboundLayers:l,nodeIndices:u,tensorIndices:p,inputTensors:o,outputTensors:t,inputMasks:n,outputMasks:a,inputShapes:r,outputShapes:s},i);for(let d=0;de.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)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(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return--this._refCount===0&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}};function mV(e){e=xt(e);let t=[];for(let n of e)t.push(n.shape);return On(t)}function fV(e){return"float32"}function yN(e,t,n){if((t==null||n!=null&&n>0)&&(t=e.sourceLayer,n=e.nodeIndex),t.inboundNodes.length===0)return[e];{let a=t.inboundNodes[n];if(a.inboundLayers.length===0)return a.inputTensors;{let r=[];for(let s=0;sm.name),l=[],u=t.names();for(let m of o)u.indexOf(m)!==-1?l.push(t.getValue(m)):l.push(null);a!=null&&(a.maxNumTensors=-1/0,a.minNumTensors=1/0);let p=o.join(",")+"|"+t.names().sort().join(","),d=Vh.get(p),c;if(d==null){let m=bV(i,t);d=m.sorted,c=m.recipientCounts,Vh.put(p,d),Uh.put(p,c)}c={},r||Object.assign(c,Uh.get(p));let h=new js(t);for(let m=0;ma.maxNumTensors&&(a.maxNumTensors=A),A0,()=>"Expected at least one fetch, got none");let n=[],a={};if(e.length===1){let r=Rk(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=Rk(s,t);for(let l of i)r.has(l.name)||(n.push(l),r.add(l.name));for(let l in o)a[l]==null&&(a[l]=new Set),o[l].forEach(u=>a[l].add(u))}}return{sorted:n,recipientCounts:xV(a)}}function xV(e){let t={};for(let n in e)t[n]=e[n].size;return t}function Rk(e,t){let n=new Set,a=[],r={};for(let o of t.names())n.add(o);let s=[],i=[];for(s.push(e);s.length>0;){let o=s[s.length-1];if(n.has(o.name)){s.pop();continue}let l=i[i.length-1]===s.length-1;if(o.inputs.length===0||l)s.pop(),a.push(o),n.add(o.name),l&&i.pop();else{i.push(s.length-1);for(let u of o.inputs)r[u.name]==null&&(r[u.name]=new Set),r[u.name].add(o.name),!n.has(u.name)&&s.push(u)}}return{sorted:a,recipientMap:r}}function vV(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;a100,yV);var xN={};Ae(xN,{maxNorm:()=>kV,minMaxNorm:()=>TV,nonNeg:()=>SV,unitNorm:()=>IV});function cw(e,t){return P(()=>un(fe(z(e,e),t,!0)))}var Jc=class extends ne.Serializable{getConfig(){return{}}},dw=class extends Jc{constructor(e){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>{let t=cw(e,this.axis),n=en(t,0,this.maxValue);return z(e,he(n,Y(Gt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};dw.className="MaxNorm";ne.registerClass(dw);var hw=class extends Jc{constructor(e){super(),this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>he(e,Y(Gt(),cw(e,this.axis))))}getConfig(){return{axis:this.axis}}};hw.className="UnitNorm";ne.registerClass(hw);var mw=class extends Jc{apply(e){return Xe(e)}};mw.className="NonNeg";ne.registerClass(mw);var fw=class extends Jc{constructor(e){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>{let t=cw(e,this.axis),n=Y(z(this.rate,en(t,this.minValue,this.maxValue)),z(1-this.rate,t));return z(e,he(n,Y(Gt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};fw.className="MinMaxNorm";ne.registerClass(fw);var Mk={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function qt(e){return ew(e)}function Pk(e,t={}){return Kc(e,ne.SerializationMap.getMap().classNameMap,t,"constraint")}function Kt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in Mk?Mk[e]:e,config:{}};return Pk(t)}else return e instanceof Jc?e:Pk(e)}function kV(e){return new dw(e)}function IV(e){return new hw(e)}function SV(){return new mw}function TV(e){return new fw(e)}var vN={};Ae(vN,{constant:()=>_V,glorotNormal:()=>MV,glorotUniform:()=>RV,heNormal:()=>PV,heUniform:()=>OV,identity:()=>FV,leCunNormal:()=>LV,leCunUniform:()=>zV,ones:()=>CV,orthogonal:()=>WV,randomNormal:()=>AV,randomUniform:()=>EV,truncatedNormal:()=>$V,varianceScaling:()=>DV,zeros:()=>NV});function NV(){return new aw}function CV(){return new Af}function _V(e){return new rw(e)}function EV(e){return new sw(e)}function AV(e){return new iw(e)}function $V(e){return new ow(e)}function FV(e){return new lw(e)}function DV(e){return new Bn(e)}function RV(e){return new $f(e)}function MV(e){return new Ff(e)}function PV(e){return new Df(e)}function OV(e){return new Rf(e)}function LV(e){return new Mf(e)}function zV(e){return new Pf(e)}function WV(e){return new uw(e)}var wN={};Ae(wN,{Layer:()=>Ge,RNN:()=>mr,RNNCell:()=>ad,activation:()=>hG,add:()=>kG,alphaDropout:()=>sH,average:()=>IG,averagePooling1d:()=>T0,averagePooling2d:()=>N0,averagePooling3d:()=>C0,avgPool1d:()=>FG,avgPool2d:()=>RG,avgPool3d:()=>PG,avgPooling1d:()=>DG,avgPooling2d:()=>MG,avgPooling3d:()=>OG,batchNormalization:()=>EG,bidirectional:()=>ZG,categoryEncoding:()=>uH,concatenate:()=>SG,conv1d:()=>rG,conv2d:()=>sG,conv2dTranspose:()=>iG,conv3d:()=>oG,conv3dTranspose:()=>lG,convLstm2d:()=>qG,convLstm2dCell:()=>KG,cropping2D:()=>pG,dense:()=>mG,depthwiseConv2d:()=>dG,dot:()=>_G,dropout:()=>fG,elu:()=>JU,embedding:()=>wG,flatten:()=>yG,gaussianDropout:()=>rH,gaussianNoise:()=>aH,globalAveragePooling1d:()=>LG,globalAveragePooling2d:()=>zG,globalMaxPool1d:()=>QG,globalMaxPool2d:()=>eH,globalMaxPooling1d:()=>d2,globalMaxPooling2d:()=>h2,gru:()=>BG,gruCell:()=>VG,input:()=>zN,inputLayer:()=>ZU,layerNormalization:()=>AG,leakyReLU:()=>eG,lstm:()=>UG,lstmCell:()=>GG,masking:()=>iH,maxPool1d:()=>tH,maxPool2d:()=>nH,maxPooling1d:()=>m2,maxPooling2d:()=>f2,maxPooling3d:()=>WG,maximum:()=>TG,minimum:()=>NG,multiply:()=>CG,permute:()=>vG,prelu:()=>tG,reLU:()=>QU,repeatVector:()=>bG,rescaling:()=>oH,reshape:()=>xG,resizing:()=>lH,rnn:()=>XG,separableConv2d:()=>uG,simpleRNN:()=>HG,simpleRNNCell:()=>jG,softmax:()=>nG,spatialDropout1d:()=>gG,stackedRNNCells:()=>YG,thresholdedReLU:()=>aG,timeDistributed:()=>JG,upSampling2d:()=>cG,zeroPadding2d:()=>$G});async function Zr(e){if(e==null)return;let t=[],n=[],a=[];for(let r in e){let s=e[r];if(typeof s!="number"){let i=s;t.push(i.data()),n.push(r),a.push(i)}}if(t.length>0){let r=await Promise.all(t);for(let s=0;sY(this.totals[a],z(r,n)));this.totals[a]=i,s!=null&&s.dispose()}}}async onEpochEnd(e,t){if(t!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]=="number"?t[n]=this.totals[n]/this.seen:P(()=>{let a=z(he(1,this.seen),this.totals[n]);t[n]=a,this.totals[n].dispose(),Jt(t[n])}))}},SN=class extends Sl{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){t==null&&(t={}),this.epoch.push(e);for(let n in t)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(t[n])}async syncData(){let e=[],t=[],n=[];for(let r in this.history){let s=this.history[r];for(let i=0;inew TN(n,t))}var Ca=class{constructor(){}static registerCallbackConstructor(e,t){v.assert(e>=0&&Number.isInteger(e),()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`),Ca.checkForDuplicate(t),Ca.constructors[e]==null&&(Ca.constructors[e]=[]),Ca.constructors[e].push(t)}static checkForDuplicate(e){for(let t in Ca.constructors)Ca.constructors[+t].forEach(n=>{if(n===e)throw new V("Duplicate callback constructor.")})}static clear(){Ca.constructors={}}static createCallbacks(e){let t=[];for(let n in Ca.constructors){let a=+n;e>=a&&t.push(...Ca.constructors[a])}return t.map(n=>new n)}};Ca.constructors={};function CN(e,t,n,a,r,s,i,o,l){let u=new SN,p=[new VV,...Ca.createCallbacks(t)];e!=null&&p.push(...e),p.push(u);let d=new IN(p);return d.setParams({epochs:n,initialEpoch:a,samples:r,steps:s,batchSize:i,verbose:t,doValidation:o,metrics:l}),{callbackList:d,history:u}}function Ua(e,t={},n=!1){return Kc(e,ne.SerializationMap.getMap().classNameMap,t,"layer",n)}function Gh(e,t){return P(()=>{e.dtype!=="float32"&&(e=oe(e,"float32"));let n=fe(Yc(e),t,!0),a=gn(n.shape,Gt()),r=un(dr(n,a));return he(e,r)})}function xo(e,t){return P(()=>Nt(Yc(pe(t,e)),-1))}function Lf(e,t){return P(()=>Nt(Lt(pe(t,e)),-1))}function ju(e,t){return P(()=>{let n=pe(e,t),a=en(Lt(e),Gt(),Number.MAX_VALUE),r=Lt(he(n,a));return z(100,Nt(r,-1))})}function UV(e,t){return P(()=>{let n=en(t,Gt(),Number.MAX_VALUE),a=ta(Y(1,n)),r=en(e,Gt(),Number.MAX_VALUE),s=ta(Y(1,r));return Nt(Yc(pe(a,s)),-1)})}function GV(e,t){return P(()=>{let n=dr(0,pe(1,z(e,t)));return Nt(Yc(n),-1)})}function HV(e,t){return P(()=>{let n=dr(0,pe(1,z(e,t)));return Nt(n,-1)})}function jV(e,t){return P(()=>{let n=fe(z(e,t),-1),a=ma(z(pe(1,e),t),-1);return dr(0,Y(1,pe(a,n)))})}function qV(e,t){return P(()=>{let n=Math.log(2),a=pe(t,e),r=pe(Y(a,mo(z(-2,a))),n);return Nt(r,-1)})}function tc(e,t,n=!1){return P(()=>{if(n)t=Ka(t);else{let a=fe(t,t.shape.length-1,!0);t=he(t,a)}return t=en(t,Gt(),1-Gt()),vt(fe(z(oe(e,"float32"),ta(t)),t.shape.length-1))})}function Hh(e,t,n=!1){return P(()=>{let a=oe(Wu(tV(e)),"int32");t=en(t,Gt(),1-Gt());let r=t.shape,s=W(gl(a,r[r.length-1]),r);return tc(s,t,n)})}function KV(e,t){if(!v.arraysEqual(e.shape,t.shape))throw new V(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return P(()=>{let n=Xe(t),a=vt(Lt(t));return Y(pe(n,z(t,e)),zc(fn(a)))})}function zf(e,t){return P(()=>{let n;return n=en(t,Gt(),1-Gt()),n=ta(he(n,pe(1,n))),Nt(KV(e,n),-1)})}function XV(e,t){return P(()=>{let n=en(e,Gt(),1),a=en(t,Gt(),1);return fe(z(e,ta(he(n,a))),-1)})}function YV(e,t){return P(()=>{let n=ta(Y(Gt(),t));return Nt(pe(t,z(e,n)),-1)})}function gw(e,t){return P(()=>{let n=Gh(e,-1),a=Gh(t,-1),r=z(n,a);return vt(fe(r,-1))})}var jh={meanSquaredError:xo,meanAbsoluteError:Lf,meanAbsolutePercentageError:ju,meanSquaredLogarithmicError:UV,squaredHinge:GV,hinge:HV,categoricalHinge:jV,logcosh:qV,categoricalCrossentropy:tc,sparseCategoricalCrossentropy:Hh,binaryCrossentropy:zf,kullbackLeiblerDivergence:XV,poisson:YV,cosineProximity:gw};function vb(e){if(typeof e=="string"){if(e in jh)return jh[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 V(t)}else return e}function yw(e,t){return P(()=>{let n=z(.5,na(t)),a=bo(Cn(t,n),e.dtype);return Nt(ea(e,a),-1)})}function bw(e,t){return P(()=>bo(ea(ri(e,-1),ri(t,-1)),"float32"))}function _N(e,t){return P(()=>oe(fe($a(ea(e,1),ea(t,1))),"float32"))}function ZV(e,t){return P(()=>oe(fe($a(ea(e,1),ea(t,0))),"float32"))}function JV(e,t){return P(()=>oe(fe($a(ea(e,0),ea(t,1))),"float32"))}function EN(e,t){return P(()=>{let n=_N(e,t),a=JV(e,t),r=Y(n,a);return oe(mn(Cn(r,0),he(n,r),0),"float32")})}function QV(e,t){return P(()=>{let n=_N(e,t),a=ZV(e,t),r=Y(n,a);return oe(mn(Cn(r,0),he(n,r),0),"float32")})}function AN(e,t){return zf(e,t)}function $N(e,t){return e.rank===t.rank&&(e=Ns(e,[e.rank-1])),t=ri(t,-1),t.dtype!==e.dtype&&(t=oe(t,e.dtype)),oe(ea(e,t),"float32")}var eU=xo,tU=xo,nU=Lf,aU=Lf,rU=ju,sU=ju,xw=tc,iU=gw,FN=Hh,qh={binaryAccuracy:yw,categoricalAccuracy:bw,precision:EN,categoricalCrossentropy:xw,sparseCategoricalCrossentropy:FN,mse:eU,MSE:tU,mae:nU,MAE:aU,mape:rU,MAPE:sU,cosine:iU};function oU(e){if(typeof e=="string"&&e in qh)return qh[e];if(typeof e!="string"&&e!=null)return e;throw new V(`Unknown metric ${e}`)}function ph(e){if(ar(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys(jh))if(jh[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys(qh))if(qh[n]===e){t=n;break}return t!==void 0?t:e.name}}function lU(e){let t={Adagrad:()=>Ws.adagrad(.01),Adadelta:()=>Ws.adadelta(1,.95,Gt()),Adam:()=>Ws.adam(.001,.9,.999,Gt()),Adamax:()=>Ws.adamax(.002,.9,.999,Gt(),0),RMSProp:()=>Ws.rmsprop(.001,.9,0,Gt()),SGD:()=>Ws.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 V(`Unknown Optimizer ${e}`)}function Lk(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!Kb(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(n){let a=JSON.stringify(e);a.length>1048576&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${a.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 Kb(e){if(e===null)return!0;if(typeof e=="object")if(Object.getPrototypeOf(e)===Object.prototype){let t=Object.keys(e);for(let n of t)if(typeof n!="string"||!Kb(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!Kb(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function uU(e,t,n,a=console.log){let r=cU(e),s=["Layer (type)","Input Shape","Output shape","Param #"];r?(t=t||90,n=n||[.32,.61,.89,1]):(t=t||115,n=n||[.24,.48,.7,.8,1]),n[n.length-1]<=1&&(n=n.map(p=>Math.floor(t*p)));let i;if(!r){s.push("Receives inputs"),i=[];for(let p in e.nodesByDepth)i.push(...e.nodesByDepth[p])}a("_".repeat(t)),Kh(s,n,a),a("=".repeat(t));let o=e.layers;for(let p=0;p1||r.length===1&&r[0].inboundLayers.length>1){t=!1;break}a.push(...r)}if(t)for(let r of e.layers){let s=!1;for(let i of r.inboundNodes)if(a.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function Kh(e,t,n=console.log){let a="";for(let r=0;r0&&(a=a.slice(0,a.length-1)+" "),a+=e[r],a=a.slice(0,t[r]),a+=" ".repeat(t[r]-a.length);n(a)}function dU(e,t,n){let a,r;try{r=e.inboundNodes.map(l=>JSON.stringify(l.inputShapes)).join(",")}catch(l){r="multiple"}try{a=JSON.stringify(e.outputShape)}catch(l){a="multiple"}let s=e.name,i=e.getClassName(),o=[`${s} (${i})`,r,a,e.countParams().toString()];Kh(o,t,n)}function hU(e,t,n,a){let r,s;try{s=e.inboundNodes.map(d=>JSON.stringify(d.inputShapes)).join(",")}catch(d){s="multiple"}try{r=JSON.stringify(e.outputShape)}catch(d){r="multiple"}let i=[];for(let d of e.inboundNodes)if(!(n!=null&&n.length>0&&n.indexOf(d)===-1))for(let c=0;cy.name)}`);as(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(y=>y.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let y of this.outputs){let b=y.sourceLayer,x=y.nodeIndex,w=y.tensorIndex;this.outputLayers.push(b),this.outputLayersNodeIndices.push(x),this.outputLayersTensorIndices.push(w)}for(let y of this.inputs){let b=y.sourceLayer,x=y.nodeIndex,w=y.tensorIndex;ar(x===0,"input layer has >1 nodes"),ar(w===0,"input layer has >1 tensors"),this.inputLayers.push(b),this.inputLayersNodeIndices.push(x),this.inputLayersTensorIndices.push(w)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let y=0;yy.shape),this.internalOutputShapes=this.outputs.map(y=>y.shape);let t={},n={},a={},r={},s={},i=[],o=(y,b,x,w,I,T)=>{(w==null||I==null||T==null)&&(w=y.sourceLayer,I=y.nodeIndex,T=y.tensorIndex);let C=w.inboundNodes[I];if(x.indexOf(C)!==-1)throw new Wa(`The tensor ${y.name} at layer "${w.name}" is part of a cycle.`);if(b.indexOf(C)!==-1)return;this.containerNodes.add(tr.nodeKey(w,I)),w.id in s||(s[w.id]=Object.keys(s).length),x.indexOf(C)===-1&&x.push(C);let E=C.inboundLayers.length;for(let A=0;A=0;)x.splice(x.indexOf(C),1);i.push(C)},l=[],u=[];for(let y of this.outputs)o(y,l,u);let p=i.slice().reverse();for(let y of p){n[y.id]=y,y.id in t||(t[y.id]=0);let b=t[y.id],x=a[y.outboundLayer.id]==null?0:a[y.outboundLayer.id];b=Math.max(b,x),a[y.outboundLayer.id]=b,r[y.outboundLayer.id]=y.outboundLayer,t[y.id]=b;for(let w=0;wparseInt(y,10)).sort(oh);this.layers=[];for(let y of h){let b=c[y];b.sort((x,w)=>{let I=s[x.id],T=s[w.id];return IT?1:0});for(let x of b)x instanceof tr&&this.internalContainerRefs.push(x),this.layers.push(x)}this.layersByDepth=c,h=Object.keys(d).map(y=>parseInt(y,10)).sort(oh);let m=this.inputs.slice(),f=[];for(let y of h)for(let b of d[y]){let x=b.outboundLayer;if(x!=null){for(let w of b.inputTensors)if(m.indexOf(w)===-1)throw new Wa(`Graph disconnected: cannot obtain value for tensor ${w} at layer "${x.name}". The following previous layers were accessed without issue: ${f}`);for(let w of b.outputTensors)m.push(w);f.push(x.name)}}this.nodesByDepth=d;let g=this.layers.map(y=>y.name);for(let y of g){let b=g.filter(x=>x===y).length;if(b!==1)throw new Wa(`The name "${y}" is used ${b} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new Of({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(y=>null),outputMasks:this.outputs.map(y=>null),inputShapes:this.inputs.map(y=>y.shape),outputShapes:this.outputs.map(y=>y.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let e={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(let t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(let 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(n=>n.trainable=e)}),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new V("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(let t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.layers)t.push(...n.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){let n={},a=0;for(let s of this.layers)for(let i of s.weights){if(n[i.originalName]!=null)throw new V(`Duplicate weight name: ${i.originalName}`);n[i.originalName]=i,a++}let r=[];for(let s in e){let i=s;if(n[s]==null){let o=s.split("/");i=o.slice(0,-2).concat([o[o.length-1]]).join("/")}if(n[i]!=null)r.push([n[i],e[s]]);else if(t)throw new V(`Provided weight data has no target variable: ${s}`);delete n[i]}if(t){let s=[];for(let i in n)s.push(i);if(s.length>0)throw new V(`${s.length} of ${a} weights are not set: ${s}`)}pw(r)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${vw}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let n=Xb(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return P(()=>{e=xt(e);let n=new js;for(let a=0;a{e=xt(e);let n;return t==null?n=li(null,e.length):n=xt(t),this.runInternalGraph(e,n)[1]})}computeOutputShape(e){let t=Wh(e);if(t.length!==this.inputLayers.length)throw new V(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let i=0;iparseInt(i,10)).sort(oh);if(a.length>1)for(let i of a){let o=this.nodesByDepth[i];for(let l of o){let u=l.outboundLayer;if(this.inputLayers.map(m=>m.id).indexOf(u.id)!==-1)continue;let p=[];for(let m=0;mparseInt(o,10)).sort(oh);for(let o of a){let l=this.nodesByDepth[o];for(let u of l){let p=u.outboundLayer,d=u.inputTensors,c=u.outputTensors,h=new Array;for(let m of d)m.id in n&&h.push(n[m.id]);if(h.length===d.length){let m={},f,g,y,b;if(u.callArgs!=null&&(m=u.callArgs),h.length===1){let[x,w]=h[0];m.mask==null&&(m.mask=w),y=xt(p.call(x,m)),b=xt(p.computeMask(x,w)),f=[x],g=[w]}else f=h.map(x=>x[0]),g=h.map(x=>x[1]),m.mask==null&&(m.mask=g),y=xt(p.call(f,m)),b=xt(p.computeMask(f,g));if(p.activityRegularizer)throw new Me("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let x=0;x{let e=[];for(let t of this.layers)for(let n=0;n0){let m=[];for(let f=0;f0&&f.apply(On(y),b)}function l(f){let g=f.name,y=Ua(f,t.customObjects!=null?t.customObjects:{});y.setFastWeightInitDuringBuild(a),r[g]=y,f.inboundNodes.forEach(b=>{if(!(b instanceof Array))throw new V(`Corrupted configuration, expected array for nodeData: ${b}`);i(y,b)})}let u=t.name,p=t.layers;for(let f of p)l(f);for(;!V4(s);)for(let f of p){let g=r[f.name];if(g.name in s){let y=s[g.name];delete s[g.name];for(let b of y)o(g,b)}}let d=[],c=[],h=t.inputLayers;for(let f of h){let g=f[0],y=f[1],b=f[2];ar(g in r);let x=r[g].inboundNodes[y].outputTensors;d.push(x[b])}let m=t.outputLayers;for(let f of m){let g=f[0],y=f[1],b=f[2];ar(g in r);let x=r[g].inboundNodes[y].outputTensors;c.push(x[b])}return new e({inputs:d,outputs:c,name:u})}get stateful(){if(this._stateful)throw new V("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(let e of this.layers)if(e.stateful)return!0;return!1}resetStates(){P(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}};function mU(e,t,n){let a=t.length;if(e==null||Array.isArray(e)&&e.length===0)return t.map(r=>null);if(a===1)return Array.isArray(e)&&e.length===1?e:typeof e=="object"&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==a)throw new Error(`Provided ${n} is an array of ${e.length} element(s), but the model has ${a} outputs. Make sure a set of weights is provided for each model output.`);return e}else if(typeof e=="object"&&Object.keys(e).length>0&&typeof e[Object.keys(e)[0]]=="object"){let r=[];return t.forEach(s=>{s in e?r.push(e[s]):r.push(null)}),r}else throw new Error(`The model has multiple (${a}) outputs, so ${n} must be either an array with ${a} elements or an object with ${t} keys. Provided ${n} not understood: ${JSON.stringify(e)}`)}function RN(e,t){return mU(e,t,"classWeight")}async function MN(e,t,n,a){if(t!=null||a!=null)throw new Error("Support sampleWeight is not implemented yet");if(n!=null){let r=P(()=>{if(e.shape.length===1)return ir(e);if(e.shape.length===2){if(e.shape[1]>1)return ri(e,1);if(e.shape[1]===1)return W(e,[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.`)}else 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.`)}),s=Array.from(await r.data());_e(r);let i=[];return s.forEach(o=>{if(n[o]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${o} exists in the data but not in classWeight`);i.push(n[o])}),Ke(i,"float32")}else return null}function fU(e,t){return z(e,t)}var gU=32;function PN(e,t){let n,a,r=t;n=r.xs,a=r.ys,v.assert(n!=null&&a!=null,()=>`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}`);let s=zk("input",e.inputNames,n),i=zk("output",e.outputNames,a),o=s[0].shape[0];v.assert(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)})`),v.assert(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 l=0;l`Batch size mismatch: input ${e.inputNames[l]} has ${s[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);for(let l=0;l`Batch size mismatch: output ${e.outputNames[l]} has ${i[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);return{xs:s,ys:i}}function zk(e,t,n){if(n instanceof Te)return[n];if(Array.isArray(n))return v.assert(n.length===t.length,()=>`Received an array of ${n.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`),n;{let a=[];for(let r of t){if(n[r]==null)throw new V(`The feature data generated by the dataset lacks the required ${e} key '${r}'.`);a.push(n[r])}return a}}function yU(e){if(e.length===3)throw new Me("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function bU(e,t,n){let a=n.batchesPerEpoch!=null;if(v.assert(e.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),v.assert(n!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),v.assert(n.epochs!=null&&n.epochs>0&&Number.isInteger(n.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${n.epochs}`),v.assert(!a||n.batchesPerEpoch>0&&Number.isInteger(n.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${n.batchesPerEpoch}`),v.assert(n.validationSplit==null,()=>"`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{let r=n.validationData!=null,s,i;if(r)if(Wk(n.validationData))v.assert(n.validationBatches==null||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{let g=yU(n.validationData);s=g.xs,i=g.ys}let o=e.makeTrainFunction(),l=e.getDedupedMetricsNames(),u;r?u=l.slice().concat(l.map(g=>"val_"+g)):u=l.slice();let p=NN(n.callbacks,n.yieldEvery),d=n.verbose==null?1:n.verbose,{callbackList:c,history:h}=CN(p,d,n.epochs,null,null,xU(t,n),null,r,u);c.setModel(e),e.history=h,await c.onTrainBegin(),e.stopTraining_=!1;let m=n.initialEpoch==null?0:n.initialEpoch,f=await t.iterator();for(;m=n.batchesPerEpoch:x.done){if(r){let w;Wk(n.validationData)?w=xt(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):w=xt(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?gU:n.validationBatchSize,verbose:0}));for(let I=0;I0)throw new Me("Verbose mode is not implemented yet.");v.assert(!a||n.batches>0&&Number.isInteger(n.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(n.batches)}`);let i=vU(t)?t:await t.iterator(),o=0,l=0;for(;!a||l{if(u.value){let{xs:p,ys:d}=PN(e,u.value),c=p.concat(d),h=P(()=>r(c));if(_e(c),l===0)for(let f=0;fY(s[f],z(m,g))),l>0&&_e(y)}_e(h),o+=m,++l}return s}),u.done){a&&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 u=0;u0&&Number.isInteger(e),()=>`batchSize is required to be a positive integer, but got ${e}`)}function Pp(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>Zs(a,t,n-t)):Zs(e,t,n-t)}function ww(e,t){return P(()=>e==null?null:Array.isArray(e)?e.map(n=>ww(n,t)):mN(e,t.dtype==="int32"?t:oe(t,"int32")))}function Zb(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}async function kU(e,t,n,a,r,s,i,o,l,u,p,d,c,h,m){r==null&&(r=32),s==null&&(s=1),p==null&&(p=!0),c==null&&(c=0);let f=!1;if(l!=null&&u!=null&&(f=!0),m!=null&&(f=!0,h==null))throw new V("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let g=e.checkNumSamples(n,r,h,"steps_per_epoch"),y;g!=null&&(y=Ha(0,g)),i==null&&(i=1);let{callbackList:b,history:x}=CN(o,i,s,c,g,h,r,f,d);b.setModel(e),e.history=x,await b.onTrainBegin(),e.stopTraining_=!1;for(let w=c;w{let R=C[E][0],F=C[E][1],S=Zs(T,R,F-R);A.batch=E,A.size=F-R;let M=ww(n,S),B=t(M);for(let U=0;U0){if(g=!0,a.validationData.length===2)l=a.validationData[0],u=a.validationData[1];else throw a.validationData.length===3?new Me("validationData including sample weights is not supported yet."):new V(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${a.validationData} is invalid.`);let E=!0,A=await e.standardizeUserData(l,u,null,null,E,h);p=A[0],d=A[1],y=p.concat(d)}else if(a.validationSplit!=null&&a.validationSplit>0&&a.validationSplit<1){g=!0;let E=Math.floor(r[0].shape[0]*(1-a.validationSplit)),A=r[0].shape[0];p=Pp(r,E,A),i=r,r=Pp(r,0,E),d=Pp(s,E,A),o=s,s=Pp(s,0,E),y=p.concat(d)}else a.validationSteps!=null&&(g=!0);let b=r.concat(s).concat(c);e.checkTrainableWeightsConsistency();let x=e.makeTrainFunction(),w=e.getDedupedMetricsNames(),I,T;g?(e.makeTestFunction(),I=e.testFunction,T=w.slice().concat(w.map(E=>"val_"+E))):(I=null,y=[],T=w.slice());let C=NN(a.callbacks,a.yieldEvery);return await kU(e,x,b,w,h,a.epochs,a.verbose,C,I,y,a.shuffle,T,a.initialEpoch,null,null)}finally{e.isTraining=!1,La(r,t),La(s,n),La(i,t),La(o,n),La(p,l),La(d,u),c!=null&&_e(c)}}function ON(e){let t=[];e instanceof Te&&(e=[e]);for(let n=0;nn.push(r.id));else if(t!=null)for(let r in t){let s=t[r];n.push(s.id)}let a=[];if(e instanceof Te)n.indexOf(e.id)===-1&&a.push(e);else if(Array.isArray(e))e.forEach(r=>{n.indexOf(r.id)===-1&&a.push(r)});else if(e!=null)for(let r in e){let s=e[r];n.indexOf(s.id)===-1&&a.push(s)}a.forEach(r=>{r.isDisposed||r.dispose()})}function SU(e){return e instanceof Te}function Jb(e){return Array.isArray(e)}function Bk(e){return!SU(e)&&!Jb(e)}function Vk(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(Jb(e)&&e.length>0)i=!0;else if(Bk(e)){for(let o in e)if(e.hasOwnProperty(o)){i=!0;break}}else i=!0;if(i)throw new V(`Error when checking model ${r} expected no data, but got ${e}`)}return[]}if(e==null)return t.map(i=>null);let s;if(Bk(e)){e=e,s=[];for(let i of t){if(e[i]==null)throw new V(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(e[i])}}else if(Jb(e)){if(e=e,e.length!==t.length)throw new V(`Error when checking model ${r}: 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 V(`The model ${r} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);s=[e]}if(s=ON(s),n!=null)for(let i=0;i=0&&u!==p)throw new V(`${r} expected a batch of elements where each example has shape [${n[i].slice(1,n[i].length)}] (i.e.,tensor shape [*,${n[i].slice(1,n[i].length)}]) but the ${r} received an input with ${o.shape[0]} examples, each with shape [${o.shape.slice(1,o.shape.length)}] (tensor shape [${o.shape}])`)}}return s}function TU(e,t,n){let a=as(e.map(s=>s.shape[0]));a.sort();let r=as(t.map(s=>s.shape[0]));if(r.sort(),a.length>1)throw new V(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map(s=>s.shape))}`);if(r.length>1)throw new V(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(s=>s.shape))}`);if(a.length>0&&r.length>0&&!v.arraysEqual(a,r))throw new V(`Input Tensors should have the same number of samples as target Tensors. Found ${a[0]} input sample(s) and ${r[0]} target sample(s).`)}function NU(e,t,n){let a=[xo,zf,tc];for(let r=0;r1)throw new V(`The model expects ${t.length} ${r} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);s=[e]}if(n!=null)for(let i=0;i[]);let n;if(typeof e=="string"||typeof e=="function")n=[e];else if(Array.isArray(e)||typeof e=="object")n=e;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);if(Array.isArray(n))return t.map(a=>n);{let a=[];for(let r of t){let s=n.hasOwnProperty(r)?n[r]:[];Array.isArray(s)||(s=[s]),a.push(s)}return a}}var _U="layers-model",Er=class extends tr{constructor(e){super(e),this.isTraining=!1}summary(e,t,n=console.log){if(!this.built)throw new V("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");uU(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=lU(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Rr))throw new V("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(!Array.isArray(e.loss)&&typeof e.loss!="string"&&typeof e.loss!="function"){e.loss=e.loss;for(let s in e.loss)if(this.outputNames.indexOf(s)===-1)throw new V(`Unknown entry in loss dictionary: "${s}". Only expected the following keys: ${this.outputNames}`);for(let s of this.outputNames)e.loss[s]==null&&console.warn(`Output "${s}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${s} during training`),t.push(vb(e.loss[s]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new V(`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}.`);t=e.loss.map(s=>vb(s))}else{let s=vb(e.loss);this.outputs.forEach(i=>{t.push(s)})}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let s=0;s{for(let s=0;s1&&(this.metricsTensors.push([i,s]),this.metricsNames.push(this.outputNames[s]+"_loss"))}});let a=CU(e.metrics,this.outputNames),r=(s,i,o)=>{this.outputNames.length>1&&(i=this.outputNames[s]+"_"+i),this.metricsNames.push(i),this.metricsTensors.push([o,s])};Ys("metric",()=>{for(let s=0;s{let l="",u,p,d;for(let c of o){if(typeof c=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(c)!==-1){let m=this.internalOutputShapes[s];m[m.length-1]===1||this.lossFunctions[s]===zf?["accuracy","acc"].indexOf(c)!==-1?p=yw:["crossentropy","ce"].indexOf(c)!==-1&&(p=AN):this.lossFunctions[s]===Hh?["accuracy","acc"].indexOf(c)!==-1?p=$N:["crossentropy","ce"].indexOf(c)!==-1&&(p=FN):["accuracy","acc"].indexOf(c)!==-1?p=bw:["crossentropy","ce"].indexOf(c)!==-1&&(p=xw);let f;["accuracy","acc"].indexOf(c)!==-1?f="acc":["crossentropy","ce"].indexOf(c)!==-1&&(f="ce"),d=p,u=l+f}else d=oU(c),u=l+ph(c);let h;Ys(u,()=>{h=d}),r(s,u,h)}})(i)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&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={}){let a=n.batchSize==null?32:n.batchSize;Yb(a);let r=!0,s=this.standardizeUserDataXY(e,t,r,a);try{let i=s[0].concat(s[1]);this.makeTestFunction();let o=this.testFunction,l=this.testLoop(o,i,a,n.verbose,n.steps);return On(l)}finally{La(s[0],e),La(s[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),wU(this,e,t)}checkNumSamples(e,t,n,a="steps"){let r;if(n!=null){if(r=null,t!=null)throw new V(`If ${a} is set, batchSize must be null or undefined.Got batchSize = ${t}`)}else if(e!=null)Array.isArray(e)?r=e[0].shape[0]:r=e.shape[0];else throw new V(`Either the input data should have a defined shape, or ${a} shoud be specified.`);return r}execute(e,t){if(Array.isArray(t)&&t.length===0)throw new V("`outputs` is an empty Array, which is not allowed.");let n=Array.isArray(t),a=n?t:[t],r=this.retrieveSymbolicTensors(a),s=new js;if(e instanceof Te&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new V(`The number of inputs provided (${e.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let o=0;oi.name);for(let i=0;i0){let a=[];throw t.forEach((r,s)=>{r==null&&a.push(e[s])}),new V(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(a)}`)}return t}predictLoop(e,t=32,n=!1){return P(()=>{let a=this.checkNumSamples(e);if(n)throw new Me("Verbose predictLoop() is not implemented yet.");let r=Zb(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],u=Pp(e,o,l),p=[];if(Array.isArray(u))for(let c=0;cs[l].push(o));return On(s.map(i=>Ze(i,0)))})}predict(e,t={}){let n=ON(e);Uk(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return Yb(a),this.predictLoop(n,a)}finally{La(n,e)}}predictOnBatch(e){Uk(e,this.inputNames,this.feedInputShapes,!0);let t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,n=!0,a){if(this.optimizer_==null)throw new Wa("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let r=[];for(let s=0;s0&&e[0].shape[0]%a!==0)throw new V(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${a}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,n,a,r=!0,s){let[i,o]=this.standardizeUserDataXY(e,t,r,s);if(n!=null)throw new Error("sample weight is not supported yet.");let l=null;if(a!=null){let u=RN(a,this.outputNames);l=[];for(let p=0;p{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new Me("Verbose mode is not implemented yet.");if(r!=null)throw new Me("steps mode in testLoop() is not implemented yet");{let o=Zb(s,n),l=Ke(Ha(0,s));for(let u=0;u1&&(r+=`_${_k(e.slice(0,n),a)}`),t.push(r)}return t}makeTrainFunction(){return e=>{let t=[],n=e.slice(0,this.inputs.length),a=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),r=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),s=[],i=()=>{let u=[];for(let h=0;h1&&h{c=Y(c,h)}),c},o=this.collectedTrainableWeights.map(u=>u.read()),l=!0;return[this.optimizer_.minimize(i,l,o)].concat(s)}}makeTestFunction(){this.testFunction=e=>P(()=>{let t=[],n,a=e.slice(0,this.inputs.length),r=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=[];for(let l=0;lSr(t))}else{let t=Object.keys(this.loss);e={};let n=this.loss;for(let a of t)if(typeof n[a]=="string")e[a]=Sr(n[a]);else throw new Error("Serialization of non-string loss is not supported.")}return e}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[Sr(ph(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>Sr(ph(e)));{let e={};for(let t in this.metrics)e[t]=Sr(ph(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(e.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(e.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(e.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let t=nc(e.optimizer_config),n=Ua(t),a;if(typeof e.loss=="string")a=Us(e.loss);else if(Array.isArray(e.loss))a=e.loss.map(s=>Us(s));else if(e.loss!=null){a={};for(let s in e.loss)a[s]=Us(e.loss[s])}let r;if(Array.isArray(e.metrics))r=e.metrics.map(s=>Us(s));else if(e.metrics!=null){r={};for(let s in e.metrics)r[s]=Us(e.metrics[s])}this.compile({loss:a,metrics:r,optimizer:n})}async save(e,t){if(typeof e=="string"){let i=Ut.getSaveHandlers(e);if(i.length===0)throw new V(`Cannot find any save handlers for URL '${e}'`);if(i.length>1)throw new V(`Found more than one (${i.length}) save handlers for URL '${e}'`);e=i[0]}if(e.save==null)throw new V("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await Ut.encodeWeights(this.getNamedWeights(t)),a=!1,r=null,s={modelTopology:this.toJSON(r,a),format:_U,generatedBy:`TensorFlow.js tfjs-layers v${vw}`,convertedBy:null};if((t==null?!1:t.includeOptimizer)&&this.optimizer!=null){s.trainingConfig=this.getTrainingConfig();let i="optimizer",{data:o,specs:l}=await Ut.encodeWeights(await this.optimizer.getWeights(),i);n.specs.push(...l),n.data=Ut.concatenateArrayBuffers([n.data,o])}return this.userDefinedMetadata!=null&&(Lk(this.userDefinedMetadata,this.name,!0),s.userDefinedMetadata=this.userDefinedMetadata),s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){Lk(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};Er.className="Model";ne.registerClass(Er);var LN=class extends Er{};LN.className="Functional";ne.registerClass(LN);async function EU(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=nc(n),r=Ua(a,t);if(e.weightsManifest!=null){let s=await Ut.loadWeights(e.weightsManifest,e.pathPrefix,r.weights.map(o=>o.originalName)),i={};for(let o of r.weights)i[o.originalName]=s[o.originalName];r.loadWeights(i),_e(s)}return r}async function AU(e,t){if(t==null&&(t={}),typeof e=="string"){let n=Ut.getLoadHandlers(e,t);if(n.length===0)n.push(Ut.browserHTTPRequest(e,t));else if(n.length>1)throw new V(`Found more than one (${n.length}) load handlers for URL '${e}'`);e=n[0]}return $U(e,void 0,t)}async function $U(e,t,n){if(n==null&&(n={}),e.load==null)throw new V("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let a=await e.load(),r=a.modelTopology;r.model_config!=null&&(r=r.model_config);let s=n.strict==null?!0:n.strict,i=a.weightData!=null&&a.weightSpecs!=null&&s,o=Ua(nc(r),t,i),l=a.trainingConfig;if(l!=null&&o.loadTrainingConfig(l),a.userDefinedMetadata!=null&&o.setUserDefinedMetadata(a.userDefinedMetadata),a.weightData!=null){if(a.weightSpecs==null)throw new V("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:u,optimizerWeights:p}=FU(a.weightData,a.weightSpecs);o.loadWeights(u,s),o.optimizer!=null&&p.length>0&&await o.optimizer.setWeights(p),_e(u),_e(p.map(d=>d.tensor))}return o}function FU(e,t){let n=Ut.decodeWeights(e,t),a={},r=[];return t.forEach(s=>{s.group==="optimizer"?r.push({name:s.name,tensor:n[s.name]}):a[s.name]=n[s.name]}),{modelWeights:a,optimizerWeights:r}}var Tl=class extends Er{constructor(e){if(super({inputs:[],outputs:[]}),e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:_f("sequential_"),e.layers!=null)for(let t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some(t=>t<0))throw new V(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){let t=e instanceof Tl||e instanceof Er,n;if(t){if(n=e,n.outputs.length!==1)throw new V("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(n.inputs.length!==1)throw new V("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(e.inboundNodes.length===0){if(e.batchInputShape==null)throw new V("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let a=bN({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(a)}if(t)this.outputs=n.outputs,this.inputs=n.inputs;else{if(e.inboundNodes.length!==1)throw new V(`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(e.inboundNodes[0].outputTensors.length!==1)throw new V("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=yN(this.outputs[0])}this.inboundNodes=[],new Of({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:li(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(a=>a.shape),outputShapes:this.outputs[0].shape})}else{let a=e.apply(this.outputs[0]);if(Array.isArray(a))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=[a],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let 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 this.model==null&&this.build(),this.model.call(e,t)}build(e){if(tt(e),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new Er({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){this.model==null&&this.build(),this.model.setWeights(e)}evaluate(e,t,n={}){if(!this.built)throw new Wa("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 Wa("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return this.model==null&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return this.model==null&&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 this.model==null?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,n={}){if(!this.built)throw new Wa("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 Wa("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={},a=!1){let r,s={};if(t instanceof Array){if(t[0].className==null||t[0].className==="Merge")throw new V("Legacy serialization format not supported yet.");r=t}else v.assert(t.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),r=t.layers,delete t.layers,s=t;let i=new e(s);if(!(i instanceof Tl))throw new Me(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(let o of r){let l=Ua(o,void 0,a);a&&l.setFastWeightInitDuringBuild(!0),i.add(l)}return i}set stopTraining(e){if(this.model==null)throw new V("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(this.model==null)throw new V("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let e=[];for(let t of this.layers){let n={};n.className=t.getClassName(),n.config=t.getConfig(),e.push(n)}return{name:this.name,layers:e}}};Tl.className="Sequential";ne.registerClass(Tl);function DU(e){return new Er(e)}function RU(e){return new Tl(e)}function zN(e){return bN(e)}function MU(e,t){Ca.registerCallbackConstructor(e,t)}var Un=class extends ne.Serializable{getConfig(){return{}}},WN=class extends Un{apply(e,t=1){return aV(e,t)}};WN.className="elu";ne.registerClass(WN);var BN=class extends Un{apply(e){return uf(e)}};BN.className="selu";ne.registerClass(BN);var VN=class extends Un{apply(e){return Xe(e)}};VN.className="relu";ne.registerClass(VN);var UN=class extends Un{apply(e){return P(()=>Vu(6,Xe(e)))}};UN.className="relu6";ne.registerClass(UN);var GN=class extends Un{apply(e){return e}};GN.className="linear";ne.registerClass(GN);var HN=class extends Un{apply(e){return ha(e)}};HN.className="sigmoid";ne.registerClass(HN);var jN=class extends Un{apply(e){return sV(e)}};jN.className="hardSigmoid";ne.registerClass(jN);var qN=class extends Un{apply(e){return mo(e)}};qN.className="softplus";ne.registerClass(qN);var KN=class extends Un{apply(e){return rV(e)}};KN.className="softsign";ne.registerClass(KN);var XN=class extends Un{apply(e){return si(e)}};XN.className="tanh";ne.registerClass(XN);var kw=class extends Un{apply(e,t=-1){return Ka(e,t)}};kw.className="softmax";ne.registerClass(kw);var YN=class extends Un{apply(e,t=-1){return ef(e,t)}};YN.className="logSoftmax";ne.registerClass(YN);var ZN=class extends Un{apply(e,t=1){return P(()=>z(ha(z(e,t)),e))}};ZN.className="swish";ne.registerClass(ZN);var JN=class extends Un{apply(e){return P(()=>z(e,si(mo(e))))}};JN.className="mish";ne.registerClass(JN);function us(e){return e.getClassName()}function wb(e,t={}){return Kc(e,ne.SerializationMap.getMap().classNameMap,t,"activation")}function ps(e){if(e==null){let t={};return t.className="linear",t.config={},wb(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},wb(t)}else return e instanceof Un?e:wb(e)}function Iw(e){if(e!=null&&typeof e!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}var QN=class extends ne.Serializable{},Qc=class extends QN{constructor(e){super(),Iw(e),this.l1=e==null||e.l1==null?.01:e.l1,this.l2=e==null||e.l2==null?.01:e.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(e){return P(()=>{let t=It([1]);return this.hasL1&&(t=Y(t,fe(z(this.l1,Lt(e))))),this.hasL2&&(t=Y(t,fe(z(this.l2,Yc(e))))),W(t,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};Qc.className="L1L2";ne.registerClass(Qc);function PU(e){return Iw(e),new Qc({l1:e!=null?e.l1:null,l2:0})}function OU(e){return Iw(e),new Qc({l2:e!=null?e.l2:null,l1:0})}var Gk={l1l2:"L1L2"};function pt(e){return ew(e)}function Hk(e,t={}){return Kc(e,ne.SerializationMap.getMap().classNameMap,t,"regularizer")}function Tt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in Gk?Gk[e]:e,config:{}};return Hk(t)}else return e instanceof QN?e:Hk(e)}var Sw=class extends Ge{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Ne(e);let n=Xe(e);return this.maxValue!=null&&(n=en(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};Sw.className="ReLU";ne.registerClass(Sw);var Tw=class extends Ge{constructor(e){super(e==null?{}:e),this.DEFAULT_ALPHA=.3,e==null&&(e={}),this.alpha=e.alpha==null?this.DEFAULT_ALPHA:e.alpha}call(e,t){let n=Ne(e);return Lc(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};Tw.className="LeakyReLU";ne.registerClass(Tw);var Nw=class extends Ge{constructor(e){if(super(e==null?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=St(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Tt(e.alphaRegularizer),this.alphaConstraint=Kt(e.alphaConstraint),e.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else if(typeof e.sharedAxes=="number")this.sharedAxes=[e.sharedAxes];else throw new V(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=tt(e);let t=e.slice(1);if(this.sharedAxes!=null)for(let a of this.sharedAxes)t[a-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let a=1;a(Rt(t),t==="channelsFirst"?Ee(e,[0,2,3,1]):e))}function e2(e,t){return P(()=>(Rt(t),t==="channelsFirst"?Ee(e,[0,2,3,4,1]):e))}function LU(e,t,n,a=1,r="valid",s,i=1){return P(()=>{if(s==null&&(s=ja()),Rt(s),e.shape.length!==3)throw new V(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(t.shape.length!==3)throw new V(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(n!=null&&n.shape.length!==1)throw new V(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s==="channelsFirst"&&(e=Ee(e,[0,2,1])),r==="causal")throw new Me("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=qm(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=Xa(o,n)),o})}function jk(e,t,n,a=[1,1],r="valid",s,i,o=null){return P(()=>{if(s==null&&(s=ja()),Rt(s),e.rank!==3&&e.rank!==4)throw new V(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(t.rank!==3&&t.rank!==4)throw new V(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=Aw(e,s);if(r==="causal")throw new Me("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=kl.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=Ee(l,[0,3,1,2])),l})}function zU(e,t,n,a=[1,1,1],r="valid",s,i){return P(()=>{if(s==null&&(s=ja()),Rt(s),e.rank!==4&&e.rank!==5)throw new V(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(t.rank!==4&&t.rank!==5)throw new V(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=e2(e,s);if(r==="causal")throw new Me("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=fv(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=Xa(o,n)),s==="channelsFirst"&&(o=Ee(o,[0,4,1,2,3])),o})}var $w=class extends Ge{constructor(e,t){if(super(t),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",$w.verifyArgs(t),this.rank=e,Qt(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new Me(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=dl(t.kernelSize,e,"kernelSize"),this.strides=dl(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,xa(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Rt(this.dataFormat),this.activation=ps(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=St(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Kt(t.biasConstraint),this.biasRegularizer=Tt(t.biasRegularizer),this.activityRegularizer=Tt(t.activityRegularizer),this.dilationRate=dl(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new V(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new V(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new V(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(ar("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!tw(e.kernelSize,"number",1,3))throw new V(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){let e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:us(this.activation),useBias:this.useBias,biasInitializer:Ct(this.biasInitializer),biasRegularizer:pt(this.biasRegularizer),activityRegularizer:pt(this.activityRegularizer),biasConstraint:qt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},ed=class extends $w{constructor(e,t){super(e,t),this.kernel=null,ed.verifyArgs(t),this.filters=t.filters,Qt(this.filters,"filters"),this.kernelInitializer=St(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Kt(t.kernelConstraint),this.kernelRegularizer=Tt(t.kernelRegularizer)}build(e){e=tt(e);let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V(`The channel dimension of the input should be defined. Found ${e[t]}`);let n=e[t],a=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",a,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 P(()=>{e=Ne(e);let n,a=this.bias==null?null:this.bias.read(),r=lN(this.activation.getClassName());if(r!=null&&this.rank===2)n=jk(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(this.rank===1)n=LU(e,this.kernel.read(),a,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=jk(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=zU(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new Me("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(e){e=tt(e);let t=[],n=this.dataFormat==="channelsLast"?e.slice(1,e.length-1):e.slice(2);for(let r=0;r 0 but got ${JSON.stringify(e.filters)}`)}},td=class extends ed{constructor(e){super(2,e),td.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!tw(e.kernelSize,"number",1,2))throw new V(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}};td.className="Conv2D";ne.registerClass(td);var nd=class extends ed{constructor(e){super(3,e),nd.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!(Array.isArray(e.kernelSize)&&(e.kernelSize.length===1||e.kernelSize.length===3)))throw new V(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}};nd.className="Conv3D";ne.registerClass(nd);var Fw=class extends td{constructor(e){if(super(e),this.inputSpec=[new zt({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new V(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=tt(e),e.length!==4)throw new V("Input should have rank 4; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V("The channel dimension of the inputs should be defined. Found `None`.");let n=e[t],a=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",a,"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 zt({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return P(()=>{let n=Ne(e);if(n.shape.length!==4)throw new V(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let a=n.shape,r=a[0],s,i;this.dataFormat==="channelsFirst"?(s=2,i=3):(s=1,i=2);let o=a[s],l=a[i],u=this.kernelSize[0],p=this.kernelSize[1],d=this.strides[0],c=this.strides[1],h=rr(o,d,u,this.padding),m=rr(l,c,p,this.padding),f=[r,h,m,this.filters];this.dataFormat!=="channelsLast"&&(n=Ee(n,[0,2,3,1]));let g=Km(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=Ee(g,[0,3,1,2])),this.bias!=null&&(g=Xa(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=tt(e);let t=e.slice(),n,a,r;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3):(n=3,a=1,r=2);let s=this.kernelSize[0],i=this.kernelSize[1],o=this.strides[0],l=this.strides[1];return t[n]=this.filters,t[a]=rr(t[a],o,s,this.padding),t[r]=rr(t[r],l,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Fw.className="Conv2DTranspose";ne.registerClass(Fw);var Dw=class extends nd{constructor(e){if(super(e),this.inputSpec=[new zt({ndim:5})],this.padding!=="same"&&this.padding!=="valid")throw new V(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=tt(e),e.length!==5)throw new V("Input should have rank 5; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V("The channel dimension of the inputs should be defined. Found `None`.");let n=e[t],a=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",a,"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 zt({ndim:5,axes:{[t]:n}})],this.built=!0}call(e,t){return P(()=>{let n=Ne(e);if(n.shape.length!==5)throw new V(`Conv3DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let a=n.shape,r=a[0],s,i,o;this.dataFormat==="channelsFirst"?(o=2,s=3,i=4):(o=1,s=2,i=3);let l=a[o],u=a[s],p=a[i],d=this.kernelSize[0],c=this.kernelSize[1],h=this.kernelSize[2],m=this.strides[0],f=this.strides[1],g=this.strides[2],y=rr(l,m,d,this.padding),b=rr(u,f,c,this.padding),x=rr(p,g,h,this.padding),w=[r,y,b,x,this.filters];this.dataFormat!=="channelsLast"&&(n=Ee(n,[0,2,3,4,1]));let I=gv(n,this.kernel.read(),w,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(I=Ee(I,[0,4,1,2,3])),this.bias!==null&&(I=Xa(I,this.bias.read(),this.dataFormat)),this.activation!==null&&(I=this.activation.apply(I)),I})}computeOutputShape(e){e=tt(e);let t=e.slice(),n,a,r,s;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3,s=4):(n=4,a=1,r=2,s=3);let i=this.kernelSize[0],o=this.kernelSize[1],l=this.kernelSize[2],u=this.strides[0],p=this.strides[1],d=this.strides[2];return t[n]=this.filters,t[a]=rr(t[a],u,i,this.padding),t[r]=rr(t[r],p,o,this.padding),t[s]=rr(t[s],d,l,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Dw.className="Conv3DTranspose";ne.registerClass(Dw);var t2=class extends ed{constructor(e,t){if(super(e,t),this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,t.filters==null)throw new V("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new V("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(t.padding!=null&&t.padding!=="same"&&t.padding!=="valid")throw new V(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=St(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Tt(t.depthwiseRegularizer),this.depthwiseConstraint=Kt(t.depthwiseConstraint),this.pointwiseInitializer=St(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Tt(t.pointwiseRegularizer),this.pointwiseConstraint=Kt(t.pointwiseConstraint)}build(e){if(e=tt(e),e.length{e=Ne(e);let n;if(this.rank===1)throw new Me("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=Ee(e,[0,2,3,1])),n=Ts(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=Xa(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Ee(n,[0,3,1,2])),n})}getConfig(){let e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.pointwiseInitializer=Ct(this.pointwiseInitializer),e.depthwiseRegularizer=pt(this.depthwiseRegularizer),e.pointwiseRegularizer=pt(this.pointwiseRegularizer),e.depthwiseConstraint=qt(this.depthwiseConstraint),e.pointwiseConstraint=qt(this.pointwiseConstraint),e}};t2.className="SeparableConv";var Rw=class extends t2{constructor(e){super(2,e)}};Rw.className="SeparableConv2D";ne.registerClass(Rw);var Wf=class extends ed{constructor(e){super(1,e),Wf.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){let e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!tw(e.kernelSize,"number",1,1))throw new V(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}};Wf.className="Conv1D";ne.registerClass(Wf);var Mw=class extends Ge{constructor(e){super(e),typeof e.cropping=="number"?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:typeof e.cropping[0]=="number"?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=e.dataFormat===void 0?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return this.dataFormat==="channelsFirst"?[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 P(()=>{if(e=Ne(e),this.dataFormat==="channelsLast"){let n=uh(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return uh(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=uh(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return uh(n,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Mw.className="Cropping2D";ne.registerClass(Mw);var Pw=class extends Ge{constructor(e){super(e),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=e.size==null?this.DEFAULT_SIZE:e.size,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,Y4(this.interpolation)}computeOutputShape(e){if(this.dataFormat==="channelsFirst"){let t=e[2]==null?null:this.size[0]*e[2],n=e[3]==null?null:this.size[1]*e[3];return[e[0],e[1],t,n]}else{let t=e[1]==null?null:this.size[0]*e[1],n=e[2]==null?null:this.size[1]*e[2];return[e[0],t,n,e[3]]}}call(e,t){return P(()=>{let n=Ne(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=Ee(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?za.resizeNearestNeighbor(n,[r,s]):za.resizeBilinear(n,[r,s]);return Ee(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?za.resizeNearestNeighbor(n,[r,s]):za.resizeBilinear(n,[r,s])}})}getConfig(){let e={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},t=super.getConfig();return Object.assign(e,t),e}};Pw.className="UpSampling2D";ne.registerClass(Pw);function WU(e,t,n=[1,1],a="valid",r,s){return P(()=>{r==null&&(r=ja()),Rt(r);let i=Aw(e,r);if(e.rank!==4)throw new V(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(t.rank!==4)throw new V(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=Is(i,t,n,a==="same"?"same":"valid","NHWC",s),r==="channelsFirst"&&(i=Ee(i,[0,3,1,2])),i})}var Ow=class extends $w{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=St(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Kt(e.depthwiseConstraint),this.depthwiseRegularizer=Tt(e.depthwiseRegularizer)}build(e){if(e=tt(e),e.length<4)throw new V(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);let t=this.dataFormat==="channelsFirst"?1:3;if(e[t]==null||e[t]<0)throw new V(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);let n=e[t],a=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",a,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 P(()=>{e=Ne(e);let n=WU(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=Xa(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(e){e=tt(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,r=Ga(t,this.kernelSize[0],this.padding,this.strides[0]),s=Ga(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[e[0],a,r,s]:[e[0],r,s,a]}getConfig(){let e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.depthwiseRegularizer=pt(this.depthwiseRegularizer),e.depthwiseConstraint=qt(this.depthwiseRegularizer),e}};Ow.className="DepthwiseConv2D";ne.registerClass(Ow);function n2(e,t,n,a){if(Array.isArray(e)){if(t!=null||n!=null)throw new V("When inputs is an array, neither initialState or constants should be provided");a!=null&&(n=e.slice(e.length-a,e.length),e=e.slice(0,e.length-a)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function r(s){return s==null||Array.isArray(s)?s:[s]}return t=r(t),n=r(n),{inputs:e,initialState:t,constants:n}}function a2(e,t,n,a=!1,r,s,i=!1,o=!1){return P(()=>{let l=t.shape.length;if(l<3)throw new V(`Input should be at least 3D, but is ${l}D.`);let u=[1,0].concat(Ha(2,l));if(t=Ee(t,u),s!=null)throw new Me("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."),r!=null&&(r=oe(oe(r,"bool"),"float32"),r.rank===l-1&&(r=Zt(r,-1)),r=Ee(r,u)),a&&(t=ga(t,0),r!=null&&(r=ga(r,0)));let p=[],d,c=n,h=t.shape[0],m=ct(t),f;r!=null&&(f=ct(r));for(let y=0;ye(b,c));if(r==null)d=x[0],c=x[1];else{let w=P(()=>{let I=f[y],T=pe(na(I),I),C=Y(z(x[0],I),z(c[0],T)),E=c.map((A,R)=>Y(z(x[1][R],I),z(A,T)));return{output:C,newStates:E}});d=w.output,c=w.newStates}o&&p.push(d)}let g;return o&&(g=Ft(p,1)),[d,g,c]})}var mr=class extends Ge{constructor(e){super(e);let t;if(e.cell==null)throw new V("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new Uf({cells:e.cell}):t=e.cell,t.stateSize==null)throw new V("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=e.returnSequences==null?!1:e.returnSequences,this.returnState=e.returnState==null?!1:e.returnState,this.goBackwards=e.goBackwards==null?!1:e.goBackwards,this._stateful=e.stateful==null?!1:e.stateful,this.unroll=e.unroll==null?!1:e.unroll,this.supportsMasking=!0,this.inputSpec=[new zt({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Ha(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){jb(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);let n=t[0],a;if(this.returnSequences?a=[e[0],e[1],n]:a=[e[0],n],this.returnState){let r=[];for(let s of t)r.push([e[0],s]);return[a].concat(r)}else return a}computeMask(e,t){return P(()=>{Array.isArray(t)&&(t=t[0]);let n=this.returnSequences?t:null;if(this.returnState){let a=this.states.map(r=>null);return[n].concat(a)}else return n})}get states(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let n=0;ns.shape[s.shape.length-1]),r))throw new V(`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=r.map(s=>new zt({shape:[null,s]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){P(()=>{if(!this.stateful)throw new Ir("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape[0];if(n==null)throw new V("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(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>It([n,a])):this.states_=[It([n,this.cell.stateSize])];else if(e==null)_e(this.states_),this.keptStates!=null&&(_e(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>It([n,a])):this.states_[0]=It([n,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new V(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t===!0?this.keptStates.push(this.states_.slice()):_e(this.states_);for(let a=0;aJt(a.clone()))})}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=n2(e,n,a,this.numConstants);e=r.inputs,n=r.initialState,a=r.constants;let s=[],i=[];if(n!=null){t.initialState=n,s=s.concat(n),this.stateSpec=[];for(let o of n)this.stateSpec.push(new zt({shape:o.shape}));i=i.concat(this.stateSpec)}if(a!=null&&(t.constants=a,s=s.concat(a),this.numConstants=a.length),s[0]instanceof Ba){let o=[e].concat(s),l=this.inputSpec.concat(i),u=this.inputSpec;this.inputSpec=l;let p=super.apply(o,t);return this.inputSpec=u,p}else return super.apply(e,t)}call(e,t){return P(()=>{let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;e=Ne(e),r==null&&(this.stateful?r=this.states_:r=this.getInitialState(e));let s=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(r.length!==s)throw new V(`RNN Layer has ${s} state(s) but was passed ${r.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let i={training:a},o=a2((c,h)=>{let m=this.cell.call([c].concat(h),i);return[m[0],m.slice(1)]},e,r,this.goBackwards,n,null,this.unroll,this.returnSequences),l=o[0],u=o[1],p=o[2];this.stateful&&this.resetStates(p,a);let d=this.returnSequences?u:l;return this.returnState?[d].concat(p):d})}getInitialState(e){return P(()=>{let t=It(e.shape);return t=fe(t,[1,2]),t=Xc(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Gb(t,[1,n]):t):this.cell.stateSize>1?[Gb(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),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){let e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(t.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===mr.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign(Object.assign(Object.assign({},n),e),t)}static fromConfig(e,t,n={}){let a=t.cell,r=Ua(a,n);return new e(Object.assign(t,{cell:r}))}};mr.className="RNN";ne.registerClass(mr);var ad=class extends Ge{},Bf=class extends ad{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,Qt(this.units,"units"),this.activation=ps(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Tt(e.kernelRegularizer),this.recurrentRegularizer=Tt(e.recurrentRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.kernelConstraint=Kt(e.kernelConstraint),this.recurrentConstraint=Kt(e.recurrentConstraint),this.biasConstraint=Kt(e.biasConstraint),this.dropout=Il([1,ls([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Il([1,ls([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=tt(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 P(()=>{if(e=e,e.length!==2)throw new V(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let n=e[1];e=e[0];let a=t.training==null?!1:t.training;0na(e),rate:this.dropout,training:a,dropoutFunc:this.dropoutFunc})),0na(n),rate:this.recurrentDropout,training:a,dropoutFunc:this.dropoutFunc}));let r,s=this.dropoutMask,i=this.recurrentDropoutMask;s!=null?r=or(z(e,s),this.kernel.read()):r=or(e,this.kernel.read()),this.bias!=null&&(r=Xa(r,this.bias.read())),i!=null&&(n=z(n,i));let o=Y(r,or(n,this.recurrentKernel.read()));return this.activation!=null&&(o=this.activation.apply(o)),[o,o]})}getConfig(){let e=super.getConfig(),t={units:this.units,activation:us(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),recurrentInitializer:Ct(this.recurrentInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:pt(this.kernelRegularizer),recurrentRegularizer:pt(this.recurrentRegularizer),biasRegularizer:pt(this.biasRegularizer),activityRegularizer:pt(this.activityRegularizer),kernelConstraint:qt(this.kernelConstraint),recurrentConstraint:qt(this.recurrentConstraint),biasConstraint:qt(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},e),t)}};Bf.className="SimpleRNNCell";ne.registerClass(Bf);var Lw=class extends mr{constructor(e){e.cell=new Bf(e),super(e)}call(e,t){return P(()=>{this.cell.dropoutMask!=null&&(_e(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_e(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return new e(t)}};Lw.className="SimpleRNN";ne.registerClass(Lw);var Vf=class extends ad{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 V("GRUCell does not support reset_after parameter set to true.");this.units=e.units,Qt(this.units,"units"),this.activation=ps(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ps(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Tt(e.kernelRegularizer),this.recurrentRegularizer=Tt(e.recurrentRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.kernelConstraint=Kt(e.kernelConstraint),this.recurrentConstraint=Kt(e.recurrentConstraint),this.biasConstraint=Kt(e.biasConstraint),this.dropout=Il([1,ls([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Il([1,ls([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=tt(e);let t=e[e.length-1];this.kernel=this.addWeight("kernel",[t,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return P(()=>{if(e=e,e.length!==2)throw new V(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training==null?!1:t.training,a=e[1];e=e[0],0na(e),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0na(a),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));let r=this.dropoutMask,s=this.recurrentDropoutMask,i,o,l;0{this.cell.dropoutMask!=null&&(_e(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_e(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};zw.className="GRU";ne.registerClass(zw);var rd=class extends ad{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,Qt(this.units,"units"),this.activation=ps(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ps(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=Tt(e.kernelRegularizer),this.recurrentRegularizer=Tt(e.recurrentRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.kernelConstraint=Kt(e.kernelConstraint),this.recurrentConstraint=Kt(e.recurrentConstraint),this.biasConstraint=Kt(e.biasConstraint),this.dropout=Il([1,ls([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Il([1,ls([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=tt(e);let n=e[e.length-1];this.kernel=this.addWeight("kernel",[n,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let a;if(this.useBias){if(this.unitForgetBias){let r=this.biasInitializer,s=this.units;a=new(t=class extends Ra{apply(i,o){let l=r.apply([s]),u=new Af().apply([s]),p=r.apply([s*2]);return Ak(Ak(l,u),p)}},t.className="CustomInit",t)}else a=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,a,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return P(()=>{let n=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new V(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let a=e[1],r=e[2];e=e[0],0na(e),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0na(a),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));let s=this.dropoutMask,i=this.recurrentDropoutMask,o,l,u,p;0{this.cell.dropoutMask!=null&&(_e(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_e(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Ww.className="LSTM";ne.registerClass(Ww);var Uf=class extends ad{constructor(e){super(e),this.cells=e.cells}get stateSize(){let e=[];for(let t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return P(()=>{e=e;let n=e.slice(1),a=[];for(let i of this.cells.slice().reverse())Array.isArray(i.stateSize)?a.push(n.splice(0,i.stateSize.length)):a.push(n.splice(0,1));a.reverse();let r=[],s;for(let i=0;i{Ys(`RNNCell_${a}`,()=>{n.build(e),Array.isArray(n.stateSize)?t=n.stateSize[0]:t=n.stateSize,e=[e[0],t]})}),this.built=!0}getConfig(){let e=super.getConfig(),t=a=>({className:a.getClassName(),config:a.getConfig()}),n={cells:this.cells.map(t)};return Object.assign(Object.assign({},e),n)}static fromConfig(e,t,n={}){let a=[];for(let r of t.cells)a.push(Ua(r,n));return new e({cells:a})}get trainableWeights(){if(!this.trainable)return[];let e=[];for(let t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.cells)t.push(...n.trainableWeights);return t.concat(e)}return e}getWeights(){let e=[];for(let t of this.cells)e.push(...t.weights);return qb(e)}setWeights(e){let t=[];for(let n of this.cells){let a=n.weights.length,r=e.splice(a);for(let s=0;ss!=null?s(t(),n):fN(t(),n),o=()=>Zc(i,t,a);return!r||r<=1?Jt(o().clone()):Array(r).fill(void 0).map(o).map(l=>Jt(l.clone()))}var BU=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,a=Object.getOwnPropertySymbols(e);r{if(this.cell.dropoutMask!=null&&(_e(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_e(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new V("ConvRNN2D cell does not support constants");let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}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 P(()=>{let{stateSize:t}=this.cell,n=e.shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)],s=It(r);return Array.isArray(t)?Array(t.length).fill(s):[s]})}resetStates(e,t=!1){P(()=>{if(!this.stateful)throw new Ir("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)];if(n[0]==null)throw new V("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(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>It(r)):this.states_=[It(r)];else if(e==null)_e(this.states_),this.keptStates!=null&&(_e(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>It(r)):this.states_[0]=It(r);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new V(`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()):_e(this.states_);for(let s=0;sJt(s.clone()))})}computeSingleOutputShape(e){let{dataFormat:t,filters:n,kernelSize:a,padding:r,strides:s,dilationRate:i}=this.cell,o=t==="channelsFirst",l=e[o?3:2],u=e[o?4:3],p=Ga(l,a[0],r,s[0],i[0]),d=Ga(u,a[1],r,s[1],i[1]);return[...e.slice(0,2),...o?[n,p,d]:[p,d,n]]}};r2.className="ConvRNN2D";var Gf=class extends rd{constructor(e){let{filters:t,kernelSize:n,strides:a,padding:r,dataFormat:s,dilationRate:i}=e;super(Object.assign(Object.assign({},e),{units:t})),this.filters=t,Qt(this.filters,"filters"),this.kernelSize=dl(n,2,"kernelSize"),this.kernelSize.forEach(o=>Qt(o,"kernelSize")),this.strides=dl(a||1,2,"strides"),this.strides.forEach(o=>Qt(o,"strides")),this.padding=r||"valid",xa(this.padding),this.dataFormat=s||"channelsLast",Rt(this.dataFormat),this.dilationRate=dl(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>Qt(o,"dilationRate"))}build(e){var t;e=tt(e);let n=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[n]==null)throw new V(`The channel dimension of the input should be defined. Found ${e[n]}`);let a=e[n],r=4,s=this.kernelSize.concat([a,this.filters*r]);this.kernel=this.addWeight("kernel",s,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let i=this.kernelSize.concat([this.filters,this.filters*r]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",i,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let o;if(this.unitForgetBias){let l=this.biasInitializer,u=this.filters;o=new(t=class extends Ra{apply(p,d){let c=l.apply([u]),h=Jn([u]),m=l.apply([u*2]);return nw([c,h,m])}},t.className="CustomInit",t)}else o=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*r],null,o,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return P(()=>{if(e.length!==3)throw new V(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training||!1,a=e[0],r=e[1],s=e[2],i=4;0na(a),rate:this.dropout,training:n,count:i,dropoutFunc:this.dropoutFunc}));let o=this.dropoutMask,l=(Z,Q,ee)=>!Q||!Q[ee]?Z:z(Q[ee],Z),u=l(a,o,0),p=l(a,o,1),d=l(a,o,2),c=l(a,o,3);0na(r),rate:this.recurrentDropout,training:n,count:i,dropoutFunc:this.dropoutFunc}));let h=this.recurrentDropoutMask,m=l(r,h,0),f=l(r,h,1),g=l(r,h,2),y=l(r,h,3),b=3,[x,w,I,T]=zn(this.kernel.read(),i,b),[C,E,A,R]=this.useBias?zn(this.bias.read(),i):[null,null,null,null];u=this.inputConv(u,x,C,this.padding),p=this.inputConv(p,w,E,this.padding),d=this.inputConv(d,I,A,this.padding),c=this.inputConv(c,T,R,this.padding);let[F,S,M,B]=zn(this.recurrentKernel.read(),i,b);m=this.recurrentConv(m,F),f=this.recurrentConv(f,S),g=this.recurrentConv(g,M),y=this.recurrentConv(y,B);let U=this.recurrentActivation.apply(Y(u,m)),G=this.recurrentActivation.apply(Y(p,f)),q=Y(z(G,s),z(U,this.activation.apply(Y(d,g)))),K=z(this.recurrentActivation.apply(Y(c,y)),this.activation.apply(q));return[K,K,q]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=BU(e,["units"]),a={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),a)}inputConv(e,t,n,a){let r=$t(e,t,this.strides,a||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?Xa(r,n,this.dataFormat):r}recurrentConv(e,t){return $t(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Gf.className="ConvLSTM2DCell";ne.registerClass(Gf);var Bw=class extends r2{constructor(e){let t=new Gf(e);super(Object.assign(Object.assign({},e),{cell:t}))}static fromConfig(e,t){return new e(t)}};Bw.className="ConvLSTM2D";ne.registerClass(Bw);var Hf=class extends Ge{constructor(e){super(e),this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(this.noiseShape==null)return this.noiseShape;let t=e.shape,n=[];for(let a=0;a{this.invokeCallHook(e,t);let n=Ne(e);if(0fN(n,this.rate,r,this.seed),()=>n,a)}return e})}getConfig(){let e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}};Hf.className="Dropout";ne.registerClass(Hf);var Vw=class extends Hf{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};Vw.className="SpatialDropout1D";ne.registerClass(Vw);var Uw=class extends Ge{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",e.batchInputShape==null&&e.inputShape==null&&e.inputDim!=null){let t=null;e.batchSize!=null&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,Qt(this.units,"units"),this.activation=ps(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Kt(e.kernelConstraint),this.biasConstraint=Kt(e.biasConstraint),this.kernelRegularizer=Tt(e.kernelRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.activityRegularizer=Tt(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=tt(e);let t=e[e.length-1];this.kernel==null&&(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){e=tt(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e),a=lN(this.activation.getClassName()),r;return a!=null?r=or(n,this.kernel.read(),a,this.bias?this.bias.read():null):(r=or(n,this.kernel.read()),this.bias!=null&&(r=Xa(r,this.bias.read())),this.activation!=null&&(r=this.activation.apply(r))),r})}getConfig(){let e={units:this.units,activation:us(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:pt(this.kernelRegularizer),biasRegularizer:pt(this.biasRegularizer),activityRegularizer:pt(this.activityRegularizer),kernelConstraint:qt(this.kernelConstraint),biasConstraint:qt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Uw.className="Dense";ne.registerClass(Uw);var Gw=class extends Ge{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=tt(e);for(let t of e.slice(1))if(t==null)throw new V(`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],rs(e,1)]}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Ne(e);return this.activation.apply(n)})}getConfig(){let e={activation:us(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};Hw.className="Activation";ne.registerClass(Hw);var jw=class extends Ge{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 P(()=>(e=Ne(e),eV(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};jw.className="RepeatVector";ne.registerClass(jw);var qw=class extends Ge{constructor(e){super(e),this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Ne(e),a=n.shape,r=a.slice(0,1).concat(this.fixUnknownDimension(a.slice(1),this.targetShape));return W(n,r)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};qw.className="Reshape";ne.registerClass(qw);var Kw=class extends Ge{constructor(e){if(super(e),e.dims==null)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.`);let t=Ha(1,e.dims.length+1);if(!v.arraysEqual(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 zt({ndim:this.dims.length+1})]}computeOutputShape(e){e=tt(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return Ee(Ne(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};Kw.className="Permute";ne.registerClass(Kw);var Xw=class extends Ge{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null?this.maskValue=e.maskValue==null?0:e.maskValue:this.maskValue=0}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){let n=Ne(e),a=-1;return Qp(oi(n,this.maskValue),a)}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e),a=-1,r=!0,s=Qp(oi(n,this.maskValue),a,r);return z(n,oe(s,n.dtype))})}};Xw.className="Masking";ne.registerClass(Xw);var Yw=class extends Ge{constructor(e){if(super(e),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",e.batchInputShape==null&&e.inputShape==null){let t=null;e.batchSize!=null&&(t=e.batchSize),e.inputLength==null?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(xt(e.inputLength))}this.inputDim=e.inputDim,Qt(this.inputDim,"inputDim"),this.outputDim=e.outputDim,Qt(this.outputDim,"outputDim"),this.embeddingsInitializer=St(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Tt(e.embeddingsRegularizer),this.activityRegularizer=Tt(e.activityRegularizer),this.embeddingsConstraint=Kt(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 P(()=>this.maskZero?(e=Ne(e),oi(e,qe(e))):null)}computeOutputShape(e){if(e=tt(e),this.inputLength==null)return[...e,this.outputDim];let t=xt(this.inputLength);if(t.length!==e.length-1)throw new V(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let n=0;for(let a=0;a{this.invokeCallHook(e,t);let n=Ne(e);n.dtype!=="int32"&&(n=bo(n,"int32"));let a=mN(this.embeddings.read(),W(n,[n.size]));return W(a,tt(this.computeOutputShape(n.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Ct(this.embeddingsInitializer),embeddingsRegularizer:pt(this.embeddingsRegularizer),activityRegularizer:pt(this.activityRegularizer),embeddingsConstraint:qt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};Yw.className="Embedding";ne.registerClass(Yw);var vo=class extends Ge{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new Me}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new V(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let n=e[0]==null?null:e[0].slice(1);for(let r=1;rr.length);e.indexOf(null)===-1&&as(a).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return P(()=>{if(e=e,this.reshapeRequired){let n=[],a=e.map(r=>r.rank);if(a.indexOf(null)===-1){let r=ls(a);for(let s of e){let i=s.rank;for(let o=0;o1){let u=Ha(1,l).concat([0]);n.push(Ee(o,u)),r=!0}else n.push(o)}let s=this.mergeFunction(n),i=s.rank;if(r){if(i==null){let o=s.shape,l=o.length,u=o[l-1],p=[u].concat(o.slice(0,o.length-1));s=W(Ee(W(s,[-1,u]),[1,0]),p)}else if(i>1){let o=[i-1].concat(Ha(0,i-1));s=Ee(s,o)}}return s}}else return this.mergeFunction(e)})}computeOutputShape(e){e=e;let t;e[0]==null?t=null:t=e[0].slice(1);for(let a=1;a{if(t==null)return null;if(!Array.isArray(t))throw new V("`mask` should be an Array");if(!Array.isArray(e))throw new V("`inputs` should be an Array");if(t.length!==e.length)throw new V(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every(a=>a==null))return null;t=t.map(a=>a==null?a:Zt(a,0));let n=t[0];for(let a=1;a{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 V("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return P(()=>nw(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new V("A `Concatenate` layer should be called on a list of inputs.");let t=e,n=t[0].slice(),a=this.axis<0?n.length+this.axis:this.axis;for(let r of t.slice(1)){if(n[a]==null||r[a]==null){n[a]=null;break}n[a]+=r[a]}return n}computeMask(e,t){if(t==null)return null;if(!Array.isArray(t))throw new V("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new V("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new V(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return P(()=>{let n=!0;if(t.forEach(s=>{if(s!=null){n=!1;return}}),n)return null;let a=[];for(let s=0;s3||t.shape.length>3)throw new Me("batchDot is not implemented for tensors of 4D or higher rank yet");if(v.assert(e.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`),v.assert(e.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof n=="number"&&(n=[n,n]),e.dtype==="complex64"||t.dtype==="complex64")throw new Me("batchDot is not implemented for complex64-type Tensors yet.");let a=e.shape.length,r=t.shape.length;n==null&&(n=[a-1,r-2]);let s=n;return P(()=>{let i;if(a>r){i=a-r;let l=[];for(let u=0;ua){i=r-a;let l=[];for(let u=0;u0){let l;a>r?l=a+r-3:l=a-1;let u=[];for(let p=l;p"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0],n=e[1];if(t.length>3||n.length>3)throw new Me("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);if(t[a[0]]!==n[a[1]])throw new V(`Dimension incompatibility: ${t[a[0]]} !== ${n[a[1]]}`)}mergeFunction(e){if(e.length!==2)throw new V(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t=e[0],n=e[1],a;return Array.isArray(this.axes)?a=this.axes.map((r,s)=>Ap(r,e[s].shape.length)):a=[Ap(this.axes,t.shape.length),Ap(this.axes,n.shape.length)],this.normalize&&(t=Gh(t,a[0]),n=Gh(n,a[1])),VU(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[Ap(this.axes,e.length),Ap(this.axes,t.length)],n}computeOutputShape(e){v.assert(Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0].slice(),n=e[1].slice();if(t.length>3||n.length>3)throw new Me("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);t.splice(a[0],1),n.splice(a[1],1),n.splice(0,1);let r=t.concat(n);return r.length===1&&r.push(1),r}computeMask(e,t){return null}getConfig(){let e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}};a0.className="Dot";ne.registerClass(a0);var r0=class extends Ge{constructor(e){super(e),this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e);return Zc(()=>Y(Ef(n.shape,0,this.stddev),n),()=>n,t.training||!1)})}};r0.className="GaussianNoise";ne.registerClass(r0);var s0=class extends Ge{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e);return this.rate>0&&this.rate<1?Zc(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return z(n,Ef(n.shape,1,a))},()=>n,t.training||!1):n})}};s0.className="GaussianDropout";ne.registerClass(s0);var i0=class extends Ge{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Ne(e).shape}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return P(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(e);return Zc(()=>{let a=Ne(e),r=1.6732632423543772,s=1.0507009873554805,i=-r*s,o=Fr(Uu(n),this.rate);o=bo(o,"float32");let l=((1-this.rate)*(1+this.rate*i**2))**-.5,u=-l*i*this.rate,p=Y(z(a,o),z(Y(o,-1),i));return Y(z(p,l),u)},()=>Ne(e),t.training||!1)}return e})}};i0.className="AlphaDropout";ne.registerClass(i0);function ac(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=sv(e,t,n,a,r,s);else if(e.rank===3)i=iv(e,t,n,a,r,s);else if(e.rank===4)i=ov(e,t,n,a,r,s);else throw new Me(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function UU(e,t,n,a,r=.001){return P(()=>{let s=Bc(e,a),i=s.mean,o=s.variance;return[ac(e,i,o,n,t,r),i,o]})}function GU(e,t,n,a,r=.001){return P(()=>{let s=Bc(e,a),i=s.mean,o=s.variance,l=[];for(let h of Ha(0,e.rank))a.indexOf(h)!==-1?l.push(1):l.push(e.shape[h]);let u=W(i,l),p=W(o,l),d=t==null?null:W(t,l),c=n==null?null:W(n,l);return[ac(e,u,p,c,d,r),i,o]})}function HU(e,t,n,a,r=.001){return v.arraysEqual(a.slice().sort(),Ha(0,e.rank-1))?UU(e,t,n,a,r):GU(e,t,n,a,r)}var o0=class extends Ge{constructor(e){e==null&&(e={}),super(e),this.supportsMasking=!0,this.axis=e.axis==null?-1:e.axis,this.momentum=e.momentum==null?.99:e.momentum,this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=St(e.betaInitializer||"zeros"),this.gammaInitializer=St(e.gammaInitializer||"ones"),this.movingMeanInitializer=St(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=St(e.movingVarianceInitializer||"ones"),this.betaConstraint=Kt(e.betaConstraint),this.gammaConstraint=Kt(e.gammaConstraint),this.betaRegularizer=Tt(e.betaRegularizer),this.gammaRegularizer=Tt(e.gammaRegularizer)}build(e){e=tt(e);let t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(n==null)throw new V(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new zt({ndim:e.length,axes:{[t]:n}})];let a=[n];this.scale&&(this.gamma=this.addWeight("gamma",a,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",a,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",a,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",a,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return P(()=>{let n=t.training==null?!1:t.training,a=Ne(e),r=a.shape,s=r.length,i=Ha(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=li(1,s);l[o]=r[o];let u=i.slice();u.sort();let p=!v.arraysEqual(u,Ha(0,s).slice(0,s-1)),d=()=>{if(p){let g=W(this.movingMean.read(),l),y=W(this.movingVariance.read(),l),b=this.center?W(this.beta.read(),l):null,x=this.scale?W(this.gamma.read(),l):null;return ac(a,g,y,b,x,this.epsilon)}else return ac(a,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!n)return d();let[c,h,m]=HU(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,y,b)=>{P(()=>{let x=1-b,w=g.read(),I=z(pe(w,y),x);g.write(pe(w,I))})};return f(this.movingMean,h,this.momentum),f(this.movingVariance,m,this.momentum),c})}getConfig(){let e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Ct(this.betaInitializer),gammaInitializer:Ct(this.gammaInitializer),movingMeanInitializer:Ct(this.movingMeanInitializer),movingVarianceInitializer:Ct(this.movingVarianceInitializer),betaRegularizer:pt(this.betaRegularizer),gammaRegularizer:pt(this.gammaRegularizer),betaConstraint:qt(this.betaConstraint),gammaConstraint:qt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};o0.className="BatchNormalization";ne.registerClass(o0);var l0=class extends Ge{constructor(e){if(e==null&&(e={}),super(e),this.axis=e.axis==null?-1:e.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let t of this.axis)if(!Number.isInteger(t))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=St(e.betaInitializer||"zeros"),this.gammaInitializer=St(e.gammaInitializer||"ones"),this.betaRegularizer=Tt(e.betaRegularizer),this.gammaRegularizer=Tt(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=tt(e);let t=e.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let r=0;r=t)throw new Error(`Invalid axis: ${r}`);if(this.axis.length!==as(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(r=>e[r]),a=!0;this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,a):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,a):this.beta=null,this.built=!0}call(e,t){let n=Ne(e),a=n.shape,r=a.length;return P(()=>{let{mean:s,variance:i}=Bc(n,this.axis,!0),o=li(1,r);for(let h of this.axis)o[h]=a[h];let l=h=>h!=null&&h.shape.length!==r?W(h,o):h,u=this.scale?l(this.gamma.read()):null,p=this.center?l(this.beta.read()):null,d=[],c=[];for(let h=0;h{if(e.rank!==4)throw new V(`temporalPadding expects input tensor to be 4-D, but received a ${e.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new V("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(n==null&&(n=ja()),n!=="channelsLast"&&n!=="channelsFirst")throw new V(`Unknown data format: ${n}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let a;return n==="channelsFirst"?a=[[0,0],[0,0],t[0],t[1]]:a=[[0,0],t[0],t[1],[0,0]],ba(e,a)})}var u0=class extends Ge{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?ja():e.dataFormat,e.padding==null)this.padding=[[1,1],[1,1]];else if(typeof e.padding=="number")this.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,e.padding.length!==2)throw new V(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${e.padding.length} array.`);let t,n;if(typeof e.padding[0]=="number")t=[e.padding[0],e.padding[0]],n=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,e.padding[0].length!==2)throw new V(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${e.padding[0].length} array.`);if(t=e.padding[0],e.padding[1].length!==2)throw new V(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${e.padding[1].length} array.`);n=e.padding[1]}this.padding=[t,n]}this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){e=tt(e);let t,n;return this.dataFormat==="channelsFirst"?(e[2]!=null&&e[2]>=0?t=e[2]+this.padding[0][0]+this.padding[0][1]:t=null,e[3]!=null&&e[3]>=0?n=e[3]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],e[1],t,n]):(e[1]!=null&&e[1]>=0?t=e[1]+this.padding[0][0]+this.padding[0][1]:t=null,e[2]!=null&&e[2]>=0?n=e[2]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],t,n,e[3]])}call(e,t){return P(()=>jU(Ne(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};u0.className="ZeroPadding2D";ne.registerClass(u0);function jf(e,t,n,a,r,s){return P(()=>{Rt(r),pN(s),xa(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=ja()),s==null&&(s="max"),e=Aw(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Dt(e,t,n,o):i=ya(e,t,n,o),r==="channelsFirst"&&(i=Ee(i,[0,3,1,2])),i})}function s2(e,t,n,a,r,s){return P(()=>{Rt(r),pN(s),xa(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=ja()),s==null&&(s="max"),e=e2(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Fv(e,t,n,o):i=rv(e,t,n,o),r==="channelsFirst"&&(i=Ee(i,[0,4,1,2,3])),i})}var i2=class extends Ge{constructor(e){if(e.poolSize==null&&(e.poolSize=2),super(e),typeof e.poolSize=="number")this.poolSize=[e.poolSize];else if(Array.isArray(e.poolSize)&&e.poolSize.length===1&&typeof e.poolSize[0]=="number")this.poolSize=e.poolSize;else throw new V(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(Qt(this.poolSize,"poolSize"),e.strides==null)this.strides=this.poolSize;else if(typeof e.strides=="number")this.strides=[e.strides];else if(Array.isArray(e.strides)&&e.strides.length===1&&typeof e.strides[0]=="number")this.strides=e.strides;else throw new V(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);Qt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,xa(this.padding),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){e=tt(e);let t=Ga(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return P(()=>{this.invokeCallHook(e,t),e=Xc(Ne(e),2);let n=this.poolingFunction(Ne(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Ns(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},p0=class extends i2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),xa(a),jf(e,t,n,a,r,"max")}};p0.className="MaxPooling1D";ne.registerClass(p0);var c0=class extends i2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),xa(a),jf(e,t,n,a,r,"avg")}};c0.className="AveragePooling1D";ne.registerClass(c0);var o2=class extends Ge{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==2)throw new V(`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];Qt(this.poolSize,"poolSize"),Qt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),xa(this.padding),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){e=tt(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=Ga(t,this.poolSize[0],this.padding,this.strides[0]),n=Ga(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n]:[e[0],t,n,e[3]]}call(e,t){return P(()=>(this.invokeCallHook(e,t),this.poolingFunction(Ne(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},d0=class extends o2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),xa(a),jf(e,t,n,a,r,"max")}};d0.className="MaxPooling2D";ne.registerClass(d0);var h0=class extends o2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),xa(a),jf(e,t,n,a,r,"avg")}};h0.className="AveragePooling2D";ne.registerClass(h0);var l2=class extends Ge{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==3)throw new V(`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];Qt(this.poolSize,"poolSize"),Qt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),xa(this.padding),this.inputSpec=[new zt({ndim:5})]}computeOutputShape(e){e=tt(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[4]:e[3];return t=Ga(t,this.poolSize[0],this.padding,this.strides[0]),n=Ga(n,this.poolSize[1],this.padding,this.strides[1]),a=Ga(a,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n,a]:[e[0],t,n,a,e[4]]}call(e,t){return P(()=>(this.invokeCallHook(e,t),this.poolingFunction(Ne(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},m0=class extends l2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),xa(a),s2(e,t,n,a,r,"max")}};m0.className="MaxPooling3D";ne.registerClass(m0);var f0=class extends l2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),xa(a),s2(e,t,n,a,r,"avg")}};f0.className="AveragePooling3D";ne.registerClass(f0);var u2=class extends Ge{constructor(e){super(e),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new Me}},g0=class extends u2{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Ne(e);return Nt(n,1)})}};g0.className="GlobalAveragePooling1D";ne.registerClass(g0);var y0=class extends u2{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Ne(e);return ma(n,1)})}};y0.className="GlobalMaxPooling1D";ne.registerClass(y0);var p2=class extends Ge{constructor(e){super(e),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new Me}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},b0=class extends p2{call(e,t){return P(()=>{let n=Ne(e);return this.dataFormat==="channelsLast"?Nt(n,[1,2]):Nt(n,[2,3])})}};b0.className="GlobalAveragePooling2D";ne.registerClass(b0);var x0=class extends p2{call(e,t){return P(()=>{let n=Ne(e);return this.dataFormat==="channelsLast"?ma(n,[1,2]):ma(n,[2,3])})}};x0.className="GlobalMaxPooling2D";ne.registerClass(x0);var c2=class extends Ge{constructor(e){super(e),this.layer=e.layer}build(e){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(e){this.layer!=null&&(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(){let e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,n={}){let a=t.layer,r=Ua(a,n);delete t.layer;let s={layer:r};return Object.assign(s,t),new e(s)}},v0=class extends c2{constructor(e){super(e),this.supportsMasking=!0}build(e){if(e=tt(e),e.length<3)throw new V(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];let t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){e=tt(e);let t=[e[0]].concat(e.slice(2)),n=this.layer.computeOutputShape(t),a=e[1];return[n[0],a].concat(n.slice(1))}call(e,t){return P(()=>(e=Ne(e),a2((n,a)=>[Ne(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};v0.className="TimeDistributed";ne.registerClass(v0);function qU(e){yo(X4,"BidirectionalMergeMode",e)}var KU="concat",w0=class extends c2{constructor(e){super(e);let t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=Ua(n),t.goBackwards=t.goBackwards!==!0;let a={};if(a.className=e.layer.getClassName(),a.config=t,this.backwardLayer=Ua(a),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?KU:e.mergeMode,qU(this.mergeMode),e.weights)throw new Me("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,this.forwardLayer!=null&&(this.forwardLayer.trainable=e),this.backwardLayer!=null&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){let 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=this.forwardLayer.computeOutputShape(e);Array.isArray(t)&&Array.isArray(t[0])||(t=[t]),t=t;let n,a,r;return this.returnState&&(r=t.slice(1)),n=t[0],n=n,this.mergeMode==="concat"?(n[n.length-1]*=2,a=[n]):this.mergeMode==null?a=[n,n.slice()]:a=[n],this.returnState?this.mergeMode==null?a.concat(r).concat(r.slice()):[n].concat(r).concat(r.slice()):On(a)}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=n2(e,n,a,this.numConstants);if(e=r.inputs,n=r.initialState,a=r.constants,Array.isArray(e)&&(n=e.slice(1),e=e[0]),(n==null||n.length===0)&&a==null)return super.apply(e,t);let s=[],i=[];if(n!=null){let l=n.length;if(l%2>0)throw new V("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);let u=n.map(p=>new zt({shape:p.shape}));this.forwardLayer.stateSpec=u.slice(0,l/2),this.backwardLayer.stateSpec=u.slice(l/2),i.push(...u)}if(a!=null)throw new Me("Support for constants in Bidirectional layers is not implemented yet.");let o=s[0]instanceof Ba;for(let l of s)if(l instanceof Ba!==o)throw new V("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(o){let l=[e].concat(s),u=this.inputSpec.concat(i),p=this.inputSpec;this.inputSpec=u;let d=super.apply(l,t);return this.inputSpec=p,d}else return super.apply(e,t)}call(e,t){return P(()=>{let n=t.initialState,a,r;if(n==null)a=this.forwardLayer.call(e,t),r=this.backwardLayer.call(e,t);else{let o=n.slice(0,n.length/2),l=n.slice(n.length/2);a=this.forwardLayer.call(e,Object.assign(t,{initialState:o})),r=this.backwardLayer.call(e,Object.assign(t,{initialState:l}))}let s;this.returnState&&(Array.isArray(a)&&(s=a.slice(1).concat(r.slice(1))),a=a[0],r=r[0]),this.returnSequences&&(r=ga(r,1));let i;return this.mergeMode==="concat"?i=nw([a,r]):this.mergeMode==="sum"?i=Y(a,r):this.mergeMode==="ave"?i=z(.5,Y(a,r)):this.mergeMode==="mul"?i=z(a,r):this.mergeMode==null&&(i=[a,r]),this.returnState?this.mergeMode==null?i.concat(s):[i].concat(s):i})}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Ys(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),Ys(this.backwardLayer.name,()=>{this.backwardLayer.build(e)}),this.built=!0}computeMask(e,t){Array.isArray(t)&&(t=t[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[t,t]:n=t:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let a=this.forwardLayer.states.map(r=>null);return Array.isArray(n)?n.concat(a).concat(a):[n].concat(a).concat(a)}else 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),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(e),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){let e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){let n=Ua(t.layer);if(delete t.layer,t.numConstants!=null)throw new Me("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};w0.className="Bidirectional";ne.registerClass(w0);var k0=class extends Ge{constructor(e){super(e),this.scale=e.scale,e.offset?this.offset=e.offset:this.offset=0}getConfig(){let e={scale:this.scale,offset:this.offset},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return P(()=>(e=Ne(e),e.dtype!=="float32"&&(e=bo(e,"float32")),Y(z(e,this.scale),this.offset)))}};k0.className="Rescaling";ne.registerClass(k0);var XU=["bilinear","nearest"],qk=new Set(XU),I0=class extends Ge{constructor(e){if(super(e),this.height=e.height,this.width=e.width,e.interpolation)if(qk.has(e.interpolation))this.interpolation=e.interpolation;else throw new V(`Invalid interpolation parameter: ${e.interpolation} is not implemented`);else this.interpolation="bilinear";this.cropToAspectRatio=Boolean(e.cropToAspectRatio)}computeOutputShape(e){e=tt(e);let t=e[2];return[this.height,this.width,t]}getConfig(){let e={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return P(()=>{let n=[this.height,this.width];if(this.interpolation==="bilinear")return za.resizeBilinear(e,n,!this.cropToAspectRatio);if(this.interpolation==="nearest")return za.resizeNearestNeighbor(e,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...qk]} are supported`)})}};I0.className="Resizing";ne.registerClass(I0);function YU(e,t,n,a){let r=Ne(e);if(r.dtype!=="int32"&&(r=bo(r,"int32")),t==="int")return r;let s=r.shape;if(r.rank===0&&(r=Zt(r,-1)),t==="oneHot"&&r.shape[r.shape.length-1]!==1&&(r=Zt(r,-1)),r.rank>2)throw new V(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${s} which would result in output rank ${r.rank}.`);let i=["multiHot","oneHot"].includes(t),o=r,l;if(typeof a!="undefined"&&t==="count"?l=zh(o,a,n,i):l=zh(o,[],n,i),t!=="tfIdf")return l;if(a)return z(l,a);throw new V("When outputMode is 'tfIdf', weights must be provided.")}var S0=class extends Ge{constructor(e){super(e),this.numTokens=e.numTokens,e.outputMode?this.outputMode=e.outputMode:this.outputMode="multiHot"}getConfig(){let e={numTokens:this.numTokens,outputMode:this.outputMode},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){return e=tt(e),e==null?[this.numTokens]:this.outputMode==="oneHot"&&e[e.length-1]!==1?(e.push(this.numTokens),e):(e[e.length-1]=this.numTokens,e)}call(e,t){return P(()=>{e=Ne(e),e.dtype!=="int32"&&(e=bo(e,"int32"));let n;if(typeof t.countWeights!="undefined"){if(this.outputMode!=="count")throw new V(`countWeights is not used when outputMode !== count. - Received countWeights=${t.countWeights}`);n=Ne(t.countWeights)}let a=ma(e),r=bl(e),s=Cn(this.numTokens,a).bufferSync().get(0),i=Fr(r,0).bufferSync().get(0);if(!(s&&i))throw new V(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return YU(e,this.outputMode,this.numTokens,n)})}};S0.className="CategoryEncoding";ne.registerClass(S0);function ZU(e){return new Hu(e)}function JU(e){return new Cw(e)}function QU(e){return new Sw(e)}function eG(e){return new Tw(e)}function tG(e){return new Nw(e)}function nG(e){return new Ew(e)}function aG(e){return new _w(e)}function rG(e){return new Wf(e)}function sG(e){return new td(e)}function iG(e){return new Fw(e)}function oG(e){return new nd(e)}function lG(e){return new Dw(e)}function uG(e){return new Rw(e)}function pG(e){return new Mw(e)}function cG(e){return new Pw(e)}function dG(e){return new Ow(e)}function hG(e){return new Hw(e)}function mG(e){return new Uw(e)}function fG(e){return new Hf(e)}function gG(e){return new Vw(e)}function yG(e){return new Gw(e)}function bG(e){return new jw(e)}function xG(e){return new qw(e)}function vG(e){return new Kw(e)}function wG(e){return new Yw(e)}function kG(e){return new Zw(e)}function IG(e){return new Qw(e)}function SG(e){return new n0(e)}function TG(e){return new e0(e)}function NG(e){return new t0(e)}function CG(e){return new Jw(e)}function _G(e){return new a0(e)}function EG(e){return new o0(e)}function AG(e){return new l0(e)}function $G(e){return new u0(e)}function T0(e){return new c0(e)}function FG(e){return T0(e)}function DG(e){return T0(e)}function N0(e){return new h0(e)}function RG(e){return N0(e)}function MG(e){return N0(e)}function C0(e){return new f0(e)}function PG(e){return C0(e)}function OG(e){return C0(e)}function LG(e){return new g0(e)}function zG(e){return new b0(e)}function d2(e){return new y0(e)}function h2(e){return new x0(e)}function m2(e){return new p0(e)}function f2(e){return new d0(e)}function WG(e){return new m0(e)}function BG(e){return new zw(e)}function VG(e){return new Vf(e)}function UG(e){return new Ww(e)}function GG(e){return new rd(e)}function HG(e){return new Lw(e)}function jG(e){return new Bf(e)}function qG(e){return new Bw(e)}function KG(e){return new Gf(e)}function XG(e){return new mr(e)}function YG(e){return new Uf(e)}function ZG(e){return new w0(e)}function JG(e){return new v0(e)}var QG=d2,eH=h2,tH=m2,nH=f2;function aH(e){return new r0(e)}function rH(e){return new s0(e)}function sH(e){return new i0(e)}function iH(e){return new Xw(e)}function oH(e){return new k0(e)}function lH(e){return new I0(e)}function uH(e){return new S0(e)}var g2={};Ae(g2,{MAPE:()=>vH,MSE:()=>IH,binaryAccuracy:()=>pH,binaryCrossentropy:()=>cH,categoricalAccuracy:()=>hH,categoricalCrossentropy:()=>mH,cosineProximity:()=>yH,mape:()=>wH,meanAbsoluteError:()=>bH,meanAbsolutePercentageError:()=>xH,meanSquaredError:()=>kH,mse:()=>SH,precision:()=>fH,recall:()=>gH,sparseCategoricalAccuracy:()=>dH});function pH(e,t){return yw(e,t)}function cH(e,t){return AN(e,t)}function dH(e,t){return $N(e,t)}function hH(e,t){return bw(e,t)}function mH(e,t){return xw(e,t)}function fH(e,t){return EN(e,t)}function gH(e,t){return QV(e,t)}function yH(e,t){return gw(e,t)}function bH(e,t){return Lf(e,t)}function xH(e,t){return ju(e,t)}function vH(e,t){return ju(e,t)}function wH(e,t){return ju(e,t)}function kH(e,t){return xo(e,t)}function IH(e,t){return xo(e,t)}function SH(e,t){return xo(e,t)}var y2={};Ae(y2,{modelFromJSON:()=>EU});var b2={};Ae(b2,{l1:()=>NH,l1l2:()=>TH,l2:()=>CH});function TH(e){return new Qc(e)}function NH(e){return PU(e)}function CH(e){return OU(e)}var x2=class extends Sl{constructor(){super(...arguments),this.model=null}setModel(e){if(!(e instanceof Er))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function ch(e,t){return et}var v2=class extends x2{constructor(e){if(super(),e==null&&(e={}),e.restoreBestWeights)throw new Me("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,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=ch:this.mode==="max"?this.monitorFunc=Kk:this.monitor.indexOf("acc")!==-1?this.monitorFunc=Kk:this.monitorFunc=ch,this.monitorFunc===ch&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===ch?1/0:-1/0}async onEpochEnd(e,t){await Zr(t);let n=this.getMonitorValue(t);n!=null&&(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){e==null&&(e={});let t=e[this.monitor];return t==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}};function _H(e){return new v2(e)}var EH={earlyStopping:_H},AH=H();AH.registerFlag("KEEP_INTERMEDIATE_TENSORS",()=>!1,e=>{e&&console.warn("Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.")});var Na;(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_QINT16=15]="DT_QINT16",e[e.DT_QUINT16=16]="DT_QUINT16",e[e.DT_UINT16=17]="DT_UINT16",e[e.DT_COMPLEX128=18]="DT_COMPLEX128",e[e.DT_HALF=19]="DT_HALF",e[e.DT_RESOURCE=20]="DT_RESOURCE",e[e.DT_VARIANT=21]="DT_VARIANT",e[e.DT_UINT32=22]="DT_UINT32",e[e.DT_UINT64=23]="DT_UINT64",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",e[e.DT_QINT16_REF=115]="DT_QINT16_REF",e[e.DT_QUINT16_REF=116]="DT_QUINT16_REF",e[e.DT_UINT16_REF=117]="DT_UINT16_REF",e[e.DT_COMPLEX128_REF=118]="DT_COMPLEX128_REF",e[e.DT_HALF_REF=119]="DT_HALF_REF",e[e.DT_RESOURCE_REF=120]="DT_RESOURCE_REF",e[e.DT_VARIANT_REF=121]="DT_VARIANT_REF",e[e.DT_UINT32_REF=122]="DT_UINT32_REF",e[e.DT_UINT64_REF=123]="DT_UINT64_REF"})(Na||(Na={}));var Xk;(function(e){let t;(function(n){n[n.LEGACY=0]="LEGACY",n[n.V1=1]="V1",n[n.V2=2]="V2"})(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))})(Xk||(Xk={}));var _0={};function $H(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};_0[e]=n}function w2(e){return _0[e]}function FH(e){delete _0[e]}function k(e,t,n,a,r){let s=t.inputParams[e];if(s&&s.inputIndexStart!==void 0){let o=s.inputIndexStart,l=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?o+1:s.inputIndexEnd;if(s.type==="tensor")return wn(t.inputNames[s.inputIndexStart],n,a,r);if(s.type==="tensors")return t.inputNames.slice(o,l).map(d=>wn(d,n,a,r));let u=wn(t.inputNames.slice(o)[0],n,a,r),p=u.dataSync();return s.type==="number"?p[0]:v.toNestedArray(u.shape,p)}let i=t.attrParams[e];return i&&i.value}function wn(e,t,n,a){let[r,s]=Yn(e);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[Xh(r,o)]);return i!==void 0?t[Xh(r,i)][s]:void 0}function DH(e,t,n){return t[Xh(e,n.currentContextId)]}function sr(e,t){let[n,a,r]=Yn(e);return[Xh(n,t&&t.currentContextId),a,r]}function Xh(e,t){return t?`${e}-${t}`:e}function Yn(e){let t=e.split(":");if(t.length===1)return[e,0,void 0];let n=t[0],a=t.length===3?t[1]:void 0,r=Number(t[t.length-1]);return[n,r,a]}function vh(e,t,n){let a=k("pad",e,t,n);if(a==="explicit"){a=k("explicitPaddings",e,t,n);let r=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)r[s][0]=a[s*2],r[s][1]=a[s*2+1];return r}return a}function Tr(e){return e.kept?e:ir(e)}var k2={};Ae(k2,{json:()=>RH});var RH=[{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}]}],I2={};Ae(I2,{json:()=>MH});var MH=[{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}]},{tfOpName:"IsNan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],S2={};Ae(S2,{json:()=>PH});var PH=[{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:"TensorListConcatV2",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"}]},{tfOpName:"TensorListLength",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}]},{tfOpName:"TensorListResize",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"size",type:"number"}]}],T2={};Ae(T2,{json:()=>OH});var OH=[{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",defaultValue:.2}]},{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"}]}],N2={};Ae(N2,{json:()=>LH});var LH=[{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"}]},{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:"RandomStandardNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"seed",name:"seed",type:"number",defaultValue:0},{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:"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"}]}],C2={};Ae(C2,{json:()=>zH});var zH=[{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}]}],_2={};Ae(_2,{json:()=>WH});var WH=[{tfOpName:"LowerBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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:"UpperBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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"}]}],E2={};Ae(E2,{json:()=>BH});var BH=[{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"}]}],A2={};Ae(A2,{json:()=>VH});var VH=[{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"}]}],$2={};Ae($2,{json:()=>UH});var UH=[{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"}]},{tfOpName:"ImageProjectiveTransformV3",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"transforms",type:"tensor"},{start:2,name:"outputShape",type:"number[]"},{start:3,name:"fillValue",type:"number"}],attrs:[{tfName:"interpolation",name:"interpolation",type:"string"},{tfName:"fill_mode",name:"fillMode",type:"string"}]}],F2={};Ae(F2,{json:()=>GH});var GH=[{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}]}],D2={};Ae(D2,{json:()=>HH});var HH=[{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:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2},{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}]},{tfOpName:"Einsum",category:"matrices",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"equation",name:"equation",type:"string"},{tfName:"N",name:"n",type:"number",defaultValue:2},{tfName:"T",name:"dtype",type:"dtype"}]}],R2={};Ae(R2,{json:()=>jH});var jH=[{tfOpName:"EuclideanNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",defaultValue:!1}]},{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}]}],M2={};Ae(M2,{json:()=>qH});var qH=[{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:"Cumprod",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"}]},{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"}]}],P2={};Ae(P2,{json:()=>KH});var KH=[{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}]}],O2={};Ae(O2,{json:()=>XH});var XH=[{tfOpName:"SparseFillEmptyRows",category:"sparse",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"denseShape",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}]},{tfOpName:"SparseReshape",category:"sparse",inputs:[{start:0,name:"inputIndices",type:"tensor"},{start:1,name:"inputShape",type:"tensor"},{start:2,name:"newShape",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SparseSegmentMean",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]},{tfOpName:"SparseSegmentSum",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]}],L2={};Ae(L2,{json:()=>YH});var YH=[{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}]}],z2={};Ae(z2,{json:()=>ZH});var ZH=[{tfOpName:"StringNGrams",category:"string",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"dataSplits",type:"tensor"}],attrs:[{tfName:"separator",name:"separator",type:"string"},{tfName:"ngram_widths",name:"nGramWidths",type:"number[]"},{tfName:"left_pad",name:"leftPad",type:"string"},{tfName:"right_pad",name:"rightPad",type:"string"},{tfName:"pad_width",name:"padWidth",type:"number"},{tfName:"preserve_short_sequences",name:"preserveShortSequences",type:"bool"}],outputs:["ngrams","ngrams_splits"]},{tfOpName:"StringSplit",category:"string",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"delimiter",type:"tensor"}],attrs:[{tfName:"skip_empty",name:"skipEmpty",type:"bool"}],outputs:["indices","values","shape"]},{tfOpName:"StringToHashBucketFast",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"num_buckets",name:"numBuckets",type:"number"}]}],W2={};Ae(W2,{json:()=>JH});var JH=[{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:[]},{tfOpName:"BroadcastArgs",category:"transformation",inputs:[{start:0,name:"s0",type:"tensor"},{start:1,name:"s1",type:"tensor"}],attrs:[]}],Yk=class{constructor(){let e=[k2,I2,S2,T2,N2,C2,_2,E2,A2,$2,F2,D2,R2,M2,P2,O2,L2,z2,W2],t=[].concat(...e.map(n=>n.json));this.opMappers=t.reduce((n,a)=>(n[a.tfOpName]=a,n),{})}static get Instance(){return this._instance||(this._instance=new this)}transformGraph(e,t={}){let n=e.node,a=[],r=[],s=[],i=n.reduce((m,f)=>(m[f.name]=this.mapNode(f),f.op.startsWith("Placeholder")?a.push(m[f.name]):f.op==="Const"?r.push(m[f.name]):(f.input==null||f.input.length===0)&&s.push(m[f.name]),m),{}),o=[],l=[],u={},p={};t!=null&&(u=this.mapSignatureEntries(t.inputs),p=this.mapSignatureEntries(t.outputs));let d=Object.keys(i);d.forEach(m=>{let f=i[m];f.inputNames.forEach((g,y)=>{let[b,,x]=sr(g),w=i[b];if(w.outputs!=null){let I=w.outputs.indexOf(x);if(I!==-1){let T=`${b}:${I}`;f.inputNames[y]=T}}f.inputs.push(w),w.children.push(f)})}),Object.keys(p).length===0?d.forEach(m=>{let f=i[m];f.children.length===0&&l.push(f)}):Object.keys(p).forEach(m=>{let[f]=sr(m),g=i[f];g!=null&&(g.signatureKey=p[m],l.push(g))}),Object.keys(u).length>0?Object.keys(u).forEach(m=>{let[f]=sr(m),g=i[f];g&&(g.signatureKey=u[m],o.push(g))}):o=a;let c={};e.library!=null&&e.library.function!=null&&(c=e.library.function.reduce((m,f)=>(m[f.signature.name]=this.mapFunction(f),m),{}));let h={nodes:i,inputs:o,outputs:l,weights:r,placeholders:a,signature:t,functions:c};return s.length>0&&(h.initNodes=s),h}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,n)=>(t[e[n].name]=n,t),{})}mapNode(e){let t=w2(e.op)||this.opMappers[e.op]||{};e.attr==null&&(e.attr={});let n={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(a=>a.startsWith("^")?a.slice(1):a),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr,outputs:t.outputs};return t.inputs!=null&&(n.inputParams=t.inputs.reduce((a,r)=>(a[r.name]={type:r.type,inputIndexStart:r.start,inputIndexEnd:r.end},a),{})),t.attrs!=null&&(n.attrParams=t.attrs.reduce((a,r)=>{let s=r.type,i;switch(r.type){case"string":i=Qb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Qb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=ix(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ix(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=tx(e.attr,r.tfName,r.defaultValue||0),i===void 0&&!!r.tfDeprecatedName&&(i=tx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=sx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=sx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":i=ex(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ex(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":i=lx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=lx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=rx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=rx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=ox(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ox(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=nx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=nx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=ax(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ax(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=Zk(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Zk(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${r.type} for op: ${e.op}`)}return a[r.name]={value:i,type:s},a},{})),n}mapFunction(e){let t=e.nodeDef,n=[],a=[],r={};t!=null&&(r=t.reduce((u,p)=>(u[p.name]=this.mapNode(p),p.op==="Const"&&a.push(u[p.name]),u),{}));let s=[],i=[];e.signature.inputArg.forEach(u=>{let[p]=sr(u.name),d={name:p,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:E0(u.type),type:"dtype"}},children:[]};d.signatureKey=u.name,s.push(d),r[p]=d}),Object.keys(r).forEach(u=>{let p=r[u];p.inputNames.forEach((d,c)=>{let[h,,m]=sr(d),f=r[h];if(f.outputs!=null){let g=f.outputs.indexOf(m);if(g!==-1){let y=`${h}:${g}`;p.inputNames[c]=y}}p.inputs.push(f),f.children.push(p)})});let o=e.ret;e.signature.outputArg.forEach(u=>{let[p,d]=sr(o[u.name]),c=r[p];c!=null&&(c.defaultOutput=d,i.push(c))});let l=this.mapArgsToSignature(e);return{nodes:r,inputs:s,outputs:i,weights:a,placeholders:n,signature:l}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n),t),{}),outputs:e.signature.outputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n,e.ret),t),{})}}mapArgToTensorInfo(e,t){let n=e.name;return t!=null&&(n=t[n]),{name:n,dtype:e.type}}};function QH(e){let t=H().global;if(typeof t.atob!="undefined")return t.atob(e);if(typeof Buffer!="undefined")return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function B2(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):QH(e);return t?n:n.toLowerCase()}function Qb(e,t,n,a=!1){let r=e[t];return r!=null?B2(r.s,a):n}function ex(e,t,n){let a=e[t];return a?a.b:n}function tx(e,t,n){let a=e[t]||{},r=a.i!=null?a.i:a.f!=null?a.f:n;return typeof r=="number"?r:parseInt(r,10)}function E0(e){switch(typeof e=="string"&&(e=Na[e]),e){case Na.DT_FLOAT:case Na.DT_HALF:return"float32";case Na.DT_INT32:case Na.DT_INT64:case Na.DT_INT8:case Na.DT_UINT8:return"int32";case Na.DT_BOOL:return"bool";case Na.DT_DOUBLE:return"float32";case Na.DT_STRING:return"string";default:return null}}function Zk(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function nx(e,t,n){let a=e[t];return a&&a.type?E0(a.type):n}function ax(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>E0(r)):n}function V2(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function rx(e,t,n){let a=e[t];return a&&a.shape?V2(a.shape):n}function sx(e,t,n){let a=e[t];return a?((a.list.f&&a.list.f.length?a.list.f:a.list.i)||[]).map(r=>typeof r=="number"?r:parseInt(r,10)):n}function ix(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>B2(s,a)):n}function ox(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>V2(r)):n}function lx(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var e6=class{constructor(e,t,n){this.node=e,this.tensorMap=t,this.context=n,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(a=>this.getInput(a)),e.rawAttrs!=null&&(this.attrs=Object.keys(e.rawAttrs).reduce((a,r)=>(a[r]=this.getAttr(r),a),{}))}getInput(e){return wn(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return wn(e,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return tx(this.node.rawAttrs,e,t);if(n.s!=null)return Qb(this.node.rawAttrs,e,t);if(n.b!=null)return ex(this.node.rawAttrs,e,t);if(n.shape!=null)return rx(this.node.rawAttrs,e,t);if(n.type!=null)return nx(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return sx(this.node.rawAttrs,e,t);if(n.list.s!=null)return ix(this.node.rawAttrs,e,t);if(n.list.shape!=null)return ox(this.node.rawAttrs,e,t);if(n.list.b!=null)return lx(this.node.rawAttrs,e,t);if(n.list.type!=null)return ax(this.node.rawAttrs,e,t)}return t}},pn={};Ae(pn,{OP_SCOPE_SUFFIX:()=>Mx,abs:()=>Lt,acos:()=>Xx,acosh:()=>Yx,add:()=>Y,addN:()=>KS,all:()=>jm,any:()=>Qp,argMax:()=>ri,argMin:()=>Zx,asin:()=>Jx,asinh:()=>Qx,atan:()=>ev,atan2:()=>tv,atanh:()=>nv,avgPool:()=>ya,avgPool3d:()=>rv,basicLSTMCell:()=>JS,batchNorm:()=>ks,batchNorm2d:()=>sv,batchNorm3d:()=>iv,batchNorm4d:()=>ov,batchToSpaceND:()=>Pc,bincount:()=>lv,booleanMaskAsync:()=>RT,broadcastArgs:()=>QS,broadcastTo:()=>Xs,buffer:()=>Oe,cast:()=>oe,ceil:()=>uv,clipByValue:()=>en,clone:()=>ir,complex:()=>Ar,concat:()=>Ze,concat1d:()=>pv,concat2d:()=>cv,concat3d:()=>dv,concat4d:()=>hv,conv1d:()=>qm,conv2d:()=>$t,conv2dTranspose:()=>Km,conv3d:()=>fv,conv3dTranspose:()=>gv,cos:()=>Oc,cosh:()=>Xm,cosineWindow:()=>yf,cumprod:()=>ec,cumsum:()=>Ym,denseBincount:()=>zh,depthToSpace:()=>yv,depthwiseConv2d:()=>Is,diag:()=>tT,dilation2d:()=>bv,div:()=>he,divNoNan:()=>xv,dot:()=>vv,dropout:()=>qv,einsum:()=>nT,elu:()=>Lu,enclosingPowerOfTwo:()=>Kv,equal:()=>ea,erf:()=>wv,euclideanNorm:()=>Sv,exp:()=>fn,expandDims:()=>Zt,expm1:()=>Tv,eye:()=>Zm,fft:()=>Hc,fill:()=>gn,floor:()=>Wu,floorDiv:()=>Hm,fused:()=>kl,gather:()=>Bu,gatherND:()=>LT,greater:()=>Cn,greaterEqual:()=>Fr,ifft:()=>wl,imag:()=>Dc,image:()=>za,inTopKAsync:()=>zT,irfft:()=>hf,isFinite:()=>Nv,isInf:()=>Cv,isNaN:()=>_v,leakyRelu:()=>Lc,less:()=>Jm,lessEqual:()=>Ss,linalg:()=>Zv,linspace:()=>oT,localResponseNormalization:()=>Ev,log:()=>ta,log1p:()=>zc,logSigmoid:()=>Av,logSoftmax:()=>ef,logSumExp:()=>tf,logicalAnd:()=>$a,logicalNot:()=>Wc,logicalOr:()=>nf,logicalXor:()=>$v,losses:()=>ZT,lowerBound:()=>uT,matMul:()=>Fe,max:()=>ma,maxPool:()=>Dt,maxPool3d:()=>Fv,maxPoolWithArgmax:()=>pT,maximum:()=>dr,mean:()=>Nt,meshgrid:()=>cT,min:()=>bl,minimum:()=>Vu,mirrorPad:()=>Dv,mod:()=>Rv,moments:()=>Bc,movingAverage:()=>MT,mul:()=>z,multiRNNCell:()=>dT,multinomial:()=>hT,neg:()=>vt,norm:()=>zu,notEqual:()=>oi,oneHot:()=>gl,ones:()=>Jn,onesLike:()=>na,op:()=>L,outerProduct:()=>mT,pad:()=>ba,pad1d:()=>fT,pad2d:()=>gT,pad3d:()=>yT,pad4d:()=>bT,pool:()=>Mv,pow:()=>$r,prelu:()=>Uc,print:()=>zx,prod:()=>Pv,raggedGather:()=>xT,raggedRange:()=>vT,raggedTensorToTensor:()=>wT,rand:()=>kT,randomGamma:()=>IT,randomNormal:()=>rf,randomStandardNormal:()=>ST,randomUniform:()=>Uu,range:()=>xl,real:()=>yl,reciprocal:()=>zv,relu:()=>Xe,relu6:()=>sf,reshape:()=>W,reverse:()=>ga,reverse1d:()=>TT,reverse2d:()=>NT,reverse3d:()=>CT,reverse4d:()=>_T,rfft:()=>jc,round:()=>of,rsqrt:()=>lf,scalar:()=>be,scatterND:()=>PT,searchSorted:()=>af,selu:()=>uf,separableConv2d:()=>Ts,setdiff1dAsync:()=>ET,sigmoid:()=>ha,sign:()=>Wv,signal:()=>YT,sin:()=>pf,sinh:()=>cf,slice:()=>Be,slice1d:()=>Gc,slice2d:()=>df,slice3d:()=>fo,slice4d:()=>vl,softmax:()=>Ka,softplus:()=>mo,spaceToBatchND:()=>Vc,sparse:()=>JT,sparseToDense:()=>OT,spectral:()=>XT,split:()=>zn,sqrt:()=>un,square:()=>lt,squaredDifference:()=>mf,squeeze:()=>Ns,stack:()=>Ft,step:()=>go,stridedSlice:()=>Bv,string:()=>QT,sub:()=>pe,sum:()=>fe,tan:()=>Vv,tanh:()=>si,tensor:()=>In,tensor1d:()=>Ke,tensor2d:()=>Aa,tensor3d:()=>Rc,tensor4d:()=>Da,tensor5d:()=>AT,tensor6d:()=>$T,tile:()=>Ln,topk:()=>Uv,transpose:()=>Ee,truncatedNormal:()=>ff,unique:()=>Gv,unsortedSegmentSum:()=>gf,unstack:()=>ct,upperBound:()=>FT,variable:()=>Hv,where:()=>mn,whereAsync:()=>jv,zeros:()=>It,zerosLike:()=>qe});var t6=(e,t,n,a=pn)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[a.add(k("a",e,t,n),k("b",e,t,n))];case"AddN":return[a.addN(k("tensors",e,t,n))];case"FloorMod":case"Mod":return[a.mod(k("a",e,t,n),k("b",e,t,n))];case"Mul":return[a.mul(k("a",e,t,n),k("b",e,t,n))];case"RealDiv":case"Div":return[a.div(k("a",e,t,n),k("b",e,t,n))];case"DivNoNan":return[a.divNoNan(k("a",e,t,n),k("b",e,t,n))];case"FloorDiv":return[a.floorDiv(k("a",e,t,n),k("b",e,t,n))];case"Sub":return[a.sub(k("a",e,t,n),k("b",e,t,n))];case"Minimum":return[a.minimum(k("a",e,t,n),k("b",e,t,n))];case"Maximum":return[a.maximum(k("a",e,t,n),k("b",e,t,n))];case"Pow":return[a.pow(k("a",e,t,n),k("b",e,t,n))];case"SquaredDifference":return[a.squaredDifference(k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},n6=(e,t,n,a=pn)=>{switch(e.op){case"Abs":case"ComplexAbs":return[a.abs(k("x",e,t,n))];case"Acos":return[a.acos(k("x",e,t,n))];case"Acosh":return[a.acosh(k("x",e,t,n))];case"Asin":return[a.asin(k("x",e,t,n))];case"Asinh":return[a.asinh(k("x",e,t,n))];case"Atan":return[a.atan(k("x",e,t,n))];case"Atan2":return[a.atan2(k("x",e,t,n),k("y",e,t,n))];case"Atanh":return[a.atanh(k("x",e,t,n))];case"Ceil":return[a.ceil(k("x",e,t,n))];case"Complex":return[a.complex(k("real",e,t,n),k("imag",e,t,n))];case"Cos":return[a.cos(k("x",e,t,n))];case"Cosh":return[a.cosh(k("x",e,t,n))];case"Elu":return[a.elu(k("x",e,t,n))];case"Erf":return[a.erf(k("x",e,t,n))];case"Exp":return[a.exp(k("x",e,t,n))];case"Expm1":return[a.expm1(k("x",e,t,n))];case"Floor":return[a.floor(k("x",e,t,n))];case"Log":return[a.log(k("x",e,t,n))];case"Log1p":return[a.log1p(k("x",e,t,n))];case"Imag":return[a.imag(k("x",e,t,n))];case"Neg":return[a.neg(k("x",e,t,n))];case"Reciprocal":return[a.reciprocal(k("x",e,t,n))];case"Real":return[a.real(k("x",e,t,n))];case"Relu":return[a.relu(k("x",e,t,n))];case"Round":return[a.round(k("x",e,t,n))];case"Selu":return[a.selu(k("x",e,t,n))];case"Sigmoid":return[a.sigmoid(k("x",e,t,n))];case"Sin":return[a.sin(k("x",e,t,n))];case"Sign":return[a.sign(k("x",e,t,n))];case"Sinh":return[a.sinh(k("x",e,t,n))];case"Softplus":return[a.softplus(k("x",e,t,n))];case"Sqrt":return[a.sqrt(k("x",e,t,n))];case"Square":return[a.square(k("x",e,t,n))];case"Tanh":return[a.tanh(k("x",e,t,n))];case"Tan":return[a.tan(k("x",e,t,n))];case"ClipByValue":return[a.clipByValue(k("x",e,t,n),k("clipValueMin",e,t,n),k("clipValueMax",e,t,n))];case"Relu6":return[a.relu6(k("x",e,t,n))];case"Rsqrt":return[a.rsqrt(wn(e.inputNames[0],t,n))];case"Prod":return[a.prod(k("x",e,t,n),k("axes",e,t,n))];case"LeakyRelu":return[a.leakyRelu(k("x",e,t,n),k("alpha",e,t,n))];case"Prelu":return[a.prelu(k("x",e,t,n),k("alpha",e,t,n))];case"IsNan":return[a.isNaN(wn(e.inputNames[0],t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Ea(e,t,n=""){if(!(typeof e=="number"||typeof t=="number")){v.assert(e.length===t.length,()=>n+` Shapes ${e} and ${t} must match`);for(let a=0;an+` Shapes ${e} and ${t} must match`)}}}function Jk(e){return!(typeof e=="number"||e.some(t=>t<0))}function $p(e,t,n){let a=ux(e,n),r=!Jk(a);if(r&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${a}`);if(r&&t.forEach(s=>{a=ux(s.shape,a)}),!Jk(a))throw new Error(`Non-fully-defined elementShape: ${a}`);return a}function ux(e,t){if(typeof e=="number")return t;if(typeof t=="number")return e;if(e.length!==t.length)throw new Error(`Incompatible ranks during merge: ${e} vs. ${t}`);let n=[];for(let a=0;a=0&&s>=0&&r!==s)throw new Error(`Incompatible shape during merge: ${e} vs. ${t}`);n[a]=r>=0?r:s}return n}var a6=class{constructor(e,t,n,a,r,s,i){this.name=e,this.dtype=t,this.maxSize=n,this.elementShape=a,this.identicalElementShapes=r,this.dynamicSize=s,this.clearAfterRead=i,this.tensors=[],this.closed_=!1,this.idTensor=be(0),Jt(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!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()}`);let 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(t=>this.read(t))}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}`);let n=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, +2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(l!=null){let u={};for(let h of Object.keys(Sa))u[h]=Sa[h];for(let h of Object.keys(n))u[h]=n[h];let p=s.config;p.customObjects=u;let d=Object.assign({},Sa);for(let h of Object.keys(n))Sa[h]=n[h];Ub(s.config);let c=l(o,s.config,n,r);return Sa=Object.assign({},d),c}else{let u=Object.assign({},Sa);for(let d of Object.keys(n))Sa[d]=n[d];let p=new o(s.config);return Sa=Object.assign({},u),p}}}function B4(e,t){return et?1:0}function oh(e,t){return-1*B4(e,t)}function as(e){if(e==null)return e;let t=[];for(let n of e)t.indexOf(n)===-1&&t.push(n);return t}function V4(e){if(e==null)throw new V(`Invalid value in obj: ${JSON.stringify(e)}`);for(let t in e)if(e.hasOwnProperty(t))return!1;return!0}function yo(e,t,n){if(n!=null&&e.indexOf(n)<0)throw new V(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function tw(e,t,n=0,a=1/0){return ar(n>=0),ar(a>=n),Array.isArray(e)&&e.length>=n&&e.length<=a&&e.every(r=>typeof r===t)}function Qt(e,t){Array.isArray(e)?(v.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>Qt(n,`element ${a+1} of ${t}`))):v.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${oN(e)}.`)}function oN(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>oN(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function U4(e,t,n){let a=n!=null?n():v.now(),r;return(...s)=>{let i=n!=null?n():v.now();return i-a0){let n=`${e}_${t}`;return al.set(n,1),n}else return e}var J4=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function hN(e){return!!e.match(J4)}function Q4(e){return e===parseInt(e.toString(),10)}function rs(e,t,n){t==null&&(t=0),n==null&&(n=e.length);let a=1;for(let r=t;rt&&(t=a)}return t}function Ha(e,t){if(t{if(e.shape.length!==2)throw new V(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);let n=Xc(e,1);return Gb(n,[1,t,1])})}function tV(e){let t=[rs(e.shape)];return W(e,t)}function nV(e){if(e.rank<=1)throw new V(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);let t=[e.shape[0],rs(e.shape,1)];return W(e,t)}function Zs(e,t,n){return P(()=>{switch(e.rank){case 1:return Gc(e,t,n);case 2:return df(e,[t,0],[n,e.shape[1]]);case 3:return fo(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return vl(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return Be(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return Be(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 V(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}})}function xb(e,t,n){return P(()=>{switch(e.rank){case 1:return Gc(e,t,n);case 2:return df(e,[0,t],[e.shape[0],n]);case 3:return fo(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return vl(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new V(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function uh(e,t,n,a){return P(()=>{switch(e.rank){case 1:return Gc(e,t,n);case 2:switch(a){case 1:return Zs(e,t,n);case 2:return xb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}case 3:switch(a){case 1:return Zs(e,t,n);case 2:return fo(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return xb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}case 4:switch(a){case 1:return Zs(e,t,n);case 2:return vl(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return vl(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return xb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}default:throw new V(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function nw(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),Ze(e,t)}function $k(e,t){switch(e.rank){case 1:return pv([e,t]);case 2:return cv([e,t],0);case 3:return dv([e,t],0);case 4:return hv([e,t],0);default:throw new V(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Gb(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new V(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return Ln(e,t)}function Ef(e,t=0,n=1,a,r){return rf(e,t,n,a,r)}function or(e,t,n,a){if(e.rank<2||t.rank<2)throw new Me(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3){let r=e.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(r!==s)throw new Me(`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(e.rank===2&&t.rank===2)return kl.matMul({a:e,b:t,transposeA:!1,transposeB:!1,bias:a?Hb(e.rank,a,ja()):null,activation:n});{let r=e.shape.slice(),s=r.pop();e=W(e,[-1,s]);let i=t.shape.slice(),o=i.pop(),l=i.pop(),u=[...i,o],p=Array.from({length:t.rank},(m,f)=>f===0?t.rank-2:f<=t.rank-2?f-1:f);t=W(Ee(t,p),[l,-1]);let d=[...r,...u],c=!1,h=!1;return W(kl.matMul({a:e,b:t,transposeA:c,transposeB:h,bias:a?Hb(e.rank,a,ja()):null,activation:n}),d)}}function mN(e,t,n){return P(()=>(Array.isArray(t)?t=Ke(t,"int32"):t=le(t,"int32"),Bu(e,t,n)))}function Yc(e){return z(e,e)}function Hb(e,t,n){let a=t.shape;if(t.rank!==1&&t.rank!==e)throw new V(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(e===5){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1,1,1]):W(t,[1,a[3],a[0],a[1],a[2]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,1,1,a[0]]):W(t,[1].concat(a))}else if(e===4){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1,1]):W(t,[1,a[2],a[0],a[1]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,1,a[0]]):W(t,[1].concat(a))}else if(e===3){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1]):W(t,[1,a[1],a[0]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,a[0]]):W(t,[1].concat(a))}else if(e<3)return t;throw new V(`Unsupported input rank by biasAdd: ${t.rank}`)}function Xa(e,t,n){return P(()=>(n==null&&(n=ja()),Rt(n),Y(e,Hb(e.rank,t,n))))}function aV(e,t=1){if(t!==1)throw new Me(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Lu(e)}function rV(e){return P(()=>he(e,Y(Lt(e),1)))}function fN(e,t,n,a){return P(()=>qv(e,t,n,a))}function sV(e){return P(()=>{let t=Y(.5,z(.2,e));return en(t,0,1)})}function Zc(e,t,n=!1){return n?e():t()}var iV=["fanIn","fanOut","fanAvg"],oV=["normal","uniform","truncatedNormal"];function lV(e){yo(iV,"FanMode",e)}function uV(e){yo(oV,"Distribution",e)}var Ra=class extends ne.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},aw=class extends Ra{apply(e,t){return It(e,t)}};aw.className="Zeros";ne.registerClass(aw);var $f=class extends Ra{apply(e,t){return Jn(e,t)}};$f.className="Ones";ne.registerClass($f);var rw=class extends Ra{constructor(e){if(super(),typeof e!="object")throw new V(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new V(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return P(()=>z(xe(this.value),Jn(e,t)))}getConfig(){return{value:this.value}}};rw.className="Constant";ne.registerClass(rw);var sw=class extends Ra{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 Uu(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};sw.className="RandomUniform";ne.registerClass(sw);var iw=class extends Ra{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(t=t||"float32",t!=="float32"&&t!=="int32")throw new Me(`randomNormal does not support dType ${t}.`);return Ef(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};iw.className="RandomNormal";ne.registerClass(iw);var ow=class extends Ra{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(t=t||"float32",t!=="float32"&&t!=="int32")throw new Me(`truncatedNormal does not support dType ${t}.`);return ff(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};ow.className="TruncatedNormal";ne.registerClass(ow);var lw=class extends Ra{constructor(e){super(),this.gain=e.gain!=null?e.gain:1}apply(e,t){return P(()=>{if(e.length!==2||e[0]!==e[1])throw new V("Identity matrix initializer can only be used for 2D square matrices.");return z(this.gain,Zm(e[0]))})}getConfig(){return{gain:this.gain}}};lw.className="Identity";ne.registerClass(lw);function pV(e,t="channelsLast"){let n,a;if(Rt(t),e.length===2)n=e[0],a=e[1];else if([3,4,5].indexOf(e.length)!==-1){if(t==="channelsFirst"){let r=rs(e,2);n=e[1]*r,a=e[0]*r}else if(t==="channelsLast"){let r=rs(e,0,e.length-2);n=e[e.length-2]*r,a=e[e.length-1]*r}}else{let r=rs(e);n=Math.sqrt(r),a=Math.sqrt(r)}return[n,a]}var Bn=class extends Ra{constructor(e){if(super(),e.scale<0)throw new V(`scale must be a positive float. Got: ${e.scale}`);this.scale=e.scale==null?1:e.scale,this.mode=e.mode==null?"fanIn":e.mode,lV(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,uV(this.distribution),this.seed=e.seed}apply(e,t){let n=pV(e),a=n[0],r=n[1],s=this.scale;if(this.mode==="fanIn"?s/=Math.max(1,a):this.mode==="fanOut"?s/=Math.max(1,r):s/=Math.max(1,(a+r)/2),this.distribution==="normal"){let i=Math.sqrt(s);if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Me(`${this.getClassName()} does not support dType ${t}.`);return ff(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return Uu(e,-i,i,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Bn.className="VarianceScaling";ne.registerClass(Bn);var Af=class extends Bn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Af.className="GlorotUniform";ne.registerClass(Af);var Ff=class extends Bn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Ff.className="GlorotNormal";ne.registerClass(Ff);var Df=class extends Bn{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Df.className="HeNormal";ne.registerClass(Df);var Rf=class extends Bn{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Rf.className="HeUniform";ne.registerClass(Rf);var Mf=class extends Bn{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Mf.className="LeCunNormal";ne.registerClass(Mf);var Pf=class extends Bn{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Pf.className="LeCunNormal";ne.registerClass(Pf);var uw=class extends Ra{constructor(e){if(super(),this.DEFAULT_GAIN=1,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,this.seed!=null)throw new Me("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return P(()=>{if(e.length<2)throw new Me("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.`);let n=e[0]>e[1]?[e[1],e[0]]:e,a=Ef(n,0,1,"float32"),r=Zv.gramSchmidt(a);return e[0]>e[1]&&(r=Ee(r)),z(this.gain,r)})}getConfig(){return{gain:this.gain,seed:this.seed}}};uw.className="Orthogonal";ne.registerClass(uw);var Ak={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 Fk(e,t={}){return Kc(e,ne.SerializationMap.getMap().classNameMap,t,"initializer")}function Ct(e){return ew(e)}function St(e){if(typeof e=="string"){let t=e in Ak?Ak[e]:e;if(t==="GlorotNormal")return new Ff;if(t==="GlorotUniform")return new Af;if(t==="HeNormal")return new Df;if(t==="HeUniform")return new Rf;if(t==="LeCunNormal")return new Mf;if(t==="LeCunUniform")return new Pf;{let n={};return n.className=t,n.config={},Fk(n)}}else return e instanceof Ra?e:Fk(e)}function jb(e){return Array.isArray(e)&&Array.isArray(e[0])}function Wh(e){return e.length===0?[]:Array.isArray(e[0])?e:[e]}function Ne(e){let t;if(Array.isArray(e)){if(e.length!==1)throw new V(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function tt(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(e.length===1)return e=e,e[0];throw new V(`Expected exactly 1 Shape; got ${e.length}`)}else return e}function Bh(e){let t=0;for(let n of e)n.shape.length===0?t+=1:t+=n.shape.reduce((a,r)=>a*r);return t}var Dk="Variable",gN=class{constructor(e,t="float32",n=Dk,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=uN(),n=n==null?Dk:n,this.originalName=cN(n),this.name=dN(this.originalName),this.trainable_=a,this.constraint=r,this.val=Hv(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),cV(this.val,e),this.val.id!==e.id&&(this.val.assign(e),this.constraint!=null&&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 cV(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function qb(e){return e.map(t=>t.read())}function pw(e){e.forEach(t=>{t[0].write(t[1])})}var zt=class{constructor(e){this.dtype=e.dtype,this.shape=e.shape,e.shape!=null?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}},Ba=class{constructor(e,t,n,a,r,s,i){this.dtype=e,this.shape=t,this.sourceLayer=n,this.inputs=a,this.callArgs=r,this.outputTensorIndex=i,this.id=uN(),s!=null&&(this.originalName=cN(s),this.name=dN(this.originalName)),this.rank=t.length}},dV=0,Of=class{constructor(e,t){this.callArgs=t,this.id=dV++,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(let n of e.inboundLayers)n!=null&&n.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){let e=[];for(let t of this.inboundLayers)t!=null?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},hV=0,Ge=class extends ne.Serializable{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=hV++,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){let n=this.getClassName();t=Sr(n)+"_"+_f(n)}if(this.name=t,this.trainable_=e.trainable==null?!0:e.trainable,e.inputShape!=null||e.batchInputShape!=null){let n;if(e.batchInputShape!=null)n=e.batchInputShape;else if(e.inputShape!=null){let r=null;e.batchSize!=null&&(r=e.batchSize),n=[r].concat(e.inputShape)}this.batchInputShape=n;let a=e.dtype;a==null&&(a=e.inputDType),a==null&&(a="float32"),this.dtype=a}e.weights!=null?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(this.inboundNodes.length===0)throw new Wa(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new V(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return On(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return On(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new Ir(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new Ir(`Layer ${this.name} is not connected, no input to return.`);return On(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new Ir(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Ir(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return On(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=xt(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=xt(this.inputSpec);if(e.length!==t.length)throw new V(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let n=0;nr.maxNDim)throw new V(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${r.maxNDim}, found ndim=${s}`);if(r.minNDim!=null&&s=0?i[l]:i[i.length+l];if(u!=null&&[u,null].indexOf(p)===-1)throw new V(`Input ${n} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${u} but got shape ${i}.`)}}if(r.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(e);let s=[];for(let i of xt(e))s.push(i.shape);this.build(On(s)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&r&&(this._refCount=1)}if(this.assertInputCompatibility(e),r){let s=this.call(e,t),i=xt(s),o=[];for(let l of i)n.indexOf(l)!==-1&&(l=l.clone()),o.push(l);if(s=On(o),this.activityRegularizer!=null)throw new Me("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=mV(e),i=this.computeOutputShape(s),o,l=fV(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?s[0]:s),i!=null&&i.length>0&&Array.isArray(i[0])?o=i.map((u,p)=>new Ba(l,u,this,xt(e),t,this.name,p)):o=new Ba(l,i,this,xt(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new Me("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return o}})}warnOnIncompatibleInputShape(e){if(this.batchInputShape!=null)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,a)=>{n!=null&&e[a]!=null&&e[a]!==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(this.inboundNodes==null||this.inboundNodes.length===0)throw new Ir(`The layer ${this.name} has never been called and thus has no defined output shape.`);let e=[];for(let t of this.inboundNodes){let n=JSON.stringify(t.outputShapes);e.indexOf(n)===-1&&e.push(n)}if(e.length===1){let t=this.inboundNodes[0].outputShapes;return Array.isArray(t)&&Array.isArray(t[0])&&t.length===1?t[0]:t}else throw new Ir(`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 Wa(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Bh(this.weights)}build(e){this.built=!0}getWeights(e=!1){return qb(e?this.trainableWeights:this.weights)}setWeights(e){P(()=>{let t=this.weights;if(t.length!==e.length)throw new V(`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(t.length===0)return;let n=[],a=qb(t);for(let r=0;rr.apply(u.read())),s==null&&(s=!0),s?this._trainableWeights.push(u):this._nonTrainableWeights.push(u),u}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){e==null||Array.isArray(e)&&e.length===0||(e=xt(e),this._losses!==void 0&&this._losses!==null&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(t!=null)if(Array.isArray(t))t.forEach(n=>{if(n!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return t}addInboundNode(e,t,n,a,r,s,i=null){let o=xt(e);t=xt(t),n=xt(n),a=xt(a),r=Wh(r),s=Wh(s);let l=[],u=[],p=[];for(let d of o)l.push(d.sourceLayer),u.push(d.nodeIndex),p.push(d.tensorIndex);new Of({outboundLayer:this,inboundLayers:l,nodeIndices:u,tensorIndices:p,inputTensors:o,outputTensors:t,inputMasks:n,outputMasks:a,inputShapes:r,outputShapes:s},i);for(let d=0;de.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)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(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return--this._refCount===0&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}};function mV(e){e=xt(e);let t=[];for(let n of e)t.push(n.shape);return On(t)}function fV(e){return"float32"}function yN(e,t,n){if((t==null||n!=null&&n>0)&&(t=e.sourceLayer,n=e.nodeIndex),t.inboundNodes.length===0)return[e];{let a=t.inboundNodes[n];if(a.inboundLayers.length===0)return a.inputTensors;{let r=[];for(let s=0;sm.name),l=[],u=t.names();for(let m of o)u.indexOf(m)!==-1?l.push(t.getValue(m)):l.push(null);a!=null&&(a.maxNumTensors=-1/0,a.minNumTensors=1/0);let p=o.join(",")+"|"+t.names().sort().join(","),d=Vh.get(p),c;if(d==null){let m=bV(i,t);d=m.sorted,c=m.recipientCounts,Vh.put(p,d),Uh.put(p,c)}c={},r||Object.assign(c,Uh.get(p));let h=new js(t);for(let m=0;ma.maxNumTensors&&(a.maxNumTensors=$),$0,()=>"Expected at least one fetch, got none");let n=[],a={};if(e.length===1){let r=Rk(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=Rk(s,t);for(let l of i)r.has(l.name)||(n.push(l),r.add(l.name));for(let l in o)a[l]==null&&(a[l]=new Set),o[l].forEach(u=>a[l].add(u))}}return{sorted:n,recipientCounts:xV(a)}}function xV(e){let t={};for(let n in e)t[n]=e[n].size;return t}function Rk(e,t){let n=new Set,a=[],r={};for(let o of t.names())n.add(o);let s=[],i=[];for(s.push(e);s.length>0;){let o=s[s.length-1];if(n.has(o.name)){s.pop();continue}let l=i[i.length-1]===s.length-1;if(o.inputs.length===0||l)s.pop(),a.push(o),n.add(o.name),l&&i.pop();else{i.push(s.length-1);for(let u of o.inputs)r[u.name]==null&&(r[u.name]=new Set),r[u.name].add(o.name),!n.has(u.name)&&s.push(u)}}return{sorted:a,recipientMap:r}}function vV(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;a100,yV);var xN={};$e(xN,{maxNorm:()=>kV,minMaxNorm:()=>TV,nonNeg:()=>SV,unitNorm:()=>IV});function cw(e,t){return P(()=>un(fe(z(e,e),t,!0)))}var Jc=class extends ne.Serializable{getConfig(){return{}}},dw=class extends Jc{constructor(e){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>{let t=cw(e,this.axis),n=en(t,0,this.maxValue);return z(e,he(n,Y(Gt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};dw.className="MaxNorm";ne.registerClass(dw);var hw=class extends Jc{constructor(e){super(),this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>he(e,Y(Gt(),cw(e,this.axis))))}getConfig(){return{axis:this.axis}}};hw.className="UnitNorm";ne.registerClass(hw);var mw=class extends Jc{apply(e){return Xe(e)}};mw.className="NonNeg";ne.registerClass(mw);var fw=class extends Jc{constructor(e){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>{let t=cw(e,this.axis),n=Y(z(this.rate,en(t,this.minValue,this.maxValue)),z(1-this.rate,t));return z(e,he(n,Y(Gt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};fw.className="MinMaxNorm";ne.registerClass(fw);var Mk={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function qt(e){return ew(e)}function Pk(e,t={}){return Kc(e,ne.SerializationMap.getMap().classNameMap,t,"constraint")}function Kt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in Mk?Mk[e]:e,config:{}};return Pk(t)}else return e instanceof Jc?e:Pk(e)}function kV(e){return new dw(e)}function IV(e){return new hw(e)}function SV(){return new mw}function TV(e){return new fw(e)}var vN={};$e(vN,{constant:()=>_V,glorotNormal:()=>MV,glorotUniform:()=>RV,heNormal:()=>PV,heUniform:()=>OV,identity:()=>FV,leCunNormal:()=>LV,leCunUniform:()=>zV,ones:()=>CV,orthogonal:()=>WV,randomNormal:()=>$V,randomUniform:()=>EV,truncatedNormal:()=>AV,varianceScaling:()=>DV,zeros:()=>NV});function NV(){return new aw}function CV(){return new $f}function _V(e){return new rw(e)}function EV(e){return new sw(e)}function $V(e){return new iw(e)}function AV(e){return new ow(e)}function FV(e){return new lw(e)}function DV(e){return new Bn(e)}function RV(e){return new Af(e)}function MV(e){return new Ff(e)}function PV(e){return new Df(e)}function OV(e){return new Rf(e)}function LV(e){return new Mf(e)}function zV(e){return new Pf(e)}function WV(e){return new uw(e)}var wN={};$e(wN,{Layer:()=>Ge,RNN:()=>mr,RNNCell:()=>ad,activation:()=>hG,add:()=>kG,alphaDropout:()=>sH,average:()=>IG,averagePooling1d:()=>T0,averagePooling2d:()=>N0,averagePooling3d:()=>C0,avgPool1d:()=>FG,avgPool2d:()=>RG,avgPool3d:()=>PG,avgPooling1d:()=>DG,avgPooling2d:()=>MG,avgPooling3d:()=>OG,batchNormalization:()=>EG,bidirectional:()=>ZG,categoryEncoding:()=>uH,concatenate:()=>SG,conv1d:()=>rG,conv2d:()=>sG,conv2dTranspose:()=>iG,conv3d:()=>oG,conv3dTranspose:()=>lG,convLstm2d:()=>qG,convLstm2dCell:()=>KG,cropping2D:()=>pG,dense:()=>mG,depthwiseConv2d:()=>dG,dot:()=>_G,dropout:()=>fG,elu:()=>JU,embedding:()=>wG,flatten:()=>yG,gaussianDropout:()=>rH,gaussianNoise:()=>aH,globalAveragePooling1d:()=>LG,globalAveragePooling2d:()=>zG,globalMaxPool1d:()=>QG,globalMaxPool2d:()=>eH,globalMaxPooling1d:()=>d2,globalMaxPooling2d:()=>h2,gru:()=>BG,gruCell:()=>VG,input:()=>zN,inputLayer:()=>ZU,layerNormalization:()=>$G,leakyReLU:()=>eG,lstm:()=>UG,lstmCell:()=>GG,masking:()=>iH,maxPool1d:()=>tH,maxPool2d:()=>nH,maxPooling1d:()=>m2,maxPooling2d:()=>f2,maxPooling3d:()=>WG,maximum:()=>TG,minimum:()=>NG,multiply:()=>CG,permute:()=>vG,prelu:()=>tG,reLU:()=>QU,repeatVector:()=>bG,rescaling:()=>oH,reshape:()=>xG,resizing:()=>lH,rnn:()=>XG,separableConv2d:()=>uG,simpleRNN:()=>HG,simpleRNNCell:()=>jG,softmax:()=>nG,spatialDropout1d:()=>gG,stackedRNNCells:()=>YG,thresholdedReLU:()=>aG,timeDistributed:()=>JG,upSampling2d:()=>cG,zeroPadding2d:()=>AG});async function Zr(e){if(e==null)return;let t=[],n=[],a=[];for(let r in e){let s=e[r];if(typeof s!="number"){let i=s;t.push(i.data()),n.push(r),a.push(i)}}if(t.length>0){let r=await Promise.all(t);for(let s=0;sY(this.totals[a],z(r,n)));this.totals[a]=i,s!=null&&s.dispose()}}}async onEpochEnd(e,t){if(t!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]=="number"?t[n]=this.totals[n]/this.seen:P(()=>{let a=z(he(1,this.seen),this.totals[n]);t[n]=a,this.totals[n].dispose(),Jt(t[n])}))}},SN=class extends Sl{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){t==null&&(t={}),this.epoch.push(e);for(let n in t)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(t[n])}async syncData(){let e=[],t=[],n=[];for(let r in this.history){let s=this.history[r];for(let i=0;inew TN(n,t))}var Ca=class{constructor(){}static registerCallbackConstructor(e,t){v.assert(e>=0&&Number.isInteger(e),()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`),Ca.checkForDuplicate(t),Ca.constructors[e]==null&&(Ca.constructors[e]=[]),Ca.constructors[e].push(t)}static checkForDuplicate(e){for(let t in Ca.constructors)Ca.constructors[+t].forEach(n=>{if(n===e)throw new V("Duplicate callback constructor.")})}static clear(){Ca.constructors={}}static createCallbacks(e){let t=[];for(let n in Ca.constructors){let a=+n;e>=a&&t.push(...Ca.constructors[a])}return t.map(n=>new n)}};Ca.constructors={};function CN(e,t,n,a,r,s,i,o,l){let u=new SN,p=[new VV,...Ca.createCallbacks(t)];e!=null&&p.push(...e),p.push(u);let d=new IN(p);return d.setParams({epochs:n,initialEpoch:a,samples:r,steps:s,batchSize:i,verbose:t,doValidation:o,metrics:l}),{callbackList:d,history:u}}function Ua(e,t={},n=!1){return Kc(e,ne.SerializationMap.getMap().classNameMap,t,"layer",n)}function Gh(e,t){return P(()=>{e.dtype!=="float32"&&(e=le(e,"float32"));let n=fe(Yc(e),t,!0),a=gn(n.shape,Gt()),r=un(dr(n,a));return he(e,r)})}function xo(e,t){return P(()=>Nt(Yc(pe(t,e)),-1))}function Lf(e,t){return P(()=>Nt(Lt(pe(t,e)),-1))}function ju(e,t){return P(()=>{let n=pe(e,t),a=en(Lt(e),Gt(),Number.MAX_VALUE),r=Lt(he(n,a));return z(100,Nt(r,-1))})}function UV(e,t){return P(()=>{let n=en(t,Gt(),Number.MAX_VALUE),a=ta(Y(1,n)),r=en(e,Gt(),Number.MAX_VALUE),s=ta(Y(1,r));return Nt(Yc(pe(a,s)),-1)})}function GV(e,t){return P(()=>{let n=dr(0,pe(1,z(e,t)));return Nt(Yc(n),-1)})}function HV(e,t){return P(()=>{let n=dr(0,pe(1,z(e,t)));return Nt(n,-1)})}function jV(e,t){return P(()=>{let n=fe(z(e,t),-1),a=ma(z(pe(1,e),t),-1);return dr(0,Y(1,pe(a,n)))})}function qV(e,t){return P(()=>{let n=Math.log(2),a=pe(t,e),r=pe(Y(a,mo(z(-2,a))),n);return Nt(r,-1)})}function tc(e,t,n=!1){return P(()=>{if(n)t=Ka(t);else{let a=fe(t,t.shape.length-1,!0);t=he(t,a)}return t=en(t,Gt(),1-Gt()),vt(fe(z(le(e,"float32"),ta(t)),t.shape.length-1))})}function Hh(e,t,n=!1){return P(()=>{let a=le(Wu(tV(e)),"int32");t=en(t,Gt(),1-Gt());let r=t.shape,s=W(gl(a,r[r.length-1]),r);return tc(s,t,n)})}function KV(e,t){if(!v.arraysEqual(e.shape,t.shape))throw new V(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return P(()=>{let n=Xe(t),a=vt(Lt(t));return Y(pe(n,z(t,e)),zc(fn(a)))})}function zf(e,t){return P(()=>{let n;return n=en(t,Gt(),1-Gt()),n=ta(he(n,pe(1,n))),Nt(KV(e,n),-1)})}function XV(e,t){return P(()=>{let n=en(e,Gt(),1),a=en(t,Gt(),1);return fe(z(e,ta(he(n,a))),-1)})}function YV(e,t){return P(()=>{let n=ta(Y(Gt(),t));return Nt(pe(t,z(e,n)),-1)})}function gw(e,t){return P(()=>{let n=Gh(e,-1),a=Gh(t,-1),r=z(n,a);return vt(fe(r,-1))})}var jh={meanSquaredError:xo,meanAbsoluteError:Lf,meanAbsolutePercentageError:ju,meanSquaredLogarithmicError:UV,squaredHinge:GV,hinge:HV,categoricalHinge:jV,logcosh:qV,categoricalCrossentropy:tc,sparseCategoricalCrossentropy:Hh,binaryCrossentropy:zf,kullbackLeiblerDivergence:XV,poisson:YV,cosineProximity:gw};function vb(e){if(typeof e=="string"){if(e in jh)return jh[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 V(t)}else return e}function yw(e,t){return P(()=>{let n=z(.5,na(t)),a=bo(Cn(t,n),e.dtype);return Nt(ea(e,a),-1)})}function bw(e,t){return P(()=>bo(ea(ri(e,-1),ri(t,-1)),"float32"))}function _N(e,t){return P(()=>le(fe(Aa(ea(e,1),ea(t,1))),"float32"))}function ZV(e,t){return P(()=>le(fe(Aa(ea(e,1),ea(t,0))),"float32"))}function JV(e,t){return P(()=>le(fe(Aa(ea(e,0),ea(t,1))),"float32"))}function EN(e,t){return P(()=>{let n=_N(e,t),a=JV(e,t),r=Y(n,a);return le(mn(Cn(r,0),he(n,r),0),"float32")})}function QV(e,t){return P(()=>{let n=_N(e,t),a=ZV(e,t),r=Y(n,a);return le(mn(Cn(r,0),he(n,r),0),"float32")})}function $N(e,t){return zf(e,t)}function AN(e,t){return e.rank===t.rank&&(e=Ns(e,[e.rank-1])),t=ri(t,-1),t.dtype!==e.dtype&&(t=le(t,e.dtype)),le(ea(e,t),"float32")}var eU=xo,tU=xo,nU=Lf,aU=Lf,rU=ju,sU=ju,xw=tc,iU=gw,FN=Hh,qh={binaryAccuracy:yw,categoricalAccuracy:bw,precision:EN,categoricalCrossentropy:xw,sparseCategoricalCrossentropy:FN,mse:eU,MSE:tU,mae:nU,MAE:aU,mape:rU,MAPE:sU,cosine:iU};function oU(e){if(typeof e=="string"&&e in qh)return qh[e];if(typeof e!="string"&&e!=null)return e;throw new V(`Unknown metric ${e}`)}function ph(e){if(ar(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys(jh))if(jh[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys(qh))if(qh[n]===e){t=n;break}return t!==void 0?t:e.name}}function lU(e){let t={Adagrad:()=>Ws.adagrad(.01),Adadelta:()=>Ws.adadelta(1,.95,Gt()),Adam:()=>Ws.adam(.001,.9,.999,Gt()),Adamax:()=>Ws.adamax(.002,.9,.999,Gt(),0),RMSProp:()=>Ws.rmsprop(.001,.9,0,Gt()),SGD:()=>Ws.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 V(`Unknown Optimizer ${e}`)}function Lk(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!Kb(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(n){let a=JSON.stringify(e);a.length>1048576&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${a.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 Kb(e){if(e===null)return!0;if(typeof e=="object")if(Object.getPrototypeOf(e)===Object.prototype){let t=Object.keys(e);for(let n of t)if(typeof n!="string"||!Kb(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!Kb(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function uU(e,t,n,a=console.log){let r=cU(e),s=["Layer (type)","Input Shape","Output shape","Param #"];r?(t=t||90,n=n||[.32,.61,.89,1]):(t=t||115,n=n||[.24,.48,.7,.8,1]),n[n.length-1]<=1&&(n=n.map(p=>Math.floor(t*p)));let i;if(!r){s.push("Receives inputs"),i=[];for(let p in e.nodesByDepth)i.push(...e.nodesByDepth[p])}a("_".repeat(t)),Kh(s,n,a),a("=".repeat(t));let o=e.layers;for(let p=0;p1||r.length===1&&r[0].inboundLayers.length>1){t=!1;break}a.push(...r)}if(t)for(let r of e.layers){let s=!1;for(let i of r.inboundNodes)if(a.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function Kh(e,t,n=console.log){let a="";for(let r=0;r0&&(a=a.slice(0,a.length-1)+" "),a+=e[r],a=a.slice(0,t[r]),a+=" ".repeat(t[r]-a.length);n(a)}function dU(e,t,n){let a,r;try{r=e.inboundNodes.map(l=>JSON.stringify(l.inputShapes)).join(",")}catch(l){r="multiple"}try{a=JSON.stringify(e.outputShape)}catch(l){a="multiple"}let s=e.name,i=e.getClassName(),o=[`${s} (${i})`,r,a,e.countParams().toString()];Kh(o,t,n)}function hU(e,t,n,a){let r,s;try{s=e.inboundNodes.map(d=>JSON.stringify(d.inputShapes)).join(",")}catch(d){s="multiple"}try{r=JSON.stringify(e.outputShape)}catch(d){r="multiple"}let i=[];for(let d of e.inboundNodes)if(!(n!=null&&n.length>0&&n.indexOf(d)===-1))for(let c=0;cy.name)}`);as(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(y=>y.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let y of this.outputs){let b=y.sourceLayer,x=y.nodeIndex,w=y.tensorIndex;this.outputLayers.push(b),this.outputLayersNodeIndices.push(x),this.outputLayersTensorIndices.push(w)}for(let y of this.inputs){let b=y.sourceLayer,x=y.nodeIndex,w=y.tensorIndex;ar(x===0,"input layer has >1 nodes"),ar(w===0,"input layer has >1 tensors"),this.inputLayers.push(b),this.inputLayersNodeIndices.push(x),this.inputLayersTensorIndices.push(w)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let y=0;yy.shape),this.internalOutputShapes=this.outputs.map(y=>y.shape);let t={},n={},a={},r={},s={},i=[],o=(y,b,x,w,I,T)=>{(w==null||I==null||T==null)&&(w=y.sourceLayer,I=y.nodeIndex,T=y.tensorIndex);let C=w.inboundNodes[I];if(x.indexOf(C)!==-1)throw new Wa(`The tensor ${y.name} at layer "${w.name}" is part of a cycle.`);if(b.indexOf(C)!==-1)return;this.containerNodes.add(tr.nodeKey(w,I)),w.id in s||(s[w.id]=Object.keys(s).length),x.indexOf(C)===-1&&x.push(C);let E=C.inboundLayers.length;for(let $=0;$=0;)x.splice(x.indexOf(C),1);i.push(C)},l=[],u=[];for(let y of this.outputs)o(y,l,u);let p=i.slice().reverse();for(let y of p){n[y.id]=y,y.id in t||(t[y.id]=0);let b=t[y.id],x=a[y.outboundLayer.id]==null?0:a[y.outboundLayer.id];b=Math.max(b,x),a[y.outboundLayer.id]=b,r[y.outboundLayer.id]=y.outboundLayer,t[y.id]=b;for(let w=0;wparseInt(y,10)).sort(oh);this.layers=[];for(let y of h){let b=c[y];b.sort((x,w)=>{let I=s[x.id],T=s[w.id];return IT?1:0});for(let x of b)x instanceof tr&&this.internalContainerRefs.push(x),this.layers.push(x)}this.layersByDepth=c,h=Object.keys(d).map(y=>parseInt(y,10)).sort(oh);let m=this.inputs.slice(),f=[];for(let y of h)for(let b of d[y]){let x=b.outboundLayer;if(x!=null){for(let w of b.inputTensors)if(m.indexOf(w)===-1)throw new Wa(`Graph disconnected: cannot obtain value for tensor ${w} at layer "${x.name}". The following previous layers were accessed without issue: ${f}`);for(let w of b.outputTensors)m.push(w);f.push(x.name)}}this.nodesByDepth=d;let g=this.layers.map(y=>y.name);for(let y of g){let b=g.filter(x=>x===y).length;if(b!==1)throw new Wa(`The name "${y}" is used ${b} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new Of({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(y=>null),outputMasks:this.outputs.map(y=>null),inputShapes:this.inputs.map(y=>y.shape),outputShapes:this.outputs.map(y=>y.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let e={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(let t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(let 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(n=>n.trainable=e)}),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new V("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(let t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.layers)t.push(...n.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){let n={},a=0;for(let s of this.layers)for(let i of s.weights){if(n[i.originalName]!=null)throw new V(`Duplicate weight name: ${i.originalName}`);n[i.originalName]=i,a++}let r=[];for(let s in e){let i=s;if(n[s]==null){let o=s.split("/");i=o.slice(0,-2).concat([o[o.length-1]]).join("/")}if(n[i]!=null)r.push([n[i],e[s]]);else if(t)throw new V(`Provided weight data has no target variable: ${s}`);delete n[i]}if(t){let s=[];for(let i in n)s.push(i);if(s.length>0)throw new V(`${s.length} of ${a} weights are not set: ${s}`)}pw(r)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${vw}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let n=Xb(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return P(()=>{e=xt(e);let n=new js;for(let a=0;a{e=xt(e);let n;return t==null?n=li(null,e.length):n=xt(t),this.runInternalGraph(e,n)[1]})}computeOutputShape(e){let t=Wh(e);if(t.length!==this.inputLayers.length)throw new V(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let i=0;iparseInt(i,10)).sort(oh);if(a.length>1)for(let i of a){let o=this.nodesByDepth[i];for(let l of o){let u=l.outboundLayer;if(this.inputLayers.map(m=>m.id).indexOf(u.id)!==-1)continue;let p=[];for(let m=0;mparseInt(o,10)).sort(oh);for(let o of a){let l=this.nodesByDepth[o];for(let u of l){let p=u.outboundLayer,d=u.inputTensors,c=u.outputTensors,h=new Array;for(let m of d)m.id in n&&h.push(n[m.id]);if(h.length===d.length){let m={},f,g,y,b;if(u.callArgs!=null&&(m=u.callArgs),h.length===1){let[x,w]=h[0];m.mask==null&&(m.mask=w),y=xt(p.call(x,m)),b=xt(p.computeMask(x,w)),f=[x],g=[w]}else f=h.map(x=>x[0]),g=h.map(x=>x[1]),m.mask==null&&(m.mask=g),y=xt(p.call(f,m)),b=xt(p.computeMask(f,g));if(p.activityRegularizer)throw new Me("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let x=0;x{let e=[];for(let t of this.layers)for(let n=0;n0){let m=[];for(let f=0;f0&&f.apply(On(y),b)}function l(f){let g=f.name,y=Ua(f,t.customObjects!=null?t.customObjects:{});y.setFastWeightInitDuringBuild(a),r[g]=y,f.inboundNodes.forEach(b=>{if(!(b instanceof Array))throw new V(`Corrupted configuration, expected array for nodeData: ${b}`);i(y,b)})}let u=t.name,p=t.layers;for(let f of p)l(f);for(;!V4(s);)for(let f of p){let g=r[f.name];if(g.name in s){let y=s[g.name];delete s[g.name];for(let b of y)o(g,b)}}let d=[],c=[],h=t.inputLayers;for(let f of h){let g=f[0],y=f[1],b=f[2];ar(g in r);let x=r[g].inboundNodes[y].outputTensors;d.push(x[b])}let m=t.outputLayers;for(let f of m){let g=f[0],y=f[1],b=f[2];ar(g in r);let x=r[g].inboundNodes[y].outputTensors;c.push(x[b])}return new e({inputs:d,outputs:c,name:u})}get stateful(){if(this._stateful)throw new V("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(let e of this.layers)if(e.stateful)return!0;return!1}resetStates(){P(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}};function mU(e,t,n){let a=t.length;if(e==null||Array.isArray(e)&&e.length===0)return t.map(r=>null);if(a===1)return Array.isArray(e)&&e.length===1?e:typeof e=="object"&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==a)throw new Error(`Provided ${n} is an array of ${e.length} element(s), but the model has ${a} outputs. Make sure a set of weights is provided for each model output.`);return e}else if(typeof e=="object"&&Object.keys(e).length>0&&typeof e[Object.keys(e)[0]]=="object"){let r=[];return t.forEach(s=>{s in e?r.push(e[s]):r.push(null)}),r}else throw new Error(`The model has multiple (${a}) outputs, so ${n} must be either an array with ${a} elements or an object with ${t} keys. Provided ${n} not understood: ${JSON.stringify(e)}`)}function RN(e,t){return mU(e,t,"classWeight")}async function MN(e,t,n,a){if(t!=null||a!=null)throw new Error("Support sampleWeight is not implemented yet");if(n!=null){let r=P(()=>{if(e.shape.length===1)return ir(e);if(e.shape.length===2){if(e.shape[1]>1)return ri(e,1);if(e.shape[1]===1)return W(e,[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.`)}else 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.`)}),s=Array.from(await r.data());_e(r);let i=[];return s.forEach(o=>{if(n[o]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${o} exists in the data but not in classWeight`);i.push(n[o])}),Ke(i,"float32")}else return null}function fU(e,t){return z(e,t)}var gU=32;function PN(e,t){let n,a,r=t;n=r.xs,a=r.ys,v.assert(n!=null&&a!=null,()=>`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}`);let s=zk("input",e.inputNames,n),i=zk("output",e.outputNames,a),o=s[0].shape[0];v.assert(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)})`),v.assert(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 l=0;l`Batch size mismatch: input ${e.inputNames[l]} has ${s[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);for(let l=0;l`Batch size mismatch: output ${e.outputNames[l]} has ${i[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);return{xs:s,ys:i}}function zk(e,t,n){if(n instanceof Te)return[n];if(Array.isArray(n))return v.assert(n.length===t.length,()=>`Received an array of ${n.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`),n;{let a=[];for(let r of t){if(n[r]==null)throw new V(`The feature data generated by the dataset lacks the required ${e} key '${r}'.`);a.push(n[r])}return a}}function yU(e){if(e.length===3)throw new Me("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function bU(e,t,n){let a=n.batchesPerEpoch!=null;if(v.assert(e.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),v.assert(n!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),v.assert(n.epochs!=null&&n.epochs>0&&Number.isInteger(n.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${n.epochs}`),v.assert(!a||n.batchesPerEpoch>0&&Number.isInteger(n.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${n.batchesPerEpoch}`),v.assert(n.validationSplit==null,()=>"`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{let r=n.validationData!=null,s,i;if(r)if(Wk(n.validationData))v.assert(n.validationBatches==null||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{let g=yU(n.validationData);s=g.xs,i=g.ys}let o=e.makeTrainFunction(),l=e.getDedupedMetricsNames(),u;r?u=l.slice().concat(l.map(g=>"val_"+g)):u=l.slice();let p=NN(n.callbacks,n.yieldEvery),d=n.verbose==null?1:n.verbose,{callbackList:c,history:h}=CN(p,d,n.epochs,null,null,xU(t,n),null,r,u);c.setModel(e),e.history=h,await c.onTrainBegin(),e.stopTraining_=!1;let m=n.initialEpoch==null?0:n.initialEpoch,f=await t.iterator();for(;m=n.batchesPerEpoch:x.done){if(r){let w;Wk(n.validationData)?w=xt(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):w=xt(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?gU:n.validationBatchSize,verbose:0}));for(let I=0;I0)throw new Me("Verbose mode is not implemented yet.");v.assert(!a||n.batches>0&&Number.isInteger(n.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(n.batches)}`);let i=vU(t)?t:await t.iterator(),o=0,l=0;for(;!a||l{if(u.value){let{xs:p,ys:d}=PN(e,u.value),c=p.concat(d),h=P(()=>r(c));if(_e(c),l===0)for(let f=0;fY(s[f],z(m,g))),l>0&&_e(y)}_e(h),o+=m,++l}return s}),u.done){a&&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 u=0;u0&&Number.isInteger(e),()=>`batchSize is required to be a positive integer, but got ${e}`)}function Pp(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>Zs(a,t,n-t)):Zs(e,t,n-t)}function ww(e,t){return P(()=>e==null?null:Array.isArray(e)?e.map(n=>ww(n,t)):mN(e,t.dtype==="int32"?t:le(t,"int32")))}function Zb(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}async function kU(e,t,n,a,r,s,i,o,l,u,p,d,c,h,m){r==null&&(r=32),s==null&&(s=1),p==null&&(p=!0),c==null&&(c=0);let f=!1;if(l!=null&&u!=null&&(f=!0),m!=null&&(f=!0,h==null))throw new V("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let g=e.checkNumSamples(n,r,h,"steps_per_epoch"),y;g!=null&&(y=Ha(0,g)),i==null&&(i=1);let{callbackList:b,history:x}=CN(o,i,s,c,g,h,r,f,d);b.setModel(e),e.history=x,await b.onTrainBegin(),e.stopTraining_=!1;for(let w=c;w{let R=C[E][0],F=C[E][1],S=Zs(T,R,F-R);$.batch=E,$.size=F-R;let M=ww(n,S),B=t(M);for(let U=0;U0){if(g=!0,a.validationData.length===2)l=a.validationData[0],u=a.validationData[1];else throw a.validationData.length===3?new Me("validationData including sample weights is not supported yet."):new V(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${a.validationData} is invalid.`);let E=!0,$=await e.standardizeUserData(l,u,null,null,E,h);p=$[0],d=$[1],y=p.concat(d)}else if(a.validationSplit!=null&&a.validationSplit>0&&a.validationSplit<1){g=!0;let E=Math.floor(r[0].shape[0]*(1-a.validationSplit)),$=r[0].shape[0];p=Pp(r,E,$),i=r,r=Pp(r,0,E),d=Pp(s,E,$),o=s,s=Pp(s,0,E),y=p.concat(d)}else a.validationSteps!=null&&(g=!0);let b=r.concat(s).concat(c);e.checkTrainableWeightsConsistency();let x=e.makeTrainFunction(),w=e.getDedupedMetricsNames(),I,T;g?(e.makeTestFunction(),I=e.testFunction,T=w.slice().concat(w.map(E=>"val_"+E))):(I=null,y=[],T=w.slice());let C=NN(a.callbacks,a.yieldEvery);return await kU(e,x,b,w,h,a.epochs,a.verbose,C,I,y,a.shuffle,T,a.initialEpoch,null,null)}finally{e.isTraining=!1,La(r,t),La(s,n),La(i,t),La(o,n),La(p,l),La(d,u),c!=null&&_e(c)}}function ON(e){let t=[];e instanceof Te&&(e=[e]);for(let n=0;nn.push(r.id));else if(t!=null)for(let r in t){let s=t[r];n.push(s.id)}let a=[];if(e instanceof Te)n.indexOf(e.id)===-1&&a.push(e);else if(Array.isArray(e))e.forEach(r=>{n.indexOf(r.id)===-1&&a.push(r)});else if(e!=null)for(let r in e){let s=e[r];n.indexOf(s.id)===-1&&a.push(s)}a.forEach(r=>{r.isDisposed||r.dispose()})}function SU(e){return e instanceof Te}function Jb(e){return Array.isArray(e)}function Bk(e){return!SU(e)&&!Jb(e)}function Vk(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(Jb(e)&&e.length>0)i=!0;else if(Bk(e)){for(let o in e)if(e.hasOwnProperty(o)){i=!0;break}}else i=!0;if(i)throw new V(`Error when checking model ${r} expected no data, but got ${e}`)}return[]}if(e==null)return t.map(i=>null);let s;if(Bk(e)){e=e,s=[];for(let i of t){if(e[i]==null)throw new V(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(e[i])}}else if(Jb(e)){if(e=e,e.length!==t.length)throw new V(`Error when checking model ${r}: 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 V(`The model ${r} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);s=[e]}if(s=ON(s),n!=null)for(let i=0;i=0&&u!==p)throw new V(`${r} expected a batch of elements where each example has shape [${n[i].slice(1,n[i].length)}] (i.e.,tensor shape [*,${n[i].slice(1,n[i].length)}]) but the ${r} received an input with ${o.shape[0]} examples, each with shape [${o.shape.slice(1,o.shape.length)}] (tensor shape [${o.shape}])`)}}return s}function TU(e,t,n){let a=as(e.map(s=>s.shape[0]));a.sort();let r=as(t.map(s=>s.shape[0]));if(r.sort(),a.length>1)throw new V(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map(s=>s.shape))}`);if(r.length>1)throw new V(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(s=>s.shape))}`);if(a.length>0&&r.length>0&&!v.arraysEqual(a,r))throw new V(`Input Tensors should have the same number of samples as target Tensors. Found ${a[0]} input sample(s) and ${r[0]} target sample(s).`)}function NU(e,t,n){let a=[xo,zf,tc];for(let r=0;r1)throw new V(`The model expects ${t.length} ${r} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);s=[e]}if(n!=null)for(let i=0;i[]);let n;if(typeof e=="string"||typeof e=="function")n=[e];else if(Array.isArray(e)||typeof e=="object")n=e;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);if(Array.isArray(n))return t.map(a=>n);{let a=[];for(let r of t){let s=n.hasOwnProperty(r)?n[r]:[];Array.isArray(s)||(s=[s]),a.push(s)}return a}}var _U="layers-model",Er=class extends tr{constructor(e){super(e),this.isTraining=!1}summary(e,t,n=console.log){if(!this.built)throw new V("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");uU(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=lU(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Rr))throw new V("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(!Array.isArray(e.loss)&&typeof e.loss!="string"&&typeof e.loss!="function"){e.loss=e.loss;for(let s in e.loss)if(this.outputNames.indexOf(s)===-1)throw new V(`Unknown entry in loss dictionary: "${s}". Only expected the following keys: ${this.outputNames}`);for(let s of this.outputNames)e.loss[s]==null&&console.warn(`Output "${s}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${s} during training`),t.push(vb(e.loss[s]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new V(`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}.`);t=e.loss.map(s=>vb(s))}else{let s=vb(e.loss);this.outputs.forEach(i=>{t.push(s)})}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let s=0;s{for(let s=0;s1&&(this.metricsTensors.push([i,s]),this.metricsNames.push(this.outputNames[s]+"_loss"))}});let a=CU(e.metrics,this.outputNames),r=(s,i,o)=>{this.outputNames.length>1&&(i=this.outputNames[s]+"_"+i),this.metricsNames.push(i),this.metricsTensors.push([o,s])};Ys("metric",()=>{for(let s=0;s{let l="",u,p,d;for(let c of o){if(typeof c=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(c)!==-1){let m=this.internalOutputShapes[s];m[m.length-1]===1||this.lossFunctions[s]===zf?["accuracy","acc"].indexOf(c)!==-1?p=yw:["crossentropy","ce"].indexOf(c)!==-1&&(p=$N):this.lossFunctions[s]===Hh?["accuracy","acc"].indexOf(c)!==-1?p=AN:["crossentropy","ce"].indexOf(c)!==-1&&(p=FN):["accuracy","acc"].indexOf(c)!==-1?p=bw:["crossentropy","ce"].indexOf(c)!==-1&&(p=xw);let f;["accuracy","acc"].indexOf(c)!==-1?f="acc":["crossentropy","ce"].indexOf(c)!==-1&&(f="ce"),d=p,u=l+f}else d=oU(c),u=l+ph(c);let h;Ys(u,()=>{h=d}),r(s,u,h)}})(i)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&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={}){let a=n.batchSize==null?32:n.batchSize;Yb(a);let r=!0,s=this.standardizeUserDataXY(e,t,r,a);try{let i=s[0].concat(s[1]);this.makeTestFunction();let o=this.testFunction,l=this.testLoop(o,i,a,n.verbose,n.steps);return On(l)}finally{La(s[0],e),La(s[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),wU(this,e,t)}checkNumSamples(e,t,n,a="steps"){let r;if(n!=null){if(r=null,t!=null)throw new V(`If ${a} is set, batchSize must be null or undefined.Got batchSize = ${t}`)}else if(e!=null)Array.isArray(e)?r=e[0].shape[0]:r=e.shape[0];else throw new V(`Either the input data should have a defined shape, or ${a} shoud be specified.`);return r}execute(e,t){if(Array.isArray(t)&&t.length===0)throw new V("`outputs` is an empty Array, which is not allowed.");let n=Array.isArray(t),a=n?t:[t],r=this.retrieveSymbolicTensors(a),s=new js;if(e instanceof Te&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new V(`The number of inputs provided (${e.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let o=0;oi.name);for(let i=0;i0){let a=[];throw t.forEach((r,s)=>{r==null&&a.push(e[s])}),new V(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(a)}`)}return t}predictLoop(e,t=32,n=!1){return P(()=>{let a=this.checkNumSamples(e);if(n)throw new Me("Verbose predictLoop() is not implemented yet.");let r=Zb(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],u=Pp(e,o,l),p=[];if(Array.isArray(u))for(let c=0;cs[l].push(o));return On(s.map(i=>Ze(i,0)))})}predict(e,t={}){let n=ON(e);Uk(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return Yb(a),this.predictLoop(n,a)}finally{La(n,e)}}predictOnBatch(e){Uk(e,this.inputNames,this.feedInputShapes,!0);let t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,n=!0,a){if(this.optimizer_==null)throw new Wa("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let r=[];for(let s=0;s0&&e[0].shape[0]%a!==0)throw new V(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${a}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,n,a,r=!0,s){let[i,o]=this.standardizeUserDataXY(e,t,r,s);if(n!=null)throw new Error("sample weight is not supported yet.");let l=null;if(a!=null){let u=RN(a,this.outputNames);l=[];for(let p=0;p{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new Me("Verbose mode is not implemented yet.");if(r!=null)throw new Me("steps mode in testLoop() is not implemented yet");{let o=Zb(s,n),l=Ke(Ha(0,s));for(let u=0;u1){let s=_k(e.slice(0,n),a);r+=`_${s}`}t.push(r)}return t}makeTrainFunction(){return e=>{let t=[],n=e.slice(0,this.inputs.length),a=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),r=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),s=[],i=()=>{let u=[];for(let h=0;h1&&h{c=Y(c,h)}),c},o=this.collectedTrainableWeights.map(u=>u.read()),l=!0;return[this.optimizer_.minimize(i,l,o)].concat(s)}}makeTestFunction(){this.testFunction=e=>P(()=>{let t=[],n,a=e.slice(0,this.inputs.length),r=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=[];for(let l=0;lSr(t))}else{let t=Object.keys(this.loss);e={};let n=this.loss;for(let a of t)if(typeof n[a]=="string")e[a]=Sr(n[a]);else throw new Error("Serialization of non-string loss is not supported.")}return e}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[Sr(ph(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>Sr(ph(e)));{let e={};for(let t in this.metrics)e[t]=Sr(ph(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(e.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(e.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(e.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let t=nc(e.optimizer_config),n=Ua(t),a;if(typeof e.loss=="string")a=Us(e.loss);else if(Array.isArray(e.loss))a=e.loss.map(s=>Us(s));else if(e.loss!=null){a={};for(let s in e.loss)a[s]=Us(e.loss[s])}let r;if(Array.isArray(e.metrics))r=e.metrics.map(s=>Us(s));else if(e.metrics!=null){r={};for(let s in e.metrics)r[s]=Us(e.metrics[s])}this.compile({loss:a,metrics:r,optimizer:n})}async save(e,t){if(typeof e=="string"){let i=Ut.getSaveHandlers(e);if(i.length===0)throw new V(`Cannot find any save handlers for URL '${e}'`);if(i.length>1)throw new V(`Found more than one (${i.length}) save handlers for URL '${e}'`);e=i[0]}if(e.save==null)throw new V("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await Ut.encodeWeights(this.getNamedWeights(t)),a=!1,r=null,s={modelTopology:this.toJSON(r,a),format:_U,generatedBy:`TensorFlow.js tfjs-layers v${vw}`,convertedBy:null};if((t==null?!1:t.includeOptimizer)&&this.optimizer!=null){s.trainingConfig=this.getTrainingConfig();let i="optimizer",{data:o,specs:l}=await Ut.encodeWeights(await this.optimizer.getWeights(),i);n.specs.push(...l),n.data=Ut.concatenateArrayBuffers([n.data,o])}return this.userDefinedMetadata!=null&&(Lk(this.userDefinedMetadata,this.name,!0),s.userDefinedMetadata=this.userDefinedMetadata),s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){Lk(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};Er.className="Model";ne.registerClass(Er);var LN=class extends Er{};LN.className="Functional";ne.registerClass(LN);async function EU(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=nc(n),r=Ua(a,t);if(e.weightsManifest!=null){let s=await Ut.loadWeights(e.weightsManifest,e.pathPrefix,r.weights.map(o=>o.originalName)),i={};for(let o of r.weights)i[o.originalName]=s[o.originalName];r.loadWeights(i),_e(s)}return r}async function $U(e,t){if(t==null&&(t={}),typeof e=="string"){let n=Ut.getLoadHandlers(e,t);if(n.length===0)n.push(Ut.browserHTTPRequest(e,t));else if(n.length>1)throw new V(`Found more than one (${n.length}) load handlers for URL '${e}'`);e=n[0]}return AU(e,void 0,t)}async function AU(e,t,n){if(n==null&&(n={}),e.load==null)throw new V("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let a=await e.load(),r=a.modelTopology;r.model_config!=null&&(r=r.model_config);let s=n.strict==null?!0:n.strict,i=a.weightData!=null&&a.weightSpecs!=null&&s,o=Ua(nc(r),t,i),l=a.trainingConfig;if(l!=null&&o.loadTrainingConfig(l),a.userDefinedMetadata!=null&&o.setUserDefinedMetadata(a.userDefinedMetadata),a.weightData!=null){if(a.weightSpecs==null)throw new V("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:u,optimizerWeights:p}=FU(a.weightData,a.weightSpecs);o.loadWeights(u,s),o.optimizer!=null&&p.length>0&&await o.optimizer.setWeights(p),_e(u),_e(p.map(d=>d.tensor))}return o}function FU(e,t){let n=Ut.decodeWeights(e,t),a={},r=[];return t.forEach(s=>{s.group==="optimizer"?r.push({name:s.name,tensor:n[s.name]}):a[s.name]=n[s.name]}),{modelWeights:a,optimizerWeights:r}}var Tl=class extends Er{constructor(e){if(super({inputs:[],outputs:[]}),e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:_f("sequential_"),e.layers!=null)for(let t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some(t=>t<0))throw new V(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){let t=e instanceof Tl||e instanceof Er,n;if(t){if(n=e,n.outputs.length!==1)throw new V("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(n.inputs.length!==1)throw new V("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(e.inboundNodes.length===0){if(e.batchInputShape==null)throw new V("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let a=bN({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(a)}if(t)this.outputs=n.outputs,this.inputs=n.inputs;else{if(e.inboundNodes.length!==1)throw new V(`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(e.inboundNodes[0].outputTensors.length!==1)throw new V("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=yN(this.outputs[0])}this.inboundNodes=[],new Of({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:li(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(a=>a.shape),outputShapes:this.outputs[0].shape})}else{let a=e.apply(this.outputs[0]);if(Array.isArray(a))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=[a],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let 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 this.model==null&&this.build(),this.model.call(e,t)}build(e){if(tt(e),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new Er({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){this.model==null&&this.build(),this.model.setWeights(e)}evaluate(e,t,n={}){if(!this.built)throw new Wa("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 Wa("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return this.model==null&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return this.model==null&&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 this.model==null?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,n={}){if(!this.built)throw new Wa("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 Wa("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={},a=!1){let r,s={};if(t instanceof Array){if(t[0].className==null||t[0].className==="Merge")throw new V("Legacy serialization format not supported yet.");r=t}else v.assert(t.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),r=t.layers,delete t.layers,s=t;let i=new e(s);if(!(i instanceof Tl))throw new Me(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(let o of r){let l=Ua(o,void 0,a);a&&l.setFastWeightInitDuringBuild(!0),i.add(l)}return i}set stopTraining(e){if(this.model==null)throw new V("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(this.model==null)throw new V("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let e=[];for(let t of this.layers){let n={};n.className=t.getClassName(),n.config=t.getConfig(),e.push(n)}return{name:this.name,layers:e}}};Tl.className="Sequential";ne.registerClass(Tl);function DU(e){return new Er(e)}function RU(e){return new Tl(e)}function zN(e){return bN(e)}function MU(e,t){Ca.registerCallbackConstructor(e,t)}var Un=class extends ne.Serializable{getConfig(){return{}}},WN=class extends Un{apply(e,t=1){return aV(e,t)}};WN.className="elu";ne.registerClass(WN);var BN=class extends Un{apply(e){return uf(e)}};BN.className="selu";ne.registerClass(BN);var VN=class extends Un{apply(e){return Xe(e)}};VN.className="relu";ne.registerClass(VN);var UN=class extends Un{apply(e){return P(()=>Vu(6,Xe(e)))}};UN.className="relu6";ne.registerClass(UN);var GN=class extends Un{apply(e){return e}};GN.className="linear";ne.registerClass(GN);var HN=class extends Un{apply(e){return ha(e)}};HN.className="sigmoid";ne.registerClass(HN);var jN=class extends Un{apply(e){return sV(e)}};jN.className="hardSigmoid";ne.registerClass(jN);var qN=class extends Un{apply(e){return mo(e)}};qN.className="softplus";ne.registerClass(qN);var KN=class extends Un{apply(e){return rV(e)}};KN.className="softsign";ne.registerClass(KN);var XN=class extends Un{apply(e){return si(e)}};XN.className="tanh";ne.registerClass(XN);var kw=class extends Un{apply(e,t=-1){return Ka(e,t)}};kw.className="softmax";ne.registerClass(kw);var YN=class extends Un{apply(e,t=-1){return ef(e,t)}};YN.className="logSoftmax";ne.registerClass(YN);var ZN=class extends Un{apply(e,t=1){return P(()=>z(ha(z(e,t)),e))}};ZN.className="swish";ne.registerClass(ZN);var JN=class extends Un{apply(e){return P(()=>z(e,si(mo(e))))}};JN.className="mish";ne.registerClass(JN);function us(e){return e.getClassName()}function wb(e,t={}){return Kc(e,ne.SerializationMap.getMap().classNameMap,t,"activation")}function ps(e){if(e==null){let t={};return t.className="linear",t.config={},wb(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},wb(t)}else return e instanceof Un?e:wb(e)}function Iw(e){if(e!=null&&typeof e!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}var QN=class extends ne.Serializable{},Qc=class extends QN{constructor(e){super(),Iw(e),this.l1=e==null||e.l1==null?.01:e.l1,this.l2=e==null||e.l2==null?.01:e.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(e){return P(()=>{let t=It([1]);return this.hasL1&&(t=Y(t,fe(z(this.l1,Lt(e))))),this.hasL2&&(t=Y(t,fe(z(this.l2,Yc(e))))),W(t,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};Qc.className="L1L2";ne.registerClass(Qc);function PU(e){return Iw(e),new Qc({l1:e!=null?e.l1:null,l2:0})}function OU(e){return Iw(e),new Qc({l2:e!=null?e.l2:null,l1:0})}var Gk={l1l2:"L1L2"};function pt(e){return ew(e)}function Hk(e,t={}){return Kc(e,ne.SerializationMap.getMap().classNameMap,t,"regularizer")}function Tt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in Gk?Gk[e]:e,config:{}};return Hk(t)}else return e instanceof QN?e:Hk(e)}var Sw=class extends Ge{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Ne(e);let n=Xe(e);return this.maxValue!=null&&(n=en(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};Sw.className="ReLU";ne.registerClass(Sw);var Tw=class extends Ge{constructor(e){super(e==null?{}:e),this.DEFAULT_ALPHA=.3,e==null&&(e={}),this.alpha=e.alpha==null?this.DEFAULT_ALPHA:e.alpha}call(e,t){let n=Ne(e);return Lc(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};Tw.className="LeakyReLU";ne.registerClass(Tw);var Nw=class extends Ge{constructor(e){if(super(e==null?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=St(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Tt(e.alphaRegularizer),this.alphaConstraint=Kt(e.alphaConstraint),e.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else if(typeof e.sharedAxes=="number")this.sharedAxes=[e.sharedAxes];else throw new V(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=tt(e);let t=e.slice(1);if(this.sharedAxes!=null)for(let a of this.sharedAxes)t[a-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let a=1;a(Rt(t),t==="channelsFirst"?Ee(e,[0,2,3,1]):e))}function e2(e,t){return P(()=>(Rt(t),t==="channelsFirst"?Ee(e,[0,2,3,4,1]):e))}function LU(e,t,n,a=1,r="valid",s,i=1){return P(()=>{if(s==null&&(s=ja()),Rt(s),e.shape.length!==3)throw new V(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(t.shape.length!==3)throw new V(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(n!=null&&n.shape.length!==1)throw new V(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s==="channelsFirst"&&(e=Ee(e,[0,2,1])),r==="causal")throw new Me("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=qm(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=Xa(o,n)),o})}function jk(e,t,n,a=[1,1],r="valid",s,i,o=null){return P(()=>{if(s==null&&(s=ja()),Rt(s),e.rank!==3&&e.rank!==4)throw new V(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(t.rank!==3&&t.rank!==4)throw new V(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=$w(e,s);if(r==="causal")throw new Me("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=kl.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=Ee(l,[0,3,1,2])),l})}function zU(e,t,n,a=[1,1,1],r="valid",s,i){return P(()=>{if(s==null&&(s=ja()),Rt(s),e.rank!==4&&e.rank!==5)throw new V(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(t.rank!==4&&t.rank!==5)throw new V(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=e2(e,s);if(r==="causal")throw new Me("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=fv(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=Xa(o,n)),s==="channelsFirst"&&(o=Ee(o,[0,4,1,2,3])),o})}var Aw=class extends Ge{constructor(e,t){if(super(t),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",Aw.verifyArgs(t),this.rank=e,Qt(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new Me(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=dl(t.kernelSize,e,"kernelSize"),this.strides=dl(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,xa(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Rt(this.dataFormat),this.activation=ps(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=St(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Kt(t.biasConstraint),this.biasRegularizer=Tt(t.biasRegularizer),this.activityRegularizer=Tt(t.activityRegularizer),this.dilationRate=dl(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new V(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new V(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new V(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(ar("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!tw(e.kernelSize,"number",1,3))throw new V(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){let e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:us(this.activation),useBias:this.useBias,biasInitializer:Ct(this.biasInitializer),biasRegularizer:pt(this.biasRegularizer),activityRegularizer:pt(this.activityRegularizer),biasConstraint:qt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},ed=class extends Aw{constructor(e,t){super(e,t),this.kernel=null,ed.verifyArgs(t),this.filters=t.filters,Qt(this.filters,"filters"),this.kernelInitializer=St(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Kt(t.kernelConstraint),this.kernelRegularizer=Tt(t.kernelRegularizer)}build(e){e=tt(e);let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V(`The channel dimension of the input should be defined. Found ${e[t]}`);let n=e[t],a=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",a,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 P(()=>{e=Ne(e);let n,a=this.bias==null?null:this.bias.read(),r=lN(this.activation.getClassName());if(r!=null&&this.rank===2)n=jk(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(this.rank===1)n=LU(e,this.kernel.read(),a,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=jk(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=zU(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new Me("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(e){e=tt(e);let t=[],n=this.dataFormat==="channelsLast"?e.slice(1,e.length-1):e.slice(2);for(let r=0;r 0 but got ${JSON.stringify(e.filters)}`)}},td=class extends ed{constructor(e){super(2,e),td.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!tw(e.kernelSize,"number",1,2))throw new V(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}};td.className="Conv2D";ne.registerClass(td);var nd=class extends ed{constructor(e){super(3,e),nd.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!(Array.isArray(e.kernelSize)&&(e.kernelSize.length===1||e.kernelSize.length===3)))throw new V(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}};nd.className="Conv3D";ne.registerClass(nd);var Fw=class extends td{constructor(e){if(super(e),this.inputSpec=[new zt({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new V(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=tt(e),e.length!==4)throw new V("Input should have rank 4; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V("The channel dimension of the inputs should be defined. Found `None`.");let n=e[t],a=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",a,"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 zt({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return P(()=>{let n=Ne(e);if(n.shape.length!==4)throw new V(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let a=n.shape,r=a[0],s,i;this.dataFormat==="channelsFirst"?(s=2,i=3):(s=1,i=2);let o=a[s],l=a[i],u=this.kernelSize[0],p=this.kernelSize[1],d=this.strides[0],c=this.strides[1],h=rr(o,d,u,this.padding),m=rr(l,c,p,this.padding),f=[r,h,m,this.filters];this.dataFormat!=="channelsLast"&&(n=Ee(n,[0,2,3,1]));let g=Km(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=Ee(g,[0,3,1,2])),this.bias!=null&&(g=Xa(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=tt(e);let t=e.slice(),n,a,r;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3):(n=3,a=1,r=2);let s=this.kernelSize[0],i=this.kernelSize[1],o=this.strides[0],l=this.strides[1];return t[n]=this.filters,t[a]=rr(t[a],o,s,this.padding),t[r]=rr(t[r],l,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Fw.className="Conv2DTranspose";ne.registerClass(Fw);var Dw=class extends nd{constructor(e){if(super(e),this.inputSpec=[new zt({ndim:5})],this.padding!=="same"&&this.padding!=="valid")throw new V(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=tt(e),e.length!==5)throw new V("Input should have rank 5; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V("The channel dimension of the inputs should be defined. Found `None`.");let n=e[t],a=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",a,"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 zt({ndim:5,axes:{[t]:n}})],this.built=!0}call(e,t){return P(()=>{let n=Ne(e);if(n.shape.length!==5)throw new V(`Conv3DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let a=n.shape,r=a[0],s,i,o;this.dataFormat==="channelsFirst"?(o=2,s=3,i=4):(o=1,s=2,i=3);let l=a[o],u=a[s],p=a[i],d=this.kernelSize[0],c=this.kernelSize[1],h=this.kernelSize[2],m=this.strides[0],f=this.strides[1],g=this.strides[2],y=rr(l,m,d,this.padding),b=rr(u,f,c,this.padding),x=rr(p,g,h,this.padding),w=[r,y,b,x,this.filters];this.dataFormat!=="channelsLast"&&(n=Ee(n,[0,2,3,4,1]));let I=gv(n,this.kernel.read(),w,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(I=Ee(I,[0,4,1,2,3])),this.bias!==null&&(I=Xa(I,this.bias.read(),this.dataFormat)),this.activation!==null&&(I=this.activation.apply(I)),I})}computeOutputShape(e){e=tt(e);let t=e.slice(),n,a,r,s;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3,s=4):(n=4,a=1,r=2,s=3);let i=this.kernelSize[0],o=this.kernelSize[1],l=this.kernelSize[2],u=this.strides[0],p=this.strides[1],d=this.strides[2];return t[n]=this.filters,t[a]=rr(t[a],u,i,this.padding),t[r]=rr(t[r],p,o,this.padding),t[s]=rr(t[s],d,l,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Dw.className="Conv3DTranspose";ne.registerClass(Dw);var t2=class extends ed{constructor(e,t){if(super(e,t),this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,t.filters==null)throw new V("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new V("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(t.padding!=null&&t.padding!=="same"&&t.padding!=="valid")throw new V(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=St(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Tt(t.depthwiseRegularizer),this.depthwiseConstraint=Kt(t.depthwiseConstraint),this.pointwiseInitializer=St(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Tt(t.pointwiseRegularizer),this.pointwiseConstraint=Kt(t.pointwiseConstraint)}build(e){if(e=tt(e),e.length{e=Ne(e);let n;if(this.rank===1)throw new Me("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=Ee(e,[0,2,3,1])),n=Ts(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=Xa(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Ee(n,[0,3,1,2])),n})}getConfig(){let e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.pointwiseInitializer=Ct(this.pointwiseInitializer),e.depthwiseRegularizer=pt(this.depthwiseRegularizer),e.pointwiseRegularizer=pt(this.pointwiseRegularizer),e.depthwiseConstraint=qt(this.depthwiseConstraint),e.pointwiseConstraint=qt(this.pointwiseConstraint),e}};t2.className="SeparableConv";var Rw=class extends t2{constructor(e){super(2,e)}};Rw.className="SeparableConv2D";ne.registerClass(Rw);var Wf=class extends ed{constructor(e){super(1,e),Wf.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){let e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!tw(e.kernelSize,"number",1,1))throw new V(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}};Wf.className="Conv1D";ne.registerClass(Wf);var Mw=class extends Ge{constructor(e){super(e),typeof e.cropping=="number"?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:typeof e.cropping[0]=="number"?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=e.dataFormat===void 0?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return this.dataFormat==="channelsFirst"?[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 P(()=>{if(e=Ne(e),this.dataFormat==="channelsLast"){let n=uh(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return uh(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=uh(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return uh(n,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Mw.className="Cropping2D";ne.registerClass(Mw);var Pw=class extends Ge{constructor(e){super(e),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=e.size==null?this.DEFAULT_SIZE:e.size,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,Y4(this.interpolation)}computeOutputShape(e){if(this.dataFormat==="channelsFirst"){let t=e[2]==null?null:this.size[0]*e[2],n=e[3]==null?null:this.size[1]*e[3];return[e[0],e[1],t,n]}else{let t=e[1]==null?null:this.size[0]*e[1],n=e[2]==null?null:this.size[1]*e[2];return[e[0],t,n,e[3]]}}call(e,t){return P(()=>{let n=Ne(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=Ee(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?za.resizeNearestNeighbor(n,[r,s]):za.resizeBilinear(n,[r,s]);return Ee(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?za.resizeNearestNeighbor(n,[r,s]):za.resizeBilinear(n,[r,s])}})}getConfig(){let e={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},t=super.getConfig();return Object.assign(e,t),e}};Pw.className="UpSampling2D";ne.registerClass(Pw);function WU(e,t,n=[1,1],a="valid",r,s){return P(()=>{r==null&&(r=ja()),Rt(r);let i=$w(e,r);if(e.rank!==4)throw new V(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(t.rank!==4)throw new V(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=Is(i,t,n,a==="same"?"same":"valid","NHWC",s),r==="channelsFirst"&&(i=Ee(i,[0,3,1,2])),i})}var Ow=class extends Aw{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=St(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Kt(e.depthwiseConstraint),this.depthwiseRegularizer=Tt(e.depthwiseRegularizer)}build(e){if(e=tt(e),e.length<4)throw new V(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);let t=this.dataFormat==="channelsFirst"?1:3;if(e[t]==null||e[t]<0)throw new V(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);let n=e[t],a=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",a,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 P(()=>{e=Ne(e);let n=WU(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=Xa(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(e){e=tt(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,r=Ga(t,this.kernelSize[0],this.padding,this.strides[0]),s=Ga(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[e[0],a,r,s]:[e[0],r,s,a]}getConfig(){let e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.depthwiseRegularizer=pt(this.depthwiseRegularizer),e.depthwiseConstraint=qt(this.depthwiseRegularizer),e}};Ow.className="DepthwiseConv2D";ne.registerClass(Ow);function n2(e,t,n,a){if(Array.isArray(e)){if(t!=null||n!=null)throw new V("When inputs is an array, neither initialState or constants should be provided");a!=null&&(n=e.slice(e.length-a,e.length),e=e.slice(0,e.length-a)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function r(s){return s==null||Array.isArray(s)?s:[s]}return t=r(t),n=r(n),{inputs:e,initialState:t,constants:n}}function a2(e,t,n,a=!1,r,s,i=!1,o=!1){return P(()=>{let l=t.shape.length;if(l<3)throw new V(`Input should be at least 3D, but is ${l}D.`);let u=[1,0].concat(Ha(2,l));if(t=Ee(t,u),s!=null)throw new Me("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."),r!=null&&(r=le(le(r,"bool"),"float32"),r.rank===l-1&&(r=Zt(r,-1)),r=Ee(r,u)),a&&(t=ga(t,0),r!=null&&(r=ga(r,0)));let p=[],d,c=n,h=t.shape[0],m=ct(t),f;r!=null&&(f=ct(r));for(let y=0;ye(b,c));if(r==null)d=x[0],c=x[1];else{let w=P(()=>{let I=f[y],T=pe(na(I),I),C=Y(z(x[0],I),z(c[0],T)),E=c.map(($,R)=>Y(z(x[1][R],I),z($,T)));return{output:C,newStates:E}});d=w.output,c=w.newStates}o&&p.push(d)}let g;return o&&(g=Ft(p,1)),[d,g,c]})}var mr=class extends Ge{constructor(e){super(e);let t;if(e.cell==null)throw new V("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new Uf({cells:e.cell}):t=e.cell,t.stateSize==null)throw new V("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=e.returnSequences==null?!1:e.returnSequences,this.returnState=e.returnState==null?!1:e.returnState,this.goBackwards=e.goBackwards==null?!1:e.goBackwards,this._stateful=e.stateful==null?!1:e.stateful,this.unroll=e.unroll==null?!1:e.unroll,this.supportsMasking=!0,this.inputSpec=[new zt({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Ha(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){jb(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);let n=t[0],a;if(this.returnSequences?a=[e[0],e[1],n]:a=[e[0],n],this.returnState){let r=[];for(let s of t)r.push([e[0],s]);return[a].concat(r)}else return a}computeMask(e,t){return P(()=>{Array.isArray(t)&&(t=t[0]);let n=this.returnSequences?t:null;if(this.returnState){let a=this.states.map(r=>null);return[n].concat(a)}else return n})}get states(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let n=0;ns.shape[s.shape.length-1]),r))throw new V(`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=r.map(s=>new zt({shape:[null,s]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){P(()=>{if(!this.stateful)throw new Ir("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape[0];if(n==null)throw new V("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(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>It([n,a])):this.states_=[It([n,this.cell.stateSize])];else if(e==null)_e(this.states_),this.keptStates!=null&&(_e(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>It([n,a])):this.states_[0]=It([n,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new V(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t===!0?this.keptStates.push(this.states_.slice()):_e(this.states_);for(let a=0;aJt(a.clone()))})}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=n2(e,n,a,this.numConstants);e=r.inputs,n=r.initialState,a=r.constants;let s=[],i=[];if(n!=null){t.initialState=n,s=s.concat(n),this.stateSpec=[];for(let o of n)this.stateSpec.push(new zt({shape:o.shape}));i=i.concat(this.stateSpec)}if(a!=null&&(t.constants=a,s=s.concat(a),this.numConstants=a.length),s[0]instanceof Ba){let o=[e].concat(s),l=this.inputSpec.concat(i),u=this.inputSpec;this.inputSpec=l;let p=super.apply(o,t);return this.inputSpec=u,p}else return super.apply(e,t)}call(e,t){return P(()=>{let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;e=Ne(e),r==null&&(this.stateful?r=this.states_:r=this.getInitialState(e));let s=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(r.length!==s)throw new V(`RNN Layer has ${s} state(s) but was passed ${r.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let i={training:a},o=a2((c,h)=>{let m=this.cell.call([c].concat(h),i);return[m[0],m.slice(1)]},e,r,this.goBackwards,n,null,this.unroll,this.returnSequences),l=o[0],u=o[1],p=o[2];this.stateful&&this.resetStates(p,a);let d=this.returnSequences?u:l;return this.returnState?[d].concat(p):d})}getInitialState(e){return P(()=>{let t=It(e.shape);return t=fe(t,[1,2]),t=Xc(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Gb(t,[1,n]):t):this.cell.stateSize>1?[Gb(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),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){let e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(t.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===mr.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign(Object.assign(Object.assign({},n),e),t)}static fromConfig(e,t,n={}){let a=t.cell,r=Ua(a,n);return new e(Object.assign(t,{cell:r}))}};mr.className="RNN";ne.registerClass(mr);var ad=class extends Ge{},Bf=class extends ad{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,Qt(this.units,"units"),this.activation=ps(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Tt(e.kernelRegularizer),this.recurrentRegularizer=Tt(e.recurrentRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.kernelConstraint=Kt(e.kernelConstraint),this.recurrentConstraint=Kt(e.recurrentConstraint),this.biasConstraint=Kt(e.biasConstraint),this.dropout=Il([1,ls([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Il([1,ls([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=tt(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 P(()=>{if(e=e,e.length!==2)throw new V(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let n=e[1];e=e[0];let a=t.training==null?!1:t.training;0na(e),rate:this.dropout,training:a,dropoutFunc:this.dropoutFunc})),0na(n),rate:this.recurrentDropout,training:a,dropoutFunc:this.dropoutFunc}));let r,s=this.dropoutMask,i=this.recurrentDropoutMask;s!=null?r=or(z(e,s),this.kernel.read()):r=or(e,this.kernel.read()),this.bias!=null&&(r=Xa(r,this.bias.read())),i!=null&&(n=z(n,i));let o=Y(r,or(n,this.recurrentKernel.read()));return this.activation!=null&&(o=this.activation.apply(o)),[o,o]})}getConfig(){let e=super.getConfig(),t={units:this.units,activation:us(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),recurrentInitializer:Ct(this.recurrentInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:pt(this.kernelRegularizer),recurrentRegularizer:pt(this.recurrentRegularizer),biasRegularizer:pt(this.biasRegularizer),activityRegularizer:pt(this.activityRegularizer),kernelConstraint:qt(this.kernelConstraint),recurrentConstraint:qt(this.recurrentConstraint),biasConstraint:qt(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},e),t)}};Bf.className="SimpleRNNCell";ne.registerClass(Bf);var Lw=class extends mr{constructor(e){e.cell=new Bf(e),super(e)}call(e,t){return P(()=>{this.cell.dropoutMask!=null&&(_e(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_e(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return new e(t)}};Lw.className="SimpleRNN";ne.registerClass(Lw);var Vf=class extends ad{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 V("GRUCell does not support reset_after parameter set to true.");this.units=e.units,Qt(this.units,"units"),this.activation=ps(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ps(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Tt(e.kernelRegularizer),this.recurrentRegularizer=Tt(e.recurrentRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.kernelConstraint=Kt(e.kernelConstraint),this.recurrentConstraint=Kt(e.recurrentConstraint),this.biasConstraint=Kt(e.biasConstraint),this.dropout=Il([1,ls([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Il([1,ls([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=tt(e);let t=e[e.length-1];this.kernel=this.addWeight("kernel",[t,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return P(()=>{if(e=e,e.length!==2)throw new V(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training==null?!1:t.training,a=e[1];e=e[0],0na(e),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0na(a),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));let r=this.dropoutMask,s=this.recurrentDropoutMask,i,o,l;0{this.cell.dropoutMask!=null&&(_e(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_e(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};zw.className="GRU";ne.registerClass(zw);var rd=class extends ad{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,Qt(this.units,"units"),this.activation=ps(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ps(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=Tt(e.kernelRegularizer),this.recurrentRegularizer=Tt(e.recurrentRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.kernelConstraint=Kt(e.kernelConstraint),this.recurrentConstraint=Kt(e.recurrentConstraint),this.biasConstraint=Kt(e.biasConstraint),this.dropout=Il([1,ls([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Il([1,ls([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=tt(e);let n=e[e.length-1];this.kernel=this.addWeight("kernel",[n,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let a;if(this.useBias){if(this.unitForgetBias){let r=this.biasInitializer,s=this.units;a=new(t=class extends Ra{apply(i,o){let l=r.apply([s]),u=new $f().apply([s]),p=r.apply([s*2]);return $k($k(l,u),p)}},t.className="CustomInit",t)}else a=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,a,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return P(()=>{let n=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new V(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let a=e[1],r=e[2];e=e[0],0na(e),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0na(a),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));let s=this.dropoutMask,i=this.recurrentDropoutMask,o,l,u,p;0{this.cell.dropoutMask!=null&&(_e(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_e(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Ww.className="LSTM";ne.registerClass(Ww);var Uf=class extends ad{constructor(e){super(e),this.cells=e.cells}get stateSize(){let e=[];for(let t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return P(()=>{e=e;let n=e.slice(1),a=[];for(let i of this.cells.slice().reverse())Array.isArray(i.stateSize)?a.push(n.splice(0,i.stateSize.length)):a.push(n.splice(0,1));a.reverse();let r=[],s;for(let i=0;i{Ys(`RNNCell_${a}`,()=>{n.build(e),Array.isArray(n.stateSize)?t=n.stateSize[0]:t=n.stateSize,e=[e[0],t]})}),this.built=!0}getConfig(){let e=super.getConfig(),t=a=>({className:a.getClassName(),config:a.getConfig()}),n={cells:this.cells.map(t)};return Object.assign(Object.assign({},e),n)}static fromConfig(e,t,n={}){let a=[];for(let r of t.cells)a.push(Ua(r,n));return new e({cells:a})}get trainableWeights(){if(!this.trainable)return[];let e=[];for(let t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.cells)t.push(...n.trainableWeights);return t.concat(e)}return e}getWeights(){let e=[];for(let t of this.cells)e.push(...t.weights);return qb(e)}setWeights(e){let t=[];for(let n of this.cells){let a=n.weights.length,r=e.splice(a);for(let s=0;ss!=null?s(t(),n):fN(t(),n),o=()=>Zc(i,t,a);return!r||r<=1?Jt(o().clone()):Array(r).fill(void 0).map(o).map(l=>Jt(l.clone()))}var BU=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,a=Object.getOwnPropertySymbols(e);r{if(this.cell.dropoutMask!=null&&(_e(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_e(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new V("ConvRNN2D cell does not support constants");let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}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 P(()=>{let{stateSize:t}=this.cell,n=e.shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)],s=It(r);return Array.isArray(t)?Array(t.length).fill(s):[s]})}resetStates(e,t=!1){P(()=>{if(!this.stateful)throw new Ir("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)];if(n[0]==null)throw new V("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(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>It(r)):this.states_=[It(r)];else if(e==null)_e(this.states_),this.keptStates!=null&&(_e(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>It(r)):this.states_[0]=It(r);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new V(`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()):_e(this.states_);for(let s=0;sJt(s.clone()))})}computeSingleOutputShape(e){let{dataFormat:t,filters:n,kernelSize:a,padding:r,strides:s,dilationRate:i}=this.cell,o=t==="channelsFirst",l=e[o?3:2],u=e[o?4:3],p=Ga(l,a[0],r,s[0],i[0]),d=Ga(u,a[1],r,s[1],i[1]);return[...e.slice(0,2),...o?[n,p,d]:[p,d,n]]}};r2.className="ConvRNN2D";var Gf=class extends rd{constructor(e){let{filters:t,kernelSize:n,strides:a,padding:r,dataFormat:s,dilationRate:i}=e;super(Object.assign(Object.assign({},e),{units:t})),this.filters=t,Qt(this.filters,"filters"),this.kernelSize=dl(n,2,"kernelSize"),this.kernelSize.forEach(o=>Qt(o,"kernelSize")),this.strides=dl(a||1,2,"strides"),this.strides.forEach(o=>Qt(o,"strides")),this.padding=r||"valid",xa(this.padding),this.dataFormat=s||"channelsLast",Rt(this.dataFormat),this.dilationRate=dl(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>Qt(o,"dilationRate"))}build(e){var t;e=tt(e);let n=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[n]==null)throw new V(`The channel dimension of the input should be defined. Found ${e[n]}`);let a=e[n],r=4,s=this.kernelSize.concat([a,this.filters*r]);this.kernel=this.addWeight("kernel",s,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let i=this.kernelSize.concat([this.filters,this.filters*r]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",i,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let o;if(this.unitForgetBias){let l=this.biasInitializer,u=this.filters;o=new(t=class extends Ra{apply(p,d){let c=l.apply([u]),h=Jn([u]),m=l.apply([u*2]);return nw([c,h,m])}},t.className="CustomInit",t)}else o=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*r],null,o,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return P(()=>{if(e.length!==3)throw new V(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training||!1,a=e[0],r=e[1],s=e[2],i=4;0na(a),rate:this.dropout,training:n,count:i,dropoutFunc:this.dropoutFunc}));let o=this.dropoutMask,l=(Z,J,ee)=>!J||!J[ee]?Z:z(J[ee],Z),u=l(a,o,0),p=l(a,o,1),d=l(a,o,2),c=l(a,o,3);0na(r),rate:this.recurrentDropout,training:n,count:i,dropoutFunc:this.dropoutFunc}));let h=this.recurrentDropoutMask,m=l(r,h,0),f=l(r,h,1),g=l(r,h,2),y=l(r,h,3),b=3,[x,w,I,T]=zn(this.kernel.read(),i,b),[C,E,$,R]=this.useBias?zn(this.bias.read(),i):[null,null,null,null];u=this.inputConv(u,x,C,this.padding),p=this.inputConv(p,w,E,this.padding),d=this.inputConv(d,I,$,this.padding),c=this.inputConv(c,T,R,this.padding);let[F,S,M,B]=zn(this.recurrentKernel.read(),i,b);m=this.recurrentConv(m,F),f=this.recurrentConv(f,S),g=this.recurrentConv(g,M),y=this.recurrentConv(y,B);let U=this.recurrentActivation.apply(Y(u,m)),G=this.recurrentActivation.apply(Y(p,f)),q=Y(z(G,s),z(U,this.activation.apply(Y(d,g)))),K=z(this.recurrentActivation.apply(Y(c,y)),this.activation.apply(q));return[K,K,q]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=BU(e,["units"]),a={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),a)}inputConv(e,t,n,a){let r=At(e,t,this.strides,a||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?Xa(r,n,this.dataFormat):r}recurrentConv(e,t){return At(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Gf.className="ConvLSTM2DCell";ne.registerClass(Gf);var Bw=class extends r2{constructor(e){let t=new Gf(e);super(Object.assign(Object.assign({},e),{cell:t}))}static fromConfig(e,t){return new e(t)}};Bw.className="ConvLSTM2D";ne.registerClass(Bw);var Hf=class extends Ge{constructor(e){super(e),this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(this.noiseShape==null)return this.noiseShape;let t=e.shape,n=[];for(let a=0;a{this.invokeCallHook(e,t);let n=Ne(e);if(0fN(n,this.rate,r,this.seed),()=>n,a)}return e})}getConfig(){let e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}};Hf.className="Dropout";ne.registerClass(Hf);var Vw=class extends Hf{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};Vw.className="SpatialDropout1D";ne.registerClass(Vw);var Uw=class extends Ge{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",e.batchInputShape==null&&e.inputShape==null&&e.inputDim!=null){let t=null;e.batchSize!=null&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,Qt(this.units,"units"),this.activation=ps(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Kt(e.kernelConstraint),this.biasConstraint=Kt(e.biasConstraint),this.kernelRegularizer=Tt(e.kernelRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.activityRegularizer=Tt(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=tt(e);let t=e[e.length-1];this.kernel==null&&(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){e=tt(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e),a=lN(this.activation.getClassName()),r;return a!=null?r=or(n,this.kernel.read(),a,this.bias?this.bias.read():null):(r=or(n,this.kernel.read()),this.bias!=null&&(r=Xa(r,this.bias.read())),this.activation!=null&&(r=this.activation.apply(r))),r})}getConfig(){let e={units:this.units,activation:us(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:pt(this.kernelRegularizer),biasRegularizer:pt(this.biasRegularizer),activityRegularizer:pt(this.activityRegularizer),kernelConstraint:qt(this.kernelConstraint),biasConstraint:qt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Uw.className="Dense";ne.registerClass(Uw);var Gw=class extends Ge{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=tt(e);for(let t of e.slice(1))if(t==null)throw new V(`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],rs(e,1)]}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Ne(e);return this.activation.apply(n)})}getConfig(){let e={activation:us(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};Hw.className="Activation";ne.registerClass(Hw);var jw=class extends Ge{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 P(()=>(e=Ne(e),eV(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};jw.className="RepeatVector";ne.registerClass(jw);var qw=class extends Ge{constructor(e){super(e),this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Ne(e),a=n.shape,r=a.slice(0,1).concat(this.fixUnknownDimension(a.slice(1),this.targetShape));return W(n,r)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};qw.className="Reshape";ne.registerClass(qw);var Kw=class extends Ge{constructor(e){if(super(e),e.dims==null)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.`);let t=Ha(1,e.dims.length+1);if(!v.arraysEqual(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 zt({ndim:this.dims.length+1})]}computeOutputShape(e){e=tt(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return Ee(Ne(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};Kw.className="Permute";ne.registerClass(Kw);var Xw=class extends Ge{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null?this.maskValue=e.maskValue==null?0:e.maskValue:this.maskValue=0}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){let n=Ne(e),a=-1;return Qp(oi(n,this.maskValue),a)}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e),a=-1,r=!0,s=Qp(oi(n,this.maskValue),a,r);return z(n,le(s,n.dtype))})}};Xw.className="Masking";ne.registerClass(Xw);var Yw=class extends Ge{constructor(e){if(super(e),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",e.batchInputShape==null&&e.inputShape==null){let t=null;e.batchSize!=null&&(t=e.batchSize),e.inputLength==null?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(xt(e.inputLength))}this.inputDim=e.inputDim,Qt(this.inputDim,"inputDim"),this.outputDim=e.outputDim,Qt(this.outputDim,"outputDim"),this.embeddingsInitializer=St(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Tt(e.embeddingsRegularizer),this.activityRegularizer=Tt(e.activityRegularizer),this.embeddingsConstraint=Kt(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 P(()=>this.maskZero?(e=Ne(e),oi(e,qe(e))):null)}computeOutputShape(e){if(e=tt(e),this.inputLength==null)return[...e,this.outputDim];let t=xt(this.inputLength);if(t.length!==e.length-1)throw new V(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let n=0;for(let a=0;a{this.invokeCallHook(e,t);let n=Ne(e);n.dtype!=="int32"&&(n=bo(n,"int32"));let a=mN(this.embeddings.read(),W(n,[n.size]));return W(a,tt(this.computeOutputShape(n.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Ct(this.embeddingsInitializer),embeddingsRegularizer:pt(this.embeddingsRegularizer),activityRegularizer:pt(this.activityRegularizer),embeddingsConstraint:qt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};Yw.className="Embedding";ne.registerClass(Yw);var vo=class extends Ge{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new Me}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new V(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let n=e[0]==null?null:e[0].slice(1);for(let r=1;rr.length);e.indexOf(null)===-1&&as(a).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return P(()=>{if(e=e,this.reshapeRequired){let n=[],a=e.map(r=>r.rank);if(a.indexOf(null)===-1){let r=ls(a);for(let s of e){let i=s.rank;for(let o=0;o1){let u=Ha(1,l).concat([0]);n.push(Ee(o,u)),r=!0}else n.push(o)}let s=this.mergeFunction(n),i=s.rank;if(r){if(i==null){let o=s.shape,l=o.length,u=o[l-1],p=[u].concat(o.slice(0,o.length-1));s=W(Ee(W(s,[-1,u]),[1,0]),p)}else if(i>1){let o=[i-1].concat(Ha(0,i-1));s=Ee(s,o)}}return s}}else return this.mergeFunction(e)})}computeOutputShape(e){e=e;let t;e[0]==null?t=null:t=e[0].slice(1);for(let a=1;a{if(t==null)return null;if(!Array.isArray(t))throw new V("`mask` should be an Array");if(!Array.isArray(e))throw new V("`inputs` should be an Array");if(t.length!==e.length)throw new V(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every(a=>a==null))return null;t=t.map(a=>a==null?a:Zt(a,0));let n=t[0];for(let a=1;a{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 V("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return P(()=>nw(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new V("A `Concatenate` layer should be called on a list of inputs.");let t=e,n=t[0].slice(),a=this.axis<0?n.length+this.axis:this.axis;for(let r of t.slice(1)){if(n[a]==null||r[a]==null){n[a]=null;break}n[a]+=r[a]}return n}computeMask(e,t){if(t==null)return null;if(!Array.isArray(t))throw new V("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new V("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new V(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return P(()=>{let n=!0;if(t.forEach(s=>{if(s!=null){n=!1;return}}),n)return null;let a=[];for(let s=0;s3||t.shape.length>3)throw new Me("batchDot is not implemented for tensors of 4D or higher rank yet");if(v.assert(e.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`),v.assert(e.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof n=="number"&&(n=[n,n]),e.dtype==="complex64"||t.dtype==="complex64")throw new Me("batchDot is not implemented for complex64-type Tensors yet.");let a=e.shape.length,r=t.shape.length;n==null&&(n=[a-1,r-2]);let s=n;return P(()=>{let i;if(a>r){i=a-r;let l=[];for(let u=0;ua){i=r-a;let l=[];for(let u=0;u0){let l;a>r?l=a+r-3:l=a-1;let u=[];for(let p=l;p"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0],n=e[1];if(t.length>3||n.length>3)throw new Me("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);if(t[a[0]]!==n[a[1]])throw new V(`Dimension incompatibility: ${t[a[0]]} !== ${n[a[1]]}`)}mergeFunction(e){if(e.length!==2)throw new V(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t=e[0],n=e[1],a;return Array.isArray(this.axes)?a=this.axes.map((r,s)=>$p(r,e[s].shape.length)):a=[$p(this.axes,t.shape.length),$p(this.axes,n.shape.length)],this.normalize&&(t=Gh(t,a[0]),n=Gh(n,a[1])),VU(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[$p(this.axes,e.length),$p(this.axes,t.length)],n}computeOutputShape(e){v.assert(Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0].slice(),n=e[1].slice();if(t.length>3||n.length>3)throw new Me("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);t.splice(a[0],1),n.splice(a[1],1),n.splice(0,1);let r=t.concat(n);return r.length===1&&r.push(1),r}computeMask(e,t){return null}getConfig(){let e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}};a0.className="Dot";ne.registerClass(a0);var r0=class extends Ge{constructor(e){super(e),this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e);return Zc(()=>Y(Ef(n.shape,0,this.stddev),n),()=>n,t.training||!1)})}};r0.className="GaussianNoise";ne.registerClass(r0);var s0=class extends Ge{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e);return this.rate>0&&this.rate<1?Zc(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return z(n,Ef(n.shape,1,a))},()=>n,t.training||!1):n})}};s0.className="GaussianDropout";ne.registerClass(s0);var i0=class extends Ge{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Ne(e).shape}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return P(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(e);return Zc(()=>{let a=Ne(e),r=1.6732632423543772,s=1.0507009873554805,i=-r*s,o=Fr(Uu(n),this.rate);o=bo(o,"float32");let l=((1-this.rate)*(1+this.rate*i**2))**-.5,u=-l*i*this.rate,p=Y(z(a,o),z(Y(o,-1),i));return Y(z(p,l),u)},()=>Ne(e),t.training||!1)}return e})}};i0.className="AlphaDropout";ne.registerClass(i0);function ac(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=sv(e,t,n,a,r,s);else if(e.rank===3)i=iv(e,t,n,a,r,s);else if(e.rank===4)i=ov(e,t,n,a,r,s);else throw new Me(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function UU(e,t,n,a,r=.001){return P(()=>{let s=Bc(e,a),i=s.mean,o=s.variance;return[ac(e,i,o,n,t,r),i,o]})}function GU(e,t,n,a,r=.001){return P(()=>{let s=Bc(e,a),i=s.mean,o=s.variance,l=[];for(let h of Ha(0,e.rank))a.indexOf(h)!==-1?l.push(1):l.push(e.shape[h]);let u=W(i,l),p=W(o,l),d=t==null?null:W(t,l),c=n==null?null:W(n,l);return[ac(e,u,p,c,d,r),i,o]})}function HU(e,t,n,a,r=.001){return v.arraysEqual(a.slice().sort(),Ha(0,e.rank-1))?UU(e,t,n,a,r):GU(e,t,n,a,r)}var o0=class extends Ge{constructor(e){e==null&&(e={}),super(e),this.supportsMasking=!0,this.axis=e.axis==null?-1:e.axis,this.momentum=e.momentum==null?.99:e.momentum,this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=St(e.betaInitializer||"zeros"),this.gammaInitializer=St(e.gammaInitializer||"ones"),this.movingMeanInitializer=St(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=St(e.movingVarianceInitializer||"ones"),this.betaConstraint=Kt(e.betaConstraint),this.gammaConstraint=Kt(e.gammaConstraint),this.betaRegularizer=Tt(e.betaRegularizer),this.gammaRegularizer=Tt(e.gammaRegularizer)}build(e){e=tt(e);let t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(n==null)throw new V(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new zt({ndim:e.length,axes:{[t]:n}})];let a=[n];this.scale&&(this.gamma=this.addWeight("gamma",a,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",a,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",a,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",a,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return P(()=>{let n=t.training==null?!1:t.training,a=Ne(e),r=a.shape,s=r.length,i=Ha(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=li(1,s);l[o]=r[o];let u=i.slice();u.sort();let p=!v.arraysEqual(u,Ha(0,s).slice(0,s-1)),d=()=>{if(p){let g=W(this.movingMean.read(),l),y=W(this.movingVariance.read(),l),b=this.center?W(this.beta.read(),l):null,x=this.scale?W(this.gamma.read(),l):null;return ac(a,g,y,b,x,this.epsilon)}else return ac(a,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!n)return d();let[c,h,m]=HU(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,y,b)=>{P(()=>{let x=1-b,w=g.read(),I=z(pe(w,y),x);g.write(pe(w,I))})};return f(this.movingMean,h,this.momentum),f(this.movingVariance,m,this.momentum),c})}getConfig(){let e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Ct(this.betaInitializer),gammaInitializer:Ct(this.gammaInitializer),movingMeanInitializer:Ct(this.movingMeanInitializer),movingVarianceInitializer:Ct(this.movingVarianceInitializer),betaRegularizer:pt(this.betaRegularizer),gammaRegularizer:pt(this.gammaRegularizer),betaConstraint:qt(this.betaConstraint),gammaConstraint:qt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};o0.className="BatchNormalization";ne.registerClass(o0);var l0=class extends Ge{constructor(e){if(e==null&&(e={}),super(e),this.axis=e.axis==null?-1:e.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let t of this.axis)if(!Number.isInteger(t))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=St(e.betaInitializer||"zeros"),this.gammaInitializer=St(e.gammaInitializer||"ones"),this.betaRegularizer=Tt(e.betaRegularizer),this.gammaRegularizer=Tt(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=tt(e);let t=e.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let r=0;r=t)throw new Error(`Invalid axis: ${r}`);if(this.axis.length!==as(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(r=>e[r]),a=!0;this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,a):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,a):this.beta=null,this.built=!0}call(e,t){let n=Ne(e),a=n.shape,r=a.length;return P(()=>{let{mean:s,variance:i}=Bc(n,this.axis,!0),o=li(1,r);for(let h of this.axis)o[h]=a[h];let l=h=>h!=null&&h.shape.length!==r?W(h,o):h,u=this.scale?l(this.gamma.read()):null,p=this.center?l(this.beta.read()):null,d=[],c=[];for(let h=0;h{if(e.rank!==4)throw new V(`temporalPadding expects input tensor to be 4-D, but received a ${e.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new V("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(n==null&&(n=ja()),n!=="channelsLast"&&n!=="channelsFirst")throw new V(`Unknown data format: ${n}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let a;return n==="channelsFirst"?a=[[0,0],[0,0],t[0],t[1]]:a=[[0,0],t[0],t[1],[0,0]],ba(e,a)})}var u0=class extends Ge{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?ja():e.dataFormat,e.padding==null)this.padding=[[1,1],[1,1]];else if(typeof e.padding=="number")this.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,e.padding.length!==2)throw new V(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${e.padding.length} array.`);let t,n;if(typeof e.padding[0]=="number")t=[e.padding[0],e.padding[0]],n=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,e.padding[0].length!==2)throw new V(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${e.padding[0].length} array.`);if(t=e.padding[0],e.padding[1].length!==2)throw new V(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${e.padding[1].length} array.`);n=e.padding[1]}this.padding=[t,n]}this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){e=tt(e);let t,n;return this.dataFormat==="channelsFirst"?(e[2]!=null&&e[2]>=0?t=e[2]+this.padding[0][0]+this.padding[0][1]:t=null,e[3]!=null&&e[3]>=0?n=e[3]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],e[1],t,n]):(e[1]!=null&&e[1]>=0?t=e[1]+this.padding[0][0]+this.padding[0][1]:t=null,e[2]!=null&&e[2]>=0?n=e[2]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],t,n,e[3]])}call(e,t){return P(()=>jU(Ne(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};u0.className="ZeroPadding2D";ne.registerClass(u0);function jf(e,t,n,a,r,s){return P(()=>{Rt(r),pN(s),xa(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=ja()),s==null&&(s="max"),e=$w(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Dt(e,t,n,o):i=ya(e,t,n,o),r==="channelsFirst"&&(i=Ee(i,[0,3,1,2])),i})}function s2(e,t,n,a,r,s){return P(()=>{Rt(r),pN(s),xa(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=ja()),s==null&&(s="max"),e=e2(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Fv(e,t,n,o):i=rv(e,t,n,o),r==="channelsFirst"&&(i=Ee(i,[0,4,1,2,3])),i})}var i2=class extends Ge{constructor(e){if(e.poolSize==null&&(e.poolSize=2),super(e),typeof e.poolSize=="number")this.poolSize=[e.poolSize];else if(Array.isArray(e.poolSize)&&e.poolSize.length===1&&typeof e.poolSize[0]=="number")this.poolSize=e.poolSize;else throw new V(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(Qt(this.poolSize,"poolSize"),e.strides==null)this.strides=this.poolSize;else if(typeof e.strides=="number")this.strides=[e.strides];else if(Array.isArray(e.strides)&&e.strides.length===1&&typeof e.strides[0]=="number")this.strides=e.strides;else throw new V(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);Qt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,xa(this.padding),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){e=tt(e);let t=Ga(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return P(()=>{this.invokeCallHook(e,t),e=Xc(Ne(e),2);let n=this.poolingFunction(Ne(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Ns(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},p0=class extends i2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),xa(a),jf(e,t,n,a,r,"max")}};p0.className="MaxPooling1D";ne.registerClass(p0);var c0=class extends i2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),xa(a),jf(e,t,n,a,r,"avg")}};c0.className="AveragePooling1D";ne.registerClass(c0);var o2=class extends Ge{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==2)throw new V(`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];Qt(this.poolSize,"poolSize"),Qt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),xa(this.padding),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){e=tt(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=Ga(t,this.poolSize[0],this.padding,this.strides[0]),n=Ga(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n]:[e[0],t,n,e[3]]}call(e,t){return P(()=>(this.invokeCallHook(e,t),this.poolingFunction(Ne(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},d0=class extends o2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),xa(a),jf(e,t,n,a,r,"max")}};d0.className="MaxPooling2D";ne.registerClass(d0);var h0=class extends o2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),xa(a),jf(e,t,n,a,r,"avg")}};h0.className="AveragePooling2D";ne.registerClass(h0);var l2=class extends Ge{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==3)throw new V(`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];Qt(this.poolSize,"poolSize"),Qt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),xa(this.padding),this.inputSpec=[new zt({ndim:5})]}computeOutputShape(e){e=tt(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[4]:e[3];return t=Ga(t,this.poolSize[0],this.padding,this.strides[0]),n=Ga(n,this.poolSize[1],this.padding,this.strides[1]),a=Ga(a,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n,a]:[e[0],t,n,a,e[4]]}call(e,t){return P(()=>(this.invokeCallHook(e,t),this.poolingFunction(Ne(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},m0=class extends l2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),xa(a),s2(e,t,n,a,r,"max")}};m0.className="MaxPooling3D";ne.registerClass(m0);var f0=class extends l2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),xa(a),s2(e,t,n,a,r,"avg")}};f0.className="AveragePooling3D";ne.registerClass(f0);var u2=class extends Ge{constructor(e){super(e),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new Me}},g0=class extends u2{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Ne(e);return Nt(n,1)})}};g0.className="GlobalAveragePooling1D";ne.registerClass(g0);var y0=class extends u2{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Ne(e);return ma(n,1)})}};y0.className="GlobalMaxPooling1D";ne.registerClass(y0);var p2=class extends Ge{constructor(e){super(e),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new Me}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},b0=class extends p2{call(e,t){return P(()=>{let n=Ne(e);return this.dataFormat==="channelsLast"?Nt(n,[1,2]):Nt(n,[2,3])})}};b0.className="GlobalAveragePooling2D";ne.registerClass(b0);var x0=class extends p2{call(e,t){return P(()=>{let n=Ne(e);return this.dataFormat==="channelsLast"?ma(n,[1,2]):ma(n,[2,3])})}};x0.className="GlobalMaxPooling2D";ne.registerClass(x0);var c2=class extends Ge{constructor(e){super(e),this.layer=e.layer}build(e){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(e){this.layer!=null&&(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(){let e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,n={}){let a=t.layer,r=Ua(a,n);delete t.layer;let s={layer:r};return Object.assign(s,t),new e(s)}},v0=class extends c2{constructor(e){super(e),this.supportsMasking=!0}build(e){if(e=tt(e),e.length<3)throw new V(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];let t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){e=tt(e);let t=[e[0]].concat(e.slice(2)),n=this.layer.computeOutputShape(t),a=e[1];return[n[0],a].concat(n.slice(1))}call(e,t){return P(()=>(e=Ne(e),a2((n,a)=>[Ne(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};v0.className="TimeDistributed";ne.registerClass(v0);function qU(e){yo(X4,"BidirectionalMergeMode",e)}var KU="concat",w0=class extends c2{constructor(e){super(e);let t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=Ua(n),t.goBackwards=t.goBackwards!==!0;let a={};if(a.className=e.layer.getClassName(),a.config=t,this.backwardLayer=Ua(a),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?KU:e.mergeMode,qU(this.mergeMode),e.weights)throw new Me("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,this.forwardLayer!=null&&(this.forwardLayer.trainable=e),this.backwardLayer!=null&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){let 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=this.forwardLayer.computeOutputShape(e);Array.isArray(t)&&Array.isArray(t[0])||(t=[t]),t=t;let n,a,r;return this.returnState&&(r=t.slice(1)),n=t[0],n=n,this.mergeMode==="concat"?(n[n.length-1]*=2,a=[n]):this.mergeMode==null?a=[n,n.slice()]:a=[n],this.returnState?this.mergeMode==null?a.concat(r).concat(r.slice()):[n].concat(r).concat(r.slice()):On(a)}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=n2(e,n,a,this.numConstants);if(e=r.inputs,n=r.initialState,a=r.constants,Array.isArray(e)&&(n=e.slice(1),e=e[0]),(n==null||n.length===0)&&a==null)return super.apply(e,t);let s=[],i=[];if(n!=null){let l=n.length;if(l%2>0)throw new V("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);let u=n.map(p=>new zt({shape:p.shape}));this.forwardLayer.stateSpec=u.slice(0,l/2),this.backwardLayer.stateSpec=u.slice(l/2),i.push(...u)}if(a!=null)throw new Me("Support for constants in Bidirectional layers is not implemented yet.");let o=s[0]instanceof Ba;for(let l of s)if(l instanceof Ba!==o)throw new V("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(o){let l=[e].concat(s),u=this.inputSpec.concat(i),p=this.inputSpec;this.inputSpec=u;let d=super.apply(l,t);return this.inputSpec=p,d}else return super.apply(e,t)}call(e,t){return P(()=>{let n=t.initialState,a,r;if(n==null)a=this.forwardLayer.call(e,t),r=this.backwardLayer.call(e,t);else{let o=n.slice(0,n.length/2),l=n.slice(n.length/2);a=this.forwardLayer.call(e,Object.assign(t,{initialState:o})),r=this.backwardLayer.call(e,Object.assign(t,{initialState:l}))}let s;this.returnState&&(Array.isArray(a)&&(s=a.slice(1).concat(r.slice(1))),a=a[0],r=r[0]),this.returnSequences&&(r=ga(r,1));let i;return this.mergeMode==="concat"?i=nw([a,r]):this.mergeMode==="sum"?i=Y(a,r):this.mergeMode==="ave"?i=z(.5,Y(a,r)):this.mergeMode==="mul"?i=z(a,r):this.mergeMode==null&&(i=[a,r]),this.returnState?this.mergeMode==null?i.concat(s):[i].concat(s):i})}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Ys(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),Ys(this.backwardLayer.name,()=>{this.backwardLayer.build(e)}),this.built=!0}computeMask(e,t){Array.isArray(t)&&(t=t[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[t,t]:n=t:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let a=this.forwardLayer.states.map(r=>null);return Array.isArray(n)?n.concat(a).concat(a):[n].concat(a).concat(a)}else 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),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(e),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){let e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){let n=Ua(t.layer);if(delete t.layer,t.numConstants!=null)throw new Me("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};w0.className="Bidirectional";ne.registerClass(w0);var k0=class extends Ge{constructor(e){super(e),this.scale=e.scale,e.offset?this.offset=e.offset:this.offset=0}getConfig(){let e={scale:this.scale,offset:this.offset},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return P(()=>(e=Ne(e),e.dtype!=="float32"&&(e=bo(e,"float32")),Y(z(e,this.scale),this.offset)))}};k0.className="Rescaling";ne.registerClass(k0);var XU=["bilinear","nearest"],qk=new Set(XU),I0=class extends Ge{constructor(e){if(super(e),this.height=e.height,this.width=e.width,e.interpolation)if(qk.has(e.interpolation))this.interpolation=e.interpolation;else throw new V(`Invalid interpolation parameter: ${e.interpolation} is not implemented`);else this.interpolation="bilinear";this.cropToAspectRatio=Boolean(e.cropToAspectRatio)}computeOutputShape(e){e=tt(e);let t=e[2];return[this.height,this.width,t]}getConfig(){let e={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return P(()=>{let n=[this.height,this.width];if(this.interpolation==="bilinear")return za.resizeBilinear(e,n,!this.cropToAspectRatio);if(this.interpolation==="nearest")return za.resizeNearestNeighbor(e,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...qk]} are supported`)})}};I0.className="Resizing";ne.registerClass(I0);function YU(e,t,n,a){let r=Ne(e);if(r.dtype!=="int32"&&(r=bo(r,"int32")),t==="int")return r;let s=r.shape;if(r.rank===0&&(r=Zt(r,-1)),t==="oneHot"&&r.shape[r.shape.length-1]!==1&&(r=Zt(r,-1)),r.rank>2)throw new V(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${s} which would result in output rank ${r.rank}.`);let i=["multiHot","oneHot"].includes(t),o=r,l;if(typeof a!="undefined"&&t==="count"?l=zh(o,a,n,i):l=zh(o,[],n,i),t!=="tfIdf")return l;if(a)return z(l,a);throw new V("When outputMode is 'tfIdf', weights must be provided.")}var S0=class extends Ge{constructor(e){super(e),this.numTokens=e.numTokens,e.outputMode?this.outputMode=e.outputMode:this.outputMode="multiHot"}getConfig(){let e={numTokens:this.numTokens,outputMode:this.outputMode},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){return e=tt(e),e==null?[this.numTokens]:this.outputMode==="oneHot"&&e[e.length-1]!==1?(e.push(this.numTokens),e):(e[e.length-1]=this.numTokens,e)}call(e,t){return P(()=>{e=Ne(e),e.dtype!=="int32"&&(e=bo(e,"int32"));let n;if(typeof t.countWeights!="undefined"){if(this.outputMode!=="count")throw new V(`countWeights is not used when outputMode !== count. + Received countWeights=${t.countWeights}`);n=Ne(t.countWeights)}let a=ma(e),r=bl(e),s=Cn(this.numTokens,a).bufferSync().get(0),i=Fr(r,0).bufferSync().get(0);if(!(s&&i))throw new V(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return YU(e,this.outputMode,this.numTokens,n)})}};S0.className="CategoryEncoding";ne.registerClass(S0);function ZU(e){return new Hu(e)}function JU(e){return new Cw(e)}function QU(e){return new Sw(e)}function eG(e){return new Tw(e)}function tG(e){return new Nw(e)}function nG(e){return new Ew(e)}function aG(e){return new _w(e)}function rG(e){return new Wf(e)}function sG(e){return new td(e)}function iG(e){return new Fw(e)}function oG(e){return new nd(e)}function lG(e){return new Dw(e)}function uG(e){return new Rw(e)}function pG(e){return new Mw(e)}function cG(e){return new Pw(e)}function dG(e){return new Ow(e)}function hG(e){return new Hw(e)}function mG(e){return new Uw(e)}function fG(e){return new Hf(e)}function gG(e){return new Vw(e)}function yG(e){return new Gw(e)}function bG(e){return new jw(e)}function xG(e){return new qw(e)}function vG(e){return new Kw(e)}function wG(e){return new Yw(e)}function kG(e){return new Zw(e)}function IG(e){return new Qw(e)}function SG(e){return new n0(e)}function TG(e){return new e0(e)}function NG(e){return new t0(e)}function CG(e){return new Jw(e)}function _G(e){return new a0(e)}function EG(e){return new o0(e)}function $G(e){return new l0(e)}function AG(e){return new u0(e)}function T0(e){return new c0(e)}function FG(e){return T0(e)}function DG(e){return T0(e)}function N0(e){return new h0(e)}function RG(e){return N0(e)}function MG(e){return N0(e)}function C0(e){return new f0(e)}function PG(e){return C0(e)}function OG(e){return C0(e)}function LG(e){return new g0(e)}function zG(e){return new b0(e)}function d2(e){return new y0(e)}function h2(e){return new x0(e)}function m2(e){return new p0(e)}function f2(e){return new d0(e)}function WG(e){return new m0(e)}function BG(e){return new zw(e)}function VG(e){return new Vf(e)}function UG(e){return new Ww(e)}function GG(e){return new rd(e)}function HG(e){return new Lw(e)}function jG(e){return new Bf(e)}function qG(e){return new Bw(e)}function KG(e){return new Gf(e)}function XG(e){return new mr(e)}function YG(e){return new Uf(e)}function ZG(e){return new w0(e)}function JG(e){return new v0(e)}var QG=d2,eH=h2,tH=m2,nH=f2;function aH(e){return new r0(e)}function rH(e){return new s0(e)}function sH(e){return new i0(e)}function iH(e){return new Xw(e)}function oH(e){return new k0(e)}function lH(e){return new I0(e)}function uH(e){return new S0(e)}var g2={};$e(g2,{MAPE:()=>vH,MSE:()=>IH,binaryAccuracy:()=>pH,binaryCrossentropy:()=>cH,categoricalAccuracy:()=>hH,categoricalCrossentropy:()=>mH,cosineProximity:()=>yH,mape:()=>wH,meanAbsoluteError:()=>bH,meanAbsolutePercentageError:()=>xH,meanSquaredError:()=>kH,mse:()=>SH,precision:()=>fH,recall:()=>gH,sparseCategoricalAccuracy:()=>dH});function pH(e,t){return yw(e,t)}function cH(e,t){return $N(e,t)}function dH(e,t){return AN(e,t)}function hH(e,t){return bw(e,t)}function mH(e,t){return xw(e,t)}function fH(e,t){return EN(e,t)}function gH(e,t){return QV(e,t)}function yH(e,t){return gw(e,t)}function bH(e,t){return Lf(e,t)}function xH(e,t){return ju(e,t)}function vH(e,t){return ju(e,t)}function wH(e,t){return ju(e,t)}function kH(e,t){return xo(e,t)}function IH(e,t){return xo(e,t)}function SH(e,t){return xo(e,t)}var y2={};$e(y2,{modelFromJSON:()=>EU});var b2={};$e(b2,{l1:()=>NH,l1l2:()=>TH,l2:()=>CH});function TH(e){return new Qc(e)}function NH(e){return PU(e)}function CH(e){return OU(e)}var x2=class extends Sl{constructor(){super(...arguments),this.model=null}setModel(e){if(!(e instanceof Er))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function ch(e,t){return et}var v2=class extends x2{constructor(e){if(super(),e==null&&(e={}),e.restoreBestWeights)throw new Me("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,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=ch:this.mode==="max"?this.monitorFunc=Kk:this.monitor.indexOf("acc")!==-1?this.monitorFunc=Kk:this.monitorFunc=ch,this.monitorFunc===ch&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===ch?1/0:-1/0}async onEpochEnd(e,t){await Zr(t);let n=this.getMonitorValue(t);n!=null&&(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){e==null&&(e={});let t=e[this.monitor];return t==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}};function _H(e){return new v2(e)}var EH={earlyStopping:_H},$H=H();$H.registerFlag("KEEP_INTERMEDIATE_TENSORS",()=>!1,e=>{e&&console.warn("Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.")});var Na;(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_QINT16=15]="DT_QINT16",e[e.DT_QUINT16=16]="DT_QUINT16",e[e.DT_UINT16=17]="DT_UINT16",e[e.DT_COMPLEX128=18]="DT_COMPLEX128",e[e.DT_HALF=19]="DT_HALF",e[e.DT_RESOURCE=20]="DT_RESOURCE",e[e.DT_VARIANT=21]="DT_VARIANT",e[e.DT_UINT32=22]="DT_UINT32",e[e.DT_UINT64=23]="DT_UINT64",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",e[e.DT_QINT16_REF=115]="DT_QINT16_REF",e[e.DT_QUINT16_REF=116]="DT_QUINT16_REF",e[e.DT_UINT16_REF=117]="DT_UINT16_REF",e[e.DT_COMPLEX128_REF=118]="DT_COMPLEX128_REF",e[e.DT_HALF_REF=119]="DT_HALF_REF",e[e.DT_RESOURCE_REF=120]="DT_RESOURCE_REF",e[e.DT_VARIANT_REF=121]="DT_VARIANT_REF",e[e.DT_UINT32_REF=122]="DT_UINT32_REF",e[e.DT_UINT64_REF=123]="DT_UINT64_REF"})(Na||(Na={}));var Xk;(function(e){let t;(function(n){n[n.LEGACY=0]="LEGACY",n[n.V1=1]="V1",n[n.V2=2]="V2"})(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))})(Xk||(Xk={}));var _0={};function AH(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};_0[e]=n}function w2(e){return _0[e]}function FH(e){delete _0[e]}function k(e,t,n,a,r){let s=t.inputParams[e];if(s&&s.inputIndexStart!==void 0){let o=s.inputIndexStart,l=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?o+1:s.inputIndexEnd;if(s.type==="tensor")return wn(t.inputNames[s.inputIndexStart],n,a,r);if(s.type==="tensors")return t.inputNames.slice(o,l).map(d=>wn(d,n,a,r));let u=wn(t.inputNames.slice(o)[0],n,a,r),p=u.dataSync();return s.type==="number"?p[0]:v.toNestedArray(u.shape,p)}let i=t.attrParams[e];return i&&i.value}function wn(e,t,n,a){let[r,s]=Yn(e);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[Xh(r,o)]);return i!==void 0?t[Xh(r,i)][s]:void 0}function DH(e,t,n){return t[Xh(e,n.currentContextId)]}function sr(e,t){let[n,a,r]=Yn(e);return[Xh(n,t&&t.currentContextId),a,r]}function Xh(e,t){return t?`${e}-${t}`:e}function Yn(e){let t=e.split(":");if(t.length===1)return[e,0,void 0];let n=t[0],a=t.length===3?t[1]:void 0,r=Number(t[t.length-1]);return[n,r,a]}function vh(e,t,n){let a=k("pad",e,t,n);if(a==="explicit"){a=k("explicitPaddings",e,t,n);let r=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)r[s][0]=a[s*2],r[s][1]=a[s*2+1];return r}return a}function Tr(e){return e.kept?e:ir(e)}var k2={};$e(k2,{json:()=>RH});var RH=[{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}]}],I2={};$e(I2,{json:()=>MH});var MH=[{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}]},{tfOpName:"IsNan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],S2={};$e(S2,{json:()=>PH});var PH=[{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:"TensorListConcatV2",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"}]},{tfOpName:"TensorListLength",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}]},{tfOpName:"TensorListResize",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"size",type:"number"}]}],T2={};$e(T2,{json:()=>OH});var OH=[{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",defaultValue:.2}]},{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"}]}],N2={};$e(N2,{json:()=>LH});var LH=[{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"}]},{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:"RandomStandardNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"seed",name:"seed",type:"number",defaultValue:0},{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:"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"}]}],C2={};$e(C2,{json:()=>zH});var zH=[{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}]}],_2={};$e(_2,{json:()=>WH});var WH=[{tfOpName:"LowerBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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:"UpperBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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"}]}],E2={};$e(E2,{json:()=>BH});var BH=[{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"}]}],$2={};$e($2,{json:()=>VH});var VH=[{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"}]}],A2={};$e(A2,{json:()=>UH});var UH=[{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"}]},{tfOpName:"ImageProjectiveTransformV3",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"transforms",type:"tensor"},{start:2,name:"outputShape",type:"number[]"},{start:3,name:"fillValue",type:"number"}],attrs:[{tfName:"interpolation",name:"interpolation",type:"string"},{tfName:"fill_mode",name:"fillMode",type:"string"}]}],F2={};$e(F2,{json:()=>GH});var GH=[{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}]}],D2={};$e(D2,{json:()=>HH});var HH=[{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:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2},{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}]},{tfOpName:"Einsum",category:"matrices",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"equation",name:"equation",type:"string"},{tfName:"N",name:"n",type:"number",defaultValue:2},{tfName:"T",name:"dtype",type:"dtype"}]}],R2={};$e(R2,{json:()=>jH});var jH=[{tfOpName:"EuclideanNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",defaultValue:!1}]},{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}]}],M2={};$e(M2,{json:()=>qH});var qH=[{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:"Cumprod",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"}]},{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"}]}],P2={};$e(P2,{json:()=>KH});var KH=[{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}]}],O2={};$e(O2,{json:()=>XH});var XH=[{tfOpName:"SparseFillEmptyRows",category:"sparse",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"denseShape",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}]},{tfOpName:"SparseReshape",category:"sparse",inputs:[{start:0,name:"inputIndices",type:"tensor"},{start:1,name:"inputShape",type:"tensor"},{start:2,name:"newShape",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SparseSegmentMean",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]},{tfOpName:"SparseSegmentSum",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]}],L2={};$e(L2,{json:()=>YH});var YH=[{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}]}],z2={};$e(z2,{json:()=>ZH});var ZH=[{tfOpName:"StringNGrams",category:"string",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"dataSplits",type:"tensor"}],attrs:[{tfName:"separator",name:"separator",type:"string"},{tfName:"ngram_widths",name:"nGramWidths",type:"number[]"},{tfName:"left_pad",name:"leftPad",type:"string"},{tfName:"right_pad",name:"rightPad",type:"string"},{tfName:"pad_width",name:"padWidth",type:"number"},{tfName:"preserve_short_sequences",name:"preserveShortSequences",type:"bool"}],outputs:["ngrams","ngrams_splits"]},{tfOpName:"StringSplit",category:"string",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"delimiter",type:"tensor"}],attrs:[{tfName:"skip_empty",name:"skipEmpty",type:"bool"}],outputs:["indices","values","shape"]},{tfOpName:"StringToHashBucketFast",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"num_buckets",name:"numBuckets",type:"number"}]}],W2={};$e(W2,{json:()=>JH});var JH=[{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:[]},{tfOpName:"BroadcastArgs",category:"transformation",inputs:[{start:0,name:"s0",type:"tensor"},{start:1,name:"s1",type:"tensor"}],attrs:[]}],Yk=class{constructor(){let e=[k2,I2,S2,T2,N2,C2,_2,E2,$2,A2,F2,D2,R2,M2,P2,O2,L2,z2,W2],t=[].concat(...e.map(n=>n.json));this.opMappers=t.reduce((n,a)=>(n[a.tfOpName]=a,n),{})}static get Instance(){return this._instance||(this._instance=new this)}transformGraph(e,t={}){let n=e.node,a=[],r=[],s=[],i=n.reduce((m,f)=>(m[f.name]=this.mapNode(f),f.op.startsWith("Placeholder")?a.push(m[f.name]):f.op==="Const"?r.push(m[f.name]):(f.input==null||f.input.length===0)&&s.push(m[f.name]),m),{}),o=[],l=[],u={},p={};t!=null&&(u=this.mapSignatureEntries(t.inputs),p=this.mapSignatureEntries(t.outputs));let d=Object.keys(i);d.forEach(m=>{let f=i[m];f.inputNames.forEach((g,y)=>{let[b,,x]=sr(g),w=i[b];if(w.outputs!=null){let I=w.outputs.indexOf(x);if(I!==-1){let T=`${b}:${I}`;f.inputNames[y]=T}}f.inputs.push(w),w.children.push(f)})}),Object.keys(p).length===0?d.forEach(m=>{let f=i[m];f.children.length===0&&l.push(f)}):Object.keys(p).forEach(m=>{let[f]=sr(m),g=i[f];g!=null&&(g.signatureKey=p[m],l.push(g))}),Object.keys(u).length>0?Object.keys(u).forEach(m=>{let[f]=sr(m),g=i[f];g&&(g.signatureKey=u[m],o.push(g))}):o=a;let c={};e.library!=null&&e.library.function!=null&&(c=e.library.function.reduce((m,f)=>(m[f.signature.name]=this.mapFunction(f),m),{}));let h={nodes:i,inputs:o,outputs:l,weights:r,placeholders:a,signature:t,functions:c};return s.length>0&&(h.initNodes=s),h}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,n)=>(t[e[n].name]=n,t),{})}mapNode(e){let t=w2(e.op)||this.opMappers[e.op]||{};e.attr==null&&(e.attr={});let n={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(a=>a.startsWith("^")?a.slice(1):a),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr,outputs:t.outputs};return t.inputs!=null&&(n.inputParams=t.inputs.reduce((a,r)=>(a[r.name]={type:r.type,inputIndexStart:r.start,inputIndexEnd:r.end},a),{})),t.attrs!=null&&(n.attrParams=t.attrs.reduce((a,r)=>{let s=r.type,i;switch(r.type){case"string":i=Qb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Qb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=ix(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ix(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=tx(e.attr,r.tfName,r.defaultValue||0),i===void 0&&!!r.tfDeprecatedName&&(i=tx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=sx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=sx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":i=ex(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ex(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":i=lx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=lx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=rx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=rx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=ox(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ox(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=nx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=nx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=ax(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ax(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=Zk(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Zk(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${r.type} for op: ${e.op}`)}return a[r.name]={value:i,type:s},a},{})),n}mapFunction(e){let t=e.nodeDef,n=[],a=[],r={};t!=null&&(r=t.reduce((u,p)=>(u[p.name]=this.mapNode(p),p.op==="Const"&&a.push(u[p.name]),u),{}));let s=[],i=[];e.signature.inputArg.forEach(u=>{let[p]=sr(u.name),d={name:p,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:E0(u.type),type:"dtype"}},children:[]};d.signatureKey=u.name,s.push(d),r[p]=d}),Object.keys(r).forEach(u=>{let p=r[u];p.inputNames.forEach((d,c)=>{let[h,,m]=sr(d),f=r[h];if(f.outputs!=null){let g=f.outputs.indexOf(m);if(g!==-1){let y=`${h}:${g}`;p.inputNames[c]=y}}p.inputs.push(f),f.children.push(p)})});let o=e.ret;e.signature.outputArg.forEach(u=>{let[p,d]=sr(o[u.name]),c=r[p];c!=null&&(c.defaultOutput=d,i.push(c))});let l=this.mapArgsToSignature(e);return{nodes:r,inputs:s,outputs:i,weights:a,placeholders:n,signature:l}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n),t),{}),outputs:e.signature.outputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n,e.ret),t),{})}}mapArgToTensorInfo(e,t){let n=e.name;return t!=null&&(n=t[n]),{name:n,dtype:e.type}}};function QH(e){let t=H().global;if(typeof t.atob!="undefined")return t.atob(e);if(typeof Buffer!="undefined")return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function B2(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):QH(e);return t?n:n.toLowerCase()}function Qb(e,t,n,a=!1){let r=e[t];return r!=null?B2(r.s,a):n}function ex(e,t,n){let a=e[t];return a?a.b:n}function tx(e,t,n){let a=e[t]||{},r=a.i!=null?a.i:a.f!=null?a.f:n;return typeof r=="number"?r:parseInt(r,10)}function E0(e){switch(typeof e=="string"&&(e=Na[e]),e){case Na.DT_FLOAT:case Na.DT_HALF:return"float32";case Na.DT_INT32:case Na.DT_INT64:case Na.DT_INT8:case Na.DT_UINT8:return"int32";case Na.DT_BOOL:return"bool";case Na.DT_DOUBLE:return"float32";case Na.DT_STRING:return"string";default:return null}}function Zk(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function nx(e,t,n){let a=e[t];return a&&a.type?E0(a.type):n}function ax(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>E0(r)):n}function V2(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function rx(e,t,n){let a=e[t];return a&&a.shape?V2(a.shape):n}function sx(e,t,n){let a=e[t];return a?((a.list.f&&a.list.f.length?a.list.f:a.list.i)||[]).map(r=>typeof r=="number"?r:parseInt(r,10)):n}function ix(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>B2(s,a)):n}function ox(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>V2(r)):n}function lx(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var e6=class{constructor(e,t,n){this.node=e,this.tensorMap=t,this.context=n,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(a=>this.getInput(a)),e.rawAttrs!=null&&(this.attrs=Object.keys(e.rawAttrs).reduce((a,r)=>(a[r]=this.getAttr(r),a),{}))}getInput(e){return wn(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return wn(e,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return tx(this.node.rawAttrs,e,t);if(n.s!=null)return Qb(this.node.rawAttrs,e,t);if(n.b!=null)return ex(this.node.rawAttrs,e,t);if(n.shape!=null)return rx(this.node.rawAttrs,e,t);if(n.type!=null)return nx(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return sx(this.node.rawAttrs,e,t);if(n.list.s!=null)return ix(this.node.rawAttrs,e,t);if(n.list.shape!=null)return ox(this.node.rawAttrs,e,t);if(n.list.b!=null)return lx(this.node.rawAttrs,e,t);if(n.list.type!=null)return ax(this.node.rawAttrs,e,t)}return t}},pn={};$e(pn,{OP_SCOPE_SUFFIX:()=>Mx,abs:()=>Lt,acos:()=>Xx,acosh:()=>Yx,add:()=>Y,addN:()=>KS,all:()=>jm,any:()=>Qp,argMax:()=>ri,argMin:()=>Zx,asin:()=>Jx,asinh:()=>Qx,atan:()=>ev,atan2:()=>tv,atanh:()=>nv,avgPool:()=>ya,avgPool3d:()=>rv,basicLSTMCell:()=>JS,batchNorm:()=>ks,batchNorm2d:()=>sv,batchNorm3d:()=>iv,batchNorm4d:()=>ov,batchToSpaceND:()=>Pc,bincount:()=>lv,booleanMaskAsync:()=>RT,broadcastArgs:()=>QS,broadcastTo:()=>Xs,buffer:()=>Oe,cast:()=>le,ceil:()=>uv,clipByValue:()=>en,clone:()=>ir,complex:()=>$r,concat:()=>Ze,concat1d:()=>pv,concat2d:()=>cv,concat3d:()=>dv,concat4d:()=>hv,conv1d:()=>qm,conv2d:()=>At,conv2dTranspose:()=>Km,conv3d:()=>fv,conv3dTranspose:()=>gv,cos:()=>Oc,cosh:()=>Xm,cosineWindow:()=>yf,cumprod:()=>ec,cumsum:()=>Ym,denseBincount:()=>zh,depthToSpace:()=>yv,depthwiseConv2d:()=>Is,diag:()=>tT,dilation2d:()=>bv,div:()=>he,divNoNan:()=>xv,dot:()=>vv,dropout:()=>qv,einsum:()=>nT,elu:()=>Lu,enclosingPowerOfTwo:()=>Kv,equal:()=>ea,erf:()=>wv,euclideanNorm:()=>Sv,exp:()=>fn,expandDims:()=>Zt,expm1:()=>Tv,eye:()=>Zm,fft:()=>Hc,fill:()=>gn,floor:()=>Wu,floorDiv:()=>Hm,fused:()=>kl,gather:()=>Bu,gatherND:()=>LT,greater:()=>Cn,greaterEqual:()=>Fr,ifft:()=>wl,imag:()=>Dc,image:()=>za,inTopKAsync:()=>zT,irfft:()=>hf,isFinite:()=>Nv,isInf:()=>Cv,isNaN:()=>_v,leakyRelu:()=>Lc,less:()=>Jm,lessEqual:()=>Ss,linalg:()=>Zv,linspace:()=>oT,localResponseNormalization:()=>Ev,log:()=>ta,log1p:()=>zc,logSigmoid:()=>$v,logSoftmax:()=>ef,logSumExp:()=>tf,logicalAnd:()=>Aa,logicalNot:()=>Wc,logicalOr:()=>nf,logicalXor:()=>Av,losses:()=>ZT,lowerBound:()=>uT,matMul:()=>Fe,max:()=>ma,maxPool:()=>Dt,maxPool3d:()=>Fv,maxPoolWithArgmax:()=>pT,maximum:()=>dr,mean:()=>Nt,meshgrid:()=>cT,min:()=>bl,minimum:()=>Vu,mirrorPad:()=>Dv,mod:()=>Rv,moments:()=>Bc,movingAverage:()=>MT,mul:()=>z,multiRNNCell:()=>dT,multinomial:()=>hT,neg:()=>vt,norm:()=>zu,notEqual:()=>oi,oneHot:()=>gl,ones:()=>Jn,onesLike:()=>na,op:()=>L,outerProduct:()=>mT,pad:()=>ba,pad1d:()=>fT,pad2d:()=>gT,pad3d:()=>yT,pad4d:()=>bT,pool:()=>Mv,pow:()=>Ar,prelu:()=>Uc,print:()=>zx,prod:()=>Pv,raggedGather:()=>xT,raggedRange:()=>vT,raggedTensorToTensor:()=>wT,rand:()=>kT,randomGamma:()=>IT,randomNormal:()=>rf,randomStandardNormal:()=>ST,randomUniform:()=>Uu,range:()=>xl,real:()=>yl,reciprocal:()=>zv,relu:()=>Xe,relu6:()=>sf,reshape:()=>W,reverse:()=>ga,reverse1d:()=>TT,reverse2d:()=>NT,reverse3d:()=>CT,reverse4d:()=>_T,rfft:()=>jc,round:()=>of,rsqrt:()=>lf,scalar:()=>xe,scatterND:()=>PT,searchSorted:()=>af,selu:()=>uf,separableConv2d:()=>Ts,setdiff1dAsync:()=>ET,sigmoid:()=>ha,sign:()=>Wv,signal:()=>YT,sin:()=>pf,sinh:()=>cf,slice:()=>Be,slice1d:()=>Gc,slice2d:()=>df,slice3d:()=>fo,slice4d:()=>vl,softmax:()=>Ka,softplus:()=>mo,spaceToBatchND:()=>Vc,sparse:()=>JT,sparseToDense:()=>OT,spectral:()=>XT,split:()=>zn,sqrt:()=>un,square:()=>lt,squaredDifference:()=>mf,squeeze:()=>Ns,stack:()=>Ft,step:()=>go,stridedSlice:()=>Bv,string:()=>QT,sub:()=>pe,sum:()=>fe,tan:()=>Vv,tanh:()=>si,tensor:()=>In,tensor1d:()=>Ke,tensor2d:()=>$a,tensor3d:()=>Rc,tensor4d:()=>Da,tensor5d:()=>$T,tensor6d:()=>AT,tile:()=>Ln,topk:()=>Uv,transpose:()=>Ee,truncatedNormal:()=>ff,unique:()=>Gv,unsortedSegmentSum:()=>gf,unstack:()=>ct,upperBound:()=>FT,variable:()=>Hv,where:()=>mn,whereAsync:()=>jv,zeros:()=>It,zerosLike:()=>qe});var t6=(e,t,n,a=pn)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[a.add(k("a",e,t,n),k("b",e,t,n))];case"AddN":return[a.addN(k("tensors",e,t,n))];case"FloorMod":case"Mod":return[a.mod(k("a",e,t,n),k("b",e,t,n))];case"Mul":return[a.mul(k("a",e,t,n),k("b",e,t,n))];case"RealDiv":case"Div":return[a.div(k("a",e,t,n),k("b",e,t,n))];case"DivNoNan":return[a.divNoNan(k("a",e,t,n),k("b",e,t,n))];case"FloorDiv":return[a.floorDiv(k("a",e,t,n),k("b",e,t,n))];case"Sub":return[a.sub(k("a",e,t,n),k("b",e,t,n))];case"Minimum":return[a.minimum(k("a",e,t,n),k("b",e,t,n))];case"Maximum":return[a.maximum(k("a",e,t,n),k("b",e,t,n))];case"Pow":return[a.pow(k("a",e,t,n),k("b",e,t,n))];case"SquaredDifference":return[a.squaredDifference(k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},n6=(e,t,n,a=pn)=>{switch(e.op){case"Abs":case"ComplexAbs":return[a.abs(k("x",e,t,n))];case"Acos":return[a.acos(k("x",e,t,n))];case"Acosh":return[a.acosh(k("x",e,t,n))];case"Asin":return[a.asin(k("x",e,t,n))];case"Asinh":return[a.asinh(k("x",e,t,n))];case"Atan":return[a.atan(k("x",e,t,n))];case"Atan2":return[a.atan2(k("x",e,t,n),k("y",e,t,n))];case"Atanh":return[a.atanh(k("x",e,t,n))];case"Ceil":return[a.ceil(k("x",e,t,n))];case"Complex":return[a.complex(k("real",e,t,n),k("imag",e,t,n))];case"Cos":return[a.cos(k("x",e,t,n))];case"Cosh":return[a.cosh(k("x",e,t,n))];case"Elu":return[a.elu(k("x",e,t,n))];case"Erf":return[a.erf(k("x",e,t,n))];case"Exp":return[a.exp(k("x",e,t,n))];case"Expm1":return[a.expm1(k("x",e,t,n))];case"Floor":return[a.floor(k("x",e,t,n))];case"Log":return[a.log(k("x",e,t,n))];case"Log1p":return[a.log1p(k("x",e,t,n))];case"Imag":return[a.imag(k("x",e,t,n))];case"Neg":return[a.neg(k("x",e,t,n))];case"Reciprocal":return[a.reciprocal(k("x",e,t,n))];case"Real":return[a.real(k("x",e,t,n))];case"Relu":return[a.relu(k("x",e,t,n))];case"Round":return[a.round(k("x",e,t,n))];case"Selu":return[a.selu(k("x",e,t,n))];case"Sigmoid":return[a.sigmoid(k("x",e,t,n))];case"Sin":return[a.sin(k("x",e,t,n))];case"Sign":return[a.sign(k("x",e,t,n))];case"Sinh":return[a.sinh(k("x",e,t,n))];case"Softplus":return[a.softplus(k("x",e,t,n))];case"Sqrt":return[a.sqrt(k("x",e,t,n))];case"Square":return[a.square(k("x",e,t,n))];case"Tanh":return[a.tanh(k("x",e,t,n))];case"Tan":return[a.tan(k("x",e,t,n))];case"ClipByValue":return[a.clipByValue(k("x",e,t,n),k("clipValueMin",e,t,n),k("clipValueMax",e,t,n))];case"Relu6":return[a.relu6(k("x",e,t,n))];case"Rsqrt":return[a.rsqrt(wn(e.inputNames[0],t,n))];case"Prod":return[a.prod(k("x",e,t,n),k("axes",e,t,n))];case"LeakyRelu":return[a.leakyRelu(k("x",e,t,n),k("alpha",e,t,n))];case"Prelu":return[a.prelu(k("x",e,t,n),k("alpha",e,t,n))];case"IsNan":return[a.isNaN(wn(e.inputNames[0],t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Ea(e,t,n=""){if(!(typeof e=="number"||typeof t=="number")){v.assert(e.length===t.length,()=>n+` Shapes ${e} and ${t} must match`);for(let a=0;an+` Shapes ${e} and ${t} must match`)}}}function Jk(e){return!(typeof e=="number"||e.some(t=>t<0))}function Ap(e,t,n){let a=ux(e,n),r=!Jk(a);if(r&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${a}`);if(r&&t.forEach(s=>{a=ux(s.shape,a)}),!Jk(a))throw new Error(`Non-fully-defined elementShape: ${a}`);return a}function ux(e,t){if(typeof e=="number")return t;if(typeof t=="number")return e;if(e.length!==t.length)throw new Error(`Incompatible ranks during merge: ${e} vs. ${t}`);let n=[];for(let a=0;a=0&&s>=0&&r!==s)throw new Error(`Incompatible shape during merge: ${e} vs. ${t}`);n[a]=r>=0?r:s}return n}var a6=class{constructor(e,t,n,a,r,s,i){this.name=e,this.dtype=t,this.maxSize=n,this.elementShape=a,this.identicalElementShapes=r,this.dynamicSize=s,this.clearAfterRead=i,this.tensors=[],this.closed_=!1,this.idTensor=xe(0),Jt(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!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()}`);let 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(t=>this.read(t))}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}`);let n=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=t.shape),Ea(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,Jt(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((n,a)=>this.write(n,t[a]))}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 a=0;a=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(e,ct(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,a=e.map(o=>(n+=o,n));if(n!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${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`);let r=n===0?0:t.size/n,s=[];P(()=>{t=W(t,[1,n,r]);for(let o=0;o{if(n!==r.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${r.dtype}`);Ea(t,r.shape,"TensorList shape mismatch: "),Jt(r)}),this.idTensor=be(0),this.maxNumElements=a,Jt(this.idTensor)}get id(){return this.idTensor.id}copy(){return new Nl([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!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(n!==-1&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);Ea(e,this.elementShape,"TensorList shape mismatch: ");let a=$p(this.elementShape,this.tensors,e);return P(()=>{let r=this.tensors.map(s=>W(s,a));return Ft(r,0)})}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let n=$p(this.elementShape,this.tensors,e),a=this.tensors.pop();return a.kept=!1,Ea(a.shape,e,"TensorList shape mismatch: "),W(a,n)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(Ea(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");Jt(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(this.maxNumElements!==-1&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);let t=new Nl([],this.elementShape,this.elementDtype,this.maxNumElements);t.tensors.length=e;for(let n=0;nthis.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(this.tensors[e]==null)throw new Error(`element at index ${e} is null.`);Ea(this.tensors[e].shape,t,"TensorList shape mismatch: ");let a=$p(this.elementShape,this.tensors,t);return W(this.tensors[e],a)}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||this.maxNumElements!==-1&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);Ea(this.elementShape,t.shape,"TensorList shape mismatch: "),Jt(t),this.tensors[e]!=null&&(this.tensors[e].kept=!1),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}`);Ea(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size());let a=$p(this.elementShape,this.tensors,n);return e.length===0?In([],[0].concat(a)):P(()=>{let r=e.map(s=>W(this.tensors[s],a));return Ft(r,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);Ea(this.elementShape,t,"TensorList shape mismatch: ");let n=$p(this.elementShape,this.tensors,t);return this.size()===0?In([],[0].concat(n)):P(()=>{let a=this.tensors.map(r=>W(r,n));return Ze(a,0)})}};function r6(e,t,n){let a=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}`);let r=e.shape.slice(1);Ea(r,t,"TensorList shape mismatch: ");let s=ct(e);return new Nl(s,t,a)}function s6(e,t,n,a){return new Nl([],e,t,a)}function i6(e,t,n,a){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);let r=Math.max(...t);if(a!=null&&a!==-1&&r>=a)throw new Error(`Max index must be < array size (${r} vs. ${a})`);let s=new Nl([],n,e.dtype,a),i=ct(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function o6(e,t,n){let a=0,r=t.map(p=>(a+=p,a));if(a!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to + ${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`);let r=n===0?0:t.size/n,s=[];P(()=>{t=W(t,[1,n,r]);for(let o=0;o{if(n!==r.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${r.dtype}`);Ea(t,r.shape,"TensorList shape mismatch: "),Jt(r)}),this.idTensor=xe(0),this.maxNumElements=a,Jt(this.idTensor)}get id(){return this.idTensor.id}copy(){return new Nl([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!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(n!==-1&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);Ea(e,this.elementShape,"TensorList shape mismatch: ");let a=Ap(this.elementShape,this.tensors,e);return P(()=>{let r=this.tensors.map(s=>W(s,a));return Ft(r,0)})}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let n=Ap(this.elementShape,this.tensors,e),a=this.tensors.pop();return a.kept=!1,Ea(a.shape,e,"TensorList shape mismatch: "),W(a,n)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(Ea(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");Jt(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(this.maxNumElements!==-1&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);let t=new Nl([],this.elementShape,this.elementDtype,this.maxNumElements);t.tensors.length=e;for(let n=0;nthis.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(this.tensors[e]==null)throw new Error(`element at index ${e} is null.`);Ea(this.tensors[e].shape,t,"TensorList shape mismatch: ");let a=Ap(this.elementShape,this.tensors,t);return W(this.tensors[e],a)}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||this.maxNumElements!==-1&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);Ea(this.elementShape,t.shape,"TensorList shape mismatch: "),Jt(t),this.tensors[e]!=null&&(this.tensors[e].kept=!1),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}`);Ea(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size());let a=Ap(this.elementShape,this.tensors,n);return e.length===0?In([],[0].concat(a)):P(()=>{let r=e.map(s=>W(this.tensors[s],a));return Ft(r,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);Ea(this.elementShape,t,"TensorList shape mismatch: ");let n=Ap(this.elementShape,this.tensors,t);return this.size()===0?In([],[0].concat(n)):P(()=>{let a=this.tensors.map(r=>W(r,n));return Ze(a,0)})}};function r6(e,t,n){let a=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}`);let r=e.shape.slice(1);Ea(r,t,"TensorList shape mismatch: ");let s=ct(e);return new Nl(s,t,a)}function s6(e,t,n,a){return new Nl([],e,t,a)}function i6(e,t,n,a){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);let r=Math.max(...t);if(a!=null&&a!==-1&&r>=a)throw new Error(`Max index must be < array size (${r} vs. ${a})`);let s=new Nl([],n,e.dtype,a),i=ct(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function o6(e,t,n){let a=0,r=t.map(p=>(a+=p,a));if(a!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${a}, and tensor's shape is: ${e.shape}`);let s=e.shape.slice(1),i=ux(s,n),o=a===0?0:e.size/a,l=P(()=>{let p=[];e=W(e,[1,a,o]);for(let d=0;d{switch(e.op){case"If":case"StatelessIf":{let a=k("thenBranch",e,t,n),r=k("elseBranch",e,t,n),s=k("cond",e,t,n),i=k("args",e,t,n);return(await s.data())[0]?n.functionMap[a].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap):n.functionMap[r].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap)}case"While":case"StatelessWhile":{let a=k("body",e,t,n),r=k("cond",e,t,n),s=k("args",e,t,n),i=await n.functionMap[r].executeFunctionAsync(s,n.tensorArrayMap,n.tensorListMap),o=s.map(p=>p.id),l=await i[0].data();i.forEach(p=>{!p.kept&&o.indexOf(p.id)===-1&&p.dispose()});let u=s;for(;l[0];){let p=u;u=await n.functionMap[a].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);let d=u.map(h=>h.id);p.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&d.indexOf(h.id)===-1&&h.dispose()});let c=await n.functionMap[r].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);l=await c[0].data(),c.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&d.indexOf(h.id)===-1&&h.dispose()})}return u}case"LoopCond":{let a=k("pred",e,t,n);return[Tr(a)]}case"Switch":{let a=k("pred",e,t,n),r=k("data",e,t,n);return r.kept||(r=Tr(r)),(await a.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{let a=e.inputNames.find(r=>wn(r,t,n)!==void 0);if(a){let r=wn(a,t,n);return[Tr(r)]}return}case"Enter":{let a=k("frameName",e,t,n),r=k("tensor",e,t,n);return n.enterFrame(a),[Tr(r)]}case"Exit":{let a=k("tensor",e,t,n);return n.exitFrame(),[Tr(a)]}case"NextIteration":{let a=k("tensor",e,t,n);return n.nextIteration(),[Tr(a)]}case"TensorArrayV3":{let a=k("size",e,t,n),r=k("dtype",e,t,n),s=k("elementShape",e,t,n),i=k("dynamicSize",e,t,n),o=k("clearAfterRead",e,t,n),l=k("identicalElementShapes",e,t,n),u=k("name",e,t,n),p=new a6(u,r,a,s,l,i,o);return n.addTensorArray(p),[p.idTensor,be(1)]}case"TensorArrayWriteV3":{let a=k("tensorArrayId",e,t,n),r=k("index",e,t,n),s=k("tensor",e,t,n),i=n.getTensorArray(a.id);return i.write(r,s),[i.idTensor]}case"TensorArrayReadV3":{let a=k("tensorArrayId",e,t,n),r=k("index",e,t,n);return[n.getTensorArray(a.id).read(r)]}case"TensorArrayGatherV3":{let a=k("tensorArrayId",e,t,n),r=k("indices",e,t,n),s=k("dtype",e,t,n);return[n.getTensorArray(a.id).gather(r,s)]}case"TensorArrayScatterV3":{let a=k("tensorArrayId",e,t,n),r=k("indices",e,t,n),s=k("tensor",e,t,n),i=n.getTensorArray(a.id);return i.scatter(r,s),[i.idTensor]}case"TensorArrayConcatV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id),s=k("dtype",e,t,n);return[r.concat(s)]}case"TensorArraySplitV3":{let a=k("tensorArrayId",e,t,n),r=k("tensor",e,t,n),s=k("lengths",e,t,n),i=n.getTensorArray(a.id);return i.split(s,r),[i.idTensor]}case"TensorArraySizeV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return[be(r.size(),"int32")]}case"TensorArrayCloseV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return r.clearAndClose(),[r.idTensor]}case"TensorListSetItem":{let a=k("tensorListId",e,t,n),r=k("index",e,t,n),s=k("tensor",e,t,n),i=n.getTensorList(a.id);return i.setItem(r,s),[i.idTensor]}case"TensorListGetItem":{let a=k("tensorListId",e,t,n),r=k("index",e,t,n),s=k("elementShape",e,t,n),i=k("elementDType",e,t,n);return[n.getTensorList(a.id).getItem(r,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let a=k("indices",e,t,n),r=k("tensor",e,t,n),s=k("elementShape",e,t,n),i=k("numElements",e,t,n),o=i6(r,a,s,i);return n.addTensorList(o),[o.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let a=k("elementShape",e,t,n),r=k("elementDType",e,t,n),s;e.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=k(s,e,t,n),o=e.op==="TensorListReserve"?-1:i,l=s6(a,r,i,o);return n.addTensorList(l),[l.idTensor]}case"TensorListGather":{let a=k("tensorListId",e,t,n),r=k("indices",e,t,n),s=k("elementShape",e,t,n),i=k("elementDType",e,t,n);return[n.getTensorList(a.id).gather(r,i,s)]}case"TensorListStack":{let a=k("tensorListId",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n),i=k("numElements",e,t,n);return[n.getTensorList(a.id).stack(r,s,i)]}case"TensorListFromTensor":{let a=k("tensor",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n),i=r6(a,r,s);return n.addTensorList(i),[i.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id),s=k("dtype",e,t,n),i=k("elementShape",e,t,n);return[r.concat(s,i)]}case"TensorListPushBack":{let a=k("tensorListId",e,t,n),r=k("tensor",e,t,n),s=n.getTensorList(a.id);return s.pushBack(r),[s.idTensor]}case"TensorListPopBack":{let a=k("tensorListId",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n);return[n.getTensorList(a.id).popBack(r,s)]}case"TensorListSplit":{let a=k("tensor",e,t,n),r=k("elementShape",e,t,n),s=k("lengths",e,t,n),i=o6(a,s,r);return n.addTensorList(i),[i.idTensor]}case"TensorListLength":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id);return[be(r.size(),"int32")]}case"TensorListResize":{let a=k("tensorListId",e,t,n),r=k("size",e,t,n),s=n.getTensorList(a.id).resize(r);return n.addTensorList(s),[s.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Qk(e,t,n){let[a,r]=k("fusedOps",e,t,n),s=a==="biasadd",i=!s,o=r==="prelu",l=a==="fusedbatchnorm",u=k("numArgs",e,t,n);if(s){if(o&&u!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&s&&u!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(l)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported");let p=k("strides",e,t,n),d=vh(e,t,n),c=k("dataFormat",e,t,n).toUpperCase(),h=k("dilations",e,t,n),[m,f]=k("args",e,t,n);i&&(f=m,m=void 0);let g=k("leakyreluAlpha",e,t,n);return{stride:p,pad:d,dataFormat:c,dilations:h,biasArg:m,preluArg:f,activationFunc:r,leakyreluAlpha:g}}var u6=(e,t,n,a=pn)=>{switch(e.op){case"Conv1D":{let r=k("stride",e,t,n),s=k("pad",e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilation",e,t,n);return[a.conv1d(k("x",e,t,n),k("filter",e,t,n),r,s,i,o)]}case"Conv2D":{let r=k("strides",e,t,n),s=vh(e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilations",e,t,n);return[a.conv2d(k("x",e,t,n),k("filter",e,t,n),[r[1],r[2]],s,i,[o[1],o[2]])]}case"_FusedConv2D":{let{stride:r,pad:s,dataFormat:i,dilations:o,biasArg:l,preluArg:u,activationFunc:p,leakyreluAlpha:d}=Qk(e,t,n);return[a.fused.conv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[r[1],r[2]],pad:s,dataFormat:i,dilations:[o[1],o[2]],bias:l,activation:p,preluActivationWeights:u,leakyreluAlpha:d})]}case"FusedDepthwiseConv2dNative":{let{stride:r,pad:s,dataFormat:i,dilations:o,biasArg:l,preluArg:u,activationFunc:p,leakyreluAlpha:d}=Qk(e,t,n);return[a.fused.depthwiseConv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[r[1],r[2]],pad:s,dataFormat:i,dilations:[o[1],o[2]],bias:l,activation:p,preluActivationWeights:u,leakyreluAlpha:d})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let r=k("outputShape",e,t,n),s=k("strides",e,t,n),i=vh(e,t,n);return[a.conv2dTranspose(k("x",e,t,n),k("filter",e,t,n),r,[s[1],s[2]],i)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let r=k("strides",e,t,n),s=vh(e,t,n),i=k("dilations",e,t,n),o=k("dataFormat",e,t,n).toUpperCase();return[a.depthwiseConv2d(k("input",e,t,n),k("filter",e,t,n),[r[1],r[2]],s,o,[i[1],i[2]])]}case"Conv3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilations",e,t,n);return[a.conv3d(k("x",e,t,n),k("filter",e,t,n),[r[1],r[2],r[3]],s,i,[o[1],o[2],o[3]])]}case"AvgPool":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.avgPool(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s)]}case"MaxPool":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.maxPool(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s)]}case"MaxPoolWithArgmax":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n),o=k("includeBatchInIndex",e,t,n),{result:l,indexes:u}=a.maxPoolWithArgmax(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s,o);return[l,u]}case"AvgPool3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.avgPool3d(k("x",e,t,n),[i[1],i[2],i[3]],[r[1],r[2],r[3]],s)]}case"MaxPool3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.maxPool3d(k("x",e,t,n),[i[1],i[2],i[3]],[r[1],r[2],r[3]],s)]}case"Dilation2D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("dilations",e,t,n),o=r[1],l=r[2],u=i[1],p=i[2];return[a.dilation2d(k("x",e,t,n),k("filter",e,t,n),[o,l],s,[u,p],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},p6=(e,t,n,a=pn)=>{switch(e.op){case"Fill":{let r=k("shape",e,t,n),s=k("dtype",e,t,n),i=k("value",e,t,n);return[a.fill(r,i,s)]}case"LinSpace":{let r=k("start",e,t,n),s=k("stop",e,t,n),i=k("num",e,t,n);return[a.linspace(r,s,i)]}case"Multinomial":{let r=k("logits",e,t,n),s=k("numSamples",e,t,n),i=k("seed",e,t,n);return[a.multinomial(r,s,i)]}case"OneHot":{let r=k("indices",e,t,n),s=k("depth",e,t,n),i=k("onValue",e,t,n),o=k("offValue",e,t,n),l=k("dtype",e,t,n);return[a.oneHot(r,s,i,o,l)]}case"Ones":return[a.ones(k("shape",e,t,n),k("dtype",e,t,n))];case"OnesLike":return[a.onesLike(k("x",e,t,n))];case"RandomStandardNormal":return[a.randomStandardNormal(k("shape",e,t,n),k("dtype",e,t,n),k("seed",e,t,n))];case"RandomUniform":return[a.randomUniform(k("shape",e,t,n),k("minval",e,t,n),k("maxval",e,t,n),k("dtype",e,t,n))];case"Range":{let r=k("start",e,t,n),s=k("stop",e,t,n),i=k("step",e,t,n);return[a.range(r,s,i,k("dtype",e,t,n))]}case"TruncatedNormal":{let r=k("shape",e,t,n),s=k("mean",e,t,n),i=k("stdDev",e,t,n),o=k("seed",e,t,n);return[a.truncatedNormal(r,s,i,k("dtype",e,t,n),o)]}case"Zeros":return[a.zeros(k("shape",e,t,n),k("dtype",e,t,n))];case"ZerosLike":return[a.zerosLike(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function kb(e,t,n){let a=k("boxes",e,t,n),r=k("scores",e,t,n),s=k("maxOutputSize",e,t,n),i=k("iouThreshold",e,t,n),o=k("scoreThreshold",e,t,n),l=k("softNmsSigma",e,t,n);return{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}}var c6=async(e,t,n,a,r=pn)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u,softNmsSigma:p}=kb(e,t,n),d=await r.image.nonMaxSuppressionWithScoreAsync(s,i,o,l,u,p);return[d.selectedIndices,d.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u}=kb(e,t,n),p=k("padToMaxOutputSize",e,t,n),d=await r.image.nonMaxSuppressionPaddedAsync(s,i,o,l,u,p);return[d.selectedIndices,d.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u}=kb(e,t,n);return[await r.image.nonMaxSuppressionAsync(s,i,o,l,u)]}case"Where":{let s=r.cast(k("condition",e,t,n),"bool"),i=[await r.whereAsync(s)];return s.dispose(),i}case"ListDiff":return r.setdiff1dAsync(k("x",e,t,n),k("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}},d6=(e,t,n,a=pn)=>{switch(e.op){case"LowerBound":{let r=k("sortedSequence",e,t,n),s=k("values",e,t,n);return[a.lowerBound(r,s)]}case"TopKV2":{let r=k("x",e,t,n),s=k("k",e,t,n),i=k("sorted",e,t,n),o=a.topk(r,s,i);return[o.values,o.indices]}case"UpperBound":{let r=k("sortedSequence",e,t,n),s=k("values",e,t,n);return[a.upperBound(r,s)]}case"Unique":{let r=k("x",e,t,n),s=a.unique(r);return[s.values,s.indices]}case"UniqueV2":{let r=k("x",e,t,n),s=k("axis",e,t,n),i=a.unique(r,s);return[i.values,i.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},h6=(e,t,n,a=pn)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let r=k("default",e,t,n);return[wn(e.name,t,n)||r];case"Placeholder":return[wn(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let p=k("x",e,t,n);return[Tr(p)]}case"IdentityN":return k("x",e,t,n).map(p=>Tr(p));case"Snapshot":let s=k("x",e,t,n);return[Tr(s)];case"Shape":return[a.tensor1d(k("x",e,t,n).shape,"int32")];case"ShapeN":return k("x",e,t,n).map(p=>a.tensor1d(p.shape));case"Size":return[a.scalar(k("x",e,t,n).size,"int32")];case"Rank":return[a.scalar(k("x",e,t,n).rank,"int32")];case"NoOp":return[a.scalar(1)];case"Print":let i=k("x",e,t,n),o=k("data",e,t,n),l=k("message",e,t,n),u=k("summarize",e,t,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(l);for(let p=0;pe.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return be(this.size(),"int32")}async import(e,t){this.checkKeyAndValueTensor(e,t);let n=await e.data();return this.tensorMap.forEach(a=>a.dispose()),this.tensorMap.clear(),P(()=>{let a=ct(t),r=n.length,s=a.length;v.assert(r===s,()=>`The number of elements doesn't match, keys has ${r} elements, the values has ${s} elements.`);for(let i=0;i{let a=[];for(let r=0;r{switch(e.op){case"HashTable":case"HashTableV2":{let r=a.getHashTableHandleByName(e.name);if(r!=null)return[r];{let s=k("keyDType",e,t,n),i=k("valueDType",e,t,n),o=new m6(s,i);return a.addHashTable(e.name,o),[o.handle]}}case"LookupTableImport":case"LookupTableImportV2":{let r=k("tableHandle",e,t,n,a),s=k("keys",e,t,n),i=k("values",e,t,n);return[await a.getHashTableById(r.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let r=k("tableHandle",e,t,n,a),s=k("keys",e,t,n),i=k("defaultValue",e,t,n);return[await a.getHashTableById(r.id).find(s,i)]}case"LookupTableSize":case"LookupTableSizeV2":{let r=k("tableHandle",e,t,n,a);return[a.getHashTableById(r.id).tensorSize()]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},g6=(e,t,n,a=pn)=>{switch(e.op){case"ResizeBilinear":{let r=k("images",e,t,n),s=k("size",e,t,n),i=k("alignCorners",e,t,n),o=k("halfPixelCenters",e,t,n);return[a.image.resizeBilinear(r,[s[0],s[1]],i,o)]}case"ResizeNearestNeighbor":{let r=k("images",e,t,n),s=k("size",e,t,n),i=k("alignCorners",e,t,n),o=k("halfPixelCenters",e,t,n);return[a.image.resizeNearestNeighbor(r,[s[0],s[1]],i,o)]}case"CropAndResize":{let r=k("image",e,t,n),s=k("boxes",e,t,n),i=k("boxInd",e,t,n),o=k("cropSize",e,t,n),l=k("method",e,t,n),u=k("extrapolationValue",e,t,n);return[a.image.cropAndResize(r,s,i,o,l,u)]}case"ImageProjectiveTransformV3":{let r=k("images",e,t,n),s=k("transforms",e,t,n),i=k("outputShape",e,t,n),o=k("fillValue",e,t,n),l=k("interpolation",e,t,n),u=k("fillMode",e,t,n);return[a.image.transform(r,s,l.toLowerCase(),u.toLowerCase(),o,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},y6=(e,t,n,a=pn)=>{switch(e.op){case"Equal":return[a.equal(k("a",e,t,n),k("b",e,t,n))];case"NotEqual":return[a.notEqual(k("a",e,t,n),k("b",e,t,n))];case"Greater":return[a.greater(k("a",e,t,n),k("b",e,t,n))];case"GreaterEqual":return[a.greaterEqual(k("a",e,t,n),k("b",e,t,n))];case"Less":return[a.less(k("a",e,t,n),k("b",e,t,n))];case"LessEqual":return[a.lessEqual(k("a",e,t,n),k("b",e,t,n))];case"LogicalAnd":return[a.logicalAnd(k("a",e,t,n),k("b",e,t,n))];case"LogicalNot":return[a.logicalNot(k("a",e,t,n))];case"LogicalOr":return[a.logicalOr(k("a",e,t,n),k("b",e,t,n))];case"Select":case"SelectV2":return[a.where(k("condition",e,t,n),k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},b6=(e,t,n,a=pn)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[a.matMul(k("a",e,t,n),k("b",e,t,n),k("transposeA",e,t,n),k("transposeB",e,t,n))];case"Einsum":return[a.einsum(k("equation",e,t,n),...k("tensors",e,t,n))];case"Transpose":return[a.transpose(k("x",e,t,n),k("perm",e,t,n))];case"_FusedMatMul":let[r,s]=k("fusedOps",e,t,n),i=r==="biasadd",o=s==="prelu",l=k("numArgs",e,t,n),u=k("leakyreluAlpha",e,t,n);if(i){if(o&&l!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&l!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[p,d]=k("args",e,t,n);return[a.fused.matMul({a:k("a",e,t,n),b:k("b",e,t,n),transposeA:k("transposeA",e,t,n),transposeB:k("transposeB",e,t,n),bias:p,activation:s,preluActivationWeights:d,leakyreluAlpha:u})];default:throw TypeError(`Node type ${e.op} is not implemented`)}},x6=(e,t,n,a=pn)=>{switch(e.op){case"EuclideanNorm":return[a.euclideanNorm(k("x",e,t,n),k("axis",e,t,n),k("keepDims",e,t,n))];case"FusedBatchNorm":case"FusedBatchNormV2":return[a.batchNorm(k("x",e,t,n),k("mean",e,t,n),k("variance",e,t,n),k("offset",e,t,n),k("scale",e,t,n),k("epsilon",e,t,n))];case"FusedBatchNormV3":return[a.batchNorm(k("x",e,t,n),k("mean",e,t,n),k("variance",e,t,n),k("offset",e,t,n),k("scale",e,t,n),k("epsilon",e,t,n))];case"LRN":return[a.localResponseNormalization(k("x",e,t,n),k("radius",e,t,n),k("bias",e,t,n),k("alpha",e,t,n),k("beta",e,t,n))];case"Softmax":return[a.softmax(k("x",e,t,n))];case"LogSoftmax":return[a.logSoftmax(k("x",e,t,n))];case"SparseToDense":return[a.sparseToDense(k("sparseIndices",e,t,n),k("outputShape",e,t,n),k("sparseValues",e,t,n),k("defaultValue",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},v6=(e,t,n,a=pn)=>{switch(e.op){case"Max":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.max(k("x",e,t,n),o,l)]}case"Mean":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.mean(k("x",e,t,n),o,l)]}case"Min":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.min(k("x",e,t,n),o,l)]}case"Sum":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.sum(k("x",e,t,n),o,l)]}case"All":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.all(k("x",e,t,n),o,l)]}case"Any":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.any(k("x",e,t,n),o,l)]}case"ArgMax":{let o=k("axis",e,t,n);return[a.argMax(k("x",e,t,n),o)]}case"ArgMin":{let o=k("axis",e,t,n);return[a.argMin(k("x",e,t,n),o)]}case"Prod":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.prod(k("x",e,t,n),o,l)]}case"Cumprod":{let o=k("axis",e,t,n),l=k("exclusive",e,t,n),u=k("reverse",e,t,n);return[a.cumprod(k("x",e,t,n),o,l,u)]}case"Cumsum":{let o=k("axis",e,t,n),l=k("exclusive",e,t,n),u=k("reverse",e,t,n);return[a.cumsum(k("x",e,t,n),o,l,u)]}case"Bincount":let r=k("x",e,t,n),s=k("weights",e,t,n),i=k("size",e,t,n);return[a.bincount(r,s,i)];case"DenseBincount":{let o=k("x",e,t,n),l=k("weights",e,t,n),u=k("size",e,t,n),p=k("binaryOutput",e,t,n);return[a.denseBincount(o,l,u,p)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},w6=(e,t,n,a=pn)=>{switch(e.op){case"ConcatV2":case"Concat":{let r=k("n",e,t,n),s=k("axis",e,t,n),i=k("tensors",e,t,n);return i=i.slice(0,r),[a.concat(i,s)]}case"Gather":{let r=k("x",e,t,n),s=k("indices",e,t,n);return[a.gather(r,a.cast(s,"int32"),0)]}case"GatherV2":{let r=k("axis",e,t,n),s=k("batchDims",e,t,n),i=k("x",e,t,n),o=k("indices",e,t,n);return[a.gather(i,a.cast(o,"int32"),r,s)]}case"Reverse":{let r=k("dims",e,t,n),s=[];for(let o=0;o{let r=k("axis",e,t,n),s=k("tensors",e,t,n),i=s[0].shape,o=a.squeeze(s[0]).shape,l=s.map(u=>{let p=v.arraysEqual(u.shape,i);if(!p&&!v.arraysEqual(a.squeeze(u).shape,o))throw new Error("the input tensors shape does not match");return p?u:a.reshape(u,i)});return[a.stack(l,r)]});case"Unpack":{let r=k("axis",e,t,n),s=k("tensor",e,t,n);return a.unstack(s,r)}case"Tile":{let r=k("reps",e,t,n);return[a.tile(k("x",e,t,n),r)]}case"Split":case"SplitV":{let r=k("axis",e,t,n),s=k("numOrSizeSplits",e,t,n),i=k("x",e,t,n);return a.split(i,s,r)}case"ScatterNd":{let r=k("indices",e,t,n),s=k("values",e,t,n),i=k("shape",e,t,n);return[a.scatterND(r,s,i)]}case"GatherNd":{let r=k("x",e,t,n),s=k("indices",e,t,n);return[a.gatherND(r,s)]}case"SparseToDense":{let r=k("sparseIndices",e,t,n),s=k("outputShape",e,t,n),i=k("sparseValues",e,t,n),o=k("defaultValue",e,t,n);return[a.sparseToDense(r,i,s,i.dtype===o.dtype?o:a.cast(o,i.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},k6=(e,t,n,a=pn)=>{switch(e.op){case"SparseFillEmptyRows":{let{outputIndices:r,outputValues:s,emptyRowIndicator:i,reverseIndexMap:o}=a.sparse.sparseFillEmptyRows(k("indices",e,t,n),k("values",e,t,n),k("denseShape",e,t,n),k("defaultValue",e,t,n));return[r,s,i,o]}case"SparseReshape":{let{outputIndices:r,outputShape:s}=a.sparse.sparseReshape(k("inputIndices",e,t,n),k("inputShape",e,t,n),k("newShape",e,t,n));return[r,s]}case"SparseSegmentMean":return[a.sparse.sparseSegmentMean(k("data",e,t,n),k("indices",e,t,n),k("segmentIds",e,t,n))];case"SparseSegmentSum":return[a.sparse.sparseSegmentSum(k("data",e,t,n),k("indices",e,t,n),k("segmentIds",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},I6=(e,t,n,a=pn)=>{switch(e.op){case"FFT":return[a.fft(k("x",e,t,n))];case"IFFT":return[a.ifft(k("x",e,t,n))];case"RFFT":return[a.rfft(k("x",e,t,n))];case"IRFFT":return[a.irfft(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},S6=(e,t,n,a=pn)=>{switch(e.op){case"StringNGrams":{let{nGrams:r,nGramsSplits:s}=a.string.stringNGrams(k("data",e,t,n),k("dataSplits",e,t,n),k("separator",e,t,n),k("nGramWidths",e,t,n),k("leftPad",e,t,n),k("rightPad",e,t,n),k("padWidth",e,t,n),k("preserveShortSequences",e,t,n));return[r,s]}case"StringSplit":{let{indices:r,values:s,shape:i}=a.string.stringSplit(k("input",e,t,n),k("delimiter",e,t,n),k("skipEmpty",e,t,n));return[r,s,i]}case"StringToHashBucketFast":return[a.string.stringToHashBucketFast(k("input",e,t,n),k("numBuckets",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},T6=(e,t,n,a=pn)=>{switch(e.op){case"Cast":return[a.cast(k("x",e,t,n),k("dtype",e,t,n))];case"ExpandDims":{let r=k("axis",e,t,n);return[a.expandDims(k("x",e,t,n),r)]}case"Squeeze":{let r=k("axis",e,t,n);return[a.squeeze(k("x",e,t,n),r)]}case"Reshape":return[a.reshape(k("x",e,t,n),k("shape",e,t,n))];case"MirrorPad":return[a.mirrorPad(k("x",e,t,n),k("padding",e,t,n),k("mode",e,t,n))];case"PadV2":case"Pad":return[a.pad(k("x",e,t,n),k("padding",e,t,n),k("constantValue",e,t,n))];case"SpaceToBatchND":{let r=k("blockShape",e,t,n),s=k("paddings",e,t,n);return[a.spaceToBatchND(k("x",e,t,n),r,s)]}case"BatchToSpaceND":{let r=k("blockShape",e,t,n),s=k("crops",e,t,n);return[a.batchToSpaceND(k("x",e,t,n),r,s)]}case"DepthToSpace":{let r=k("blockSize",e,t,n),s=k("dataFormat",e,t,n).toUpperCase();return[a.depthToSpace(k("x",e,t,n),r,s)]}case"BroadcastTo":return[a.broadcastTo(k("x",e,t,n),k("shape",e,t,n))];case"BroadcastArgs":return[a.broadcastArgs(k("s0",e,t,n),k("s1",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function eI(e,t,n,a,r=P){let s=((i,o,l)=>{switch(i.category){case"arithmetic":return r(()=>t6(i,o,l));case"basic_math":return r(()=>n6(i,o,l));case"control":return l6(i,o,l);case"convolution":return r(()=>u6(i,o,l));case"creation":return r(()=>p6(i,o,l));case"dynamic":return c6(i,o,l);case"evaluation":return r(()=>d6(i,o,l));case"image":return r(()=>g6(i,o,l));case"graph":return r(()=>h6(i,o,l));case"logical":return r(()=>y6(i,o,l));case"matrices":return r(()=>b6(i,o,l));case"normalization":return r(()=>x6(i,o,l));case"reduction":return r(()=>v6(i,o,l));case"slice_join":return r(()=>w6(i,o,l));case"sparse":return r(()=>k6(i,o,l));case"spectral":return r(()=>I6(i,o,l));case"string":return r(()=>S6(i,o,l));case"transformation":return r(()=>T6(i,o,l));case"hash_table":return f6(i,o,l,a);case"custom":let u=w2(i.op);if(u&&u.customExecutor)return u.customExecutor(new e6(i,o,l));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.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 v.isPromise(s)?s.then(i=>[].concat(i)):[].concat(s)}var tI=class{constructor(e={},t={},n={},a={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=a,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(){let e=[];for(let t=0;tt.id===0&&t.iterationId===0?"":`${t.frameName}-${t.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)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let 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))}else throw new Error("Cannot increase frame iteration, the context is empty")}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(let t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(let t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}};function nI(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,u=Object.keys(e).map(c=>Yn(c)[0]),p=[];a!=null&&(p=a.map(c=>Yn(c.name)[0]));let d=[...t];for(;d.length>0;){let c=d.pop();if((U2(c)||A6(c)||$6(c))&&i==null&&(i=c,o=i.children.map(h=>h.name).filter(h=>r.has(h))),r.add(c.name),n[c.name]==null&&u.indexOf(c.name)===-1&&p.indexOf(c.name)===-1){if(c.inputs.length===0){s.push(c.name);continue}c.inputs.forEach(h=>{l.has(h.name)||(l.add(h.name),d.push(h))})}}return{inputs:e,outputs:t,usedNodes:r,missingInputs:s,dynamicNode:i,syncInputs:o}}function N6(e,t,n){let{usedNodes:a,inputs:r}=n,s=[],i=Object.keys(r).map(p=>Yn(p)[0]).map(p=>e.nodes[p]),o=e.initNodes;i.forEach(p=>{a.has(p.name)&&s.push(p)}),e.weights.forEach(p=>{a.has(p.name)&&s.push(p)}),o!=null&&o.forEach(p=>{a.has(p.name)&&s.push(p)});let l=new Set,u=[];for(;s.length>0;){let p=s.pop();l.add(p.name),t[p.name]||u.push(p),p.children.forEach(d=>{!l.has(d.name)&&a.has(d.name)&&d.inputs.every(c=>l.has(c.name))&&s.push(d)})}return u}var C6=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],_6=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],E6=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function U2(e){return C6.indexOf(e.op)>=0}function A6(e){return _6.indexOf(e.op)>=0}function $6(e){return E6.indexOf(e.op)>=0}var px=class{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this.intermediateTensors={},this.keepTensorForDebug=!1,this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,e.functions!=null&&Object.keys(e.functions).forEach(n=>{this._functionExecutorMap[n]=new px(e.functions[n],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){let t=Object.keys(e).map(n=>e[n].map(a=>a.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=>{let 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){let n=e.map(r=>r.name).sort(),a=t.map(r=>r.name).sort();return n.join(this.SEPERATOR)+"--"+a.join(this.SEPERATOR)}compile(e,t){let n=nI(e,t,this.weightMap,this._initNodes),{missingInputs:a,dynamicNode:r,syncInputs:s}=n;if(r!=null)throw new Error(`This execution contains the node '${r.name}', which has the dynamic op '${r.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${s}]`);if(a.length>0){let i=t.map(l=>l.name),o=Object.keys(e);throw new Error(`Cannot compute the outputs [${i}] from the provided inputs [${o}]. Missing the following inputs: [${a}]`)}return N6(this.graph,this.weightMap,n)}execute(e,t){e=this.mapInputs(e);let n=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);let a=n.map(p=>this.graph.nodes[Yn(p)[0]]),r=t.map(p=>Yn(p)[0]),s=r.map(p=>this.graph.nodes[p]);this.resetIntermediateTensors(),s.length===0&&(s=this._outputs);let i=this.getCompilationKey(a,s),o=this.compiledMap.get(i);o==null&&(o=this.compile(e,s),this.compiledMap.set(i,o));let l={},u={};return P(()=>{let p=new tI(this.weightMap,l,u,this.functionExecutorMap),d=Object.assign({},this.weightMap);Object.keys(e).forEach(m=>{let[f,g]=Yn(m),y=[];y[g]=e[m],d[f]=y});let c=this.getFrozenTensorIds(d),h={};for(let m=0;mwn(m,d,p))})}getFrozenTensorIds(e){let t=[].concat.apply([],Object.keys(e).map(n=>e[n]).map(n=>n.map(a=>a.id)));return new Set(t)}checkTensorForDisposal(e,t,n,a,r,s,i){t.category==="control"||s.indexOf(e)!==-1||(n[e].forEach(o=>{o!=null&&(i[o.id]=(i[o.id]||0)+t.children.length)}),t.inputs.forEach(o=>{if(o.category!=="control"){let l=DH(o.name,n,a);l!=null&&l.forEach(u=>{if(u&&!u.kept&&!r.has(u.id)){let p=i[u.id];if(p===1){if(!this.keepTensorForDebug)u.dispose();else{let[d,c]=sr(t.name,a);this.intermediateTensors[d]?this.intermediateTensors[d][c]=u:(this.intermediateTensors[d]=[],this.intermediateTensors[d][c]=u)}delete i[u.id]}else p!=null&&i[u.id]--}})}}))}async executeAsync(e,t){return this._executeAsync(e,t)}disposeIntermediateTensors(){!this.intermediateTensors||(Object.keys(this.intermediateTensors).forEach(e=>this.intermediateTensors[e].forEach(t=>t.dispose())),this.disposeTensorsMap())}disposeTensorsMap(){!this.tensorsMap||Object.keys(this.tensorsMap).forEach(e=>{this.tensorsMap[e].forEach(t=>{t&&!t.kept&&!t.isDisposed&&!this.keepIds.has(t.id)&&t.dispose()})})}getIntermediateTensors(){return this.tensorsMap}resetIntermediateTensors(){for(let e in this.intermediateTensors)this.intermediateTensors[e].forEach(t=>t.dispose()),delete this.intermediateTensors[e]}async _executeAsync(e,t,n=!1,a={},r={}){n||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));try{this.keepTensorForDebug=H().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(u){console.warn(u.message)}this.resetIntermediateTensors();let s=new tI(this.weightMap,a,r,this.functionExecutorMap);this.tensorsMap=await this.executeWithControlFlow(e,s,t,n);let i=t.map(u=>wn(u,this.tensorsMap,s)),o=i.map(u=>u.id),l=Object.keys(e).map(u=>e[u].id);return this.keepIds=new Set([...o,...l,...this.weightIds]),this.keepTensorForDebug||this.disposeTensorsMap(),this.parent==null&&s.dispose(this.keepIds),i}async executeFunctionAsync(e,t,n){let a=e.reduce((r,s,i)=>(r[this.inputs[i].name]=s,r),{});return this._executeAsync(a,this.outputNodes,!0,t,n)}async executeWithControlFlow(e,t,n,a){let r=Object.keys(e),s=r.map(b=>this.graph.nodes[Yn(b)[0]]),i=n.map(b=>Yn(b)[0]),o=i.map(b=>this.graph.nodes[b]);o.length===0&&(o=this._outputs);let{usedNodes:l,missingInputs:u,dynamicNode:p,syncInputs:d}=nI(e,o,this.weightMap,this._initNodes),c=[...s,...this.graph.weights,...this._initNodes||[]].map(b=>({node:b,contexts:t.currentContext})),h=Object.assign({},this.weightMap);Object.keys(e).forEach(b=>{let[x,w]=Yn(b),I=[];I[w]=e[b],h[x]=I});let m={},f=this.getFrozenTensorIds(h),g={};for(;c.length>0;){let b=this.processStack(s,c,t,h,g,f,i,m,l);await Promise.all(b)}p==null&&!a&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let y=o.filter(b=>!U2(b)&&!wn(b.name,h,t)).map(b=>b.name);if(y.length>0){let b="";throw p!=null&&(b=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${d}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${r}]. Consider providing the following inputs: [${u}]. ${b}`)}return h}processStack(e,t,n,a,r,s,i,o,l){let u=[];for(;t.length>0;){let p=t.pop();n.currentContext=p.contexts;let d="";if(p.node.op==="Enter"&&k("isConstant",p.node,a,n)&&([d]=sr(p.node.name,n)),a[p.node.name]==null){let c=eI(p.node,a,n,this._resourceManager);d||([d]=sr(p.node.name,n));let h=n.currentContext;v.isPromise(c)?u.push(c.then(m=>(a[d]=m,n.currentContext=h,this.checkTensorForDisposal(d,p.node,a,n,s,i,o),this.processChildNodes(p.node,t,n,a,r,l),m))):(a[d]=c,this.checkTensorForDisposal(d,p.node,a,n,s,i,o),this.processChildNodes(p.node,t,n,a,r,l))}else this.processChildNodes(p.node,t,n,a,r,l)}return u}processChildNodes(e,t,n,a,r,s){e.children.forEach(i=>{let[o]=sr(i.name,n);r[o]||!s.has(i.name)||(i.op==="Merge"?i.inputNames.some(l=>!!wn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})):i.inputNames.every(l=>!!wn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(t=>t.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{let n=e[t],[a]=Yn(t),r=this.graph.nodes[a];if(r.attrParams.shape&&r.attrParams.shape.value){let s=r.attrParams.shape.value,i=s.length===n.shape.length&&n.shape.every((o,l)=>s[l]===-1||s[l]===o);v.assert(i,()=>`The shape of dict['${r.name}'] provided in model.execute(dict) must be [${s}], but was [${n.shape}]`)}r.attrParams.dtype&&r.attrParams.dtype.value&&v.assert(n.dtype===r.attrParams.dtype.value,()=>`The dtype of dict['${r.name}'] provided in model.execute(dict) must be ${r.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(e){let t={};for(let n in e)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[n]!=null){let a=this._signature.inputs[n];t[a.name]=e[n]}else t[n]=e[n];return t}checkInputs(e){let t=Object.keys(e).filter(n=>{let[a]=Yn(n);return this.graph.nodes[a]==null});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(t=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[t]!=null?this._signature.outputs[t].name:t,{})}checkOutputs(e){e.forEach(t=>{let[n]=Yn(t);if(!this.graph.nodes[n])throw new Error(`The output '${t}' is not found in the graph`)})}},F6=class{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(let e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(let e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}},D6="?tfjs-format=file",R6="model.json",A0=class{constructor(e,t={},n=Ut){this.modelUrl=e,this.loadOptions=t,this.version="n/a",this.io=n,t==null&&(this.loadOptions={}),this.resourceManager=new F6}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}get modelStructuredOutputKeys(){return this.structuredOutputKeys}findIOHandler(){let e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=this.io.browserHTTPRequest(e,this.loadOptions);else{let t=this.io.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(this.io.browserHTTPRequest(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]}}load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let e=this.handler.load();return v.isPromise(e)?e.then(t=>this.loadSync(t)):this.loadSync(e)}loadSync(e){this.artifacts=e;let t=this.artifacts.modelTopology,n=this.artifacts.signature;if(this.artifacts.userDefinedMetadata!=null){let r=this.artifacts.userDefinedMetadata;r.signature!=null&&(n=r.signature),r.structuredOutputKeys!=null&&(this.structuredOutputKeys=r.structuredOutputKeys)}this.signature=n,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;let a=this.io.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new px(Yk.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(a),this.executor.resourceManager=this.resourceManager,e.modelInitializer!=null&&e.modelInitializer.node!=null){let r=Yk.Instance.transformGraph(e.modelInitializer);this.initializer=new px(r),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=e.initializerSignature}return!0}async save(e,t){if(typeof e=="string"){let n=this.io.getSaveHandlers(e);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${e}'`);e=n[0]}if(e.save==null)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){let n=this.execute(e,this.outputNodes);if(this.structuredOutputKeys){let a=n instanceof Te?[n]:n,r={};return a.forEach((s,i)=>r[this.structuredOutputKeys[i]]=s),r}return n}normalizeInputs(e){if(!(e instanceof Te)&&!Array.isArray(e)){if(this.signature!=null&&this.signature.inputs!=null)for(let a in this.signature.inputs){let r=this.signature.inputs[a];r.resourceId!=null&&(e[a]=this.resourceIdToCapturedInput[r.resourceId])}return e}e=Array.isArray(e)?e:[e];let t=Object.keys(this.resourceIdToCapturedInput).length;if(e.length+t!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-t} non-resource placeholders, while there are ${e.length} input tensors provided.`);let n=0;return this.inputNodes.reduce((a,r)=>{let s=this.signature?this.signature.inputs[r]:null;return s!=null&&s.resourceId!=null?a[r]=this.resourceIdToCapturedInput[s.resourceId]:a[r]=e[n++],a},{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}executeInitializerGraph(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(e){if(this.resourceIdToCapturedInput={},this.initializerSignature){let t=Object.keys(this.initializerSignature.outputs);for(let n=0;n1?n:n[0]}async executeAsync(e,t){this.resourceIdToCapturedInput==null&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,n)=>(t[n]=[e[n]],t),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&_e(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function M6(e,t={},n=Ut){if(e==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");t==null&&(t={}),t.fromTFHub&&typeof e=="string"&&(e=O6(e));let a=new A0(e,t,n);return await a.load(),a}function P6(e){if(e==null)throw new Error("modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model");let t;if(e instanceof Array){let[a,r]=e;if(!a)throw new Error("modelJSON must be the first element of the array");if(!r||!(r instanceof ArrayBuffer))throw new Error("An ArrayBuffer of weights must be the second element of the array");if(!("modelTopology"in a))throw new Error("Model JSON is missing 'modelTopology'");if(!("weightsManifest"in a))throw new Error("Model JSON is missing 'weightsManifest'");let s=Ut.getWeightSpecs(a.weightsManifest),i=Ut.getModelArtifactsForJSONSync(a,s,r);t=Ut.fromMemorySync(i)}else if("load"in e)t=e;else if("modelTopology"in e&&"weightSpecs"in e&&"weightData"in e)t=Ut.fromMemorySync(e);else throw new Error("Unknown model format");let n=new A0(t);return n.load(),n}function O6(e){return e.endsWith("/")||(e=e+"/"),`${e}${R6}${D6}`}var L6="4.0.0",G2={};Ae(G2,{CSVDataset:()=>Q2,Dataset:()=>qu,FileDataSource:()=>iC,TextLineDataset:()=>J2,URLDataSource:()=>oC,array:()=>oj,csv:()=>bj,func:()=>xj,generator:()=>vj,microphone:()=>kj,version_data:()=>Ij,webcam:()=>wj,zip:()=>lj});var z6=ms(im()),W6=ms(im());function B6(e,t){return Yh(e,t)}function Yh(e,t,n=new Map,a=new Set){if(e==null)return null;if(typeof Blob=="function"&&e instanceof Blob)return e.slice();if(a.has(e))throw new Error("Circular references are not supported.");if(n.has(e))return n.get(e);let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(r.recurse)if(Cl(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=Yh(o,t,n,a);s[i]=l}return a.delete(e),e.__proto__&&(s.__proto__=e.__proto__),s}else throw new Error(`Can't recurse into non-iterable type: ${e}`);else return n.set(e,r.value),r.value}function V6(e,t=j2){return H2(e,t)}function H2(e,t,n=new Set){let a=e[0];if(n.has(a))throw new Error("Circular references are not supported.");let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(r.recurse)if(Cl(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(u=>u[i]),l=H2(o,t,n);s[i]=l}return n.delete(a),s}else throw new Error(`Can't recurse into non-iterable type: ${a}`);else return r.value}function j2(e){return e===null?null:Cl(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function q2(e,t){let n=new Map;Yh(e,t,n);for(let a of Array.from(n.keys())){let r=n.get(a);if(v.isPromise(r)){let s=await r;n.set(a,s)}}return Yh(e,t,n)}function Cl(e){let t=!1;if(H().get("IS_BROWSER"))t=e instanceof TextDecoder;else{let{StringDecoder:n}=VI();t=e instanceof n}return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Te)&&!(e instanceof Promise)&&!t)}function U6(e){return e==null||G6(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Te||v.isTypedArray(e)}function G6(e){return e===null||typeof e!="object"&&typeof e!="function"}function H6(e){return B6(e,j6)}function j6(e){return e instanceof Te?{value:e.clone(),recurse:!1}:Cl(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var K2=class{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,e==null)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 this.length()===0}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(let t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let 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.");let 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.");let t=this.wrap(this.begin+e),n=this.get(t);return this.set(t,this.pop()),n}},$0=class extends K2{constructor(){super($0.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){let e=this.capacity*2,t=new Array(e),n=this.length();for(let a=0;at===!0)}rowMajorBatch(e,t=!0){return new ej(this,e,t)}columnMajorBatch(e,t=!0,n=j2){return this.rowMajorBatch(e,t).map(a=>V6(a,n))}concatenate(e,t){return new Y2(X2([this,e]),t)}take(e){return e<0||e==null?this:new Q6(this,e)}skip(e){return e<0||e==null?this:new J6(this,e)}prefetch(e){return new Z2(this,e)}shuffle(e,t){return new ij(this,e,t)}serial(){return new Z6(this)}},X6=class extends tn{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};let e=this.items[this.trav];return this.trav++,{value:H6(e),done:!1}}},Y6=class extends tn{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}}},Z6=class extends tn{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()}},J6=class extends tn{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()}},ej=class extends tn{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(){let e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}},tj=class extends tn{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(;;){let e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;_e(e.value)}}},nj=class extends tn{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Va.getTensorsInContainer(e.value),n=this.transform(e.value),a=Va.getTensorsInContainer(n);for(let r of t)Va.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},aj=class extends tn{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}}}},aI=class extends tn{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Va.getTensorsInContainer(e.value),n=await this.transform(e.value),a=Va.getTensorsInContainer(n);for(let r of t)Va.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},D0=class extends tn{constructor(){super(),this.outputQueue=new $0,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},rj=class extends D0{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let e=await this.upstream.next();if(e.done)return!1;let t=Va.getTensorsInContainer(e.value),n=this.transform(e.value),a=Va.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let r of t)Va.isTensorInList(r,a)||r.dispose();return!0}},Y2=class extends tn{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,this.iterator==null){let n=await this.moreIterators.next();if(n.done)return{value:null,done:!0};this.iterator=n.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}},ts;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(ts||(ts={}));var sj=class extends tn{constructor(e,t=ts.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;function a(s){return s instanceof tn?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await q2(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case ts.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case ts.SHORTEST:return{value:null,done:!0};case ts.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},Z2=class extends tn{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new K2(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}},ij=class extends Z2{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=W6.alea(n||v.now().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();){let e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(t.done)this.upstreamExhausted=!0;else return this.refill(),t}return{value:null,done:!0}}},qu=class{constructor(){this.size=null}batch(e,t=!0){let n=this;v.assert(e>0,()=>`batchSize needs to be positive, but it is + ${a}, and tensor's shape is: ${e.shape}`);let s=e.shape.slice(1),i=ux(s,n),o=a===0?0:e.size/a,l=P(()=>{let p=[];e=W(e,[1,a,o]);for(let d=0;d{switch(e.op){case"If":case"StatelessIf":{let a=k("thenBranch",e,t,n),r=k("elseBranch",e,t,n),s=k("cond",e,t,n),i=k("args",e,t,n);return(await s.data())[0]?n.functionMap[a].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap):n.functionMap[r].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap)}case"While":case"StatelessWhile":{let a=k("body",e,t,n),r=k("cond",e,t,n),s=k("args",e,t,n),i=await n.functionMap[r].executeFunctionAsync(s,n.tensorArrayMap,n.tensorListMap),o=s.map(p=>p.id),l=await i[0].data();i.forEach(p=>{!p.kept&&o.indexOf(p.id)===-1&&p.dispose()});let u=s;for(;l[0];){let p=u;u=await n.functionMap[a].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);let d=u.map(h=>h.id);p.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&d.indexOf(h.id)===-1&&h.dispose()});let c=await n.functionMap[r].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);l=await c[0].data(),c.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&d.indexOf(h.id)===-1&&h.dispose()})}return u}case"LoopCond":{let a=k("pred",e,t,n);return[Tr(a)]}case"Switch":{let a=k("pred",e,t,n),r=k("data",e,t,n);return r.kept||(r=Tr(r)),(await a.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{let a=e.inputNames.find(r=>wn(r,t,n)!==void 0);if(a){let r=wn(a,t,n);return[Tr(r)]}return}case"Enter":{let a=k("frameName",e,t,n),r=k("tensor",e,t,n);return n.enterFrame(a),[Tr(r)]}case"Exit":{let a=k("tensor",e,t,n);return n.exitFrame(),[Tr(a)]}case"NextIteration":{let a=k("tensor",e,t,n);return n.nextIteration(),[Tr(a)]}case"TensorArrayV3":{let a=k("size",e,t,n),r=k("dtype",e,t,n),s=k("elementShape",e,t,n),i=k("dynamicSize",e,t,n),o=k("clearAfterRead",e,t,n),l=k("identicalElementShapes",e,t,n),u=k("name",e,t,n),p=new a6(u,r,a,s,l,i,o);return n.addTensorArray(p),[p.idTensor,xe(1)]}case"TensorArrayWriteV3":{let a=k("tensorArrayId",e,t,n),r=k("index",e,t,n),s=k("tensor",e,t,n),i=n.getTensorArray(a.id);return i.write(r,s),[i.idTensor]}case"TensorArrayReadV3":{let a=k("tensorArrayId",e,t,n),r=k("index",e,t,n);return[n.getTensorArray(a.id).read(r)]}case"TensorArrayGatherV3":{let a=k("tensorArrayId",e,t,n),r=k("indices",e,t,n),s=k("dtype",e,t,n);return[n.getTensorArray(a.id).gather(r,s)]}case"TensorArrayScatterV3":{let a=k("tensorArrayId",e,t,n),r=k("indices",e,t,n),s=k("tensor",e,t,n),i=n.getTensorArray(a.id);return i.scatter(r,s),[i.idTensor]}case"TensorArrayConcatV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id),s=k("dtype",e,t,n);return[r.concat(s)]}case"TensorArraySplitV3":{let a=k("tensorArrayId",e,t,n),r=k("tensor",e,t,n),s=k("lengths",e,t,n),i=n.getTensorArray(a.id);return i.split(s,r),[i.idTensor]}case"TensorArraySizeV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return[xe(r.size(),"int32")]}case"TensorArrayCloseV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return r.clearAndClose(),[r.idTensor]}case"TensorListSetItem":{let a=k("tensorListId",e,t,n),r=k("index",e,t,n),s=k("tensor",e,t,n),i=n.getTensorList(a.id);return i.setItem(r,s),[i.idTensor]}case"TensorListGetItem":{let a=k("tensorListId",e,t,n),r=k("index",e,t,n),s=k("elementShape",e,t,n),i=k("elementDType",e,t,n);return[n.getTensorList(a.id).getItem(r,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let a=k("indices",e,t,n),r=k("tensor",e,t,n),s=k("elementShape",e,t,n),i=k("numElements",e,t,n),o=i6(r,a,s,i);return n.addTensorList(o),[o.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let a=k("elementShape",e,t,n),r=k("elementDType",e,t,n),s;e.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=k(s,e,t,n),o=e.op==="TensorListReserve"?-1:i,l=s6(a,r,i,o);return n.addTensorList(l),[l.idTensor]}case"TensorListGather":{let a=k("tensorListId",e,t,n),r=k("indices",e,t,n),s=k("elementShape",e,t,n),i=k("elementDType",e,t,n);return[n.getTensorList(a.id).gather(r,i,s)]}case"TensorListStack":{let a=k("tensorListId",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n),i=k("numElements",e,t,n);return[n.getTensorList(a.id).stack(r,s,i)]}case"TensorListFromTensor":{let a=k("tensor",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n),i=r6(a,r,s);return n.addTensorList(i),[i.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id),s=k("dtype",e,t,n),i=k("elementShape",e,t,n);return[r.concat(s,i)]}case"TensorListPushBack":{let a=k("tensorListId",e,t,n),r=k("tensor",e,t,n),s=n.getTensorList(a.id);return s.pushBack(r),[s.idTensor]}case"TensorListPopBack":{let a=k("tensorListId",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n);return[n.getTensorList(a.id).popBack(r,s)]}case"TensorListSplit":{let a=k("tensor",e,t,n),r=k("elementShape",e,t,n),s=k("lengths",e,t,n),i=o6(a,s,r);return n.addTensorList(i),[i.idTensor]}case"TensorListLength":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id);return[xe(r.size(),"int32")]}case"TensorListResize":{let a=k("tensorListId",e,t,n),r=k("size",e,t,n),s=n.getTensorList(a.id).resize(r);return n.addTensorList(s),[s.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Qk(e,t,n){let[a,r]=k("fusedOps",e,t,n),s=a==="biasadd",i=!s,o=r==="prelu",l=a==="fusedbatchnorm",u=k("numArgs",e,t,n);if(s){if(o&&u!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&s&&u!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(l)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported");let p=k("strides",e,t,n),d=vh(e,t,n),c=k("dataFormat",e,t,n).toUpperCase(),h=k("dilations",e,t,n),[m,f]=k("args",e,t,n);i&&(f=m,m=void 0);let g=k("leakyreluAlpha",e,t,n);return{stride:p,pad:d,dataFormat:c,dilations:h,biasArg:m,preluArg:f,activationFunc:r,leakyreluAlpha:g}}var u6=(e,t,n,a=pn)=>{switch(e.op){case"Conv1D":{let r=k("stride",e,t,n),s=k("pad",e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilation",e,t,n);return[a.conv1d(k("x",e,t,n),k("filter",e,t,n),r,s,i,o)]}case"Conv2D":{let r=k("strides",e,t,n),s=vh(e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilations",e,t,n);return[a.conv2d(k("x",e,t,n),k("filter",e,t,n),[r[1],r[2]],s,i,[o[1],o[2]])]}case"_FusedConv2D":{let{stride:r,pad:s,dataFormat:i,dilations:o,biasArg:l,preluArg:u,activationFunc:p,leakyreluAlpha:d}=Qk(e,t,n);return[a.fused.conv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[r[1],r[2]],pad:s,dataFormat:i,dilations:[o[1],o[2]],bias:l,activation:p,preluActivationWeights:u,leakyreluAlpha:d})]}case"FusedDepthwiseConv2dNative":{let{stride:r,pad:s,dataFormat:i,dilations:o,biasArg:l,preluArg:u,activationFunc:p,leakyreluAlpha:d}=Qk(e,t,n);return[a.fused.depthwiseConv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[r[1],r[2]],pad:s,dataFormat:i,dilations:[o[1],o[2]],bias:l,activation:p,preluActivationWeights:u,leakyreluAlpha:d})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let r=k("outputShape",e,t,n),s=k("strides",e,t,n),i=vh(e,t,n);return[a.conv2dTranspose(k("x",e,t,n),k("filter",e,t,n),r,[s[1],s[2]],i)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let r=k("strides",e,t,n),s=vh(e,t,n),i=k("dilations",e,t,n),o=k("dataFormat",e,t,n).toUpperCase();return[a.depthwiseConv2d(k("input",e,t,n),k("filter",e,t,n),[r[1],r[2]],s,o,[i[1],i[2]])]}case"Conv3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilations",e,t,n);return[a.conv3d(k("x",e,t,n),k("filter",e,t,n),[r[1],r[2],r[3]],s,i,[o[1],o[2],o[3]])]}case"AvgPool":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.avgPool(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s)]}case"MaxPool":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.maxPool(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s)]}case"MaxPoolWithArgmax":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n),o=k("includeBatchInIndex",e,t,n),{result:l,indexes:u}=a.maxPoolWithArgmax(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s,o);return[l,u]}case"AvgPool3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.avgPool3d(k("x",e,t,n),[i[1],i[2],i[3]],[r[1],r[2],r[3]],s)]}case"MaxPool3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.maxPool3d(k("x",e,t,n),[i[1],i[2],i[3]],[r[1],r[2],r[3]],s)]}case"Dilation2D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("dilations",e,t,n),o=r[1],l=r[2],u=i[1],p=i[2];return[a.dilation2d(k("x",e,t,n),k("filter",e,t,n),[o,l],s,[u,p],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},p6=(e,t,n,a=pn)=>{switch(e.op){case"Fill":{let r=k("shape",e,t,n),s=k("dtype",e,t,n),i=k("value",e,t,n);return[a.fill(r,i,s)]}case"LinSpace":{let r=k("start",e,t,n),s=k("stop",e,t,n),i=k("num",e,t,n);return[a.linspace(r,s,i)]}case"Multinomial":{let r=k("logits",e,t,n),s=k("numSamples",e,t,n),i=k("seed",e,t,n);return[a.multinomial(r,s,i)]}case"OneHot":{let r=k("indices",e,t,n),s=k("depth",e,t,n),i=k("onValue",e,t,n),o=k("offValue",e,t,n),l=k("dtype",e,t,n);return[a.oneHot(r,s,i,o,l)]}case"Ones":return[a.ones(k("shape",e,t,n),k("dtype",e,t,n))];case"OnesLike":return[a.onesLike(k("x",e,t,n))];case"RandomStandardNormal":return[a.randomStandardNormal(k("shape",e,t,n),k("dtype",e,t,n),k("seed",e,t,n))];case"RandomUniform":return[a.randomUniform(k("shape",e,t,n),k("minval",e,t,n),k("maxval",e,t,n),k("dtype",e,t,n))];case"Range":{let r=k("start",e,t,n),s=k("stop",e,t,n),i=k("step",e,t,n);return[a.range(r,s,i,k("dtype",e,t,n))]}case"TruncatedNormal":{let r=k("shape",e,t,n),s=k("mean",e,t,n),i=k("stdDev",e,t,n),o=k("seed",e,t,n);return[a.truncatedNormal(r,s,i,k("dtype",e,t,n),o)]}case"Zeros":return[a.zeros(k("shape",e,t,n),k("dtype",e,t,n))];case"ZerosLike":return[a.zerosLike(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function kb(e,t,n){let a=k("boxes",e,t,n),r=k("scores",e,t,n),s=k("maxOutputSize",e,t,n),i=k("iouThreshold",e,t,n),o=k("scoreThreshold",e,t,n),l=k("softNmsSigma",e,t,n);return{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}}var c6=async(e,t,n,a,r=pn)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u,softNmsSigma:p}=kb(e,t,n),d=await r.image.nonMaxSuppressionWithScoreAsync(s,i,o,l,u,p);return[d.selectedIndices,d.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u}=kb(e,t,n),p=k("padToMaxOutputSize",e,t,n),d=await r.image.nonMaxSuppressionPaddedAsync(s,i,o,l,u,p);return[d.selectedIndices,d.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u}=kb(e,t,n);return[await r.image.nonMaxSuppressionAsync(s,i,o,l,u)]}case"Where":{let s=r.cast(k("condition",e,t,n),"bool"),i=[await r.whereAsync(s)];return s.dispose(),i}case"ListDiff":return r.setdiff1dAsync(k("x",e,t,n),k("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}},d6=(e,t,n,a=pn)=>{switch(e.op){case"LowerBound":{let r=k("sortedSequence",e,t,n),s=k("values",e,t,n);return[a.lowerBound(r,s)]}case"TopKV2":{let r=k("x",e,t,n),s=k("k",e,t,n),i=k("sorted",e,t,n),o=a.topk(r,s,i);return[o.values,o.indices]}case"UpperBound":{let r=k("sortedSequence",e,t,n),s=k("values",e,t,n);return[a.upperBound(r,s)]}case"Unique":{let r=k("x",e,t,n),s=a.unique(r);return[s.values,s.indices]}case"UniqueV2":{let r=k("x",e,t,n),s=k("axis",e,t,n),i=a.unique(r,s);return[i.values,i.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},h6=(e,t,n,a=pn)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let r=k("default",e,t,n);return[wn(e.name,t,n)||r];case"Placeholder":return[wn(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let p=k("x",e,t,n);return[Tr(p)]}case"IdentityN":return k("x",e,t,n).map(p=>Tr(p));case"Snapshot":let s=k("x",e,t,n);return[Tr(s)];case"Shape":return[a.tensor1d(k("x",e,t,n).shape,"int32")];case"ShapeN":return k("x",e,t,n).map(p=>a.tensor1d(p.shape));case"Size":return[a.scalar(k("x",e,t,n).size,"int32")];case"Rank":return[a.scalar(k("x",e,t,n).rank,"int32")];case"NoOp":return[a.scalar(1)];case"Print":let i=k("x",e,t,n),o=k("data",e,t,n),l=k("message",e,t,n),u=k("summarize",e,t,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(l);for(let p=0;pe.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return xe(this.size(),"int32")}async import(e,t){this.checkKeyAndValueTensor(e,t);let n=await e.data();return this.tensorMap.forEach(a=>a.dispose()),this.tensorMap.clear(),P(()=>{let a=ct(t),r=n.length,s=a.length;v.assert(r===s,()=>`The number of elements doesn't match, keys has ${r} elements, the values has ${s} elements.`);for(let i=0;i{let a=[];for(let r=0;r{switch(e.op){case"HashTable":case"HashTableV2":{let r=a.getHashTableHandleByName(e.name);if(r!=null)return[r];{let s=k("keyDType",e,t,n),i=k("valueDType",e,t,n),o=new m6(s,i);return a.addHashTable(e.name,o),[o.handle]}}case"LookupTableImport":case"LookupTableImportV2":{let r=k("tableHandle",e,t,n,a),s=k("keys",e,t,n),i=k("values",e,t,n);return[await a.getHashTableById(r.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let r=k("tableHandle",e,t,n,a),s=k("keys",e,t,n),i=k("defaultValue",e,t,n);return[await a.getHashTableById(r.id).find(s,i)]}case"LookupTableSize":case"LookupTableSizeV2":{let r=k("tableHandle",e,t,n,a);return[a.getHashTableById(r.id).tensorSize()]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},g6=(e,t,n,a=pn)=>{switch(e.op){case"ResizeBilinear":{let r=k("images",e,t,n),s=k("size",e,t,n),i=k("alignCorners",e,t,n),o=k("halfPixelCenters",e,t,n);return[a.image.resizeBilinear(r,[s[0],s[1]],i,o)]}case"ResizeNearestNeighbor":{let r=k("images",e,t,n),s=k("size",e,t,n),i=k("alignCorners",e,t,n),o=k("halfPixelCenters",e,t,n);return[a.image.resizeNearestNeighbor(r,[s[0],s[1]],i,o)]}case"CropAndResize":{let r=k("image",e,t,n),s=k("boxes",e,t,n),i=k("boxInd",e,t,n),o=k("cropSize",e,t,n),l=k("method",e,t,n),u=k("extrapolationValue",e,t,n);return[a.image.cropAndResize(r,s,i,o,l,u)]}case"ImageProjectiveTransformV3":{let r=k("images",e,t,n),s=k("transforms",e,t,n),i=k("outputShape",e,t,n),o=k("fillValue",e,t,n),l=k("interpolation",e,t,n),u=k("fillMode",e,t,n);return[a.image.transform(r,s,l.toLowerCase(),u.toLowerCase(),o,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},y6=(e,t,n,a=pn)=>{switch(e.op){case"Equal":return[a.equal(k("a",e,t,n),k("b",e,t,n))];case"NotEqual":return[a.notEqual(k("a",e,t,n),k("b",e,t,n))];case"Greater":return[a.greater(k("a",e,t,n),k("b",e,t,n))];case"GreaterEqual":return[a.greaterEqual(k("a",e,t,n),k("b",e,t,n))];case"Less":return[a.less(k("a",e,t,n),k("b",e,t,n))];case"LessEqual":return[a.lessEqual(k("a",e,t,n),k("b",e,t,n))];case"LogicalAnd":return[a.logicalAnd(k("a",e,t,n),k("b",e,t,n))];case"LogicalNot":return[a.logicalNot(k("a",e,t,n))];case"LogicalOr":return[a.logicalOr(k("a",e,t,n),k("b",e,t,n))];case"Select":case"SelectV2":return[a.where(k("condition",e,t,n),k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},b6=(e,t,n,a=pn)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[a.matMul(k("a",e,t,n),k("b",e,t,n),k("transposeA",e,t,n),k("transposeB",e,t,n))];case"Einsum":return[a.einsum(k("equation",e,t,n),...k("tensors",e,t,n))];case"Transpose":return[a.transpose(k("x",e,t,n),k("perm",e,t,n))];case"_FusedMatMul":let[r,s]=k("fusedOps",e,t,n),i=r==="biasadd",o=s==="prelu",l=k("numArgs",e,t,n),u=k("leakyreluAlpha",e,t,n);if(i){if(o&&l!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&l!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[p,d]=k("args",e,t,n);return[a.fused.matMul({a:k("a",e,t,n),b:k("b",e,t,n),transposeA:k("transposeA",e,t,n),transposeB:k("transposeB",e,t,n),bias:p,activation:s,preluActivationWeights:d,leakyreluAlpha:u})];default:throw TypeError(`Node type ${e.op} is not implemented`)}},x6=(e,t,n,a=pn)=>{switch(e.op){case"EuclideanNorm":return[a.euclideanNorm(k("x",e,t,n),k("axis",e,t,n),k("keepDims",e,t,n))];case"FusedBatchNorm":case"FusedBatchNormV2":return[a.batchNorm(k("x",e,t,n),k("mean",e,t,n),k("variance",e,t,n),k("offset",e,t,n),k("scale",e,t,n),k("epsilon",e,t,n))];case"FusedBatchNormV3":return[a.batchNorm(k("x",e,t,n),k("mean",e,t,n),k("variance",e,t,n),k("offset",e,t,n),k("scale",e,t,n),k("epsilon",e,t,n))];case"LRN":return[a.localResponseNormalization(k("x",e,t,n),k("radius",e,t,n),k("bias",e,t,n),k("alpha",e,t,n),k("beta",e,t,n))];case"Softmax":return[a.softmax(k("x",e,t,n))];case"LogSoftmax":return[a.logSoftmax(k("x",e,t,n))];case"SparseToDense":return[a.sparseToDense(k("sparseIndices",e,t,n),k("outputShape",e,t,n),k("sparseValues",e,t,n),k("defaultValue",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},v6=(e,t,n,a=pn)=>{switch(e.op){case"Max":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.max(k("x",e,t,n),o,l)]}case"Mean":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.mean(k("x",e,t,n),o,l)]}case"Min":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.min(k("x",e,t,n),o,l)]}case"Sum":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.sum(k("x",e,t,n),o,l)]}case"All":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.all(k("x",e,t,n),o,l)]}case"Any":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.any(k("x",e,t,n),o,l)]}case"ArgMax":{let o=k("axis",e,t,n);return[a.argMax(k("x",e,t,n),o)]}case"ArgMin":{let o=k("axis",e,t,n);return[a.argMin(k("x",e,t,n),o)]}case"Prod":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.prod(k("x",e,t,n),o,l)]}case"Cumprod":{let o=k("axis",e,t,n),l=k("exclusive",e,t,n),u=k("reverse",e,t,n);return[a.cumprod(k("x",e,t,n),o,l,u)]}case"Cumsum":{let o=k("axis",e,t,n),l=k("exclusive",e,t,n),u=k("reverse",e,t,n);return[a.cumsum(k("x",e,t,n),o,l,u)]}case"Bincount":let r=k("x",e,t,n),s=k("weights",e,t,n),i=k("size",e,t,n);return[a.bincount(r,s,i)];case"DenseBincount":{let o=k("x",e,t,n),l=k("weights",e,t,n),u=k("size",e,t,n),p=k("binaryOutput",e,t,n);return[a.denseBincount(o,l,u,p)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},w6=(e,t,n,a=pn)=>{switch(e.op){case"ConcatV2":case"Concat":{let r=k("n",e,t,n),s=k("axis",e,t,n),i=k("tensors",e,t,n);return i=i.slice(0,r),[a.concat(i,s)]}case"Gather":{let r=k("x",e,t,n),s=k("indices",e,t,n);return[a.gather(r,a.cast(s,"int32"),0)]}case"GatherV2":{let r=k("axis",e,t,n),s=k("batchDims",e,t,n),i=k("x",e,t,n),o=k("indices",e,t,n);return[a.gather(i,a.cast(o,"int32"),r,s)]}case"Reverse":{let r=k("dims",e,t,n),s=[];for(let o=0;o{let r=k("axis",e,t,n),s=k("tensors",e,t,n),i=s[0].shape,o=a.squeeze(s[0]).shape,l=s.map(u=>{let p=v.arraysEqual(u.shape,i);if(!p&&!v.arraysEqual(a.squeeze(u).shape,o))throw new Error("the input tensors shape does not match");return p?u:a.reshape(u,i)});return[a.stack(l,r)]});case"Unpack":{let r=k("axis",e,t,n),s=k("tensor",e,t,n);return a.unstack(s,r)}case"Tile":{let r=k("reps",e,t,n);return[a.tile(k("x",e,t,n),r)]}case"Split":case"SplitV":{let r=k("axis",e,t,n),s=k("numOrSizeSplits",e,t,n),i=k("x",e,t,n);return a.split(i,s,r)}case"ScatterNd":{let r=k("indices",e,t,n),s=k("values",e,t,n),i=k("shape",e,t,n);return[a.scatterND(r,s,i)]}case"GatherNd":{let r=k("x",e,t,n),s=k("indices",e,t,n);return[a.gatherND(r,s)]}case"SparseToDense":{let r=k("sparseIndices",e,t,n),s=k("outputShape",e,t,n),i=k("sparseValues",e,t,n),o=k("defaultValue",e,t,n);return[a.sparseToDense(r,i,s,i.dtype===o.dtype?o:a.cast(o,i.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},k6=(e,t,n,a=pn)=>{switch(e.op){case"SparseFillEmptyRows":{let{outputIndices:r,outputValues:s,emptyRowIndicator:i,reverseIndexMap:o}=a.sparse.sparseFillEmptyRows(k("indices",e,t,n),k("values",e,t,n),k("denseShape",e,t,n),k("defaultValue",e,t,n));return[r,s,i,o]}case"SparseReshape":{let{outputIndices:r,outputShape:s}=a.sparse.sparseReshape(k("inputIndices",e,t,n),k("inputShape",e,t,n),k("newShape",e,t,n));return[r,s]}case"SparseSegmentMean":return[a.sparse.sparseSegmentMean(k("data",e,t,n),k("indices",e,t,n),k("segmentIds",e,t,n))];case"SparseSegmentSum":return[a.sparse.sparseSegmentSum(k("data",e,t,n),k("indices",e,t,n),k("segmentIds",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},I6=(e,t,n,a=pn)=>{switch(e.op){case"FFT":return[a.fft(k("x",e,t,n))];case"IFFT":return[a.ifft(k("x",e,t,n))];case"RFFT":return[a.rfft(k("x",e,t,n))];case"IRFFT":return[a.irfft(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},S6=(e,t,n,a=pn)=>{switch(e.op){case"StringNGrams":{let{nGrams:r,nGramsSplits:s}=a.string.stringNGrams(k("data",e,t,n),k("dataSplits",e,t,n),k("separator",e,t,n),k("nGramWidths",e,t,n),k("leftPad",e,t,n),k("rightPad",e,t,n),k("padWidth",e,t,n),k("preserveShortSequences",e,t,n));return[r,s]}case"StringSplit":{let{indices:r,values:s,shape:i}=a.string.stringSplit(k("input",e,t,n),k("delimiter",e,t,n),k("skipEmpty",e,t,n));return[r,s,i]}case"StringToHashBucketFast":return[a.string.stringToHashBucketFast(k("input",e,t,n),k("numBuckets",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},T6=(e,t,n,a=pn)=>{switch(e.op){case"Cast":return[a.cast(k("x",e,t,n),k("dtype",e,t,n))];case"ExpandDims":{let r=k("axis",e,t,n);return[a.expandDims(k("x",e,t,n),r)]}case"Squeeze":{let r=k("axis",e,t,n);return[a.squeeze(k("x",e,t,n),r)]}case"Reshape":return[a.reshape(k("x",e,t,n),k("shape",e,t,n))];case"MirrorPad":return[a.mirrorPad(k("x",e,t,n),k("padding",e,t,n),k("mode",e,t,n))];case"PadV2":case"Pad":return[a.pad(k("x",e,t,n),k("padding",e,t,n),k("constantValue",e,t,n))];case"SpaceToBatchND":{let r=k("blockShape",e,t,n),s=k("paddings",e,t,n);return[a.spaceToBatchND(k("x",e,t,n),r,s)]}case"BatchToSpaceND":{let r=k("blockShape",e,t,n),s=k("crops",e,t,n);return[a.batchToSpaceND(k("x",e,t,n),r,s)]}case"DepthToSpace":{let r=k("blockSize",e,t,n),s=k("dataFormat",e,t,n).toUpperCase();return[a.depthToSpace(k("x",e,t,n),r,s)]}case"BroadcastTo":return[a.broadcastTo(k("x",e,t,n),k("shape",e,t,n))];case"BroadcastArgs":return[a.broadcastArgs(k("s0",e,t,n),k("s1",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function eI(e,t,n,a,r=P){let s=((i,o,l)=>{switch(i.category){case"arithmetic":return r(()=>t6(i,o,l));case"basic_math":return r(()=>n6(i,o,l));case"control":return l6(i,o,l);case"convolution":return r(()=>u6(i,o,l));case"creation":return r(()=>p6(i,o,l));case"dynamic":return c6(i,o,l);case"evaluation":return r(()=>d6(i,o,l));case"image":return r(()=>g6(i,o,l));case"graph":return r(()=>h6(i,o,l));case"logical":return r(()=>y6(i,o,l));case"matrices":return r(()=>b6(i,o,l));case"normalization":return r(()=>x6(i,o,l));case"reduction":return r(()=>v6(i,o,l));case"slice_join":return r(()=>w6(i,o,l));case"sparse":return r(()=>k6(i,o,l));case"spectral":return r(()=>I6(i,o,l));case"string":return r(()=>S6(i,o,l));case"transformation":return r(()=>T6(i,o,l));case"hash_table":return f6(i,o,l,a);case"custom":let u=w2(i.op);if(u&&u.customExecutor)return u.customExecutor(new e6(i,o,l));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.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 v.isPromise(s)?s.then(i=>[].concat(i)):[].concat(s)}var tI=class{constructor(e={},t={},n={},a={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=a,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(){let e=[];for(let t=0;tt.id===0&&t.iterationId===0?"":`${t.frameName}-${t.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)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let 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))}else throw new Error("Cannot increase frame iteration, the context is empty")}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(let t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(let t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}};function nI(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,u=Object.keys(e).map(c=>Yn(c)[0]),p=[];a!=null&&(p=a.map(c=>Yn(c.name)[0]));let d=[...t];for(;d.length>0;){let c=d.pop();if((U2(c)||$6(c)||A6(c))&&i==null&&(i=c,o=i.children.map(h=>h.name).filter(h=>r.has(h))),r.add(c.name),n[c.name]==null&&u.indexOf(c.name)===-1&&p.indexOf(c.name)===-1){if(c.inputs.length===0){s.push(c.name);continue}c.inputs.forEach(h=>{l.has(h.name)||(l.add(h.name),d.push(h))})}}return{inputs:e,outputs:t,usedNodes:r,missingInputs:s,dynamicNode:i,syncInputs:o}}function N6(e,t,n){let{usedNodes:a,inputs:r}=n,s=[],i=Object.keys(r).map(p=>Yn(p)[0]).map(p=>e.nodes[p]),o=e.initNodes;i.forEach(p=>{a.has(p.name)&&s.push(p)}),e.weights.forEach(p=>{a.has(p.name)&&s.push(p)}),o!=null&&o.forEach(p=>{a.has(p.name)&&s.push(p)});let l=new Set,u=[];for(;s.length>0;){let p=s.pop();l.add(p.name),t[p.name]||u.push(p),p.children.forEach(d=>{!l.has(d.name)&&a.has(d.name)&&d.inputs.every(c=>l.has(c.name))&&s.push(d)})}return u}var C6=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],_6=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],E6=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function U2(e){return C6.indexOf(e.op)>=0}function $6(e){return _6.indexOf(e.op)>=0}function A6(e){return E6.indexOf(e.op)>=0}var px=class{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this.intermediateTensors={},this.keepTensorForDebug=!1,this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,e.functions!=null&&Object.keys(e.functions).forEach(n=>{this._functionExecutorMap[n]=new px(e.functions[n],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){let t=Object.keys(e).map(n=>e[n].map(a=>a.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=>{let 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){let n=e.map(r=>r.name).sort(),a=t.map(r=>r.name).sort();return n.join(this.SEPERATOR)+"--"+a.join(this.SEPERATOR)}compile(e,t){let n=nI(e,t,this.weightMap,this._initNodes),{missingInputs:a,dynamicNode:r,syncInputs:s}=n;if(r!=null)throw new Error(`This execution contains the node '${r.name}', which has the dynamic op '${r.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${s}]`);if(a.length>0){let i=t.map(l=>l.name),o=Object.keys(e);throw new Error(`Cannot compute the outputs [${i}] from the provided inputs [${o}]. Missing the following inputs: [${a}]`)}return N6(this.graph,this.weightMap,n)}execute(e,t){e=this.mapInputs(e);let n=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);let a=n.map(p=>this.graph.nodes[Yn(p)[0]]),r=t.map(p=>Yn(p)[0]),s=r.map(p=>this.graph.nodes[p]);this.resetIntermediateTensors(),s.length===0&&(s=this._outputs);let i=this.getCompilationKey(a,s),o=this.compiledMap.get(i);o==null&&(o=this.compile(e,s),this.compiledMap.set(i,o));let l={},u={};return P(()=>{let p=new tI(this.weightMap,l,u,this.functionExecutorMap),d=Object.assign({},this.weightMap);Object.keys(e).forEach(m=>{let[f,g]=Yn(m),y=[];y[g]=e[m],d[f]=y});let c=this.getFrozenTensorIds(d),h={};for(let m=0;mwn(m,d,p))})}getFrozenTensorIds(e){let t=[].concat.apply([],Object.keys(e).map(n=>e[n]).map(n=>n.map(a=>a.id)));return new Set(t)}checkTensorForDisposal(e,t,n,a,r,s,i){t.category==="control"||s.indexOf(e)!==-1||(n[e].forEach(o=>{o!=null&&(i[o.id]=(i[o.id]||0)+t.children.length)}),t.inputs.forEach(o=>{if(o.category!=="control"){let l=DH(o.name,n,a);l!=null&&l.forEach(u=>{if(u&&!u.kept&&!r.has(u.id)){let p=i[u.id];if(p===1){if(!this.keepTensorForDebug)u.dispose();else{let[d,c]=sr(t.name,a);this.intermediateTensors[d]?this.intermediateTensors[d][c]=u:(this.intermediateTensors[d]=[],this.intermediateTensors[d][c]=u)}delete i[u.id]}else p!=null&&i[u.id]--}})}}))}async executeAsync(e,t){return this._executeAsync(e,t)}disposeIntermediateTensors(){!this.intermediateTensors||(Object.keys(this.intermediateTensors).forEach(e=>this.intermediateTensors[e].forEach(t=>t.dispose())),this.disposeTensorsMap())}disposeTensorsMap(){!this.tensorsMap||Object.keys(this.tensorsMap).forEach(e=>{this.tensorsMap[e].forEach(t=>{t&&!t.kept&&!t.isDisposed&&!this.keepIds.has(t.id)&&t.dispose()})})}getIntermediateTensors(){return this.tensorsMap}resetIntermediateTensors(){for(let e in this.intermediateTensors)this.intermediateTensors[e].forEach(t=>t.dispose()),delete this.intermediateTensors[e]}async _executeAsync(e,t,n=!1,a={},r={}){n||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));try{this.keepTensorForDebug=H().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(u){console.warn(u.message)}this.resetIntermediateTensors();let s=new tI(this.weightMap,a,r,this.functionExecutorMap);this.tensorsMap=await this.executeWithControlFlow(e,s,t,n);let i=t.map(u=>wn(u,this.tensorsMap,s)),o=i.map(u=>u.id),l=Object.keys(e).map(u=>e[u].id);return this.keepIds=new Set([...o,...l,...this.weightIds]),this.keepTensorForDebug||this.disposeTensorsMap(),this.parent==null&&s.dispose(this.keepIds),i}async executeFunctionAsync(e,t,n){let a=e.reduce((r,s,i)=>(r[this.inputs[i].name]=s,r),{});return this._executeAsync(a,this.outputNodes,!0,t,n)}async executeWithControlFlow(e,t,n,a){let r=Object.keys(e),s=r.map(b=>this.graph.nodes[Yn(b)[0]]),i=n.map(b=>Yn(b)[0]),o=i.map(b=>this.graph.nodes[b]);o.length===0&&(o=this._outputs);let{usedNodes:l,missingInputs:u,dynamicNode:p,syncInputs:d}=nI(e,o,this.weightMap,this._initNodes),c=[...s,...this.graph.weights,...this._initNodes||[]].map(b=>({node:b,contexts:t.currentContext})),h=Object.assign({},this.weightMap);Object.keys(e).forEach(b=>{let[x,w]=Yn(b),I=[];I[w]=e[b],h[x]=I});let m={},f=this.getFrozenTensorIds(h),g={};for(;c.length>0;){let b=this.processStack(s,c,t,h,g,f,i,m,l);await Promise.all(b)}p==null&&!a&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let y=o.filter(b=>!U2(b)&&!wn(b.name,h,t)).map(b=>b.name);if(y.length>0){let b="";throw p!=null&&(b=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${d}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${r}]. Consider providing the following inputs: [${u}]. ${b}`)}return h}processStack(e,t,n,a,r,s,i,o,l){let u=[];for(;t.length>0;){let p=t.pop();n.currentContext=p.contexts;let d="";if(p.node.op==="Enter"&&k("isConstant",p.node,a,n)&&([d]=sr(p.node.name,n)),a[p.node.name]==null){let c=eI(p.node,a,n,this._resourceManager);d||([d]=sr(p.node.name,n));let h=n.currentContext;v.isPromise(c)?u.push(c.then(m=>(a[d]=m,n.currentContext=h,this.checkTensorForDisposal(d,p.node,a,n,s,i,o),this.processChildNodes(p.node,t,n,a,r,l),m))):(a[d]=c,this.checkTensorForDisposal(d,p.node,a,n,s,i,o),this.processChildNodes(p.node,t,n,a,r,l))}else this.processChildNodes(p.node,t,n,a,r,l)}return u}processChildNodes(e,t,n,a,r,s){e.children.forEach(i=>{let[o]=sr(i.name,n);r[o]||!s.has(i.name)||(i.op==="Merge"?i.inputNames.some(l=>!!wn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})):i.inputNames.every(l=>!!wn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(t=>t.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{let n=e[t],[a]=Yn(t),r=this.graph.nodes[a];if(r.attrParams.shape&&r.attrParams.shape.value){let s=r.attrParams.shape.value,i=s.length===n.shape.length&&n.shape.every((o,l)=>s[l]===-1||s[l]===o);v.assert(i,()=>`The shape of dict['${r.name}'] provided in model.execute(dict) must be [${s}], but was [${n.shape}]`)}r.attrParams.dtype&&r.attrParams.dtype.value&&v.assert(n.dtype===r.attrParams.dtype.value,()=>`The dtype of dict['${r.name}'] provided in model.execute(dict) must be ${r.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(e){let t={};for(let n in e)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[n]!=null){let a=this._signature.inputs[n];t[a.name]=e[n]}else t[n]=e[n];return t}checkInputs(e){let t=Object.keys(e).filter(n=>{let[a]=Yn(n);return this.graph.nodes[a]==null});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(t=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[t]!=null?this._signature.outputs[t].name:t,{})}checkOutputs(e){e.forEach(t=>{let[n]=Yn(t);if(!this.graph.nodes[n])throw new Error(`The output '${t}' is not found in the graph`)})}},F6=class{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(let e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(let e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}},D6="?tfjs-format=file",R6="model.json",$0=class{constructor(e,t={},n=Ut){this.modelUrl=e,this.loadOptions=t,this.version="n/a",this.io=n,t==null&&(this.loadOptions={}),this.resourceManager=new F6}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}get modelStructuredOutputKeys(){return this.structuredOutputKeys}findIOHandler(){let e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=this.io.browserHTTPRequest(e,this.loadOptions);else{let t=this.io.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(this.io.browserHTTPRequest(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]}}load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let e=this.handler.load();return v.isPromise(e)?e.then(t=>this.loadSync(t)):this.loadSync(e)}loadSync(e){this.artifacts=e;let t=this.artifacts.modelTopology,n=this.artifacts.signature;if(this.artifacts.userDefinedMetadata!=null){let r=this.artifacts.userDefinedMetadata;r.signature!=null&&(n=r.signature),r.structuredOutputKeys!=null&&(this.structuredOutputKeys=r.structuredOutputKeys)}this.signature=n,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;let a=this.io.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new px(Yk.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(a),this.executor.resourceManager=this.resourceManager,e.modelInitializer!=null&&e.modelInitializer.node!=null){let r=Yk.Instance.transformGraph(e.modelInitializer);this.initializer=new px(r),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=e.initializerSignature}return!0}async save(e,t){if(typeof e=="string"){let n=this.io.getSaveHandlers(e);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${e}'`);e=n[0]}if(e.save==null)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){let n=this.execute(e,this.outputNodes);if(this.structuredOutputKeys){let a=n instanceof Te?[n]:n,r={};return a.forEach((s,i)=>r[this.structuredOutputKeys[i]]=s),r}return n}normalizeInputs(e){if(!(e instanceof Te)&&!Array.isArray(e)){if(this.signature!=null&&this.signature.inputs!=null)for(let a in this.signature.inputs){let r=this.signature.inputs[a];r.resourceId!=null&&(e[a]=this.resourceIdToCapturedInput[r.resourceId])}return e}e=Array.isArray(e)?e:[e];let t=Object.keys(this.resourceIdToCapturedInput).length;if(e.length+t!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-t} non-resource placeholders, while there are ${e.length} input tensors provided.`);let n=0;return this.inputNodes.reduce((a,r)=>{let s=this.signature?this.signature.inputs[r]:null;return s!=null&&s.resourceId!=null?a[r]=this.resourceIdToCapturedInput[s.resourceId]:a[r]=e[n++],a},{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}executeInitializerGraph(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(e){if(this.resourceIdToCapturedInput={},this.initializerSignature){let t=Object.keys(this.initializerSignature.outputs);for(let n=0;n1?n:n[0]}async executeAsync(e,t){this.resourceIdToCapturedInput==null&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,n)=>(t[n]=[e[n]],t),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&_e(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function M6(e,t={},n=Ut){if(e==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");t==null&&(t={}),t.fromTFHub&&typeof e=="string"&&(e=O6(e));let a=new $0(e,t,n);return await a.load(),a}function P6(e){if(e==null)throw new Error("modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model");let t;if(e instanceof Array){let[a,r]=e;if(!a)throw new Error("modelJSON must be the first element of the array");if(!r||!(r instanceof ArrayBuffer))throw new Error("An ArrayBuffer of weights must be the second element of the array");if(!("modelTopology"in a))throw new Error("Model JSON is missing 'modelTopology'");if(!("weightsManifest"in a))throw new Error("Model JSON is missing 'weightsManifest'");let s=Ut.getWeightSpecs(a.weightsManifest),i=Ut.getModelArtifactsForJSONSync(a,s,r);t=Ut.fromMemorySync(i)}else if("load"in e)t=e;else if("modelTopology"in e&&"weightSpecs"in e&&"weightData"in e)t=Ut.fromMemorySync(e);else throw new Error("Unknown model format");let n=new $0(t);return n.load(),n}function O6(e){return e.endsWith("/")||(e=e+"/"),`${e}${R6}${D6}`}var L6="4.0.0",G2={};$e(G2,{CSVDataset:()=>Q2,Dataset:()=>qu,FileDataSource:()=>iC,TextLineDataset:()=>J2,URLDataSource:()=>oC,array:()=>oj,csv:()=>bj,func:()=>xj,generator:()=>vj,microphone:()=>kj,version_data:()=>Ij,webcam:()=>wj,zip:()=>lj});var z6=ms(im()),W6=ms(im());function B6(e,t){return Yh(e,t)}function Yh(e,t,n=new Map,a=new Set){if(e==null)return null;if(typeof Blob=="function"&&e instanceof Blob)return e.slice();if(a.has(e))throw new Error("Circular references are not supported.");if(n.has(e))return n.get(e);let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(r.recurse)if(Cl(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=Yh(o,t,n,a);s[i]=l}return a.delete(e),e.__proto__&&(s.__proto__=e.__proto__),s}else throw new Error(`Can't recurse into non-iterable type: ${e}`);else return n.set(e,r.value),r.value}function V6(e,t=j2){return H2(e,t)}function H2(e,t,n=new Set){let a=e[0];if(n.has(a))throw new Error("Circular references are not supported.");let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(r.recurse)if(Cl(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(u=>u[i]),l=H2(o,t,n);s[i]=l}return n.delete(a),s}else throw new Error(`Can't recurse into non-iterable type: ${a}`);else return r.value}function j2(e){return e===null?null:Cl(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function q2(e,t){let n=new Map;Yh(e,t,n);for(let a of Array.from(n.keys())){let r=n.get(a);if(v.isPromise(r)){let s=await r;n.set(a,s)}}return Yh(e,t,n)}function Cl(e){let t=!1;if(H().get("IS_BROWSER"))t=e instanceof TextDecoder;else{let{StringDecoder:n}=VI();t=e instanceof n}return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Te)&&!(e instanceof Promise)&&!t)}function U6(e){return e==null||G6(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Te||v.isTypedArray(e)}function G6(e){return e===null||typeof e!="object"&&typeof e!="function"}function H6(e){return B6(e,j6)}function j6(e){return e instanceof Te?{value:e.clone(),recurse:!1}:Cl(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var K2=class{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,e==null)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 this.length()===0}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(let t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let 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.");let 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.");let t=this.wrap(this.begin+e),n=this.get(t);return this.set(t,this.pop()),n}},A0=class extends K2{constructor(){super(A0.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){let e=this.capacity*2,t=new Array(e),n=this.length();for(let a=0;at===!0)}rowMajorBatch(e,t=!0){return new ej(this,e,t)}columnMajorBatch(e,t=!0,n=j2){return this.rowMajorBatch(e,t).map(a=>V6(a,n))}concatenate(e,t){return new Y2(X2([this,e]),t)}take(e){return e<0||e==null?this:new Q6(this,e)}skip(e){return e<0||e==null?this:new J6(this,e)}prefetch(e){return new Z2(this,e)}shuffle(e,t){return new ij(this,e,t)}serial(){return new Z6(this)}},X6=class extends tn{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};let e=this.items[this.trav];return this.trav++,{value:H6(e),done:!1}}},Y6=class extends tn{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}}},Z6=class extends tn{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()}},J6=class extends tn{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()}},ej=class extends tn{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(){let e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}},tj=class extends tn{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(;;){let e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;_e(e.value)}}},nj=class extends tn{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Va.getTensorsInContainer(e.value),n=this.transform(e.value),a=Va.getTensorsInContainer(n);for(let r of t)Va.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},aj=class extends tn{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}}}},aI=class extends tn{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Va.getTensorsInContainer(e.value),n=await this.transform(e.value),a=Va.getTensorsInContainer(n);for(let r of t)Va.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},D0=class extends tn{constructor(){super(),this.outputQueue=new A0,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},rj=class extends D0{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let e=await this.upstream.next();if(e.done)return!1;let t=Va.getTensorsInContainer(e.value),n=this.transform(e.value),a=Va.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let r of t)Va.isTensorInList(r,a)||r.dispose();return!0}},Y2=class extends tn{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,this.iterator==null){let n=await this.moreIterators.next();if(n.done)return{value:null,done:!0};this.iterator=n.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}},ts;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(ts||(ts={}));var sj=class extends tn{constructor(e,t=ts.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;function a(s){return s instanceof tn?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await q2(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case ts.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case ts.SHORTEST:return{value:null,done:!0};case ts.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},Z2=class extends tn{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new K2(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}},ij=class extends Z2{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=W6.alea(n||v.now().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();){let e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(t.done)this.upstreamExhausted=!0;else return this.refill(),t}return{value:null,done:!0}}},qu=class{constructor(){this.size=null}batch(e,t=!0){let n=this;v.assert(e>0,()=>`batchSize needs to be positive, but it is ${e}`);let a;return this.size===1/0||this.size==null?a=this.size:t?a=Math.ceil(this.size/e):a=Math.floor(this.size/e),Xn(async()=>(await n.iterator()).columnMajorBatch(e,t,uj),a)}concatenate(e){let t=this,n;return this.size===1/0||e.size===1/0?n=1/0:this.size!=null&&e.size!=null?n=this.size+e.size:n=null,Xn(async()=>(await t.iterator()).concatenate(await e.iterator()),n)}filter(e){let t=this,n;return this.size===1/0?n=1/0:n=null,Xn(async()=>(await t.iterator()).filter(a=>P(()=>e(a))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return Xn(async()=>(await t.iterator()).map(n=>P(()=>e(n))),this.size)}mapAsync(e){let t=this;return Xn(async()=>(await t.iterator()).mapAsync(e),this.size)}prefetch(e){if(e==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");let t=this;return Xn(async()=>(await t.iterator()).prefetch(e),this.size)}repeat(e){let t=this,n;return this.size!=null&&e>0?n=this.size*e:e===0?n=0:this.size!=null&&(e===void 0||e<0)?n=1/0:n=null,Xn(async()=>{let a=F0(async()=>({value:await t.iterator(),done:!1}));return q6(a.take(e))},n)}skip(e){let t=this,n;return this.size!=null&&e>=0&&this.size>=e?n=this.size-e:this.size!=null&&(this.size(await t.iterator()).skip(e),n)}shuffle(e,t,n=!0){if(e==null||e<0)throw this.size==null?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)`);let a=this,r=z6.alea(t||v.now().toString());return Xn(async()=>{let s=r.int32();return n&&(s+=r.int32()),(await a.iterator()).shuffle(e,s.toString())},this.size)}take(e){let t=this,n;return this.size!=null&&this.size>e?n=e:this.size!=null&&this.size<=e?n=this.size:n=null,Xn(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()}};qu.MAX_BUFFER_SIZE=1e4;function Xn(e,t=null){return new class extends qu{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function oj(e){return Xn(async()=>X2(e),e.length)}function lj(e){if(!Cl(e))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(e))for(let n=0;n{let n=await q2(e,a=>{if(a instanceof qu)return{value:a.iterator(),recurse:!1};if(Cl(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return K6(n,ts.SHORTEST)},t)}function uj(e){if(e===null)return null;let t=e[0];return U6(t)?{value:pj(e),recurse:!1}:{value:null,recurse:!0}}function pj(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Te?Ft(e):In(e)}var J2=class extends qu{constructor(e){super(),this.input=e}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` -`).map(e=>(e.endsWith("\r")&&(e=e.slice(0,-1)),e))}},dh='"',Fp=Symbol("out"),rI=Symbol("field"),hh=Symbol("quote"),Ib=Symbol("quoteafterquote"),sI=Symbol("quoteinquote"),Q2=class extends qu{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 J2(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(v.assert(t.delimiter==null,()=>"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(){let 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&&v.assert(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);let t=this.fullColumnNames.reduce((a,r)=>(a[r]=a[r]+1||1,a),{}),n=Object.keys(t).filter(a=>t[a]>1);if(v.assert(n.length===0,()=>"Duplicate column names found: "+n.toString()),this.columnConfigs){for(let a of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(a)===-1)throw new Error('The key "'+a+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let e=await(await this.base.iterator()).next();if(e.done)throw new Error("No data was found for CSV parsing.");let t=e.value;return this.parseRow(t,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map(t=>this.makeDataElement(t))}makeDataElement(e){let t=this.parseRow(e),n={},a={};for(let r=0;r14||!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=e.includeSpectrogram!==!1,this.includeWaveform=e.includeWaveform===!0,!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(!H().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let t=new eC(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(n){throw new Error(`Error thrown while initializing video stream: ${n.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,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,n=await this.getAudioData();if(this.includeSpectrogram){let a=this.flattenQueue(n.freqDataQueue);e=this.getTensorFromAudioDataArray(a,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let a=this.flattenQueue(n.timeDataQueue);t=this.getTensorFromAudioDataArray(a,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let e=[],t=[],n=0;return new Promise(a=>{let r=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&a({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(r),a({freqDataQueue:e,timeDataQueue:t}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&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){let t=e[0].length,n=new Float32Array(e.length*t);return e.forEach((a,r)=>n.set(a,r*t)),n}getTensorFromAudioDataArray(e,t){let n=new Float32Array(v.sizeFromShape(t));return n.set(e,n.length-e.length),In(n,t)}},tC=class extends tn{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=Ke([0],"int32"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,a=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,r=(1-n)/2,s=(1-a)/2,i=r+n,o=a+s;this.cropBox=Aa([s,r,o,i],[1,4])}else this.cropBox=Aa([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(!H().get("IS_BROWSER"))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}let n=new tC(e,t);return await n.start(),n}async start(){this.webcamConfig.facingMode&&v.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`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=ho.fromPixels(this.webcamVideoElement)}catch(t){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(t)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(t){throw new Error(`Error thrown cropping the video: ${t.message}`)}finally{e.dispose()}else return{value:e,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(e){return P(()=>{let t=Zt(oe(e,"float32"),0),n;n=za.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let a=n.shape;return W(n,a.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.")}},nC=class{},aC=class extends tn{split(e){return new cj(this,e)}},cj=class extends aC{constructor(e,t){super(),this.upstream=e,this.impl=new dj(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},dj=class extends D0{constructor(e,t){super(),this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let e=await this.upstream.next();if(e.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(let n of t.slice(0,-1))this.outputQueue.push(n);return this.carryover=t[t.length-1],!0}},hj=class extends tn{decodeUTF8(){return new mj(this)}},mj=class extends aC{constructor(e){super(),this.upstream=e,this.impl=new fj(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},fj=class extends D0{constructor(e){if(super(),this.upstream=e,H().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=VI();this.decoder=new t("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let e=await this.upstream.next(),t;if(e.done)return!1;t=e.value;let n;return H().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},rC=class extends hj{constructor(e,t={}){super(),this.file=e,this.options=t,v.assert(e instanceof Uint8Array||(H().get("IS_BROWSER")?e instanceof File||e instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((e,t)=>{let n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,n)));else{let a=new FileReader;a.onload=s=>{let i=a.result;if(i instanceof ArrayBuffer&&(i=new Uint8Array(i)),!(i instanceof Uint8Array))return t(new TypeError("FileReader returned unknown type."));e(i)},a.onabort=s=>t(new Error("Aborted")),a.onerror=s=>t(new Error(s.type));let r=this.file.slice(this.offset,n);a.readAsArrayBuffer(r)}this.offset=n}),done:!1}}};async function gj(e,t={},n){let a,r;typeof e=="string"?a=e:(a=e.url,r=yj(e));let s=await(n||v.fetch)(a,r);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new rC(i,t)}else throw new Error(s.statusText)}var yj=e=>({method:e.method,headers:e.headers,body:e.body,mode:e.mode,credentials:e.credentials,cache:e.cache,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity});function sC(e){return typeof e=="string"&&e.slice(0,7)==="file://"}var iC=class extends nC{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(sC(this.input)&&H().get("IS_NODE")){let e=Cx();this.input=e.readFileSync(this.input.slice(7))}return new rC(this.input,this.options)}},oC=class extends nC{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return sC(this.url)?new iC(this.url,this.fileOptions).iterator():gj(this.url,this.fileOptions)}};function bj(e,t={}){return new Q2(new oC(e),t)}function xj(e){let t=F0(e);return Xn(async()=>t)}function vj(e){return Xn(async()=>{let t=await e();return F0(()=>t.next())})}async function wj(e,t){return tC.create(e,t)}async function kj(e){return eC.create(e)}var Ij="4.0.0";function ge(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&v.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var Sj=hr.whereImpl,R0=class extends pc{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new om(this,_a())}nextDataId(){return R0.nextDataId++}write(e,t,n){this.firstUse&&(this.firstUse=!1,H().get("IS_NODE")&&N.warn(` +`).map(e=>(e.endsWith("\r")&&(e=e.slice(0,-1)),e))}},dh='"',Fp=Symbol("out"),rI=Symbol("field"),hh=Symbol("quote"),Ib=Symbol("quoteafterquote"),sI=Symbol("quoteinquote"),Q2=class extends qu{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 J2(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(v.assert(t.delimiter==null,()=>"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(){let 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&&v.assert(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);let t=this.fullColumnNames.reduce((a,r)=>(a[r]=a[r]+1||1,a),{}),n=Object.keys(t).filter(a=>t[a]>1);if(v.assert(n.length===0,()=>"Duplicate column names found: "+n.toString()),this.columnConfigs){for(let a of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(a)===-1)throw new Error('The key "'+a+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let e=await(await this.base.iterator()).next();if(e.done)throw new Error("No data was found for CSV parsing.");let t=e.value;return this.parseRow(t,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map(t=>this.makeDataElement(t))}makeDataElement(e){let t=this.parseRow(e),n={},a={};for(let r=0;r14||!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=e.includeSpectrogram!==!1,this.includeWaveform=e.includeWaveform===!0,!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(!H().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let t=new eC(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(n){throw new Error(`Error thrown while initializing video stream: ${n.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,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,n=await this.getAudioData();if(this.includeSpectrogram){let a=this.flattenQueue(n.freqDataQueue);e=this.getTensorFromAudioDataArray(a,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let a=this.flattenQueue(n.timeDataQueue);t=this.getTensorFromAudioDataArray(a,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let e=[],t=[],n=0;return new Promise(a=>{let r=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&a({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(r),a({freqDataQueue:e,timeDataQueue:t}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&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){let t=e[0].length,n=new Float32Array(e.length*t);return e.forEach((a,r)=>n.set(a,r*t)),n}getTensorFromAudioDataArray(e,t){let n=new Float32Array(v.sizeFromShape(t));return n.set(e,n.length-e.length),In(n,t)}},tC=class extends tn{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=Ke([0],"int32"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,a=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,r=(1-n)/2,s=(1-a)/2,i=r+n,o=a+s;this.cropBox=$a([s,r,o,i],[1,4])}else this.cropBox=$a([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(!H().get("IS_BROWSER"))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}let n=new tC(e,t);return await n.start(),n}async start(){this.webcamConfig.facingMode&&v.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`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=ho.fromPixels(this.webcamVideoElement)}catch(t){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(t)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(t){throw new Error(`Error thrown cropping the video: ${t.message}`)}finally{e.dispose()}else return{value:e,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(e){return P(()=>{let t=Zt(le(e,"float32"),0),n;n=za.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let a=n.shape;return W(n,a.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.")}},nC=class{},aC=class extends tn{split(e){return new cj(this,e)}},cj=class extends aC{constructor(e,t){super(),this.upstream=e,this.impl=new dj(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},dj=class extends D0{constructor(e,t){super(),this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let e=await this.upstream.next();if(e.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(let n of t.slice(0,-1))this.outputQueue.push(n);return this.carryover=t[t.length-1],!0}},hj=class extends tn{decodeUTF8(){return new mj(this)}},mj=class extends aC{constructor(e){super(),this.upstream=e,this.impl=new fj(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},fj=class extends D0{constructor(e){if(super(),this.upstream=e,H().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=VI();this.decoder=new t("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let e=await this.upstream.next(),t;if(e.done)return!1;t=e.value;let n;return H().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},rC=class extends hj{constructor(e,t={}){super(),this.file=e,this.options=t,v.assert(e instanceof Uint8Array||(H().get("IS_BROWSER")?e instanceof File||e instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((e,t)=>{let n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,n)));else{let a=new FileReader;a.onload=s=>{let i=a.result;if(i instanceof ArrayBuffer&&(i=new Uint8Array(i)),!(i instanceof Uint8Array))return t(new TypeError("FileReader returned unknown type."));e(i)},a.onabort=s=>t(new Error("Aborted")),a.onerror=s=>t(new Error(s.type));let r=this.file.slice(this.offset,n);a.readAsArrayBuffer(r)}this.offset=n}),done:!1}}};async function gj(e,t={},n){let a,r;typeof e=="string"?a=e:(a=e.url,r=yj(e));let s=await(n||v.fetch)(a,r);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new rC(i,t)}else throw new Error(s.statusText)}var yj=e=>({method:e.method,headers:e.headers,body:e.body,mode:e.mode,credentials:e.credentials,cache:e.cache,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity});function sC(e){return typeof e=="string"&&e.slice(0,7)==="file://"}var iC=class extends nC{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(sC(this.input)&&H().get("IS_NODE")){let e=Cx();this.input=e.readFileSync(this.input.slice(7))}return new rC(this.input,this.options)}},oC=class extends nC{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return sC(this.url)?new iC(this.url,this.fileOptions).iterator():gj(this.url,this.fileOptions)}};function bj(e,t={}){return new Q2(new oC(e),t)}function xj(e){let t=F0(e);return Xn(async()=>t)}function vj(e){return Xn(async()=>{let t=await e();return F0(()=>t.next())})}async function wj(e,t){return tC.create(e,t)}async function kj(e){return eC.create(e)}var Ij="4.0.0";function ge(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&v.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var Sj=hr.whereImpl,R0=class extends pc{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new om(this,_a())}nextDataId(){return R0.nextDataId++}write(e,t,n){this.firstUse&&(this.firstUse=!1,H().get("IS_NODE")&&N.warn(` ============================ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, visit https://github.com/tensorflow/tfjs-node for more details. -============================`));let a={id:this.nextDataId()};return this.data.set(a,{values:e,dtype:n,refCount:1}),a}makeTensorInfo(e,t,n){let a;if(t==="string"&&n!=null&&n.length>0&&v.isString(n[0])){let r=n.map(s=>v.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return{dataId:a,shape:e,dtype:t}}refCount(e){return this.data.has(e)?this.data.get(e).refCount:0}incRef(e){let t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){let t=this.data.get(e);t.refCount--}}move(e,t,n,a,r){this.data.set(e,{values:t,dtype:a,refCount:r})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){let{dtype:t,complexTensorInfos:n}=this.data.get(e);if(t==="complex64"){let a=this.readSync(n.real.dataId),r=this.readSync(n.imag.dataId);return N.mergeRealAndImagArrays(a,r)}return this.data.get(e).values}bufferSync(e){let t=this.readSync(e.dataId);if(e.dtype==="string")try{let n=t.map(a=>v.decodeString(a));return Oe(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Oe(e.shape,e.dtype,t)}makeOutput(e,t,n){return _a().makeTensorFromTensorInfo(this.makeTensorInfo(t,n,e),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;let{complexTensorInfos:n}=this.data.get(e);n!=null&&(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){let t=v.now();return e(),{kernelMs:v.now()-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){ge([e],"where");let t=this.readSync(e.dataId);return Sj(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};R0.nextDataId=0;var lC={};Ae(lC,{addImpl:()=>cC,bincountImpl:()=>P0,bincountReduceImpl:()=>dC,castImpl:()=>pC,ceilImpl:()=>hC,concatImpl:()=>O0,equalImpl:()=>mC,expImpl:()=>gC,expm1Impl:()=>bC,floorImpl:()=>xC,gatherNdImpl:()=>vC,gatherV2Impl:()=>wC,greaterEqualImpl:()=>IC,greaterImpl:()=>kC,lessEqualImpl:()=>TC,lessImpl:()=>SC,linSpaceImpl:()=>NC,logImpl:()=>CC,maxImpl:()=>_C,maximumImpl:()=>EC,minimumImpl:()=>AC,multiplyImpl:()=>L0,negImpl:()=>$C,notEqualImpl:()=>FC,prodImpl:()=>DC,raggedGatherImpl:()=>RC,raggedRangeImpl:()=>MC,raggedTensorToTensorImpl:()=>PC,rangeImpl:()=>W0,rsqrtImpl:()=>OC,scatterImpl:()=>ll,sigmoidImpl:()=>bq,simpleAbsImpl:()=>uC,sliceImpl:()=>Jh,sparseFillEmptyRowsImpl:()=>zC,sparseReshapeImpl:()=>WC,sparseSegmentReductionImpl:()=>B0,sqrtImpl:()=>wq,squaredDifferenceImpl:()=>BC,stridedSliceImpl:()=>VC,stringNGramsImpl:()=>V0,stringSplitImpl:()=>U0,stringToHashBucketFastImpl:()=>G0,subImpl:()=>UC,tileImpl:()=>GC,topKImpl:()=>jC,transposeImpl:()=>z0,uniqueImpl:()=>qC});function uC(e){let t=new Float32Array(e.length);for(let n=0;n{let{x:t}=e.inputs,n=e.backend;ge(t,"abs");let a=new Float32Array(v.sizeFromShape(t.shape)),r=n.data.get(t.dataId).values;return a=uC(r),n.makeOutput(a,t.shape,t.dtype)},Nj={kernelName:Dl,backendName:"cpu",kernelFunc:Tj};function Vt(e){return(t,n,a,r,s)=>{let i=N.assertAndGetBroadcastShape(t,n),o=i.length,l=v.computeStrides(i),u=v.sizeFromShape(i),p=v.getTypedArrayFromDType(s,u),d=t.length,c=n.length,h=v.computeStrides(t),m=v.computeStrides(n),f=N.getBroadcastDims(t,i),g=N.getBroadcastDims(n,i);if(f.length+g.length===0)for(let y=0;yx[C]=0);let w=v.locToIndex(x,d,h),I=b.slice(-c);g.forEach(C=>I[C]=0);let T=v.locToIndex(I,c,m);p[y]=e(a[w],r[T])}return[p,i]}}function Zn(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=n.makeTensorInfo(a.shape,"complex64"),l=n.data.get(o.dataId);return l.complexTensorInfos={real:n.makeTensorInfo(a.shape,"float32",s),imag:n.makeTensorInfo(r.shape,"float32",i)},o}var Cj={kernelName:mm,backendName:"cpu",kernelFunc:Zn};function Zh(e,t,n="float32"){if(n==="complex64"){let r=Zh(e,t,"float32"),s=Zh(e,t,"float32");return Zn({inputs:{real:r,imag:s},backend:e})}let a=v.makeZerosTypedArray(v.sizeFromShape(t),n);return e.makeTensorInfo(t,n,a)}function pr(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var _j={kernelName:Ri,backendName:"cpu",kernelFunc:pr};function ui(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.data.get(a.dataId).complexTensorInfos.real,s=n.data.get(r.dataId).values;return n.makeTensorInfo(r.shape,r.dtype,s)}var Ej={kernelName:Pm,backendName:"cpu",kernelFunc:ui};function pC(e,t,n,a){if(a==="int32"){let r=Int32Array.from(e);return[t,"int32",r]}if(a==="bool"){let r=v.toTypedArray([0],n),[s,i]=Vt((o,l)=>o!==l?1:0)(t,[],e,r,"bool");return[i,"bool",s]}throw new Error(`Error in Cast: failed to cast ${n} to ${a}`)}function ds(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return pr({inputs:{x:r},backend:n});let p=Zh(n,r.shape,r.dtype),d=ds({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),c=Zn({inputs:{real:d,imag:p},backend:n});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),c}if(r.dtype==="complex64"){let p=ui({inputs:{input:r},backend:n}),d=ds({inputs:{x:p},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(p),d}if(!v.hasEncodingLoss(r.dtype,s)){let p=pr({inputs:{x:r},backend:n});return{dataId:p.dataId,shape:p.shape,dtype:s}}let i=n.data.get(r.dataId).values,[o,l,u]=pC(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}var Aj={kernelName:xi,backendName:"cpu",kernelFunc:ds};function nn(e,t,n,a){return n==null?({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;ge([i,o],e);let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=i.dtype==="string"?N.fromUint8ToStringArray(u):u,c=i.dtype==="string"?N.fromUint8ToStringArray(p):p,h=a||i.dtype,[m,f]=t(i.shape,o.shape,d,c,h);return l.makeTensorInfo(f,h,m)}:({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;if(i.dtype==="complex64"||o.dtype==="complex64"){let u=ds({inputs:{x:i},backend:l,attrs:{dtype:"complex64"}}),p=l.data.get(u.dataId),d=p.complexTensorInfos.real,c=p.complexTensorInfos.imag,h=l.data.get(d.dataId).values,m=l.data.get(c.dataId).values,f=ds({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),y=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,x=l.data.get(y.dataId).values,w=l.data.get(b.dataId).values,[I,T,C]=n(i.shape,o.shape,h,m,x,w),E=l.makeTensorInfo(C,"float32",I),A=l.makeTensorInfo(C,"float32",T),R=Zn({inputs:{real:E,imag:A},backend:l});return l.disposeIntermediateTensorInfo(u),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo(E),l.disposeIntermediateTensorInfo(A),R}else{let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=a||i.dtype,[c,h]=t(i.shape,o.shape,u,p,d);return l.makeTensorInfo(h,d,c)}}}function M0(e){return(t,n,a,r,s,i)=>{let o=N.assertAndGetBroadcastShape(t,n),l=v.sizeFromShape(o),u=o.length,p=v.computeStrides(o),d=v.getTypedArrayFromDType("float32",l),c=v.getTypedArrayFromDType("float32",l),h=N.getBroadcastDims(t,o),m=N.getBroadcastDims(n,o),f=N.mergeRealAndImagArrays(a,r),g=N.mergeRealAndImagArrays(s,i),y=t.length,b=v.computeStrides(t),x=n.length,w=v.computeStrides(n);if(h.length+m.length===0)for(let I=0;IC[S]=0);let E=v.locToIndex(C,y,b),A=T.slice(-x);m.forEach(S=>A[S]=0);let R=v.locToIndex(A,x,w),F=e(f[E*2],f[E*2+1],g[R*2],g[R*2+1]);d[I]=F.real,c[I]=F.imag}return[d,c,o]}}var cC=Vt((e,t)=>e+t),$j=M0((e,t,n,a)=>({real:e+n,imag:t+a})),_l=nn(gs,cC,$j),Fj={kernelName:gs,backendName:"cpu",kernelFunc:_l};function P0(e,t,n,a,r){let s=v.sizeFromShape(a),i=v.makeZerosTypedArray(r,n);for(let o=0;o=r||(s>0?i[l]+=t[o]:i[l]+=1)}return i}function dC(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=Oe([r,n],t.dtype);for(let o=0;o=n||(a?i.set(1,o,u):t.size>0?i.set(i.get(o,u)+t.get(o,l),o,u):i.set(i.get(o,u)+1,o,u))}return i}function Cs(e){return(t,n,a)=>{let r=v.getTypedArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;if(ge(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,u=v.sizeFromShape(i.shape),p=n||i.dtype,d=v.getArrayFromDType(p,u);for(let c=0;c{let{x:i}=a;if(ge(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,u=n||i.dtype,p=t(l,u,r);return o.makeTensorInfo(i.shape,u,p)}}var hC=Cs(e=>Math.ceil(e)),Dj=Ku(vi,hC),Rj={kernelName:vi,backendName:"cpu",kernelFunc:Dj};function O0(e,t,n,a){let r=v.getArrayFromDType(n,v.sizeFromShape(t));if(a&&n!=="string"){let s=0;e.forEach(i=>{let o=v.sizeFromShape(i.shape);r.set(i.vals,s),s+=o})}else{let s=0;e.forEach(i=>{let o=n==="string"?N.fromUint8ToStringArray(i.vals):i.vals,l=0;for(let u=0;ue===t?1:0),fC=nn(Xl,mC,null,"bool"),Mj={kernelName:Xl,backendName:"cpu",kernelFunc:fC},gC=Cs(e=>Math.exp(e)),yC=Ku(Ei,gC,"float32"),Pj={kernelName:Ei,backendName:"cpu",kernelFunc:yC},bC=Cs(e=>Math.expm1(e)),Oj=Ku(Zl,bC),Lj={kernelName:Zl,backendName:"cpu",kernelFunc:Oj},xC=Cs(e=>Math.floor(e)),zj=Ku(Ai,xC),Wj={kernelName:Ai,backendName:"cpu",kernelFunc:zj};function vC(e,t,n,a,r,s,i,o,l){let u=Oe([a,s],n);for(let p=0;p=l/s)throw new Error(`Invalid indices: ${d} does not index into ${o}`);for(let h=0;he>t?1:0),Bj=nn(tu,kC,null,"bool"),Vj={kernelName:tu,backendName:"cpu",kernelFunc:Bj},IC=Vt((e,t)=>e>=t?1:0),Uj=nn(Di,IC,null,"bool"),Gj={kernelName:Di,backendName:"cpu",kernelFunc:Uj},SC=Vt((e,t)=>ee<=t?1:0),qj=nn(iu,TC,null,"bool"),Kj={kernelName:iu,backendName:"cpu",kernelFunc:qj};function NC(e,t,n){let a=(t-e)/(n-1),r=v.makeZerosTypedArray(n,"float32");r[0]=e;for(let s=1;sMath.log(e)),Xj=Ku(Pi,CC),Yj={kernelName:Pi,backendName:"cpu",kernelFunc:Xj};function _C(e,t,n,a){let r=v.getTypedArrayFromDType(a,v.sizeFromShape(n));for(let s=0;so)&&(o=u)}r[s]=o}return r}var EC=Vt((e,t)=>Math.max(e,t)),Zj=nn(Li,EC),Jj={kernelName:Li,backendName:"cpu",kernelFunc:Zj},AC=Vt((e,t)=>Math.min(e,t)),Qj=nn(Vi,AC),eq={kernelName:Vi,backendName:"cpu",kernelFunc:Qj},L0=Vt((e,t)=>e*t),tq=M0((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),qf=nn(Gi,L0,tq),nq={kernelName:Gi,backendName:"cpu",kernelFunc:qf};function $C(e,t,n){let a=v.createScalarValue(-1,n);return L0([],t,a,e,n)}function aq(e){let{inputs:t,backend:n}=e,{x:a}=t;ge(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=$C(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var rq={kernelName:du,backendName:"cpu",kernelFunc:aq},FC=Vt((e,t)=>e!==t?1:0),sq=nn(hu,FC,null,"bool"),iq={kernelName:hu,backendName:"cpu",kernelFunc:sq};function z0(e,t,n,a,r){let s=t.length,i=v.sizeFromShape(t),o=v.computeStrides(t),l=v.computeStrides(r),u=v.getTypedArrayFromDType(n,v.sizeFromShape(r));for(let p=0;pn.disposeIntermediateTensorInfo(b)),n.makeTensorInfo(y,g,m)}var uq={kernelName:Xi,backendName:"cpu",kernelFunc:lq};function pq(e,t,n){e.forEach((a,r)=>{if(a<0||a>=n){let s=v.indexToLoc(r,t.length,v.computeStrides(t)).join(",");throw new Error(`indices[${s}] = ${a} is not in [0, ${n})`)}})}function cq(e,t){for(let n=0;nr)throw new Error("Ragged splits must not point past values");for(let s=1;sa[s])throw new Error("Ragged splits must be sorted in ascending order")}}function dq(e,t,n,a){let r=[],s=0,i=t.length-1+n.length,o=new Array(i).fill(null).map(()=>[0]);cq(n,a);let l=1;for(let u=0;u=0){let f=o[m],g=f[f.length-1]-h[p];for(let y=p;yr[i]=s)}return t}function iI(e,t){let n=e.slice(0,t);for(;n.length1)throw new Error("starts must be a scalar or vector");if(r.length>1)throw new Error("limits must be a scalar or vector");if(i.length>1)throw new Error("deltas must be a scalar or vector");let o=t.length===0,l=r.length===0,u=i.length===0,p=[];o||p.push(t[0]),l||p.push(r[0]),u||p.push(i[0]);for(let g=1;g0&&by)w=0;else if(w=Math.ceil(Math.abs((b-y)/x)),w>oI)throw new Error(`Requires ((limit - start) / delta) <= ${oI}`);c[g+1]=c[g]+w}let h=c[d],m=v.getArrayFromDType(n,h),f=0;for(let g=0;gn&&(n=r)}return n}static getMaxWidthValueRowID(e){let t=e.length;if(t===0)return 0;let n=0,a=e[0],r=0;for(let s=1;s"Final length of result must be equal to firstDimension."),r}calculateOutputIndexRowSplit(e,t,n,a){let r=e.length,s=[];for(let i=0;i0&&s.length!==e[r-1])throw new Error("Invalid row split size.");return s}calculateOutputIndexValueRowID(e,t,n,a){let r=e.length,s=[];if(r===0)return[];let i=0,o=e[0];if(o>=t.length)throw new Error(`Got currentValueRowId=${o}, which is not less than ${t.length}`);let l=t[o];s.push(l);for(let u=1;u=0&&(++i,i=t.length)throw new Error(`Got nextValueRowId=${p} which is not less than ${t.length}`);l=t[p]}s.push(l)}if(s.length!==e.length)throw new Error("Invalid row ids.");return s}calculateOutputIndex(e,t,n,a){let r=this.getRowPartitionTensor(e),s=this.getRowPartitionTypeByDimension(e);switch(s){case Ta.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(r,t,n,a);case Ta.ROW_SPLITS:if(r.length-1>t.length)throw new Error(`Row partition size is greater than output size: ${r.length-1} > ${t.length}`);return this.calculateOutputIndexRowSplit(r,t,n,a);default:throw new Error(`Unsupported partition type: ${Ta[s]}`)}}getFirstDimensionSize(){let e=this.rowPartitionValues[0];if(this.rowPartitionTypes.length===0)throw new Error("No row_partition_types given.");let t=this.rowPartitionTypes[0];switch(t){case Ta.FIRST_DIM_SIZE:return e[0];case Ta.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Ta.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Ta[t]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error("Invalid first partition input. Tensor requires at least one element.");let e=this.getFirstDimensionSize(),t=this.calculateOutputSize(e),n=new Array(this.raggedRank+1);n[n.length-1]=1;for(let s=n.length-2;s>=0;--s)n[s]=n[s+1]*t[s+1];let a=uI(t,!1),r=v.getArrayFromDType(this.valuesDType,v.sizeFromShape(a));if(n[0]*t[0]>0){let s=this.calculateFirstParentOutputIndex(e,n[0],t[0]);for(let i=1;i<=this.raggedRank;++i)s=this.calculateOutputIndex(i-1,s,n[i],t[i]);this.setOutput(this.raggedRank,s,r,a)}return[a,r]}setOutput(e,t,n,a){if(n.length===0)return;let r=this.values,s=n,i=a.slice();i=i.slice(e+1);let o=v.sizeFromShape(i),l=t.length,u=this.defaultValue;if(u.length!==o&&u.length!==1){let h=this.defaultValueShape;P(()=>{let m=W(u,h);u=Xs(m,i).dataSync()})}let p=0,d=0,c=0;for(let h=0;h<=l;++h){let m=h=l){let f=n.length;m=Math.floor(f/o)}if(m>c)if(this.defaultValue.length===1)s.subarray(c*o,m*o).fill(this.defaultValue[0]),c=m;else for(;m>c;){let f=s.slice(c*o);lI(f,u,o),++c}m<0?(p=h+1,d=c):(p=h,d=c,c=d+1)}}};function lI(e,t,n){for(let a=0;a= 0`);if(a<-1)throw new Error(`Dimension ${a} must be >= -1`);a=-1}n.push(a)}return n}function PC(e,t,n,a,r,s,i,o,l,u){return new cx(e,t,n,a,r,s,i,o,l,u).compute()}function W0(e,t,n,a){let r=e===t,s=e1;if(r||s||i)return v.makeZerosTypedArray(0,a);let o=Math.abs(Math.ceil((t-e)/n)),l=v.makeZerosTypedArray(o,a);t1/Math.sqrt(e)),gq=Ku(no,OC),yq={kernelName:no,backendName:"cpu",kernelFunc:gq};function ll(e,t,n,a,r,s,i,o,l,u){let p=[a/r,r],d=e.values,c=t.values;if(a===0)return Oe(n,t.dtype);let h=Oe(p,t.dtype);typeof l=="string"||typeof l=="number"?h.values.fill(l):typeof l=="boolean"&&h.values.fill(+l);for(let m=0;m=a/r)throw new Error(`Invalid indices: ${f} does not index into ${n}`);for(let y=0;y1/(1+Math.exp(-e))),LC=rt(ro,e=>1/(1+Math.exp(-e))),xq={kernelName:ro,backendName:"cpu",kernelFunc:LC};function Jh(e,t,n,a,r){let s=jt.isSliceContinous(a,t,n),i=v.sizeFromShape(n),o=v.computeStrides(a);if(s){let d=jt.computeFlatOffset(t,o);return r==="string"?e.slice(d,d+i):e.subarray(d,d+i)}let l=r==="string"?N.fromUint8ToStringArray(e):e,u=Oe(a,r,l),p=Oe(n,r);for(let d=0;dm+t[f]);p.set(u.get(...h),...c)}return r==="string"?N.fromStringArrayToUint8(p.values):p.values}function pi(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a;ge(r,"slice");let[o,l]=jt.parseSliceParams(r,s,i);jt.assertParamsValid(r,o,l);let u=n.data.get(r.dataId).values,p=Jh(u,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,p)}var vq={kernelName:Su,backendName:"cpu",kernelFunc:pi};function zC(e,t,n,a,r,s,i){let o=t[0],l=s[0],u=new Array(l),p=new Array(o),d=t[1];if(l===0){if(o!==0)throw new Error(N.getSparseFillEmptyRowsIndicesDenseShapeMismatch(o));let g=v.getArrayFromDType(n,0),y=v.getArrayFromDType(r,0);return[g,[0,d],y,u,p]}let c=!0,h=0,m=new Array(l).fill(0);for(let g=0;g=l)throw new Error(N.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,y,l));++m[y],c=c&&y>=h,h=y}let f=!0;for(let g=0;g0&&(m[g]+=m[g-1])}if(f&&c){let g=e,y=a;for(let b=0;b0){c[d-1]=1;for(let f=d-2;f>=0;--f)c[f]=c[f+1]*a[f+1]}let h=[];if(o>0){h[o-1]=1;for(let f=o-2;f>=0;--f)h[f]=h[f+1]*l[f+1]}let m=v.getArrayFromDType(n,i*o);for(let f=0;f0?r[o-1]+1:0;if(p<0)throw new Error(N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let d=t.slice();d[0]=p;let c=d.reduce((b,x)=>b*x,1),h=v.getArrayFromDType(n,c);if(o===0)return p>0&&h.fill(i),[h,d];if(p<=0)throw new Error(N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=0,f=1,g=0,y=r[m];for(;;){let b=0;if(f=b)throw new Error(N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(y<0||y>=p)throw new Error(N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(y,p));y>g&&h.fill(i,g*u,y*u);for(let x=m;x=l[0])throw new Error(N.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(x,a[x],l[0]));for(let I=0;Io)break}return gMath.sqrt(e)),kq=rt(so,e=>Math.sqrt(e)),Iq={kernelName:so,backendName:"cpu",kernelFunc:kq},BC=Vt((e,t)=>{let n=e-t;return n*n}),Sq=nn(lo,BC),Tq={kernelName:lo,backendName:"cpu",kernelFunc:Sq};function VC(e,t,n,a){let r=Oe(e,t.dtype);for(let s=0;s0?0:i-o),c=0;c+=l*this.leftPad.length;for(let g=0;gg.forEach(y=>h[m++]=y);for(let g=0;g0){f(e[d+p-1]);for(let g=0;g0){let o=t[0];if(o!==0)throw new Error(`First split value must be 0, got ${o}`);for(let l=1;l=o;if(u=u&&t[l]<=n,!u)throw new Error(`Invalid split value ${t[l]}, must be in [${o}, ${n}]`);o=t[l]}if(o!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${o}`)}let r=a-1,s=v.getArrayFromDType("int32",a);if(n===0||a===0){let o=new Array(n);for(let l=0;l<=r;++l)s[l]=0;return[o,s]}s[0]=0;for(let o=1;o<=r;++o){let l=t[o]-t[o-1],u=0;this.nGramWidths.forEach(p=>{u+=this.getNumNGrams(l,p)}),this.preserveShort&&l>0&&u===0&&(u=1),s[o]=s[o-1]+u}let i=new Array(s[r]);for(let o=0;o{let d=t[o+1]-t[o],c=this.getNumNGrams(d,p);this.createNGrams(e,l,i,u,c,p),u+=c}),this.preserveShort&&u===s[o]){let p=t[o+1]-t[o];if(p===0)continue;let d=p+2*this.padWidth,c=1;this.createNGrams(e,l,i,u,c,d)}}return[i,s]}};function V0(e,t,n,a,r,s,i,o){return new Nq(n,a,r,s,i,o).compute(e,t)}function Cq(e,t,n,a){if(!e.length)return;if(t.length===0){for(let s=0;se-t),_q=M0((e,t,n,a)=>({real:e-n,imag:t-a})),H0=nn(uo,UC,_q),Eq={kernelName:uo,backendName:"cpu",kernelFunc:H0};function GC(e,t){let n=new Array(e.rank);for(let r=0;r{let n=t.value-e.value;return n===0?e.index-t.index:n};function HC(e,t,n=0,a=e.length-1){for(;a>n;){if(a-n>600){let o=a-n+1,l=t-n+1,u=Math.log(o),p=.5*Math.exp(2*u/3),d=.5*Math.sqrt(u*p*(o-p)/o)*Math.sign(l-o/2),c=Math.max(n,Math.floor(t-l*p/o+d)),h=Math.min(a,Math.floor(t+(o-l)*p/o+d));HC(e,t,c,h)}let r=e[t],s=n,i=a;for(v.swap(e,n,t),Op(e[a],r)>0&&v.swap(e,n,a);s0;)i=i-1}Op(e[n],r)===0?v.swap(e,n,i):(i=i+1,v.swap(e,i,a)),i<=t&&(n=i+1),t<=i&&(a=i-1)}}function jC(e,t,n,a,r){let s=t[t.length-1],[i,o]=[e.length/s,s],l=v.getTypedArrayFromDType(n,i*a),u=v.getTypedArrayFromDType("int32",i*a);for(let d=0;dm[x]={value:b,index:x}),a{for(let g=0;gnew R0,1);var KC=rt(_i,e=>e>=0?e:Math.exp(e)-1),Aq={kernelName:_i,backendName:"cpu",kernelFunc:KC};function XC(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a;ge([r],"leakyRelu");let i=v.sizeFromShape(r.shape),o=n.data.get(r.dataId).values,l=v.getTypedArrayFromDType("float32",i);for(let u=0;ue<0?t*e:e);function YC(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t;ge([a,r],"prelu");let s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,[o,l]=Fq(a.shape,r.shape,s,i,"float32");return n.makeTensorInfo(l,"float32",o)}var Dq={kernelName:Ki,backendName:"cpu",kernelFunc:YC},ZC=rt(Yi,e=>Math.max(0,e)),Rq={kernelName:Yi,backendName:"cpu",kernelFunc:ZC},JC=rt(Qi,e=>Math.min(Math.max(0,e),6)),Mq={kernelName:Qi,backendName:"cpu",kernelFunc:JC};function Qh(e,t,n,a,r){if(n==="linear")return pr({inputs:{x:t},backend:e});if(n==="relu")return ZC({inputs:{x:t},backend:e});if(n==="elu")return KC({inputs:{x:t},backend:e});if(n==="relu6")return JC({inputs:{x:t},backend:e});if(n==="prelu")return YC({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return XC({inputs:{x:t},backend:e,attrs:{alpha:r}});if(n==="sigmoid")return LC({inputs:{x:t},backend:e});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function ft(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=v.sizeFromShape(r.shape),o=v.inferFromImplicitShape(s,i),l=v.sizeFromShape(o);v.assert(i===l,()=>`The new shape (${o}) has ${l} elements and the old shape (${r.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),n.incRef(r.dataId);let u=n.data.get(r.dataId);if(u.complexTensorInfos!=null){let p=u.complexTensorInfos.real,d=u.complexTensorInfos.imag;p.shape=o,d.shape=o}return{dataId:r.dataId,shape:o,dtype:r.dtype}}var Pq={kernelName:vu,backendName:"cpu",kernelFunc:ft};function QC(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;ge([r,s],"matMul");let l=r.shape.length,u=s.shape.length,p=i?r.shape[l-2]:r.shape[l-1],d=o?s.shape[u-1]:s.shape[u-2],c=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[u-2]:s.shape[u-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=v.sizeFromShape(m),y=v.sizeFromShape(f),b=Ou.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);v.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,p,c]:[g,c,p],w=o?[y,h,d]:[y,d,h],I=ft({inputs:{x:r},backend:n,attrs:{shape:x}}),T=ft({inputs:{x:s},backend:n,attrs:{shape:w}}),C=i?I.shape[1]:I.shape[2],E=i?I.shape[2]:I.shape[1],A=o?T.shape[1]:T.shape[2],R=Math.max(g,y),F=n.data.get(I.dataId).values,S=n.data.get(T.dataId).values,M=v.computeStrides(I.shape),B=v.computeStrides(T.shape),[U,G,q]=i?[M[0],1,M[1]]:[M[0],M[1],1],[K,Z,Q]=o?[1,B[1],B[0]]:[B[1],1,B[0]],ee=E*A,ae=Oe([R,E,A],I.dtype),te=ae.values,le=n.blockSize;for(let ie=0;ieMath.acos(e)),Bq={kernelName:Rl,backendName:"cpu",kernelFunc:Wq},Vq=rt(Ml,e=>Math.acosh(e)),Uq={kernelName:Ml,backendName:"cpu",kernelFunc:Vq};function Gq(e){let{inputs:t,backend:n}=e,a=t;ge(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=Oe(a[0].shape,a[0].dtype),i=s.values;for(let o=0;ob&&(b=I,x=w)}h[g]=x}return u.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var Zq={kernelName:gi,backendName:"cpu",kernelFunc:Yq};function Jq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a;ge(r,"argMin");let i=v.parseAxisParam(s,r.shape),o=N.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Vn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=N.getInnerMostAxes(i.length,l.shape.length)),i=[i[0]],N.assertAxesAreInnerMostDims("argMin",i,l.shape.length);let[p,d]=N.computeOutAndReduceShapes(l.shape,i),c=v.sizeFromShape(p),h=v.makeZerosTypedArray(c,"int32"),m=v.sizeFromShape(d),f=n.data.get(l.dataId).values;for(let g=0;gn.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var Qq={kernelName:cc,backendName:"cpu",kernelFunc:Jq},e5=rt(Ll,e=>Math.asin(e)),t5={kernelName:Ll,backendName:"cpu",kernelFunc:e5},n5=rt(zl,e=>Math.asinh(e)),a5={kernelName:zl,backendName:"cpu",kernelFunc:n5},r5=rt(Wl,e=>Math.atan(e)),s5={kernelName:Wl,backendName:"cpu",kernelFunc:r5},i5=Vt((e,t)=>Math.atan2(e,t)),o5=nn(Vl,i5),l5={kernelName:Vl,backendName:"cpu",kernelFunc:o5},u5=rt(Bl,e=>Math.atanh(e)),p5={kernelName:Bl,backendName:"cpu",kernelFunc:u5};function j0(e,t,n,a,r,s){let i=r.strideHeight,o=r.strideWidth,l=r.dilationHeight,u=r.dilationWidth,p=r.effectiveFilterHeight,d=r.effectiveFilterWidth,c=r.padInfo.top,h=r.padInfo.left,m=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,f=Oe(r.outShape,n),g=f.values,y=r.outShape[1]*r.outShape[2]*r.outShape[3],b=r.outShape[2]*r.outShape[3],x=r.outShape[3];for(let w=0;wq?q=ie:s==="avg"&&(K+=ie,Z++)}if(isNaN(q))break}let Q=S+M*x+C;g[Q]=s==="avg"?K/Z:q}}}return f}function e_(e,t,n,a,r=!1,s=!1){let i=Oe(a.outShape,"int32"),o=a.strideHeight,l=a.strideWidth,u=a.dilationHeight,p=a.dilationWidth,d=a.effectiveFilterHeight,c=a.effectiveFilterWidth,h=a.padInfo.top,m=a.padInfo.left,f=Oe(t,n,e);for(let g=0;gR&&(R=G,r?F=s?((g*a.inHeight+S)*a.inWidth+B)*a.inChannels+y:(S*a.inWidth+B)*a.inChannels+y:F=M*c+U)}}i.set(F,g,b,T,y)}}return i}function t_(e,t,n,a,r,s){let i=r.strideDepth,o=r.strideHeight,l=r.strideWidth,u=r.dilationDepth,p=r.dilationHeight,d=r.dilationWidth,c=r.effectiveFilterDepth,h=r.effectiveFilterHeight,m=r.effectiveFilterWidth,f=r.padInfo.front,g=r.padInfo.top,y=r.padInfo.left,b=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,x=Oe(r.outShape,n),w=x.values,I=r.outShape[1]*r.outShape[2]*r.outShape[3]*r.outShape[4],T=r.outShape[2]*r.outShape[3]*r.outShape[4],C=r.outShape[3]*r.outShape[4],E=r.outShape[4];for(let A=0;Axe?xe=dt:s==="avg"&&(Ie+=dt,Se++),isNaN(xe))break}if(isNaN(xe))break}if(isNaN(xe))break}let Le=ue+S;w[Le]=s==="avg"?Ie/Se:xe}}}}return x}function c5(e,t){let n=Oe(t.outShape,"int32"),a=t.strideDepth,r=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,u=t.effectiveFilterDepth,p=t.effectiveFilterHeight,d=t.effectiveFilterWidth,c=t.padInfo.front,h=t.padInfo.top,m=t.padInfo.left;for(let f=0;f=M&&(M=ee,B=G*p*d+K*p+Q)}}}n.set(B,f,y,I,A,g)}}}return n}function d5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;ge(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;v.assert(N.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=N.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))d=pr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=v.computeStrides(r.shape),m=j0(c,r.shape,r.dtype,h,p,"avg");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var h5={kernelName:yi,backendName:"cpu",kernelFunc:d5};function m5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ge(r,"avgPool3d");let p=N.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=t_(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"avg");return n.makeTensorInfo(c.shape,"float32",c.values)}var f5={kernelName:dc,backendName:"cpu",kernelFunc:m5};function g5(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ge([r,s],"avgPool3DGrad");let p=N.computePool3DInfo(s.shape,i,o,1,l,u),d=p.strideDepth,c=p.strideHeight,h=p.strideWidth,m=p.filterDepth,f=p.filterHeight,g=p.filterWidth,y=p.dilationDepth,b=p.dilationHeight,x=p.dilationWidth,w=p.effectiveFilterDepth,I=p.effectiveFilterHeight,T=p.effectiveFilterWidth,C=w-1-p.padInfo.front,E=T-1-p.padInfo.left,A=I-1-p.padInfo.top,R=Oe(s.shape,"float32"),F=1/(m*f*g),S=n.bufferSync(r);for(let M=0;M=p.outDepth||Math.floor(te)!==te))for(let le=0;le=p.outHeight||Math.floor(ie)!==ie))for(let ye=0;ye=p.outWidth||Math.floor(ue)!==ue||(ee+=S.get(M,te,ie,ue,B))}}}R.set(ee*F,M,U,G,q,B)}return n.makeTensorInfo(R.shape,R.dtype,R.values)}var y5={kernelName:cm,backendName:"cpu",kernelFunc:g5};function b5(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;ge([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=N.computePool2DInfo(i.shape,o,l,1,u),d=p.strideHeight,c=p.strideWidth,h=p.filterHeight,m=p.filterWidth,f=p.dilationHeight,g=p.dilationWidth,y=p.effectiveFilterHeight,b=p.effectiveFilterWidth,x=b-1-p.padInfo.left,w=y-1-p.padInfo.top,I=Oe(i.shape,"float32"),T=1/(h*m),C=n.data.get(r.dataId).values,E=Oe(r.shape,"float32",C);for(let A=0;A=p.outHeight||Math.floor(q)!==q))for(let K=0;K=p.outWidth||Math.floor(Z)!==Z||(U+=E.get(A,q,Z,R))}}I.set(U*T,A,F,S,R)}return n.makeTensorInfo(I.shape,I.dtype,I.values)}var x5={kernelName:pm,backendName:"cpu",kernelFunc:b5};function v5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,scale:s,offset:i,mean:o,variance:l}=t;v.assert(o.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),v.assert(i==null||o.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),v.assert(s==null||o.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),ge([r,o,l,s,i],"batchNorm");let{varianceEpsilon:u}=a;u==null&&(u=.001);let p=n.data.get(r.dataId).values,d=n.data.get(o.dataId).values,c=n.data.get(l.dataId).values,h=s?n.data.get(s.dataId).values:new Float32Array([1]),m=i?n.data.get(i.dataId).values:new Float32Array([0]),f=new Float32Array(p.length),g=m.length,y=h.length,b=c.length,x=d.length,w=0,I=0,T=0,C=0;for(let E=0;E=g&&(w=0),I>=x&&(I=0),T>=y&&(T=0),C>=b&&(C=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var w5={kernelName:Fi,backendName:"cpu",kernelFunc:v5};function k5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;ge([r],"batchToSpaceND");let o=s.reduce((y,b)=>y*b),l=N.getReshaped(r.shape,s,o),u=N.getPermuted(l.length,s.length),p=N.getReshapedPermuted(r.shape,s,o),d=N.getSliceBeginCoords(i,s.length),c=N.getSliceSize(p,i,s.length),h=ft({inputs:{x:r},backend:n,attrs:{shape:l}}),m=Vn({inputs:{x:h},backend:n,attrs:{perm:u}}),f=ft({inputs:{x:m},backend:n,attrs:{shape:p}}),g=pi({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var I5={kernelName:Ul,backendName:"cpu",kernelFunc:k5};function S5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,u=P0(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var T5={kernelName:dm,backendName:"cpu",kernelFunc:S5};function N5(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=N.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var C5={kernelName:hm,backendName:"cpu",kernelFunc:N5},_5=rt(ys,(e,t)=>{let n=t;return e>n.clipValueMax?n.clipValueMax:e{let{x:t}=e.inputs,n=e.backend,a=new Float32Array(v.sizeFromShape(t.shape)),r=n.data.get(t.dataId),s=r.complexTensorInfos.real,i=r.complexTensorInfos.imag,o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values;for(let u=0;uf.shape);N.assertParamsConsistent(i,s);let o=N.computeOutShape(t.map(f=>f.shape),s);if(v.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(f=>v.sizeFromShape(f.shape)>0);if(l.length===1)return pr({inputs:{x:l[0]},backend:n});if(l[0].dtype==="complex64"){let f=l.map(w=>ui({inputs:{input:w},backend:n})),g=l.map(w=>El({inputs:{input:w},backend:n})),y=Al({inputs:f,backend:n,attrs:{axis:s}}),b=Al({inputs:g,backend:n,attrs:{axis:s}}),x=Zn({inputs:{real:y,imag:b},backend:n});return f.forEach(w=>n.disposeIntermediateTensorInfo(w)),g.forEach(w=>n.disposeIntermediateTensorInfo(w)),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(b),x}let u=l.map(f=>{let g=v.sizeFromShape(f.shape.slice(s));return ft({inputs:{x:f},backend:n,attrs:{shape:[-1,g]}})}),p=u.map(f=>({vals:n.data.get(f.dataId).values,shape:f.shape}));o=N.computeOutShape(u.map(f=>f.shape),1);let d=u[0].shape[0]===1,c=O0(p,o,t[0].dtype,d),h=N.computeOutShape(l.map(f=>f.shape),s),m=n.makeTensorInfo(h,t[0].dtype,c);return u.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var D5={kernelName:Gl,backendName:"cpu",kernelFunc:Al};function n_(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:p}=a;ge([r,s],"conv2d");let d=N.convertConv2DDataFormat(l),c=N.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h=c.filterHeight,m=c.filterWidth,f=c.dilationHeight,g=c.dilationWidth,y=c.padInfo.left,b=c.padInfo.top,x=c.dataFormat==="channelsLast",w=new Ht(c.outShape,r.dtype),I=v.computeStrides(r.shape),T=v.computeStrides(s.shape),C=I[0],E=x?I[1]:I[2],A=x?I[2]:1,R=x?1:I[1],F=w.strides[0],S=x?w.strides[1]:w.strides[2],M=x?w.strides[2]:1,B=x?1:w.strides[1],U=n.data.get(r.dataId).values,G=n.data.get(s.dataId).values,q=w.values;for(let K=0;K=c.inHeight)continue;let ye=le*T[0],ue=Z+ie*E;for(let xe=0;xe=c.inWidth)continue;let nt=ye+Le*T[1],it=ue+Ve*A,et=nt;for(let at=0;at=u.inDepth)continue;let K=G*A[0],Z=F+q*E[1];for(let Q=0;Q=u.inHeight)continue;let ie=K+te*A[1],ye=Z+le*E[2];for(let ue=0;ue=u.inWidth)continue;let Ve=ie+Se*A[2],nt=ye+Le*u.inChannels,it=Ve;for(let et=0;etMath.cos(e)),j5={kernelName:Ii,backendName:"cpu",kernelFunc:H5},q5=rt(Si,e=>Math.cosh(e)),K5={kernelName:Si,backendName:"cpu",kernelFunc:q5};function X5(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,[p,d,c,h]=r.shape,m=s.shape[0],[f,g]=o,y=Oe([m,f,g,h],"float32"),b=n.data.get(s.dataId).values,x=n.data.get(i.dataId).values,w=n.data.get(r.dataId).values,I=v.computeStrides(r.shape),T=v.computeStrides(y.shape);for(let C=0;C=p)continue;let B=f>1?(F-A)*(d-1)/(f-1):0,U=g>1?(S-R)*(c-1)/(g-1):0;for(let G=0;G1?A*(d-1)+G*B:.5*(A+F)*(d-1);if(q<0||q>d-1){for(let K=0;K1?R*(c-1)+ee*U:.5*(R+S)*(c-1);if(ae<0||ae>c-1){for(let ye=0;ye1?R*(c-1)+K*U:.5*(R+S)*(c-1);if(Z<0||Z>c-1){for(let ae=0;aey+m-b-1:(y,b)=>y+b;for(let y=0;yy+m-b-1:(y,b)=>y+b;for(let y=0;y`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`);let o=r.shape[0],l=r.shape[1],u=r.shape[2],p=r.shape[3],d=l*s,c=u*s,h=p/(s*s),m=n.data.get(r.dataId).values,f=new Float32Array(o*d*c*h),g=0;for(let y=0;y`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let h=N.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!0),{filterHeight:m,filterWidth:f,dilationHeight:g,dilationWidth:y,padInfo:b}=h,x=b.left,w=b.top,I=h.outChannels/h.inChannels,T=new Ht(h.outShape,r.dtype),C=n.data.get(r.dataId).values,E=n.data.get(s.dataId).values,A=T.values;for(let R=0;R=h.inHeight)continue;let K=G*d[0],Z=F+q*p[1];for(let Q=0;Q=h.inWidth)continue;let ie=K+te*d[1],ye=Z+le*h.inChannels,ue=ee,xe=ie;for(let Ie=0;Ie{let{x:a,filter:r}=e,{strides:s,pad:i,dilations:o}=n,l=t,u=l.data.get(a.dataId).values,p=a.shape.length,d=l.data.get(r.dataId).values,c=r.shape.length,{batchSize:h,inHeight:m,inWidth:f,inChannels:g,outHeight:y,outWidth:b,padInfo:x,strideHeight:w,strideWidth:I,filterHeight:T,filterWidth:C,dilationHeight:E,dilationWidth:A,outShape:R}=N.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),F=v.sizeFromShape(R),S=R.length,M=v.getArrayFromDType(a.dtype,F);for(let B=0;B=0&&te=0&&ieQ&&(Q=xe)}}}let ee=v.locToIndex([B,U,q,Z],S,v.computeStrides(R));M[ee]=Q}}}return{dataId:l.write(v.toTypedArray(M,a.dtype),R,a.dtype),shape:R,dtype:a.dtype}}},h8={kernelName:$h,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,p=v.toNestedArray(a.shape,u.data.get(a.dataId).values),d=v.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:x,strideWidth:w,filterHeight:I,filterWidth:T,dilationHeight:C,dilationWidth:E,outShape:A}=N.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);v.assert(s.rank===A.length,()=>`Error in ${$h}, dy must have the same rank as output ${A.length}, but got ${s.rank}`);let R=v.toNestedArray(A,u.data.get(s.dataId).values),F=v.makeZerosNestedTypedArray(r.shape,r.dtype);for(let S=0;S=0&&ae=0&&leK&&(K=ie,Z=ee,Q=te)}}}F[Z][Q][q]+=R[S][M][U][q]}}}return{dataId:u.write(v.toTypedArray(F,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},m8={kernelName:Ah,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,p=v.toNestedArray(a.shape,u.data.get(a.dataId).values),d=v.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:x,strideWidth:w,filterHeight:I,filterWidth:T,dilationHeight:C,dilationWidth:E,outShape:A}=N.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);v.assert(s.rank===A.length,()=>`Error in ${Ah}, dy must have the same rank as output ${A.length}, but got ${s.rank}`);let R=v.toNestedArray(A,u.data.get(s.dataId).values),F=v.makeZerosNestedTypedArray(a.shape,a.dtype);for(let S=0;S=0&&ae=0&&leK&&(K=ie,Z=ae,Q=le)}}}F[S][Z][Q][q]+=R[S][M][U][q]}}}return{dataId:u.write(v.toTypedArray(F,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function sd(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"sum");let o;r.dtype==="bool"?o=ds({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=pr({inputs:{x:r},backend:n});let l=o.shape.length,u=v.parseAxisParam(s,o.shape),p=N.getAxesPermutation(u,l),d=u,c=o;p!=null&&(c=Vn({inputs:{x:o},backend:n,attrs:{perm:p}}),d=N.getInnerMostAxes(d.length,l)),N.assertAxesAreInnerMostDims("sum",d,c.shape.length);let[h,m]=N.computeOutAndReduceShapes(c.shape,d),f=N.upcastType(c.dtype,"int32"),g=Zh(n,h,f),y=v.sizeFromShape(m),b=n.data.get(g.dataId).values,x=n.data.get(c.dataId).values;for(let w=0;w=0&&(c=sd({inputs:{x:c},backend:n,attrs:{axis:u[f]-(i.length-h),keepDims:!1}}),m.push(c)),h--)}for(let f of m)f!==c&&n.disposeIntermediateTensorInfo(f);return c}var y8={kernelName:km,backendName:"cpu",kernelFunc:g8};function b8(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t;ge([a,r],"eluGrad");let s=new Float32Array(v.sizeFromShape(r.shape)),i=n.data.get(r.dataId).values,o=n.data.get(a.dataId).values;for(let l=0;l=1?s[l]=o[l]:s[l]=o[l]*(u+1)}return n.makeTensorInfo(r.shape,"float32",s)}var x8={kernelName:Im,backendName:"cpu",kernelFunc:b8},v8=N.ERF_P,w8=N.ERF_A1,k8=N.ERF_A2,I8=N.ERF_A3,S8=N.ERF_A4,T8=N.ERF_A5,N8=rt(Kl,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+v8*n);return t*(1-((((T8*a+S8)*a+I8)*a+k8)*a+w8)*a*Math.exp(-n*n))}),C8={kernelName:Kl,backendName:"cpu",kernelFunc:N8};function em(e){let{inputs:t,backend:n,attrs:a}=e,{input:r}=t,{dim:s}=a,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(v.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),ft({inputs:{x:r},backend:n,attrs:{shape:o}})}var _8={kernelName:Yl,backendName:"cpu",kernelFunc:em},E8=Vt((e,t)=>e/t),q0=nn(Ci,E8),dx={kernelName:Ci,backendName:"cpu",kernelFunc:q0};function r_(e,t,n){let a=e.shape,r=a[0],s=a[1],i=n.data.get(e.dataId),o=i.complexTensorInfos.real,l=i.complexTensorInfos.imag,u=[r,s],p=v.sizeFromShape(u),d=v.getTypedArrayFromDType("float32",p),c=v.getTypedArrayFromDType("float32",p);for(let g=0;g{let{image:a}=e,r=n,s=v.getTypedArrayFromDType(a.dtype,v.sizeFromShape(a.shape)),[i,o,l,u]=a.shape,p=r.data.get(a.dataId).values;for(let d=0;d=0&&bMath.floor(e/t)),z8=nn($i,L8,null,"int32"),W8={kernelName:$i,backendName:"cpu",kernelFunc:z8};function B8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=n_({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c}});if(i){let g=f;if(p==="NCHW"&&i.shape.length===1&&i.shape[0]!==1){let y=ft({inputs:{x:i},backend:n,attrs:{shape:[i.shape[0],1,1]}});f=_l({inputs:{a:f,b:y},backend:n}),n.disposeIntermediateTensorInfo(y)}else f=_l({inputs:{a:f,b:i},backend:n});n.disposeIntermediateTensorInfo(g)}if(h){let g=f;if(p==="NCHW"&&h==="prelu"&&o.shape.length===1&&o.shape[0]!==1){let y=ft({inputs:{x:o},backend:n,attrs:{shape:[o.shape[0],1,1]}});f=Qh(n,f,h,y,m),n.disposeIntermediateTensorInfo(y)}else f=Qh(n,f,h,o,m);n.disposeIntermediateTensorInfo(g)}return f}var V8={kernelName:ei,backendName:"cpu",kernelFunc:B8};function U8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=a_({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c}});if(i){let g=f;f=_l({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=Qh(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var G8={kernelName:ti,backendName:"cpu",kernelFunc:U8};function H8(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=v.sizeFromShape(a.shape),i=r.shape,o=i[i.length-1],[l,u,p,d]=N.prepareAndValidate(a,r);if(u===0)return n.makeTensorInfo(l,a.dtype,[]);let c=n.data.get(r.dataId).values,h=n.bufferSync(a),m=vC(c,h,a.dtype,u,o,p,d,a.shape,s);return n.makeTensorInfo(l,a.dtype,m.values)}var j8={kernelName:eu,backendName:"cpu",kernelFunc:H8};function q8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,indices:s}=t,{axis:i,batchDims:o}=a;ge([r,s],"gatherV2");let l=v.parseAxisParam(i,r.shape)[0],u=n.data.get(s.dataId).values,p=r.shape[l];for(let w=0;w=0,()=>`GatherV2: the index value ${I} is not in [0, ${p-1}]`)}let d=o;o==null&&(d=0);let c=v.sizeFromShape(s.shape),h=N.segment_util.collectGatherOpShapeInfo(r,s,l,d),m=ft({inputs:{x:r},backend:n,attrs:{shape:[h.batchSize,h.outerSize,h.dimSize,h.sliceSize]}}),f=ft({inputs:{x:s},backend:n,attrs:{shape:[h.batchSize,c/h.batchSize]}}),g=[h.batchSize,h.outerSize,c/h.batchSize,h.sliceSize],y=n.bufferSync(f),b=n.bufferSync(m),x=wC(b,y,g);return n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),n.makeTensorInfo(h.outputShape,x.dtype,x.values)}var K8={kernelName:Ql,backendName:"cpu",kernelFunc:q8};function X8(e){let{inputs:t,backend:n}=e,{input:a}=t,r=v.sizeFromShape(a.shape),s=a.shape[a.shape.length-1],i=r/s,o=ft({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=r_(o,!0,n),u=ft({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),u}var Y8={kernelName:Tm,backendName:"cpu",kernelFunc:X8},Z8=rt(nu,e=>Number.isFinite(e)?1:0,"bool"),J8={kernelName:nu,backendName:"cpu",kernelFunc:Z8},Q8=rt(au,e=>Math.abs(e)===1/0?1:0,"bool"),eK={kernelName:au,backendName:"cpu",kernelFunc:Q8},tK=rt(ru,e=>Number.isNaN(e)?1:0,"bool"),nK={kernelName:ru,backendName:"cpu",kernelFunc:tK};function aK(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=NC(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var rK={kernelName:Cm,backendName:"cpu",kernelFunc:aK},sK=rt(ou,e=>Math.log1p(e)),iK={kernelName:ou,backendName:"cpu",kernelFunc:sK},oK=Vt((e,t)=>e&&t),lK=nn(lu,oK,null,"bool"),uK={kernelName:lu,backendName:"cpu",kernelFunc:lK},pK=rt(uu,e=>e?0:1,"bool"),cK={kernelName:uu,backendName:"cpu",kernelFunc:pK},dK=Vt((e,t)=>e||t),hK=nn(pu,dK,null,"bool"),mK={kernelName:pu,backendName:"cpu",kernelFunc:hK};function fK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;ge(r,"LRN");let u=r.shape[3],p=u-1,d=n.data.get(r.dataId).values,c=v.sizeFromShape(r.shape),h=new Float32Array(c);function m(f){let g=f%u,y=f-g+Math.max(0,g-s),b=f-g+Math.min(g+s,p),x=0;for(;y<=b;y++){let w=d[y];x+=w*w}return x}for(let f=0;f`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=N.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))d=pr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=v.computeStrides(r.shape),m=j0(c,r.shape,r.dtype,h,p,"max");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var wK={kernelName:zi,backendName:"cpu",kernelFunc:vK};function kK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ge(r,"maxPool3d");let p=N.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=t_(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"max");return n.makeTensorInfo(c.shape,"float32",c.values)}var IK={kernelName:bc,backendName:"cpu",kernelFunc:kK};function SK(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ge([r,s],"maxPool3DGrad");let p=N.computePool3DInfo(s.shape,i,o,1,l,u),d=n.bufferSync(s),c=c5(d,p),h=p.strideDepth,m=p.strideHeight,f=p.strideWidth,g=p.dilationDepth,y=p.dilationHeight,b=p.dilationWidth,x=p.effectiveFilterDepth,w=p.effectiveFilterHeight,I=p.effectiveFilterWidth,T=x-1-p.padInfo.front,C=I-1-p.padInfo.left,E=w-1-p.padInfo.top,A=Oe(s.shape,"float32"),R=n.bufferSync(r);for(let F=0;F=p.outDepth||Math.floor(ee)!==ee))for(let ae=0;ae=p.outHeight||Math.floor(te)!==te))for(let le=0;le=p.outWidth||Math.floor(ie)!==ie)continue;let ye=x*w*I-1-c.get(F,ee,te,ie,S),ue=Q*w*I+ae*I+le,xe=ye===ue?1:0;xe!==0&&(Z+=R.get(F,ee,te,ie,S)*xe)}}}A.set(Z,F,M,B,U,S)}return n.makeTensorInfo(A.shape,A.dtype,A.values)}var TK={kernelName:Am,backendName:"cpu",kernelFunc:SK};function NK(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;ge([s,i],"maxPoolGrad");let{filterSize:l,strides:u,pad:p,dimRoundingMode:d}=a,c=N.computePool2DInfo(o.shape,l,u,1,p,d),h=n.data.get(o.dataId).values,m=Oe(c.outShape,o.dtype,e_(h,o.shape,o.dtype,c).values),f=c.strideHeight,g=c.strideWidth,y=c.dilationHeight,b=c.dilationWidth,x=c.effectiveFilterHeight,w=c.effectiveFilterWidth,I=w-1-c.padInfo.left,T=x-1-c.padInfo.top,C=Oe(o.shape,"float32"),E=n.data.get(r.dataId).values,A=Oe(r.shape,"float32",E);for(let R=0;R=c.outHeight||Math.floor(K)!==K))for(let Z=0;Z=c.outWidth||Math.floor(Q)!==Q)continue;let ee=x*w-1-m.get(R,K,Q,F),ae=q*w+Z,te=ee===ae?1:0;te!==0&&(G+=A.get(R,K,Q,F)*te)}}C.set(G,R,S,M,F)}return n.makeTensorInfo(C.shape,C.dtype,C.values)}var CK={kernelName:Em,backendName:"cpu",kernelFunc:NK};function _K(e,t,n,a,r){let s=v.computeStrides(t),i=j0(e,t,n,s,r,"max"),o=e_(e,t,n,r,!0,a);return[i.values,o.values]}var EK={kernelName:$m,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;ge(a,"MaxPoolWithArgmax");let u=l.data.get(a.dataId).values,p=N.computePool2DInfo(a.shape,r,s,[1,1],i),[d,c]=_K(u,a.shape,a.dtype,o,p),h=l.write(d,p.outShape,a.dtype),m=l.write(c,p.outShape,a.dtype);return[{dataId:h,shape:p.outShape,dtype:a.dtype},{dataId:m,shape:p.outShape,dtype:"int32"}]}};function AK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=v.parseAxisParam(s,r.shape),l=N.computeOutAndReduceShapes(r.shape,o)[1],u=v.sizeFromShape(l),p=[],d=n.makeTensorInfo([],"float32",new Float32Array([u]));p.push(d);let c=ds({inputs:{x:r},backend:n,attrs:{dtype:"float32"}});p.push(c);let h=q0({inputs:{a:c,b:d},backend:n});p.push(h);let m=sd({inputs:{x:h},backend:n,attrs:{axis:s,keepDims:i}});return p.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var $K={kernelName:Wi,backendName:"cpu",kernelFunc:AK};function FK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"min");let o=v.parseAxisParam(s,r.shape),l=o,u=N.getAxesPermutation(l,r.shape.length),p=r;u!=null&&(p=Vn({inputs:{x:r},backend:n,attrs:{perm:u}}),l=N.getInnerMostAxes(l.length,r.shape.length)),N.assertAxesAreInnerMostDims("min",l,p.shape.length);let[d,c]=N.computeOutAndReduceShapes(p.shape,l),h=v.sizeFromShape(c),m=v.makeZerosTypedArray(v.sizeFromShape(d),p.dtype),f=n.data.get(p.dataId).values;for(let y=0;yb[0]+r.shape[x]+b[1]),l=s.map(b=>b[0]),u=s.map((b,x)=>b[0]+r.shape[x]),p=i==="reflect"?0:1,d=n.data.get(r.dataId).values,c=r.shape.length,h=v.computeStrides(r.shape),m=v.sizeFromShape(o),f=o.length,g=v.computeStrides(o),y=v.getTypedArrayFromDType(r.dtype,m);for(let b=0;b=u[I]&&(x[I]=(u[I]-1)*2-x[I]+p);x=x.map((I,T)=>I-l[T]);let w=v.locToIndex(x,c,h);y[b]=d[w]}return{dataId:n.write(y,o,r.dtype),shape:o,dtype:r.dtype}}var MK={kernelName:Ui,backendName:"cpu",kernelFunc:RK},PK=Vt((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),OK=nn(cu,PK),LK={kernelName:cu,backendName:"cpu",kernelFunc:OK},zK=ms(im());function i_(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=r.shape.length,o=s;if(o===-1&&(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}`);let l=v.parseAxisParam([o],r.shape),u=s_({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),p=N.expandShapeToKeepDim(u.shape,l),d=ft({inputs:{x:u},backend:n,attrs:{shape:p}}),c=H0({inputs:{a:r,b:d},backend:n}),h=yC({inputs:{x:c},backend:n}),m=sd({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=ft({inputs:{x:m},backend:n,attrs:{shape:p}}),g=q0({inputs:{a:h,b:f},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var WK={kernelName:oo,backendName:"cpu",kernelFunc:i_};function BK(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;ge(r,"multinomial");let l=o?r:i_({inputs:{logits:r},backend:n,attrs:{dim:-1}}),u=l.shape[0],p=l.shape[1],d=n.data.get(l.dataId).values,c=[u,s],h=v.makeZerosTypedArray(v.sizeFromShape(c),"int32");for(let m=0;m=0&&d[c]{v.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),v.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=em({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=Al({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var nX={kernelName:bu,backendName:"cpu",kernelFunc:l_};function aX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;ge(r,"pad");let o=s.map((y,b)=>y[0]+r.shape[b]+y[1]),l=s.map(y=>y[0]),u=n.data.get(r.dataId).values,p=v.sizeFromShape(r.shape),d=r.shape.length,c=v.computeStrides(r.shape),h=v.sizeFromShape(o),m=o.length,f=v.computeStrides(o),g=v.getTypedArrayFromDType(r.dtype,h);i!==0&&g.fill(i);for(let y=0;yw+l[I]),x=v.locToIndex(b,m,f);g[x]=u[y]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var u_={kernelName:ji,backendName:"cpu",kernelFunc:aX},rX=Vt((e,t)=>Math.pow(e,t)),sX=nn(qi,rX),iX={kernelName:qi,backendName:"cpu",kernelFunc:sX};function oX(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(y=>n.data.get(y.dataId).values),u=r.map(y=>y.shape),p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,[c,h,m]=RC(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(y=>n.makeTensorInfo([y.length],"int32",y)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var lX={kernelName:Dm,backendName:"cpu",kernelFunc:oX};function uX(e){let{inputs:t,backend:n}=e,{starts:a,limits:r,deltas:s}=t,i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=MC(i,a.shape,a.dtype,o,r.shape,l,s.shape),d=n.makeTensorInfo([u.length],"int32",u),c=n.makeTensorInfo([p.length],a.dtype,p);return[d,c]}var pX={kernelName:Rm,backendName:"cpu",kernelFunc:uX};function cX(e){let{inputs:t,backend:n,attrs:a}=e,{shape:r,values:s,defaultValue:i,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=a,u=n.data.get(r.dataId).values,p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,c=o.map(g=>n.data.get(g.dataId).values),h=o.map(g=>g.shape),[m,f]=PC(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var dX={kernelName:Mm,backendName:"cpu",kernelFunc:cX};function hX(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=W0(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var mX={kernelName:xc,backendName:"cpu",kernelFunc:hX},fX=rt(xu,e=>1/e),gX={kernelName:xu,backendName:"cpu",kernelFunc:fX};function yX(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a;ge(r,"resizeBilinear");let l=v.computeStrides(r.shape),[u,p]=o,[d,c,h,m]=r.shape,f=n.data.get(r.dataId).values,g=new Float32Array(v.sizeFromShape([d,u,p,m])),y=[s&&u>1?c-1:c,s&&p>1?h-1:h],b=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=0,w=y[0]/b[0],I=y[1]/b[1];for(let T=0;T1?u-1:u,i&&h>1?p-1:p],g=[i&&c>1?c-1:c,i&&h>1?h-1:h],y=f[0]/g[0],b=f[1]/g[1],x=n.data.get(s.dataId).values,w=0;for(let I=0;I1?c-1:c,s&&p>1?h-1:h],b=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=y[0]/b[0],w=y[1]/b[1],I=0;for(let T=0;T1?p-1:p,i&&m>1?d-1:d],b=[i&&h>1?h-1:h,i&&m>1?m-1:m],x=y[0]/b[0],w=y[1]/b[1],I=1/x,T=1/w,C=Math.ceil(I)*2+2,E=Math.ceil(T)*2+2;for(let A=0;A=h)continue;let te=R+ae*l[1],le=ae*x,ie=Math.min(p-1,i?Math.round(le):Math.floor(le));if(F===ie)for(let ye=0;ye=m)continue;let xe=te+ue*l[2],Ie=ue*w,Se=Math.min(d-1,i?Math.round(Ie):Math.floor(Ie));U===Se&&(Q+=g[xe+Z])}}f[G+Z]=Q}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var SX={kernelName:Om,backendName:"cpu",kernelFunc:IX};function TX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a;ge(r,"reverse");let i=r.shape.length,o=v.parseAxisParam(s,r.shape);if(i===0)return pr({inputs:{x:r},backend:n});let l=new Ht(r.shape,r.dtype),u=n.bufferSync(r);for(let p=0;pc[h]=r.shape[h]-1-c[h]),l.set(u.get(...c),...d)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}var NX={kernelName:eo,backendName:"cpu",kernelFunc:TX},CX={kernelName:Pu,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=v.getTypedArrayFromDType(a.dtype,v.sizeFromShape(a.shape)),[u,p,d,c]=a.shape,[h,m]=N.getImageCenter(i,p,d),f=255,g=Math.sin(r),y=Math.cos(r),b=o.data.get(a.dataId).values;for(let x=0;x=0&&M=0&&B{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2===0?t:t+1}),EX={kernelName:to,backendName:"cpu",kernelFunc:_X};function AX(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r,updates:s}=t,{shape:i}=a,{sliceRank:o,numUpdates:l,sliceSize:u,strides:p,outputSize:d}=N.calculateShapes(s,r,i),c=!0,h=n.bufferSync(r),m=n.bufferSync(s),f=ll(h,m,i,d,u,l,o,p,0,c);return n.makeTensorInfo(i,f.dtype,f.values)}var $X={kernelName:wu,backendName:"cpu",kernelFunc:AX};function FX(e,t){let n=0,a=e.length,r=0;for(;n1||r.shape.length===1?1:v.sizeFromShape(r.shape.slice(1));for(let m=0;me>=0?WX*e:zX*(Math.exp(e)-1)),VX={kernelName:Iu,backendName:"cpu",kernelFunc:BX},UX=rt(Nu,e=>e<0?-1:e>0?1:0),GX={kernelName:Nu,backendName:"cpu",kernelFunc:UX},HX=rt(ao,e=>Math.sin(e)),jX={kernelName:ao,backendName:"cpu",kernelFunc:HX},qX=rt(Tu,e=>Math.sinh(e)),KX={kernelName:Tu,backendName:"cpu",kernelFunc:qX},XX=11920928955078125e-23,pI=Math.log(XX)+2,YX=rt(Cu,e=>{let t=e>-pI,n=e0&&v.isString(n[0])){let r=n.map(s=>v.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return{dataId:a,shape:e,dtype:t}}refCount(e){return this.data.has(e)?this.data.get(e).refCount:0}incRef(e){let t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){let t=this.data.get(e);t.refCount--}}move(e,t,n,a,r){this.data.set(e,{values:t,dtype:a,refCount:r})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){let{dtype:t,complexTensorInfos:n}=this.data.get(e);if(t==="complex64"){let a=this.readSync(n.real.dataId),r=this.readSync(n.imag.dataId);return N.mergeRealAndImagArrays(a,r)}return this.data.get(e).values}bufferSync(e){let t=this.readSync(e.dataId);if(e.dtype==="string")try{let n=t.map(a=>v.decodeString(a));return Oe(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Oe(e.shape,e.dtype,t)}makeOutput(e,t,n){return _a().makeTensorFromTensorInfo(this.makeTensorInfo(t,n,e),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;let{complexTensorInfos:n}=this.data.get(e);n!=null&&(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){let t=v.now();return e(),{kernelMs:v.now()-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){ge([e],"where");let t=this.readSync(e.dataId);return Sj(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};R0.nextDataId=0;var lC={};$e(lC,{addImpl:()=>cC,bincountImpl:()=>P0,bincountReduceImpl:()=>dC,castImpl:()=>pC,ceilImpl:()=>hC,concatImpl:()=>O0,equalImpl:()=>mC,expImpl:()=>gC,expm1Impl:()=>bC,floorImpl:()=>xC,gatherNdImpl:()=>vC,gatherV2Impl:()=>wC,greaterEqualImpl:()=>IC,greaterImpl:()=>kC,lessEqualImpl:()=>TC,lessImpl:()=>SC,linSpaceImpl:()=>NC,logImpl:()=>CC,maxImpl:()=>_C,maximumImpl:()=>EC,minimumImpl:()=>$C,multiplyImpl:()=>L0,negImpl:()=>AC,notEqualImpl:()=>FC,prodImpl:()=>DC,raggedGatherImpl:()=>RC,raggedRangeImpl:()=>MC,raggedTensorToTensorImpl:()=>PC,rangeImpl:()=>W0,rsqrtImpl:()=>OC,scatterImpl:()=>ll,sigmoidImpl:()=>bq,simpleAbsImpl:()=>uC,sliceImpl:()=>Jh,sparseFillEmptyRowsImpl:()=>zC,sparseReshapeImpl:()=>WC,sparseSegmentReductionImpl:()=>B0,sqrtImpl:()=>wq,squaredDifferenceImpl:()=>BC,stridedSliceImpl:()=>VC,stringNGramsImpl:()=>V0,stringSplitImpl:()=>U0,stringToHashBucketFastImpl:()=>G0,subImpl:()=>UC,tileImpl:()=>GC,topKImpl:()=>jC,transposeImpl:()=>z0,uniqueImpl:()=>qC});function uC(e){let t=new Float32Array(e.length);for(let n=0;n{let{x:t}=e.inputs,n=e.backend;ge(t,"abs");let a=new Float32Array(v.sizeFromShape(t.shape)),r=n.data.get(t.dataId).values;return a=uC(r),n.makeOutput(a,t.shape,t.dtype)},Nj={kernelName:Dl,backendName:"cpu",kernelFunc:Tj};function Vt(e){return(t,n,a,r,s)=>{let i=N.assertAndGetBroadcastShape(t,n),o=i.length,l=v.computeStrides(i),u=v.sizeFromShape(i),p=v.getTypedArrayFromDType(s,u),d=t.length,c=n.length,h=v.computeStrides(t),m=v.computeStrides(n),f=N.getBroadcastDims(t,i),g=N.getBroadcastDims(n,i);if(f.length+g.length===0)for(let y=0;yx[C]=0);let w=v.locToIndex(x,d,h),I=b.slice(-c);g.forEach(C=>I[C]=0);let T=v.locToIndex(I,c,m);p[y]=e(a[w],r[T])}return[p,i]}}function Zn(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=n.makeTensorInfo(a.shape,"complex64"),l=n.data.get(o.dataId);return l.complexTensorInfos={real:n.makeTensorInfo(a.shape,"float32",s),imag:n.makeTensorInfo(r.shape,"float32",i)},o}var Cj={kernelName:mm,backendName:"cpu",kernelFunc:Zn};function Zh(e,t,n="float32"){if(n==="complex64"){let r=Zh(e,t,"float32"),s=Zh(e,t,"float32");return Zn({inputs:{real:r,imag:s},backend:e})}let a=v.makeZerosTypedArray(v.sizeFromShape(t),n);return e.makeTensorInfo(t,n,a)}function pr(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var _j={kernelName:Ri,backendName:"cpu",kernelFunc:pr};function ui(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.data.get(a.dataId).complexTensorInfos.real,s=n.data.get(r.dataId).values;return n.makeTensorInfo(r.shape,r.dtype,s)}var Ej={kernelName:Pm,backendName:"cpu",kernelFunc:ui};function pC(e,t,n,a){if(a==="int32"){let r=Int32Array.from(e);return[t,"int32",r]}if(a==="bool"){let r=v.toTypedArray([0],n),[s,i]=Vt((o,l)=>o!==l?1:0)(t,[],e,r,"bool");return[i,"bool",s]}throw new Error(`Error in Cast: failed to cast ${n} to ${a}`)}function ds(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return pr({inputs:{x:r},backend:n});let p=Zh(n,r.shape,r.dtype),d=ds({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),c=Zn({inputs:{real:d,imag:p},backend:n});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),c}if(r.dtype==="complex64"){let p=ui({inputs:{input:r},backend:n}),d=ds({inputs:{x:p},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(p),d}if(!v.hasEncodingLoss(r.dtype,s)){let p=pr({inputs:{x:r},backend:n});return{dataId:p.dataId,shape:p.shape,dtype:s}}let i=n.data.get(r.dataId).values,[o,l,u]=pC(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}var $j={kernelName:xi,backendName:"cpu",kernelFunc:ds};function nn(e,t,n,a){return n==null?({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;ge([i,o],e);let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=i.dtype==="string"?N.fromUint8ToStringArray(u):u,c=i.dtype==="string"?N.fromUint8ToStringArray(p):p,h=a||i.dtype,[m,f]=t(i.shape,o.shape,d,c,h);return l.makeTensorInfo(f,h,m)}:({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;if(i.dtype==="complex64"||o.dtype==="complex64"){let u=ds({inputs:{x:i},backend:l,attrs:{dtype:"complex64"}}),p=l.data.get(u.dataId),d=p.complexTensorInfos.real,c=p.complexTensorInfos.imag,h=l.data.get(d.dataId).values,m=l.data.get(c.dataId).values,f=ds({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),y=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,x=l.data.get(y.dataId).values,w=l.data.get(b.dataId).values,[I,T,C]=n(i.shape,o.shape,h,m,x,w),E=l.makeTensorInfo(C,"float32",I),$=l.makeTensorInfo(C,"float32",T),R=Zn({inputs:{real:E,imag:$},backend:l});return l.disposeIntermediateTensorInfo(u),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo(E),l.disposeIntermediateTensorInfo($),R}else{let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=a||i.dtype,[c,h]=t(i.shape,o.shape,u,p,d);return l.makeTensorInfo(h,d,c)}}}function M0(e){return(t,n,a,r,s,i)=>{let o=N.assertAndGetBroadcastShape(t,n),l=v.sizeFromShape(o),u=o.length,p=v.computeStrides(o),d=v.getTypedArrayFromDType("float32",l),c=v.getTypedArrayFromDType("float32",l),h=N.getBroadcastDims(t,o),m=N.getBroadcastDims(n,o),f=N.mergeRealAndImagArrays(a,r),g=N.mergeRealAndImagArrays(s,i),y=t.length,b=v.computeStrides(t),x=n.length,w=v.computeStrides(n);if(h.length+m.length===0)for(let I=0;IC[S]=0);let E=v.locToIndex(C,y,b),$=T.slice(-x);m.forEach(S=>$[S]=0);let R=v.locToIndex($,x,w),F=e(f[E*2],f[E*2+1],g[R*2],g[R*2+1]);d[I]=F.real,c[I]=F.imag}return[d,c,o]}}var cC=Vt((e,t)=>e+t),Aj=M0((e,t,n,a)=>({real:e+n,imag:t+a})),_l=nn(gs,cC,Aj),Fj={kernelName:gs,backendName:"cpu",kernelFunc:_l};function P0(e,t,n,a,r){let s=v.sizeFromShape(a),i=v.makeZerosTypedArray(r,n);for(let o=0;o=r||(s>0?i[l]+=t[o]:i[l]+=1)}return i}function dC(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=Oe([r,n],t.dtype);for(let o=0;o=n||(a?i.set(1,o,u):t.size>0?i.set(i.get(o,u)+t.get(o,l),o,u):i.set(i.get(o,u)+1,o,u))}return i}function Cs(e){return(t,n,a)=>{let r=v.getTypedArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;if(ge(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,u=v.sizeFromShape(i.shape),p=n||i.dtype,d=v.getArrayFromDType(p,u);for(let c=0;c{let{x:i}=a;if(ge(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,u=n||i.dtype,p=t(l,u,r);return o.makeTensorInfo(i.shape,u,p)}}var hC=Cs(e=>Math.ceil(e)),Dj=Ku(vi,hC),Rj={kernelName:vi,backendName:"cpu",kernelFunc:Dj};function O0(e,t,n,a){let r=v.getArrayFromDType(n,v.sizeFromShape(t));if(a&&n!=="string"){let s=0;e.forEach(i=>{let o=v.sizeFromShape(i.shape);r.set(i.vals,s),s+=o})}else{let s=0;e.forEach(i=>{let o=n==="string"?N.fromUint8ToStringArray(i.vals):i.vals,l=0;for(let u=0;ue===t?1:0),fC=nn(Xl,mC,null,"bool"),Mj={kernelName:Xl,backendName:"cpu",kernelFunc:fC},gC=Cs(e=>Math.exp(e)),yC=Ku(Ei,gC,"float32"),Pj={kernelName:Ei,backendName:"cpu",kernelFunc:yC},bC=Cs(e=>Math.expm1(e)),Oj=Ku(Zl,bC),Lj={kernelName:Zl,backendName:"cpu",kernelFunc:Oj},xC=Cs(e=>Math.floor(e)),zj=Ku($i,xC),Wj={kernelName:$i,backendName:"cpu",kernelFunc:zj};function vC(e,t,n,a,r,s,i,o,l){let u=Oe([a,s],n);for(let p=0;p=l/s)throw new Error(`Invalid indices: ${d} does not index into ${o}`);for(let h=0;he>t?1:0),Bj=nn(tu,kC,null,"bool"),Vj={kernelName:tu,backendName:"cpu",kernelFunc:Bj},IC=Vt((e,t)=>e>=t?1:0),Uj=nn(Di,IC,null,"bool"),Gj={kernelName:Di,backendName:"cpu",kernelFunc:Uj},SC=Vt((e,t)=>ee<=t?1:0),qj=nn(iu,TC,null,"bool"),Kj={kernelName:iu,backendName:"cpu",kernelFunc:qj};function NC(e,t,n){let a=(t-e)/(n-1),r=v.makeZerosTypedArray(n,"float32");r[0]=e;for(let s=1;sMath.log(e)),Xj=Ku(Pi,CC),Yj={kernelName:Pi,backendName:"cpu",kernelFunc:Xj};function _C(e,t,n,a){let r=v.getTypedArrayFromDType(a,v.sizeFromShape(n));for(let s=0;so)&&(o=u)}r[s]=o}return r}var EC=Vt((e,t)=>Math.max(e,t)),Zj=nn(Li,EC),Jj={kernelName:Li,backendName:"cpu",kernelFunc:Zj},$C=Vt((e,t)=>Math.min(e,t)),Qj=nn(Vi,$C),eq={kernelName:Vi,backendName:"cpu",kernelFunc:Qj},L0=Vt((e,t)=>e*t),tq=M0((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),qf=nn(Gi,L0,tq),nq={kernelName:Gi,backendName:"cpu",kernelFunc:qf};function AC(e,t,n){let a=v.createScalarValue(-1,n);return L0([],t,a,e,n)}function aq(e){let{inputs:t,backend:n}=e,{x:a}=t;ge(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=AC(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var rq={kernelName:du,backendName:"cpu",kernelFunc:aq},FC=Vt((e,t)=>e!==t?1:0),sq=nn(hu,FC,null,"bool"),iq={kernelName:hu,backendName:"cpu",kernelFunc:sq};function z0(e,t,n,a,r){let s=t.length,i=v.sizeFromShape(t),o=v.computeStrides(t),l=v.computeStrides(r),u=v.getTypedArrayFromDType(n,v.sizeFromShape(r));for(let p=0;pn.disposeIntermediateTensorInfo(b)),n.makeTensorInfo(y,g,m)}var uq={kernelName:Xi,backendName:"cpu",kernelFunc:lq};function pq(e,t,n){e.forEach((a,r)=>{if(a<0||a>=n){let s=v.indexToLoc(r,t.length,v.computeStrides(t)).join(",");throw new Error(`indices[${s}] = ${a} is not in [0, ${n})`)}})}function cq(e,t){for(let n=0;nr)throw new Error("Ragged splits must not point past values");for(let s=1;sa[s])throw new Error("Ragged splits must be sorted in ascending order")}}function dq(e,t,n,a){let r=[],s=0,i=t.length-1+n.length,o=new Array(i).fill(null).map(()=>[0]);cq(n,a);let l=1;for(let u=0;u=0){let f=o[m],g=f[f.length-1]-h[p];for(let y=p;yr[i]=s)}return t}function iI(e,t){let n=e.slice(0,t);for(;n.length1)throw new Error("starts must be a scalar or vector");if(r.length>1)throw new Error("limits must be a scalar or vector");if(i.length>1)throw new Error("deltas must be a scalar or vector");let o=t.length===0,l=r.length===0,u=i.length===0,p=[];o||p.push(t[0]),l||p.push(r[0]),u||p.push(i[0]);for(let g=1;g0&&by)w=0;else if(w=Math.ceil(Math.abs((b-y)/x)),w>oI)throw new Error(`Requires ((limit - start) / delta) <= ${oI}`);c[g+1]=c[g]+w}let h=c[d],m=v.getArrayFromDType(n,h),f=0;for(let g=0;gn&&(n=r)}return n}static getMaxWidthValueRowID(e){let t=e.length;if(t===0)return 0;let n=0,a=e[0],r=0;for(let s=1;s"Final length of result must be equal to firstDimension."),r}calculateOutputIndexRowSplit(e,t,n,a){let r=e.length,s=[];for(let i=0;i0&&s.length!==e[r-1])throw new Error("Invalid row split size.");return s}calculateOutputIndexValueRowID(e,t,n,a){let r=e.length,s=[];if(r===0)return[];let i=0,o=e[0];if(o>=t.length)throw new Error(`Got currentValueRowId=${o}, which is not less than ${t.length}`);let l=t[o];s.push(l);for(let u=1;u=0&&(++i,i=t.length)throw new Error(`Got nextValueRowId=${p} which is not less than ${t.length}`);l=t[p]}s.push(l)}if(s.length!==e.length)throw new Error("Invalid row ids.");return s}calculateOutputIndex(e,t,n,a){let r=this.getRowPartitionTensor(e),s=this.getRowPartitionTypeByDimension(e);switch(s){case Ta.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(r,t,n,a);case Ta.ROW_SPLITS:if(r.length-1>t.length)throw new Error(`Row partition size is greater than output size: ${r.length-1} > ${t.length}`);return this.calculateOutputIndexRowSplit(r,t,n,a);default:throw new Error(`Unsupported partition type: ${Ta[s]}`)}}getFirstDimensionSize(){let e=this.rowPartitionValues[0];if(this.rowPartitionTypes.length===0)throw new Error("No row_partition_types given.");let t=this.rowPartitionTypes[0];switch(t){case Ta.FIRST_DIM_SIZE:return e[0];case Ta.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Ta.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Ta[t]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error("Invalid first partition input. Tensor requires at least one element.");let e=this.getFirstDimensionSize(),t=this.calculateOutputSize(e),n=new Array(this.raggedRank+1);n[n.length-1]=1;for(let s=n.length-2;s>=0;--s)n[s]=n[s+1]*t[s+1];let a=uI(t,!1),r=v.getArrayFromDType(this.valuesDType,v.sizeFromShape(a));if(n[0]*t[0]>0){let s=this.calculateFirstParentOutputIndex(e,n[0],t[0]);for(let i=1;i<=this.raggedRank;++i)s=this.calculateOutputIndex(i-1,s,n[i],t[i]);this.setOutput(this.raggedRank,s,r,a)}return[a,r]}setOutput(e,t,n,a){if(n.length===0)return;let r=this.values,s=n,i=a.slice();i=i.slice(e+1);let o=v.sizeFromShape(i),l=t.length,u=this.defaultValue;if(u.length!==o&&u.length!==1){let h=this.defaultValueShape;P(()=>{let m=W(u,h);u=Xs(m,i).dataSync()})}let p=0,d=0,c=0;for(let h=0;h<=l;++h){let m=h=l){let f=n.length;m=Math.floor(f/o)}if(m>c)if(this.defaultValue.length===1)s.subarray(c*o,m*o).fill(this.defaultValue[0]),c=m;else for(;m>c;){let f=s.slice(c*o);lI(f,u,o),++c}m<0?(p=h+1,d=c):(p=h,d=c,c=d+1)}}};function lI(e,t,n){for(let a=0;a= 0`);if(a<-1)throw new Error(`Dimension ${a} must be >= -1`);a=-1}n.push(a)}return n}function PC(e,t,n,a,r,s,i,o,l,u){return new cx(e,t,n,a,r,s,i,o,l,u).compute()}function W0(e,t,n,a){let r=e===t,s=e1;if(r||s||i)return v.makeZerosTypedArray(0,a);let o=Math.abs(Math.ceil((t-e)/n)),l=v.makeZerosTypedArray(o,a);t1/Math.sqrt(e)),gq=Ku(no,OC),yq={kernelName:no,backendName:"cpu",kernelFunc:gq};function ll(e,t,n,a,r,s,i,o,l,u){let p=[a/r,r],d=e.values,c=t.values;if(a===0)return Oe(n,t.dtype);let h=Oe(p,t.dtype);typeof l=="string"||typeof l=="number"?h.values.fill(l):typeof l=="boolean"&&h.values.fill(+l);for(let m=0;m=a/r)throw new Error(`Invalid indices: ${f} does not index into ${n}`);for(let y=0;y1/(1+Math.exp(-e))),LC=rt(ro,e=>1/(1+Math.exp(-e))),xq={kernelName:ro,backendName:"cpu",kernelFunc:LC};function Jh(e,t,n,a,r){let s=jt.isSliceContinous(a,t,n),i=v.sizeFromShape(n),o=v.computeStrides(a);if(s){let d=jt.computeFlatOffset(t,o);return r==="string"?e.slice(d,d+i):e.subarray(d,d+i)}let l=r==="string"?N.fromUint8ToStringArray(e):e,u=Oe(a,r,l),p=Oe(n,r);for(let d=0;dm+t[f]);p.set(u.get(...h),...c)}return r==="string"?N.fromStringArrayToUint8(p.values):p.values}function pi(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a;ge(r,"slice");let[o,l]=jt.parseSliceParams(r,s,i);jt.assertParamsValid(r,o,l);let u=n.data.get(r.dataId).values,p=Jh(u,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,p)}var vq={kernelName:Su,backendName:"cpu",kernelFunc:pi};function zC(e,t,n,a,r,s,i){let o=t[0],l=s[0],u=new Array(l),p=new Array(o),d=t[1];if(l===0){if(o!==0)throw new Error(N.getSparseFillEmptyRowsIndicesDenseShapeMismatch(o));let g=v.getArrayFromDType(n,0),y=v.getArrayFromDType(r,0);return[g,[0,d],y,u,p]}let c=!0,h=0,m=new Array(l).fill(0);for(let g=0;g=l)throw new Error(N.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,y,l));++m[y],c=c&&y>=h,h=y}let f=!0;for(let g=0;g0&&(m[g]+=m[g-1])}if(f&&c){let g=e,y=a;for(let b=0;b0){c[d-1]=1;for(let f=d-2;f>=0;--f)c[f]=c[f+1]*a[f+1]}let h=[];if(o>0){h[o-1]=1;for(let f=o-2;f>=0;--f)h[f]=h[f+1]*l[f+1]}let m=v.getArrayFromDType(n,i*o);for(let f=0;f0?r[o-1]+1:0;if(p<0)throw new Error(N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let d=t.slice();d[0]=p;let c=d.reduce((b,x)=>b*x,1),h=v.getArrayFromDType(n,c);if(o===0)return p>0&&h.fill(i),[h,d];if(p<=0)throw new Error(N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=0,f=1,g=0,y=r[m];for(;;){let b=0;if(f=b)throw new Error(N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(y<0||y>=p)throw new Error(N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(y,p));y>g&&h.fill(i,g*u,y*u);for(let x=m;x=l[0])throw new Error(N.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(x,a[x],l[0]));for(let I=0;Io)break}return gMath.sqrt(e)),kq=rt(so,e=>Math.sqrt(e)),Iq={kernelName:so,backendName:"cpu",kernelFunc:kq},BC=Vt((e,t)=>{let n=e-t;return n*n}),Sq=nn(lo,BC),Tq={kernelName:lo,backendName:"cpu",kernelFunc:Sq};function VC(e,t,n,a){let r=Oe(e,t.dtype);for(let s=0;s0?0:i-o),c=0;c+=l*this.leftPad.length;for(let y=0;yy.forEach(b=>m[f++]=b);for(let y=0;y0){g(e[d+p-1]);for(let y=0;y0){let o=t[0];if(o!==0)throw new Error(`First split value must be 0, got ${o}`);for(let l=1;l=o;if(u=u&&t[l]<=n,!u)throw new Error(`Invalid split value ${t[l]}, must be in [${o}, ${n}]`);o=t[l]}if(o!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${o}`)}let r=a-1,s=v.getArrayFromDType("int32",a);if(n===0||a===0){let o=new Array(n);for(let l=0;l<=r;++l)s[l]=0;return[o,s]}s[0]=0;for(let o=1;o<=r;++o){let l=t[o]-t[o-1],u=0;this.nGramWidths.forEach(p=>{u+=this.getNumNGrams(l,p)}),this.preserveShort&&l>0&&u===0&&(u=1),s[o]=s[o-1]+u}let i=new Array(s[r]);for(let o=0;o{let d=t[o+1]-t[o],c=this.getNumNGrams(d,p);this.createNGrams(e,l,i,u,c,p),u+=c}),this.preserveShort&&u===s[o]){let p=t[o+1]-t[o];if(p===0)continue;let d=p+2*this.padWidth,c=1;this.createNGrams(e,l,i,u,c,d)}}return[i,s]}};function V0(e,t,n,a,r,s,i,o){return new Nq(n,a,r,s,i,o).compute(e,t)}function Cq(e,t,n,a){if(!e.length)return;if(t.length===0){for(let s=0;se-t),_q=M0((e,t,n,a)=>({real:e-n,imag:t-a})),H0=nn(uo,UC,_q),Eq={kernelName:uo,backendName:"cpu",kernelFunc:H0};function GC(e,t){let n=new Array(e.rank);for(let r=0;r{let n=t.value-e.value;return n===0?e.index-t.index:n};function HC(e,t,n=0,a=e.length-1){for(;a>n;){if(a-n>600){let o=a-n+1,l=t-n+1,u=Math.log(o),p=.5*Math.exp(2*u/3),d=.5*Math.sqrt(u*p*(o-p)/o)*Math.sign(l-o/2),c=Math.max(n,Math.floor(t-l*p/o+d)),h=Math.min(a,Math.floor(t+(o-l)*p/o+d));HC(e,t,c,h)}let r=e[t],s=n,i=a;for(v.swap(e,n,t),Op(e[a],r)>0&&v.swap(e,n,a);s0;)i=i-1}Op(e[n],r)===0?v.swap(e,n,i):(i=i+1,v.swap(e,i,a)),i<=t&&(n=i+1),t<=i&&(a=i-1)}}function jC(e,t,n,a,r){let s=t[t.length-1],[i,o]=[e.length/s,s],l=v.getTypedArrayFromDType(n,i*a),u=v.getTypedArrayFromDType("int32",i*a);for(let d=0;dm[x]={value:b,index:x}),a{for(let g=0;gnew R0,1);var KC=rt(_i,e=>e>=0?e:Math.exp(e)-1),$q={kernelName:_i,backendName:"cpu",kernelFunc:KC};function XC(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a;ge([r],"leakyRelu");let i=v.sizeFromShape(r.shape),o=n.data.get(r.dataId).values,l=v.getTypedArrayFromDType("float32",i);for(let u=0;ue<0?t*e:e);function YC(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t;ge([a,r],"prelu");let s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,[o,l]=Fq(a.shape,r.shape,s,i,"float32");return n.makeTensorInfo(l,"float32",o)}var Dq={kernelName:Ki,backendName:"cpu",kernelFunc:YC},ZC=rt(Yi,e=>Math.max(0,e)),Rq={kernelName:Yi,backendName:"cpu",kernelFunc:ZC},JC=rt(Qi,e=>Math.min(Math.max(0,e),6)),Mq={kernelName:Qi,backendName:"cpu",kernelFunc:JC};function Qh(e,t,n,a,r){if(n==="linear")return pr({inputs:{x:t},backend:e});if(n==="relu")return ZC({inputs:{x:t},backend:e});if(n==="elu")return KC({inputs:{x:t},backend:e});if(n==="relu6")return JC({inputs:{x:t},backend:e});if(n==="prelu")return YC({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return XC({inputs:{x:t},backend:e,attrs:{alpha:r}});if(n==="sigmoid")return LC({inputs:{x:t},backend:e});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function ft(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=v.sizeFromShape(r.shape),o=v.inferFromImplicitShape(s,i),l=v.sizeFromShape(o);v.assert(i===l,()=>`The new shape (${o}) has ${l} elements and the old shape (${r.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),n.incRef(r.dataId);let u=n.data.get(r.dataId);if(u.complexTensorInfos!=null){let p=u.complexTensorInfos.real,d=u.complexTensorInfos.imag;p.shape=o,d.shape=o}return{dataId:r.dataId,shape:o,dtype:r.dtype}}var Pq={kernelName:vu,backendName:"cpu",kernelFunc:ft};function QC(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;ge([r,s],"matMul");let l=r.shape.length,u=s.shape.length,p=i?r.shape[l-2]:r.shape[l-1],d=o?s.shape[u-1]:s.shape[u-2],c=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[u-2]:s.shape[u-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=v.sizeFromShape(m),y=v.sizeFromShape(f),b=Ou.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);v.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,p,c]:[g,c,p],w=o?[y,h,d]:[y,d,h],I=ft({inputs:{x:r},backend:n,attrs:{shape:x}}),T=ft({inputs:{x:s},backend:n,attrs:{shape:w}}),C=i?I.shape[1]:I.shape[2],E=i?I.shape[2]:I.shape[1],$=o?T.shape[1]:T.shape[2],R=Math.max(g,y),F=n.data.get(I.dataId).values,S=n.data.get(T.dataId).values,M=v.computeStrides(I.shape),B=v.computeStrides(T.shape),[U,G,q]=i?[M[0],1,M[1]]:[M[0],M[1],1],[K,Z,J]=o?[1,B[1],B[0]]:[B[1],1,B[0]],ee=E*$,ae=Oe([R,E,$],I.dtype),te=ae.values,ie=n.blockSize;for(let oe=0;oeMath.acos(e)),Bq={kernelName:Rl,backendName:"cpu",kernelFunc:Wq},Vq=rt(Ml,e=>Math.acosh(e)),Uq={kernelName:Ml,backendName:"cpu",kernelFunc:Vq};function Gq(e){let{inputs:t,backend:n}=e,a=t;ge(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=Oe(a[0].shape,a[0].dtype),i=s.values;for(let o=0;ob&&(b=I,x=w)}h[g]=x}return u.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var Zq={kernelName:gi,backendName:"cpu",kernelFunc:Yq};function Jq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a;ge(r,"argMin");let i=v.parseAxisParam(s,r.shape),o=N.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Vn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=N.getInnerMostAxes(i.length,l.shape.length)),i=[i[0]],N.assertAxesAreInnerMostDims("argMin",i,l.shape.length);let[p,d]=N.computeOutAndReduceShapes(l.shape,i),c=v.sizeFromShape(p),h=v.makeZerosTypedArray(c,"int32"),m=v.sizeFromShape(d),f=n.data.get(l.dataId).values;for(let g=0;gn.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var Qq={kernelName:cc,backendName:"cpu",kernelFunc:Jq},e5=rt(Ll,e=>Math.asin(e)),t5={kernelName:Ll,backendName:"cpu",kernelFunc:e5},n5=rt(zl,e=>Math.asinh(e)),a5={kernelName:zl,backendName:"cpu",kernelFunc:n5},r5=rt(Wl,e=>Math.atan(e)),s5={kernelName:Wl,backendName:"cpu",kernelFunc:r5},i5=Vt((e,t)=>Math.atan2(e,t)),o5=nn(Vl,i5),l5={kernelName:Vl,backendName:"cpu",kernelFunc:o5},u5=rt(Bl,e=>Math.atanh(e)),p5={kernelName:Bl,backendName:"cpu",kernelFunc:u5};function j0(e,t,n,a,r,s){let i=r.strideHeight,o=r.strideWidth,l=r.dilationHeight,u=r.dilationWidth,p=r.effectiveFilterHeight,d=r.effectiveFilterWidth,c=r.padInfo.top,h=r.padInfo.left,m=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,f=Oe(r.outShape,n),g=f.values,y=r.outShape[1]*r.outShape[2]*r.outShape[3],b=r.outShape[2]*r.outShape[3],x=r.outShape[3];for(let w=0;wq?q=oe:s==="avg"&&(K+=oe,Z++)}if(isNaN(q))break}let J=S+M*x+C;g[J]=s==="avg"?K/Z:q}}}return f}function e_(e,t,n,a,r=!1,s=!1){let i=Oe(a.outShape,"int32"),o=a.strideHeight,l=a.strideWidth,u=a.dilationHeight,p=a.dilationWidth,d=a.effectiveFilterHeight,c=a.effectiveFilterWidth,h=a.padInfo.top,m=a.padInfo.left,f=Oe(t,n,e);for(let g=0;gR&&(R=G,r?F=s?((g*a.inHeight+S)*a.inWidth+B)*a.inChannels+y:(S*a.inWidth+B)*a.inChannels+y:F=M*c+U)}}i.set(F,g,b,T,y)}}return i}function t_(e,t,n,a,r,s){let i=r.strideDepth,o=r.strideHeight,l=r.strideWidth,u=r.dilationDepth,p=r.dilationHeight,d=r.dilationWidth,c=r.effectiveFilterDepth,h=r.effectiveFilterHeight,m=r.effectiveFilterWidth,f=r.padInfo.front,g=r.padInfo.top,y=r.padInfo.left,b=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,x=Oe(r.outShape,n),w=x.values,I=r.outShape[1]*r.outShape[2]*r.outShape[3]*r.outShape[4],T=r.outShape[2]*r.outShape[3]*r.outShape[4],C=r.outShape[3]*r.outShape[4],E=r.outShape[4];for(let $=0;$be?be=dt:s==="avg"&&(ke+=dt,Se++),isNaN(be))break}if(isNaN(be))break}if(isNaN(be))break}let Le=ue+S;w[Le]=s==="avg"?ke/Se:be}}}}return x}function c5(e,t){let n=Oe(t.outShape,"int32"),a=t.strideDepth,r=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,u=t.effectiveFilterDepth,p=t.effectiveFilterHeight,d=t.effectiveFilterWidth,c=t.padInfo.front,h=t.padInfo.top,m=t.padInfo.left;for(let f=0;f=M&&(M=ee,B=G*p*d+K*p+J)}}}n.set(B,f,y,I,$,g)}}}return n}function d5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;ge(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;v.assert(N.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=N.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))d=pr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=v.computeStrides(r.shape),m=j0(c,r.shape,r.dtype,h,p,"avg");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var h5={kernelName:yi,backendName:"cpu",kernelFunc:d5};function m5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ge(r,"avgPool3d");let p=N.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=t_(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"avg");return n.makeTensorInfo(c.shape,"float32",c.values)}var f5={kernelName:dc,backendName:"cpu",kernelFunc:m5};function g5(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ge([r,s],"avgPool3DGrad");let p=N.computePool3DInfo(s.shape,i,o,1,l,u),d=p.strideDepth,c=p.strideHeight,h=p.strideWidth,m=p.filterDepth,f=p.filterHeight,g=p.filterWidth,y=p.dilationDepth,b=p.dilationHeight,x=p.dilationWidth,w=p.effectiveFilterDepth,I=p.effectiveFilterHeight,T=p.effectiveFilterWidth,C=w-1-p.padInfo.front,E=T-1-p.padInfo.left,$=I-1-p.padInfo.top,R=Oe(s.shape,"float32"),F=1/(m*f*g),S=n.bufferSync(r);for(let M=0;M=p.outDepth||Math.floor(te)!==te))for(let ie=0;ie=p.outHeight||Math.floor(oe)!==oe))for(let ye=0;ye=p.outWidth||Math.floor(ue)!==ue)continue;let be=S.get(M,te,oe,ue,B);ee+=be}}}R.set(ee*F,M,U,G,q,B)}return n.makeTensorInfo(R.shape,R.dtype,R.values)}var y5={kernelName:cm,backendName:"cpu",kernelFunc:g5};function b5(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;ge([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=N.computePool2DInfo(i.shape,o,l,1,u),d=p.strideHeight,c=p.strideWidth,h=p.filterHeight,m=p.filterWidth,f=p.dilationHeight,g=p.dilationWidth,y=p.effectiveFilterHeight,b=p.effectiveFilterWidth,x=b-1-p.padInfo.left,w=y-1-p.padInfo.top,I=Oe(i.shape,"float32"),T=1/(h*m),C=n.data.get(r.dataId).values,E=Oe(r.shape,"float32",C);for(let $=0;$=p.outHeight||Math.floor(q)!==q))for(let K=0;K=p.outWidth||Math.floor(Z)!==Z)continue;let J=E.get($,q,Z,R);U+=J}}I.set(U*T,$,F,S,R)}return n.makeTensorInfo(I.shape,I.dtype,I.values)}var x5={kernelName:pm,backendName:"cpu",kernelFunc:b5};function v5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,scale:s,offset:i,mean:o,variance:l}=t;v.assert(o.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),v.assert(i==null||o.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),v.assert(s==null||o.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),ge([r,o,l,s,i],"batchNorm");let{varianceEpsilon:u}=a;u==null&&(u=.001);let p=n.data.get(r.dataId).values,d=n.data.get(o.dataId).values,c=n.data.get(l.dataId).values,h=s?n.data.get(s.dataId).values:new Float32Array([1]),m=i?n.data.get(i.dataId).values:new Float32Array([0]),f=new Float32Array(p.length),g=m.length,y=h.length,b=c.length,x=d.length,w=0,I=0,T=0,C=0;for(let E=0;E=g&&(w=0),I>=x&&(I=0),T>=y&&(T=0),C>=b&&(C=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var w5={kernelName:Fi,backendName:"cpu",kernelFunc:v5};function k5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;ge([r],"batchToSpaceND");let o=s.reduce((y,b)=>y*b),l=N.getReshaped(r.shape,s,o),u=N.getPermuted(l.length,s.length),p=N.getReshapedPermuted(r.shape,s,o),d=N.getSliceBeginCoords(i,s.length),c=N.getSliceSize(p,i,s.length),h=ft({inputs:{x:r},backend:n,attrs:{shape:l}}),m=Vn({inputs:{x:h},backend:n,attrs:{perm:u}}),f=ft({inputs:{x:m},backend:n,attrs:{shape:p}}),g=pi({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var I5={kernelName:Ul,backendName:"cpu",kernelFunc:k5};function S5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,u=P0(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var T5={kernelName:dm,backendName:"cpu",kernelFunc:S5};function N5(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=N.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var C5={kernelName:hm,backendName:"cpu",kernelFunc:N5},_5=rt(ys,(e,t)=>{let n=t;return e>n.clipValueMax?n.clipValueMax:e{let{x:t}=e.inputs,n=e.backend,a=new Float32Array(v.sizeFromShape(t.shape)),r=n.data.get(t.dataId),s=r.complexTensorInfos.real,i=r.complexTensorInfos.imag,o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values;for(let u=0;uf.shape);N.assertParamsConsistent(i,s);let o=N.computeOutShape(t.map(f=>f.shape),s);if(v.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(f=>v.sizeFromShape(f.shape)>0);if(l.length===1)return pr({inputs:{x:l[0]},backend:n});if(l[0].dtype==="complex64"){let f=l.map(w=>ui({inputs:{input:w},backend:n})),g=l.map(w=>El({inputs:{input:w},backend:n})),y=$l({inputs:f,backend:n,attrs:{axis:s}}),b=$l({inputs:g,backend:n,attrs:{axis:s}}),x=Zn({inputs:{real:y,imag:b},backend:n});return f.forEach(w=>n.disposeIntermediateTensorInfo(w)),g.forEach(w=>n.disposeIntermediateTensorInfo(w)),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(b),x}let u=l.map(f=>{let g=[-1,v.sizeFromShape(f.shape.slice(s))];return ft({inputs:{x:f},backend:n,attrs:{shape:g}})}),p=u.map(f=>({vals:n.data.get(f.dataId).values,shape:f.shape}));o=N.computeOutShape(u.map(f=>f.shape),1);let d=u[0].shape[0]===1,c=O0(p,o,t[0].dtype,d),h=N.computeOutShape(l.map(f=>f.shape),s),m=n.makeTensorInfo(h,t[0].dtype,c);return u.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var D5={kernelName:Gl,backendName:"cpu",kernelFunc:$l};function n_(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:p}=a;ge([r,s],"conv2d");let d=N.convertConv2DDataFormat(l),c=N.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h=c.filterHeight,m=c.filterWidth,f=c.dilationHeight,g=c.dilationWidth,y=c.padInfo.left,b=c.padInfo.top,x=c.dataFormat==="channelsLast",w=new Ht(c.outShape,r.dtype),I=v.computeStrides(r.shape),T=v.computeStrides(s.shape),C=I[0],E=x?I[1]:I[2],$=x?I[2]:1,R=x?1:I[1],F=w.strides[0],S=x?w.strides[1]:w.strides[2],M=x?w.strides[2]:1,B=x?1:w.strides[1],U=n.data.get(r.dataId).values,G=n.data.get(s.dataId).values,q=w.values;for(let K=0;K=c.inHeight)continue;let ye=ie*T[0],ue=Z+oe*E;for(let be=0;be=c.inWidth)continue;let nt=ye+Le*T[1],it=ue+Ve*$,et=nt;for(let at=0;at=u.inDepth)continue;let K=G*$[0],Z=F+q*E[1];for(let J=0;J=u.inHeight)continue;let oe=K+te*$[1],ye=Z+ie*E[2];for(let ue=0;ue=u.inWidth)continue;let Ve=oe+Se*$[2],nt=ye+Le*u.inChannels,it=Ve;for(let et=0;etMath.cos(e)),j5={kernelName:Ii,backendName:"cpu",kernelFunc:H5},q5=rt(Si,e=>Math.cosh(e)),K5={kernelName:Si,backendName:"cpu",kernelFunc:q5};function X5(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,[p,d,c,h]=r.shape,m=s.shape[0],[f,g]=o,y=Oe([m,f,g,h],"float32"),b=n.data.get(s.dataId).values,x=n.data.get(i.dataId).values,w=n.data.get(r.dataId).values,I=v.computeStrides(r.shape),T=v.computeStrides(y.shape);for(let C=0;C=p)continue;let B=f>1?(F-$)*(d-1)/(f-1):0,U=g>1?(S-R)*(c-1)/(g-1):0;for(let G=0;G1?$*(d-1)+G*B:.5*($+F)*(d-1);if(q<0||q>d-1){for(let K=0;K1?R*(c-1)+ee*U:.5*(R+S)*(c-1);if(ae<0||ae>c-1){for(let ye=0;ye1?R*(c-1)+K*U:.5*(R+S)*(c-1);if(Z<0||Z>c-1){for(let ae=0;aey+m-b-1:(y,b)=>y+b;for(let y=0;yy+m-b-1:(y,b)=>y+b;for(let y=0;y`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`);let o=r.shape[0],l=r.shape[1],u=r.shape[2],p=r.shape[3],d=l*s,c=u*s,h=p/(s*s),m=n.data.get(r.dataId).values,f=new Float32Array(o*d*c*h),g=0;for(let y=0;y`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let h=N.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!0),{filterHeight:m,filterWidth:f,dilationHeight:g,dilationWidth:y,padInfo:b}=h,x=b.left,w=b.top,I=h.outChannels/h.inChannels,T=new Ht(h.outShape,r.dtype),C=n.data.get(r.dataId).values,E=n.data.get(s.dataId).values,$=T.values;for(let R=0;R=h.inHeight)continue;let K=G*d[0],Z=F+q*p[1];for(let J=0;J=h.inWidth)continue;let oe=K+te*d[1],ye=Z+ie*h.inChannels,ue=ee,be=oe;for(let ke=0;ke{let{x:a,filter:r}=e,{strides:s,pad:i,dilations:o}=n,l=t,u=l.data.get(a.dataId).values,p=a.shape.length,d=l.data.get(r.dataId).values,c=r.shape.length,{batchSize:h,inHeight:m,inWidth:f,inChannels:g,outHeight:y,outWidth:b,padInfo:x,strideHeight:w,strideWidth:I,filterHeight:T,filterWidth:C,dilationHeight:E,dilationWidth:$,outShape:R}=N.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),F=v.sizeFromShape(R),S=R.length,M=v.getArrayFromDType(a.dtype,F);for(let B=0;B=0&&te=0&&oeJ&&(J=be)}}}let ee=v.locToIndex([B,U,q,Z],S,v.computeStrides(R));M[ee]=J}}}return{dataId:l.write(v.toTypedArray(M,a.dtype),R,a.dtype),shape:R,dtype:a.dtype}}},h8={kernelName:Ah,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,p=v.toNestedArray(a.shape,u.data.get(a.dataId).values),d=v.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:x,strideWidth:w,filterHeight:I,filterWidth:T,dilationHeight:C,dilationWidth:E,outShape:$}=N.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);v.assert(s.rank===$.length,()=>`Error in ${Ah}, dy must have the same rank as output ${$.length}, but got ${s.rank}`);let R=v.toNestedArray($,u.data.get(s.dataId).values),F=v.makeZerosNestedTypedArray(r.shape,r.dtype);for(let S=0;S=0&&ae=0&&ieK&&(K=oe,Z=ee,J=te)}}}F[Z][J][q]+=R[S][M][U][q]}}}return{dataId:u.write(v.toTypedArray(F,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},m8={kernelName:$h,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,p=v.toNestedArray(a.shape,u.data.get(a.dataId).values),d=v.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:x,strideWidth:w,filterHeight:I,filterWidth:T,dilationHeight:C,dilationWidth:E,outShape:$}=N.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);v.assert(s.rank===$.length,()=>`Error in ${$h}, dy must have the same rank as output ${$.length}, but got ${s.rank}`);let R=v.toNestedArray($,u.data.get(s.dataId).values),F=v.makeZerosNestedTypedArray(a.shape,a.dtype);for(let S=0;S=0&&ae=0&&ieK&&(K=oe,Z=ae,J=ie)}}}F[S][Z][J][q]+=R[S][M][U][q]}}}return{dataId:u.write(v.toTypedArray(F,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function sd(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"sum");let o;r.dtype==="bool"?o=ds({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=pr({inputs:{x:r},backend:n});let l=o.shape.length,u=v.parseAxisParam(s,o.shape),p=N.getAxesPermutation(u,l),d=u,c=o;p!=null&&(c=Vn({inputs:{x:o},backend:n,attrs:{perm:p}}),d=N.getInnerMostAxes(d.length,l)),N.assertAxesAreInnerMostDims("sum",d,c.shape.length);let[h,m]=N.computeOutAndReduceShapes(c.shape,d),f=N.upcastType(c.dtype,"int32"),g=Zh(n,h,f),y=v.sizeFromShape(m),b=n.data.get(g.dataId).values,x=n.data.get(c.dataId).values;for(let w=0;w=0&&(c=sd({inputs:{x:c},backend:n,attrs:{axis:u[f]-(i.length-h),keepDims:!1}}),m.push(c)),h--)}for(let f of m)f!==c&&n.disposeIntermediateTensorInfo(f);return c}var y8={kernelName:km,backendName:"cpu",kernelFunc:g8};function b8(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t;ge([a,r],"eluGrad");let s=new Float32Array(v.sizeFromShape(r.shape)),i=n.data.get(r.dataId).values,o=n.data.get(a.dataId).values;for(let l=0;l=1?s[l]=o[l]:s[l]=o[l]*(u+1)}return n.makeTensorInfo(r.shape,"float32",s)}var x8={kernelName:Im,backendName:"cpu",kernelFunc:b8},v8=N.ERF_P,w8=N.ERF_A1,k8=N.ERF_A2,I8=N.ERF_A3,S8=N.ERF_A4,T8=N.ERF_A5,N8=rt(Kl,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+v8*n);return t*(1-((((T8*a+S8)*a+I8)*a+k8)*a+w8)*a*Math.exp(-n*n))}),C8={kernelName:Kl,backendName:"cpu",kernelFunc:N8};function em(e){let{inputs:t,backend:n,attrs:a}=e,{input:r}=t,{dim:s}=a,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(v.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),ft({inputs:{x:r},backend:n,attrs:{shape:o}})}var _8={kernelName:Yl,backendName:"cpu",kernelFunc:em},E8=Vt((e,t)=>e/t),q0=nn(Ci,E8),dx={kernelName:Ci,backendName:"cpu",kernelFunc:q0};function r_(e,t,n){let a=e.shape,r=a[0],s=a[1],i=n.data.get(e.dataId),o=i.complexTensorInfos.real,l=i.complexTensorInfos.imag,u=[r,s],p=v.sizeFromShape(u),d=v.getTypedArrayFromDType("float32",p),c=v.getTypedArrayFromDType("float32",p);for(let g=0;g{let{image:a}=e,r=n,s=v.getTypedArrayFromDType(a.dtype,v.sizeFromShape(a.shape)),[i,o,l,u]=a.shape,p=r.data.get(a.dataId).values;for(let d=0;d=0&&bMath.floor(e/t)),z8=nn(Ai,L8,null,"int32"),W8={kernelName:Ai,backendName:"cpu",kernelFunc:z8};function B8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=n_({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c}});if(i){let g=f;if(p==="NCHW"&&i.shape.length===1&&i.shape[0]!==1){let y=ft({inputs:{x:i},backend:n,attrs:{shape:[i.shape[0],1,1]}});f=_l({inputs:{a:f,b:y},backend:n}),n.disposeIntermediateTensorInfo(y)}else f=_l({inputs:{a:f,b:i},backend:n});n.disposeIntermediateTensorInfo(g)}if(h){let g=f;if(p==="NCHW"&&h==="prelu"&&o.shape.length===1&&o.shape[0]!==1){let y=ft({inputs:{x:o},backend:n,attrs:{shape:[o.shape[0],1,1]}});f=Qh(n,f,h,y,m),n.disposeIntermediateTensorInfo(y)}else f=Qh(n,f,h,o,m);n.disposeIntermediateTensorInfo(g)}return f}var V8={kernelName:ei,backendName:"cpu",kernelFunc:B8};function U8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=a_({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c}});if(i){let g=f;f=_l({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=Qh(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var G8={kernelName:ti,backendName:"cpu",kernelFunc:U8};function H8(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=v.sizeFromShape(a.shape),i=r.shape,o=i[i.length-1],[l,u,p,d]=N.prepareAndValidate(a,r);if(u===0)return n.makeTensorInfo(l,a.dtype,[]);let c=n.data.get(r.dataId).values,h=n.bufferSync(a),m=vC(c,h,a.dtype,u,o,p,d,a.shape,s);return n.makeTensorInfo(l,a.dtype,m.values)}var j8={kernelName:eu,backendName:"cpu",kernelFunc:H8};function q8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,indices:s}=t,{axis:i,batchDims:o}=a;ge([r,s],"gatherV2");let l=v.parseAxisParam(i,r.shape)[0],u=n.data.get(s.dataId).values,p=r.shape[l];for(let w=0;w=0,()=>`GatherV2: the index value ${I} is not in [0, ${p-1}]`)}let d=o;o==null&&(d=0);let c=v.sizeFromShape(s.shape),h=N.segment_util.collectGatherOpShapeInfo(r,s,l,d),m=ft({inputs:{x:r},backend:n,attrs:{shape:[h.batchSize,h.outerSize,h.dimSize,h.sliceSize]}}),f=ft({inputs:{x:s},backend:n,attrs:{shape:[h.batchSize,c/h.batchSize]}}),g=[h.batchSize,h.outerSize,c/h.batchSize,h.sliceSize],y=n.bufferSync(f),b=n.bufferSync(m),x=wC(b,y,g);return n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),n.makeTensorInfo(h.outputShape,x.dtype,x.values)}var K8={kernelName:Ql,backendName:"cpu",kernelFunc:q8};function X8(e){let{inputs:t,backend:n}=e,{input:a}=t,r=v.sizeFromShape(a.shape),s=a.shape[a.shape.length-1],i=r/s,o=ft({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=r_(o,!0,n),u=ft({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),u}var Y8={kernelName:Tm,backendName:"cpu",kernelFunc:X8},Z8=rt(nu,e=>Number.isFinite(e)?1:0,"bool"),J8={kernelName:nu,backendName:"cpu",kernelFunc:Z8},Q8=rt(au,e=>Math.abs(e)===1/0?1:0,"bool"),eK={kernelName:au,backendName:"cpu",kernelFunc:Q8},tK=rt(ru,e=>Number.isNaN(e)?1:0,"bool"),nK={kernelName:ru,backendName:"cpu",kernelFunc:tK};function aK(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=NC(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var rK={kernelName:Cm,backendName:"cpu",kernelFunc:aK},sK=rt(ou,e=>Math.log1p(e)),iK={kernelName:ou,backendName:"cpu",kernelFunc:sK},oK=Vt((e,t)=>e&&t),lK=nn(lu,oK,null,"bool"),uK={kernelName:lu,backendName:"cpu",kernelFunc:lK},pK=rt(uu,e=>e?0:1,"bool"),cK={kernelName:uu,backendName:"cpu",kernelFunc:pK},dK=Vt((e,t)=>e||t),hK=nn(pu,dK,null,"bool"),mK={kernelName:pu,backendName:"cpu",kernelFunc:hK};function fK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;ge(r,"LRN");let u=r.shape[3],p=u-1,d=n.data.get(r.dataId).values,c=v.sizeFromShape(r.shape),h=new Float32Array(c);function m(f){let g=f%u,y=f-g+Math.max(0,g-s),b=f-g+Math.min(g+s,p),x=0;for(;y<=b;y++){let w=d[y];x+=w*w}return x}for(let f=0;f`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=N.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))d=pr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=v.computeStrides(r.shape),m=j0(c,r.shape,r.dtype,h,p,"max");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var wK={kernelName:zi,backendName:"cpu",kernelFunc:vK};function kK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ge(r,"maxPool3d");let p=N.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=t_(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"max");return n.makeTensorInfo(c.shape,"float32",c.values)}var IK={kernelName:bc,backendName:"cpu",kernelFunc:kK};function SK(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ge([r,s],"maxPool3DGrad");let p=N.computePool3DInfo(s.shape,i,o,1,l,u),d=n.bufferSync(s),c=c5(d,p),h=p.strideDepth,m=p.strideHeight,f=p.strideWidth,g=p.dilationDepth,y=p.dilationHeight,b=p.dilationWidth,x=p.effectiveFilterDepth,w=p.effectiveFilterHeight,I=p.effectiveFilterWidth,T=x-1-p.padInfo.front,C=I-1-p.padInfo.left,E=w-1-p.padInfo.top,$=Oe(s.shape,"float32"),R=n.bufferSync(r);for(let F=0;F=p.outDepth||Math.floor(ee)!==ee))for(let ae=0;ae=p.outHeight||Math.floor(te)!==te))for(let ie=0;ie=p.outWidth||Math.floor(oe)!==oe)continue;let ye=x*w*I-1-c.get(F,ee,te,oe,S),ue=J*w*I+ae*I+ie,be=ye===ue?1:0;if(be===0)continue;let ke=R.get(F,ee,te,oe,S);Z+=ke*be}}}$.set(Z,F,M,B,U,S)}return n.makeTensorInfo($.shape,$.dtype,$.values)}var TK={kernelName:$m,backendName:"cpu",kernelFunc:SK};function NK(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;ge([s,i],"maxPoolGrad");let{filterSize:l,strides:u,pad:p,dimRoundingMode:d}=a,c=N.computePool2DInfo(o.shape,l,u,1,p,d),h=n.data.get(o.dataId).values,m=Oe(c.outShape,o.dtype,e_(h,o.shape,o.dtype,c).values),f=c.strideHeight,g=c.strideWidth,y=c.dilationHeight,b=c.dilationWidth,x=c.effectiveFilterHeight,w=c.effectiveFilterWidth,I=w-1-c.padInfo.left,T=x-1-c.padInfo.top,C=Oe(o.shape,"float32"),E=n.data.get(r.dataId).values,$=Oe(r.shape,"float32",E);for(let R=0;R=c.outHeight||Math.floor(K)!==K))for(let Z=0;Z=c.outWidth||Math.floor(J)!==J)continue;let ee=x*w-1-m.get(R,K,J,F),ae=q*w+Z,te=ee===ae?1:0;if(te===0)continue;let ie=$.get(R,K,J,F);G+=ie*te}}C.set(G,R,S,M,F)}return n.makeTensorInfo(C.shape,C.dtype,C.values)}var CK={kernelName:Em,backendName:"cpu",kernelFunc:NK};function _K(e,t,n,a,r){let s=v.computeStrides(t),i=j0(e,t,n,s,r,"max"),o=e_(e,t,n,r,!0,a);return[i.values,o.values]}var EK={kernelName:Am,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;ge(a,"MaxPoolWithArgmax");let u=l.data.get(a.dataId).values,p=N.computePool2DInfo(a.shape,r,s,[1,1],i),[d,c]=_K(u,a.shape,a.dtype,o,p),h=l.write(d,p.outShape,a.dtype),m=l.write(c,p.outShape,a.dtype);return[{dataId:h,shape:p.outShape,dtype:a.dtype},{dataId:m,shape:p.outShape,dtype:"int32"}]}};function $K(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=v.parseAxisParam(s,r.shape),l=N.computeOutAndReduceShapes(r.shape,o)[1],u=v.sizeFromShape(l),p=[],d=n.makeTensorInfo([],"float32",new Float32Array([u]));p.push(d);let c=ds({inputs:{x:r},backend:n,attrs:{dtype:"float32"}});p.push(c);let h=q0({inputs:{a:c,b:d},backend:n});p.push(h);let m=sd({inputs:{x:h},backend:n,attrs:{axis:s,keepDims:i}});return p.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var AK={kernelName:Wi,backendName:"cpu",kernelFunc:$K};function FK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"min");let o=v.parseAxisParam(s,r.shape),l=o,u=N.getAxesPermutation(l,r.shape.length),p=r;u!=null&&(p=Vn({inputs:{x:r},backend:n,attrs:{perm:u}}),l=N.getInnerMostAxes(l.length,r.shape.length)),N.assertAxesAreInnerMostDims("min",l,p.shape.length);let[d,c]=N.computeOutAndReduceShapes(p.shape,l),h=v.sizeFromShape(c),m=v.makeZerosTypedArray(v.sizeFromShape(d),p.dtype),f=n.data.get(p.dataId).values;for(let y=0;yb[0]+r.shape[x]+b[1]),l=s.map(b=>b[0]),u=s.map((b,x)=>b[0]+r.shape[x]),p=i==="reflect"?0:1,d=n.data.get(r.dataId).values,c=r.shape.length,h=v.computeStrides(r.shape),m=v.sizeFromShape(o),f=o.length,g=v.computeStrides(o),y=v.getTypedArrayFromDType(r.dtype,m);for(let b=0;b=u[I]&&(x[I]=(u[I]-1)*2-x[I]+p);x=x.map((I,T)=>I-l[T]);let w=v.locToIndex(x,c,h);y[b]=d[w]}return{dataId:n.write(y,o,r.dtype),shape:o,dtype:r.dtype}}var MK={kernelName:Ui,backendName:"cpu",kernelFunc:RK},PK=Vt((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),OK=nn(cu,PK),LK={kernelName:cu,backendName:"cpu",kernelFunc:OK},zK=ms(im());function i_(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=r.shape.length,o=s;if(o===-1&&(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}`);let l=v.parseAxisParam([o],r.shape),u=s_({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),p=N.expandShapeToKeepDim(u.shape,l),d=ft({inputs:{x:u},backend:n,attrs:{shape:p}}),c=H0({inputs:{a:r,b:d},backend:n}),h=yC({inputs:{x:c},backend:n}),m=sd({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=ft({inputs:{x:m},backend:n,attrs:{shape:p}}),g=q0({inputs:{a:h,b:f},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var WK={kernelName:oo,backendName:"cpu",kernelFunc:i_};function BK(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;ge(r,"multinomial");let l=o?r:i_({inputs:{logits:r},backend:n,attrs:{dim:-1}}),u=l.shape[0],p=l.shape[1],d=n.data.get(l.dataId).values,c=[u,s],h=v.makeZerosTypedArray(v.sizeFromShape(c),"int32");for(let m=0;m=0&&d[c]{v.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),v.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=em({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=$l({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var nX={kernelName:bu,backendName:"cpu",kernelFunc:l_};function aX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;ge(r,"pad");let o=s.map((y,b)=>y[0]+r.shape[b]+y[1]),l=s.map(y=>y[0]),u=n.data.get(r.dataId).values,p=v.sizeFromShape(r.shape),d=r.shape.length,c=v.computeStrides(r.shape),h=v.sizeFromShape(o),m=o.length,f=v.computeStrides(o),g=v.getTypedArrayFromDType(r.dtype,h);i!==0&&g.fill(i);for(let y=0;yw+l[I]),x=v.locToIndex(b,m,f);g[x]=u[y]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var u_={kernelName:ji,backendName:"cpu",kernelFunc:aX},rX=Vt((e,t)=>Math.pow(e,t)),sX=nn(qi,rX),iX={kernelName:qi,backendName:"cpu",kernelFunc:sX};function oX(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(y=>n.data.get(y.dataId).values),u=r.map(y=>y.shape),p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,[c,h,m]=RC(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(y=>n.makeTensorInfo([y.length],"int32",y)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var lX={kernelName:Dm,backendName:"cpu",kernelFunc:oX};function uX(e){let{inputs:t,backend:n}=e,{starts:a,limits:r,deltas:s}=t,i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=MC(i,a.shape,a.dtype,o,r.shape,l,s.shape),d=n.makeTensorInfo([u.length],"int32",u),c=n.makeTensorInfo([p.length],a.dtype,p);return[d,c]}var pX={kernelName:Rm,backendName:"cpu",kernelFunc:uX};function cX(e){let{inputs:t,backend:n,attrs:a}=e,{shape:r,values:s,defaultValue:i,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=a,u=n.data.get(r.dataId).values,p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,c=o.map(g=>n.data.get(g.dataId).values),h=o.map(g=>g.shape),[m,f]=PC(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var dX={kernelName:Mm,backendName:"cpu",kernelFunc:cX};function hX(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=W0(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var mX={kernelName:xc,backendName:"cpu",kernelFunc:hX},fX=rt(xu,e=>1/e),gX={kernelName:xu,backendName:"cpu",kernelFunc:fX};function yX(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a;ge(r,"resizeBilinear");let l=v.computeStrides(r.shape),[u,p]=o,[d,c,h,m]=r.shape,f=n.data.get(r.dataId).values,g=new Float32Array(v.sizeFromShape([d,u,p,m])),y=[s&&u>1?c-1:c,s&&p>1?h-1:h],b=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=0,w=y[0]/b[0],I=y[1]/b[1];for(let T=0;T1?u-1:u,i&&h>1?p-1:p],g=[i&&c>1?c-1:c,i&&h>1?h-1:h],y=f[0]/g[0],b=f[1]/g[1],x=n.data.get(s.dataId).values,w=0;for(let I=0;I1?c-1:c,s&&p>1?h-1:h],b=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=y[0]/b[0],w=y[1]/b[1],I=0;for(let T=0;T1?p-1:p,i&&m>1?d-1:d],b=[i&&h>1?h-1:h,i&&m>1?m-1:m],x=y[0]/b[0],w=y[1]/b[1],I=1/x,T=1/w,C=Math.ceil(I)*2+2,E=Math.ceil(T)*2+2;for(let $=0;$=h)continue;let te=R+ae*l[1],ie=ae*x,oe=Math.min(p-1,i?Math.round(ie):Math.floor(ie));if(F===oe)for(let ye=0;ye=m)continue;let be=te+ue*l[2],ke=ue*w,Se=Math.min(d-1,i?Math.round(ke):Math.floor(ke));U===Se&&(J+=g[be+Z])}}f[G+Z]=J}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var SX={kernelName:Om,backendName:"cpu",kernelFunc:IX};function TX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a;ge(r,"reverse");let i=r.shape.length,o=v.parseAxisParam(s,r.shape);if(i===0)return pr({inputs:{x:r},backend:n});let l=new Ht(r.shape,r.dtype),u=n.bufferSync(r);for(let p=0;pc[h]=r.shape[h]-1-c[h]),l.set(u.get(...c),...d)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}var NX={kernelName:eo,backendName:"cpu",kernelFunc:TX},CX={kernelName:Pu,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=v.getTypedArrayFromDType(a.dtype,v.sizeFromShape(a.shape)),[u,p,d,c]=a.shape,[h,m]=N.getImageCenter(i,p,d),f=255,g=Math.sin(r),y=Math.cos(r),b=o.data.get(a.dataId).values;for(let x=0;x=0&&M=0&&B{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2===0?t:t+1}),EX={kernelName:to,backendName:"cpu",kernelFunc:_X};function $X(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r,updates:s}=t,{shape:i}=a,{sliceRank:o,numUpdates:l,sliceSize:u,strides:p,outputSize:d}=N.calculateShapes(s,r,i),c=!0,h=n.bufferSync(r),m=n.bufferSync(s),f=ll(h,m,i,d,u,l,o,p,0,c);return n.makeTensorInfo(i,f.dtype,f.values)}var AX={kernelName:wu,backendName:"cpu",kernelFunc:$X};function FX(e,t){let n=0,a=e.length,r=0;for(;n1||r.shape.length===1?1:v.sizeFromShape(r.shape.slice(1));for(let m=0;me>=0?WX*e:zX*(Math.exp(e)-1)),VX={kernelName:Iu,backendName:"cpu",kernelFunc:BX},UX=rt(Nu,e=>e<0?-1:e>0?1:0),GX={kernelName:Nu,backendName:"cpu",kernelFunc:UX},HX=rt(ao,e=>Math.sin(e)),jX={kernelName:ao,backendName:"cpu",kernelFunc:HX},qX=rt(Tu,e=>Math.sinh(e)),KX={kernelName:Tu,backendName:"cpu",kernelFunc:qX},XX=11920928955078125e-23,pI=Math.log(XX)+2,YX=rt(Cu,e=>{let t=e>-pI,n=eNumber(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var tY={kernelName:vc,backendName:"cpu",kernelFunc:eY};function nY(e){let{inputs:t,backend:n}=e,{inputIndices:a,inputShape:r,newShape:s}=t;if(a.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${a.shape}`);if(r.shape.length!==1)throw new Error(`Input shape should be a vector but received shape - ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(n.data.get(r.dataId).values),o=n.data.get(a.dataId).values,l=Array.from(n.data.get(s.dataId).values),[u,p,d]=WC(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var aY={kernelName:Au,backendName:"cpu",kernelFunc:nY};function rY(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(n.data.get(r.dataId).values),o=n.data.get(a.dataId).values,l=Array.from(n.data.get(s.dataId).values),[u,p,d]=WC(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var aY={kernelName:$u,backendName:"cpu",kernelFunc:nY};function rY(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape ${s.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=B0(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var sY={kernelName:wc,backendName:"cpu",kernelFunc:rY};function iY(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=B0(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var oY={kernelName:kc,backendName:"cpu",kernelFunc:iY};function lY(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=N.calculateShapes(s,r,o),h=!1,m=n.bufferSync(r),f;switch(s.dtype){case"bool":{let g=n.bufferSync(s),y=Boolean(n.data.get(i.dataId).values[0]);f=ll(m,g,o,c,p,u,l,d,y,h);break}case"float32":{let g=n.bufferSync(s),y=n.data.get(i.dataId).values[0];f=ll(m,g,o,c,p,u,l,d,y,h);break}case"int32":{let g=n.bufferSync(s),y=n.data.get(i.dataId).values[0];f=ll(m,g,o,c,p,u,l,d,y,h);break}case"string":{let g=n.bufferSync(s),y=v.decodeString(n.data.get(i.dataId).values[0]);f=ll(m,g,o,c,p,u,l,d,y,h);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return n.makeTensorInfo(o,f.dtype,f.values)}var uY={kernelName:Wm,backendName:"cpu",kernelFunc:lY};function pY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=v.parseAxisParam(i,r.shape)[0],l=N.prepareSplitSize(r,s,o),u=new Array(r.shape.length).fill(0),p=r.shape.slice();return l.map(d=>{let c=[...p];c[o]=d;let h=pi({inputs:{x:r},backend:n,attrs:{begin:u,size:c}});return u[o]+=d,h})}var cY={kernelName:Eu,backendName:"cpu",kernelFunc:pY},dY={kernelName:Ic,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:n}=e,a=t;ge(n,"square");let r=a.data.get(n.dataId).values,s=new Float32Array(r.length);for(let i=0;i{let n=t;return isNaN(e)?NaN:e>0?1:n.alpha}),mY={kernelName:xs,backendName:"cpu",kernelFunc:hY};function fY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a;ge(r,"stridedSlice");let{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:y,begin:b,end:x,strides:w}=jt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=ft({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||y){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=jt.computeOutShape(b,x,w),C=pi({inputs:{x:r},backend:n,attrs:{begin:b,size:T}});I=ft({inputs:{x:C},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(C)}else{let T=n.bufferSync(r),C=VC(h,T,w,b);I=n.makeTensorInfo(m,C.dtype,C.values)}return I}var gY={kernelName:$u,backendName:"cpu",kernelFunc:fY};function yY(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.data.get(p.dataId).values,h=n.data.get(d.dataId).values,[m,f]=V0(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var bY={kernelName:Sc,backendName:"cpu",kernelFunc:yY};function xY(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values[0],[u,p,d]=U0(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var vY={kernelName:Tc,backendName:"cpu",kernelFunc:xY};function wY(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.data.get(s.dataId).values,o=G0(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var kY={kernelName:Nc,backendName:"cpu",kernelFunc:wY},IY=rt(po,e=>Math.tan(e)),SY={kernelName:po,backendName:"cpu",kernelFunc:IY},TY=rt(co,e=>Math.tanh(e)),NY={kernelName:co,backendName:"cpu",kernelFunc:TY};function CY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;ge(r,"tile");let i=GC(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var _Y={kernelName:bs,backendName:"cpu",kernelFunc:CY};function EY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a;ge(r,"topk");let o=n.data.get(r.dataId).values,[l,u]=jC(o,r.shape,r.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(u.shape,u.dtype,u.values)]}var AY={kernelName:Fu,backendName:"cpu",kernelFunc:EY};function $Y(e){let{inputs:t,attrs:n,backend:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=n,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],y=v.computeStrides(r.shape),b=y[0],x=y[1],w=y[2],I=v.computeStrides(g),T=I[0],C=I[1],E=I[2],A=v.getTypedArrayFromDType(r.dtype,v.sizeFromShape(g));A.fill(l);let R=a.data.get(r.dataId).values,F=a.data.get(s.dataId).values;for(let S=0;St-1)if(t<=1)n=0;else{let a=2*t;n-=a*Math.trunc(n/a),n>=t&&(n=a-n-1)}return v.clamp(0,n,t-1)}function RY(e,t){let n=e;if(n<0)if(t<=1)n=0;else{let a=t-1;n+=t*(Math.trunc(-n/a)+1)}else if(n>t-1)if(t<=1)n=0;else{let a=t-1;n-=t*Math.trunc(n/a)}return v.clamp(0,n,t-1)}function MY(e,t){return e}function PY(e,t){return v.clamp(0,e,t-1)}function Lp(e,t,n,a,r,s,i,o,l,u,p){let d=i*a+o*r+l*s+u;return 0<=o&&on.disposeIntermediateTensorInfo(m)),h}var GY={kernelName:Cc,backendName:"cpu",kernelFunc:UY},HY=[zq,Nj,Bq,Uq,Fj,Hq,qq,Xq,Zq,Qq,t5,a5,s5,l5,p5,h5,f5,y5,x5,Oq,w5,I5,T5,C5,Aj,Rj,E5,Cj,$5,D5,R5,P5,L5,W5,V5,G5,j5,K5,Y5,J5,e8,n8,r8,s8,o8,u8,c8,d8,h8,m8,y8,Aq,x8,Mj,C8,Pj,_8,Lj,R8,M8,O8,Wj,W8,V8,G8,j8,K8,Vj,Gj,_j,Y8,F5,J8,eK,nK,$q,jj,Kj,rK,Yj,iK,uK,cK,mK,gK,bK,xK,Jj,wK,IK,TK,CK,EK,$K,DK,eq,MK,LK,VK,nq,rq,HK,KK,ZK,iq,QK,tX,nX,u_,iX,Dq,uq,lX,pX,dX,mX,Ej,dx,gX,Rq,Mq,Pq,bX,vX,kX,SX,NX,CX,EX,yq,$X,PX,LX,VX,xq,GX,jX,KX,vq,WK,ZX,QX,tY,aY,sY,oY,uY,cY,Iq,dY,Tq,mY,gY,bY,vY,kY,Eq,f8,SY,NY,_Y,AY,FY,oq,WY,VY,GY,eX];for(let e of HY)_c(e);var p_={};Ae(p_,{assertNotComplex:()=>Yu,bindCanvasToFramebuffer:()=>nZ,bindColorTextureToFramebuffer:()=>kh,bindTextureToProgramUniformSampler:()=>N_,bindTextureUnit:()=>I_,bindVertexBufferToProgramAttribute:()=>mx,callAndCheck:()=>me,canBeRepresented:()=>d_,createFragmentShader:()=>f_,createFramebuffer:()=>k_,createProgram:()=>g_,createStaticIndexBuffer:()=>x_,createStaticVertexBuffer:()=>b_,createTexture:()=>v_,createVertexShader:()=>m_,getBatchDim:()=>ci,getExtensionOrThrow:()=>zp,getFramebufferErrorMessage:()=>C_,getMaxTexturesInShader:()=>$_,getNumChannels:()=>eZ,getProgramUniformLocation:()=>T_,getProgramUniformLocationOrThrow:()=>S_,getRowsCols:()=>di,getShapeAs3D:()=>Bp,getTextureShapeFromLogicalShape:()=>E_,getWebGLDisjointQueryTimerVersion:()=>F_,getWebGLErrorMessage:()=>h_,getWebGLMaxTextureSize:()=>A_,hasExtension:()=>da,isCapableOfRenderingToFloatTexture:()=>D_,isDownloadFloatTextureEnabled:()=>R_,isReshapeFree:()=>sc,isWebGLFenceEnabled:()=>M_,isWebGLVersionEnabled:()=>gx,linkProgram:()=>y_,logShaderSourceAndInfoLog:()=>Y0,resetMaxTextureSize:()=>aZ,resetMaxTexturesInShader:()=>rZ,unbindColorTextureFromFramebuffer:()=>fx,unbindTextureUnit:()=>tZ,validateFramebuffer:()=>Wp,validateProgram:()=>wh,validateTextureSize:()=>w_});var Gs={},mh={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function c_(e,t){Gs[e]=t}function qa(e,t){if(!(e in Gs)||t!=null){let a=qY(e,t);if(a!==null)Gs[e]=a;else return console.log("Could not get context for WebGL version",e),null}let n=Gs[e];return n==null||n.isContextLost()?(delete Gs[e],qa(e)):(n.disable(n.DEPTH_TEST),n.disable(n.STENCIL_TEST),n.disable(n.BLEND),n.disable(n.DITHER),n.disable(n.POLYGON_OFFSET_FILL),n.disable(n.SAMPLE_COVERAGE),n.enable(n.SCISSOR_TEST),n.enable(n.CULL_FACE),n.cullFace(n.BACK),Gs[e])}function jY(e){if(typeof OffscreenCanvas!="undefined"&&e===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function qY(e,t){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let n=t==null?jY(e):t;return n.addEventListener("webglcontextlost",a=>{a.preventDefault(),delete Gs[e]},!1),H().getBool("SOFTWARE_WEBGL_ENABLED")&&(mh.failIfMajorPerformanceCaveat=!1),e===1?n.getContext("webgl",mh)||n.getContext("experimental-webgl",mh):n.getContext("webgl2",mh)}var rc;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(rc||(rc={}));var ca;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(ca||(ca={}));var ln;(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"})(ln||(ln={}));function id(e,t){return[t,e]}function KY(e,t){return e*t}function fh(e){let t=v.sizeFromShape(e),n=Math.ceil(t/4);return v.sizeToSquarishShape(n)}function Xu(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function XY(e,t){let[n,a]=Xu(e,t);return n*a*4}function X0(e,t){let n=e,a,r,s,i,o,l,u,p,d,c;return H().getNumber("WEBGL_VERSION")===2?(a=n.R32F,r=n.R16F,s=n.RGBA16F,i=n.RGBA32F,o=n.RED,u=4,p=1,d=n.HALF_FLOAT,c=n.FLOAT,l=n.RGBA8):(a=e.RGBA,r=e.RGBA,s=e.RGBA,i=n.RGBA,o=e.RGBA,u=4,p=4,d=t!=null?t.HALF_FLOAT_OES:null,c=e.FLOAT,l=e.RGBA),{internalFormatFloat:a,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:u,defaultNumChannels:p,textureTypeHalfFloat:d,textureTypeFloat:c}}function me(e,t){let n=t();return H().getBool("DEBUG")&&YY(e),n}function YY(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+h_(e,t))}var ZY=596e-10,JY=65504;function d_(e){return!!(H().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||ZYe.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function m_(e,t){let n=Mr(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(me(e,()=>e.shaderSource(n,t)),me(e,()=>e.compileShader(n)),e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw console.log(e.getShaderInfoLog(n)),new Error("Failed to compile vertex shader.");return n}function f_(e,t){let n=Mr(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(me(e,()=>e.shaderSource(n,t)),me(e,()=>e.compileShader(n)),H().get("ENGINE_COMPILE_ONLY"))return n;if(e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw Y0(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var QY=/ERROR: [0-9]+:([0-9]+):/g;function Y0(e,t){let n=QY.exec(t);if(n==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(e);return}let a=+n[1],r=e.split(` + ${s.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=B0(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var oY={kernelName:kc,backendName:"cpu",kernelFunc:iY};function lY(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=N.calculateShapes(s,r,o),h=!1,m=n.bufferSync(r),f;switch(s.dtype){case"bool":{let g=n.bufferSync(s),y=Boolean(n.data.get(i.dataId).values[0]);f=ll(m,g,o,c,p,u,l,d,y,h);break}case"float32":{let g=n.bufferSync(s),y=n.data.get(i.dataId).values[0];f=ll(m,g,o,c,p,u,l,d,y,h);break}case"int32":{let g=n.bufferSync(s),y=n.data.get(i.dataId).values[0];f=ll(m,g,o,c,p,u,l,d,y,h);break}case"string":{let g=n.bufferSync(s),y=v.decodeString(n.data.get(i.dataId).values[0]);f=ll(m,g,o,c,p,u,l,d,y,h);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return n.makeTensorInfo(o,f.dtype,f.values)}var uY={kernelName:Wm,backendName:"cpu",kernelFunc:lY};function pY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=v.parseAxisParam(i,r.shape)[0],l=N.prepareSplitSize(r,s,o),u=new Array(r.shape.length).fill(0),p=r.shape.slice();return l.map(d=>{let c=[...p];c[o]=d;let h=pi({inputs:{x:r},backend:n,attrs:{begin:u,size:c}});return u[o]+=d,h})}var cY={kernelName:Eu,backendName:"cpu",kernelFunc:pY},dY={kernelName:Ic,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:n}=e,a=t;ge(n,"square");let r=a.data.get(n.dataId).values,s=new Float32Array(r.length);for(let i=0;i{let n=t;return isNaN(e)?NaN:e>0?1:n.alpha}),mY={kernelName:xs,backendName:"cpu",kernelFunc:hY};function fY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a;ge(r,"stridedSlice");let{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:y,begin:b,end:x,strides:w}=jt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=ft({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||y){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=jt.computeOutShape(b,x,w),C=pi({inputs:{x:r},backend:n,attrs:{begin:b,size:T}});I=ft({inputs:{x:C},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(C)}else{let T=n.bufferSync(r),C=VC(h,T,w,b);I=n.makeTensorInfo(m,C.dtype,C.values)}return I}var gY={kernelName:Au,backendName:"cpu",kernelFunc:fY};function yY(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.data.get(p.dataId).values,h=n.data.get(d.dataId).values,[m,f]=V0(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var bY={kernelName:Sc,backendName:"cpu",kernelFunc:yY};function xY(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values[0],[u,p,d]=U0(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var vY={kernelName:Tc,backendName:"cpu",kernelFunc:xY};function wY(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.data.get(s.dataId).values,o=G0(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var kY={kernelName:Nc,backendName:"cpu",kernelFunc:wY},IY=rt(po,e=>Math.tan(e)),SY={kernelName:po,backendName:"cpu",kernelFunc:IY},TY=rt(co,e=>Math.tanh(e)),NY={kernelName:co,backendName:"cpu",kernelFunc:TY};function CY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;ge(r,"tile");let i=GC(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var _Y={kernelName:bs,backendName:"cpu",kernelFunc:CY};function EY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a;ge(r,"topk");let o=n.data.get(r.dataId).values,[l,u]=jC(o,r.shape,r.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(u.shape,u.dtype,u.values)]}var $Y={kernelName:Fu,backendName:"cpu",kernelFunc:EY};function AY(e){let{inputs:t,attrs:n,backend:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=n,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],y=v.computeStrides(r.shape),b=y[0],x=y[1],w=y[2],I=v.computeStrides(g),T=I[0],C=I[1],E=I[2],$=v.getTypedArrayFromDType(r.dtype,v.sizeFromShape(g));$.fill(l);let R=a.data.get(r.dataId).values,F=a.data.get(s.dataId).values;for(let S=0;St-1)if(t<=1)n=0;else{let a=2*t;n-=a*Math.trunc(n/a),n>=t&&(n=a-n-1)}return v.clamp(0,n,t-1)}function RY(e,t){let n=e;if(n<0)if(t<=1)n=0;else{let a=t-1;n+=t*(Math.trunc(-n/a)+1)}else if(n>t-1)if(t<=1)n=0;else{let a=t-1;n-=t*Math.trunc(n/a)}return v.clamp(0,n,t-1)}function MY(e,t){return e}function PY(e,t){return v.clamp(0,e,t-1)}function Lp(e,t,n,a,r,s,i,o,l,u,p){let d=i*a+o*r+l*s+u;return 0<=o&&on.disposeIntermediateTensorInfo(m)),h}var GY={kernelName:Cc,backendName:"cpu",kernelFunc:UY},HY=[zq,Nj,Bq,Uq,Fj,Hq,qq,Xq,Zq,Qq,t5,a5,s5,l5,p5,h5,f5,y5,x5,Oq,w5,I5,T5,C5,$j,Rj,E5,Cj,A5,D5,R5,P5,L5,W5,V5,G5,j5,K5,Y5,J5,e8,n8,r8,s8,o8,u8,c8,d8,h8,m8,y8,$q,x8,Mj,C8,Pj,_8,Lj,R8,M8,O8,Wj,W8,V8,G8,j8,K8,Vj,Gj,_j,Y8,F5,J8,eK,nK,Aq,jj,Kj,rK,Yj,iK,uK,cK,mK,gK,bK,xK,Jj,wK,IK,TK,CK,EK,AK,DK,eq,MK,LK,VK,nq,rq,HK,KK,ZK,iq,QK,tX,nX,u_,iX,Dq,uq,lX,pX,dX,mX,Ej,dx,gX,Rq,Mq,Pq,bX,vX,kX,SX,NX,CX,EX,yq,AX,PX,LX,VX,xq,GX,jX,KX,vq,WK,ZX,QX,tY,aY,sY,oY,uY,cY,Iq,dY,Tq,mY,gY,bY,vY,kY,Eq,f8,SY,NY,_Y,$Y,FY,oq,WY,VY,GY,eX];for(let e of HY)_c(e);var p_={};$e(p_,{assertNotComplex:()=>Yu,bindCanvasToFramebuffer:()=>nZ,bindColorTextureToFramebuffer:()=>kh,bindTextureToProgramUniformSampler:()=>N_,bindTextureUnit:()=>I_,bindVertexBufferToProgramAttribute:()=>mx,callAndCheck:()=>me,canBeRepresented:()=>d_,createFragmentShader:()=>f_,createFramebuffer:()=>k_,createProgram:()=>g_,createStaticIndexBuffer:()=>x_,createStaticVertexBuffer:()=>b_,createTexture:()=>v_,createVertexShader:()=>m_,getBatchDim:()=>ci,getExtensionOrThrow:()=>zp,getFramebufferErrorMessage:()=>C_,getMaxTexturesInShader:()=>A_,getNumChannels:()=>eZ,getProgramUniformLocation:()=>T_,getProgramUniformLocationOrThrow:()=>S_,getRowsCols:()=>di,getShapeAs3D:()=>Bp,getTextureShapeFromLogicalShape:()=>E_,getWebGLDisjointQueryTimerVersion:()=>F_,getWebGLErrorMessage:()=>h_,getWebGLMaxTextureSize:()=>$_,hasExtension:()=>da,isCapableOfRenderingToFloatTexture:()=>D_,isDownloadFloatTextureEnabled:()=>R_,isReshapeFree:()=>sc,isWebGLFenceEnabled:()=>M_,isWebGLVersionEnabled:()=>gx,linkProgram:()=>y_,logShaderSourceAndInfoLog:()=>Y0,resetMaxTextureSize:()=>aZ,resetMaxTexturesInShader:()=>rZ,unbindColorTextureFromFramebuffer:()=>fx,unbindTextureUnit:()=>tZ,validateFramebuffer:()=>Wp,validateProgram:()=>wh,validateTextureSize:()=>w_});var Gs={},mh={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function c_(e,t){Gs[e]=t}function qa(e,t){if(!(e in Gs)||t!=null){let a=qY(e,t);if(a!==null)Gs[e]=a;else return console.log("Could not get context for WebGL version",e),null}let n=Gs[e];return n==null||n.isContextLost()?(delete Gs[e],qa(e)):(n.disable(n.DEPTH_TEST),n.disable(n.STENCIL_TEST),n.disable(n.BLEND),n.disable(n.DITHER),n.disable(n.POLYGON_OFFSET_FILL),n.disable(n.SAMPLE_COVERAGE),n.enable(n.SCISSOR_TEST),n.enable(n.CULL_FACE),n.cullFace(n.BACK),Gs[e])}function jY(e){if(typeof OffscreenCanvas!="undefined"&&e===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function qY(e,t){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let n=t==null?jY(e):t;return n.addEventListener("webglcontextlost",a=>{a.preventDefault(),delete Gs[e]},!1),H().getBool("SOFTWARE_WEBGL_ENABLED")&&(mh.failIfMajorPerformanceCaveat=!1),e===1?n.getContext("webgl",mh)||n.getContext("experimental-webgl",mh):n.getContext("webgl2",mh)}var rc;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(rc||(rc={}));var ca;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(ca||(ca={}));var ln;(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"})(ln||(ln={}));function id(e,t){return[t,e]}function KY(e,t){return e*t}function fh(e){let t=v.sizeFromShape(e),n=Math.ceil(t/4);return v.sizeToSquarishShape(n)}function Xu(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function XY(e,t){let[n,a]=Xu(e,t);return n*a*4}function X0(e,t){let n=e,a,r,s,i,o,l,u,p,d,c;return H().getNumber("WEBGL_VERSION")===2?(a=n.R32F,r=n.R16F,s=n.RGBA16F,i=n.RGBA32F,o=n.RED,u=4,p=1,d=n.HALF_FLOAT,c=n.FLOAT,l=n.RGBA8):(a=e.RGBA,r=e.RGBA,s=e.RGBA,i=n.RGBA,o=e.RGBA,u=4,p=4,d=t!=null?t.HALF_FLOAT_OES:null,c=e.FLOAT,l=e.RGBA),{internalFormatFloat:a,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:u,defaultNumChannels:p,textureTypeHalfFloat:d,textureTypeFloat:c}}function me(e,t){let n=t();return H().getBool("DEBUG")&&YY(e),n}function YY(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+h_(e,t))}var ZY=596e-10,JY=65504;function d_(e){return!!(H().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||ZYe.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function m_(e,t){let n=Mr(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(me(e,()=>e.shaderSource(n,t)),me(e,()=>e.compileShader(n)),e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw console.log(e.getShaderInfoLog(n)),new Error("Failed to compile vertex shader.");return n}function f_(e,t){let n=Mr(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(me(e,()=>e.shaderSource(n,t)),me(e,()=>e.compileShader(n)),H().get("ENGINE_COMPILE_ONLY"))return n;if(e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw Y0(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var QY=/ERROR: [0-9]+:([0-9]+):/g;function Y0(e,t){let n=QY.exec(t);if(n==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(e);return}let a=+n[1],r=e.split(` `),s=r.length.toString().length+2,i=r.map((d,c)=>v.rightPad((c+1).toString(),s)+d),o=0;for(let d=0;de.createProgram(),"Unable to create WebGLProgram.")}function y_(e,t){if(me(e,()=>e.linkProgram(t)),!H().get("ENGINE_COMPILE_ONLY")&&e.getProgramParameter(t,e.LINK_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function wh(e,t){if(me(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function b_(e,t){let n=Mr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return me(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),me(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function x_(e,t){let n=Mr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return me(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)),me(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function eZ(){return H().getNumber("WEBGL_VERSION")===2?1:4}function v_(e){return Mr(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function w_(e,t){let n=H().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0){let a=`[${e}x${t}]`;throw new Error("Requested texture size "+a+" is invalid.")}if(e>n||t>n){let a=`[${e}x${t}]`,r=`[${n}x${n}]`;throw new Error("Requested texture size "+a+" greater than WebGL maximum on this browser / GPU "+r+".")}}function k_(e){return Mr(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function mx(e,t,n,a,r,s,i){let o=e.getAttribLocation(t,n);return o===-1?!1:(me(e,()=>e.bindBuffer(e.ARRAY_BUFFER,a)),me(e,()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,s,i)),me(e,()=>e.enableVertexAttribArray(o)),!0)}function I_(e,t,n){__(e,n),me(e,()=>e.activeTexture(e.TEXTURE0+n)),me(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function tZ(e,t){__(e,t),me(e,()=>e.activeTexture(e.TEXTURE0+t)),me(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function S_(e,t,n){return Mr(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function T_(e,t,n){return e.getUniformLocation(t,n)}function N_(e,t,n,a){me(e,()=>I_(e,t,a)),me(e,()=>e.uniform1i(n,a))}function nZ(e){me(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),me(e,()=>e.viewport(0,0,e.canvas.width,e.canvas.height)),me(e,()=>e.scissor(0,0,e.canvas.width,e.canvas.height))}function kh(e,t,n){me(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,n)),me(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function fx(e,t){me(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),me(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function Wp(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+C_(e,t))}function C_(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}`}}function Mr(e,t,n){let a=me(e,()=>t());if(a==null)throw new Error(n);return a}function __(e,t){let n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,a=t+e.TEXTURE0;if(an){let r=`[gl.TEXTURE0, gl.TEXTURE${n}]`;throw new Error(`textureUnit must be in ${r}.`)}}function ci(e,t=2){return v.sizeFromShape(e.slice(0,e.length-t))}function di(e){if(e.length===0)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 Bp(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[ci(e),...di(e)]),t}function E_(e,t=!1){let n=H().getNumber("WEBGL_MAX_TEXTURE_SIZE"),a=H().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");a===1/0&&H().getBool("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE")&&(a=n/2),t&&(n=n*2,a=a*2,e=e.map((o,l)=>l>=e.length-2?v.nearestLargerEven(e[l]):e[l]),e.length===1&&(e=[2,e[0]])),e.length!==2&&(e=v.squeezeShape(e).newShape);let r=v.sizeFromShape(e),s=null;e.length<=1&&r<=n?s=[1,r]:e.length===2&&e[0]<=n&&e[1]<=n?s=e:e.length===3&&e[0]*e[1]<=n&&e[2]<=n?s=[e[0]*e[1],e[2]]:e.length===3&&e[0]<=n&&e[1]*e[2]<=n?s=[e[0],e[1]*e[2]]:e.length===4&&e[0]*e[1]*e[2]<=n&&e[3]<=n?s=[e[0]*e[1]*e[2],e[3]]:e.length===4&&e[0]<=n&&e[1]*e[2]*e[3]<=n&&(s=[e[0],e[1]*e[2]*e[3]]);let i=s!=null&&Math.max(...s)>a&&Math.min(...s)<=(t?2:1)&&Math.min(...s)>0;if(s==null||i)if(t){let o=ci(e),l=2,u=2;e.length&&([l,u]=di(e)),r=o*(l/2)*(u/2),s=v.sizeToSquarishShape(r).map(p=>p*2)}else s=v.sizeToSquarishShape(r);return s}function gh(e){return e%2===0}function sc(e,t){if(e=e.slice(-2),t=t.slice(-2),v.arraysEqual(e,t)||!e.length||!t.length||e[0]===0||e[1]===0||t[0]===0||t[1]===0)return!0;if(e.length!==t.length){let n=e.slice(-1)[0],a=t.slice(-1)[0];if(n===a||gh(n)&&gh(a)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&gh(e[0])&&gh(t[0])}var Ih,Sh;function A_(e){if(Ih==null){let t=qa(e);Ih=t.getParameter(t.MAX_TEXTURE_SIZE)}return Ih}function aZ(){Ih=null}function rZ(){Sh=null}function $_(e){if(Sh==null){let t=qa(e);Sh=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Sh)}function F_(e){if(e===0)return 0;let t,n=qa(e);return da(n,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:da(n,"EXT_disjoint_timer_query")?t=1:t=0,t}function da(e,t){return e.getExtension(t)!=null}function gx(e){try{if(qa(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function D_(e){if(e===0)return!1;let t=qa(e);if(e===1){if(!da(t,"OES_texture_float"))return!1}else if(!da(t,"EXT_color_buffer_float"))return!1;return yx(t)}function R_(e){if(e===0)return!1;let t=qa(e);if(e===1){if(!da(t,"OES_texture_float")||!da(t,"WEBGL_color_buffer_float"))return!1}else{if(da(t,"EXT_color_buffer_float"))return yx(t);let n="EXT_color_buffer_half_float";if(da(t,n)){let a=t.getExtension(n);return sZ(t,a)}return!1}return yx(t)}function yx(e){let t=X0(e),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n);let a=1,r=1;e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,a,r,0,t.textureFormatFloat,t.textureTypeFloat,null);let s=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);let i=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(s),i}function sZ(e,t){let n=X0(e,t),a=e.createTexture();e.bindTexture(e.TEXTURE_2D,a);let r=1,s=1;e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,r,s,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);let i=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,i),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,a,0);let o=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(a),e.deleteFramebuffer(i),o}function M_(e){return e!==2?!1:qa(e).fenceSync!=null}function Yu(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&v.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var ve=H();ve.registerFlag("HAS_WEBGL",()=>ve.getNumber("WEBGL_VERSION")>0);ve.registerFlag("WEBGL_VERSION",()=>gx(2)?2:gx(1)?1:0);ve.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);ve.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>ve.get("WEBGL_VERSION")===2);ve.registerFlag("WEBGL_CPU_FORWARD",()=>!0);ve.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);ve.registerFlag("WEBGL_PACK",()=>ve.getBool("HAS_WEBGL"));ve.registerFlag("WEBGL_PACK_NORMALIZATION",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_CLIP",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_REDUCE",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_LAZILY_UNPACK",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_CONV_IM2COL",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>A_(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>$_(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=ve.getNumber("WEBGL_VERSION");return e===0?0:F_(e)});ve.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>ve.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!$c.isMobile());ve.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>D_(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>ve.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:ve.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));ve.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>R_(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_FENCE_API_ENABLED",()=>M_(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>ve.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);ve.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)});ve.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>$c.isMobile()?1:-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${e}.`)});ve.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128);ve.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1);ve.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5);ve.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128);ve.registerFlag("WEBGL_EXP_CONV",()=>!1);ve.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>ve.getBool("IS_TEST"));ve.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0);ve.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1);ve.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1);function _n(){let e,t,n,a,r,s,i,o,l,u;return H().getNumber("WEBGL_VERSION")===2?(e="#version 300 es",t="in",n="out",a="in",r="texture",s="outputColor",i="out vec4 outputColor;",o=H().getBool("WEBGL2_ISNAN_CUSTOM")?` +`))}function g_(e){return Mr(e,()=>e.createProgram(),"Unable to create WebGLProgram.")}function y_(e,t){if(me(e,()=>e.linkProgram(t)),!H().get("ENGINE_COMPILE_ONLY")&&e.getProgramParameter(t,e.LINK_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function wh(e,t){if(me(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function b_(e,t){let n=Mr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return me(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),me(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function x_(e,t){let n=Mr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return me(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)),me(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function eZ(){return H().getNumber("WEBGL_VERSION")===2?1:4}function v_(e){return Mr(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function w_(e,t){let n=H().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0){let a=`[${e}x${t}]`;throw new Error("Requested texture size "+a+" is invalid.")}if(e>n||t>n){let a=`[${e}x${t}]`,r=`[${n}x${n}]`;throw new Error("Requested texture size "+a+" greater than WebGL maximum on this browser / GPU "+r+".")}}function k_(e){return Mr(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function mx(e,t,n,a,r,s,i){let o=e.getAttribLocation(t,n);return o===-1?!1:(me(e,()=>e.bindBuffer(e.ARRAY_BUFFER,a)),me(e,()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,s,i)),me(e,()=>e.enableVertexAttribArray(o)),!0)}function I_(e,t,n){__(e,n),me(e,()=>e.activeTexture(e.TEXTURE0+n)),me(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function tZ(e,t){__(e,t),me(e,()=>e.activeTexture(e.TEXTURE0+t)),me(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function S_(e,t,n){return Mr(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function T_(e,t,n){return e.getUniformLocation(t,n)}function N_(e,t,n,a){me(e,()=>I_(e,t,a)),me(e,()=>e.uniform1i(n,a))}function nZ(e){me(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),me(e,()=>e.viewport(0,0,e.canvas.width,e.canvas.height)),me(e,()=>e.scissor(0,0,e.canvas.width,e.canvas.height))}function kh(e,t,n){me(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,n)),me(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function fx(e,t){me(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),me(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function Wp(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+C_(e,t))}function C_(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}`}}function Mr(e,t,n){let a=me(e,()=>t());if(a==null)throw new Error(n);return a}function __(e,t){let n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,a=t+e.TEXTURE0;if(an){let r=`[gl.TEXTURE0, gl.TEXTURE${n}]`;throw new Error(`textureUnit must be in ${r}.`)}}function ci(e,t=2){return v.sizeFromShape(e.slice(0,e.length-t))}function di(e){if(e.length===0)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 Bp(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[ci(e),...di(e)]),t}function E_(e,t=!1){let n=H().getNumber("WEBGL_MAX_TEXTURE_SIZE"),a=H().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");a===1/0&&H().getBool("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE")&&(a=n/2),t&&(n=n*2,a=a*2,e=e.map((o,l)=>l>=e.length-2?v.nearestLargerEven(e[l]):e[l]),e.length===1&&(e=[2,e[0]])),e.length!==2&&(e=v.squeezeShape(e).newShape);let r=v.sizeFromShape(e),s=null;e.length<=1&&r<=n?s=[1,r]:e.length===2&&e[0]<=n&&e[1]<=n?s=e:e.length===3&&e[0]*e[1]<=n&&e[2]<=n?s=[e[0]*e[1],e[2]]:e.length===3&&e[0]<=n&&e[1]*e[2]<=n?s=[e[0],e[1]*e[2]]:e.length===4&&e[0]*e[1]*e[2]<=n&&e[3]<=n?s=[e[0]*e[1]*e[2],e[3]]:e.length===4&&e[0]<=n&&e[1]*e[2]*e[3]<=n&&(s=[e[0],e[1]*e[2]*e[3]]);let i=s!=null&&Math.max(...s)>a&&Math.min(...s)<=(t?2:1)&&Math.min(...s)>0;if(s==null||i)if(t){let o=ci(e),l=2,u=2;e.length&&([l,u]=di(e)),r=o*(l/2)*(u/2),s=v.sizeToSquarishShape(r).map(p=>p*2)}else s=v.sizeToSquarishShape(r);return s}function gh(e){return e%2===0}function sc(e,t){if(e=e.slice(-2),t=t.slice(-2),v.arraysEqual(e,t)||!e.length||!t.length||e[0]===0||e[1]===0||t[0]===0||t[1]===0)return!0;if(e.length!==t.length){let n=e.slice(-1)[0],a=t.slice(-1)[0];if(n===a||gh(n)&&gh(a)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&gh(e[0])&&gh(t[0])}var Ih,Sh;function $_(e){if(Ih==null){let t=qa(e);Ih=t.getParameter(t.MAX_TEXTURE_SIZE)}return Ih}function aZ(){Ih=null}function rZ(){Sh=null}function A_(e){if(Sh==null){let t=qa(e);Sh=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Sh)}function F_(e){if(e===0)return 0;let t,n=qa(e);return da(n,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:da(n,"EXT_disjoint_timer_query")?t=1:t=0,t}function da(e,t){return e.getExtension(t)!=null}function gx(e){try{if(qa(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function D_(e){if(e===0)return!1;let t=qa(e);if(e===1){if(!da(t,"OES_texture_float"))return!1}else if(!da(t,"EXT_color_buffer_float"))return!1;return yx(t)}function R_(e){if(e===0)return!1;let t=qa(e);if(e===1){if(!da(t,"OES_texture_float")||!da(t,"WEBGL_color_buffer_float"))return!1}else{if(da(t,"EXT_color_buffer_float"))return yx(t);let n="EXT_color_buffer_half_float";if(da(t,n)){let a=t.getExtension(n);return sZ(t,a)}return!1}return yx(t)}function yx(e){let t=X0(e),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n);let a=1,r=1;e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,a,r,0,t.textureFormatFloat,t.textureTypeFloat,null);let s=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);let i=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(s),i}function sZ(e,t){let n=X0(e,t),a=e.createTexture();e.bindTexture(e.TEXTURE_2D,a);let r=1,s=1;e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,r,s,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);let i=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,i),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,a,0);let o=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(a),e.deleteFramebuffer(i),o}function M_(e){return e!==2?!1:qa(e).fenceSync!=null}function Yu(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&v.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var ve=H();ve.registerFlag("HAS_WEBGL",()=>ve.getNumber("WEBGL_VERSION")>0);ve.registerFlag("WEBGL_VERSION",()=>gx(2)?2:gx(1)?1:0);ve.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);ve.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>ve.get("WEBGL_VERSION")===2);ve.registerFlag("WEBGL_CPU_FORWARD",()=>!0);ve.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);ve.registerFlag("WEBGL_PACK",()=>ve.getBool("HAS_WEBGL"));ve.registerFlag("WEBGL_PACK_NORMALIZATION",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_CLIP",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_REDUCE",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_LAZILY_UNPACK",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_CONV_IM2COL",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>$_(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>A_(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=ve.getNumber("WEBGL_VERSION");return e===0?0:F_(e)});ve.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>ve.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!Ac.isMobile());ve.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>D_(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>ve.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:ve.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));ve.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>R_(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_FENCE_API_ENABLED",()=>M_(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>ve.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);ve.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)});ve.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>Ac.isMobile()?1:-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${e}.`)});ve.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128);ve.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1);ve.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5);ve.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128);ve.registerFlag("WEBGL_EXP_CONV",()=>!1);ve.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>ve.getBool("IS_TEST"));ve.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0);ve.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1);ve.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1);function _n(){let e,t,n,a,r,s,i,o,l,u;return H().getNumber("WEBGL_VERSION")===2?(e="#version 300 es",t="in",n="out",a="in",r="texture",s="outputColor",i="out vec4 outputColor;",o=H().getBool("WEBGL2_ISNAN_CUSTOM")?` bool isnan_custom(float val) { uint floatToUint = floatBitsToUint(val); return (floatToUint & 0x7fffffffu) > 0x7f800000u; @@ -158,7 +158,7 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram `,{getBroadcastDims:O_}=N;function lZ(e,t,n){let a=[];if(e.forEach(c=>{let h=v.sizeFromShape(c.shapeInfo.logicalShape);if(c.shapeInfo.isUniform?a.push(`uniform float ${c.name}${h>1?`[${h}]`:""};`):(a.push(`uniform sampler2D ${c.name};`),a.push(`uniform int offset${c.name};`)),n.enableShapeUniforms){let{uniformShape:m}=Q0(n.packedInputs,c.shapeInfo.logicalShape,c.shapeInfo.texShape);switch(m.length){case 1:a.push(`uniform int ${c.name}Shape;`);break;case 2:a.push(`uniform ivec2 ${c.name}Shape;`);break;case 3:a.push(`uniform ivec3 ${c.name}Shape;`);break;case 4:a.push(`uniform ivec4 ${c.name}Shape;`);break;default:break}a.push(`uniform ivec2 ${c.name}TexShape;`)}}),n.enableShapeUniforms){switch(t.logicalShape.length){case 1:a.push("uniform int outShape;");break;case 2:a.push("uniform ivec2 outShape;"),a.push("uniform int outShapeStrides;");break;case 3:a.push("uniform ivec3 outShape;"),a.push("uniform ivec2 outShapeStrides;");break;case 4:a.push("uniform ivec4 outShape;"),a.push("uniform ivec3 outShapeStrides;");break;default:break}a.push("uniform ivec2 outTexShape;")}n.customUniforms&&n.customUniforms.forEach(c=>{a.push(`uniform ${c.type} ${c.name}${c.arrayIndex?`[${c.arrayIndex}]`:""};`)});let r=a.join(` `),s=e.map(c=>uZ(c,t,n.packedInputs,n.enableShapeUniforms)).join(` `),i=t.texShape,o=_n(),l=dZ(o),u,p,d=fZ(o);return t.isPacked?(u=pZ(t.logicalShape,i,n.enableShapeUniforms),p=mZ(o)):(u=cZ(t.logicalShape,i,n.enableShapeUniforms),p=hZ(o)),n.packedInputs&&(d+=xZ),[d,l,p,r,u,s,n.userCode].join(` -`)}function Zu(e,t=!1){let n=e.shapeInfo.logicalShape;switch(n.length){case 0:return $Z(e,t);case 1:return DZ(e,t);case 2:return MZ(e,t);case 3:return OZ(e,t);case 4:return zZ(e,t);case 5:return WZ(e);case 6:return BZ(e);default:throw new Error(`${n.length}-D input sampling is not yet supported`)}}function L_(e,t){switch(e.shapeInfo.logicalShape.length){case 0:return AZ(e);case 1:return FZ(e,t);case 2:return RZ(e,t);case 3:return PZ(e,t);default:return LZ(e,t)}}function uZ(e,t,n=!1,a){let r="";n?r+=L_(e,a):r+=Zu(e,a);let s=e.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(n?r+=VZ(e,t):r+=UZ(e,t)),r}function pZ(e,t,n){switch(e.length){case 0:return z_();case 1:return vZ(e,t,n);case 2:return _Z(e,t,n);case 3:return kZ(e,t,n);default:return SZ(e,t,n)}}function cZ(e,t,n){switch(e.length){case 0:return z_();case 1:return wZ(e,t,n);case 2:return EZ(e,t,n);case 3:return IZ(e,t,n);case 4:return TZ(e,t,n);case 5:return NZ(e,t);case 6:return CZ(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function dZ(e){return` +`)}function Zu(e,t=!1){let n=e.shapeInfo.logicalShape;switch(n.length){case 0:return AZ(e,t);case 1:return DZ(e,t);case 2:return MZ(e,t);case 3:return OZ(e,t);case 4:return zZ(e,t);case 5:return WZ(e);case 6:return BZ(e);default:throw new Error(`${n.length}-D input sampling is not yet supported`)}}function L_(e,t){switch(e.shapeInfo.logicalShape.length){case 0:return $Z(e);case 1:return FZ(e,t);case 2:return RZ(e,t);case 3:return PZ(e,t);default:return LZ(e,t)}}function uZ(e,t,n=!1,a){let r="";n?r+=L_(e,a):r+=Zu(e,a);let s=e.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(n?r+=VZ(e,t):r+=UZ(e,t)),r}function pZ(e,t,n){switch(e.length){case 0:return z_();case 1:return vZ(e,t,n);case 2:return _Z(e,t,n);case 3:return kZ(e,t,n);default:return SZ(e,t,n)}}function cZ(e,t,n){switch(e.length){case 0:return z_();case 1:return wZ(e,t,n);case 2:return EZ(e,t,n);case 3:return IZ(e,t,n);case 4:return TZ(e,t,n);case 5:return NZ(e,t);case 6:return CZ(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function dZ(e){return` float sampleTexture(sampler2D textureSampler, vec2 uv) { return ${e.texture2D}(textureSampler, uv).r; } @@ -543,11 +543,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int c = index - r * ${e[1]}; return ivec2(r, c); } - `}function ko(e){return`offset${e}`}function AZ(e){let t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1),a=_n();return` + `}function ko(e){return`offset${e}`}function $Z(e){let t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1),a=_n();return` vec4 ${n}() { return ${a.texture2D}(${t}, halfCR); } - `}function $Z(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return`float ${a}() {return ${n};}`;let[r,s]=e.shapeInfo.texShape;if(r===1&&s===1)return` + `}function AZ(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return`float ${a}() {return ${n};}`;let[r,s]=e.shapeInfo.texShape;if(r===1&&s===1)return` float ${a}() { return sampleTexture(${n}, halfCR); } @@ -1106,7 +1106,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${n.output} = ${r}; } - `}},B_={};Ae(B_,{bindVertexProgramAttributeStreams:()=>Y_,createBufferFromOutputTexture:()=>Q_,createFloat16MatrixTexture:()=>j_,createFloat16PackedMatrixTexture:()=>X_,createFloat32MatrixTexture:()=>H_,createIndexBuffer:()=>G_,createPackedMatrixTexture:()=>K_,createUnsignedBytesMatrixTexture:()=>q_,createVertexBuffer:()=>U_,createVertexShader:()=>V_,downloadByteEncodedFloatMatrixFromOutputTexture:()=>tE,downloadFloat32MatrixFromBuffer:()=>eE,downloadMatrixFromPackedOutputTexture:()=>aE,downloadPackedMatrixFromBuffer:()=>nE,getInternalFormatForFloat16MatrixTexture:()=>t1,getInternalFormatForFloat16PackedMatrixTexture:()=>r1,getInternalFormatForFloat32MatrixTexture:()=>e1,getInternalFormatForPackedMatrixTexture:()=>a1,getInternalFormatForUnsignedBytesMatrixTexture:()=>n1,uploadDenseMatrixToTexture:()=>Z_,uploadPixelDataToTexture:()=>J_});function V_(e){let t=_n(),n=`${t.version} + `}},B_={};$e(B_,{bindVertexProgramAttributeStreams:()=>Y_,createBufferFromOutputTexture:()=>Q_,createFloat16MatrixTexture:()=>j_,createFloat16PackedMatrixTexture:()=>X_,createFloat32MatrixTexture:()=>H_,createIndexBuffer:()=>G_,createPackedMatrixTexture:()=>K_,createUnsignedBytesMatrixTexture:()=>q_,createVertexBuffer:()=>U_,createVertexShader:()=>V_,downloadByteEncodedFloatMatrixFromOutputTexture:()=>tE,downloadFloat32MatrixFromBuffer:()=>eE,downloadMatrixFromPackedOutputTexture:()=>aE,downloadPackedMatrixFromBuffer:()=>nE,getInternalFormatForFloat16MatrixTexture:()=>t1,getInternalFormatForFloat16PackedMatrixTexture:()=>r1,getInternalFormatForFloat32MatrixTexture:()=>e1,getInternalFormatForPackedMatrixTexture:()=>a1,getInternalFormatForUnsignedBytesMatrixTexture:()=>n1,uploadDenseMatrixToTexture:()=>Z_,uploadPixelDataToTexture:()=>J_});function V_(e){let t=_n(),n=`${t.version} precision highp float; ${t.attribute} vec3 clipSpacePos; ${t.attribute} vec2 uv; @@ -1115,7 +1115,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, void main() { gl_Position = vec4(clipSpacePos, 1); resultUV = uv; - }`;return m_(e,n)}function U_(e){let t=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return b_(e,t)}function G_(e){let t=new Uint16Array([0,1,2,2,1,3]);return x_(e,t)}function od(e,t,n,a,r,s){w_(t,n);let i=v_(e),o=e.TEXTURE_2D;return me(e,()=>e.bindTexture(o,i)),me(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),me(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),me(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),me(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),H().getNumber("WEBGL_VERSION")===1?me(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)):me(e,()=>e.texStorage2D(o,1,a,t,n)),me(e,()=>e.bindTexture(e.TEXTURE_2D,null)),{texture:i,texShape:[n,t]}}function e1(e){return e.internalFormatFloat}function H_(e,t,n,a){let[r,s]=id(t,n);return od(e,r,s,e1(a),a.textureFormatFloat,e.FLOAT)}function t1(e){return e.internalFormatHalfFloat}function j_(e,t,n,a){let[r,s]=id(t,n);return od(e,r,s,t1(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function n1(e){return e.downloadTextureFormat}function q_(e,t,n,a){let[r,s]=id(t,n);return od(e,r,s,n1(a),e.RGBA,e.UNSIGNED_BYTE)}function a1(e){return e.internalFormatPackedFloat}function K_(e,t,n,a){let[r,s]=Xu(t,n);return od(e,r,s,a1(a),e.RGBA,e.FLOAT)}function r1(e){return e.internalFormatPackedHalfFloat}function X_(e,t,n,a){let[r,s]=Xu(t,n);return od(e,r,s,r1(a),e.RGBA,a.textureTypeHalfFloat)}function Y_(e,t,n){return me(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),mx(e,t,"clipSpacePos",n,3,20,0)&&mx(e,t,"uv",n,2,20,12)}function Z_(e,t,n,a,r,s){me(e,()=>e.bindTexture(e.TEXTURE_2D,t));let i,o,l;r instanceof Uint8Array?(i=new Uint8Array(n*a*4),o=e.UNSIGNED_BYTE,l=e.RGBA):(i=new Float32Array(n*a*4),o=e.FLOAT,l=s.internalFormatPackedFloat),i.set(r),H().getNumber("WEBGL_VERSION")===2?me(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,a,e.RGBA,o,i)):me(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),me(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function J_(e,t,n){me(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?H().getNumber("WEBGL_VERSION")===2?me(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n.width,n.height,e.RGBA,e.UNSIGNED_BYTE,n.data)):me(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):H().getNumber("WEBGL_VERSION")===2?me(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,n)):me(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),me(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function Q_(e,t,n,a){let r=e.createBuffer();me(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return me(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),me(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),me(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function eE(e,t,n){let a=e,r=new Float32Array(n);return a.bindBuffer(a.PIXEL_PACK_BUFFER,t),a.getBufferSubData(a.PIXEL_PACK_BUFFER,0,r),a.bindBuffer(a.PIXEL_PACK_BUFFER,null),r}function tE(e,t,n,a){let[r,s]=id(t,n),i=4,o=new Uint8Array(KY(t*n,i));return me(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function nE(e,t,n,a,r,s,i,o){let l=e,u=new Float32Array(XY(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}function aE(e,t,n){let a=new Float32Array(t*n*4);return me(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var Th=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let t=H().getNumber("WEBGL_VERSION");e!=null?(this.gl=e,c_(t,e)):this.gl=qa(t);let n="WEBGL_color_buffer_float",a="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),H().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=zp(this.gl,r),da(this.gl,s))this.textureHalfFloatExtension=zp(this.gl,s);else if(H().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),da(this.gl,a))this.colorBufferHalfFloatExtension=zp(this.gl,a);else if(H().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",da(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(da(this.gl,a))this.colorBufferHalfFloatExtension=this.gl.getExtension(a);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=U_(this.gl),this.indexBuffer=G_(this.gl),this.framebuffer=k_(this.gl),this.textureConfig=X0(this.gl,this.textureHalfFloatExtension)}get debug(){return H().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&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."),this.outputTexture!=null&&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.");let e=this.gl;me(e,()=>e.finish()),me(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),me(e,()=>e.deleteFramebuffer(this.framebuffer)),me(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),me(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),me(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),H_(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),j_(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),q_(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),J_(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),Z_(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),X_(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),K_(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(fx(this.gl,this.framebuffer),this.outputTexture=null),me(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>tE(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return nE(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return eE(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=Q_(this.gl,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),a}createAndWaitForFence(){let e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,n;if(H().getBool("WEBGL_FENCE_API_ENABLED")){let a=e,r=a.fenceSync(a.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=()=>{let s=a.clientWaitSync(r,0,0);return s===a.ALREADY_SIGNALED||s===a.CONDITION_SATISFIED},t=r}else H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>aE(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl;this.vertexShader==null&&(this.vertexShader=V_(t));let n=g_(t);return me(t,()=>t.attachShader(n,this.vertexShader)),me(t,()=>t.attachShader(n,e)),y_(t,n),this.debug&&wh(t,n),this.vertexAttrsAreBound||(this.setProgram(n),this.vertexAttrsAreBound=Y_(t,this.program,this.vertexBuffer)),n}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&me(this.gl,()=>this.gl.deleteProgram(e))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&wh(this.gl,this.program),me(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?S_(this.gl,e,t):T_(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),me(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(),N_(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=Xu(t,n);this.setOutputMatrixTextureDriver(e,a,r)}setOutputMatrixWriteRegion(e,t,n,a){this.setOutputMatrixWriteRegionDriver(n,e,a,t)}setOutputPackedMatrixWriteRegion(e,t,n,a){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&wh(this.gl,this.program),Wp(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;this.debug&&this.debugValidate(),me(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),me(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=zp(this.gl,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.createQuery();return n.beginQuery(a.TIME_ELAPSED_EXT,r),r}let e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let t=this.gl,n=this.getQueryTimerExtensionWebGL2();t.endQuery(n.TIME_ELAPSED_EXT);return}let e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await v.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(t===0)return null;if(t===2){let n=this.gl;return n.getQueryParameter(e,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(e,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(t===0)return!0;if(t===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.getQueryParameter(e,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(a.GPU_DISJOINT_EXT)),r&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),a=n.getQueryObjectEXT(e,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),a&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){let e=QZ(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=e;++t){let{resolveFn:n}=this.itemsToPoll[t];n()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){if(this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1)return;let n;"setTimeoutCustom"in H().platform&&(n=H().platform.setTimeoutCustom.bind(H().platform)),v.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(e){this.throwIfDisposed(),kh(this.gl,e,this.framebuffer),this.debug&&Wp(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(kh(this.gl,this.outputTexture,this.framebuffer),this.debug&&Wp(this.gl)):fx(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);let n=t();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(e,t,n){this.throwIfDisposed();let a=this.gl;kh(a,e,this.framebuffer),this.debug&&Wp(a),this.outputTexture=e,me(a,()=>a.viewport(0,0,t,n)),me(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),me(this.gl,()=>this.gl.scissor(e,t,n,a))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}};function QZ(e){let t=0;for(;t`${e}.${n}`)}function kn(e,t){return t===1?[e]:oE(e,t)}function U7(e,t){if(e===1)return"rc";let n="";for(let a=0;ae.bindTexture(o,i)),me(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),me(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),me(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),me(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),H().getNumber("WEBGL_VERSION")===1?me(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)):me(e,()=>e.texStorage2D(o,1,a,t,n)),me(e,()=>e.bindTexture(e.TEXTURE_2D,null)),{texture:i,texShape:[n,t]}}function e1(e){return e.internalFormatFloat}function H_(e,t,n,a){let[r,s]=id(t,n);return od(e,r,s,e1(a),a.textureFormatFloat,e.FLOAT)}function t1(e){return e.internalFormatHalfFloat}function j_(e,t,n,a){let[r,s]=id(t,n);return od(e,r,s,t1(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function n1(e){return e.downloadTextureFormat}function q_(e,t,n,a){let[r,s]=id(t,n);return od(e,r,s,n1(a),e.RGBA,e.UNSIGNED_BYTE)}function a1(e){return e.internalFormatPackedFloat}function K_(e,t,n,a){let[r,s]=Xu(t,n);return od(e,r,s,a1(a),e.RGBA,e.FLOAT)}function r1(e){return e.internalFormatPackedHalfFloat}function X_(e,t,n,a){let[r,s]=Xu(t,n);return od(e,r,s,r1(a),e.RGBA,a.textureTypeHalfFloat)}function Y_(e,t,n){return me(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),mx(e,t,"clipSpacePos",n,3,20,0)&&mx(e,t,"uv",n,2,20,12)}function Z_(e,t,n,a,r,s){me(e,()=>e.bindTexture(e.TEXTURE_2D,t));let i,o,l;r instanceof Uint8Array?(i=new Uint8Array(n*a*4),o=e.UNSIGNED_BYTE,l=e.RGBA):(i=new Float32Array(n*a*4),o=e.FLOAT,l=s.internalFormatPackedFloat),i.set(r),H().getNumber("WEBGL_VERSION")===2?me(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,a,e.RGBA,o,i)):me(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),me(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function J_(e,t,n){me(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?H().getNumber("WEBGL_VERSION")===2?me(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n.width,n.height,e.RGBA,e.UNSIGNED_BYTE,n.data)):me(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):H().getNumber("WEBGL_VERSION")===2?me(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,n)):me(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),me(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function Q_(e,t,n,a){let r=e.createBuffer();me(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return me(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),me(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),me(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function eE(e,t,n){let a=e,r=new Float32Array(n);return a.bindBuffer(a.PIXEL_PACK_BUFFER,t),a.getBufferSubData(a.PIXEL_PACK_BUFFER,0,r),a.bindBuffer(a.PIXEL_PACK_BUFFER,null),r}function tE(e,t,n,a){let[r,s]=id(t,n),i=4,o=new Uint8Array(KY(t*n,i));return me(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function nE(e,t,n,a,r,s,i,o){let l=e,u=new Float32Array(XY(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}function aE(e,t,n){let a=new Float32Array(t*n*4);return me(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var Th=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let t=H().getNumber("WEBGL_VERSION");e!=null?(this.gl=e,c_(t,e)):this.gl=qa(t);let n="WEBGL_color_buffer_float",a="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),H().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=zp(this.gl,r),da(this.gl,s))this.textureHalfFloatExtension=zp(this.gl,s);else if(H().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),da(this.gl,a))this.colorBufferHalfFloatExtension=zp(this.gl,a);else if(H().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",da(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(da(this.gl,a))this.colorBufferHalfFloatExtension=this.gl.getExtension(a);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=U_(this.gl),this.indexBuffer=G_(this.gl),this.framebuffer=k_(this.gl),this.textureConfig=X0(this.gl,this.textureHalfFloatExtension)}get debug(){return H().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&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."),this.outputTexture!=null&&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.");let e=this.gl;me(e,()=>e.finish()),me(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),me(e,()=>e.deleteFramebuffer(this.framebuffer)),me(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),me(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),me(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),H_(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),j_(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),q_(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),J_(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),Z_(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),X_(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),K_(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(fx(this.gl,this.framebuffer),this.outputTexture=null),me(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>tE(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return nE(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return eE(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=Q_(this.gl,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),a}createAndWaitForFence(){let e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,n;if(H().getBool("WEBGL_FENCE_API_ENABLED")){let a=e,r=a.fenceSync(a.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=()=>{let s=a.clientWaitSync(r,0,0);return s===a.ALREADY_SIGNALED||s===a.CONDITION_SATISFIED},t=r}else H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>aE(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl;this.vertexShader==null&&(this.vertexShader=V_(t));let n=g_(t);return me(t,()=>t.attachShader(n,this.vertexShader)),me(t,()=>t.attachShader(n,e)),y_(t,n),this.debug&&wh(t,n),this.vertexAttrsAreBound||(this.setProgram(n),this.vertexAttrsAreBound=Y_(t,this.program,this.vertexBuffer)),n}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&me(this.gl,()=>this.gl.deleteProgram(e))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&wh(this.gl,this.program),me(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?S_(this.gl,e,t):T_(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),me(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(),N_(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=Xu(t,n);this.setOutputMatrixTextureDriver(e,a,r)}setOutputMatrixWriteRegion(e,t,n,a){this.setOutputMatrixWriteRegionDriver(n,e,a,t)}setOutputPackedMatrixWriteRegion(e,t,n,a){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&wh(this.gl,this.program),Wp(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;this.debug&&this.debugValidate(),me(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),me(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=zp(this.gl,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.createQuery();return n.beginQuery(a.TIME_ELAPSED_EXT,r),r}let e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let t=this.gl,n=this.getQueryTimerExtensionWebGL2();t.endQuery(n.TIME_ELAPSED_EXT);return}let e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await v.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(t===0)return null;if(t===2){let n=this.gl;return n.getQueryParameter(e,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(e,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(t===0)return!0;if(t===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.getQueryParameter(e,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(a.GPU_DISJOINT_EXT)),r&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),a=n.getQueryObjectEXT(e,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),a&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){let e=QZ(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=e;++t){let{resolveFn:n}=this.itemsToPoll[t];n()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){if(this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1)return;let n;"setTimeoutCustom"in H().platform&&(n=H().platform.setTimeoutCustom.bind(H().platform)),v.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(e){this.throwIfDisposed(),kh(this.gl,e,this.framebuffer),this.debug&&Wp(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(kh(this.gl,this.outputTexture,this.framebuffer),this.debug&&Wp(this.gl)):fx(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);let n=t();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(e,t,n){this.throwIfDisposed();let a=this.gl;kh(a,e,this.framebuffer),this.debug&&Wp(a),this.outputTexture=e,me(a,()=>a.viewport(0,0,t,n)),me(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),me(this.gl,()=>this.gl.scissor(e,t,n,a))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}};function QZ(e){let t=0;for(;t`${e}.${n}`)}function kn(e,t){return t===1?[e]:oE(e,t)}function U7(e,t){if(e===1)return"rc";let n="";for(let a=0;ah.push(m))}let t=this.texData.get(e),{values:n,shape:a,slice:r,dtype:s,complexTensorInfos:i,isPacked:o}=t;if(r!=null){let h;o?h=new qs(a,rl):h=new Cr(a,rl);let m=this.runWebGLProgram(h,[{dataId:e,shape:a,dtype:s}],s),f=this.read(m.dataId);return this.disposeIntermediateTensorInfo(m),f}if(n!=null)return this.convertAndCacheOnCPU(e);if(H().getBool("DEBUG")&&!H().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&H().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l=null,u;if(s!=="complex64"&&H().get("WEBGL_BUFFER_SUPPORTED")){u=this.decode(e);let h=this.texData.get(u.dataId);l=this.gpgpu.createBufferFromTexture(h.texture.texture,...fh(a))}this.pendingRead.set(e,[]),s!=="complex64"&&await this.gpgpu.createAndWaitForFence();let p;if(s==="complex64"){let h=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]),m=h[0],f=h[1];p=N.mergeRealAndImagArrays(m,f)}else if(l==null)p=this.getValuesFromTexture(e);else{let h=v.sizeFromShape(a);p=this.gpgpu.downloadFloat32MatrixFromBuffer(l,h)}if(u!=null&&this.disposeIntermediateTensorInfo(u),l!=null){let h=this.gpgpu.gl;me(h,()=>h.deleteBuffer(l))}let d=this.convertAndCacheOnCPU(e,p),c=this.pendingRead.get(e);return this.pendingRead.delete(e),c.forEach(h=>h(d)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&_a().removeDataId(e,this),this.pendingDeletes--),d}readToGPU(e,t={}){let n=this.texData.get(e),{values:a,shape:r,slice:s,dtype:i,isPacked:o,texture:l}=n;if(i==="complex64")throw new Error("Does not support reading texture for complex64 dtype.");if(s!=null){let c;o?c=new qs(r,rl):c=new Cr(r,rl);let h=this.runWebGLProgram(c,[{dataId:e,shape:r,dtype:i}],i),m=this.readToGPU(h,t);return this.disposeIntermediateTensorInfo(h),m}if(l==null)throw a!=null?new Error("Data is not on GPU but on CPU."):new Error("There is no data on GPU or CPU.");let u=this.decode(e,t.customTexShape),p=_a().makeTensorFromTensorInfo(u),d=this.texData.get(u.dataId);return Object.assign({tensorRef:p},d.texture)}bufferSync(e){let t=this.readSync(e.dataId);if(e.dtype==="string")try{let n=t.map(a=>v.decodeString(a));return Oe(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Oe(e.shape,e.dtype,t)}checkNumericalProblems(e){if(e!=null)for(let t=0;t0}time(e){let t=this.activeTimers,n=[],a=!1;this.programTimersStack==null?(this.programTimersStack=n,a=!0):this.activeTimers.push(n),this.activeTimers=n,e();let r=v.flatten(this.activeTimers.map(o=>o.query)).filter(o=>o!=null),s=v.flatten(this.activeTimers.map(o=>o.name)).filter(o=>o!=null);this.activeTimers=t,a&&(this.programTimersStack=null);let i={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let o=await Promise.all(r);i.kernelMs=v.sum(o),i.getExtraProfileInfo=()=>o.map((l,u)=>({name:s[u],ms:l})).map(l=>`${l.name}: ${l.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 H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:v.now(),endMs:null}}endTimer(e){return H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=v.now(),e)}async getQueryTime(e){if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);let 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);let{complexTensorInfos:n}=this.texData.get(e);return n!=null&&(this.disposeData(n.real.dataId,t),this.disposeData(n.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){let{texture:t,dtype:n,texShape:a,usage:r,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),t!=null&&(this.numBytesInGPU-=this.computeBytes(a,n),this.textureManager.releaseTexture(t,a,r,s)));let 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.texture}getDataInfo(e){return this.texData.get(e)}shouldExecuteOnCPU(e,t=cJ){return H().getBool("WEBGL_CPU_FORWARD")&&e.every(n=>this.texData.get(n.dataId).texture==null&&v.sizeFromShape(n.shape)0&&v.isString(n[0])){let r=n.map(s=>v.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return this.texData.get(a).usage=null,{dataId:a,shape:e,dtype:t}}makeOutput(e,t,n){return _a().makeTensorFromTensorInfo(this.makeTensorInfo(e,t,n),this)}unpackTensor(e){let t=new iJ(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new G7(e.shape),n=!0;return this.runWebGLProgram(t,[e],e.dtype,null,n)}packedReshape(e,t){let n=[ci(e.shape),...di(e.shape)],a={dtype:e.dtype,shape:n,dataId:e.dataId},r=[ci(t),...di(t)],s=new lE(r,n),i=!0,o=[n],l=this.runWebGLProgram(s,[a],e.dtype,o,i);return{dataId:l.dataId,shape:t,dtype:l.dtype}}decode(e,t){let n=this.texData.get(e),{isPacked:a,shape:r,dtype:s}=n;if(t!=null){let d=v.sizeFromShape(r),c=t[0]*t[1]*4;v.assert(d<=c,()=>"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.")}let i=Bp(r),o;a?o=new KZ(i):o=new qZ(i);let l=!0,u=[t!=null?t:fh(i)],p=this.runWebGLProgram(o,[{shape:i,dtype:s,dataId:e}],s,u,l,t);return{dtype:s,shape:r,dataId:p.dataId}}runWebGLProgram(e,t,n,a,r=!1,s){let i=this.makeTensorInfo(e.outputShape,n),o=this.texData.get(i.dataId);if(e.packedOutput&&(o.isPacked=!0),e.outPackingScheme===rc.DENSE){let g=s!=null?s:fh(e.outputShape);o.texShape=g.map(y=>y*2)}if(e.outTexUsage!=null&&(o.usage=e.outTexUsage),v.sizeFromShape(i.shape)===0)return o.values=v.getTypedArrayFromDType(i.dtype,0),i;let l=[],u=t.map(g=>{if(g.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let y=this.texData.get(g.dataId);if(y.texture==null){if(!e.packedInputs&&v.sizeFromShape(g.shape)<=H().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:g.shape,texData:null,isUniform:!0,uniformValues:y.values};e.packedInputs&&(y.isPacked=!0,y.shape=g.shape)}if(this.uploadToGPU(g.dataId),!!y.isPacked!=!!e.packedInputs)g=y.isPacked?this.unpackTensor(g):this.packTensor(g),l.push(g),y=this.texData.get(g.dataId);else if(y.isPacked&&!sc(y.shape,g.shape)){let b=g,x=g.shape;g.shape=y.shape,g=this.packedReshape(g,x),l.push(g),y=this.texData.get(g.dataId),b.shape=x}return{shape:g.shape,texData:y,isUniform:!1}});this.uploadToGPU(i.dataId);let p={shape:i.shape,texData:o,isUniform:!1},d=jZ(e,u,p),c=this.getAndSaveBinary(d,()=>GZ(this.gpgpu,e,u,p)),h=this.activeTimers!=null,m;h&&(m=this.startTimer()),H().get("ENGINE_COMPILE_ONLY")||HZ(this.gpgpu,c,u,p,a),l.forEach(g=>this.disposeIntermediateTensorInfo(g)),h&&(m=this.endTimer(m),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(m)}));let f=H().get("WEBGL_FLUSH_THRESHOLD");if(f>0){let g=v.now();g-this.lastGlFlushTime>f&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=g)}if(!H().getBool("WEBGL_LAZILY_UNPACK")&&o.isPacked&&r===!1){let g=this.unpackTensor(i);return this.disposeIntermediateTensorInfo(i),g}return i}compileAndRun(e,t,n,a,r=!1){return n=n||t[0].dtype,this.runWebGLProgram(e,t,n,a,r)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(H().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=P(()=>{if(!H().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=H().getBool("DEBUG");H().set("DEBUG",!1);let t=this.abs(be(1e-8)).dataSync()[0];if(H().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?lJ:uJ}uploadToGPU(e){let t=this.texData.get(e),{shape:n,dtype:a,values:r,texture:s,usage:i,isPacked:o}=t;if(s!=null)return;let l=this.activeTimers!=null,u;l&&(u=v.now());let p=t.texShape;if(p==null&&(p=E_(n,o),t.texShape=p),r!=null){let d=Bp(n),c,h=p[1],m=p[0],f=r instanceof Uint8Array||r instanceof Uint8ClampedArray;(o||!f)&&([h,m]=Xu(p[0],p[1])),o?c=new JZ(d,f):c=new hI(d,f);let g=f?[m,h]:p,y=this.makeTensorInfo(g,a),b=this.texData.get(y.dataId);f?b.usage=ca.PIXELS:b.usage=ca.UPLOAD,b.texShape=g,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(y.dataId),h,m,r);let x=[[m,h]],w=!0,I=this.runWebGLProgram(c,[y],a,x,w),T=this.texData.get(I.dataId);t.texShape=T.texShape,t.isPacked=T.isPacked,t.usage=T.usage,H().get("ENGINE_COMPILE_ONLY")?this.disposeData(I.dataId):(t.texture=T.texture,t.values=null,this.texData.delete(I.dataId)),this.disposeIntermediateTensorInfo(y),l&&(this.uploadWaitMs+=v.now()-u)}else{let d=this.acquireTexture(p,i,a,o);t.texture=d}}convertAndCacheOnCPU(e,t){let n=this.texData.get(e),{dtype:a}=n;return this.releaseGPUData(e),t!=null&&(n.values=mJ(t,a)),n.values}acquireTexture(e,t,n,a){if(this.numBytesInGPU+=this.computeBytes(e,n),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let r=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${r} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,a)}computeBytes(e,t){return e[0]*e[1]*v.bytesPerElement(t)}checkCompileCompletion(){for(let[,e]of Object.entries(this.binaryCache))this.checkCompletion_(e)}async checkCompileCompletionAsync(){let e=[];if(this.gpgpu.parallelCompilationExtension){for(let[,t]of Object.entries(this.binaryCache))e.push(this.checkCompletionAsync_(t));return Promise.all(e)}else{for(let[,t]of Object.entries(this.binaryCache)){let n=new Promise(a=>{try{this.checkCompletion_(t),a(!0)}catch(r){throw r}});e.push(n)}return Promise.all(e)}}async checkCompletionAsync_(e){return this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(e):(await Jv(),this.checkCompletionAsync_(e))}checkCompletion_(e){if(this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.gl.LINK_STATUS)===!1)throw console.log(this.gpgpu.gl.getProgramInfoLog(e.webGLProgram)),this.gpgpu.gl.getShaderParameter(e.fragmentShader,this.gpgpu.gl.COMPILE_STATUS)===!1?(Y0(e.source,this.gpgpu.gl.getShaderInfoLog(e.fragmentShader)),new Error("Failed to compile fragment shader.")):new Error("Failed to link vertex and fragment shaders.");return!0}getUniformLocations(){for(let[,e]of Object.entries(this.binaryCache)){let{uniformLocations:t,customUniformLocations:n,infLoc:a,nanLoc:r,inShapesLocations:s,inTexShapesLocations:i,outShapeLocation:o,outShapeStridesLocation:l,outTexShapeLocation:u}=W_(this.gpgpu,e.program,e.webGLProgram);e.uniformLocations=t,e.customUniformLocations=n,e.infLoc=a,e.nanLoc=r,e.inShapesLocations=s,e.inTexShapesLocations=i,e.outShapeLocation=o,e.outShapeStridesLocation=l,e.outTexShapeLocation=u}}createTensorFromTexture(e,t,n){let{texture:a,height:r,width:s,channels:i}=e,o=_a().backend;if(!o.gpgpu.gl.isTexture(a))throw new Error("The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.");let l=o.writeTexture(a,t,n,r,s,i);return _a().makeTensorFromDataId(l,t,n,o)}};Xf.nextDataId=0;function mJ(e,t){if(t==="float32"||t==="complex64")return e;if(t==="int32"||t==="bool"){let n=t==="int32"?new Int32Array(e.length):new Uint8Array(e.length);for(let a=0;anew Xf,2);var gJ={forceHalfFloat:uE},i1=` + `}},oJ=hr.whereImpl,lJ=1e-7,uJ=1e-4,Sb={};function pJ(e){return e in Sb||(Sb[e]={}),Sb[e]}var cJ=H().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),dJ=600;function hJ(){return H().global.screen==null?1024:H().global.screen.height*H().global.screen.width*window.devicePixelRatio*dJ/1024/1024}var Xf=class extends pc{constructor(e){if(super(),this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.lastGlFlushTime=0,this.warnedAboutMemory=!1,this.pendingDeletes=0,this.disposed=!1,!H().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");let t;if(e!=null){if(e instanceof Th)t=e;else{let n=qa(H().getNumber("WEBGL_VERSION"),e);t=new Th(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=qa(H().getNumber("WEBGL_VERSION"));t=new Th(n),this.binaryCache=pJ(H().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=t,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new j7(this.gpgpu),this.numMBBeforeWarning=hJ(),this.texData=new om(this,_a())}nextDataId(){return Xf.nextDataId++}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}writeTexture(e,t,n,a,r,s){let i=this.makeTensorInfo(t,n),o=this.texData.get(i.dataId);o.isPacked=!1,o.texture={texture:e,texShape:[a,r]},o.texShape=[a,r];let l=Bp(t),u=new hI(l,!1,s),p=this.runWebGLProgram(u,[i],n,[[a,r]]);return p.shape=t,o.texture=null,this.disposeIntermediateTensorInfo(i),p.dataId}write(e,t,n){if((H().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||H().getBool("DEBUG"))&&this.checkNumericalProblems(e),n==="complex64"&&e!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let a={id:this.nextDataId()};return this.texData.set(a,{shape:t,dtype:n,values:e,usage:ca.UPLOAD,refCount:1}),a}refCount(e){return this.texData.has(e)?this.texData.get(e).refCount:0}incRef(e){let t=this.texData.get(e);t.refCount++}decRef(e){if(this.texData.has(e)){let t=this.texData.get(e);t.refCount--}}move(e,t,n,a,r){if(H().getBool("DEBUG")&&this.checkNumericalProblems(t),a==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:n,dtype:a,values:t,usage:ca.UPLOAD,refCount:r})}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}readSync(e){let t=this.texData.get(e),{values:n,dtype:a,complexTensorInfos:r,slice:s,shape:i,isPacked:o}=t;if(s!=null){let d;o?d=new qs(i,rl):d=new Cr(i,rl);let c=this.runWebGLProgram(d,[{dataId:e,shape:i,dtype:a}],a),h=this.readSync(c.dataId);return this.disposeIntermediateTensorInfo(c),h}if(n!=null)return this.convertAndCacheOnCPU(e);if(a==="string")return n;let l=this.activeTimers!=null,u;l&&(u=v.now());let p;if(a==="complex64"){let d=this.readSync(r.real.dataId),c=this.readSync(r.imag.dataId);p=N.mergeRealAndImagArrays(d,c)}else p=this.getValuesFromTexture(e);return l&&(this.downloadWaitMs+=v.now()-u),this.convertAndCacheOnCPU(e,p)}async read(e){if(this.pendingRead.has(e)){let h=this.pendingRead.get(e);return new Promise(m=>h.push(m))}let t=this.texData.get(e),{values:n,shape:a,slice:r,dtype:s,complexTensorInfos:i,isPacked:o}=t;if(r!=null){let h;o?h=new qs(a,rl):h=new Cr(a,rl);let m=this.runWebGLProgram(h,[{dataId:e,shape:a,dtype:s}],s),f=this.read(m.dataId);return this.disposeIntermediateTensorInfo(m),f}if(n!=null)return this.convertAndCacheOnCPU(e);if(H().getBool("DEBUG")&&!H().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&H().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l=null,u;if(s!=="complex64"&&H().get("WEBGL_BUFFER_SUPPORTED")){u=this.decode(e);let h=this.texData.get(u.dataId);l=this.gpgpu.createBufferFromTexture(h.texture.texture,...fh(a))}this.pendingRead.set(e,[]),s!=="complex64"&&await this.gpgpu.createAndWaitForFence();let p;if(s==="complex64"){let h=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]),m=h[0],f=h[1];p=N.mergeRealAndImagArrays(m,f)}else if(l==null)p=this.getValuesFromTexture(e);else{let h=v.sizeFromShape(a);p=this.gpgpu.downloadFloat32MatrixFromBuffer(l,h)}if(u!=null&&this.disposeIntermediateTensorInfo(u),l!=null){let h=this.gpgpu.gl;me(h,()=>h.deleteBuffer(l))}let d=this.convertAndCacheOnCPU(e,p),c=this.pendingRead.get(e);return this.pendingRead.delete(e),c.forEach(h=>h(d)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&_a().removeDataId(e,this),this.pendingDeletes--),d}readToGPU(e,t={}){let n=this.texData.get(e),{values:a,shape:r,slice:s,dtype:i,isPacked:o,texture:l}=n;if(i==="complex64")throw new Error("Does not support reading texture for complex64 dtype.");if(s!=null){let c;o?c=new qs(r,rl):c=new Cr(r,rl);let h=this.runWebGLProgram(c,[{dataId:e,shape:r,dtype:i}],i),m=this.readToGPU(h,t);return this.disposeIntermediateTensorInfo(h),m}if(l==null)throw a!=null?new Error("Data is not on GPU but on CPU."):new Error("There is no data on GPU or CPU.");let u=this.decode(e,t.customTexShape),p=_a().makeTensorFromTensorInfo(u),d=this.texData.get(u.dataId);return Object.assign({tensorRef:p},d.texture)}bufferSync(e){let t=this.readSync(e.dataId);if(e.dtype==="string")try{let n=t.map(a=>v.decodeString(a));return Oe(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Oe(e.shape,e.dtype,t)}checkNumericalProblems(e){if(e!=null)for(let t=0;t0}time(e){let t=this.activeTimers,n=[],a=!1;this.programTimersStack==null?(this.programTimersStack=n,a=!0):this.activeTimers.push(n),this.activeTimers=n,e();let r=v.flatten(this.activeTimers.map(o=>o.query)).filter(o=>o!=null),s=v.flatten(this.activeTimers.map(o=>o.name)).filter(o=>o!=null);this.activeTimers=t,a&&(this.programTimersStack=null);let i={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let o=await Promise.all(r);i.kernelMs=v.sum(o),i.getExtraProfileInfo=()=>o.map((l,u)=>({name:s[u],ms:l})).map(l=>`${l.name}: ${l.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 H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:v.now(),endMs:null}}endTimer(e){return H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=v.now(),e)}async getQueryTime(e){if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);let 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);let{complexTensorInfos:n}=this.texData.get(e);return n!=null&&(this.disposeData(n.real.dataId,t),this.disposeData(n.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){let{texture:t,dtype:n,texShape:a,usage:r,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),t!=null&&(this.numBytesInGPU-=this.computeBytes(a,n),this.textureManager.releaseTexture(t,a,r,s)));let 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.texture}getDataInfo(e){return this.texData.get(e)}shouldExecuteOnCPU(e,t=cJ){return H().getBool("WEBGL_CPU_FORWARD")&&e.every(n=>this.texData.get(n.dataId).texture==null&&v.sizeFromShape(n.shape)0&&v.isString(n[0])){let r=n.map(s=>v.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return this.texData.get(a).usage=null,{dataId:a,shape:e,dtype:t}}makeOutput(e,t,n){return _a().makeTensorFromTensorInfo(this.makeTensorInfo(e,t,n),this)}unpackTensor(e){let t=new iJ(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new G7(e.shape),n=!0;return this.runWebGLProgram(t,[e],e.dtype,null,n)}packedReshape(e,t){let n=[ci(e.shape),...di(e.shape)],a={dtype:e.dtype,shape:n,dataId:e.dataId},r=[ci(t),...di(t)],s=new lE(r,n),i=!0,o=[n],l=this.runWebGLProgram(s,[a],e.dtype,o,i);return{dataId:l.dataId,shape:t,dtype:l.dtype}}decode(e,t){let n=this.texData.get(e),{isPacked:a,shape:r,dtype:s}=n;if(t!=null){let d=v.sizeFromShape(r),c=t[0]*t[1]*4;v.assert(d<=c,()=>"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.")}let i=Bp(r),o;a?o=new KZ(i):o=new qZ(i);let l=!0,u=[t!=null?t:fh(i)],p=this.runWebGLProgram(o,[{shape:i,dtype:s,dataId:e}],s,u,l,t);return{dtype:s,shape:r,dataId:p.dataId}}runWebGLProgram(e,t,n,a,r=!1,s){let i=this.makeTensorInfo(e.outputShape,n),o=this.texData.get(i.dataId);if(e.packedOutput&&(o.isPacked=!0),e.outPackingScheme===rc.DENSE){let g=s!=null?s:fh(e.outputShape);o.texShape=g.map(y=>y*2)}if(e.outTexUsage!=null&&(o.usage=e.outTexUsage),v.sizeFromShape(i.shape)===0)return o.values=v.getTypedArrayFromDType(i.dtype,0),i;let l=[],u=t.map(g=>{if(g.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let y=this.texData.get(g.dataId);if(y.texture==null){if(!e.packedInputs&&v.sizeFromShape(g.shape)<=H().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:g.shape,texData:null,isUniform:!0,uniformValues:y.values};e.packedInputs&&(y.isPacked=!0,y.shape=g.shape)}if(this.uploadToGPU(g.dataId),!!y.isPacked!=!!e.packedInputs)g=y.isPacked?this.unpackTensor(g):this.packTensor(g),l.push(g),y=this.texData.get(g.dataId);else if(y.isPacked&&!sc(y.shape,g.shape)){let b=g,x=g.shape;g.shape=y.shape,g=this.packedReshape(g,x),l.push(g),y=this.texData.get(g.dataId),b.shape=x}return{shape:g.shape,texData:y,isUniform:!1}});this.uploadToGPU(i.dataId);let p={shape:i.shape,texData:o,isUniform:!1},d=jZ(e,u,p),c=this.getAndSaveBinary(d,()=>GZ(this.gpgpu,e,u,p)),h=this.activeTimers!=null,m;h&&(m=this.startTimer()),H().get("ENGINE_COMPILE_ONLY")||HZ(this.gpgpu,c,u,p,a),l.forEach(g=>this.disposeIntermediateTensorInfo(g)),h&&(m=this.endTimer(m),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(m)}));let f=H().get("WEBGL_FLUSH_THRESHOLD");if(f>0){let g=v.now();g-this.lastGlFlushTime>f&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=g)}if(!H().getBool("WEBGL_LAZILY_UNPACK")&&o.isPacked&&r===!1){let g=this.unpackTensor(i);return this.disposeIntermediateTensorInfo(i),g}return i}compileAndRun(e,t,n,a,r=!1){return n=n||t[0].dtype,this.runWebGLProgram(e,t,n,a,r)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(H().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=P(()=>{if(!H().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=H().getBool("DEBUG");H().set("DEBUG",!1);let t=this.abs(xe(1e-8)).dataSync()[0];if(H().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?lJ:uJ}uploadToGPU(e){let t=this.texData.get(e),{shape:n,dtype:a,values:r,texture:s,usage:i,isPacked:o}=t;if(s!=null)return;let l=this.activeTimers!=null,u;l&&(u=v.now());let p=t.texShape;if(p==null&&(p=E_(n,o),t.texShape=p),r!=null){let d=Bp(n),c,h=p[1],m=p[0],f=r instanceof Uint8Array||r instanceof Uint8ClampedArray;(o||!f)&&([h,m]=Xu(p[0],p[1])),o?c=new JZ(d,f):c=new hI(d,f);let g=f?[m,h]:p,y=this.makeTensorInfo(g,a),b=this.texData.get(y.dataId);f?b.usage=ca.PIXELS:b.usage=ca.UPLOAD,b.texShape=g,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(y.dataId),h,m,r);let x=[[m,h]],w=!0,I=this.runWebGLProgram(c,[y],a,x,w),T=this.texData.get(I.dataId);t.texShape=T.texShape,t.isPacked=T.isPacked,t.usage=T.usage,H().get("ENGINE_COMPILE_ONLY")?this.disposeData(I.dataId):(t.texture=T.texture,t.values=null,this.texData.delete(I.dataId)),this.disposeIntermediateTensorInfo(y),l&&(this.uploadWaitMs+=v.now()-u)}else{let d=this.acquireTexture(p,i,a,o);t.texture=d}}convertAndCacheOnCPU(e,t){let n=this.texData.get(e),{dtype:a}=n;return this.releaseGPUData(e),t!=null&&(n.values=mJ(t,a)),n.values}acquireTexture(e,t,n,a){if(this.numBytesInGPU+=this.computeBytes(e,n),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let r=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${r} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,a)}computeBytes(e,t){return e[0]*e[1]*v.bytesPerElement(t)}checkCompileCompletion(){for(let[,e]of Object.entries(this.binaryCache))this.checkCompletion_(e)}async checkCompileCompletionAsync(){let e=[];if(this.gpgpu.parallelCompilationExtension){for(let[,t]of Object.entries(this.binaryCache))e.push(this.checkCompletionAsync_(t));return Promise.all(e)}else{for(let[,t]of Object.entries(this.binaryCache)){let n=new Promise(a=>{try{this.checkCompletion_(t),a(!0)}catch(r){throw r}});e.push(n)}return Promise.all(e)}}async checkCompletionAsync_(e){return this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(e):(await Jv(),this.checkCompletionAsync_(e))}checkCompletion_(e){if(this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.gl.LINK_STATUS)===!1)throw console.log(this.gpgpu.gl.getProgramInfoLog(e.webGLProgram)),this.gpgpu.gl.getShaderParameter(e.fragmentShader,this.gpgpu.gl.COMPILE_STATUS)===!1?(Y0(e.source,this.gpgpu.gl.getShaderInfoLog(e.fragmentShader)),new Error("Failed to compile fragment shader.")):new Error("Failed to link vertex and fragment shaders.");return!0}getUniformLocations(){for(let[,e]of Object.entries(this.binaryCache)){let{uniformLocations:t,customUniformLocations:n,infLoc:a,nanLoc:r,inShapesLocations:s,inTexShapesLocations:i,outShapeLocation:o,outShapeStridesLocation:l,outTexShapeLocation:u}=W_(this.gpgpu,e.program,e.webGLProgram);e.uniformLocations=t,e.customUniformLocations=n,e.infLoc=a,e.nanLoc=r,e.inShapesLocations=s,e.inTexShapesLocations=i,e.outShapeLocation=o,e.outShapeStridesLocation=l,e.outTexShapeLocation=u}}createTensorFromTexture(e,t,n){let{texture:a,height:r,width:s,channels:i}=e,o=_a().backend;if(!o.gpgpu.gl.isTexture(a))throw new Error("The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.");let l=o.writeTexture(a,t,n,r,s,i);return _a().makeTensorFromDataId(l,t,n,o)}};Xf.nextDataId=0;function mJ(e,t){if(t==="float32"||t==="complex64")return e;if(t==="int32"||t==="bool"){let n=t==="int32"?new Int32Array(e.length):new Uint8Array(e.length);for(let a=0;anew Xf,2);var gJ={forceHalfFloat:uE},i1=` if (isnan(a)) return a; if (isnan(b)) return b; -`,$l=class{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=N.assertAndGetBroadcastShape(t,n),this.enableShapeUniforms=En(this.outputShape.length),this.userCode=` +`,Al=class{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=N.assertAndGetBroadcastShape(t,n),this.enableShapeUniforms=En(this.outputShape.length),this.userCode=` float binaryOperation(float a, float b) { ${e} } @@ -1302,10 +1302,10 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, `}};function aa(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var yJ={kernelName:Ri,backendName:"webgl",kernelFunc:aa};function _s(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.makeTensorInfo(a.shape,"complex64"),i=n.texData.get(s.dataId),o=aa({inputs:{x:a},backend:n}),l=aa({inputs:{x:r},backend:n});return i.complexTensorInfos={real:o,imag:l},s}var bJ={kernelName:mm,backendName:"webgl",kernelFunc:_s},pE="return (a < 0.) ? b * a : a;",cE=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function xJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a,i=n.makeTensorInfo([],"float32",v.createScalarValue(s,"float32")),o=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new ud(cE,r.shape,i.shape):new $l(pE,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],"float32");return n.disposeIntermediateTensorInfo(i),l}var vJ={kernelName:Mi,backendName:"webgl",kernelFunc:xJ},dE="return (a < 0.) ? b * a : a;",hE=` +`;function xJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a,i=n.makeTensorInfo([],"float32",v.createScalarValue(s,"float32")),o=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new ud(cE,r.shape,i.shape):new Al(pE,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],"float32");return n.disposeIntermediateTensorInfo(i),l}var vJ={kernelName:Mi,backendName:"webgl",kernelFunc:xJ},dE="return (a < 0.) ? b * a : a;",hE=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function wJ(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new ud(hE,a.shape,r.shape):new $l(dE,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],"float32")}var kJ={kernelName:Ki,backendName:"webgl",kernelFunc:wJ},tp="if (isnan(x)) return x;";function Ye({opSnippet:e,packedOpSnippet:t,cpuKernelImpl:n,dtype:a}){return({inputs:r,backend:s})=>{let{x:i}=r,o=s,l=a||i.dtype;if(o.shouldExecuteOnCPU([i])&&n!=null){let d=o.texData.get(i.dataId),c=n(d.values,l);return o.makeTensorInfo(i.shape,l,c)}let u=H().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,p;return u?p=new qs(i.shape,t):p=new Cr(i.shape,e),o.runWebGLProgram(p,[i],l)}}function cn({opSnippet:e,packedOpSnippet:t,checkOutOfBounds:n=!1,supportsComplex:a=!1,cpuKernelImpl:r,dtype:s}){return({inputs:i,backend:o})=>{let{a:l,b:u}=i,p=o;if(a&&l.dtype==="complex64"){let m=p.texData.get(l.dataId),f=p.texData.get(u.dataId),[g,y]=[[m.complexTensorInfos.real,f.complexTensorInfos.real],[m.complexTensorInfos.imag,f.complexTensorInfos.imag]].map(x=>{let[w,I]=x,T={dataId:w.dataId,dtype:w.dtype,shape:l.shape},C={dataId:I.dataId,dtype:I.dtype,shape:u.shape},E=new $l(e,l.shape,u.shape);return p.runWebGLProgram(E,[T,C],fa(w.dtype,I.dtype))}),b=_s({inputs:{real:g,imag:y},backend:p});return p.disposeIntermediateTensorInfo(g),p.disposeIntermediateTensorInfo(y),b}let d=s||fa(l.dtype,u.dtype);if((l.dtype==="string"||u.dtype==="string"||p.shouldExecuteOnCPU([l,u]))&&r!=null){let m=p.texData.get(l.dataId).values,f=p.texData.get(u.dataId).values,g=l.dtype==="string"?N.fromUint8ToStringArray(m):m,y=l.dtype==="string"?N.fromUint8ToStringArray(f):f,[b,x]=r(l.shape,u.shape,g,y,d),w=p.makeTensorInfo(x,d),I=p.texData.get(w.dataId);return I.values=b,w}let c=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return c?h=new ud(t,l.shape,u.shape,n):h=new $l(e,l.shape,u.shape),p.runWebGLProgram(h,[l,u],d)}}function ic(e,t=!1){if(e==="linear")return t?tJ:Y7;if(e==="relu")return t?aJ:J7;if(e==="elu")return t?nJ:Z7;if(e==="relu6")return t?rJ:Q7;if(e==="prelu")return t?hE:dE;if(e==="leakyrelu")return t?cE:pE;if(e==="sigmoid")return t?sJ:eJ;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var mE=class{constructor(e,t,n,a=!1,r=!1,s=!1,i=null,o=!1,l=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n,this.enableShapeUniforms=En(this.outputShape.length);let u=a?e[1]:e[2],p=Math.ceil(u/2),d=a?"i * 2, rc.y":"rc.y, i * 2",c=r?"rc.z, i * 2":"i * 2, rc.z",h=a?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],m=r?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],f="",g="";i&&(o?f=`vec4 activation(vec4 a) { +`;function wJ(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new ud(hE,a.shape,r.shape):new Al(dE,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],"float32")}var kJ={kernelName:Ki,backendName:"webgl",kernelFunc:wJ},tp="if (isnan(x)) return x;";function Ye({opSnippet:e,packedOpSnippet:t,cpuKernelImpl:n,dtype:a}){return({inputs:r,backend:s})=>{let{x:i}=r,o=s,l=a||i.dtype;if(o.shouldExecuteOnCPU([i])&&n!=null){let d=o.texData.get(i.dataId),c=n(d.values,l);return o.makeTensorInfo(i.shape,l,c)}let u=H().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,p;return u?p=new qs(i.shape,t):p=new Cr(i.shape,e),o.runWebGLProgram(p,[i],l)}}function cn({opSnippet:e,packedOpSnippet:t,checkOutOfBounds:n=!1,supportsComplex:a=!1,cpuKernelImpl:r,dtype:s}){return({inputs:i,backend:o})=>{let{a:l,b:u}=i,p=o;if(a&&l.dtype==="complex64"){let m=p.texData.get(l.dataId),f=p.texData.get(u.dataId),[g,y]=[[m.complexTensorInfos.real,f.complexTensorInfos.real],[m.complexTensorInfos.imag,f.complexTensorInfos.imag]].map(x=>{let[w,I]=x,T={dataId:w.dataId,dtype:w.dtype,shape:l.shape},C={dataId:I.dataId,dtype:I.dtype,shape:u.shape},E=new Al(e,l.shape,u.shape);return p.runWebGLProgram(E,[T,C],fa(w.dtype,I.dtype))}),b=_s({inputs:{real:g,imag:y},backend:p});return p.disposeIntermediateTensorInfo(g),p.disposeIntermediateTensorInfo(y),b}let d=s||fa(l.dtype,u.dtype);if((l.dtype==="string"||u.dtype==="string"||p.shouldExecuteOnCPU([l,u]))&&r!=null){let m=p.texData.get(l.dataId).values,f=p.texData.get(u.dataId).values,g=l.dtype==="string"?N.fromUint8ToStringArray(m):m,y=l.dtype==="string"?N.fromUint8ToStringArray(f):f,[b,x]=r(l.shape,u.shape,g,y,d),w=p.makeTensorInfo(x,d),I=p.texData.get(w.dataId);return I.values=b,w}let c=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return c?h=new ud(t,l.shape,u.shape,n):h=new Al(e,l.shape,u.shape),p.runWebGLProgram(h,[l,u],d)}}function ic(e,t=!1){if(e==="linear")return t?tJ:Y7;if(e==="relu")return t?aJ:J7;if(e==="elu")return t?nJ:Z7;if(e==="relu6")return t?rJ:Q7;if(e==="prelu")return t?hE:dE;if(e==="leakyrelu")return t?cE:pE;if(e==="sigmoid")return t?sJ:eJ;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var mE=class{constructor(e,t,n,a=!1,r=!1,s=!1,i=null,o=!1,l=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n,this.enableShapeUniforms=En(this.outputShape.length);let u=a?e[1]:e[2],p=Math.ceil(u/2),d=a?"i * 2, rc.y":"rc.y, i * 2",c=r?"rc.z, i * 2":"i * 2, rc.z",h=a?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],m=r?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],f="",g="";i&&(o?f=`vec4 activation(vec4 a) { vec4 b = getPreluActivationWeightsAtOutCoords(); ${i} }`:l?f=`vec4 activation(vec4 a) { @@ -1357,7 +1357,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float bimag = getBImagAtOutCoords(); setOutput(binaryOpComplex(areal, aimag, breal, bimag)); } - `}},vI="return a * b;";function o1(e){let{inputs:t,backend:n}=e,{a,b:r}=t,s=N.upcastType(a.dtype,r.dtype);if(a.dtype==="complex64"){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),u=new xI(bI.REAL,a.shape,r.shape),p=new xI(bI.IMAG,a.shape,r.shape),d=[{dataId:o.complexTensorInfos.real.dataId,dtype:o.complexTensorInfos.real.dtype,shape:a.shape},{dataId:o.complexTensorInfos.imag.dataId,dtype:o.complexTensorInfos.imag.dtype,shape:a.shape},{dataId:l.complexTensorInfos.real.dataId,dtype:l.complexTensorInfos.real.dtype,shape:r.shape},{dataId:l.complexTensorInfos.imag.dataId,dtype:l.complexTensorInfos.imag.dtype,shape:r.shape}],c=n.runWebGLProgram(u,d,"float32"),h=n.runWebGLProgram(p,d,"float32"),m=_s({inputs:{real:c,imag:h},backend:n});return n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),m}if(n.shouldExecuteOnCPU([a,r])){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),[u,p]=v7(a.shape,r.shape,o.values,l.values,s),d=n.makeTensorInfo(p,s),c=n.texData.get(d.dataId);return c.values=u,d}let i;return H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new ud(vI,a.shape,r.shape):i=new $l(vI,a.shape,r.shape),n.runWebGLProgram(i,[a,r],s)}var IJ={kernelName:Gi,backendName:"webgl",kernelFunc:o1};function SJ(e,t,n){let a=[ci(e.shape),...di(e.shape)],r={dtype:e.dtype,shape:a,dataId:e.dataId},s=[ci(t),...di(t)],i=new lE(s,a),o=!0,l=[a],u=n.runWebGLProgram(i,[r],e.dtype,l,o);return{dataId:u.dataId,shape:t,dtype:u.dtype}}function de(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=n,o=v.sizeFromShape(r.shape),l=v.inferFromImplicitShape(s,o),u=v.sizeFromShape(l);v.assert(o===u,()=>`The new shape (${l}) has ${u} elements and the old shape (${r.shape}) has ${o} elements. The new shape and old shape must have the same number of elements.`);let p=i.texData.get(r.dataId);return p.isPacked&&!sc(r.shape,l)&&!(p.texture!==null&&sc(p.shape,l))?SJ(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var TJ={kernelName:vu,backendName:"webgl",kernelFunc:de},wI=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i=Math.floor(n/4)*4,o=n%4,l="sumValue += dot(values, ones);";if(t!=null){let p=1/t;l=`sumValue += dot(values * ${v.isInt(p)?p.toPrecision(2):p}, ones);`}let u="";r%n>0&&(u=` + `}},vI="return a * b;";function o1(e){let{inputs:t,backend:n}=e,{a,b:r}=t,s=N.upcastType(a.dtype,r.dtype);if(a.dtype==="complex64"){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),u=new xI(bI.REAL,a.shape,r.shape),p=new xI(bI.IMAG,a.shape,r.shape),d=[{dataId:o.complexTensorInfos.real.dataId,dtype:o.complexTensorInfos.real.dtype,shape:a.shape},{dataId:o.complexTensorInfos.imag.dataId,dtype:o.complexTensorInfos.imag.dtype,shape:a.shape},{dataId:l.complexTensorInfos.real.dataId,dtype:l.complexTensorInfos.real.dtype,shape:r.shape},{dataId:l.complexTensorInfos.imag.dataId,dtype:l.complexTensorInfos.imag.dtype,shape:r.shape}],c=n.runWebGLProgram(u,d,"float32"),h=n.runWebGLProgram(p,d,"float32"),m=_s({inputs:{real:c,imag:h},backend:n});return n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),m}if(n.shouldExecuteOnCPU([a,r])){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),[u,p]=v7(a.shape,r.shape,o.values,l.values,s),d=n.makeTensorInfo(p,s),c=n.texData.get(d.dataId);return c.values=u,d}let i;return H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new ud(vI,a.shape,r.shape):i=new Al(vI,a.shape,r.shape),n.runWebGLProgram(i,[a,r],s)}var IJ={kernelName:Gi,backendName:"webgl",kernelFunc:o1};function SJ(e,t,n){let a=[ci(e.shape),...di(e.shape)],r={dtype:e.dtype,shape:a,dataId:e.dataId},s=[ci(t),...di(t)],i=new lE(s,a),o=!0,l=[a],u=n.runWebGLProgram(i,[r],e.dtype,l,o);return{dataId:u.dataId,shape:t,dtype:u.dtype}}function de(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=n,o=v.sizeFromShape(r.shape),l=v.inferFromImplicitShape(s,o),u=v.sizeFromShape(l);v.assert(o===u,()=>`The new shape (${l}) has ${u} elements and the old shape (${r.shape}) has ${o} elements. The new shape and old shape must have the same number of elements.`);let p=i.texData.get(r.dataId);return p.isPacked&&!sc(r.shape,l)&&!(p.texture!==null&&sc(p.shape,l))?SJ(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var TJ={kernelName:vu,backendName:"webgl",kernelFunc:de},wI=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i=Math.floor(n/4)*4,o=n%4,l="sumValue += dot(values, ones);";if(t!=null){let p=1/t;l=`sumValue += dot(values * ${v.isInt(p)?p.toPrecision(2):p}, ones);`}let u="";r%n>0&&(u=` if (inIdx < 0 || inIdx >= ${r}) { return 0.0; } @@ -1507,7 +1507,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${a} resRC = getOutputCoords(); setOutput(getA(${r})); } - `}};function EJ(e){let t=e.length;if(t>6)throw Error(`Transpose for rank ${t} is not yet supported`);let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],a=new Array(t);for(let r=0;r6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let a=gt(this.rank),r=oE("rc",this.rank),s=new Array(this.rank);for(let u=0;u6)throw Error(`Transpose for rank ${t} is not yet supported`);let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],a=new Array(t);for(let r=0;r6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let a=gt(this.rank),r=oE("rc",this.rank),s=new Array(this.rank);for(let u=0;u`Error in matMul: inner shapes (${d}) and (${c}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${a} must match.`);let w=n?[y,d,h]:[y,h,d],I=a?[b,m,c]:[b,c,m],T=de({inputs:{x:e},backend:r,attrs:{shape:w}}),C=de({inputs:{x:t},backend:r,attrs:{shape:I}}),E=[T,C],A=Math.max(y,b),R=n?T.shape[1]:T.shape[2],F=s!=null,S=i!=null,M=l==="leakyrelu",B=l!=null?ic(l,!0):null,U=F||S||M||B!=null,G;if((h===1||m===1)&&R>fE&&U===!1){let K=T,Z=C;n&&(K=Sn({inputs:{x:T},backend:r,attrs:{perm:[0,2,1]}}),E.push(K)),a&&(Z=Sn({inputs:{x:C},backend:r,attrs:{perm:[0,2,1]}}),E.push(Z));let Q=m!==1,ee=m===1,ae=K;Q&&(ae=de({inputs:{x:K},backend:r,attrs:{shape:[A,R,1]}}),E.push(ae));let te=m===1?2:1,le=Z;ee&&(le=de({inputs:{x:Z},backend:r,attrs:{shape:[A,1,R]}}),E.push(le));let ie=o1({inputs:{a:ae,b:le},backend:r});G=Zf({inputs:{x:ie},backend:r,attrs:{axis:te,keepDims:!0}}),E.push(ie)}else{let K=fa(e.dtype,t.dtype),Z=new mE(w,I,[A,h,m],n,a,F,B,S,M),Q=[T,C];if(s!=null&&Q.push(s),S&&Q.push(i),M){let ee=r.makeTensorInfo([],"float32",v.createScalarValue(o,"float32"));Q.push(ee),E.push(ee)}G=r.runWebGLProgram(Z,Q,K)}let q=de({inputs:{x:G},backend:r,attrs:{shape:x}});E.push(G);for(let K of E)r.disposeIntermediateTensorInfo(K);return q}function RJ(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t,{transposeA:l,transposeB:u,activation:p,leakyreluAlpha:d}=a;return nm({a:r,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:d,activation:p})}var MJ={kernelName:Qs,backendName:"webgl",kernelFunc:RJ},kI="return abs(x);";function PJ(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])&&a.dtype!=="complex64"){let s=n.texData.get(a.dataId),i=sE(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return H().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new qs(a.shape,kI):r=new Cr(a.shape,kI),n.runWebGLProgram(r,[a],a.dtype)}var OJ={kernelName:Dl,backendName:"webgl",kernelFunc:PJ},LJ=Ma+` + `}};function Yf(e,t,n){let a=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new $J(e.shape,t):new _J(e.shape,t);return n.runWebGLProgram(a,[e],e.dtype)}function AJ(e,t,n,a){let r=t,s=e.shape.length,i=v.parseAxisParam(r,e.shape),o=i,l=N.getAxesPermutation(o,s),u=l!=null,p=e;u&&(p=Yf(e,l,a),o=N.getInnerMostAxes(o.length,s)),N.assertAxesAreInnerMostDims("sum",o,s);let[d,c]=N.computeOutAndReduceShapes(p.shape,o),h=d;n&&(h=N.expandShapeToKeepDim(d,i));let m=v.sizeFromShape(c),f=v.sizeFromShape(e.shape)/m,g=de({inputs:{x:p},attrs:{shape:[f,m]},backend:a}),y=Um(e.dtype),b=Io(g,y,"sum",a),x=de({inputs:{x:b},attrs:{shape:h},backend:a});return a.disposeIntermediateTensorInfo(g),a.disposeIntermediateTensorInfo(b),u&&a.disposeIntermediateTensorInfo(p),x}function Zf(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;return AJ(r,s,i,n)}var FJ={kernelName:io,backendName:"webgl",kernelFunc:Zf};function Sn(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{perm:s}=a,i=n,o=r.shape.length,l=new Array(o);for(let p=0;p`Error in matMul: inner shapes (${d}) and (${c}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${a} must match.`);let w=n?[y,d,h]:[y,h,d],I=a?[b,m,c]:[b,c,m],T=de({inputs:{x:e},backend:r,attrs:{shape:w}}),C=de({inputs:{x:t},backend:r,attrs:{shape:I}}),E=[T,C],$=Math.max(y,b),R=n?T.shape[1]:T.shape[2],F=s!=null,S=i!=null,M=l==="leakyrelu",B=l!=null?ic(l,!0):null,U=F||S||M||B!=null,G;if((h===1||m===1)&&R>fE&&U===!1){let K=T,Z=C;n&&(K=Sn({inputs:{x:T},backend:r,attrs:{perm:[0,2,1]}}),E.push(K)),a&&(Z=Sn({inputs:{x:C},backend:r,attrs:{perm:[0,2,1]}}),E.push(Z));let J=m!==1,ee=m===1,ae=K;J&&(ae=de({inputs:{x:K},backend:r,attrs:{shape:[$,R,1]}}),E.push(ae));let te=m===1?2:1,ie=Z;ee&&(ie=de({inputs:{x:Z},backend:r,attrs:{shape:[$,1,R]}}),E.push(ie));let oe=o1({inputs:{a:ae,b:ie},backend:r});G=Zf({inputs:{x:oe},backend:r,attrs:{axis:te,keepDims:!0}}),E.push(oe)}else{let K=fa(e.dtype,t.dtype),Z=new mE(w,I,[$,h,m],n,a,F,B,S,M),J=[T,C];if(s!=null&&J.push(s),S&&J.push(i),M){let ee=r.makeTensorInfo([],"float32",v.createScalarValue(o,"float32"));J.push(ee),E.push(ee)}G=r.runWebGLProgram(Z,J,K)}let q=de({inputs:{x:G},backend:r,attrs:{shape:x}});E.push(G);for(let K of E)r.disposeIntermediateTensorInfo(K);return q}function RJ(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t,{transposeA:l,transposeB:u,activation:p,leakyreluAlpha:d}=a;return nm({a:r,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:d,activation:p})}var MJ={kernelName:Qs,backendName:"webgl",kernelFunc:RJ},kI="return abs(x);";function PJ(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])&&a.dtype!=="complex64"){let s=n.texData.get(a.dataId),i=sE(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return H().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new qs(a.shape,kI):r=new Cr(a.shape,kI),n.runWebGLProgram(r,[a],a.dtype)}var OJ={kernelName:Dl,backendName:"webgl",kernelFunc:PJ},LJ=Ma+` if (abs(x) > 1.) { return NAN; } @@ -1788,7 +1788,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam } setOutput(${x}); } - `}},l1=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideDepth,o=e.strideHeight,l=e.strideWidth,u=e.dilationDepth,p=e.dilationHeight,d=e.dilationWidth,c=e.effectiveFilterDepth,h=e.effectiveFilterHeight,m=e.effectiveFilterWidth,f=e.padInfo.front,g=e.padInfo.top,y=e.padInfo.left;this.outputShape=e.outShape;let b=t==="avg",x="0.0";if(b||(x="-1.0 / 1e-20"),n){let A=">=";this.userCode=` + `}},l1=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideDepth,o=e.strideHeight,l=e.strideWidth,u=e.dilationDepth,p=e.dilationHeight,d=e.dilationWidth,c=e.effectiveFilterDepth,h=e.effectiveFilterHeight,m=e.effectiveFilterWidth,f=e.padInfo.front,g=e.padInfo.top,y=e.padInfo.left;this.outputShape=e.outShape;let b=t==="avg",x="0.0";if(b||(x="-1.0 / 1e-20"),n){let $=">=";this.userCode=` const ivec3 strides = ivec3(${i}, ${o}, ${l}); const ivec3 pads = ivec3(${f}, ${g}, ${y}); @@ -1839,7 +1839,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam // use the current value. float currMinMaxValue = mix( value, minMaxValue, minMaxValueFound); - if (value ${A} currMinMaxValue) { + if (value ${$} currMinMaxValue) { minMaxValue = value; minMaxValueFound = 1.0; minMaxPosition = ${a?r?`(((batch * ${e.inDepth} + xD) * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`((xD * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`wD * ${h} * ${m} + @@ -2049,7 +2049,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam } setOutput(dotProd); } - `}};function C9(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:u,dimRoundingMode:p}=a,d=[1,1,1],c=N.computePool3DInfo(i.shape,o,l,d,u,p),h=new N9(c);return n.runWebGLProgram(h,[r],i.dtype)}var _9={kernelName:cm,backendName:"webgl",kernelFunc:C9};function E9(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;Yu([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=N.computePool2DInfo(i.shape,o,l,1,u),d=new T9(p);return n.runWebGLProgram(d,[r],i.dtype)}var A9={kernelName:pm,backendName:"webgl",kernelFunc:E9};function $9(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return nm({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var F9={kernelName:bi,backendName:"webgl",kernelFunc:$9},D9=class{constructor(e,t,n,a,r,s){this.outputShape=[],this.variableNames=["x","mean","variance"],N.assertAndGetBroadcastShape(e,t),N.assertAndGetBroadcastShape(e,n);let i="0.0";a!=null&&(N.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";r!=null&&(N.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + `}};function C9(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:u,dimRoundingMode:p}=a,d=[1,1,1],c=N.computePool3DInfo(i.shape,o,l,d,u,p),h=new N9(c);return n.runWebGLProgram(h,[r],i.dtype)}var _9={kernelName:cm,backendName:"webgl",kernelFunc:C9};function E9(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;Yu([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=N.computePool2DInfo(i.shape,o,l,1,u),d=new T9(p);return n.runWebGLProgram(d,[r],i.dtype)}var $9={kernelName:pm,backendName:"webgl",kernelFunc:E9};function A9(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return nm({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var F9={kernelName:bi,backendName:"webgl",kernelFunc:A9},D9=class{constructor(e,t,n,a,r,s){this.outputShape=[],this.variableNames=["x","mean","variance"],N.assertAndGetBroadcastShape(e,t),N.assertAndGetBroadcastShape(e,n);let i="0.0";a!=null&&(N.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";r!=null&&(N.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { float x = getXAtOutCoords(); float mean = getMeanAtOutCoords(); @@ -2111,7 +2111,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam ${o} setOutput(result); } - `}};function W9(e,t,n,a){let r=a.texData.get(e.dataId),s=a.makeTensorInfo(n,e.dtype),i=a.texData.get(s.dataId);Object.assign(i,r),i.refCount=1,i.shape=n,i.dtype=e.dtype;let o=jt.computeFlatOffset(t,v.computeStrides(e.shape));r.slice&&(o+=r.slice.flatOffset),i.slice={flatOffset:o,origDataId:r.slice&&r.slice.origDataId||e.dataId};let l=a.dataRefCount.get(i.slice.origDataId)||1;return a.dataRefCount.set(i.slice.origDataId,l+1),s}function np(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a,[o,l]=jt.parseSliceParams(r,s,i);if(jt.assertParamsValid(r,o,l),v.sizeFromShape(l)===0)return n.makeTensorInfo(l,r.dtype,[]);if(n.shouldExecuteOnCPU([r])||r.dtype==="string"){let d=n.texData.get(r.dataId),c=$7(d.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,c)}let{isPacked:u}=n.texData.get(r.dataId),p=jt.isSliceContinous(r.shape,o,l);if(u||!p){let d=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new z9(l):new O9(l),c=[o];return n.runWebGLProgram(d,[r],r.dtype,c)}return n.uploadToGPU(r.dataId),W9(r,o,l,n)}var B9={kernelName:Su,backendName:"webgl",kernelFunc:np},V9=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;v.assert(r.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((b,x)=>b*x),l=N.getReshaped(r.shape,s,o),u=N.getPermuted(l.length,s.length),p=N.getReshapedPermuted(r.shape,s,o),d=N.getSliceBeginCoords(i,s.length),c=N.getSliceSize(p,i,s.length),h=[],m=de({inputs:{x:r},backend:n,attrs:{shape:l}}),f=Sn({inputs:{x:m},backend:n,attrs:{perm:u}}),g=de({inputs:{x:f},backend:n,attrs:{shape:p}}),y=np({inputs:{x:g},backend:n,attrs:{begin:d,size:c}});return h.push(m),h.push(f),h.push(g),h.forEach(b=>n.disposeIntermediateTensorInfo(b)),y},U9={kernelName:Ul,backendName:"webgl",kernelFunc:V9};function G9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.readSync(r.dataId),l=n.readSync(s.dataId),u=rE(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var H9={kernelName:dm,backendName:"webgl",kernelFunc:G9};function j9(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.readSync(a.dataId),i=n.readSync(r.dataId),o=N.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var q9={kernelName:hm,backendName:"webgl",kernelFunc:j9},K9="return float(a != b);",xE=cn({opSnippet:K9,cpuKernelImpl:k7,dtype:"bool"}),X9={kernelName:hu,backendName:"webgl",kernelFunc:xE};function pd(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return aa({inputs:{x:r.complexTensorInfos.real},backend:n})}var Y9={kernelName:Pm,backendName:"webgl",kernelFunc:pd},Z9="return float(int(x));";function J9(e,t){let n=new Cr(e.shape,Z9),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function xx(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return aa({inputs:{x:r},backend:n});let i=It(r.shape),o=xx({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=_s({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=pd({inputs:{input:r},backend:n}),o=xx({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!v.hasEncodingLoss(r.dtype,s)){let i=aa({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(n.shouldExecuteOnCPU([r])){let i=n.texData.get(r.dataId).values,[o,l,u]=n7(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}if(s==="int32")return J9(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",v.getTypedArrayFromDType("bool",1)),o=xE({inputs:{a:r,b:i},backend:n});return n.disposeIntermediateTensorInfo(i),o}throw new Error(`Error in Cast: failed to cast ${r.dtype} to ${s}`)}var Q9={kernelName:xi,backendName:"webgl",kernelFunc:xx},SI="return ceil(x);",eQ=Ye({opSnippet:SI,packedOpSnippet:SI,cpuKernelImpl:a7}),tQ={kernelName:vi,backendName:"webgl",kernelFunc:eQ},nQ=class{constructor(e){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` + `}};function W9(e,t,n,a){let r=a.texData.get(e.dataId),s=a.makeTensorInfo(n,e.dtype),i=a.texData.get(s.dataId);Object.assign(i,r),i.refCount=1,i.shape=n,i.dtype=e.dtype;let o=jt.computeFlatOffset(t,v.computeStrides(e.shape));r.slice&&(o+=r.slice.flatOffset),i.slice={flatOffset:o,origDataId:r.slice&&r.slice.origDataId||e.dataId};let l=a.dataRefCount.get(i.slice.origDataId)||1;return a.dataRefCount.set(i.slice.origDataId,l+1),s}function np(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a,[o,l]=jt.parseSliceParams(r,s,i);if(jt.assertParamsValid(r,o,l),v.sizeFromShape(l)===0)return n.makeTensorInfo(l,r.dtype,[]);if(n.shouldExecuteOnCPU([r])||r.dtype==="string"){let d=n.texData.get(r.dataId),c=A7(d.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,c)}let{isPacked:u}=n.texData.get(r.dataId),p=jt.isSliceContinous(r.shape,o,l);if(u||!p){let d=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new z9(l):new O9(l),c=[o];return n.runWebGLProgram(d,[r],r.dtype,c)}return n.uploadToGPU(r.dataId),W9(r,o,l,n)}var B9={kernelName:Su,backendName:"webgl",kernelFunc:np},V9=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;v.assert(r.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((b,x)=>b*x),l=N.getReshaped(r.shape,s,o),u=N.getPermuted(l.length,s.length),p=N.getReshapedPermuted(r.shape,s,o),d=N.getSliceBeginCoords(i,s.length),c=N.getSliceSize(p,i,s.length),h=[],m=de({inputs:{x:r},backend:n,attrs:{shape:l}}),f=Sn({inputs:{x:m},backend:n,attrs:{perm:u}}),g=de({inputs:{x:f},backend:n,attrs:{shape:p}}),y=np({inputs:{x:g},backend:n,attrs:{begin:d,size:c}});return h.push(m),h.push(f),h.push(g),h.forEach(b=>n.disposeIntermediateTensorInfo(b)),y},U9={kernelName:Ul,backendName:"webgl",kernelFunc:V9};function G9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.readSync(r.dataId),l=n.readSync(s.dataId),u=rE(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var H9={kernelName:dm,backendName:"webgl",kernelFunc:G9};function j9(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.readSync(a.dataId),i=n.readSync(r.dataId),o=N.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var q9={kernelName:hm,backendName:"webgl",kernelFunc:j9},K9="return float(a != b);",xE=cn({opSnippet:K9,cpuKernelImpl:k7,dtype:"bool"}),X9={kernelName:hu,backendName:"webgl",kernelFunc:xE};function pd(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return aa({inputs:{x:r.complexTensorInfos.real},backend:n})}var Y9={kernelName:Pm,backendName:"webgl",kernelFunc:pd},Z9="return float(int(x));";function J9(e,t){let n=new Cr(e.shape,Z9),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function xx(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return aa({inputs:{x:r},backend:n});let i=It(r.shape),o=xx({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=_s({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=pd({inputs:{input:r},backend:n}),o=xx({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!v.hasEncodingLoss(r.dtype,s)){let i=aa({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(n.shouldExecuteOnCPU([r])){let i=n.texData.get(r.dataId).values,[o,l,u]=n7(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}if(s==="int32")return J9(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",v.getTypedArrayFromDType("bool",1)),o=xE({inputs:{a:r,b:i},backend:n});return n.disposeIntermediateTensorInfo(i),o}throw new Error(`Error in Cast: failed to cast ${r.dtype} to ${s}`)}var Q9={kernelName:xi,backendName:"webgl",kernelFunc:xx},SI="return ceil(x);",eQ=Ye({opSnippet:SI,packedOpSnippet:SI,cpuKernelImpl:a7}),tQ={kernelName:vi,backendName:"webgl",kernelFunc:eQ},nQ=class{constructor(e){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` void main() { float value = getAAtOutCoords(); @@ -2192,7 +2192,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam } setOutput(result); } - `}};function yh(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function Jf(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return aa({inputs:{x:r.complexTensorInfos.imag},backend:n})}var cQ={kernelName:Nm,backendName:"webgl",kernelFunc:Jf};function Vp(e,t,n){let a=e[0].dtype;if(a==="complex64"){let d=e.map(g=>pd({inputs:{input:g},backend:n})),c=e.map(g=>Jf({inputs:{input:g},backend:n})),h=Vp(d,t,n),m=Vp(c,t,n),f=_s({inputs:{real:h,imag:m},backend:n});return d.forEach(g=>n.disposeIntermediateTensorInfo(g)),c.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),f}let r=n.shouldExecuteOnCPU(e);if(a==="string"&&(r=!0),r){let d=e.map(b=>{let x=v.sizeFromShape(b.shape.slice(t));return de({inputs:{x:b},backend:n,attrs:{shape:[-1,x]}})}),c=d.map(b=>({vals:n.readSync(b.dataId),shape:b.shape})),h=N.computeOutShape(d.map(b=>b.shape),1),m=d[0].shape[0]===1,f=r7(c,h,a,m),g=N.computeOutShape(e.map(b=>b.shape),t),y=n.makeTensorInfo(g,a,f);return d.forEach(b=>n.disposeIntermediateTensorInfo(b)),y}let s=H().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(e.length>s){let d=[];for(let h=0;h1){let d=new pQ(e.map(c=>c.shape),t);return n.runWebGLProgram(d,e,a)}let{tensors2D:i,outShape:o}=dQ(e,t,n),l=new uQ(i.map(d=>d.shape)),u=n.runWebGLProgram(l,i,a);i.forEach(d=>n.disposeIntermediateTensorInfo(d));let p=de({inputs:{x:u},attrs:{shape:o},backend:n});return n.disposeIntermediateTensorInfo(u),p}function dQ(e,t,n){let a=N.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>de({inputs:{x:r},attrs:{shape:[-1,v.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function vE(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a,s=v.parseAxisParam(r,t[0].shape)[0],i=t.map(u=>u.shape);N.assertParamsConsistent(i,s);let o=N.computeOutShape(t.map(u=>u.shape),s);if(v.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(u=>v.sizeFromShape(u.shape)>0);return l.length===1?aa({inputs:{x:l[0]},backend:n}):Vp(l,s,n)}var hQ={kernelName:Gl,backendName:"webgl",kernelFunc:vE},wE=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let s=e.padInfo.top,i=e.padInfo.left,o=e.strideHeight,l=e.strideWidth,u=e.dilationHeight,p=e.dilationWidth,d=e.filterHeight,c=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4,f=e.dataFormat==="channelsLast",g=f?1:2,y=f?2:3,b=f?3:1,x="",w="";n&&(a?x=`float activation(float a) { + `}};function yh(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function Jf(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return aa({inputs:{x:r.complexTensorInfos.imag},backend:n})}var cQ={kernelName:Nm,backendName:"webgl",kernelFunc:Jf};function Vp(e,t,n){let a=e[0].dtype;if(a==="complex64"){let d=e.map(g=>pd({inputs:{input:g},backend:n})),c=e.map(g=>Jf({inputs:{input:g},backend:n})),h=Vp(d,t,n),m=Vp(c,t,n),f=_s({inputs:{real:h,imag:m},backend:n});return d.forEach(g=>n.disposeIntermediateTensorInfo(g)),c.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),f}let r=n.shouldExecuteOnCPU(e);if(a==="string"&&(r=!0),r){let d=e.map(b=>{let x=[-1,v.sizeFromShape(b.shape.slice(t))];return de({inputs:{x:b},backend:n,attrs:{shape:x}})}),c=d.map(b=>({vals:n.readSync(b.dataId),shape:b.shape})),h=N.computeOutShape(d.map(b=>b.shape),1),m=d[0].shape[0]===1,f=r7(c,h,a,m),g=N.computeOutShape(e.map(b=>b.shape),t),y=n.makeTensorInfo(g,a,f);return d.forEach(b=>n.disposeIntermediateTensorInfo(b)),y}let s=H().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(e.length>s){let d=[];for(let h=0;h1){let d=new pQ(e.map(c=>c.shape),t);return n.runWebGLProgram(d,e,a)}let{tensors2D:i,outShape:o}=dQ(e,t,n),l=new uQ(i.map(d=>d.shape)),u=n.runWebGLProgram(l,i,a);i.forEach(d=>n.disposeIntermediateTensorInfo(d));let p=de({inputs:{x:u},attrs:{shape:o},backend:n});return n.disposeIntermediateTensorInfo(u),p}function dQ(e,t,n){let a=N.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>de({inputs:{x:r},attrs:{shape:[-1,v.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function vE(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a,s=v.parseAxisParam(r,t[0].shape)[0],i=t.map(u=>u.shape);N.assertParamsConsistent(i,s);let o=N.computeOutShape(t.map(u=>u.shape),s);if(v.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(u=>v.sizeFromShape(u.shape)>0);return l.length===1?aa({inputs:{x:l[0]},backend:n}):Vp(l,s,n)}var hQ={kernelName:Gl,backendName:"webgl",kernelFunc:vE},wE=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let s=e.padInfo.top,i=e.padInfo.left,o=e.strideHeight,l=e.strideWidth,u=e.dilationHeight,p=e.dilationWidth,d=e.filterHeight,c=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4,f=e.dataFormat==="channelsLast",g=f?1:2,y=f?2:3,b=f?3:1,x="",w="";n&&(a?x=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:r?x=`float activation(float a) { @@ -2657,7 +2657,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam ${a.output} = result; } - `}};function am(e,t){let n=e.length;return n>=3?t?[...e.slice(0,-3),e[n-3]*e[n-2],e[n-1]]:[...e.slice(0,-3),e[n-3],e[n-2]*e[n-1]]:!t&&n===1&&e[0]>1?[e[0],1]:null}function IE({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let l=e.shape,u=a.texData.get(e.dataId),p=n.inChannels,d=l[0]*l[1]*l[2],c=n.outChannels,h=n.dataFormat==="channelsLast",m=!1,f=!1,g,y=[];if(s!=null){let b=am(s.shape,h);b!=null&&(s=de({inputs:{x:s},backend:a,attrs:{shape:b}}),y.push(s))}if(r!=null){let b=am(r.shape,h);b!=null&&(r=de({inputs:{x:r},backend:a,attrs:{shape:b}}),y.push(r))}if(!((d===1||c===1)&&p>fE)&&u.isPacked&&h&&u.texture!=null&&l[2]%2!==0&&v.arraysEqual(u.shape.slice(-3),l.slice(-3))){let b=l[0]*l[1]*(l[2]+1),x={dataId:e.dataId,shape:[1,b,n.inChannels],dtype:e.dtype},w=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,v.assert(sc(u.shape,x.shape),()=>`packed reshape ${u.shape} to ${x.shape} isn't free`);let I=de({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});y.push(I);let T=nm({a:x,b:I,backend:a,transposeA:m,transposeB:f,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),C=a.texData.get(T.dataId);v.assert(C.isPacked,()=>"batchMatMul result is expected to be packed"),u.shape=w,C.shape=n.outShape,g=aa({inputs:{x:T},backend:a}),g.shape=n.outShape,y.push(T)}else{let b=n.outHeight*n.outWidth,x=de({inputs:{x:e},backend:a,attrs:{shape:h?[n.batchSize,b,n.inChannels]:[n.batchSize,n.inChannels,b]}}),w=de({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),I=nm({a:h?x:w,b:h?w:x,transposeA:!h,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=de({inputs:{x:I},backend:a,attrs:{shape:n.outShape}}),y.push(x),y.push(w),y.push(I)}for(let b of y)a.disposeIntermediateTensorInfo(b);return g}function SE({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let{filterWidth:l,filterHeight:u,inChannels:p,outWidth:d,outHeight:c,dataFormat:h}=n,m=h==="channelsLast",f=l*u*p,g=c*d,y=[n.batchSize,f,g],b=!0,x=!1,w=[];if(s!=null){let K=am(s.shape,m);K!=null&&(s=de({inputs:{x:s},backend:a,attrs:{shape:K}}),w.push(s))}if(r!=null){let K=am(r.shape,m);K!=null&&(r=de({inputs:{x:r},backend:a,attrs:{shape:K}}),w.push(r))}let I=de({inputs:{x:t},backend:a,attrs:{shape:[1,f,v.sizeFromShape(t.shape)/f]}});w.push(I);let T=new fQ(y,n),C=[e.shape,[n.padInfo.top,n.padInfo.left],[n.strideHeight,n.strideWidth],[n.dilationHeight,n.dilationWidth],[n.inChannels],[n.filterWidth*n.inChannels],[n.outWidth]],E=a.runWebGLProgram(T,[e],"float32",C),A=de({inputs:{x:E},backend:a,attrs:{shape:y}});w.push(E),w.push(A);let R=r!=null,F=s!=null,S=o==="leakyrelu",M=o?ic(o,!0):null,B=new mE(m?A.shape:I.shape,m?I.shape:A.shape,m?[n.batchSize,g,n.outChannels]:[n.batchSize,n.outChannels,g],b,x,R,M,F,S),U=m?[A,I]:[I,A];if(r&&U.push(r),F&&U.push(s),S){let K=a.makeTensorInfo([],"float32",v.createScalarValue(i,"float32"));U.push(K),w.push(K)}let G=a.runWebGLProgram(B,U,"float32"),q=de({inputs:{x:G},backend:a,attrs:{shape:n.outShape}});w.push(G);for(let K of w)a.disposeIntermediateTensorInfo(K);return q}function gQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:p}=a,d=N.convertConv2DDataFormat(l),c=N.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h;if(c.filterHeight===1&&c.filterWidth===1&&c.dilationHeight===1&&c.dilationWidth===1&&c.strideHeight===1&&c.strideWidth===1&&(c.padInfo.type==="SAME"||c.padInfo.type==="VALID"))h=IE({x:r,filter:s,convInfo:c,backend:n});else if(c.strideWidth<=2&&d==="channelsLast"&&H().getBool("WEBGL_EXP_CONV")){let f=new kE(c),g=[[c.padInfo.top,c.padInfo.left],[c.strideHeight,c.strideWidth],[c.dilationHeight,c.dilationWidth],[c.inHeight,c.inWidth]];h=n.runWebGLProgram(f,[r,s],"float32",g)}else if(H().getBool("WEBGL_CONV_IM2COL"))h=SE({x:r,filter:s,convInfo:c,backend:n});else{let f=new wE(c);h=n.runWebGLProgram(f,[r,s],"float32")}let m=de({inputs:{x:h},backend:n,attrs:{shape:c.outShape}});return n.disposeIntermediateTensorInfo(h),m}var yQ={kernelName:wi,backendName:"webgl",kernelFunc:gQ},bQ=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.dataFormat==="channelsLast";this.userCode=` + `}};function am(e,t){let n=e.length;return n>=3?t?[...e.slice(0,-3),e[n-3]*e[n-2],e[n-1]]:[...e.slice(0,-3),e[n-3],e[n-2]*e[n-1]]:!t&&n===1&&e[0]>1?[e[0],1]:null}function IE({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let l=e.shape,u=a.texData.get(e.dataId),p=n.inChannels,d=l[0]*l[1]*l[2],c=n.outChannels,h=n.dataFormat==="channelsLast",m=!1,f=!1,g,y=[];if(s!=null){let b=am(s.shape,h);b!=null&&(s=de({inputs:{x:s},backend:a,attrs:{shape:b}}),y.push(s))}if(r!=null){let b=am(r.shape,h);b!=null&&(r=de({inputs:{x:r},backend:a,attrs:{shape:b}}),y.push(r))}if(!((d===1||c===1)&&p>fE)&&u.isPacked&&h&&u.texture!=null&&l[2]%2!==0&&v.arraysEqual(u.shape.slice(-3),l.slice(-3))){let b=l[0]*l[1]*(l[2]+1),x={dataId:e.dataId,shape:[1,b,n.inChannels],dtype:e.dtype},w=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,v.assert(sc(u.shape,x.shape),()=>`packed reshape ${u.shape} to ${x.shape} isn't free`);let I=de({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});y.push(I);let T=nm({a:x,b:I,backend:a,transposeA:m,transposeB:f,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),C=a.texData.get(T.dataId);v.assert(C.isPacked,()=>"batchMatMul result is expected to be packed"),u.shape=w,C.shape=n.outShape,g=aa({inputs:{x:T},backend:a}),g.shape=n.outShape,y.push(T)}else{let b=n.outHeight*n.outWidth,x=de({inputs:{x:e},backend:a,attrs:{shape:h?[n.batchSize,b,n.inChannels]:[n.batchSize,n.inChannels,b]}}),w=de({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),I=nm({a:h?x:w,b:h?w:x,transposeA:!h,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=de({inputs:{x:I},backend:a,attrs:{shape:n.outShape}}),y.push(x),y.push(w),y.push(I)}for(let b of y)a.disposeIntermediateTensorInfo(b);return g}function SE({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let{filterWidth:l,filterHeight:u,inChannels:p,outWidth:d,outHeight:c,dataFormat:h}=n,m=h==="channelsLast",f=l*u*p,g=c*d,y=[n.batchSize,f,g],b=!0,x=!1,w=[];if(s!=null){let K=am(s.shape,m);K!=null&&(s=de({inputs:{x:s},backend:a,attrs:{shape:K}}),w.push(s))}if(r!=null){let K=am(r.shape,m);K!=null&&(r=de({inputs:{x:r},backend:a,attrs:{shape:K}}),w.push(r))}let I=de({inputs:{x:t},backend:a,attrs:{shape:[1,f,v.sizeFromShape(t.shape)/f]}});w.push(I);let T=new fQ(y,n),C=[e.shape,[n.padInfo.top,n.padInfo.left],[n.strideHeight,n.strideWidth],[n.dilationHeight,n.dilationWidth],[n.inChannels],[n.filterWidth*n.inChannels],[n.outWidth]],E=a.runWebGLProgram(T,[e],"float32",C),$=de({inputs:{x:E},backend:a,attrs:{shape:y}});w.push(E),w.push($);let R=r!=null,F=s!=null,S=o==="leakyrelu",M=o?ic(o,!0):null,B=new mE(m?$.shape:I.shape,m?I.shape:$.shape,m?[n.batchSize,g,n.outChannels]:[n.batchSize,n.outChannels,g],b,x,R,M,F,S),U=m?[$,I]:[I,$];if(r&&U.push(r),F&&U.push(s),S){let K=a.makeTensorInfo([],"float32",v.createScalarValue(i,"float32"));U.push(K),w.push(K)}let G=a.runWebGLProgram(B,U,"float32"),q=de({inputs:{x:G},backend:a,attrs:{shape:n.outShape}});w.push(G);for(let K of w)a.disposeIntermediateTensorInfo(K);return q}function gQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:p}=a,d=N.convertConv2DDataFormat(l),c=N.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h;if(c.filterHeight===1&&c.filterWidth===1&&c.dilationHeight===1&&c.dilationWidth===1&&c.strideHeight===1&&c.strideWidth===1&&(c.padInfo.type==="SAME"||c.padInfo.type==="VALID"))h=IE({x:r,filter:s,convInfo:c,backend:n});else if(c.strideWidth<=2&&d==="channelsLast"&&H().getBool("WEBGL_EXP_CONV")){let f=new kE(c),g=[[c.padInfo.top,c.padInfo.left],[c.strideHeight,c.strideWidth],[c.dilationHeight,c.dilationWidth],[c.inHeight,c.inWidth]];h=n.runWebGLProgram(f,[r,s],"float32",g)}else if(H().getBool("WEBGL_CONV_IM2COL"))h=SE({x:r,filter:s,convInfo:c,backend:n});else{let f=new wE(c);h=n.runWebGLProgram(f,[r,s],"float32")}let m=de({inputs:{x:h},backend:n,attrs:{shape:c.outShape}});return n.disposeIntermediateTensorInfo(h),m}var yQ={kernelName:wi,backendName:"webgl",kernelFunc:gQ},bQ=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.dataFormat==="channelsLast";this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -2851,7 +2851,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam } setOutput(dotProd); } - `}};function kQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,dataFormat:l,dimRoundingMode:u,filterShape:p}=a,d=N.convertConv2DDataFormat(l),c=N.computeConv2DInfo(r.shape,p,i,1,o,u,!1,d),h=new bQ(c);return n.runWebGLProgram(h,[r,s],"float32")}var IQ={kernelName:fm,backendName:"webgl",kernelFunc:kQ};function SQ(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{inputShape:i,strides:o,pad:l,dataFormat:u,dimRoundingMode:p}=a,d=N.convertConv2DDataFormat(u),c=N.computeConv2DInfo(i,s.shape,o,1,l,p,!1,d),h=new xQ(c);return n.runWebGLProgram(h,[r,s],"float32")}var TQ={kernelName:ki,backendName:"webgl",kernelFunc:SQ};function NQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=N.computeConv3DInfo(r.shape,s.shape,i,l,o),p=new mQ(u);return n.runWebGLProgram(p,[r,s],"float32")}var CQ={kernelName:mc,backendName:"webgl",kernelFunc:NQ};function _Q(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,filterShape:l}=a,u=N.computeConv3DInfo(r.shape,l,i,1,o),p=new vQ(u);return n.runWebGLProgram(p,[r,s],"float32")}var EQ={kernelName:gm,backendName:"webgl",kernelFunc:_Q};function AQ(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{pad:i,strides:o,inputShape:l}=a,u=N.computeConv3DInfo(l,s.shape,o,1,i),p=new wQ(u);return n.runWebGLProgram(p,[r,s],"float32")}var $Q={kernelName:ym,backendName:"webgl",kernelFunc:AQ},FQ=tp+` + `}};function kQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,dataFormat:l,dimRoundingMode:u,filterShape:p}=a,d=N.convertConv2DDataFormat(l),c=N.computeConv2DInfo(r.shape,p,i,1,o,u,!1,d),h=new bQ(c);return n.runWebGLProgram(h,[r,s],"float32")}var IQ={kernelName:fm,backendName:"webgl",kernelFunc:kQ};function SQ(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{inputShape:i,strides:o,pad:l,dataFormat:u,dimRoundingMode:p}=a,d=N.convertConv2DDataFormat(u),c=N.computeConv2DInfo(i,s.shape,o,1,l,p,!1,d),h=new xQ(c);return n.runWebGLProgram(h,[r,s],"float32")}var TQ={kernelName:ki,backendName:"webgl",kernelFunc:SQ};function NQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=N.computeConv3DInfo(r.shape,s.shape,i,l,o),p=new mQ(u);return n.runWebGLProgram(p,[r,s],"float32")}var CQ={kernelName:mc,backendName:"webgl",kernelFunc:NQ};function _Q(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,filterShape:l}=a,u=N.computeConv3DInfo(r.shape,l,i,1,o),p=new vQ(u);return n.runWebGLProgram(p,[r,s],"float32")}var EQ={kernelName:gm,backendName:"webgl",kernelFunc:_Q};function $Q(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{pad:i,strides:o,inputShape:l}=a,u=N.computeConv3DInfo(l,s.shape,o,1,i),p=new wQ(u);return n.runWebGLProgram(p,[r,s],"float32")}var AQ={kernelName:ym,backendName:"webgl",kernelFunc:$Q},FQ=tp+` return cos(x); `,DQ=Ye({opSnippet:FQ}),RQ={kernelName:Ii,backendName:"webgl",kernelFunc:DQ},MQ=` float e2x = exp(-x); @@ -3327,7 +3327,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam `,mee=Ye({opSnippet:dee,packedOpSnippet:hee}),fee={kernelName:_i,backendName:"webgl",kernelFunc:mee},gee="return (b >= 1.0) ? a : a * (b + 1.0);",yee=` vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); -`,bee=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new ud(yee,a.shape,r.shape):new $l(gee,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},xee={kernelName:Im,backendName:"webgl",kernelFunc:bee},vee=` +`,bee=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new ud(yee,a.shape,r.shape):new Al(gee,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},xee={kernelName:Im,backendName:"webgl",kernelFunc:bee},vee=` return vec4(equal(a, b)); `,wee="return float(a == b);",kee=cn({opSnippet:wee,packedOpSnippet:vee,dtype:"bool",cpuKernelImpl:s7}),Iee={kernelName:Xl,backendName:"webgl",kernelFunc:kee},See=` // Error function is calculated approximately with elementary function. @@ -3355,7 +3355,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam result.a = isNaN.a ? x.a : result.a; return result; -`,_E=Ye({opSnippet:Cee,packedOpSnippet:_ee,cpuKernelImpl:i7,dtype:"float32"}),Eee={kernelName:Ei,backendName:"webgl",kernelFunc:_E};function vx(e){let{inputs:t,attrs:n,backend:a}=e,{dim:r}=n,{input:s}=t,i=s.shape.length,o=s.shape.slice(),l=r;return r<0&&(v.assert(-(i+1)<=r,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+r+1),o.splice(l,0,1),de({inputs:{x:s},backend:a,attrs:{shape:o}})}var Aee={kernelName:Yl,backendName:"webgl",kernelFunc:vx},EI="return exp(x) - 1.0;",$ee=Ye({opSnippet:EI,packedOpSnippet:EI,cpuKernelImpl:o7}),Fee={kernelName:Zl,backendName:"webgl",kernelFunc:$ee},AI=class{constructor(e,t,n){this.variableNames=["real","imag"];let a=t[1];this.outputShape=t;let r=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,s=n?`${a}.0`:"1.0",i;if(e==="real")i="return real * expR - imag * expI;";else if(e==="imag")i="return real * expI + imag * expR;";else throw new Error(`FFT component must be either "real" or "imag", got ${e}.`);this.userCode=` +`,_E=Ye({opSnippet:Cee,packedOpSnippet:_ee,cpuKernelImpl:i7,dtype:"float32"}),Eee={kernelName:Ei,backendName:"webgl",kernelFunc:_E};function vx(e){let{inputs:t,attrs:n,backend:a}=e,{dim:r}=n,{input:s}=t,i=s.shape.length,o=s.shape.slice(),l=r;return r<0&&(v.assert(-(i+1)<=r,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+r+1),o.splice(l,0,1),de({inputs:{x:s},backend:a,attrs:{shape:o}})}var $ee={kernelName:Yl,backendName:"webgl",kernelFunc:vx},EI="return exp(x) - 1.0;",Aee=Ye({opSnippet:EI,packedOpSnippet:EI,cpuKernelImpl:o7}),Fee={kernelName:Zl,backendName:"webgl",kernelFunc:Aee},$I=class{constructor(e,t,n){this.variableNames=["real","imag"];let a=t[1];this.outputShape=t;let r=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,s=n?`${a}.0`:"1.0",i;if(e==="real")i="return real * expR - imag * expI;";else if(e==="imag")i="return real * expI + imag * expR;";else throw new Error(`FFT component must be either "real" or "imag", got ${e}.`);this.userCode=` const float exponentMultiplier = ${r}; float unaryOpComplex(float real, float expR, float imag, float expI) { @@ -3388,7 +3388,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam ivec2 coords = getOutputCoords(); setOutput(mulMatDFT(coords[0], coords[1])); } - `}};function EE(e,t,n){let a=n.texData.get(e.dataId),r=v.sizeFromShape(e.shape),s=e.shape[e.shape.length-1],i=r/s,o=de({inputs:{x:e},backend:n,attrs:{shape:[i,s]}}),l=o.shape,u=new AI("real",l,t),p=new AI("imag",l,t),d=[{dataId:a.complexTensorInfos.real.dataId,dtype:a.complexTensorInfos.real.dtype,shape:l},{dataId:a.complexTensorInfos.imag.dataId,dtype:a.complexTensorInfos.imag.dtype,shape:l}],c=n.runWebGLProgram(u,d,"float32"),h=n.runWebGLProgram(p,d,"float32"),m=_s({inputs:{real:c,imag:h},backend:n});n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h);let f=de({inputs:{x:m},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(m),f}function Dee(e){let{inputs:t,backend:n}=e,{input:a}=t;return EE(a,!1,n)}var Ree={kernelName:Sm,backendName:"webgl",kernelFunc:Dee},Mee=class{constructor(e,t){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=e,this.userCode=` + `}};function EE(e,t,n){let a=n.texData.get(e.dataId),r=v.sizeFromShape(e.shape),s=e.shape[e.shape.length-1],i=r/s,o=de({inputs:{x:e},backend:n,attrs:{shape:[i,s]}}),l=o.shape,u=new $I("real",l,t),p=new $I("imag",l,t),d=[{dataId:a.complexTensorInfos.real.dataId,dtype:a.complexTensorInfos.real.dtype,shape:l},{dataId:a.complexTensorInfos.imag.dataId,dtype:a.complexTensorInfos.imag.dtype,shape:l}],c=n.runWebGLProgram(u,d,"float32"),h=n.runWebGLProgram(p,d,"float32"),m=_s({inputs:{real:c,imag:h},backend:n});n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h);let f=de({inputs:{x:m},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(m),f}function Dee(e){let{inputs:t,backend:n}=e,{input:a}=t;return EE(a,!1,n)}var Ree={kernelName:Sm,backendName:"webgl",kernelFunc:Dee},Mee=class{constructor(e,t){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=e,this.userCode=` void main() { // Input can be obtained from uniform value. setOutput(value); @@ -3407,7 +3407,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam } setOutput(outputValue); } - `}},Lee={kernelName:Jl,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new Oee(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},$I="return floor(x);",zee=Ye({opSnippet:$I,packedOpSnippet:$I,cpuKernelImpl:l7}),Wee={kernelName:Ai,backendName:"webgl",kernelFunc:zee},Bee=` + `}},Lee={kernelName:Jl,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new Oee(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},AI="return floor(x);",zee=Ye({opSnippet:AI,packedOpSnippet:AI,cpuKernelImpl:l7}),Wee={kernelName:$i,backendName:"webgl",kernelFunc:zee},Bee=` float s = sign(a) * sign(b); int ia = round(a); int ib = round(b); @@ -3438,7 +3438,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam result[3] = idiv(ia[3], ib[3], s[3]); } return vec4(result); -`,Uee=cn({opSnippet:Bee,packedOpSnippet:Vee,dtype:"int32"}),Gee={kernelName:$i,backendName:"webgl",kernelFunc:Uee},Hee=class{constructor(e){this.variableNames=["A"];let t=_n(),[n,a]=e;this.outputShape=e,this.userCode=` +`,Uee=cn({opSnippet:Bee,packedOpSnippet:Vee,dtype:"int32"}),Gee={kernelName:Ai,backendName:"webgl",kernelFunc:Uee},Hee=class{constructor(e){this.variableNames=["A"];let t=_n(),[n,a]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -3494,7 +3494,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam ${t.output} = result; } - `}},qee={kernelName:Fh,backendName:"webgl",kernelFunc:Kee},sl,Tb=H().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function Kee(e){let{inputs:t,backend:n,attrs:a}=e,{pixels:r}=t,{numChannels:s}=a,i=typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement,o=typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement,[l,u]=i?[r.videoWidth,r.videoHeight]:[r.width,r.height],p=[u,l],d=[u,l,s];if(o||i){let f=H().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(sl==null||f!==Tb)&&(Tb=f,sl=document.createElement("canvas").getContext("2d",{willReadFrequently:Tb})),sl.canvas.width=l,sl.canvas.height=u,sl.drawImage(r,0,0,l,u),r=sl.canvas}let c=n.makeTensorInfo(p,"int32");n.texData.get(c.dataId).usage=ca.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(c.dataId),r);let h=H().getBool("WEBGL_PACK")?new jee(d):new Hee(d),m=n.runWebGLProgram(h,[c],"int32");return n.disposeData(c.dataId),m}function Xee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=N.convertConv2DDataFormat(p),g=N.computeConv2DInfo(r.shape,s.shape,l,d,u,c,!1,f),y,b=[],x=i!=null,w=o!=null,I=h==="leakyrelu",T=()=>{let E=[r,s],A=(R,F)=>{if(F==="NCHW"&&R.shape.length===1&&R.shape[0]!==1){let S=de({inputs:{x:R},backend:n,attrs:{shape:[R.shape[0],1,1]}});return b.push(S),S}return R};if(x&&E.push(A(i,p)),w&&E.push(A(o,p)),I){let R=n.makeTensorInfo([],"float32",v.createScalarValue(m,"float32"));E.push(R),b.push(R)}return E};if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type==="SAME"||g.padInfo.type==="VALID"))y=IE({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(g.strideWidth<=2&&f==="channelsLast"&&H().getBool("WEBGL_EXP_CONV")){let E=h?ic(h,!0):null,A=new kE(g,x,E,w,I),R=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=T();y=n.runWebGLProgram(A,F,"float32",R)}else if(H().getBool("WEBGL_CONV_IM2COL"))y=SE({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let E=h?ic(h,!1):null,A=new wE(g,x,E,w,I),R=T();y=n.runWebGLProgram(A,R,"float32")}let C=de({inputs:{x:y},backend:n,attrs:{shape:g.outShape}});return b.push(y),b.forEach(E=>n.disposeIntermediateTensorInfo(E)),C}var Yee={kernelName:ei,backendName:"webgl",kernelFunc:Xee};function Zee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dimRoundingMode:d,activation:c,leakyreluAlpha:h}=a,m=[],f=p;f==null&&(f=[1,1]),v.assert(N.eitherStridesOrDilationsAreOne(l,f),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${f}'`);let g=N.computeConv2DInfo(r.shape,s.shape,l,f,u,d,!0),y=H().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=c?ic(c,y):null,x=[r,s],w=i!=null,I=o!=null,T=c==="leakyrelu";if(w&&x.push(i),I&&x.push(o),T){let R=n.makeTensorInfo([],"float32",v.createScalarValue(h,"float32"));x.push(R),m.push(R)}let C;y?C=new CE(g,w,b,I,T):C=new NE(g,w,b,I,T);let E=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],A=n.runWebGLProgram(C,x,"float32",E);return m.forEach(R=>n.disposeIntermediateTensorInfo(R)),A}var Jee={kernelName:ti,backendName:"webgl",kernelFunc:Zee},Qee=class{constructor(e,t,n,a){this.sliceDim=e,this.strides=t,this.paramsShape=a,this.variableNames=["x","indices"],this.outputShape=n;let r=gt(n.length),s=` + `}},qee={kernelName:Fh,backendName:"webgl",kernelFunc:Kee},sl,Tb=H().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function Kee(e){let{inputs:t,backend:n,attrs:a}=e,{pixels:r}=t,{numChannels:s}=a,i=typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement,o=typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement,[l,u]=i?[r.videoWidth,r.videoHeight]:[r.width,r.height],p=[u,l],d=[u,l,s];if(o||i){let f=H().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(sl==null||f!==Tb)&&(Tb=f,sl=document.createElement("canvas").getContext("2d",{willReadFrequently:Tb})),sl.canvas.width=l,sl.canvas.height=u,sl.drawImage(r,0,0,l,u),r=sl.canvas}let c=n.makeTensorInfo(p,"int32");n.texData.get(c.dataId).usage=ca.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(c.dataId),r);let h=H().getBool("WEBGL_PACK")?new jee(d):new Hee(d),m=n.runWebGLProgram(h,[c],"int32");return n.disposeData(c.dataId),m}function Xee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=N.convertConv2DDataFormat(p),g=N.computeConv2DInfo(r.shape,s.shape,l,d,u,c,!1,f),y,b=[],x=i!=null,w=o!=null,I=h==="leakyrelu",T=()=>{let E=[r,s],$=(R,F)=>{if(F==="NCHW"&&R.shape.length===1&&R.shape[0]!==1){let S=de({inputs:{x:R},backend:n,attrs:{shape:[R.shape[0],1,1]}});return b.push(S),S}return R};if(x&&E.push($(i,p)),w&&E.push($(o,p)),I){let R=n.makeTensorInfo([],"float32",v.createScalarValue(m,"float32"));E.push(R),b.push(R)}return E};if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type==="SAME"||g.padInfo.type==="VALID"))y=IE({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(g.strideWidth<=2&&f==="channelsLast"&&H().getBool("WEBGL_EXP_CONV")){let E=h?ic(h,!0):null,$=new kE(g,x,E,w,I),R=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=T();y=n.runWebGLProgram($,F,"float32",R)}else if(H().getBool("WEBGL_CONV_IM2COL"))y=SE({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let E=h?ic(h,!1):null,$=new wE(g,x,E,w,I),R=T();y=n.runWebGLProgram($,R,"float32")}let C=de({inputs:{x:y},backend:n,attrs:{shape:g.outShape}});return b.push(y),b.forEach(E=>n.disposeIntermediateTensorInfo(E)),C}var Yee={kernelName:ei,backendName:"webgl",kernelFunc:Xee};function Zee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dimRoundingMode:d,activation:c,leakyreluAlpha:h}=a,m=[],f=p;f==null&&(f=[1,1]),v.assert(N.eitherStridesOrDilationsAreOne(l,f),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${f}'`);let g=N.computeConv2DInfo(r.shape,s.shape,l,f,u,d,!0),y=H().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=c?ic(c,y):null,x=[r,s],w=i!=null,I=o!=null,T=c==="leakyrelu";if(w&&x.push(i),I&&x.push(o),T){let R=n.makeTensorInfo([],"float32",v.createScalarValue(h,"float32"));x.push(R),m.push(R)}let C;y?C=new CE(g,w,b,I,T):C=new NE(g,w,b,I,T);let E=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],$=n.runWebGLProgram(C,x,"float32",E);return m.forEach(R=>n.disposeIntermediateTensorInfo(R)),$}var Jee={kernelName:ti,backendName:"webgl",kernelFunc:Zee},Qee=class{constructor(e,t,n,a){this.sliceDim=e,this.strides=t,this.paramsShape=a,this.variableNames=["x","indices"],this.outputShape=n;let r=gt(n.length),s=` int index;`;for(let i=0;i= 0) && (index < ${e[2]}) ? 1.0 : 0.0; setOutput(inBounds * getA(${a})); } - `}};function ate(e,t){let n=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[];for(let r=0;r=0,()=>`GatherV2: the index value ${I} is not in [0, ${x-1}]`)}}let u=N.segment_util.collectGatherOpShapeInfo(r,s,l,o),p=v.sizeFromShape(s.shape),d=[],c=de({inputs:{x:r},backend:n,attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]}}),h=de({inputs:{x:s},backend:n,attrs:{shape:[u.batchSize,p/u.batchSize]}});d.push(c),d.push(h);let m=[u.batchSize,u.outerSize,p/u.batchSize,u.sliceSize];if(n.shouldExecuteOnCPU([r,s])||r.dtype==="string"){let b=n.bufferSync(h),x=n.bufferSync(c),w=p7(x,b,m);return d.forEach(I=>n.disposeIntermediateTensorInfo(I)),n.makeTensorInfo(u.outputShape,w.dtype,w.values)}let f=new nte(c.shape,m),g=n.runWebGLProgram(f,[c,h],c.dtype);d.push(g);let y=de({inputs:{x:g},backend:n,attrs:{shape:u.outputShape}});return d.forEach(b=>n.disposeIntermediateTensorInfo(b)),y}var rte={kernelName:Ql,backendName:"webgl",kernelFunc:AE},ste="return float(a > b);",ite=` + `}};function ate(e,t){let n=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[];for(let r=0;r=0,()=>`GatherV2: the index value ${I} is not in [0, ${x-1}]`)}}let u=N.segment_util.collectGatherOpShapeInfo(r,s,l,o),p=v.sizeFromShape(s.shape),d=[],c=de({inputs:{x:r},backend:n,attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]}}),h=de({inputs:{x:s},backend:n,attrs:{shape:[u.batchSize,p/u.batchSize]}});d.push(c),d.push(h);let m=[u.batchSize,u.outerSize,p/u.batchSize,u.sliceSize];if(n.shouldExecuteOnCPU([r,s])||r.dtype==="string"){let b=n.bufferSync(h),x=n.bufferSync(c),w=p7(x,b,m);return d.forEach(I=>n.disposeIntermediateTensorInfo(I)),n.makeTensorInfo(u.outputShape,w.dtype,w.values)}let f=new nte(c.shape,m),g=n.runWebGLProgram(f,[c,h],c.dtype);d.push(g);let y=de({inputs:{x:g},backend:n,attrs:{shape:u.outputShape}});return d.forEach(b=>n.disposeIntermediateTensorInfo(b)),y}var rte={kernelName:Ql,backendName:"webgl",kernelFunc:$E},ste="return float(a > b);",ite=` return vec4(greaterThan(a, b)); `,ote=cn({opSnippet:ste,packedOpSnippet:ite,cpuKernelImpl:c7,dtype:"bool"}),lte={kernelName:tu,backendName:"webgl",kernelFunc:ote},ute="return float(a >= b);",pte=` return vec4(greaterThanEqual(a, b)); @@ -3524,7 +3524,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam return vec4(lessThan(a, b)); `,Nte=cn({opSnippet:Ste,packedOpSnippet:Tte,cpuKernelImpl:h7,dtype:"bool"}),Cte={kernelName:su,backendName:"webgl",kernelFunc:Nte},_te="return float(a <= b);",Ete=` return vec4(lessThanEqual(a, b)); -`,Ate=cn({opSnippet:_te,packedOpSnippet:Ete,cpuKernelImpl:m7,dtype:"bool"}),$te={kernelName:iu,backendName:"webgl",kernelFunc:Ate};function Fte(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=f7(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var Dte={kernelName:Cm,backendName:"webgl",kernelFunc:Fte},Rte=tp+` +`,$te=cn({opSnippet:_te,packedOpSnippet:Ete,cpuKernelImpl:m7,dtype:"bool"}),Ate={kernelName:iu,backendName:"webgl",kernelFunc:$te};function Fte(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=f7(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var Dte={kernelName:Cm,backendName:"webgl",kernelFunc:Fte},Rte=tp+` return x < 0.0 ? 0./0. : log(x); `,Mte=` vec4 result = log(x); @@ -3681,7 +3681,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam } setOutput(result); } - `}},ane=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:u,beta:p}=a,d=new nne(r.shape,o,l,u,p);return n.runWebGLProgram(d,[r,s,i],r.dtype)},rne={kernelName:_m,backendName:"webgl",kernelFunc:ane};function sne(e,t,n,a){let r=v.sizeFromShape(t),s=v.sizeFromShape(e.shape)/r,i=de({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=Io(i,e.dtype,"max",a),l=de({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function $E(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reductionIndices:s,keepDims:i}=a,o=r.shape.length,l=v.parseAxisParam(s,r.shape),u=l,p=N.getAxesPermutation(u,o),d=p!=null,c=n.shouldExecuteOnCPU([r]),h=r;if(d){if(c){let b=n.texData.get(h.dataId).values,x=new Array(o);for(let T=0;T{let{inputs:t,backend:n,attrs:a}=e,{x:r,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:u,beta:p}=a,d=new nne(r.shape,o,l,u,p);return n.runWebGLProgram(d,[r,s,i],r.dtype)},rne={kernelName:_m,backendName:"webgl",kernelFunc:ane};function sne(e,t,n,a){let r=v.sizeFromShape(t),s=v.sizeFromShape(e.shape)/r,i=de({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=Io(i,e.dtype,"max",a),l=de({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function AE(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reductionIndices:s,keepDims:i}=a,o=r.shape.length,l=v.parseAxisParam(s,r.shape),u=l,p=N.getAxesPermutation(u,o),d=p!=null,c=n.shouldExecuteOnCPU([r]),h=r;if(d){if(c){let b=n.texData.get(h.dataId).values,x=new Array(o);for(let T=0;T{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;v.assert(a.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.shape.length}.`);let u=[1,1];v.assert(N.eitherStridesOrDilationsAreOne(s,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`);let p=N.computePool2DInfo(a.shape,r,s,u,i),[d,c]=wne(a,o,p,l);return[d,c]}};function Ine(e,t,n,a){let r=v.sizeFromShape(t),s=v.sizeFromShape(e.shape)/r,i=de({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=Io(i,"float32","mean",a),l=de({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var Sne={kernelName:Wi,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{keepDims:r,axis:s}=t,i=n,o=a.shape.length,l=v.parseAxisParam(s,a.shape),u=l,p=N.getAxesPermutation(u,o),d=p!=null,c=i.shouldExecuteOnCPU([a]),h=[],m=a;if(d){if(c){let x=i.texData.get(m.dataId).values,w=new Array(o);for(let C=0;C{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;v.assert(a.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.shape.length}.`);let u=[1,1];v.assert(N.eitherStridesOrDilationsAreOne(s,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`);let p=N.computePool2DInfo(a.shape,r,s,u,i),[d,c]=wne(a,o,p,l);return[d,c]}};function Ine(e,t,n,a){let r=v.sizeFromShape(t),s=v.sizeFromShape(e.shape)/r,i=de({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=Io(i,"float32","mean",a),l=de({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var Sne={kernelName:Wi,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{keepDims:r,axis:s}=t,i=n,o=a.shape.length,l=v.parseAxisParam(s,a.shape),u=l,p=N.getAxesPermutation(u,o),d=p!=null,c=i.shouldExecuteOnCPU([a]),h=[],m=a;if(d){if(c){let x=i.texData.get(m.dataId).values,w=new Array(o);for(let C=0;Cu[0]+e[p]+u[1]);let a=e.length,r=gt(a),s=t.map(u=>u[0]).join(","),i=t.map((u,p)=>u[0]+e[p]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a),l=n==="reflect"?0:1;if(a===1){this.userCode=` +`,Ene=cn({opSnippet:Cne,packedOpSnippet:_ne,cpuKernelImpl:x7}),$ne={kernelName:Vi,backendName:"webgl",kernelFunc:Ene},Ane=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map((u,p)=>u[0]+e[p]+u[1]);let a=e.length,r=gt(a),s=t.map(u=>u[0]).join(","),i=t.map((u,p)=>u[0]+e[p]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a),l=n==="reflect"?0:1;if(a===1){this.userCode=` int start = ${s}; int end = ${i}; @@ -3894,7 +3894,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam ${c} setOutput(result); } - `}},Dne=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Fne(a.shape,r,s):new $ne(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},Rne={kernelName:Ui,backendName:"webgl",kernelFunc:Dne},Mne=`if (b == 0.0) return NAN; + `}},Dne=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Fne(a.shape,r,s):new Ane(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},Rne={kernelName:Ui,backendName:"webgl",kernelFunc:Dne},Mne=`if (b == 0.0) return NAN; return mod(a, b);`,Pne=` vec4 result = mod(a, b); bvec4 isNaN = equal(b, vec4(0.0)); @@ -3942,7 +3942,7 @@ return a / b;`,Bne=` } return result; -`,FE=cn({opSnippet:Wne,packedOpSnippet:Bne,checkOutOfBounds:!0}),Vne={kernelName:Ci,backendName:"webgl",kernelFunc:FE},FI="return a - b;",DE=cn({opSnippet:FI,packedOpSnippet:FI,supportsComplex:!0,cpuKernelImpl:z7}),Une={kernelName:uo,backendName:"webgl",kernelFunc:DE};function RE(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=v.parseAxisParam([s],r.shape),o=$E({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=N.expandShapeToKeepDim(o.shape,i),u=de({inputs:{x:o},backend:n,attrs:{shape:l}}),p=DE({inputs:{a:r,b:u},backend:n}),d=_E({inputs:{x:p},backend:n}),c=Zf({inputs:{x:d},backend:n,attrs:{axis:i,keepDims:!1}}),h=de({inputs:{x:c},backend:n,attrs:{shape:l}}),m=FE({inputs:{a:d,b:h},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),m}var Gne={kernelName:oo,backendName:"webgl",kernelFunc:RE};function Hne(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:RE({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),u=l.shape[0],p=l.shape[1],d=new zne(u,p,s),c=[[i]],h=n.runWebGLProgram(d,[l],"int32",c);return o||n.disposeIntermediateTensorInfo(l),h}var jne={kernelName:Fm,backendName:"webgl",kernelFunc:Hne},qne=Ma+` +`,FE=cn({opSnippet:Wne,packedOpSnippet:Bne,checkOutOfBounds:!0}),Vne={kernelName:Ci,backendName:"webgl",kernelFunc:FE},FI="return a - b;",DE=cn({opSnippet:FI,packedOpSnippet:FI,supportsComplex:!0,cpuKernelImpl:z7}),Une={kernelName:uo,backendName:"webgl",kernelFunc:DE};function RE(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=v.parseAxisParam([s],r.shape),o=AE({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=N.expandShapeToKeepDim(o.shape,i),u=de({inputs:{x:o},backend:n,attrs:{shape:l}}),p=DE({inputs:{a:r,b:u},backend:n}),d=_E({inputs:{x:p},backend:n}),c=Zf({inputs:{x:d},backend:n,attrs:{axis:i,keepDims:!1}}),h=de({inputs:{x:c},backend:n,attrs:{shape:l}}),m=FE({inputs:{a:d,b:h},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),m}var Gne={kernelName:oo,backendName:"webgl",kernelFunc:RE};function Hne(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:RE({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),u=l.shape[0],p=l.shape[1],d=new zne(u,p,s),c=[[i]],h=n.runWebGLProgram(d,[l],"int32",c);return o||n.disposeIntermediateTensorInfo(l),h}var jne={kernelName:Fm,backendName:"webgl",kernelFunc:Hne},qne=Ma+` return -x; `,Kne=` vec4 result = -x; @@ -4037,7 +4037,7 @@ return a / b;`,Bne=` bvec4 isNaN = bvec4(isNaN1.x && isNaN2.x, isNaN1.y && isNaN2.y, isNaN1.z && isNaN2.z, isNaN1.w && isNaN2.w); `+ld+` return result; -`,bae=cn({opSnippet:gae,packedOpSnippet:yae}),xae={kernelName:qi,backendName:"webgl",kernelFunc:bae};function vae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=[],u=v.parseAxisParam(s,r.shape),p=u,d=N.getAxesPermutation(p,o),c=r;d!=null&&(c=Sn({inputs:{x:r},backend:n,attrs:{perm:d}}),p=N.getInnerMostAxes(p.length,o),l.push(c)),N.assertAxesAreInnerMostDims("prod",p,o);let h;if(n.shouldExecuteOnCPU([c])){let m=n.texData.get(c.dataId).values,{outVals:f,outShape:g,outDtype:y}=I7(c.shape,c.dtype,m,p);h=n.makeTensorInfo(g,y,f)}else{let[m,f]=N.computeOutAndReduceShapes(c.shape,p),g=v.sizeFromShape(f),y=de({inputs:{x:c},backend:n,attrs:{shape:[-1,g]}}),b=Um(r.dtype),x=Io(y,b,"prod",n);h=de({inputs:{x},backend:n,attrs:{shape:m}}),l.push(y),l.push(x)}if(i){l.push(h);let m=N.expandShapeToKeepDim(h.shape,u);h=de({inputs:{x:h},backend:n,attrs:{shape:m}})}return l.forEach(m=>n.disposeIntermediateTensorInfo(m)),h}var wae={kernelName:Xi,backendName:"webgl",kernelFunc:vae};function kae(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(y=>n.readSync(y.dataId)),u=r.map(y=>y.shape),p=n.readSync(s.dataId),d=n.readSync(i.dataId),[c,h,m]=S7(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(y=>n.makeTensorInfo([y.length],"int32",y)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var Iae={kernelName:Dm,backendName:"webgl",kernelFunc:kae};function Sae(e){let{inputs:t,backend:n}=e,{starts:a,limits:r,deltas:s}=t,i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=T7(i,a.shape,a.dtype,o,r.shape,l,s.shape),d=n.makeTensorInfo([u.length],"int32",u),c=n.makeTensorInfo([p.length],a.dtype,p);return[d,c]}var Tae={kernelName:Rm,backendName:"webgl",kernelFunc:Sae};function Nae(e){let{inputs:t,backend:n,attrs:a}=e,{shape:r,values:s,defaultValue:i,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),d=n.readSync(i.dataId),c=o.map(g=>n.readSync(g.dataId)),h=o.map(g=>g.shape),[m,f]=N7(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var Cae={kernelName:Mm,backendName:"webgl",kernelFunc:Nae},OE=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=C7(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},_ae={kernelName:xc,backendName:"webgl",kernelFunc:OE},Eae="return 1.0 / x;",Aae=Ye({opSnippet:Eae}),$ae={kernelName:xu,backendName:"webgl",kernelFunc:Aae},Fae=Ma+` +`,bae=cn({opSnippet:gae,packedOpSnippet:yae}),xae={kernelName:qi,backendName:"webgl",kernelFunc:bae};function vae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=[],u=v.parseAxisParam(s,r.shape),p=u,d=N.getAxesPermutation(p,o),c=r;d!=null&&(c=Sn({inputs:{x:r},backend:n,attrs:{perm:d}}),p=N.getInnerMostAxes(p.length,o),l.push(c)),N.assertAxesAreInnerMostDims("prod",p,o);let h;if(n.shouldExecuteOnCPU([c])){let m=n.texData.get(c.dataId).values,{outVals:f,outShape:g,outDtype:y}=I7(c.shape,c.dtype,m,p);h=n.makeTensorInfo(g,y,f)}else{let[m,f]=N.computeOutAndReduceShapes(c.shape,p),g=v.sizeFromShape(f),y=de({inputs:{x:c},backend:n,attrs:{shape:[-1,g]}}),b=Um(r.dtype),x=Io(y,b,"prod",n);h=de({inputs:{x},backend:n,attrs:{shape:m}}),l.push(y),l.push(x)}if(i){l.push(h);let m=N.expandShapeToKeepDim(h.shape,u);h=de({inputs:{x:h},backend:n,attrs:{shape:m}})}return l.forEach(m=>n.disposeIntermediateTensorInfo(m)),h}var wae={kernelName:Xi,backendName:"webgl",kernelFunc:vae};function kae(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(y=>n.readSync(y.dataId)),u=r.map(y=>y.shape),p=n.readSync(s.dataId),d=n.readSync(i.dataId),[c,h,m]=S7(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(y=>n.makeTensorInfo([y.length],"int32",y)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var Iae={kernelName:Dm,backendName:"webgl",kernelFunc:kae};function Sae(e){let{inputs:t,backend:n}=e,{starts:a,limits:r,deltas:s}=t,i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=T7(i,a.shape,a.dtype,o,r.shape,l,s.shape),d=n.makeTensorInfo([u.length],"int32",u),c=n.makeTensorInfo([p.length],a.dtype,p);return[d,c]}var Tae={kernelName:Rm,backendName:"webgl",kernelFunc:Sae};function Nae(e){let{inputs:t,backend:n,attrs:a}=e,{shape:r,values:s,defaultValue:i,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),d=n.readSync(i.dataId),c=o.map(g=>n.readSync(g.dataId)),h=o.map(g=>g.shape),[m,f]=N7(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var Cae={kernelName:Mm,backendName:"webgl",kernelFunc:Nae},OE=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=C7(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},_ae={kernelName:xc,backendName:"webgl",kernelFunc:OE},Eae="return 1.0 / x;",$ae=Ye({opSnippet:Eae}),Aae={kernelName:xu,backendName:"webgl",kernelFunc:$ae},Fae=Ma+` return (x < 0.0) ? 0.0 : x; `,Dae=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); @@ -4530,12 +4530,12 @@ return a / b;`,Bne=` result.a = isNaN.a ? x.a : result.a; return result; -`,Tre=Ye({opSnippet:Ire,packedOpSnippet:Sre,cpuKernelImpl:A7}),Nre={kernelName:ro,backendName:"webgl",kernelFunc:Tre},Cre=` +`,Tre=Ye({opSnippet:Ire,packedOpSnippet:Sre,cpuKernelImpl:$7}),Nre={kernelName:ro,backendName:"webgl",kernelFunc:Tre},Cre=` if (isnan(x)) { return 0.0; } return sign(x); -`,_re=Ye({opSnippet:Cre}),Ere={kernelName:Nu,backendName:"webgl",kernelFunc:_re},Are=tp+` +`,_re=Ye({opSnippet:Cre}),Ere={kernelName:Nu,backendName:"webgl",kernelFunc:_re},$re=tp+` return sin(x); -`,$re=Ye({opSnippet:Are}),Fre={kernelName:ao,backendName:"webgl",kernelFunc:$re},Dre=` +`,Are=Ye({opSnippet:$re}),Fre={kernelName:ao,backendName:"webgl",kernelFunc:Are},Dre=` float e2x = exp(x); return (e2x - 1.0 / e2x) / 2.0; `,Rre=Ye({opSnippet:Dre}),Mre={kernelName:Tu,backendName:"webgl",kernelFunc:Rre},Pre=` @@ -4562,7 +4562,7 @@ return a / b;`,Bne=` ${s.shape}`);if(a.shape.length!==2)throw new Error(`Indices must be a matrix, saw: ${a.shape}`);if(r.shape.length!==1)throw new Error(`Values must be a vector, saw: ${r.shape}`);if(i.shape.length!==0)throw new Error(`Default value must be a scalar, saw: - ${i.shape}`);let o=n.readSync(a.dataId),l=n.readSync(r.dataId),u=n.readSync(s.dataId),p=n.readSync(i.dataId)[0],[d,c,h,m,f]=F7(o,a.shape,a.dtype,l,r.dtype,u,p);return[n.makeTensorInfo(c,a.dtype,d),n.makeTensorInfo([c[0]],r.dtype,h),n.makeTensorInfo([m.length],"bool",new Uint8Array(m.map(g=>Number(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var Vre={kernelName:vc,backendName:"webgl",kernelFunc:Bre};function Ure(e){let{inputs:t,backend:n}=e,{inputIndices:a,inputShape:r,newShape:s}=t;if(a.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${a.shape}`);if(r.shape.length!==1)throw new Error(`Input shape should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(n.readSync(r.dataId)),o=n.readSync(a.dataId),l=Array.from(n.readSync(s.dataId)),[u,p,d]=D7(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var Gre={kernelName:Au,backendName:"webgl",kernelFunc:Ure};function Hre(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${i.shape}`);let o=n.readSync(a.dataId),l=n.readSync(r.dataId),u=n.readSync(s.dataId),p=n.readSync(i.dataId)[0],[d,c,h,m,f]=F7(o,a.shape,a.dtype,l,r.dtype,u,p);return[n.makeTensorInfo(c,a.dtype,d),n.makeTensorInfo([c[0]],r.dtype,h),n.makeTensorInfo([m.length],"bool",new Uint8Array(m.map(g=>Number(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var Vre={kernelName:vc,backendName:"webgl",kernelFunc:Bre};function Ure(e){let{inputs:t,backend:n}=e,{inputIndices:a,inputShape:r,newShape:s}=t;if(a.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${a.shape}`);if(r.shape.length!==1)throw new Error(`Input shape should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(n.readSync(r.dataId)),o=n.readSync(a.dataId),l=Array.from(n.readSync(s.dataId)),[u,p,d]=D7(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var Gre={kernelName:$u,backendName:"webgl",kernelFunc:Ure};function Hre(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape ${s.shape}`);let i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=iE(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var jre={kernelName:wc,backendName:"webgl",kernelFunc:Hre};function qre(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape @@ -4576,7 +4576,7 @@ return a / b;`,Bne=` ${s} coords = getOutputCoords(); setOutput(getX(${i})); } - `}};function use(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a,{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:y,begin:b,end:x,strides:w}=jt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=de({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||y){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let C=jt.computeOutShape(b,x,w),E=np({inputs:{x:r},backend:n,attrs:{begin:b,size:C}});I=de({inputs:{x:E},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(E)}else if(n.shouldExecuteOnCPU([r])){let C=n.readSync(r.dataId),E=Oe(r.shape,r.dtype,C),A=M7(h,E,w,b);I=n.makeTensorInfo(m,r.dtype,A.values)}else{let C=new lse(b,w,h);I=n.runWebGLProgram(C,[r],r.dtype)}let T=de({inputs:{x:I},backend:n,attrs:{shape:m}});return n.disposeIntermediateTensorInfo(I),T}var pse={kernelName:$u,backendName:"webgl",kernelFunc:use};function cse(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.readSync(p.dataId),h=n.readSync(d.dataId),[m,f]=P7(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var dse={kernelName:Sc,backendName:"webgl",kernelFunc:cse};function hse(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let o=n.readSync(s.dataId),l=n.readSync(i.dataId)[0],[u,p,d]=O7(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var mse={kernelName:Tc,backendName:"webgl",kernelFunc:hse};function fse(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.readSync(s.dataId),o=L7(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var gse={kernelName:Nc,backendName:"webgl",kernelFunc:fse},yse="return tan(x);",bse=Ye({opSnippet:yse}),xse={kernelName:po,backendName:"webgl",kernelFunc:bse},vse=` + `}};function use(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a,{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:y,begin:b,end:x,strides:w}=jt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=de({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||y){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let C=jt.computeOutShape(b,x,w),E=np({inputs:{x:r},backend:n,attrs:{begin:b,size:C}});I=de({inputs:{x:E},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(E)}else if(n.shouldExecuteOnCPU([r])){let C=n.readSync(r.dataId),E=Oe(r.shape,r.dtype,C),$=M7(h,E,w,b);I=n.makeTensorInfo(m,r.dtype,$.values)}else{let C=new lse(b,w,h);I=n.runWebGLProgram(C,[r],r.dtype)}let T=de({inputs:{x:I},backend:n,attrs:{shape:m}});return n.disposeIntermediateTensorInfo(I),T}var pse={kernelName:Au,backendName:"webgl",kernelFunc:use};function cse(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.readSync(p.dataId),h=n.readSync(d.dataId),[m,f]=P7(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var dse={kernelName:Sc,backendName:"webgl",kernelFunc:cse};function hse(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let o=n.readSync(s.dataId),l=n.readSync(i.dataId)[0],[u,p,d]=O7(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var mse={kernelName:Tc,backendName:"webgl",kernelFunc:hse};function fse(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.readSync(s.dataId),o=L7(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var gse={kernelName:Nc,backendName:"webgl",kernelFunc:fse},yse="return tan(x);",bse=Ye({opSnippet:yse}),xse={kernelName:po,backendName:"webgl",kernelFunc:bse},vse=` float e2x = exp(-2.0 * abs(x)); return sign(x) * (1.0 - e2x) / (1.0 + e2x); `,wse=Ye({opSnippet:vse}),kse={kernelName:co,backendName:"webgl",kernelFunc:wse},Ise=class{constructor(e,t){this.variableNames=["A"];let n=new Array(e.length);for(let s=0;s= x1 ? float(i0) : float(i1)); } - `}};function Ls(e,t){t!==null&&e.disposeIntermediateTensorInfo(t)}function MI(e){let t=1;for(;tl){let A=n.readSync(r.dataId),[R,F]=B7(A,u,r.dtype,s,i);return[n.makeTensorInfo(R.shape,R.dtype,R.values),n.makeTensorInfo(F.shape,F.dtype,F.values)]}if(s===0)return u[u.length-1]=0,[n.makeTensorInfo(u,r.dtype,[]),n.makeTensorInfo(u,"int32",[])];if(p===1)return[r,cd({attrs:{shape:u,dtype:"int32",value:0},backend:n})];let d=n.texData.get(r.dataId),c=d!==null&&d.isPacked,h=c?n.unpackTensor(r):r,m=v.sizeFromShape(u)/p,f=de({inputs:{x:h},attrs:{shape:[m,p]},backend:n});c&&Ls(n,h);let g=MI(s),y=MI(p),b=null,x=()=>b===null?[f,f]:[f,b],w=(A,R,F)=>{let S=x(),M=new Nse(F),B=[[p],[b===null?1:0],[Number.NEGATIVE_INFINITY],[A],[R]],U=b;b=n.runWebGLProgram(M,S,"int32",B),Ls(n,U)};for(let A=1;A=1;F/=2)w(R,F,[m,y])}for(let A=y;A>g;A/=2){let R=x(),F=new Cse([m,A/2]),S=[[p],[b===null?1:0],[g]],M=b;b=n.runWebGLProgram(F,R,"int32",S),Ls(n,M);let B=g/2,U=B*2;for(let G=B;G>=1;G/=2)w(U,G,b.shape)}let I=b;b=np({inputs:{x:b},backend:n,attrs:{begin:0,size:[m,s]}}),Ls(n,I);let T=AE({inputs:{x:f,indices:b},backend:n,attrs:{axis:1,batchDims:1}});Ls(n,f);let C=u.slice(0,-1);C.push(s),I=b,b=de({inputs:{x:b},attrs:{shape:C},backend:n}),Ls(n,I);let E=T;return T=de({inputs:{x:T},attrs:{shape:C},backend:n}),Ls(n,E),[T,b]}var Ese={kernelName:Fu,backendName:"webgl",kernelFunc:_se},Ase=class{constructor(e,t,n,a,r,s){this.variableNames=["Image","Transforms"],this.outputShape=s;let i=n==="nearest"?1:2,o;switch(a){case"constant":o=1;break;case"reflect":o=2;break;case"wrap":o=3;break;case"nearest":o=4;break;default:o=1;break}this.userCode=` + `}};function Ls(e,t){t!==null&&e.disposeIntermediateTensorInfo(t)}function MI(e){let t=1;for(;tl){let $=n.readSync(r.dataId),[R,F]=B7($,u,r.dtype,s,i);return[n.makeTensorInfo(R.shape,R.dtype,R.values),n.makeTensorInfo(F.shape,F.dtype,F.values)]}if(s===0)return u[u.length-1]=0,[n.makeTensorInfo(u,r.dtype,[]),n.makeTensorInfo(u,"int32",[])];if(p===1)return[r,cd({attrs:{shape:u,dtype:"int32",value:0},backend:n})];let d=n.texData.get(r.dataId),c=d!==null&&d.isPacked,h=c?n.unpackTensor(r):r,m=v.sizeFromShape(u)/p,f=de({inputs:{x:h},attrs:{shape:[m,p]},backend:n});c&&Ls(n,h);let g=MI(s),y=MI(p),b=null,x=()=>b===null?[f,f]:[f,b],w=($,R,F)=>{let S=x(),M=new Nse(F),B=[[p],[b===null?1:0],[Number.NEGATIVE_INFINITY],[$],[R]],U=b;b=n.runWebGLProgram(M,S,"int32",B),Ls(n,U)};for(let $=1;$=1;F/=2)w(R,F,[m,y])}for(let $=y;$>g;$/=2){let R=x(),F=new Cse([m,$/2]),S=[[p],[b===null?1:0],[g]],M=b;b=n.runWebGLProgram(F,R,"int32",S),Ls(n,M);let B=g/2,U=B*2;for(let G=B;G>=1;G/=2)w(U,G,b.shape)}let I=b;b=np({inputs:{x:b},backend:n,attrs:{begin:0,size:[m,s]}}),Ls(n,I);let T=$E({inputs:{x:f,indices:b},backend:n,attrs:{axis:1,batchDims:1}});Ls(n,f);let C=u.slice(0,-1);C.push(s),I=b,b=de({inputs:{x:b},attrs:{shape:C},backend:n}),Ls(n,I);let E=T;return T=de({inputs:{x:T},attrs:{shape:C},backend:n}),Ls(n,E),[T,b]}var Ese={kernelName:Fu,backendName:"webgl",kernelFunc:_se},$se=class{constructor(e,t,n,a,r,s){this.variableNames=["Image","Transforms"],this.outputShape=s;let i=n==="nearest"?1:2,o;switch(a){case"constant":o=1;break;case"reflect":o=2;break;case"wrap":o=3;break;case"nearest":o=4;break;default:o=1;break}this.userCode=` float mapCoord(float outCoord, float len) { float inCoord = outCoord; if(${o} == 2) { @@ -4770,7 +4770,7 @@ return a / b;`,Bne=` } setOutput(outputValue); } - `}};function $se(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],y=new Ase(d,c,i,o,l,g);return n.runWebGLProgram(y,[r,s],"float32")}var Fse={kernelName:Du,backendName:"webgl",kernelFunc:$se};function Dse(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;Yu(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=a.readSync(s.dataId),{outputValues:o,outputShape:l,indices:u}=V7(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([u.length],"int32",u)]}var Rse={kernelName:Bm,backendName:"webgl",kernelFunc:Dse};function Mse(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r,o=i.shape.length,l=r.shape[s],u=new Array(o-1),p=0;for(let f=0;fn.disposeIntermediateTensorInfo(f)),m}var Pse={kernelName:Ru,backendName:"webgl",kernelFunc:Mse},Ose=class{constructor(e,t){this.variableNames=["x","segmentIds"];let n=e.windowSize,a=e.batchSize,r=e.inSize,s=e.numSegments,i=s*Math.ceil(r/n);this.outputShape=[a,i];let o="0.0",l="sumValue",u=Math.floor(n/4)*4,p=n%4,d=` + `}};function Ase(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],y=new $se(d,c,i,o,l,g);return n.runWebGLProgram(y,[r,s],"float32")}var Fse={kernelName:Du,backendName:"webgl",kernelFunc:Ase};function Dse(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;Yu(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=a.readSync(s.dataId),{outputValues:o,outputShape:l,indices:u}=V7(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([u.length],"int32",u)]}var Rse={kernelName:Bm,backendName:"webgl",kernelFunc:Dse};function Mse(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r,o=i.shape.length,l=r.shape[s],u=new Array(o-1),p=0;for(let f=0;fn.disposeIntermediateTensorInfo(f)),m}var Pse={kernelName:Ru,backendName:"webgl",kernelFunc:Mse},Ose=class{constructor(e,t){this.variableNames=["x","segmentIds"];let n=e.windowSize,a=e.batchSize,r=e.inSize,s=e.numSegments,i=s*Math.ceil(r/n);this.outputShape=[a,i];let o="0.0",l="sumValue",u=Math.floor(n/4)*4,p=n%4,d=` sumValue += dot(values, segFilter); `,c="";r%n>0&&(c=` if (inIdx < 0 || inIdx >= ${r}) { @@ -4876,6 +4876,6 @@ return a / b;`,Bne=` } setOutput(${l}); } - `}};function Lse(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,segmentIds:s}=t,{numSegments:i}=a,o=r.shape.length,l=[],u=0,p=N.getAxesPermutation([u],o),d=r;p!=null&&(d=Sn({inputs:{x:r},backend:n,attrs:{perm:p}}),l.push(d),u=N.getInnerMostAxes(1,o)[0]);let c=N.segment_util.computeOutShape(d.shape,u,i),h=v.sizeFromShape([d.shape[u]]),m=de({inputs:{x:d},backend:n,attrs:{shape:[-1,h]}});l.push(m);let f=Um(r.dtype),g=(w,I,T,C,E)=>{let A=w.shape[0],R=w.shape[1],F=N.segment_util.segOpComputeOptimalWindowSize(R,E),S={windowSize:F,inSize:R,batchSize:A,numSegments:E},M=new Ose(S,I),B=n.compileAndRun(M,[w,T],C);if(l.push(B),B.shape[1]===E)return B;let U=OE({backend:n,attrs:{start:0,stop:E,step:1,dtype:"float32"}}),G=zE({inputs:{x:U},backend:n,attrs:{reps:[R/F]}});return l.push(U),l.push(G),g(B,I,G,C,E)},y=g(m,"unsortedSegmentSum",s,f,i),b=de({inputs:{x:y},backend:n,attrs:{shape:c}}),x=b;if(p!=null){l.push(b);let w=N.getUndoAxesPermutation(p);x=Sn({inputs:{x},backend:n,attrs:{perm:w}})}return l.forEach(w=>n.disposeIntermediateTensorInfo(w)),x}var zse={kernelName:Cc,backendName:"webgl",kernelFunc:Lse},Wse=[MJ,OJ,WJ,UJ,HJ,KJ,YJ,JJ,n9,r9,o9,p9,h9,y9,v9,k9,S9,_9,A9,F9,P9,U9,H9,q9,Q9,tQ,sQ,bJ,lQ,hQ,yQ,IQ,TQ,CQ,EQ,$Q,RQ,OQ,WQ,VQ,GQ,jQ,XQ,ZQ,tee,aee,iee,uee,cee,fee,xee,Iee,Nee,Eee,Aee,Fee,Ree,Pee,Lee,Wee,Gee,qee,Yee,Jee,tte,rte,lte,dte,yJ,mte,cQ,yte,vte,Ite,vJ,Cte,$te,Dte,Ote,Wte,Gte,qte,Zte,tne,rne,ine,pne,dne,mne,bne,vne,kne,Sne,Nne,Ane,Rne,Lne,jne,IJ,Yne,Qne,nae,sae,X9,lae,pae,dae,fae,xae,kJ,wae,Iae,Tae,Cae,_ae,Y9,Vne,$ae,Mae,zae,TJ,Uae,jae,Yae,Qae,are,sre,lre,cre,hre,gre,xre,kre,Nre,Ere,Fre,Mre,B9,Gne,Lre,Wre,Vre,Gre,jre,Kre,Yre,Jre,ese,ase,sse,ose,pse,dse,mse,gse,Une,FJ,xse,kse,Tse,Ese,Fse,DJ,Rse,Pse,zse,uae];for(let e of Wse)_c(e);var Et;(function(e){e[e.float32=0]="float32",e[e.int32=1]="int32",e[e.bool=2]="bool",e[e.string=3]="string",e[e.complex64=4]="complex64"})(Et||(Et={}));var uc;(function(e){e[e.linear=0]="linear",e[e.relu=1]="relu",e[e.relu6=2]="relu6",e[e.prelu=3]="prelu",e[e.leakyrelu=4]="leakyrelu",e[e.sigmoid=5]="sigmoid",e[e.elu=6]="elu"})(uc||(uc={}));var WE;function Bse(e){WE=e.wasm.cwrap(Qs,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function Vse(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:l,transposeB:u,activation:p,leakyreluAlpha:d}=a,c=n.dataIdMap.get(r.dataId).id,h=n.dataIdMap.get(s.dataId).id,m=0;if(i!=null){let E=n.dataIdMap.get(i.dataId);if(E.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${E.shape.length}.`);m=E.id}let f=o==null?0:n.dataIdMap.get(o.dataId).id,g=uc[p];if(g==null)throw new Error(`${p} activation not yet supported for FusedConv2D in the wasm backend.`);let y=l?r.shape[2]:r.shape[1],b=u?s.shape[1]:s.shape[2],x=Ou.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)),w=n.makeOutput([...x,y,b],r.dtype),I=n.dataIdMap.get(w.dataId).id,T=new Uint8Array(new Int32Array(r.shape).buffer),C=new Uint8Array(new Int32Array(s.shape).buffer);return WE(c,T,r.shape.length,h,C,s.shape.length,l,u,g,m,f,d||0,I),w}var Use={kernelName:Qs,backendName:"wasm",setupFunc:Bse,kernelFunc:Vse};function an(e,t){let n;function a(s){n=s.wasm.cwrap(e,null,["number","number","number"])}function r(s){let{backend:i,inputs:{x:o}}=s,l=i.dataIdMap.get(o.dataId).id,u=i.makeOutput(o.shape,t||o.dtype),p=i.dataIdMap.get(u.dataId).id;return v.sizeFromShape(u.shape)===0||n(l,Et[o.dtype],p),u}return{kernelName:e,backendName:"wasm",setupFunc:a,kernelFunc:r}}var Gse=an(Dl);function dn(e,t,n){let a;function r(i){a=i.wasm.cwrap(e,null,["number","array","number","number","array","number","number","number"])}function s(i){let{backend:o,inputs:l}=i,{a:u,b:p}=l,d=o.dataIdMap.get(u.dataId).id,c=o.dataIdMap.get(p.dataId).id,h=n!=null?n:u.dtype,m=N.assertAndGetBroadcastShape(u.shape,p.shape),f=o.makeOutput(m,h);if(v.sizeFromShape(m)===0)return f;let g=new Uint8Array(new Int32Array(u.shape).buffer),y=new Uint8Array(new Int32Array(p.shape).buffer),b=o.dataIdMap.get(f.dataId).id;return a(d,g,u.shape.length,c,y,p.shape.length,Et[u.dtype],b),f}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var Hse=!0,jse=dn(gs,Hse),BE;function qse(e){BE=e.wasm.cwrap(fi,null,["array","number","number","number"])}function Kse(e){let{inputs:t,backend:n}=e,a=n.makeOutput(t[0].shape,t[0].dtype);if(v.sizeFromShape(a.shape)===0)return a;let r=t.map(o=>n.dataIdMap.get(o.dataId).id),s=new Uint8Array(new Int32Array(r).buffer),i=n.dataIdMap.get(a.dataId).id;return BE(s,r.length,Et[a.dtype],i),a}var Xse={kernelName:fi,backendName:"wasm",setupFunc:qse,kernelFunc:Kse};function Qf(e){let{inputs:{x:t},backend:n}=e;if(t.dtype==="string")return In(n.readSync(t.dataId),t.shape,t.dtype);let a=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(a).set(r),a}var Yse={kernelName:Ri,backendName:"wasm",kernelFunc:Qf},VE;function Zse(e){VE=e.wasm.cwrap(_r,null,["number","array","number","number","number","array","number"])}function hs(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=Qse(t.x.shape,a.perm),i=!0;for(let m=0;m=r&&(s===-1||a[s]>a[i])&&(s=i);a[s]=r}return[n,a]}var eie={kernelName:_r,backendName:"wasm",kernelFunc:hs,setupFunc:Zse};function Es(e,t,n){let a=e.shape,r=e.shape.length,s=v.parseAxisParam(t,a),i=s,o=N.getAxesPermutation(i,r),l=null,u=!1;if(o!=null){let p=new Array(r);for(let c=0;c`new shape: ${i}, old shape: ${a.shape}. New shape and old shape must have the same number of elements.`),e.backend.incRef(a.dataId),{dataId:a.dataId,shape:i,dtype:a.dtype}}var hie={kernelName:vu,backendName:"wasm",kernelFunc:Wn},qE;function mie(e){qE=e.wasm.cwrap(bi,null,["number","array","number","number","array","number","number","number","number"])}function fie(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let l=r.shape.length,u=s.shape.length,p=i?r.shape[l-2]:r.shape[l-1],d=o?s.shape[u-1]:s.shape[u-2],c=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[u-2]:s.shape[u-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=v.sizeFromShape(m),y=v.sizeFromShape(f),b=Ou.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);v.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,p,c]:[g,c,p],w=o?[y,h,d]:[y,d,h],I=Wn({inputs:{x:r},backend:n,attrs:{shape:x}}),T=Wn({inputs:{x:s},backend:n,attrs:{shape:w}}),C=n.dataIdMap.get(I.dataId).id,E=n.dataIdMap.get(T.dataId).id,A=i?I.shape[2]:I.shape[1],R=o?T.shape[1]:T.shape[2],F=Math.max(g,y),S=n.makeOutput([F,A,R],I.dtype),M=n.dataIdMap.get(S.dataId).id,B=new Uint8Array(new Int32Array(I.shape).buffer),U=new Uint8Array(new Int32Array(T.shape).buffer);return qE(C,B,I.shape.length,E,U,T.shape.length,i,o,M),n.disposeData(I.dataId),n.disposeData(T.dataId),S.shape=b,S}var gie={kernelName:bi,backendName:"wasm",setupFunc:mie,kernelFunc:fie};function hi(e){let{inputs:{x:t},attrs:{begin:n,size:a},backend:r}=e,[s,i]=jt.parseSliceParams(t,n,a),o=jt.isSliceContinous(t.shape,s,i),l=r.readSync(t.dataId),u=r.makeOutput(i,t.dtype),p=v.computeStrides(t.shape),d=r.dataIdMap.get(u.dataId);if(o){let m=jt.computeFlatOffset(s,p);return t.dtype==="string"?d.stringBytes=l.slice(m,m+v.sizeFromShape(i)):r.typedArrayFromHeap(u).set(l.subarray(m,m+v.sizeFromShape(i))),u}if(t.dtype==="string"){let m=Jh(l,s,i,t.shape,t.dtype);return d.stringBytes=m,u}let c=r.typedArrayFromHeap(u),h=t.shape.length;if(h===2)yie(l,p[0],c,s,i);else if(h===3)bie(l,p[0],p[1],c,s,i);else if(h===4)xie(l,p[0],p[1],p[2],c,s,i);else{let m=Jh(l,s,i,t.shape,t.dtype);c.set(m)}return u}function yie(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let u=i;uy*b),l=N.getReshaped(r.shape,s,o),u=N.getPermuted(l.length,s.length),p=N.getReshapedPermuted(r.shape,s,o),d=N.getSliceBeginCoords(i,s.length),c=N.getSliceSize(p,i,s.length),h=Wn({inputs:{x:r},backend:n,attrs:{shape:l}}),m=hs({inputs:{x:h},backend:n,attrs:{perm:u}}),f=Wn({inputs:{x:m},backend:n,attrs:{shape:p}}),g=hi({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeData(h.dataId),n.disposeData(m.dataId),n.disposeData(h.dataId),g}var kie={kernelName:Ul,backendName:"wasm",kernelFunc:wie};function ap(e){let{inputs:{x:t},attrs:{dtype:n},backend:a}=e,r=a.makeOutput(t.shape,n),s=a.typedArrayFromHeap(t);return a.typedArrayFromHeap(r).set(s),r}var Iie={kernelName:xi,backendName:"wasm",kernelFunc:ap},Sie=an(vi),KE;function Tie(e){KE=e.wasm.cwrap(ys,null,["number","number","number","number"])}function Nie(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o=n.dataIdMap.get(r.dataId).id,l=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(l.dataId).id;return KE(o,s,i,u),l}var Cie={kernelName:ys,backendName:"wasm",setupFunc:Tie,kernelFunc:Nie};function XE(e){let{inputs:t,backend:n}=e,a=v.parseAxisParam(e.attrs.axis,t[0].shape)[0],r=t.map(h=>h.shape);N.assertParamsConsistent(r,a);let s=N.computeOutShape(t.map(h=>h.shape),a),i=t.filter(h=>v.sizeFromShape(h.shape)>0);if(i.length===1)return Qf({inputs:{x:i[0]},backend:n});let o=n.makeOutput(s,t[0].dtype);if(v.sizeFromShape(s)===0)return o;if(i[0].dtype==="string"){let h=i.map(x=>{let w=v.sizeFromShape(x.shape.slice(a));return Wn({inputs:{x},backend:n,attrs:{shape:[-1,w]}})}),m=h.map(x=>({vals:n.readSync(x.dataId),shape:x.shape}));s=N.computeOutShape(h.map(x=>x.shape),1);let f=h[0].shape[0]===1,g=O0(m,s,t[0].dtype,f),y=N.computeOutShape(i.map(x=>x.shape),a);o.shape=y;let b=n.dataIdMap.get(o.dataId);return b.stringBytes=N.fromStringArrayToUint8(g),h.forEach(x=>n.disposeData(x.dataId)),o}let l=v.sizeFromShape(i[0].shape.slice(0,a)),u=0,p=i.map(h=>{let m=v.sizeFromShape(h.shape.slice(a));return u+=m,m}),d=i.map(h=>n.typedArrayFromHeap(h)),c=n.typedArrayFromHeap(o);for(let h=0;h`cumprod does not support ${r.dtype} tensors in the WASM backend`);let u=N.getAxesPermutation([s],l),p=r;u!==null&&(p=hs({inputs:{x:r},attrs:{perm:u},backend:n}));let d=N.getInnerMostAxes(1,l)[0];N.assertAxesAreInnerMostDims("cumprod",[d],l);let c=n.makeOutput(p.shape,p.dtype),h=p.shape[d],m=n.dataIdMap.get(p.dataId).id,f=n.dataIdMap.get(c.dataId).id;QE(m,i?1:0,o?1:0,h,f,Et[r.dtype]);let g=c;if(u!==null){let y=N.getUndoAxesPermutation(u);g=hs({inputs:{x:c},attrs:{perm:y},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Vie={kernelName:Hl,backendName:"wasm",setupFunc:Wie,kernelFunc:Bie},eA;function Uie(e){eA=e.wasm.cwrap(Ti,null,["number","number","number","number","number","number"])}function Gie(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a,l=r.shape.length;v.assert(r.dtype==="float32"||r.dtype==="int32",()=>`cumsum does not support ${r.dtype} tensors in the WASM backend`);let u=N.getAxesPermutation([s],l),p=r;u!==null&&(p=hs({inputs:{x:r},attrs:{perm:u},backend:n}));let d=N.getInnerMostAxes(1,l)[0];N.assertAxesAreInnerMostDims("cumsum",[d],l);let c=n.makeOutput(p.shape,p.dtype),h=p.shape[d],m=n.dataIdMap.get(p.dataId).id,f=n.dataIdMap.get(c.dataId).id;eA(m,i?1:0,o?1:0,h,f,Et[r.dtype]);let g=c;if(u!==null){let y=N.getUndoAxesPermutation(u);g=hs({inputs:{x:c},attrs:{perm:y},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Hie={kernelName:Ti,backendName:"wasm",setupFunc:Uie,kernelFunc:Gie},tA;function jie(e){tA=e.wasm.cwrap(ql,null,["number","number","number","array","number","array","array","number","number"])}function qie(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{blockSize:s,dataFormat:i}=a,o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],u=i==="NHWC"?r.shape[2]:r.shape[3],p=i==="NHWC"?r.shape[3]:r.shape[1],d=l*s,c=u*s,h=p/(s*s),m=i==="NHWC"?[o,d,c,h]:[o,h,d,c],f=t.makeOutput(m,"float32"),g=t.dataIdMap.get(r.dataId).id,y=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),b=new Uint8Array(new Int32Array(m).buffer),x=new Uint8Array(new Int32Array(v.computeStrides(m)).buffer),w=t.dataIdMap.get(f.dataId).id;return tA(g,s,i==="NHWC"?1:0,y,r.shape.length-1,b,x,m.length,w),f}var Kie={kernelName:ql,backendName:"wasm",setupFunc:jie,kernelFunc:qie},nA;function Xie(e){nA=e.wasm.cwrap(Ni,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Yie(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s}=t,i=a.dataIdMap.get(r.dataId).id,o=a.dataIdMap.get(s.dataId).id,{strides:l,dilations:u,pad:p,dimRoundingMode:d}=n,c=u==null?[1,1]:u,h=N.computeConv2DInfo(r.shape,s.shape,l,c,p,d,!0),m=h.filterHeight,f=h.filterWidth,g=h.padInfo.top,y=h.padInfo.right,b=h.padInfo.bottom,x=h.padInfo.left,w=h.dilationHeight,I=h.dilationWidth,T=h.strideHeight,C=h.strideWidth,E=h.inChannels,A=h.outChannels,R=h.padInfo.type==="SAME"?1:0;if(h.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${h.dataFormat}'. Please use 'channelsLast'.`);let F=a.makeOutput(h.outShape,"float32"),S=a.dataIdMap.get(F.dataId).id;return nA(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,y,b,x,R,w,I,T,C,E,A,S),F}var Zie={kernelName:Ni,backendName:"wasm",setupFunc:Xie,kernelFunc:Yie},Jie=an(_i),Qie=!1,eoe=dn(Xl,Qie,"bool"),toe=an(Ei,"float32");function kx(e){let{inputs:t,attrs:n,backend:a}=e,{input:r}=t,{dim:s}=n,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(v.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),Wn({inputs:{x:r},backend:a,attrs:{shape:o}})}var noe={kernelName:Yl,backendName:"wasm",kernelFunc:kx};function aA(e){let{attrs:{shape:t,value:n,dtype:a},backend:r}=e,s=r.makeOutput(t,a);return r.typedArrayFromHeap(s).fill(n),s}var aoe={kernelName:gc,backendName:"wasm",kernelFunc:aA},rA;function roe(e){rA=e.wasm.cwrap(Jl,null,["number","number","number","number","number","number"])}function soe(e){let{inputs:t,backend:n}=e,{image:a}=t,r=n.makeOutput(a.shape,a.dtype),s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,[o,l,u,p]=a.shape;return rA(s,o,l,u,p,i),r}var ioe={kernelName:Jl,backendName:"wasm",kernelFunc:soe,setupFunc:roe},ooe=an(Ai),loe=!1,uoe=dn($i,loe),sA;function poe(e){sA=e.wasm.cwrap(Fi,null,["number","number","number","number","number","number","number"])}function coe(e){let{backend:t,inputs:n,attrs:a}=e,{varianceEpsilon:r}=a,{x:s,mean:i,variance:o,offset:l,scale:u}=n,p=t.dataIdMap.get(s.dataId).id,d=t.dataIdMap.get(i.dataId).id,c=t.dataIdMap.get(o.dataId).id,h=l!=null?t.dataIdMap.get(l.dataId).id:0,m=u!=null?t.dataIdMap.get(u.dataId).id:0,f=t.makeOutput(s.shape,s.dtype);if(v.sizeFromShape(s.shape)===0)return f;let g=t.dataIdMap.get(f.dataId).id;return sA(p,d,c,h,m,r,g),f}var doe={kernelName:Fi,backendName:"wasm",setupFunc:poe,kernelFunc:coe},iA;function hoe(e){iA=e.wasm.cwrap(ei,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function moe(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dataFormat:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=n,f=N.computeConv2DInfo(r.shape,s.shape,l,p,u,c),g=uc[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,x=f.outChannels,w=0;if(i!=null){let te=a.dataIdMap.get(i.dataId);if(te.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${te.shape.length}.`);if(te.shape[0]!==x)throw new Error(`FusedConv2D bias shape (${te.shape}) does not match the number of output channels (${x})`);w=te.id}let I=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,E=f.padInfo.right,A=f.padInfo.bottom,R=f.padInfo.left,F=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,G=f.padInfo.type==="SAME"?1:0,q=f.batchSize,K=f.inHeight,Z=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let Q=a.makeOutput(f.outShape,"float32"),ee=a.dataIdMap.get(Q.dataId).id,ae=o==null?0:a.dataIdMap.get(o.dataId).id;return iA(y,q,K,Z,b,I,T,w,C,E,A,R,G,F,S,M,B,U,x,g,ae,m||0,ee),Q}var foe={kernelName:ei,backendName:"wasm",setupFunc:hoe,kernelFunc:moe},oA;function goe(e){oA=e.wasm.cwrap(ti,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function yoe(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dataFormat:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=n,f=N.computeConv2DInfo(r.shape,s.shape,l,p,u,c,!0),g=uc[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,x=f.outChannels,w=0;if(i!=null){let te=a.dataIdMap.get(i.dataId);if(te.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${te.shape.length}.`);if(te.shape[0]!==x)throw new Error(`FusedDepthwiseConv2D bias shape (${te.shape}) does not match the number of output channels (${x})`);w=te.id}let I=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,E=f.padInfo.right,A=f.padInfo.bottom,R=f.padInfo.left,F=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,G=f.padInfo.type==="SAME"?1:0,q=f.batchSize,K=f.inHeight,Z=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let Q=a.makeOutput(f.outShape,"float32"),ee=a.dataIdMap.get(Q.dataId).id,ae=o==null?0:a.dataIdMap.get(o.dataId).id;return oA(y,q,K,Z,b,I,T,w,C,E,A,R,G,F,S,M,B,U,x,g,ae,m||0,ee),Q}var boe={kernelName:ti,backendName:"wasm",setupFunc:goe,kernelFunc:yoe},lA;function xoe(e){lA=e.wasm.cwrap(eu,null,["number","number","number","number","number","number","array","number"])}function voe(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=Ux.prepareAndValidate(a,r),u=t.makeOutput(s,a.dtype);if(i===0)return u;let p=r.shape,d=p[p.length-1],c=t.dataIdMap.get(a.dataId).id,h=t.dataIdMap.get(r.dataId).id,m=new Uint8Array(new Int32Array(l).buffer),f=t.dataIdMap.get(u.dataId).id;return lA(c,Et[a.dtype],h,i,d,o,m,f),u}var woe={kernelName:eu,backendName:"wasm",setupFunc:xoe,kernelFunc:voe},uA;function koe(e){uA=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function Ioe(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,indices:s}=n,{axis:i,batchDims:o}=a,l=v.parseAxisParam(i,r.shape)[0],u=t.readSync(s.dataId),p=r.shape[l];for(let C=0;C=0,()=>`GatherV2: the index value ${E} is not in [0, ${p-1}]`)}let d=N.segment_util.collectGatherOpShapeInfo(r,s,l,o),c=Wn({inputs:{x:r},attrs:{shape:[d.batchSize,d.outerSize,d.dimSize,d.sliceSize]},backend:t}),h=v.sizeFromShape(s.shape),m=Wn({inputs:{x:s},attrs:{shape:[d.batchSize,h/d.batchSize]},backend:t}),f=[d.batchSize,d.outerSize,h/d.batchSize,d.sliceSize],g=t.makeOutput(f,r.dtype);if(v.sizeFromShape(r.shape)===0)return g;let y=c.shape.length-1,b=t.dataIdMap.get(c.dataId).id,x=t.dataIdMap.get(m.dataId).id,w=t.dataIdMap.get(g.dataId).id,I=new Uint8Array(new Int32Array(v.computeStrides(c.shape)).buffer),T=new Uint8Array(new Int32Array(v.computeStrides(f)).buffer);return uA(b,Et[r.dtype],I,y,x,d.batchSize,T,w),t.disposeData(c.dataId),t.disposeData(m.dataId),g.shape=d.outputShape,g}var Soe={kernelName:Ql,backendName:"wasm",setupFunc:koe,kernelFunc:Ioe},Toe=!1,Noe=dn(tu,Toe,"bool"),Coe=!1,_oe=dn(Di,Coe,"bool"),pA;function Eoe(e){pA=e.wasm.cwrap(Mi,null,["number","number","number","number"])}function Aoe(e){let{inputs:{x:t},attrs:{alpha:n},backend:a}=e,r=a.dataIdMap.get(t.dataId).id,s=a.makeOutput(t.shape,"float32");if(v.sizeFromShape(t.shape)!==0){let i=a.dataIdMap.get(s.dataId).id;pA(r,Et[t.dtype],n,i)}return s}var $oe={kernelName:Mi,backendName:"wasm",setupFunc:Eoe,kernelFunc:Aoe},Foe=!1,Doe=dn(su,Foe,"bool"),Roe=!1,Moe=dn(iu,Roe,"bool"),Poe=an(Pi),Ooe=!1,Loe=dn(lu,Ooe,"bool"),zoe=an(uu),Woe=!1,Boe=dn(pu,Woe,"bool"),Voe=!1,Uoe=dn(nS,Voe,"bool"),cA;function Goe(e){cA=e.wasm.cwrap(Oi,null,["number","number","number","number"])}function Hoe(e){let{backend:t,inputs:n,attrs:a}=e,{reductionIndices:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:c}=Es(i,r,t);if(c){let b=t.dataIdMap.get(u.dataId).id;l=u,o=b}let h=l.shape.length;N.assertAxesAreInnerMostDims("max",p,h);let[m,f]=N.computeOutAndReduceShapes(l.shape,p),g=v.sizeFromShape(f),y=t.makeOutput(m,i.dtype);if(v.sizeFromShape(l.shape)!==0){let b=t.dataIdMap.get(y.dataId).id;cA(o,Et[i.dtype],g,b)}if(c&&t.disposeData(u.dataId),s){let b=N.expandShapeToKeepDim(y.shape,d);y.shape=b}return y}var joe={kernelName:Oi,backendName:"wasm",setupFunc:Goe,kernelFunc:Hoe},qoe=!1,Koe=dn(Li,qoe),dA;function Xoe(e){dA=e.wasm.cwrap(zi,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Yoe(e){let{inputs:t,attrs:n,backend:a}=e,r=t.x,s=a.dataIdMap.get(r.dataId).id;v.assert(r.dtype==="float32",()=>`Error in MaxPool: only float32 input is supported. Got ${r.dtype}.`);let{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=n,p=N.computePool2DInfo(r.shape,i,o,1,l,u),d=p.filterHeight,c=p.filterWidth,h=p.padInfo.top,m=p.padInfo.right,f=p.padInfo.bottom,g=p.padInfo.left,y=p.dilationHeight,b=p.dilationWidth,x=p.strideHeight,w=p.strideWidth,I=p.inChannels,T=p.outChannels;if(p.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${p.dataFormat}'. Please use 'channelsLast'.`);let C=a.makeOutput(p.outShape,"float32"),E=a.dataIdMap.get(C.dataId).id;return dA(s,r.shape[0],r.shape[1],r.shape[2],d,c,h,m,f,g,y,b,x,w,I,T,E),C}var Zoe={kernelName:zi,backendName:"wasm",setupFunc:Xoe,kernelFunc:Yoe},hA;function Joe(e){hA=e.wasm.cwrap(Wi,null,["number, number, number"])}function Qoe(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Es(i,r,t),m=d;if(h){let w=t.dataIdMap.get(p.dataId).id;w!==o&&(u=p,l=w,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("mean",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),y=v.sizeFromShape(g),b=u;u.dtype!=="float32"&&(b=ap({backend:t,inputs:{x:u},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(b.dataId).id);let x=t.makeOutput(f,"float32");if(v.sizeFromShape(u.shape)!==0){let w=t.dataIdMap.get(x.dataId).id;hA(l,y,w)}if(h&&t.disposeData(p.dataId),s){let w=N.expandShapeToKeepDim(x.shape,c);x.shape=w}return u.dtype!=="float32"&&t.disposeData(b.dataId),x}var ele={kernelName:Wi,backendName:"wasm",setupFunc:Joe,kernelFunc:Qoe},mA;function tle(e){mA=e.wasm.cwrap(Bi,null,["number","number","number","number"])}function nle(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Es(i,r,t);if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x)}let m=u.shape.length;N.assertAxesAreInnerMostDims("min",d,m);let[f,g]=N.computeOutAndReduceShapes(u.shape,d),y=v.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;mA(l,Et[i.dtype],y,x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(b.shape,c);b.shape=x}return b}var ale={kernelName:Bi,backendName:"wasm",setupFunc:tle,kernelFunc:nle},rle=!1,sle=dn(Vi,rle),Ix;(function(e){e[e.reflect=0]="reflect",e[e.symmetric=1]="symmetric"})(Ix||(Ix={}));var fA;function ile(e){fA=e.wasm.cwrap(Ui,null,["number","array","number","number","array","array","number","number"])}function ole(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,mode:r}}=e,s=a.map((m,f)=>m[0]+t.shape[f]+m[1]),i=n.dataIdMap.get(t.dataId).id,o=n.makeOutput(s,t.dtype),l=n.dataIdMap.get(o.dataId).id,u=new Uint8Array(new Int32Array(t.shape).buffer),p=a.map(m=>m[0]),d=a.map(m=>m[1]),c=new Uint8Array(new Int32Array(p).buffer),h=new Uint8Array(new Int32Array(d).buffer);return fA(i,u,t.shape.length,Et[t.dtype],c,h,Ix[r],l),o}var lle={kernelName:Ui,backendName:"wasm",kernelFunc:ole,setupFunc:ile},ule=!0,ple=dn(Gi,ule),cle=an(du);function u1(e,t){let n=new Int32Array(e.wasm.HEAPU8.buffer,t,4),a=n[0],r=n[1],s=n[2],i=n[3];return e.wasm._free(t),{pSelectedIndices:a,selectedSize:r,pSelectedScores:s,pValidOutputs:i}}var gA;function dle(e){gA=e.wasm.cwrap(mu,"number",["number","number","number","number","number"])}function hle(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i}=a,{boxes:o,scores:l}=n,u=t.dataIdMap.get(o.dataId).id,p=t.dataIdMap.get(l.dataId).id,d=gA(u,p,s,r,i),{pSelectedIndices:c,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=u1(t,d);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",c)}var mle={kernelName:mu,backendName:"wasm",setupFunc:dle,kernelFunc:hle},yA;function fle(e){yA=e.wasm.cwrap(fu,"number",["number","number","number","number","number","bool"])}function gle(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:o}=a,{boxes:l,scores:u}=n,p=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,c=yA(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=u1(t,c);t.wasm._free(f);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([],"int32",g);return[y,b]}var yle={kernelName:fu,backendName:"wasm",setupFunc:fle,kernelFunc:gle},bA;function ble(e){bA=e.wasm.cwrap(gu,"number",["number","number","number","number","number","number"])}function xle(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,softNmsSigma:o}=a,{boxes:l,scores:u}=n,p=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,c=bA(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=u1(t,c);t.wasm._free(g);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([m],"float32",f);return[y,b]}var vle={kernelName:gu,backendName:"wasm",setupFunc:ble,kernelFunc:xle},wle=!1,kle=dn(hu,wle,"bool"),xA;function Ile(e){xA=e.wasm.cwrap(Hi,null,["number","number","number","number","number"])}function Sle(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=n.makeOutput([...r.shape,i],s),p=n.dataIdMap.get(u.dataId).id,d=n.dataIdMap.get(r.dataId).id;return xA(d,i,o,l,p),u}var Tle={kernelName:Hi,backendName:"wasm",setupFunc:Ile,kernelFunc:Sle};function Nle(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var Cle={kernelName:yu,backendName:"wasm",kernelFunc:Nle};function _le(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return kx({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(p=>{v.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),v.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=kx({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=XE({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeData(p.dataId)),u}var Ele={kernelName:bu,backendName:"wasm",kernelFunc:_le},vA;function Ale(e){vA=e.wasm.cwrap(ji,null,["number","array","number","number","array","array","number","number"])}function $le(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,constantValue:r}}=e,s=a.map((m,f)=>m[0]+t.shape[f]+m[1]);if(v.sizeFromShape(t.shape)===0)return aA({backend:n,attrs:{shape:s,value:r,dtype:t.dtype}});let i=n.dataIdMap.get(t.dataId).id,o=n.makeOutput(s,t.dtype),l=n.dataIdMap.get(o.dataId).id,u=new Uint8Array(new Int32Array(t.shape).buffer),p=a.map(m=>m[0]),d=a.map(m=>m[1]),c=new Uint8Array(new Int32Array(p).buffer),h=new Uint8Array(new Int32Array(d).buffer);return vA(i,u,t.shape.length,Et[t.dtype],c,h,r,l),o}var wA={kernelName:ji,backendName:"wasm",kernelFunc:$le,setupFunc:Ale},Fle=!1,Dle=dn(qi,Fle),kA;function Rle(e){kA=e.wasm.cwrap(Ki,null,["number","number","number"])}function Mle(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,o=s,l=a,u=l;l.dtype!=="float32"&&(u=ap({backend:n,inputs:{x:a},attrs:{dtype:"float32"}}),o=n.dataIdMap.get(u.dataId).id);let p=n.makeOutput(a.shape,"float32"),d=n.dataIdMap.get(p.dataId).id;return kA(o,i,d),l.dtype!=="float32"&&n.disposeData(u.dataId),p}var Ple={kernelName:Ki,backendName:"wasm",setupFunc:Rle,kernelFunc:Mle},IA;function Ole(e){IA=e.wasm.cwrap(Xi,null,["number","number","number","number"])}function Lle(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Es(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("prod",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),y=v.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;IA(l,y,Et[b.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(b.shape,c);b.shape=x}return b}var zle={kernelName:Xi,backendName:"wasm",setupFunc:Ole,kernelFunc:Lle},Wle=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=W0(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},Ble={kernelName:xc,backendName:"wasm",kernelFunc:Wle},Vle=!0,Ule=dn(Ci,Vle),Gle=an(Yi),Hle=an(Qi),SA;function jle(e){SA=e.wasm.cwrap(Ji,null,["number","number","number","number","number","number","number","number","number","number"])}function qle(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[p,d,c,h]=r.shape,m=[p,l,u,h],f=t.dataIdMap.get(r.dataId),g;f.dtype!=="float32"&&(g=ap({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let y=f.id,b=t.makeOutput(m,"float32");if(v.sizeFromShape(r.shape)===0)return b;let x=t.dataIdMap.get(b.dataId).id;return SA(y,p,d,c,h,l,u,s?1:0,i?1:0,x),g!=null&&t.disposeData(g.dataId),b}var Kle={kernelName:Ji,backendName:"wasm",setupFunc:jle,kernelFunc:qle},TA;function Xle(e){TA=e.wasm.cwrap(Zi,null,["number","number","number","number","number","number","number","number","number","number"])}function Yle(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[p,d,c,h]=r.shape,m=[p,l,u,h],f=t.makeOutput(m,"float32");if(v.sizeFromShape(r.shape)===0)return f;let g=t.dataIdMap.get(r.dataId),y;g.dtype!=="float32"&&(y=ap({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(y.dataId));let b=g.id,x=t.dataIdMap.get(f.dataId).id;return TA(b,p,d,c,h,l,u,s?1:0,i?1:0,x),y!=null&&t.disposeData(y.dataId),f}var Zle={kernelName:Zi,backendName:"wasm",setupFunc:Xle,kernelFunc:Yle},NA;function Jle(e){NA=e.wasm.cwrap(eo,null,["number","array","number","array","number","number"])}function Qle(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=v.parseAxisParam(s,r.shape);if(r.shape.length===0)return Qf({inputs:{x:r},backend:n});let o=n.makeOutput(r.shape,r.dtype),l=n.dataIdMap.get(r.dataId).id,u=n.dataIdMap.get(o.dataId).id,p=new Uint8Array(new Int32Array(i).buffer),d=new Uint8Array(new Int32Array(r.shape).buffer);NA(l,p,i.length,d,r.shape.length,u);let c=Wn({inputs:{x:o},attrs:{shape:r.shape},backend:n});return n.disposeData(o.dataId),c}var eue={kernelName:eo,backendName:"wasm",kernelFunc:Qle,setupFunc:Jle},CA;function tue(e){CA=e.wasm.cwrap(Pu,null,["number","number","number","number","number","number","number","number","array","number","number"])}function nue(e){let{inputs:t,backend:n,attrs:a}=e,{image:r}=t,{radians:s,fillValue:i,center:o}=a,l=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(r.dataId).id,p=n.dataIdMap.get(l.dataId).id,[d,c,h,m]=r.shape,[f,g]=N.getImageCenter(o,c,h),y=i===0,b=255,x=typeof i=="number"?[i,i,i,y?0:b]:[...i,b],w=new Uint8Array(new Int32Array(x).buffer);return CA(u,d,c,h,m,s,f,g,w,x.length,p),l}var aue={kernelName:Pu,backendName:"wasm",kernelFunc:nue,setupFunc:tue},rue=an(to),sue=an(no),_A;function iue(e){_A=e.wasm.cwrap(wu,null,["number","number","number","number","number","number","array","number","number"])}function oue(e){let{backend:t,inputs:n,attrs:a}=e,{indices:r,updates:s}=n,{shape:i}=a,o=t.makeOutput(i,s.dtype);if(v.sizeFromShape(i)===0)return o;let{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=Gx.calculateShapes(s,r,i),h=t.dataIdMap.get(r.dataId).id,m=t.dataIdMap.get(s.dataId).id,f=new Uint8Array(new Int32Array(d).buffer),g=t.dataIdMap.get(o.dataId).id;return _A(h,m,Et[s.dtype],l,u,p,f,c,g),o}var lue={kernelName:wu,backendName:"wasm",setupFunc:iue,kernelFunc:oue},EA;function uue(e){EA=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function pue(e){let{inputs:t,backend:n}=e,{condition:a,t:r,e:s}=t,i=n.dataIdMap.get(a.dataId).id,o=n.dataIdMap.get(r.dataId).id,l=n.dataIdMap.get(s.dataId).id,u=n.makeOutput(r.shape,r.dtype),p=n.dataIdMap.get(u.dataId).id,d=a.shape.length,c=r.shape.length,h=d===0||d>1||c===1?1:v.sizeFromShape(r.shape.slice(1));return EA(i,o,l,h,p),u}var cue={kernelName:ku,backendName:"wasm",kernelFunc:pue,setupFunc:uue},AA;function due(e){AA=e.wasm.cwrap(ro,null,["number","number"])}function hue(e){let{backend:t,inputs:{x:n}}=e,a=t.dataIdMap.get(n.dataId).id,r=t.makeOutput(n.shape,n.dtype),s=t.dataIdMap.get(r.dataId).id;return v.sizeFromShape(r.shape)===0||AA(a,s),r}var mue={kernelName:"Sigmoid",backendName:"wasm",setupFunc:due,kernelFunc:hue},fue=an(ao),$A;function gue(e){$A=e.wasm.cwrap(oo,null,["number","number","number","number"])}function yue(e){let{backend:t,inputs:{logits:n},attrs:{dim:a}}=e,r=t.dataIdMap.get(n.dataId).id,s=t.makeOutput(n.shape,n.dtype),i=t.dataIdMap.get(s.dataId).id,o=n.shape[a],l=v.sizeFromShape(n.shape)/o;return v.sizeFromShape(s.shape)===0||$A(r,i,o,l),s}var bue={kernelName:oo,backendName:"wasm",setupFunc:gue,kernelFunc:yue};function xue(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a,o=v.sizeFromShape(s),l=[[0,0]];l.push(...i);for(let g=1+s.length;g{let $=w.shape[0],R=w.shape[1],F=N.segment_util.segOpComputeOptimalWindowSize(R,E),S={windowSize:F,inSize:R,batchSize:$,numSegments:E},M=new Ose(S,I),B=n.compileAndRun(M,[w,T],C);if(l.push(B),B.shape[1]===E)return B;let U=OE({backend:n,attrs:{start:0,stop:E,step:1,dtype:"float32"}}),G=zE({inputs:{x:U},backend:n,attrs:{reps:[R/F]}});return l.push(U),l.push(G),g(B,I,G,C,E)},y=g(m,"unsortedSegmentSum",s,f,i),b=de({inputs:{x:y},backend:n,attrs:{shape:c}}),x=b;if(p!=null){l.push(b);let w=N.getUndoAxesPermutation(p);x=Sn({inputs:{x},backend:n,attrs:{perm:w}})}return l.forEach(w=>n.disposeIntermediateTensorInfo(w)),x}var zse={kernelName:Cc,backendName:"webgl",kernelFunc:Lse},Wse=[MJ,OJ,WJ,UJ,HJ,KJ,YJ,JJ,n9,r9,o9,p9,h9,y9,v9,k9,S9,_9,$9,F9,P9,U9,H9,q9,Q9,tQ,sQ,bJ,lQ,hQ,yQ,IQ,TQ,CQ,EQ,AQ,RQ,OQ,WQ,VQ,GQ,jQ,XQ,ZQ,tee,aee,iee,uee,cee,fee,xee,Iee,Nee,Eee,$ee,Fee,Ree,Pee,Lee,Wee,Gee,qee,Yee,Jee,tte,rte,lte,dte,yJ,mte,cQ,yte,vte,Ite,vJ,Cte,Ate,Dte,Ote,Wte,Gte,qte,Zte,tne,rne,ine,pne,dne,mne,bne,vne,kne,Sne,Nne,$ne,Rne,Lne,jne,IJ,Yne,Qne,nae,sae,X9,lae,pae,dae,fae,xae,kJ,wae,Iae,Tae,Cae,_ae,Y9,Vne,Aae,Mae,zae,TJ,Uae,jae,Yae,Qae,are,sre,lre,cre,hre,gre,xre,kre,Nre,Ere,Fre,Mre,B9,Gne,Lre,Wre,Vre,Gre,jre,Kre,Yre,Jre,ese,ase,sse,ose,pse,dse,mse,gse,Une,FJ,xse,kse,Tse,Ese,Fse,DJ,Rse,Pse,zse,uae];for(let e of Wse)_c(e);var Et;(function(e){e[e.float32=0]="float32",e[e.int32=1]="int32",e[e.bool=2]="bool",e[e.string=3]="string",e[e.complex64=4]="complex64"})(Et||(Et={}));var uc;(function(e){e[e.linear=0]="linear",e[e.relu=1]="relu",e[e.relu6=2]="relu6",e[e.prelu=3]="prelu",e[e.leakyrelu=4]="leakyrelu",e[e.sigmoid=5]="sigmoid",e[e.elu=6]="elu"})(uc||(uc={}));var WE;function Bse(e){WE=e.wasm.cwrap(Qs,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function Vse(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:l,transposeB:u,activation:p,leakyreluAlpha:d}=a,c=n.dataIdMap.get(r.dataId).id,h=n.dataIdMap.get(s.dataId).id,m=0;if(i!=null){let E=n.dataIdMap.get(i.dataId);if(E.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${E.shape.length}.`);m=E.id}let f=o==null?0:n.dataIdMap.get(o.dataId).id,g=uc[p];if(g==null)throw new Error(`${p} activation not yet supported for FusedConv2D in the wasm backend.`);let y=l?r.shape[2]:r.shape[1],b=u?s.shape[1]:s.shape[2],x=Ou.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)),w=n.makeOutput([...x,y,b],r.dtype),I=n.dataIdMap.get(w.dataId).id,T=new Uint8Array(new Int32Array(r.shape).buffer),C=new Uint8Array(new Int32Array(s.shape).buffer);return WE(c,T,r.shape.length,h,C,s.shape.length,l,u,g,m,f,d||0,I),w}var Use={kernelName:Qs,backendName:"wasm",setupFunc:Bse,kernelFunc:Vse};function an(e,t){let n;function a(s){n=s.wasm.cwrap(e,null,["number","number","number"])}function r(s){let{backend:i,inputs:{x:o}}=s,l=i.dataIdMap.get(o.dataId).id,u=i.makeOutput(o.shape,t||o.dtype),p=i.dataIdMap.get(u.dataId).id;return v.sizeFromShape(u.shape)===0||n(l,Et[o.dtype],p),u}return{kernelName:e,backendName:"wasm",setupFunc:a,kernelFunc:r}}var Gse=an(Dl);function dn(e,t,n){let a;function r(i){a=i.wasm.cwrap(e,null,["number","array","number","number","array","number","number","number"])}function s(i){let{backend:o,inputs:l}=i,{a:u,b:p}=l,d=o.dataIdMap.get(u.dataId).id,c=o.dataIdMap.get(p.dataId).id,h=n!=null?n:u.dtype,m=N.assertAndGetBroadcastShape(u.shape,p.shape),f=o.makeOutput(m,h);if(v.sizeFromShape(m)===0)return f;let g=new Uint8Array(new Int32Array(u.shape).buffer),y=new Uint8Array(new Int32Array(p.shape).buffer),b=o.dataIdMap.get(f.dataId).id;return a(d,g,u.shape.length,c,y,p.shape.length,Et[u.dtype],b),f}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var Hse=!0,jse=dn(gs,Hse),BE;function qse(e){BE=e.wasm.cwrap(fi,null,["array","number","number","number"])}function Kse(e){let{inputs:t,backend:n}=e,a=n.makeOutput(t[0].shape,t[0].dtype);if(v.sizeFromShape(a.shape)===0)return a;let r=t.map(o=>n.dataIdMap.get(o.dataId).id),s=new Uint8Array(new Int32Array(r).buffer),i=n.dataIdMap.get(a.dataId).id;return BE(s,r.length,Et[a.dtype],i),a}var Xse={kernelName:fi,backendName:"wasm",setupFunc:qse,kernelFunc:Kse};function Qf(e){let{inputs:{x:t},backend:n}=e;if(t.dtype==="string")return In(n.readSync(t.dataId),t.shape,t.dtype);let a=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(a).set(r),a}var Yse={kernelName:Ri,backendName:"wasm",kernelFunc:Qf},VE;function Zse(e){VE=e.wasm.cwrap(_r,null,["number","array","number","number","number","array","number"])}function hs(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=Qse(t.x.shape,a.perm),i=!0;for(let m=0;m=r&&(s===-1||a[s]>a[i])&&(s=i);a[s]=r}return[n,a]}var eie={kernelName:_r,backendName:"wasm",kernelFunc:hs,setupFunc:Zse};function Es(e,t,n){let a=e.shape,r=e.shape.length,s=v.parseAxisParam(t,a),i=s,o=N.getAxesPermutation(i,r),l=null,u=!1;if(o!=null){let p=new Array(r);for(let c=0;c`new shape: ${i}, old shape: ${a.shape}. New shape and old shape must have the same number of elements.`),e.backend.incRef(a.dataId),{dataId:a.dataId,shape:i,dtype:a.dtype}}var hie={kernelName:vu,backendName:"wasm",kernelFunc:Wn},qE;function mie(e){qE=e.wasm.cwrap(bi,null,["number","array","number","number","array","number","number","number","number"])}function fie(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let l=r.shape.length,u=s.shape.length,p=i?r.shape[l-2]:r.shape[l-1],d=o?s.shape[u-1]:s.shape[u-2],c=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[u-2]:s.shape[u-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=v.sizeFromShape(m),y=v.sizeFromShape(f),b=Ou.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);v.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,p,c]:[g,c,p],w=o?[y,h,d]:[y,d,h],I=Wn({inputs:{x:r},backend:n,attrs:{shape:x}}),T=Wn({inputs:{x:s},backend:n,attrs:{shape:w}}),C=n.dataIdMap.get(I.dataId).id,E=n.dataIdMap.get(T.dataId).id,$=i?I.shape[2]:I.shape[1],R=o?T.shape[1]:T.shape[2],F=Math.max(g,y),S=n.makeOutput([F,$,R],I.dtype),M=n.dataIdMap.get(S.dataId).id,B=new Uint8Array(new Int32Array(I.shape).buffer),U=new Uint8Array(new Int32Array(T.shape).buffer);return qE(C,B,I.shape.length,E,U,T.shape.length,i,o,M),n.disposeData(I.dataId),n.disposeData(T.dataId),S.shape=b,S}var gie={kernelName:bi,backendName:"wasm",setupFunc:mie,kernelFunc:fie};function hi(e){let{inputs:{x:t},attrs:{begin:n,size:a},backend:r}=e,[s,i]=jt.parseSliceParams(t,n,a),o=jt.isSliceContinous(t.shape,s,i),l=r.readSync(t.dataId),u=r.makeOutput(i,t.dtype),p=v.computeStrides(t.shape),d=r.dataIdMap.get(u.dataId);if(o){let m=jt.computeFlatOffset(s,p);return t.dtype==="string"?d.stringBytes=l.slice(m,m+v.sizeFromShape(i)):r.typedArrayFromHeap(u).set(l.subarray(m,m+v.sizeFromShape(i))),u}if(t.dtype==="string"){let m=Jh(l,s,i,t.shape,t.dtype);return d.stringBytes=m,u}let c=r.typedArrayFromHeap(u),h=t.shape.length;if(h===2)yie(l,p[0],c,s,i);else if(h===3)bie(l,p[0],p[1],c,s,i);else if(h===4)xie(l,p[0],p[1],p[2],c,s,i);else{let m=Jh(l,s,i,t.shape,t.dtype);c.set(m)}return u}function yie(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let u=i;uy*b),l=N.getReshaped(r.shape,s,o),u=N.getPermuted(l.length,s.length),p=N.getReshapedPermuted(r.shape,s,o),d=N.getSliceBeginCoords(i,s.length),c=N.getSliceSize(p,i,s.length),h=Wn({inputs:{x:r},backend:n,attrs:{shape:l}}),m=hs({inputs:{x:h},backend:n,attrs:{perm:u}}),f=Wn({inputs:{x:m},backend:n,attrs:{shape:p}}),g=hi({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeData(h.dataId),n.disposeData(m.dataId),n.disposeData(h.dataId),g}var kie={kernelName:Ul,backendName:"wasm",kernelFunc:wie};function ap(e){let{inputs:{x:t},attrs:{dtype:n},backend:a}=e,r=a.makeOutput(t.shape,n),s=a.typedArrayFromHeap(t);return a.typedArrayFromHeap(r).set(s),r}var Iie={kernelName:xi,backendName:"wasm",kernelFunc:ap},Sie=an(vi),KE;function Tie(e){KE=e.wasm.cwrap(ys,null,["number","number","number","number"])}function Nie(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o=n.dataIdMap.get(r.dataId).id,l=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(l.dataId).id;return KE(o,s,i,u),l}var Cie={kernelName:ys,backendName:"wasm",setupFunc:Tie,kernelFunc:Nie};function XE(e){let{inputs:t,backend:n}=e,a=v.parseAxisParam(e.attrs.axis,t[0].shape)[0],r=t.map(h=>h.shape);N.assertParamsConsistent(r,a);let s=N.computeOutShape(t.map(h=>h.shape),a),i=t.filter(h=>v.sizeFromShape(h.shape)>0);if(i.length===1)return Qf({inputs:{x:i[0]},backend:n});let o=n.makeOutput(s,t[0].dtype);if(v.sizeFromShape(s)===0)return o;if(i[0].dtype==="string"){let h=i.map(x=>{let w=[-1,v.sizeFromShape(x.shape.slice(a))];return Wn({inputs:{x},backend:n,attrs:{shape:w}})}),m=h.map(x=>({vals:n.readSync(x.dataId),shape:x.shape}));s=N.computeOutShape(h.map(x=>x.shape),1);let f=h[0].shape[0]===1,g=O0(m,s,t[0].dtype,f),y=N.computeOutShape(i.map(x=>x.shape),a);o.shape=y;let b=n.dataIdMap.get(o.dataId);return b.stringBytes=N.fromStringArrayToUint8(g),h.forEach(x=>n.disposeData(x.dataId)),o}let l=v.sizeFromShape(i[0].shape.slice(0,a)),u=0,p=i.map(h=>{let m=v.sizeFromShape(h.shape.slice(a));return u+=m,m}),d=i.map(h=>n.typedArrayFromHeap(h)),c=n.typedArrayFromHeap(o);for(let h=0;h`cumprod does not support ${r.dtype} tensors in the WASM backend`);let u=N.getAxesPermutation([s],l),p=r;u!==null&&(p=hs({inputs:{x:r},attrs:{perm:u},backend:n}));let d=N.getInnerMostAxes(1,l)[0];N.assertAxesAreInnerMostDims("cumprod",[d],l);let c=n.makeOutput(p.shape,p.dtype),h=p.shape[d],m=n.dataIdMap.get(p.dataId).id,f=n.dataIdMap.get(c.dataId).id;QE(m,i?1:0,o?1:0,h,f,Et[r.dtype]);let g=c;if(u!==null){let y=N.getUndoAxesPermutation(u);g=hs({inputs:{x:c},attrs:{perm:y},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Vie={kernelName:Hl,backendName:"wasm",setupFunc:Wie,kernelFunc:Bie},e$;function Uie(e){e$=e.wasm.cwrap(Ti,null,["number","number","number","number","number","number"])}function Gie(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a,l=r.shape.length;v.assert(r.dtype==="float32"||r.dtype==="int32",()=>`cumsum does not support ${r.dtype} tensors in the WASM backend`);let u=N.getAxesPermutation([s],l),p=r;u!==null&&(p=hs({inputs:{x:r},attrs:{perm:u},backend:n}));let d=N.getInnerMostAxes(1,l)[0];N.assertAxesAreInnerMostDims("cumsum",[d],l);let c=n.makeOutput(p.shape,p.dtype),h=p.shape[d],m=n.dataIdMap.get(p.dataId).id,f=n.dataIdMap.get(c.dataId).id;e$(m,i?1:0,o?1:0,h,f,Et[r.dtype]);let g=c;if(u!==null){let y=N.getUndoAxesPermutation(u);g=hs({inputs:{x:c},attrs:{perm:y},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Hie={kernelName:Ti,backendName:"wasm",setupFunc:Uie,kernelFunc:Gie},t$;function jie(e){t$=e.wasm.cwrap(ql,null,["number","number","number","array","number","array","array","number","number"])}function qie(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{blockSize:s,dataFormat:i}=a,o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],u=i==="NHWC"?r.shape[2]:r.shape[3],p=i==="NHWC"?r.shape[3]:r.shape[1],d=l*s,c=u*s,h=p/(s*s),m=i==="NHWC"?[o,d,c,h]:[o,h,d,c],f=t.makeOutput(m,"float32"),g=t.dataIdMap.get(r.dataId).id,y=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),b=new Uint8Array(new Int32Array(m).buffer),x=new Uint8Array(new Int32Array(v.computeStrides(m)).buffer),w=t.dataIdMap.get(f.dataId).id;return t$(g,s,i==="NHWC"?1:0,y,r.shape.length-1,b,x,m.length,w),f}var Kie={kernelName:ql,backendName:"wasm",setupFunc:jie,kernelFunc:qie},n$;function Xie(e){n$=e.wasm.cwrap(Ni,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Yie(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s}=t,i=a.dataIdMap.get(r.dataId).id,o=a.dataIdMap.get(s.dataId).id,{strides:l,dilations:u,pad:p,dimRoundingMode:d}=n,c=u==null?[1,1]:u,h=N.computeConv2DInfo(r.shape,s.shape,l,c,p,d,!0),m=h.filterHeight,f=h.filterWidth,g=h.padInfo.top,y=h.padInfo.right,b=h.padInfo.bottom,x=h.padInfo.left,w=h.dilationHeight,I=h.dilationWidth,T=h.strideHeight,C=h.strideWidth,E=h.inChannels,$=h.outChannels,R=h.padInfo.type==="SAME"?1:0;if(h.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${h.dataFormat}'. Please use 'channelsLast'.`);let F=a.makeOutput(h.outShape,"float32"),S=a.dataIdMap.get(F.dataId).id;return n$(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,y,b,x,R,w,I,T,C,E,$,S),F}var Zie={kernelName:Ni,backendName:"wasm",setupFunc:Xie,kernelFunc:Yie},Jie=an(_i),Qie=!1,eoe=dn(Xl,Qie,"bool"),toe=an(Ei,"float32");function kx(e){let{inputs:t,attrs:n,backend:a}=e,{input:r}=t,{dim:s}=n,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(v.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),Wn({inputs:{x:r},backend:a,attrs:{shape:o}})}var noe={kernelName:Yl,backendName:"wasm",kernelFunc:kx};function a$(e){let{attrs:{shape:t,value:n,dtype:a},backend:r}=e,s=r.makeOutput(t,a);return r.typedArrayFromHeap(s).fill(n),s}var aoe={kernelName:gc,backendName:"wasm",kernelFunc:a$},r$;function roe(e){r$=e.wasm.cwrap(Jl,null,["number","number","number","number","number","number"])}function soe(e){let{inputs:t,backend:n}=e,{image:a}=t,r=n.makeOutput(a.shape,a.dtype),s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,[o,l,u,p]=a.shape;return r$(s,o,l,u,p,i),r}var ioe={kernelName:Jl,backendName:"wasm",kernelFunc:soe,setupFunc:roe},ooe=an($i),loe=!1,uoe=dn(Ai,loe),s$;function poe(e){s$=e.wasm.cwrap(Fi,null,["number","number","number","number","number","number","number"])}function coe(e){let{backend:t,inputs:n,attrs:a}=e,{varianceEpsilon:r}=a,{x:s,mean:i,variance:o,offset:l,scale:u}=n,p=t.dataIdMap.get(s.dataId).id,d=t.dataIdMap.get(i.dataId).id,c=t.dataIdMap.get(o.dataId).id,h=l!=null?t.dataIdMap.get(l.dataId).id:0,m=u!=null?t.dataIdMap.get(u.dataId).id:0,f=t.makeOutput(s.shape,s.dtype);if(v.sizeFromShape(s.shape)===0)return f;let g=t.dataIdMap.get(f.dataId).id;return s$(p,d,c,h,m,r,g),f}var doe={kernelName:Fi,backendName:"wasm",setupFunc:poe,kernelFunc:coe},i$;function hoe(e){i$=e.wasm.cwrap(ei,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function moe(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dataFormat:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=n,f=N.computeConv2DInfo(r.shape,s.shape,l,p,u,c),g=uc[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,x=f.outChannels,w=0;if(i!=null){let te=a.dataIdMap.get(i.dataId);if(te.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${te.shape.length}.`);if(te.shape[0]!==x)throw new Error(`FusedConv2D bias shape (${te.shape}) does not match the number of output channels (${x})`);w=te.id}let I=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,E=f.padInfo.right,$=f.padInfo.bottom,R=f.padInfo.left,F=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,G=f.padInfo.type==="SAME"?1:0,q=f.batchSize,K=f.inHeight,Z=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let J=a.makeOutput(f.outShape,"float32"),ee=a.dataIdMap.get(J.dataId).id,ae=o==null?0:a.dataIdMap.get(o.dataId).id;return i$(y,q,K,Z,b,I,T,w,C,E,$,R,G,F,S,M,B,U,x,g,ae,m||0,ee),J}var foe={kernelName:ei,backendName:"wasm",setupFunc:hoe,kernelFunc:moe},o$;function goe(e){o$=e.wasm.cwrap(ti,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function yoe(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dataFormat:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=n,f=N.computeConv2DInfo(r.shape,s.shape,l,p,u,c,!0),g=uc[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,x=f.outChannels,w=0;if(i!=null){let te=a.dataIdMap.get(i.dataId);if(te.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${te.shape.length}.`);if(te.shape[0]!==x)throw new Error(`FusedDepthwiseConv2D bias shape (${te.shape}) does not match the number of output channels (${x})`);w=te.id}let I=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,E=f.padInfo.right,$=f.padInfo.bottom,R=f.padInfo.left,F=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,G=f.padInfo.type==="SAME"?1:0,q=f.batchSize,K=f.inHeight,Z=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let J=a.makeOutput(f.outShape,"float32"),ee=a.dataIdMap.get(J.dataId).id,ae=o==null?0:a.dataIdMap.get(o.dataId).id;return o$(y,q,K,Z,b,I,T,w,C,E,$,R,G,F,S,M,B,U,x,g,ae,m||0,ee),J}var boe={kernelName:ti,backendName:"wasm",setupFunc:goe,kernelFunc:yoe},l$;function xoe(e){l$=e.wasm.cwrap(eu,null,["number","number","number","number","number","number","array","number"])}function voe(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=Ux.prepareAndValidate(a,r),u=t.makeOutput(s,a.dtype);if(i===0)return u;let p=r.shape,d=p[p.length-1],c=t.dataIdMap.get(a.dataId).id,h=t.dataIdMap.get(r.dataId).id,m=new Uint8Array(new Int32Array(l).buffer),f=t.dataIdMap.get(u.dataId).id;return l$(c,Et[a.dtype],h,i,d,o,m,f),u}var woe={kernelName:eu,backendName:"wasm",setupFunc:xoe,kernelFunc:voe},u$;function koe(e){u$=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function Ioe(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,indices:s}=n,{axis:i,batchDims:o}=a,l=v.parseAxisParam(i,r.shape)[0],u=t.readSync(s.dataId),p=r.shape[l];for(let C=0;C=0,()=>`GatherV2: the index value ${E} is not in [0, ${p-1}]`)}let d=N.segment_util.collectGatherOpShapeInfo(r,s,l,o),c=Wn({inputs:{x:r},attrs:{shape:[d.batchSize,d.outerSize,d.dimSize,d.sliceSize]},backend:t}),h=v.sizeFromShape(s.shape),m=Wn({inputs:{x:s},attrs:{shape:[d.batchSize,h/d.batchSize]},backend:t}),f=[d.batchSize,d.outerSize,h/d.batchSize,d.sliceSize],g=t.makeOutput(f,r.dtype);if(v.sizeFromShape(r.shape)===0)return g;let y=c.shape.length-1,b=t.dataIdMap.get(c.dataId).id,x=t.dataIdMap.get(m.dataId).id,w=t.dataIdMap.get(g.dataId).id,I=new Uint8Array(new Int32Array(v.computeStrides(c.shape)).buffer),T=new Uint8Array(new Int32Array(v.computeStrides(f)).buffer);return u$(b,Et[r.dtype],I,y,x,d.batchSize,T,w),t.disposeData(c.dataId),t.disposeData(m.dataId),g.shape=d.outputShape,g}var Soe={kernelName:Ql,backendName:"wasm",setupFunc:koe,kernelFunc:Ioe},Toe=!1,Noe=dn(tu,Toe,"bool"),Coe=!1,_oe=dn(Di,Coe,"bool"),p$;function Eoe(e){p$=e.wasm.cwrap(Mi,null,["number","number","number","number"])}function $oe(e){let{inputs:{x:t},attrs:{alpha:n},backend:a}=e,r=a.dataIdMap.get(t.dataId).id,s=a.makeOutput(t.shape,"float32");if(v.sizeFromShape(t.shape)!==0){let i=a.dataIdMap.get(s.dataId).id;p$(r,Et[t.dtype],n,i)}return s}var Aoe={kernelName:Mi,backendName:"wasm",setupFunc:Eoe,kernelFunc:$oe},Foe=!1,Doe=dn(su,Foe,"bool"),Roe=!1,Moe=dn(iu,Roe,"bool"),Poe=an(Pi),Ooe=!1,Loe=dn(lu,Ooe,"bool"),zoe=an(uu),Woe=!1,Boe=dn(pu,Woe,"bool"),Voe=!1,Uoe=dn(nS,Voe,"bool"),c$;function Goe(e){c$=e.wasm.cwrap(Oi,null,["number","number","number","number"])}function Hoe(e){let{backend:t,inputs:n,attrs:a}=e,{reductionIndices:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:c}=Es(i,r,t);if(c){let b=t.dataIdMap.get(u.dataId).id;l=u,o=b}let h=l.shape.length;N.assertAxesAreInnerMostDims("max",p,h);let[m,f]=N.computeOutAndReduceShapes(l.shape,p),g=v.sizeFromShape(f),y=t.makeOutput(m,i.dtype);if(v.sizeFromShape(l.shape)!==0){let b=t.dataIdMap.get(y.dataId).id;c$(o,Et[i.dtype],g,b)}if(c&&t.disposeData(u.dataId),s){let b=N.expandShapeToKeepDim(y.shape,d);y.shape=b}return y}var joe={kernelName:Oi,backendName:"wasm",setupFunc:Goe,kernelFunc:Hoe},qoe=!1,Koe=dn(Li,qoe),d$;function Xoe(e){d$=e.wasm.cwrap(zi,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Yoe(e){let{inputs:t,attrs:n,backend:a}=e,r=t.x,s=a.dataIdMap.get(r.dataId).id;v.assert(r.dtype==="float32",()=>`Error in MaxPool: only float32 input is supported. Got ${r.dtype}.`);let{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=n,p=N.computePool2DInfo(r.shape,i,o,1,l,u),d=p.filterHeight,c=p.filterWidth,h=p.padInfo.top,m=p.padInfo.right,f=p.padInfo.bottom,g=p.padInfo.left,y=p.dilationHeight,b=p.dilationWidth,x=p.strideHeight,w=p.strideWidth,I=p.inChannels,T=p.outChannels;if(p.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${p.dataFormat}'. Please use 'channelsLast'.`);let C=a.makeOutput(p.outShape,"float32"),E=a.dataIdMap.get(C.dataId).id;return d$(s,r.shape[0],r.shape[1],r.shape[2],d,c,h,m,f,g,y,b,x,w,I,T,E),C}var Zoe={kernelName:zi,backendName:"wasm",setupFunc:Xoe,kernelFunc:Yoe},h$;function Joe(e){h$=e.wasm.cwrap(Wi,null,["number, number, number"])}function Qoe(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Es(i,r,t),m=d;if(h){let w=t.dataIdMap.get(p.dataId).id;w!==o&&(u=p,l=w,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("mean",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),y=v.sizeFromShape(g),b=u;u.dtype!=="float32"&&(b=ap({backend:t,inputs:{x:u},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(b.dataId).id);let x=t.makeOutput(f,"float32");if(v.sizeFromShape(u.shape)!==0){let w=t.dataIdMap.get(x.dataId).id;h$(l,y,w)}if(h&&t.disposeData(p.dataId),s){let w=N.expandShapeToKeepDim(x.shape,c);x.shape=w}return u.dtype!=="float32"&&t.disposeData(b.dataId),x}var ele={kernelName:Wi,backendName:"wasm",setupFunc:Joe,kernelFunc:Qoe},m$;function tle(e){m$=e.wasm.cwrap(Bi,null,["number","number","number","number"])}function nle(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Es(i,r,t);if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x)}let m=u.shape.length;N.assertAxesAreInnerMostDims("min",d,m);let[f,g]=N.computeOutAndReduceShapes(u.shape,d),y=v.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;m$(l,Et[i.dtype],y,x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(b.shape,c);b.shape=x}return b}var ale={kernelName:Bi,backendName:"wasm",setupFunc:tle,kernelFunc:nle},rle=!1,sle=dn(Vi,rle),Ix;(function(e){e[e.reflect=0]="reflect",e[e.symmetric=1]="symmetric"})(Ix||(Ix={}));var f$;function ile(e){f$=e.wasm.cwrap(Ui,null,["number","array","number","number","array","array","number","number"])}function ole(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,mode:r}}=e,s=a.map((m,f)=>m[0]+t.shape[f]+m[1]),i=n.dataIdMap.get(t.dataId).id,o=n.makeOutput(s,t.dtype),l=n.dataIdMap.get(o.dataId).id,u=new Uint8Array(new Int32Array(t.shape).buffer),p=a.map(m=>m[0]),d=a.map(m=>m[1]),c=new Uint8Array(new Int32Array(p).buffer),h=new Uint8Array(new Int32Array(d).buffer);return f$(i,u,t.shape.length,Et[t.dtype],c,h,Ix[r],l),o}var lle={kernelName:Ui,backendName:"wasm",kernelFunc:ole,setupFunc:ile},ule=!0,ple=dn(Gi,ule),cle=an(du);function u1(e,t){let n=new Int32Array(e.wasm.HEAPU8.buffer,t,4),a=n[0],r=n[1],s=n[2],i=n[3];return e.wasm._free(t),{pSelectedIndices:a,selectedSize:r,pSelectedScores:s,pValidOutputs:i}}var g$;function dle(e){g$=e.wasm.cwrap(mu,"number",["number","number","number","number","number"])}function hle(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i}=a,{boxes:o,scores:l}=n,u=t.dataIdMap.get(o.dataId).id,p=t.dataIdMap.get(l.dataId).id,d=g$(u,p,s,r,i),{pSelectedIndices:c,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=u1(t,d);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",c)}var mle={kernelName:mu,backendName:"wasm",setupFunc:dle,kernelFunc:hle},y$;function fle(e){y$=e.wasm.cwrap(fu,"number",["number","number","number","number","number","bool"])}function gle(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:o}=a,{boxes:l,scores:u}=n,p=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,c=y$(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=u1(t,c);t.wasm._free(f);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([],"int32",g);return[y,b]}var yle={kernelName:fu,backendName:"wasm",setupFunc:fle,kernelFunc:gle},b$;function ble(e){b$=e.wasm.cwrap(gu,"number",["number","number","number","number","number","number"])}function xle(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,softNmsSigma:o}=a,{boxes:l,scores:u}=n,p=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,c=b$(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=u1(t,c);t.wasm._free(g);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([m],"float32",f);return[y,b]}var vle={kernelName:gu,backendName:"wasm",setupFunc:ble,kernelFunc:xle},wle=!1,kle=dn(hu,wle,"bool"),x$;function Ile(e){x$=e.wasm.cwrap(Hi,null,["number","number","number","number","number"])}function Sle(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=n.makeOutput([...r.shape,i],s),p=n.dataIdMap.get(u.dataId).id,d=n.dataIdMap.get(r.dataId).id;return x$(d,i,o,l,p),u}var Tle={kernelName:Hi,backendName:"wasm",setupFunc:Ile,kernelFunc:Sle};function Nle(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var Cle={kernelName:yu,backendName:"wasm",kernelFunc:Nle};function _le(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return kx({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(p=>{v.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),v.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=kx({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=XE({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeData(p.dataId)),u}var Ele={kernelName:bu,backendName:"wasm",kernelFunc:_le},v$;function $le(e){v$=e.wasm.cwrap(ji,null,["number","array","number","number","array","array","number","number"])}function Ale(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,constantValue:r}}=e,s=a.map((m,f)=>m[0]+t.shape[f]+m[1]);if(v.sizeFromShape(t.shape)===0)return a$({backend:n,attrs:{shape:s,value:r,dtype:t.dtype}});let i=n.dataIdMap.get(t.dataId).id,o=n.makeOutput(s,t.dtype),l=n.dataIdMap.get(o.dataId).id,u=new Uint8Array(new Int32Array(t.shape).buffer),p=a.map(m=>m[0]),d=a.map(m=>m[1]),c=new Uint8Array(new Int32Array(p).buffer),h=new Uint8Array(new Int32Array(d).buffer);return v$(i,u,t.shape.length,Et[t.dtype],c,h,r,l),o}var w$={kernelName:ji,backendName:"wasm",kernelFunc:Ale,setupFunc:$le},Fle=!1,Dle=dn(qi,Fle),k$;function Rle(e){k$=e.wasm.cwrap(Ki,null,["number","number","number"])}function Mle(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,o=s,l=a,u=l;l.dtype!=="float32"&&(u=ap({backend:n,inputs:{x:a},attrs:{dtype:"float32"}}),o=n.dataIdMap.get(u.dataId).id);let p=n.makeOutput(a.shape,"float32"),d=n.dataIdMap.get(p.dataId).id;return k$(o,i,d),l.dtype!=="float32"&&n.disposeData(u.dataId),p}var Ple={kernelName:Ki,backendName:"wasm",setupFunc:Rle,kernelFunc:Mle},I$;function Ole(e){I$=e.wasm.cwrap(Xi,null,["number","number","number","number"])}function Lle(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Es(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("prod",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),y=v.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;I$(l,y,Et[b.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(b.shape,c);b.shape=x}return b}var zle={kernelName:Xi,backendName:"wasm",setupFunc:Ole,kernelFunc:Lle},Wle=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=W0(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},Ble={kernelName:xc,backendName:"wasm",kernelFunc:Wle},Vle=!0,Ule=dn(Ci,Vle),Gle=an(Yi),Hle=an(Qi),S$;function jle(e){S$=e.wasm.cwrap(Ji,null,["number","number","number","number","number","number","number","number","number","number"])}function qle(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[p,d,c,h]=r.shape,m=[p,l,u,h],f=t.dataIdMap.get(r.dataId),g;f.dtype!=="float32"&&(g=ap({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let y=f.id,b=t.makeOutput(m,"float32");if(v.sizeFromShape(r.shape)===0)return b;let x=t.dataIdMap.get(b.dataId).id;return S$(y,p,d,c,h,l,u,s?1:0,i?1:0,x),g!=null&&t.disposeData(g.dataId),b}var Kle={kernelName:Ji,backendName:"wasm",setupFunc:jle,kernelFunc:qle},T$;function Xle(e){T$=e.wasm.cwrap(Zi,null,["number","number","number","number","number","number","number","number","number","number"])}function Yle(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[p,d,c,h]=r.shape,m=[p,l,u,h],f=t.makeOutput(m,"float32");if(v.sizeFromShape(r.shape)===0)return f;let g=t.dataIdMap.get(r.dataId),y;g.dtype!=="float32"&&(y=ap({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(y.dataId));let b=g.id,x=t.dataIdMap.get(f.dataId).id;return T$(b,p,d,c,h,l,u,s?1:0,i?1:0,x),y!=null&&t.disposeData(y.dataId),f}var Zle={kernelName:Zi,backendName:"wasm",setupFunc:Xle,kernelFunc:Yle},N$;function Jle(e){N$=e.wasm.cwrap(eo,null,["number","array","number","array","number","number"])}function Qle(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=v.parseAxisParam(s,r.shape);if(r.shape.length===0)return Qf({inputs:{x:r},backend:n});let o=n.makeOutput(r.shape,r.dtype),l=n.dataIdMap.get(r.dataId).id,u=n.dataIdMap.get(o.dataId).id,p=new Uint8Array(new Int32Array(i).buffer),d=new Uint8Array(new Int32Array(r.shape).buffer);N$(l,p,i.length,d,r.shape.length,u);let c=Wn({inputs:{x:o},attrs:{shape:r.shape},backend:n});return n.disposeData(o.dataId),c}var eue={kernelName:eo,backendName:"wasm",kernelFunc:Qle,setupFunc:Jle},C$;function tue(e){C$=e.wasm.cwrap(Pu,null,["number","number","number","number","number","number","number","number","array","number","number"])}function nue(e){let{inputs:t,backend:n,attrs:a}=e,{image:r}=t,{radians:s,fillValue:i,center:o}=a,l=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(r.dataId).id,p=n.dataIdMap.get(l.dataId).id,[d,c,h,m]=r.shape,[f,g]=N.getImageCenter(o,c,h),y=i===0,b=255,x=typeof i=="number"?[i,i,i,y?0:b]:[...i,b],w=new Uint8Array(new Int32Array(x).buffer);return C$(u,d,c,h,m,s,f,g,w,x.length,p),l}var aue={kernelName:Pu,backendName:"wasm",kernelFunc:nue,setupFunc:tue},rue=an(to),sue=an(no),_$;function iue(e){_$=e.wasm.cwrap(wu,null,["number","number","number","number","number","number","array","number","number"])}function oue(e){let{backend:t,inputs:n,attrs:a}=e,{indices:r,updates:s}=n,{shape:i}=a,o=t.makeOutput(i,s.dtype);if(v.sizeFromShape(i)===0)return o;let{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=Gx.calculateShapes(s,r,i),h=t.dataIdMap.get(r.dataId).id,m=t.dataIdMap.get(s.dataId).id,f=new Uint8Array(new Int32Array(d).buffer),g=t.dataIdMap.get(o.dataId).id;return _$(h,m,Et[s.dtype],l,u,p,f,c,g),o}var lue={kernelName:wu,backendName:"wasm",setupFunc:iue,kernelFunc:oue},E$;function uue(e){E$=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function pue(e){let{inputs:t,backend:n}=e,{condition:a,t:r,e:s}=t,i=n.dataIdMap.get(a.dataId).id,o=n.dataIdMap.get(r.dataId).id,l=n.dataIdMap.get(s.dataId).id,u=n.makeOutput(r.shape,r.dtype),p=n.dataIdMap.get(u.dataId).id,d=a.shape.length,c=r.shape.length,h=d===0||d>1||c===1?1:v.sizeFromShape(r.shape.slice(1));return E$(i,o,l,h,p),u}var cue={kernelName:ku,backendName:"wasm",kernelFunc:pue,setupFunc:uue},$$;function due(e){$$=e.wasm.cwrap(ro,null,["number","number"])}function hue(e){let{backend:t,inputs:{x:n}}=e,a=t.dataIdMap.get(n.dataId).id,r=t.makeOutput(n.shape,n.dtype),s=t.dataIdMap.get(r.dataId).id;return v.sizeFromShape(r.shape)===0||$$(a,s),r}var mue={kernelName:"Sigmoid",backendName:"wasm",setupFunc:due,kernelFunc:hue},fue=an(ao),A$;function gue(e){A$=e.wasm.cwrap(oo,null,["number","number","number","number"])}function yue(e){let{backend:t,inputs:{logits:n},attrs:{dim:a}}=e,r=t.dataIdMap.get(n.dataId).id,s=t.makeOutput(n.shape,n.dtype),i=t.dataIdMap.get(s.dataId).id,o=n.shape[a],l=v.sizeFromShape(n.shape)/o;return v.sizeFromShape(s.shape)===0||A$(r,i,o,l),s}var bue={kernelName:oo,backendName:"wasm",setupFunc:gue,kernelFunc:yue};function xue(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a,o=v.sizeFromShape(s),l=[[0,0]];l.push(...i);for(let g=1+s.length;g0?l+1:0;if(u<0)throw new Error(N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let p=r.shape.slice();p[0]=u;let d=n.dataIdMap.get(r.dataId).id,c=n.dataIdMap.get(s.dataId).id,h=n.dataIdMap.get(i.dataId).id,m=n.makeOutput(p,r.dtype),f=n.dataIdMap.get(m.dataId).id,g=n.makeOutput([4],"int32"),y=n.dataIdMap.get(g.dataId).id;RA(d,Et[r.dtype],r.shape[0],c,h,f,y,t,0);let b=n.readSync(g.dataId),x;switch(b[0]){case 0:{x=N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{x=N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:x=N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b[1],b[2]);break;case 3:x=N.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(b[1],b[2],b[3]);break;default:x=""}if(n.disposeData(g.dataId),x)throw n.disposeData(m.dataId),new Error(x);return m}function Cue(e){return PA(e,!0)}var _ue={kernelName:wc,backendName:"wasm",setupFunc:MA,kernelFunc:Cue};function Eue(e){return PA(e,!1)}var Aue={kernelName:kc,backendName:"wasm",setupFunc:MA,kernelFunc:Eue};function $ue(e){let{inputs:t,attrs:n,backend:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=n,o=v.parseAxisParam(i,r.shape)[0],l=N.prepareSplitSize(r,s,o),u=new Array(r.shape.length).fill(0),p=r.shape.slice();return l.map(d=>{let c=[...p];c[o]=d;let h=hi({inputs:{x:r},attrs:{begin:u,size:c},backend:a});return u[o]+=d,h})}var Fue={kernelName:Eu,backendName:"wasm",kernelFunc:$ue},Due=an(so),Rue=an(Ic),Mue=!0,Pue=dn(lo,Mue),OA;function Oue(e){OA=e.wasm.cwrap(xs,null,["number","number","number","number"])}function Lue(e){let{backend:t,inputs:n,attrs:a}=e,{alpha:r}=a,{x:s}=n,i=t.dataIdMap.get(s.dataId).id,o=t.makeOutput(s.shape,s.dtype),l=t.dataIdMap.get(o.dataId).id;return OA(i,r,Et[s.dtype],l),o}var zue={kernelName:xs,backendName:"wasm",setupFunc:Oue,kernelFunc:Lue},LA;function Wue(e){LA=e.wasm.cwrap($u,null,["number","array","number","array","array","array","array","array","number","number"])}function Bue(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a,{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:y,begin:b,end:x,strides:w}=jt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=Wn({inputs:{x:r},backend:t,attrs:{shape:m}});else if(g||y){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=jt.computeOutShape(b,x,w),C=hi({inputs:{x:r},backend:t,attrs:{begin:b,size:T}});I=Wn({inputs:{x:C},backend:t,attrs:{shape:m}}),t.disposeData(C.dataId)}else{let T=t.makeOutput(h,"float32"),C=t.dataIdMap.get(r.dataId).id,E=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),A=new Uint8Array(new Int32Array(b).buffer),R=new Uint8Array(new Int32Array(x).buffer),F=new Uint8Array(new Int32Array(w).buffer),S=new Uint8Array(new Int32Array(h).buffer),M=new Uint8Array(new Int32Array(v.computeStrides(h)).buffer),B=t.dataIdMap.get(T.dataId).id;LA(C,E,r.shape.length,A,R,F,S,M,h.length,B),I=Wn({inputs:{x:T},backend:t,attrs:{shape:m}}),t.disposeData(T.dataId)}return I}var Vue={kernelName:$u,backendName:"wasm",setupFunc:Wue,kernelFunc:Bue};function Uue(e){let{backend:t,inputs:n,attrs:a}=e,{data:r,dataSplits:s}=n,{separator:i,nGramWidths:o,leftPad:l,rightPad:u,padWidth:p,preserveShortSequences:d}=a,c=t.readSync(r.dataId),h=t.readSync(s.dataId),[m,f]=V0(c,h,i,o,l,u,p,d),g=t.makeOutput([m.length],"string"),y=t.dataIdMap.get(g.dataId);y.stringBytes=m;let b=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(b).set(f),[g,b]}var Gue={kernelName:Sc,backendName:"wasm",kernelFunc:Uue};function Hue(e){let{backend:t,inputs:n,attrs:a}=e,{input:r,delimiter:s}=n,{skipEmpty:i}=a,o=t.readSync(r.dataId),l=t.readSync(s.dataId),[u,p,d]=U0(o,l[0],i),c=p.length,h=t.makeOutput([c,2],"int32");t.typedArrayFromHeap(h).set(u);let m=t.makeOutput([c],"string"),f=t.dataIdMap.get(m.dataId);f.stringBytes=p;let g=t.makeOutput([2],"int32");return t.typedArrayFromHeap(g).set(d),[h,m,g]}var jue={kernelName:Tc,backendName:"wasm",kernelFunc:Hue};function que(e){let{backend:t,inputs:n,attrs:a}=e,{input:r}=n,{numBuckets:s}=a,i=t.readSync(r.dataId),o=G0(i,s),l=t.makeOutput(r.shape,"int32");return t.typedArrayFromHeap(l).set(o),l}var Kue={kernelName:Nc,backendName:"wasm",kernelFunc:que},Xue=!0,Yue=dn(uo,Xue),zA;function Zue(e){zA=e.wasm.cwrap(io,null,["number","number","number","number"])}function Jue(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Es(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("sum",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),y=v.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;zA(l,y,Et[b.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(b.shape,c);b.shape=x}return b}var Que={kernelName:io,backendName:"wasm",setupFunc:Zue,kernelFunc:Jue},epe=an(po),tpe=an(co),WA;function npe(e){WA=e.wasm.cwrap(bs,null,["number","array","number","array","number","number"])}function ape(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,s=n.dataIdMap.get(r.dataId).id,{reps:i}=a,o=new Array(r.shape.length);for(let c=0;c{let{x:a}=e,{k:r,sorted:s}=n,i=t.dataIdMap.get(a.dataId).id,o=new Uint8Array(new Int32Array(a.shape).buffer),l=a.shape.slice();l[l.length-1]=r;let u=t.makeOutput(l,a.dtype),p=t.dataIdMap.get(u.dataId).id,d=t.makeOutput(l,"int32"),c=t.dataIdMap.get(d.dataId).id;return BA(i,o,a.shape.length,Et[a.dtype],r,s,p,c),[u,d]},ope={kernelName:Fu,backendName:"wasm",setupFunc:spe,kernelFunc:ipe},VA;function lpe(e){VA=e.wasm.cwrap(Du,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function upe(e){let{backend:t,inputs:n,attrs:a}=e,{image:r,transforms:s}=n,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],y=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),b=new Uint8Array(new Int32Array(v.computeStrides(g)).buffer),x=t.makeOutput(g,r.dtype),w=t.dataIdMap.get(x.dataId).id,I=t.dataIdMap.get(r.dataId).id,T=t.dataIdMap.get(s.dataId).id,C=i==="nearest"?1:2,E;switch(o){case"constant":E=1;break;case"reflect":E=2;break;case"wrap":E=3;break;case"nearest":E=4;break;default:E=1;break}return VA(I,T,s.shape[0]>1,p,m,f,h,c,d,y,r.shape.length-1,b,g.length-1,C,E,l,w),x}var ppe={kernelName:Du,backendName:"wasm",setupFunc:lpe,kernelFunc:upe};function cpe(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r.shape[s],o=r.shape.length,l=new Array(o-1),u=0;for(let h=0;h({dataId:h,dtype:m,shape:l}))}var dpe={kernelName:Ru,backendName:"wasm",kernelFunc:cpe};function hpe(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var mpe={kernelName:Mu,backendName:"wasm",kernelFunc:hpe},fpe=[Use,Gse,jse,Xse,aie,iie,uie,die,gie,kie,Iie,Sie,Cie,_ie,$ie,Rie,Mie,Pie,zie,Vie,Hie,Kie,Zie,Jie,eoe,toe,noe,aoe,ioe,ooe,uoe,doe,foe,boe,woe,Soe,Noe,_oe,Yse,$oe,Doe,Moe,Poe,Loe,zoe,Boe,Uoe,joe,Koe,Zoe,ele,ale,sle,lle,ple,cle,mle,yle,vle,kle,Tle,Cle,Ele,wA,Dle,Ple,zle,Ble,Ule,Gle,Hle,hie,Kle,Zle,eue,aue,rue,sue,lue,cue,mue,fue,vie,bue,vue,Iue,Nue,_ue,Aue,Fue,Due,Rue,Pue,zue,Vue,Gue,jue,Kue,Yue,Que,epe,tpe,rpe,ope,ppe,eie,dpe,mpe];for(let e of fpe)_c(e);var Sx=H();Sx.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]))}catch(e){return!1}});Sx.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(Sx.get("IS_NODE"))return!1;try{return new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch(e){return!1}});var PI=ms(MF()),gpe=ms(PF()),OI=ms(OF()),LI=PI.default||PI,ype=OI.default||OI,UA=class extends pc{constructor(e){super(),this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(GA),Tx=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new om(this,_a())}write(e,t,n){let a={id:this.dataIdNextNumber++};return this.move(a,e,t,n,1),a}numDataIds(){return this.dataIdMap.numDataIds()}async time(e){let t=v.now();return e(),{kernelMs:v.now()-t}}move(e,t,n,a,r){let s=this.dataIdNextNumber++;if(a==="string"){let u=t;this.dataIdMap.set(e,{id:s,stringBytes:u,shape:n,dtype:a,memoryOffset:null,refCount:r});return}let i=v.sizeFromShape(n),o=i*v.bytesPerElement(a),l=this.wasm._malloc(o);this.dataIdMap.set(e,{id:s,memoryOffset:l,shape:n,dtype:a,refCount:r}),this.wasm.tfjs.registerTensor(s,i,l),t!=null&&this.wasm.HEAPU8.set(new Uint8Array(t.buffer,t.byteOffset,o),l)}async read(e){return this.readSync(e)}readSync(e,t,n){let{memoryOffset:a,dtype:r,shape:s,stringBytes:i}=this.dataIdMap.get(e);if(r==="string")return(t==null||t===0)&&(n==null||n>=i.length)?i:i.slice(t,n);t=t||0,n=n||v.sizeFromShape(s);let o=v.bytesPerElement(r),l=this.wasm.HEAPU8.slice(a+t*o,a+n*o);return vpe(l.buffer,r)}disposeData(e,t=!1){if(this.dataIdMap.has(e)){let n=this.dataIdMap.get(e);if(n.refCount--,!t&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(e)}return!0}refCount(e){return this.dataIdMap.has(e)?this.dataIdMap.get(e).refCount:0}incRef(e){let t=this.dataIdMap.get(e);t!=null&&t.refCount++}floatPrecision(){return 32}getMemoryOffset(e){return this.dataIdMap.get(e).memoryOffset}dispose(){this.wasm.tfjs.dispose(),"PThread"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,n){let a;if(n==null)a=this.write(null,e,t);else{let r=this.dataIdNextNumber++;a={id:r},this.dataIdMap.set(a,{id:r,memoryOffset:n,shape:e,dtype:t,refCount:1});let s=v.sizeFromShape(e);this.wasm.tfjs.registerTensor(r,s,n)}return{dataId:a,shape:e,dtype:t}}typedArrayFromHeap({shape:e,dtype:t,dataId:n}){let a=this.wasm.HEAPU8.buffer,{memoryOffset:r}=this.dataIdMap.get(n),s=v.sizeFromShape(e);switch(t){case"float32":return new Float32Array(a,r,s);case"int32":return new Int32Array(a,r,s);case"bool":return new Uint8Array(a,r,s);default:throw new Error(`Unknown dtype ${t}`)}}};function bpe(e){return(t,n)=>(v.fetch(e,{credentials:"same-origin"}).then(a=>{a.ok||t.env.a(`failed to load wasm binary file at '${e}'`),a.arrayBuffer().then(r=>{WebAssembly.instantiate(r,t).then(s=>{n(s.instance,s.module)})})}),{})}function zI(e,t,n){if(sm!=null)return sm;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),jp!=null&&jp[a]!=null?jp[a]:n+a}async function xpe(){let[e,t]=await Promise.all([H().getAsync("WASM_HAS_SIMD_SUPPORT"),H().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(o,l)=>{if(o.endsWith(".worker.js")){let u=gpe.wasmWorkerContents.replace(/\n/g,"\\n"),p=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(p)}return o.endsWith(".wasm")?zI(e,t,Up!=null?Up:l):l+o},p1&&(r.instantiateWasm=bpe(zI(e,t,Up!=null?Up:"")));let s=!1;r.onAbort=()=>{s||qp||(qp=!0,a({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"}))};let i;t&&e&&sm==null?(r.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+LI.toString()],{type:"text/javascript"}),i=LI(r)):i=ype(r),i.then(o=>{s=!0,qp=!1;let l=null;o.tfjs={init:o.cwrap("init",null,[]),initWithThreadsCount:o.cwrap("init_with_threads_count",null,["number"]),getThreadsCount:o.cwrap("get_threads_count","number",[]),registerTensor:o.cwrap("register_tensor",null,["number","number","number"]),disposeData:o.cwrap("dispose_data",l,["number"]),dispose:o.cwrap("dispose",l,[])},n({wasm:o})}).catch(a)})}function vpe(e,t){switch(t){case"float32":return new Float32Array(e);case"int32":return new Int32Array(e);case"bool":return new Uint8Array(e);default:throw new Error(`Unknown dtype ${t}`)}}var wpe=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],sm=null,Up=null,jp={},qp=!1,p1=!1;function kpe(e,t=!1){if(Vx("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),qp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");sm=e,p1=t}function Ipe(e,t=!1){if(qp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof e=="string")Up=e;else{jp=e;let n=wpe.filter(a=>jp[a]==null);if(n.length>0)throw new Error(`There were no entries found for the following binaries: ${n.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}p1=t}var GA=-1,Tx=-1;function Spe(e){GA=e}function Tpe(){if(Tx===-1)throw new Error("WASM backend not initialized.");return Tx}var Npe="4.0.0",Cpe=2;Gm("wasm",async()=>{let{wasm:e}=await xpe();return new UA(e)},Cpe);var WI="4.0.0",_pe="4.0.0",Epe="4.0.0",Ape="4.0.0",$pe="4.0.0",Fpe={tfjs:WI,"tfjs-core":WI,"tfjs-converter":_pe,"tfjs-backend-cpu":Epe,"tfjs-backend-webgl":Ape,"tfjs-backend-wasm":$pe};var M1={};rh(M1,{AnchorPosition:()=>N1,DrawBox:()=>md,DrawBoxOptions:()=>ag,DrawFaceLandmarks:()=>mg,DrawFaceLandmarksOptions:()=>hg,DrawTextField:()=>zr,DrawTextFieldOptions:()=>op,drawContour:()=>Pr,drawDetections:()=>Bpe,drawFaceExpressions:()=>jpe,drawFaceLandmarks:()=>Kpe});function Pr(e,t,n=!1){if(e.beginPath(),t.slice(1).forEach(({x:a,y:r},s)=>{let i=t[s];e.moveTo(i.x,i.y),e.lineTo(a,r)}),n){let a=t[t.length-1],r=t[0];if(!a||!r)return;e.moveTo(a.x,a.y),e.lineTo(r.x,r.y)}e.stroke()}var m1={};rh(m1,{computeReshapedDimensions:()=>h1,getCenterPoint:()=>No,isDimensions:()=>tg,isEven:()=>eg,isFloat:()=>d1,isTensor:()=>So,isTensor1D:()=>Dpe,isTensor2D:()=>c1,isTensor3D:()=>Or,isTensor4D:()=>va,isValidNumber:()=>Ya,isValidProbablitiy:()=>rp,range:()=>fr,round:()=>To});var yn=class{constructor(t,n){if(!Ya(t)||!Ya(n))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:n})}`);this._width=t,this._height=n}get width(){return this._width}get height(){return this._height}reverse(){return new yn(1/this.width,1/this.height)}};function So(e,t){return e instanceof Te&&e.shape.length===t}function Dpe(e){return So(e,1)}function c1(e){return So(e,2)}function Or(e){return So(e,3)}function va(e){return So(e,4)}function d1(e){return e%1!==0}function eg(e){return e%2===0}function To(e,t=2){let n=10**t;return Math.floor(e*n)/n}function tg(e){return e&&e.width&&e.height}function h1({width:e,height:t},n){let a=n/Math.max(t,e);return new yn(Math.round(e*a),Math.round(t*a))}function No(e){return e.reduce((t,n)=>t.add(n),new De(0,0)).div(new De(e.length,e.length))}function fr(e,t,n){return Array(e).fill(0).map((a,r)=>t+r*n)}function Ya(e){return!!e&&e!==1/0&&e!==-1/0&&!Number.isNaN(e)||e===0}function rp(e){return Ya(e)&&e>=0&&e<=1}var De=class{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new De(this.x+t.x,this.y+t.y)}sub(t){return new De(this.x-t.x,this.y-t.y)}mul(t){return new De(this.x*t.x,this.y*t.y)}div(t){return new De(this.x/t.x,this.y/t.y)}abs(){return new De(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new De(Math.floor(this.x),Math.floor(this.y))}};var st=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(Ya)}static assertIsValidBox(t,n,a=!1){if(!st.isRect(t))throw new Error(`${n} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!a&&(t.width<0||t.height<0))throw new Error(`${n} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,n=!0){let a=t||{},r=[a.left,a.top,a.right,a.bottom].every(Ya),s=[a.x,a.y,a.width,a.height].every(Ya);if(!s&&!r)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(a)}`);let[i,o,l,u]=s?[a.x,a.y,a.width,a.height]:[a.left,a.top,a.right-a.left,a.bottom-a.top];st.assertIsValidBox({x:i,y:o,width:l,height:u},"Box.constructor",n),this._x=i,this._y=o,this._width=l,this._height=u}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new De(this.left,this.top)}get topRight(){return new De(this.right,this.top)}get bottomLeft(){return new De(this.left,this.bottom)}get bottomRight(){return new De(this.right,this.bottom)}round(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new st({x:t,y:n,width:a,height:r})}floor(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new st({x:t,y:n,width:a,height:r})}toSquare(){let{x:t,y:n,width:a,height:r}=this,s=Math.abs(a-r);return an&&(o=-d+n+a,d=n),c>t&&(l=-c+t+r,c=t),u<1&&(l=2-u,u=1),p<1&&(l=2-p,p=1),{dy:i,edy:l,dx:s,edx:o,y:p,ey:c,x:u,ex:d,w:a,h:r}}calibrate(t){return new st({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var Co=class extends st{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var Lr=class{constructor(t,n,a,r,s){this._imageDims=new yn(s.width,s.height),this._score=t,this._classScore=n,this._className=a,this._box=new st(r).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new st(this._box).rescale(this.imageDims.reverse())}forSize(t,n){return new Lr(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var yt=class extends Lr{constructor(t,n,a){super(t,t,"",n,a)}forSize(t,n){let{score:a,relativeBox:r,imageDims:s}=super.forSize(t,n);return new yt(a,r,s)}};function f1(e,t,n=!0){let a=Math.max(0,Math.min(e.right,t.right)-Math.max(e.left,t.left)),r=Math.max(0,Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top)),s=a*r;return n?s/(e.area+t.area-s):s/Math.min(e.area,t.area)}function g1(e){let t=e.map(o=>o.x),n=e.map(o=>o.y),a=t.reduce((o,l)=>lloo({score:i,boxIndex:o})).sort((i,o)=>i.score-o.score).map(i=>i.boxIndex),s=[];for(;r.length>0;){let i=r.pop();s.push(i);let o=r,l=[];for(let u=0;ul[p]<=n)}return s}function Za(e,t){return P(()=>{let[n,a,r]=t,s=gn([...e.shape.slice(0,3),1],n,"float32"),i=gn([...e.shape.slice(0,3),1],a,"float32"),o=gn([...e.shape.slice(0,3),1],r,"float32"),l=Ze([s,i,o],3);return pe(e,l)})}function b1(e,t=!1){return P(()=>{let[n,a]=e.shape.slice(1);if(n===a)return e;let r=Math.abs(n-a),s=Math.round(r*(t?.5:1)),i=n>a?2:1,o=c=>{let h=e.shape.slice();return h[i]=c,gn(h,0,"float32")},l=o(s),u=r-l.shape[i],d=[t&&u?o(u):null,e,l].filter(c=>!!c).map(c=>oe(c,"float32"));return Ze(d,i)})}function Rpe(e){let t=e.slice();for(let n=t.length-1;n>0;n--){let a=Math.floor(Math.random()*(n+1)),r=t[n];t[n]=t[a],t[a]=r}return t}function dd(e){return 1/(1+Math.exp(-e))}function Mpe(e){return Math.log(e/(1-e))}var _o=class extends st{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var Ppe=.5,Ope=.43,Lpe=.45,ra=class{constructor(t,n,a=new De(0,0)){let{width:r,height:s}=n;this._imgDims=new yn(r,s),this._shift=a,this._positions=t.map(i=>i.mul(new De(r,s)).add(a))}get shift(){return new De(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new De(this.imageWidth,this.imageHeight)))}forSize(t,n){return new this.constructor(this.relativePositions,{width:t,height:n})}shiftBy(t,n){return new this.constructor(this.relativePositions,this._imgDims,new De(t,n))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,n={}){if(t){let s=t instanceof yt?t.box.floor():new st(t);return this.shiftBy(s.x,s.y).align(null,n)}let{useDlibAlignment:a,minBoxPadding:r}={useDlibAlignment:!1,minBoxPadding:.2,...n};return a?this.alignDlib():this.alignMinBbox(r)}alignDlib(){let t=this.getRefPointsForAlignment(),[n,a,r]=t,s=d=>r.sub(d).magnitude(),i=(s(n)+s(a))/2,o=Math.floor(i/Lpe),l=No(t),u=Math.floor(Math.max(0,l.x-Ppe*o)),p=Math.floor(Math.max(0,l.y-Ope*o));return new _o(u,p,Math.min(o,this.imageWidth+u),Math.min(o,this.imageHeight+p))}alignMinBbox(t){let n=g1(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var x1=class extends ra{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],No([t[3],t[4]])]}};var Eo=class extends ra{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(No)}};var sp=class{constructor(t,n){this._label=t,this._distance=n}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${To(this.distance)})`:""}`}};var ip=class extends st{constructor(n,a){super(n);this._label=a}static assertIsValidLabeledBox(n,a){if(st.assertIsValidBox(n,a),!Ya(n.label))throw new Error(`${a} - expected property label (${n.label}) to be a number`)}get label(){return this._label}};var gr=class{constructor(t,n){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(n)||n.some(a=>!(a instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=n}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let n=t.descriptors.map(a=>new Float32Array(a));return new gr(t.label,n)}};var v1=class extends ip{constructor(n,a,r,s){super(n,a);this._score=r,this._classScore=s}static assertIsValidPredictedBox(n,a){if(ip.assertIsValidLabeledBox(n,a),!rp(n.score)||!rp(n.classScore))throw new Error(`${a} - expected properties score (${n.score}) and (${n.classScore}) to be a number between [0, 1]`)}get score(){return this._score}get classScore(){return this._classScore}};function yr(e){return e.detection instanceof yt}function Ao(e,t){return{...e,...{detection:t}}}function w1(){let e=window.fetch;if(!e)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),createVideoElement:()=>document.createElement("video"),fetch:e,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function hd(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function ng(e){let t="";if(!e&&hd())try{e=Xr("fs")}catch(a){t=a.toString()}return{readFile:e?a=>new Promise((r,s)=>{e.readFile(a,(i,o)=>i?s(i):r(o))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function k1(){let e=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,n=global.Video||global.HTMLVideoElement,a=()=>{if(e)return new e;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},r=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},s=()=>{if(n)return new n;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},i=global.fetch,o=ng();return{Canvas:e||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:a,createImageElement:r,createVideoElement:s,fetch:i,...o}}function I1(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var rn;function zpe(){if(!rn)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return rn}function S1(e){rn=e}function T1(){return I1()?S1(w1()):hd()?S1(k1()):null}function Wpe(e){if(rn||T1(),!rn)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=rn.Canvas,Image:n=rn.Image}=e;rn.Canvas=t,rn.Image=n,rn.createCanvasElement=e.createCanvasElement||(()=>new t),rn.createImageElement=e.createImageElement||(()=>new n),rn.ImageData=e.ImageData||rn.ImageData,rn.Video=e.Video||rn.Video,rn.fetch=e.fetch||rn.fetch,rn.readFile=e.readFile||rn.readFile}var Je={getEnv:zpe,setEnv:S1,initialize:T1,createBrowserEnv:w1,createFileSystem:ng,createNodejsEnv:k1,monkeyPatch:Wpe,isBrowser:I1,isNodejs:hd};T1();function $o(e){return!Je.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function Gn(e){let{Canvas:t,CanvasRenderingContext2D:n}=Je.getEnv();if(e instanceof n)return e;let a=$o(e);if(!(a instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let r=a.getContext("2d");if(!r)throw new Error("resolveContext2d - canvas 2d context is null");return r}var N1=(r=>(r.TOP_LEFT="TOP_LEFT",r.TOP_RIGHT="TOP_RIGHT",r.BOTTOM_LEFT="BOTTOM_LEFT",r.BOTTOM_RIGHT="BOTTOM_RIGHT",r))(N1||{}),op=class{constructor(t={}){let{anchorPosition:n,backgroundColor:a,fontColor:r,fontSize:s,fontStyle:i,padding:o}=t;this.anchorPosition=n||"TOP_LEFT",this.backgroundColor=a||"rgba(0, 0, 0, 0.5)",this.fontColor=r||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=i||"Georgia",this.padding=o||4}},zr=class{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof zr?t.text:t,this.anchor=n,this.options=new op(a)}measureWidth(t){let{padding:n}=this.options;return this.text.map(a=>t.measureText(a).width).reduce((a,r)=>a{let m=l+d.x,f=l+d.y+(h+1)*i;a.fillText(c,m,f)})}};var ag=class{constructor(t={}){let{boxColor:n,lineWidth:a,label:r,drawLabelOptions:s}=t;this.boxColor=n||"rgba(0, 0, 255, 1)",this.lineWidth=a||2,this.label=r;let i={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new op({...i,...s})}},md=class{constructor(t,n={}){this.box=new st(t),this.options=new ag(n)}draw(t){let n=Gn(t),{boxColor:a,lineWidth:r}=this.options,{x:s,y:i,width:o,height:l}=this.box;n.strokeStyle=a,n.lineWidth=r,n.strokeRect(s,i,o,l);let{label:u}=this.options;u&&new zr([u],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function Bpe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof yt?a.score:yr(a)?a.detection.score:void 0,s=a instanceof yt?a.box:yr(a)?a.detection.box:new st(a),i=r?`${To(r)}`:void 0;new md(s,{label:i}).draw(e)})}function fd(e){let{Image:t,Video:n}=Je.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function C1(e){return new Promise((t,n)=>{(e instanceof Je.getEnv().Canvas||fd(e))&&t(null);function a(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),n(s))}function r(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),t(s))}e.addEventListener("load",r),e.addEventListener("error",a)})}function _1(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToImage - expected buf to be of type: Blob"));let a=new FileReader;a.onload=()=>{typeof a.result!="string"&&n(new Error("bufferToImage - expected reader.result to be a string, in onload"));let r=Je.getEnv().createImageElement();r.onload=()=>t(r),r.onerror=n,r.src=a.result},a.onerror=n,a.readAsDataURL(e)})}function Fo(e){let{Image:t,Video:n}=Je.getEnv();return e instanceof t?new yn(e.naturalWidth,e.naturalHeight):e instanceof n?new yn(e.videoWidth,e.videoHeight):new yn(e.width,e.height)}function Do({width:e,height:t}){let{createCanvasElement:n}=Je.getEnv(),a=n();return a.width=e,a.height=t,a}function gd(e,t){let{ImageData:n}=Je.getEnv();if(!(e instanceof n)&&!fd(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||Fo(e),s=Do({width:a,height:r});return e instanceof n?Gn(s).putImageData(e,0,0):Gn(s).drawImage(e,0,0,a,r),s}async function E1(e,t){let n=t||Je.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(va(e)?1:0),i=P(()=>e.as3D(a,r,s).toInt());return await ho.toPixels(i,n),i.dispose(),n}function rg(e){let{Image:t,Canvas:n,Video:a}=Je.getEnv();return e instanceof t||e instanceof n||e instanceof a}function A1(e,t,n=!1){let{Image:a,Canvas:r}=Je.getEnv();if(!(e instanceof a||e instanceof r))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Do({width:1,height:1});let s=Fo(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,u=Do({width:t,height:t}),p=e instanceof r?e:gd(e),d=Math.abs(o-l)/2,c=n&&o0&&p.height>0&&Gn(u).drawImage(p,c,h,o,l),u}var br=class{constructor(t,n=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=n,this._batchSize=t.length,t.forEach((a,r)=>{if(Or(a)){this._imageTensors[r]=a,this._inputDimensions[r]=a.shape;return}if(va(a)){let i=a.shape[0];if(i!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${i} passed, but not supported in input array`);this._imageTensors[r]=a,this._inputDimensions[r]=a.shape.slice(1);return}let s=a instanceof Je.getEnv().Canvas?a:gd(a);this._canvases[r]=s,this._inputDimensions[r]=[s.height,s.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return fr(this.batchSize,0,1).map((t,n)=>this.getReshapedInputDimensions(n))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let n=this.getInputWidth(t),a=this.getInputHeight(t);return h1({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,P(()=>{let a=fr(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof Te){let o=va(i)?i:Zt(i);return o=b1(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=za.resizeBilinear(o,[t,t],!1,!1)),o.as3D(t,t,3)}if(i instanceof Je.getEnv().Canvas)return ho.fromPixels(A1(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return Ft(a.map(s=>oe(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function bt(e){if(e instanceof br)return e;let t=Array.isArray(e)?e:[e];if(!t.length)throw new Error("toNetInput - empty array passed as input");let n=r=>Array.isArray(e)?` at input index ${r}:`:"",a=t.map($o);return a.forEach((r,s)=>{if(!rg(r)&&!Or(r)&&!va(r))throw typeof t[s]=="string"?new Error(`toNetInput -${n(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${n(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(va(r)){let i=r.shape[0];if(i!==1)throw new Error(`toNetInput -${n(s)} tf.Tensor4D with batchSize ${i} passed, but not supported in input array`)}}),await Promise.all(a.map(r=>rg(r)&&C1(r))),new br(a,Array.isArray(e))}async function lp(e,t){let{Canvas:n}=Je.getEnv(),a=e;if(!(e instanceof n)){let i=await bt(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await E1(o)}let r=Gn(a);return t.map(i=>i instanceof yt?i.forSize(a.width,a.height).box.floor():i).map(i=>i.clipAtImageBorders(a.width,a.height)).map(({x:i,y:o,width:l,height:u})=>{let p=Do({width:l,height:u});return l>0&&u>0&&Gn(p).putImageData(r.getImageData(i,o,l,u),0,0),p})}async function up(e,t){if(!Or(e)&&!va(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(va(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return P(()=>{let[n,a,r]=e.shape.slice(va(e)?1:0);return t.map(o=>o instanceof yt?o.forSize(a,n).box:o).map(o=>o.clipAtImageBorders(a,n)).filter(o=>o.width>0&&o.height>0).map(({x:o,y:l,width:u,height:p})=>fo(e.as3D(n,a,r),[l,o,0],[p,u,r]))})}async function Wr(e,t){let{fetch:n}=Je.getEnv(),a=await n(e,t);if(!(a.status<400))throw new Error(`failed to fetch: (${a.status}) ${a.statusText}, from url: ${a.url}`);return a}async function Vpe(e){let t=await Wr(e),n=await t.blob();if(!n.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${n.type}, for url: ${t.url}`);return _1(n)}async function $1(e){return(await Wr(e)).json()}async function Upe(e){return new Float32Array(await(await Wr(e)).arrayBuffer())}function HA(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToVideo - expected buf to be of type: Blob"));let a=Je.getEnv().createVideoElement();a.oncanplay=()=>t(a),a.onerror=n,a.playsInline=!0,a.muted=!0,a.src=URL.createObjectURL(e),a.play()})}async function Gpe(e){let t=await Wr(e),n=await t.blob();if(!n.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${n.type}, for url: ${t.url}`);return HA(n)}function sg(e,t){let n=`${t}-weights_manifest.json`;if(!e)return{modelBaseUri:"",manifestUri:n};if(e==="/")return{modelBaseUri:"/",manifestUri:`/${n}`};let a=e.startsWith("http://")?"http://":e.startsWith("https://")?"https://":"";e=e.replace(a,"");let r=e.split("/").filter(o=>o),s=e.endsWith(".json")?r[r.length-1]:n,i=a+(e.endsWith(".json")?r.slice(0,r.length-1):r).join("/");return i=e.startsWith("/")?`/${i}`:i,{modelBaseUri:i,manifestUri:i==="/"?`/${s}`:`${i}/${s}`}}async function F1(e,t){let{manifestUri:n,modelBaseUri:a}=sg(e,t),r=await $1(n);return Ut.loadWeights(r,a)}function Hpe(e,t,n=!1){let{width:a,height:r}=n?Fo(t):t;return e.width=a,e.height=r,{width:a,height:r}}var sn=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:n,objProp:a}=this.traversePropertyPath(t);return n[a]}reassignParamFromPath(t,n){let{obj:a,objProp:r}=this.traversePropertyPath(t);a[r].dispose(),a[r]=n}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof is)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof is))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=In(n.dataSync());n.dispose(),this.reassignParamFromPath(t,a)})}dispose(t=!0){this.getParamList().forEach(n=>{if(t&&n.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${n.path}`);n.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,n)=>t.concat(n)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let n=await F1(t,this.getDefaultModelName());this.loadFromWeightMap(n)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:n}=Je.getEnv(),{manifestUri:a,modelBaseUri:r}=sg(t,this.getDefaultModelName()),s=u=>Promise.all(u.map(p=>n(p).then(d=>d.buffer))),i=Ut.weightsLoaderFactory(s),o=JSON.parse((await n(a)).toString()),l=await i(o,r);this.loadFromWeightMap(l)}loadFromWeightMap(t){let{paramMappings:n,params:a}=this.extractParamsFromWeightMap(t);this._paramMappings=n,this._params=a}extractWeights(t){let{paramMappings:n,params:a}=this.extractParams(t);this._paramMappings=n,this._params=a}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let n=t.split("/").reduce((s,i)=>{if(!s.nextObj.hasOwnProperty(i))throw new Error(`traversePropertyPath - object does not have property ${i}, for path ${t}`);return{obj:s.nextObj,objProp:i,nextObj:s.nextObj[i]}},{nextObj:this.params}),{obj:a,objProp:r}=n;if(!a||!r||!(a[r]instanceof Te))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:a,objProp:r}}};function Hn(e,t,n){return P(()=>{let a=Ts(e,t.depthwise_filter,t.pointwise_filter,n,"same");return a=Y(a,t.bias),a})}function ig(e,t,n=!1){return P(()=>{let a=Xe(n?Y($t(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Hn(e,t.conv0,[2,2])),r=Hn(a,t.conv1,[1,1]),s=Xe(Y(a,r)),i=Hn(s,t.conv2,[1,1]);return Xe(Y(a,Y(r,i)))})}function yd(e,t,n=!1,a=!0){return P(()=>{let r=Xe(n?Y($t(e,t.conv0.filters,a?[2,2]:[1,1],"same"),t.conv0.bias):Hn(e,t.conv0,a?[2,2]:[1,1])),s=Hn(r,t.conv1,[1,1]),i=Xe(Y(r,s)),o=Hn(i,t.conv2,[1,1]),l=Xe(Y(r,Y(s,o))),u=Hn(l,t.conv3,[1,1]);return Xe(Y(r,Y(s,Y(o,u))))})}function Ro(e,t,n="same",a=!1){return P(()=>{let r=Y($t(e,t.filters,[1,1],n),t.bias);return a?Xe(r):r})}function An(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function pp(e,t){return(n,a,r,s)=>{let i=Da(e(n*a*r*r),[r,r,n,a]),o=Ke(e(a));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:o}}}function og(e,t){return(n,a,r)=>{let s=Aa(e(n*a),[n,a]),i=Ke(e(a));return t.push({paramPath:`${r}/weights`},{paramPath:`${r}/bias`}),{weights:s,bias:i}}}var bd=class{constructor(t,n,a){this.depthwise_filter=t;this.pointwise_filter=n;this.bias=a}};function cp(e,t){return(n,a,r)=>{let s=Da(e(9*n),[3,3,n,1]),i=Da(e(n*a),[1,1,n,a]),o=Ke(e(a));return t.push({paramPath:`${r}/depthwise_filter`},{paramPath:`${r}/pointwise_filter`},{paramPath:`${r}/bias`}),new bd(s,i,o)}}function dp(e){return t=>{let n=e(`${t}/depthwise_filter`,4),a=e(`${t}/pointwise_filter`,4),r=e(`${t}/bias`,1);return new bd(n,a,r)}}function sa(e,t){return(n,a,r)=>{let s=e[n];if(!So(s,a))throw new Error(`expected weightMap[${n}] to be a Tensor${a}D, instead have ${s}`);return t.push({originalPath:n,paramPath:r||n}),s}}function $n(e){let t=e;function n(r){let s=t.slice(0,r);return t=t.slice(r),s}function a(){return t}return{extractWeights:n,getRemainingWeights:a}}function lg(e,t){let n=pp(e,t),a=cp(e,t);function r(i,o,l,u=!1){let p=u?n(i,o,3,`${l}/conv0`):a(i,o,`${l}/conv0`),d=a(o,o,`${l}/conv1`),c=a(o,o,`${l}/conv2`);return{conv0:p,conv1:d,conv2:c}}function s(i,o,l,u=!1){let{conv0:p,conv1:d,conv2:c}=r(i,o,l,u),h=a(o,o,`${l}/conv3`);return{conv0:p,conv1:d,conv2:c,conv3:h}}return{extractDenseBlock3Params:r,extractDenseBlock4Params:s}}function jA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=$n(e),{extractDenseBlock4Params:r}=lg(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2"),l=r(128,256,"dense3");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o,dense3:l}}}function ug(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function pg(e,t){let n=sa(e,t),a=ug(n),r=dp(n);function s(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),p=r(`${o}/conv1`),d=r(`${o}/conv2`);return{conv0:u,conv1:p,conv2:d}}function i(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),p=r(`${o}/conv1`),d=r(`${o}/conv2`),c=r(`${o}/conv3`);return{conv0:u,conv1:p,conv2:d,conv3:c}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:i}}function qA(e){let t=[],{extractDenseBlock4Params:n}=pg(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return An(e,t),{params:a,paramMappings:t}}var hp=class extends sn{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return P(()=>{let a=oe(t.toBatchTensor(112,!0),"float32"),s=Za(a,[122.782,117.001,104.298]).div(255),i=yd(s,n.dense0,!0);return i=yd(i,n.dense1),i=yd(i,n.dense2),i=yd(i,n.dense3),i=ya(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await bt(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return qA(t)}extractParams(t){return jA(t)}};function xd(e,t){return P(()=>Y(Fe(e,t.weights),t.bias))}function KA(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=$n(e),o=og(r,a)(t,n,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:a,params:{fc:o}}}function XA(e){let t=[],n=sa(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:a("fc")};return An(e,t),{params:r,paramMappings:t}}function cg(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=a.startsWith("fc")?n:t;r[a]=e[a]}),{featureExtractorMap:t,classifierMap:n}}var mp=class extends sn{constructor(n,a){super(n);this._faceFeatureExtractor=a}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(n){let{params:a}=this;if(!a)throw new Error(`${this._name} - load model before inference`);return P(()=>{let r=n instanceof br?this.faceFeatureExtractor.forwardInput(n):n;return xd(r.as2D(r.shape[0],-1),a.fc)})}dispose(n=!0){this.faceFeatureExtractor.dispose(n),super.dispose(n)}loadClassifierParams(n){let{params:a,paramMappings:r}=this.extractClassifierParams(n);this._params=a,this._paramMappings=r}extractClassifierParams(n){return KA(n,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=cg(n);return this.faceFeatureExtractor.loadFromWeightMap(a),XA(r)}extractParams(n){let a=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),s=r*a+r,i=n.slice(0,n.length-s),o=n.slice(n.length-s);return this.faceFeatureExtractor.extractWeights(i),this.extractClassifierParams(o)}};var D1=["neutral","happy","sad","angry","fearful","disgusted","surprised"],Br=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);D1.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return D1.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var vd=class extends mp{constructor(t=new hp){super("FaceExpressionNet",t)}forwardInput(t){return P(()=>Ka(this.runNet(t)))}async forward(t){return this.forwardInput(await bt(t))}async predictExpressions(t){let n=await bt(t),a=await this.forwardInput(n),r=await Promise.all(ct(a).map(async i=>{let o=i.dataSync();return i.dispose(),o}));a.dispose();let s=r.map(i=>new Br(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function R1(e){return e.expressions instanceof Br}function dg(e,t){return{...e,...{expressions:t}}}function jpe(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof Br?s:R1(s)?s.expressions:void 0;if(!i)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let l=i.asSortedArray().filter(d=>d.probability>n),u=yr(s)?s.detection.box.bottomLeft:a||new De(0,0);new zr(l.map(d=>`${d.expression} (${To(d.probability)})`),u).draw(e)})}function Mo(e){return yr(e)&&e.landmarks instanceof ra&&e.unshiftedLandmarks instanceof ra&&e.alignedRect instanceof yt}function qpe(e){let t=l=>l*180/Math.PI,n=(l,u)=>Math.sqrt((l._x-u._x)**2+(l._y-u._y)**2),a={roll:void 0,pitch:void 0,yaw:void 0},r=(l,u,p)=>{let d=Math.floor(l._x-u._x),c=Math.floor(u._x-p._x);return d-c},s=(l,u)=>{let p=Math.hypot(u._x-l._x,u._y-l._y),d=u._y-l._y,c=Math.asin(d/p),h=t(c),m=Math.floor(90-h),f=u._x-l._x<0?-1:1;return m*f},i=(l,u,p)=>{let d=n(l,p),c={_x:(l._x+p._x)/2,_y:(l._y+p._y)/2},h=n(u,c),m=Math.atan(h/d),f=Math.floor(t(m)),g=c._y-u._y<0?-1:1;return f*g};if(!e||!e._positions||e._positions.length!==68)return a;let o=e._positions;return a.roll=s(o[27],o[66]),a.pitch=i(o[14],o[30],o[2]),a.yaw=r(o[14],o[33],o[2]),a}function fp(e,t){let{box:n}=e.detection,a=t.shiftBy(n.x,n.y),r=a.align(),{imageDims:s}=e.detection,i=new yt(e.detection.score,r.rescale(s.reverse()),s),o=qpe(t);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i,angle:o}}}var hg=class{constructor(t={}){let{drawLines:n=!0,drawPoints:a=!0,lineWidth:r,lineColor:s,pointSize:i,pointColor:o}=t;this.drawLines=n,this.drawPoints=a,this.lineWidth=r||1,this.pointSize=i||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=o||"rgba(255, 0, 255, 1)"}},mg=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new hg(n)}draw(t){let n=Gn(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof Eo&&(n.strokeStyle=i,n.lineWidth=s,Pr(n,this.faceLandmarks.getJawOutline()),Pr(n,this.faceLandmarks.getLeftEyeBrow()),Pr(n,this.faceLandmarks.getRightEyeBrow()),Pr(n,this.faceLandmarks.getNose()),Pr(n,this.faceLandmarks.getLeftEye(),!0),Pr(n,this.faceLandmarks.getRightEye(),!0),Pr(n,this.faceLandmarks.getMouth(),!0)),r){n.strokeStyle=l,n.fillStyle=l;let u=p=>{n.beginPath(),n.arc(p.x,p.y,o,0,2*Math.PI),n.fill()};this.faceLandmarks.positions.forEach(u)}}};function Kpe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof ra?a:Mo(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new mg(r).draw(e)})}var YA="1.7.6";function Zpe(e,t){let n=pp(e,t),a=cp(e,t);function r(i,o,l){let u=a(i,o,`${l}/separable_conv0`),p=a(o,o,`${l}/separable_conv1`),d=n(i,o,1,`${l}/expansion_conv`);return{separable_conv0:u,separable_conv1:p,expansion_conv:d}}function s(i,o){let l=a(i,i,`${o}/separable_conv0`),u=a(i,i,`${o}/separable_conv1`),p=a(i,i,`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:p}}return{extractConvParams:n,extractSeparableConvParams:a,extractReductionBlockParams:r,extractMainBlockParams:s}}function ZA(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=$n(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=Zpe(a,n),u=s(3,32,3,"entry_flow/conv_in"),p=o(32,64,"entry_flow/reduction_block_0"),d=o(64,128,"entry_flow/reduction_block_1"),c={conv_in:u,reduction_block_0:p,reduction_block_1:d},h={};fr(t,0,1).forEach(y=>{h[`main_block_${y}`]=l(128,`middle_flow/main_block_${y}`)});let m=o(128,256,"exit_flow/reduction_block"),f=i(256,512,"exit_flow/separable_conv"),g={reduction_block:m,separable_conv:f};if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:n,params:{entry_flow:c,middle_flow:h,exit_flow:g}}}function Jpe(e,t){let n=sa(e,t),a=ug(n),r=dp(n);function s(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),p=a(`${o}/expansion_conv`);return{separable_conv0:l,separable_conv1:u,expansion_conv:p}}function i(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),p=r(`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:p}}return{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}}function JA(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=Jpe(e,n),o=a("entry_flow/conv_in"),l=s("entry_flow/reduction_block_0"),u=s("entry_flow/reduction_block_1"),p={conv_in:o,reduction_block_0:l,reduction_block_1:u},d={};fr(t,0,1).forEach(f=>{d[`main_block_${f}`]=i(`middle_flow/main_block_${f}`)});let c=s("exit_flow/reduction_block"),h=r("exit_flow/separable_conv"),m={reduction_block:c,separable_conv:h};return An(e,n),{params:{entry_flow:p,middle_flow:d,exit_flow:m},paramMappings:n}}function QA(e,t,n){return Y($t(e,t.filters,n,"same"),t.bias)}function P1(e,t,n=!0){let a=n?Xe(e):e;return a=Hn(a,t.separable_conv0,[1,1]),a=Hn(Xe(a),t.separable_conv1,[1,1]),a=Dt(a,[3,3],[2,2],"same"),a=Y(a,QA(e,t.expansion_conv,[2,2])),a}function Qpe(e,t){let n=Hn(Xe(e),t.separable_conv0,[1,1]);return n=Hn(Xe(n),t.separable_conv1,[1,1]),n=Hn(Xe(n),t.separable_conv2,[1,1]),n=Y(n,e),n}var fg=class extends sn{constructor(n){super("TinyXception");this._numMainBlocks=n}forwardInput(n){let{params:a}=this;if(!a)throw new Error("TinyXception - load model before inference");return P(()=>{let r=oe(n.toBatchTensor(112,!0),"float32"),i=Za(r,[122.782,117.001,104.298]).div(255),o=Xe(QA(i,a.entry_flow.conv_in,[2,2]));return o=P1(o,a.entry_flow.reduction_block_0,!1),o=P1(o,a.entry_flow.reduction_block_1),fr(this._numMainBlocks,0,1).forEach(l=>{o=Qpe(o,a.middle_flow[`main_block_${l}`])}),o=P1(o,a.exit_flow.reduction_block),o=Xe(Hn(o,a.exit_flow.separable_conv,[1,1])),o})}async forward(n){return this.forwardInput(await bt(n))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(n){return JA(n,this._numMainBlocks)}extractParams(n){return ZA(n,this._numMainBlocks)}};function e$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=$n(e),r=og(n,t),s=r(512,1,"fc/age"),i=r(512,2,"fc/gender");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{fc:{age:s,gender:i}}}}function t$(e){let t=[],n=sa(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:{age:a("fc/age"),gender:a("fc/gender")}};return An(e,t),{params:r,paramMappings:t}}var gg=(n=>(n.FEMALE="female",n.MALE="male",n))(gg||{});var wd=class extends sn{constructor(n=new fg(2)){super("AgeGenderNet");this._faceFeatureExtractor=n}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(n){let{params:a}=this;if(!a)throw new Error(`${this._name} - load model before inference`);return P(()=>{let r=n instanceof br?this.faceFeatureExtractor.forwardInput(n):n,s=ya(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),i=xd(s,a.fc.age).as1D(),o=xd(s,a.fc.gender);return{age:i,gender:o}})}forwardInput(n){return P(()=>{let{age:a,gender:r}=this.runNet(n);return{age:a,gender:Ka(r)}})}async forward(n){return this.forwardInput(await bt(n))}async predictAgeAndGender(n){let a=await bt(n),r=await this.forwardInput(a),s=ct(r.age),i=ct(r.gender),o=s.map((u,p)=>({ageTensor:u,genderTensor:i[p]})),l=await Promise.all(o.map(async({ageTensor:u,genderTensor:p})=>{let d=u.dataSync()[0],c=p.dataSync()[0],h=c>.5,m=h?"male":"female",f=h?c:1-c;return u.dispose(),p.dispose(),{age:d,gender:m,genderProbability:f}}));return r.age.dispose(),r.gender.dispose(),a.isBatchInput?l:l[0]}getDefaultModelName(){return"age_gender_model"}dispose(n=!0){this.faceFeatureExtractor.dispose(n),super.dispose(n)}loadClassifierParams(n){let{params:a,paramMappings:r}=this.extractClassifierParams(n);this._params=a,this._paramMappings=r}extractClassifierParams(n){return e$(n)}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=cg(n);return this.faceFeatureExtractor.loadFromWeightMap(a),t$(r)}extractParams(n){let r=n.slice(0,n.length-1539),s=n.slice(n.length-1539);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(s)}};var gp=class extends mp{postProcess(t,n,a){let r=a.map(({width:i,height:o})=>{let l=n/Math.max(o,i);return{width:i*l,height:o*l}}),s=r.length;return P(()=>{let i=(d,c)=>Ft([gn([68],d,"float32"),gn([68],c,"float32")],1).as2D(1,136).as1D(),o=(d,c)=>{let{width:h,height:m}=r[d];return c(h,m)?Math.abs(h-m)/2:0},l=d=>o(d,(c,h)=>co(d,(c,h)=>hi(l(c),u(c))))).div(Ft(Array.from(Array(s),(d,c)=>i(r[c].width,r[c].height))))})}forwardInput(t){return P(()=>{let n=this.runNet(t);return this.postProcess(n,t.inputSize,t.inputDimensions.map(([a,r])=>({height:a,width:r})))})}async forward(t){return this.forwardInput(await bt(t))}async detectLandmarks(t){let n=await bt(t),a=P(()=>ct(this.forwardInput(n))),r=await Promise.all(a.map(async(s,i)=>{let o=Array.from(s.dataSync()),l=o.filter((p,d)=>eg(d)),u=o.filter((p,d)=>!eg(d));return new Eo(Array(68).fill(0).map((p,d)=>new De(l[d],u[d])),{height:n.getInputHeight(i),width:n.getInputWidth(i)})}));return a.forEach(s=>s.dispose()),n.isBatchInput?r:r[0]}getClassifierChannelsOut(){return 136}};var Po=class extends gp{constructor(t=new hp){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function n$(e){let t=[],{extractDenseBlock3Params:n}=pg(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return An(e,t),{params:a,paramMappings:t}}function a$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=$n(e),{extractDenseBlock3Params:r}=lg(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o}}}var yg=class extends sn{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return P(()=>{let a=oe(t.toBatchTensor(112,!0),"float32"),s=Za(a,[122.782,117.001,104.298]).div(255),i=ig(s,n.dense0,!0);return i=ig(i,n.dense1),i=ig(i,n.dense2),i=ya(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await bt(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return n$(t)}extractParams(t){return a$(t)}};var kd=class extends gp{constructor(t=new yg){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var O1=class extends Po{};function r$(e,t){return Y(z(e,t.weights),t.biases)}function L1(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=$t(e,s,n,r);return o=Y(o,i),o=r$(o,t.scale),a?Xe(o):o}function s$(e,t){return L1(e,t,[1,1],!0)}function z1(e,t){return L1(e,t,[1,1],!1)}function bg(e,t){return L1(e,t,[2,2],!0,"valid")}function ece(e,t){function n(o,l,u){let p=e(o),d=p.length/(l*u*u);if(d1(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${l}, filterSize: ${u}`);return P(()=>Ee(Da(p,[l,d,u,u]),[2,3,1,0]))}function a(o,l,u,p){let d=n(o,l,u),c=Ke(e(l));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:c}}function r(o,l){let u=Ke(e(o)),p=Ke(e(o));return t.push({paramPath:`${l}/weights`},{paramPath:`${l}/biases`}),{weights:u,biases:p}}function s(o,l,u,p){let d=a(o,l,u,`${p}/conv`),c=r(l,`${p}/scale`);return{conv:d,scale:c}}function i(o,l,u,p,d=!1){let c=s((d?.5:1)*o,l,u,`${p}/conv1`),h=s(o,l,u,`${p}/conv2`);return{conv1:c,conv2:h}}return{extractConvLayerParams:s,extractResidualLayerParams:i}}function i$(e){let{extractWeights:t,getRemainingWeights:n}=$n(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=ece(t,a),i=r(4704,32,7,"conv32_down"),o=s(9216,32,3,"conv32_1"),l=s(9216,32,3,"conv32_2"),u=s(9216,32,3,"conv32_3"),p=s(36864,64,3,"conv64_down",!0),d=s(36864,64,3,"conv64_1"),c=s(36864,64,3,"conv64_2"),h=s(36864,64,3,"conv64_3"),m=s(147456,128,3,"conv128_down",!0),f=s(147456,128,3,"conv128_1"),g=s(147456,128,3,"conv128_2"),y=s(589824,256,3,"conv256_down",!0),b=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),w=s(589824,256,3,"conv256_down_out"),I=P(()=>Ee(Aa(t(256*128),[128,256]),[1,0]));if(a.push({paramPath:"fc"}),n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{params:{conv32_down:i,conv32_1:o,conv32_2:l,conv32_3:u,conv64_down:p,conv64_1:d,conv64_2:c,conv64_3:h,conv128_down:m,conv128_1:f,conv128_2:g,conv256_down:y,conv256_1:b,conv256_2:x,conv256_down_out:w,fc:I},paramMappings:a}}function tce(e,t){let n=sa(e,t);function a(i){let o=n(`${i}/scale/weights`,1),l=n(`${i}/scale/biases`,1);return{weights:o,biases:l}}function r(i){let o=n(`${i}/conv/filters`,4),l=n(`${i}/conv/bias`,1),u=a(i);return{conv:{filters:o,bias:l},scale:u}}function s(i){return{conv1:r(`${i}/conv1`),conv2:r(`${i}/conv2`)}}return{extractConvLayerParams:r,extractResidualLayerParams:s}}function o$(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=tce(e,t),r=n("conv32_down"),s=a("conv32_1"),i=a("conv32_2"),o=a("conv32_3"),l=a("conv64_down"),u=a("conv64_1"),p=a("conv64_2"),d=a("conv64_3"),c=a("conv128_down"),h=a("conv128_1"),m=a("conv128_2"),f=a("conv256_down"),g=a("conv256_1"),y=a("conv256_2"),b=a("conv256_down_out"),{fc:x}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!c1(x))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${x}`);let w={conv32_down:r,conv32_1:s,conv32_2:i,conv32_3:o,conv64_down:l,conv64_1:u,conv64_2:p,conv64_3:d,conv128_down:c,conv128_1:h,conv128_2:m,conv256_down:f,conv256_1:g,conv256_2:y,conv256_down_out:b,fc:x};return An(e,t),{params:w,paramMappings:t}}function Ja(e,t){let n=s$(e,t.conv1);return n=z1(n,t.conv2),n=Y(n,e),n=Xe(n),n}function Id(e,t){let n=bg(e,t.conv1);n=z1(n,t.conv2);let a=ya(e,2,2,"valid"),r=It(a.shape),s=a.shape[3]!==n.shape[3];if(a.shape[1]!==n.shape[1]||a.shape[2]!==n.shape[2]){let o=[...n.shape];o[1]=1;let l=It(o);n=Ze([n,l],1);let u=[...n.shape];u[2]=1;let p=It(u);n=Ze([n,p],2)}return a=s?Ze([a,r],3):a,n=Y(a,n),n=Xe(n),n}var Oo=class extends sn{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return P(()=>{let a=oe(t.toBatchTensor(150,!0),"float32"),s=Za(a,[122.782,117.001,104.298]).div(255),i=bg(s,n.conv32_down);i=Dt(i,3,2,"valid"),i=Ja(i,n.conv32_1),i=Ja(i,n.conv32_2),i=Ja(i,n.conv32_3),i=Id(i,n.conv64_down),i=Ja(i,n.conv64_1),i=Ja(i,n.conv64_2),i=Ja(i,n.conv64_3),i=Id(i,n.conv128_down),i=Ja(i,n.conv128_1),i=Ja(i,n.conv128_2),i=Id(i,n.conv256_down),i=Ja(i,n.conv256_1),i=Ja(i,n.conv256_2),i=Id(i,n.conv256_down_out);let o=i.mean([1,2]);return Fe(o,n.fc)})}async forward(t){return this.forwardInput(await bt(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)!=null&&s.some(i=>i<=0))return new Float32Array(128);let n=await bt(t),a=P(()=>ct(this.forwardInput(n))),r=await Promise.all(a.map(i=>i.data()));return a.forEach(i=>i.dispose()),n.isBatchInput?r:r[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return o$(t)}extractParams(t){return i$(t)}};function nce(e){let t=new Oo;return t.extractWeights(e),t}function xg(e,t){return{...e,...{descriptor:t}}}function ace(e){return typeof e.age=="number"}function vg(e,t){return{...e,...{age:t}}}function rce(e){return(e.gender==="male"||e.gender==="female")&&rp(e.genderProbability)}function wg(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function sce(e,t){function n(l,u){let p=Da(e(9*l),[3,3,l,1]),d=Ke(e(l)),c=Ke(e(l)),h=Ke(e(l)),m=Ke(e(l));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/batch_norm_scale`},{paramPath:`${u}/batch_norm_offset`},{paramPath:`${u}/batch_norm_mean`},{paramPath:`${u}/batch_norm_variance`}),{filters:p,batch_norm_scale:d,batch_norm_offset:c,batch_norm_mean:h,batch_norm_variance:m}}function a(l,u,p,d,c){let h=Da(e(l*u*p*p),[p,p,l,u]),m=Ke(e(u));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${c?"batch_norm_offset":"bias"}`}),{filters:h,bias:m}}function r(l,u,p,d){let{filters:c,bias:h}=a(l,u,p,d,!0);return{filters:c,batch_norm_offset:h}}function s(l,u,p){let d=n(l,`${p}/depthwise_conv`),c=r(l,u,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:c}}function i(){let l=r(3,32,3,"mobilenetv1/conv_0"),u=s(32,64,"mobilenetv1/conv_1"),p=s(64,128,"mobilenetv1/conv_2"),d=s(128,128,"mobilenetv1/conv_3"),c=s(128,256,"mobilenetv1/conv_4"),h=s(256,256,"mobilenetv1/conv_5"),m=s(256,512,"mobilenetv1/conv_6"),f=s(512,512,"mobilenetv1/conv_7"),g=s(512,512,"mobilenetv1/conv_8"),y=s(512,512,"mobilenetv1/conv_9"),b=s(512,512,"mobilenetv1/conv_10"),x=s(512,512,"mobilenetv1/conv_11"),w=s(512,1024,"mobilenetv1/conv_12"),I=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:l,conv_1:u,conv_2:p,conv_3:d,conv_4:c,conv_5:h,conv_6:m,conv_7:f,conv_8:g,conv_9:y,conv_10:b,conv_11:x,conv_12:w,conv_13:I}}function o(){let l=r(1024,256,1,"prediction_layer/conv_0"),u=r(256,512,3,"prediction_layer/conv_1"),p=r(512,128,1,"prediction_layer/conv_2"),d=r(128,256,3,"prediction_layer/conv_3"),c=r(256,128,1,"prediction_layer/conv_4"),h=r(128,256,3,"prediction_layer/conv_5"),m=r(256,64,1,"prediction_layer/conv_6"),f=r(64,128,3,"prediction_layer/conv_7"),g=a(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),b=a(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),x=a(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),w=a(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),I=a(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),T=a(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),C=a(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),E=a(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),A=a(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),R=a(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),F=a(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:l,conv_1:u,conv_2:p,conv_3:d,conv_4:c,conv_5:h,conv_6:m,conv_7:f,box_predictor_0:{box_encoding_predictor:g,class_predictor:y},box_predictor_1:{box_encoding_predictor:b,class_predictor:x},box_predictor_2:{box_encoding_predictor:w,class_predictor:I},box_predictor_3:{box_encoding_predictor:T,class_predictor:C},box_predictor_4:{box_encoding_predictor:E,class_predictor:A},box_predictor_5:{box_encoding_predictor:R,class_predictor:F}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function l$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=$n(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=sce(n,t),i=r(),o=s(),u={extra_dim:Rc(n(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:{mobilenetv1:i,prediction_layer:o,output_layer:u},paramMappings:t}}function ice(e,t){let n=sa(e,t);function a(u,p,d){let c=n(`${u}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),h=n(`${u}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:c,batch_norm_offset:h}}function r(u){let p=`mobilenetv1/conv_${u}`,d=`MobilenetV1/Conv2d_${u}_depthwise`,c=`${p}/depthwise_conv`,h=`${p}/pointwise_conv`,m=n(`${d}/depthwise_weights`,4,`${c}/filters`),f=n(`${d}/BatchNorm/gamma`,1,`${c}/batch_norm_scale`),g=n(`${d}/BatchNorm/beta`,1,`${c}/batch_norm_offset`),y=n(`${d}/BatchNorm/moving_mean`,1,`${c}/batch_norm_mean`),b=n(`${d}/BatchNorm/moving_variance`,1,`${c}/batch_norm_variance`);return{depthwise_conv:{filters:m,batch_norm_scale:f,batch_norm_offset:g,batch_norm_mean:y,batch_norm_variance:b},pointwise_conv:a("MobilenetV1",u,h)}}function s(){return{conv_0:a("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:r(1),conv_2:r(2),conv_3:r(3),conv_4:r(4),conv_5:r(5),conv_6:r(6),conv_7:r(7),conv_8:r(8),conv_9:r(9),conv_10:r(10),conv_11:r(11),conv_12:r(12),conv_13:r(13)}}function i(u,p){let d=n(`${u}/weights`,4,`${p}/filters`),c=n(`${u}/biases`,1,`${p}/bias`);return{filters:d,bias:c}}function o(u){let p=i(`Prediction/BoxPredictor_${u}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${u}/box_encoding_predictor`),d=i(`Prediction/BoxPredictor_${u}/ClassPredictor`,`prediction_layer/box_predictor_${u}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}function l(){return{conv_0:a("Prediction",0,"prediction_layer/conv_0"),conv_1:a("Prediction",1,"prediction_layer/conv_1"),conv_2:a("Prediction",2,"prediction_layer/conv_2"),conv_3:a("Prediction",3,"prediction_layer/conv_3"),conv_4:a("Prediction",4,"prediction_layer/conv_4"),conv_5:a("Prediction",5,"prediction_layer/conv_5"),conv_6:a("Prediction",6,"prediction_layer/conv_6"),conv_7:a("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:o(0),box_predictor_1:o(1),box_predictor_2:o(2),box_predictor_3:o(3),box_predictor_4:o(4),box_predictor_5:o(5)}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:l}}function u$(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=ice(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Or(r))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${r}`);let s={mobilenetv1:n(),prediction_layer:a(),output_layer:{extra_dim:r}};return An(e,t),{params:s,paramMappings:t}}function Pa(e,t,n){return P(()=>{let a=$t(e,t.filters,n,"same");return a=Y(a,t.batch_norm_offset),en(a,0,6)})}var oce=.0010000000474974513;function lce(e,t,n){return P(()=>{let a=Is(e,t.filters,n,"same");return a=ks(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,oce),en(a,0,6)})}function uce(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function p$(e,t){return P(()=>{let n,a=Pa(e,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((s,i)=>{let o=i+1,l=uce(o);a=lce(a,s.depthwise_conv,l),a=Pa(a,s.pointwise_conv,[1,1]),o===11&&(n=a)}),n===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:a,conv11:n}})}function pce(e,t,n){let a=e.arraySync(),r=Math.min(a[t][0],a[t][2]),s=Math.min(a[t][1],a[t][3]),i=Math.max(a[t][0],a[t][2]),o=Math.max(a[t][1],a[t][3]),l=Math.min(a[n][0],a[n][2]),u=Math.min(a[n][1],a[n][3]),p=Math.max(a[n][0],a[n][2]),d=Math.max(a[n][1],a[n][3]),c=(i-r)*(o-s),h=(p-l)*(d-u);if(c<=0||h<=0)return 0;let m=Math.max(r,l),f=Math.max(s,u),g=Math.min(i,p),y=Math.min(o,d),b=Math.max(g-m,0)*Math.max(y-f,0);return b/(c+h-b)}function c$(e,t,n,a,r){let s=e.shape[0],i=Math.min(n,s),o=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>r).sort((p,d)=>d.score-p.score),l=p=>p<=a?1:0,u=[];return o.forEach(p=>{if(u.length>=i)return;let d=p.score;for(let c=u.length-1;c>=0;--c){let h=pce(e,p.boxIndex,u[c]);if(h!==0&&(p.score*=l(h),p.score<=r))break}d===p.score&&u.push(p.boxIndex)}),u}function cce(e){let t=ct(Ee(e,[1,0])),n=[pe(t[2],t[0]),pe(t[3],t[1])],a=[Y(t[0],he(n[0],2)),Y(t[1],he(n[1],2))];return{sizes:n,centers:a}}function dce(e,t){let{sizes:n,centers:a}=cce(e),r=ct(Ee(t,[1,0])),s=he(z(fn(he(r[2],5)),n[0]),2),i=Y(z(he(r[0],10),n[0]),a[0]),o=he(z(fn(he(r[3],5)),n[1]),2),l=Y(z(he(r[1],10),n[1]),a[1]);return Ee(Ft([pe(i,s),pe(l,o),Y(i,s),Y(l,o)]),[1,0])}function d$(e,t,n){return P(()=>{let a=e.shape[0],r=dce(W(Ln(n.extra_dim,[a,1,1]),[-1,4]),W(e,[-1,4]));r=W(r,[a,r.shape[0]/a,4]);let s=ha(Be(t,[0,0,1],[-1,-1,-1])),i=Be(s,[0,0,0],[-1,-1,1]);i=W(i,[a,i.shape[1]]);let o=ct(r),l=ct(i);return{boxes:o,scores:l}})}function Lo(e,t){return P(()=>{let n=e.shape[0],a=W(Ro(e,t.box_encoding_predictor),[n,-1,1,4]),r=W(Ro(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function h$(e,t,n){return P(()=>{let a=Pa(e,n.conv_0,[1,1]),r=Pa(a,n.conv_1,[2,2]),s=Pa(r,n.conv_2,[1,1]),i=Pa(s,n.conv_3,[2,2]),o=Pa(i,n.conv_4,[1,1]),l=Pa(o,n.conv_5,[2,2]),u=Pa(l,n.conv_6,[1,1]),p=Pa(u,n.conv_7,[2,2]),d=Lo(t,n.box_predictor_0),c=Lo(e,n.box_predictor_1),h=Lo(r,n.box_predictor_2),m=Lo(i,n.box_predictor_3),f=Lo(l,n.box_predictor_4),g=Lo(p,n.box_predictor_5),y=Ze([d.boxPredictionEncoding,c.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),b=Ze([d.classPrediction,c.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:y,classPredictions:b}})}var wa=class{constructor({minConfidence:t,maxResults:n}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=n||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var As=class extends sn{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return P(()=>{let a=oe(t.toBatchTensor(512,!1),"float32"),r=pe(he(a,127.5),1),s=p$(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=h$(s.out,s.conv11,n.prediction_layer);return d$(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await bt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new wa(n),s=await bt(t),{boxes:i,scores:o}=this.forwardInput(s),l=i[0],u=o[0];for(let x=1;x{let[w,I]=[Math.max(0,y[x][0]),Math.min(1,y[x][2])].map(E=>E*g),[T,C]=[Math.max(0,y[x][1]),Math.min(1,y[x][3])].map(E=>E*f);return new yt(p[x],new _o(T,w,C-T,I-w),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),u.dispose(),b}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return u$(t)}extractParams(t){return l$(t)}};function m$(e){let t=new As;return t.extractWeights(e),t}function hce(e){return m$(e)}var W1=class extends As{};var f$=.4,g$=[new De(.738768,.874946),new De(2.42204,2.65704),new De(4.30971,7.04493),new De(10.246,4.59428),new De(12.6868,11.8741)],y$=[new De(1.603231,2.094468),new De(6.041143,7.080126),new De(2.882459,3.518061),new De(4.266906,5.178857),new De(9.041765,10.66308)],b$=[117.001,114.697,97.404],x$="tiny_yolov2_model",v$="tiny_yolov2_separable_conv_model";var kg=e=>typeof e=="number";function B1(e){if(!e)throw new Error(`invalid config: ${e}`);if(typeof e.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${e.withSeparableConvs}`);if(!kg(e.iouThreshold)||e.iouThreshold<0||e.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${e.iouThreshold}`);if(!Array.isArray(e.classes)||!e.classes.length||!e.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(e.classes)}`);if(!Array.isArray(e.anchors)||!e.anchors.length||!e.anchors.map(t=>t||{}).every(t=>kg(t.x)&&kg(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(e.anchors)}`);if(e.meanRgb&&(!Array.isArray(e.meanRgb)||e.meanRgb.length!==3||!e.meanRgb.every(kg)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function yp(e){return P(()=>{let t=z(e,be(.10000000149011612));return Y(Xe(pe(e,t)),t)})}function Vr(e,t){return P(()=>{let n=ba(e,[[0,0],[1,1],[1,1],[0,0]]);return n=$t(n,t.conv.filters,[1,1],"valid"),n=pe(n,t.bn.sub),n=z(n,t.bn.truediv),n=Y(n,t.conv.bias),yp(n)})}function Ur(e,t){return P(()=>{let n=ba(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Ts(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=Y(n,t.bias),yp(n)})}function mce(e,t){let n=pp(e,t);function a(i,o){let l=Ke(e(i)),u=Ke(e(i));return t.push({paramPath:`${o}/sub`},{paramPath:`${o}/truediv`}),{sub:l,truediv:u}}function r(i,o,l){let u=n(i,o,3,`${l}/conv`),p=a(o,`${l}/bn`);return{conv:u,bn:p}}let s=cp(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function w$(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=$n(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:u}=mce(r,i),p;if(t.withSeparableConvs){let[d,c,h,m,f,g,y,b,x]=a,w=t.isFirstLayerConv2d?o(d,c,3,"conv0"):u(d,c,"conv0"),I=u(c,h,"conv1"),T=u(h,m,"conv2"),C=u(m,f,"conv3"),E=u(f,g,"conv4"),A=u(g,y,"conv5"),R=b?u(y,b,"conv6"):void 0,F=x?u(b,x,"conv7"):void 0,S=o(x||b||y,5*n,1,"conv8");p={conv0:w,conv1:I,conv2:T,conv3:C,conv4:E,conv5:A,conv6:R,conv7:F,conv8:S}}else{let[d,c,h,m,f,g,y,b,x]=a,w=l(d,c,"conv0"),I=l(c,h,"conv1"),T=l(h,m,"conv2"),C=l(m,f,"conv3"),E=l(f,g,"conv4"),A=l(g,y,"conv5"),R=l(y,b,"conv6"),F=l(b,x,"conv7"),S=o(x,5*n,1,"conv8");p={conv0:w,conv1:I,conv2:T,conv3:C,conv4:E,conv5:A,conv6:R,conv7:F,conv8:S}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:p,paramMappings:i}}function fce(e,t){let n=sa(e,t);function a(o){let l=n(`${o}/sub`,1),u=n(`${o}/truediv`,1);return{sub:l,truediv:u}}function r(o){let l=n(`${o}/filters`,4),u=n(`${o}/bias`,1);return{filters:l,bias:u}}function s(o){let l=r(`${o}/conv`),u=a(`${o}/bn`);return{conv:l,bn:u}}let i=dp(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function k$(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=fce(e,n),i;if(t.withSeparableConvs){let o=t.filterSizes&&t.filterSizes.length||9;i={conv0:t.isFirstLayerConv2d?a("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:o>7?s("conv6"):void 0,conv7:o>8?s("conv7"):void 0,conv8:a("conv8")}}else i={conv0:r("conv0"),conv1:r("conv1"),conv2:r("conv2"),conv3:r("conv3"),conv4:r("conv4"),conv5:r("conv5"),conv6:r("conv6"),conv7:r("conv7"),conv8:a("conv8")};return An(e,n),{params:i,paramMappings:n}}var Qa=class{constructor({inputSize:t,scoreThreshold:n}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=n||.5,typeof this._inputSize!="number"||this._inputSize%32!==0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var V1=class extends sn{constructor(n){super("TinyYolov2");B1(n),this._config=n}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(n,a){let r=Vr(n,a.conv0);return r=Dt(r,[2,2],[2,2],"same"),r=Vr(r,a.conv1),r=Dt(r,[2,2],[2,2],"same"),r=Vr(r,a.conv2),r=Dt(r,[2,2],[2,2],"same"),r=Vr(r,a.conv3),r=Dt(r,[2,2],[2,2],"same"),r=Vr(r,a.conv4),r=Dt(r,[2,2],[2,2],"same"),r=Vr(r,a.conv5),r=Dt(r,[2,2],[1,1],"same"),r=Vr(r,a.conv6),r=Vr(r,a.conv7),Ro(r,a.conv8,"valid",!1)}runMobilenet(n,a){let r=this.config.isFirstLayerConv2d?yp(Ro(n,a.conv0,"valid",!1)):Ur(n,a.conv0);return r=Dt(r,[2,2],[2,2],"same"),r=Ur(r,a.conv1),r=Dt(r,[2,2],[2,2],"same"),r=Ur(r,a.conv2),r=Dt(r,[2,2],[2,2],"same"),r=Ur(r,a.conv3),r=Dt(r,[2,2],[2,2],"same"),r=Ur(r,a.conv4),r=Dt(r,[2,2],[2,2],"same"),r=Ur(r,a.conv5),r=Dt(r,[2,2],[1,1],"same"),r=a.conv6?Ur(r,a.conv6):r,r=a.conv7?Ur(r,a.conv7):r,Ro(r,a.conv8,"valid",!1)}forwardInput(n,a){let{params:r}=this;if(!r)throw new Error("TinyYolov2 - load model before inference");return P(()=>{let s=oe(n.toBatchTensor(a,!1),"float32");return s=this.config.meanRgb?Za(s,this.config.meanRgb):s,s=s.div(255),this.config.withSeparableConvs?this.runMobilenet(s,r):this.runTinyYolov2(s,r)})}async forward(n,a){return this.forwardInput(await bt(n),a)}async detect(n,a={}){let{inputSize:r,scoreThreshold:s}=new Qa(a),i=await bt(n),o=await this.forwardInput(i,r),l=P(()=>ct(o)[0].expandDims()),u={width:i.getInputWidth(0),height:i.getInputHeight(0)},p=await this.extractBoxes(l,i.getReshapedInputDimensions(0),s);o.dispose(),l.dispose();let d=p.map(y=>y.box),c=p.map(y=>y.score),h=p.map(y=>y.classScore),m=p.map(y=>this.config.classes[y.label]);return y1(d.map(y=>y.rescale(r)),c,this.config.iouThreshold,!0).map(y=>new Lr(c[y],h[y],m[y],d[y],u))}getDefaultModelName(){return""}extractParamsFromWeightMap(n){return k$(n,this.config)}extractParams(n){let a=this.config.filterSizes||V1.DEFAULT_FILTER_SIZES,r=a?a.length:void 0;if(r!==7&&r!==8&&r!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${r} filterSizes in config`);return w$(n,this.config,this.boxEncodingSize,a)}async extractBoxes(n,a,r){let{width:s,height:i}=a,o=Math.max(s,i),l=o/s,u=o/i,p=n.shape[1],d=this.config.anchors.length,[c,h,m]=P(()=>{let b=n.reshape([p,p,d,this.boxEncodingSize]),x=b.slice([0,0,0,0],[p,p,d,4]),w=b.slice([0,0,0,4],[p,p,d,1]),I=this.withClassScores?Ka(b.slice([0,0,0,5],[p,p,d,this.config.classes.length]),3):be(0);return[x,w,I]}),f=[],g=await h.array(),y=await c.array();for(let b=0;br){let T=(x+dd(y[b][x][w][0]))/p*l,C=(b+dd(y[b][x][w][1]))/p*u,E=Math.exp(y[b][x][w][2])*this.config.anchors[w].x/p*l,A=Math.exp(y[b][x][w][3])*this.config.anchors[w].y/p*u,R=T-E/2,F=C-A/2,S={row:b,col:x,anchor:w},{classScore:M,label:B}=this.withClassScores?await this.extractPredictedClass(m,S):{classScore:1,label:0};f.push({box:new Co(R,F,R+E,F+A),score:I,classScore:I*M,label:B,...S})}}return c.dispose(),h.dispose(),m.dispose(),f}async extractPredictedClass(n,a){let{row:r,col:s,anchor:i}=a,o=await n.array();return Array(this.config.classes.length).fill(0).map((l,u)=>o[r][s][i][u]).map((l,u)=>({classScore:l,label:u})).reduce((l,u)=>l.classScore>u.classScore?l:u)}},zo=V1;zo.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var Wo=class extends zo{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:f$,classes:["face"],...t?{anchors:y$,meanRgb:b$}:{anchors:g$,withClassScores:!0}};super(n)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new yt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?v$:x$}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function gce(e,t=!0){let n=new Wo(t);return n.extractWeights(e),n}var Sd=class extends Qa{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var ka=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function Bo(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>Mo(l)?r(l):l.detection),i=a||(t instanceof Te?await up(t,s):await lp(t,s)),o=await n(i);return i.forEach(l=>l instanceof Te&&l.dispose()),o}async function bp(e,t,n,a,r){return Bo([e],t,async s=>n(s[0]),a,r)}var I$=.4,S$=[new De(1.603231,2.094468),new De(6.041143,7.080126),new De(2.882459,3.518061),new De(4.266906,5.178857),new De(9.041765,10.66308)],T$=[117.001,114.697,97.404];var Vo=class extends zo{constructor(){let t={withSeparableConvs:!0,iouThreshold:I$,classes:["face"],anchors:S$,meanRgb:T$,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new yt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var Qe={ssdMobilenetv1:new As,tinyFaceDetector:new Vo,tinyYolov2:new Wo,faceLandmark68Net:new Po,faceLandmark68TinyNet:new kd,faceRecognitionNet:new Oo,faceExpressionNet:new vd,ageGenderNet:new wd},N$=(e,t)=>Qe.ssdMobilenetv1.locateFaces(e,t),yce=(e,t)=>Qe.tinyFaceDetector.locateFaces(e,t),bce=(e,t)=>Qe.tinyYolov2.locateFaces(e,t),C$=e=>Qe.faceLandmark68Net.detectLandmarks(e),xce=e=>Qe.faceLandmark68TinyNet.detectLandmarks(e),vce=e=>Qe.faceRecognitionNet.computeFaceDescriptor(e),wce=e=>Qe.faceExpressionNet.predictExpressions(e),kce=e=>Qe.ageGenderNet.predictAgeAndGender(e),_$=e=>Qe.ssdMobilenetv1.load(e),Ice=e=>Qe.tinyFaceDetector.load(e),Sce=e=>Qe.tinyYolov2.load(e),Tce=e=>Qe.faceLandmark68Net.load(e),Nce=e=>Qe.faceLandmark68TinyNet.load(e),Cce=e=>Qe.faceRecognitionNet.load(e),_ce=e=>Qe.faceExpressionNet.load(e),Ece=e=>Qe.ageGenderNet.load(e),Ace=_$,$ce=N$,Fce=C$;var Ig=class extends ka{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Uo=class extends Ig{async run(){let t=await this.parentTask,n=await Bo(t,this.input,async a=>Promise.all(a.map(r=>Qe.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>dg(a,n[r]))}withAgeAndGender(){return new Ho(this,this.input)}},Go=class extends Ig{async run(){let t=await this.parentTask;if(!t)return;let n=await bp(t,this.input,a=>Qe.faceExpressionNet.predictExpressions(a),this.extractedFaces);return dg(t,n)}withAgeAndGender(){return new jo(this,this.input)}},$s=class extends Uo{withAgeAndGender(){return new Ds(this,this.input)}withFaceDescriptors(){return new Gr(this,this.input)}},Fs=class extends Go{withAgeAndGender(){return new Rs(this,this.input)}withFaceDescriptor(){return new Hr(this,this.input)}};var Sg=class extends ka{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Ho=class extends Sg{async run(){let t=await this.parentTask,n=await Bo(t,this.input,async a=>Promise.all(a.map(r=>Qe.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return vg(wg(a,i,o),s)})}withFaceExpressions(){return new Uo(this,this.input)}},jo=class extends Sg{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await bp(t,this.input,s=>Qe.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return vg(wg(t,a,r),n)}withFaceExpressions(){return new Go(this,this.input)}},Ds=class extends Ho{withFaceExpressions(){return new $s(this,this.input)}withFaceDescriptors(){return new Gr(this,this.input)}},Rs=class extends jo{withFaceExpressions(){return new Fs(this,this.input)}withFaceDescriptor(){return new Hr(this,this.input)}};var Td=class extends ka{constructor(n,a){super();this.parentTask=n;this.input=a}},Gr=class extends Td{async run(){let t=await this.parentTask;return(await Bo(t,this.input,a=>Promise.all(a.map(r=>Qe.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>xg(t[r],a))}withFaceExpressions(){return new $s(this,this.input)}withAgeAndGender(){return new Ds(this,this.input)}},Hr=class extends Td{async run(){let t=await this.parentTask;if(!t)return;let n=await bp(t,this.input,a=>Qe.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return xg(t,n)}withFaceExpressions(){return new Fs(this,this.input)}withAgeAndGender(){return new Rs(this,this.input)}};var Nd=class extends ka{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?Qe.faceLandmark68TinyNet:Qe.faceLandmark68Net}},Cd=class extends Nd{async run(){let t=await this.parentTask,n=t.map(i=>i.detection),a=this.input instanceof Te?await up(this.input,n):await lp(this.input,n),r=await Promise.all(a.map(i=>this.landmarkNet.detectLandmarks(i)));return a.forEach(i=>i instanceof Te&&i.dispose()),t.filter((i,o)=>r[o]).map((i,o)=>fp(i,r[o]))}withFaceExpressions(){return new $s(this,this.input)}withAgeAndGender(){return new Ds(this,this.input)}withFaceDescriptors(){return new Gr(this,this.input)}},_d=class extends Nd{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Te?await up(this.input,[n]):await lp(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Te&&s.dispose()),fp(t,r)}withFaceExpressions(){return new Fs(this,this.input)}withAgeAndGender(){return new Rs(this,this.input)}withFaceDescriptor(){return new Hr(this,this.input)}};var Ed=class extends ka{constructor(n,a=new wa){super();this.input=n;this.options=a}},xp=class extends Ed{async run(){let{input:t,options:n}=this,a;if(n instanceof Sd)a=Qe.tinyFaceDetector.locateFaces(t,n);else if(n instanceof wa)a=Qe.ssdMobilenetv1.locateFaces(t,n);else if(n instanceof Qa)a=Qe.tinyYolov2.locateFaces(t,n);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return a}runAndExtendWithFaceDetections(){return new Promise((t,n)=>{this.run().then(a=>t(a.map(r=>Ao({},r)))).catch(a=>n(a))})}withFaceLandmarks(t=!1){return new Cd(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new Uo(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Ho(this.runAndExtendWithFaceDetections(),this.input)}},Ad=class extends Ed{async run(){let t=await new xp(this.input,this.options),n=t[0];return t.forEach(a=>{a.score>n.score&&(n=a)}),n}runAndExtendWithFaceDetection(){return new Promise(async t=>{let n=await this.run();t(n?Ao({},n):void 0)})}withFaceLandmarks(t=!1){return new _d(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Go(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new jo(this.runAndExtendWithFaceDetection(),this.input)}};function Dce(e,t=new wa){return new Ad(e,t)}function Tg(e,t=new wa){return new xp(e,t)}async function E$(e,t){return Tg(e,new wa(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function Rce(e,t={}){return Tg(e,new Qa(t)).withFaceLandmarks().withFaceDescriptors()}var Mce=E$;function U1(e,t){if(e.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let n=Array.from(e),a=Array.from(t);return Math.sqrt(n.map((r,s)=>r-a[s]).reduce((r,s)=>r+s*s,0))}var $d=class{constructor(t,n=.6){this._distanceThreshold=n;let a=Array.isArray(t)?t:[t];if(!a.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let r=1,s=()=>`person ${r++}`;this._labeledDescriptors=a.map(i=>{if(i instanceof gr)return i;if(i instanceof Float32Array)return new gr(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new gr(s(),[i.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,n){return n.map(a=>U1(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new sp(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>gr.fromJSON(a));return new $d(n,t.distanceThreshold)}};function Pce(e){let t=new Vo;return t.extractWeights(e),t}function A$(e,t){let{width:n,height:a}=new yn(t.width,t.height);if(n<=0||a<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:n,height:a})}`);if(Array.isArray(e))return e.map(r=>A$(r,{width:n,height:a}));if(Mo(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return fp(Ao(e,r),s)}return yr(e)?Ao(e,e.detection.forSize(n,a)):e instanceof ra||e instanceof yt?e.forSize(n,a):e}var Oce=YA;return mF(Lce);})(); + ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=t.dataIdMap.get(a.dataId).id,o=t.dataIdMap.get(r.dataId).id,l=t.dataIdMap.get(s.dataId).id,u=a.shape[0],p=v.sizeFromShape(s.shape),d=t.makeOutput([u,p],a.dtype),c=t.dataIdMap.get(d.dataId).id,h=t.makeOutput([p],s.dtype),m=t.dataIdMap.get(h.dataId).id,f=t.makeOutput([3],"int32"),g=t.dataIdMap.get(f.dataId).id;D$(i,o,l,u,c,m,g);let y=t.readSync(f.dataId),b;switch(y[0]){case 0:{b=N.getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(y[1],y[2]);break}case 1:{b=N.getSparseReshapeNegativeOutputDimErrorMessage(y[1],y[2]);break}case 2:b=N.getSparseReshapeEmptyTensorZeroOutputDimErrorMessage();break;case 3:{let x=Array.from(t.readSync(r.dataId)),w=Array.from(t.readSync(h.dataId));b=N.getSparseReshapeInputOutputMultipleErrorMessage(x,w);break}case 4:{let x=Array.from(t.readSync(r.dataId)),w=Array.from(t.readSync(h.dataId));b=N.getSparseReshapeInputOutputMismatchErrorMessage(x,w);break}default:b=""}if(t.disposeData(f.dataId),b)throw t.disposeData(d.dataId),t.disposeData(h.dataId),new Error(b);return[d,h]}var Nue={kernelName:$u,backendName:"wasm",setupFunc:Sue,kernelFunc:Tue},R$;function M$(e){R$=e.wasm.cwrap("SparseSegmentReduction",null,["number","number","number","number","number","number","number","number","number"])}function P$(e,t){let{backend:n,inputs:a}=e,{data:r,indices:s,segmentIds:i}=a,o=s.shape[0],l=n.readSync(i.dataId,o-1,o)[0],u=o>0?l+1:0;if(u<0)throw new Error(N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let p=r.shape.slice();p[0]=u;let d=n.dataIdMap.get(r.dataId).id,c=n.dataIdMap.get(s.dataId).id,h=n.dataIdMap.get(i.dataId).id,m=n.makeOutput(p,r.dtype),f=n.dataIdMap.get(m.dataId).id,g=n.makeOutput([4],"int32"),y=n.dataIdMap.get(g.dataId).id;R$(d,Et[r.dtype],r.shape[0],c,h,f,y,t,0);let b=n.readSync(g.dataId),x;switch(b[0]){case 0:{x=N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{x=N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:x=N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b[1],b[2]);break;case 3:x=N.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(b[1],b[2],b[3]);break;default:x=""}if(n.disposeData(g.dataId),x)throw n.disposeData(m.dataId),new Error(x);return m}function Cue(e){return P$(e,!0)}var _ue={kernelName:wc,backendName:"wasm",setupFunc:M$,kernelFunc:Cue};function Eue(e){return P$(e,!1)}var $ue={kernelName:kc,backendName:"wasm",setupFunc:M$,kernelFunc:Eue};function Aue(e){let{inputs:t,attrs:n,backend:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=n,o=v.parseAxisParam(i,r.shape)[0],l=N.prepareSplitSize(r,s,o),u=new Array(r.shape.length).fill(0),p=r.shape.slice();return l.map(d=>{let c=[...p];c[o]=d;let h=hi({inputs:{x:r},attrs:{begin:u,size:c},backend:a});return u[o]+=d,h})}var Fue={kernelName:Eu,backendName:"wasm",kernelFunc:Aue},Due=an(so),Rue=an(Ic),Mue=!0,Pue=dn(lo,Mue),O$;function Oue(e){O$=e.wasm.cwrap(xs,null,["number","number","number","number"])}function Lue(e){let{backend:t,inputs:n,attrs:a}=e,{alpha:r}=a,{x:s}=n,i=t.dataIdMap.get(s.dataId).id,o=t.makeOutput(s.shape,s.dtype),l=t.dataIdMap.get(o.dataId).id;return O$(i,r,Et[s.dtype],l),o}var zue={kernelName:xs,backendName:"wasm",setupFunc:Oue,kernelFunc:Lue},L$;function Wue(e){L$=e.wasm.cwrap(Au,null,["number","array","number","array","array","array","array","array","number","number"])}function Bue(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a,{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:y,begin:b,end:x,strides:w}=jt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=Wn({inputs:{x:r},backend:t,attrs:{shape:m}});else if(g||y){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=jt.computeOutShape(b,x,w),C=hi({inputs:{x:r},backend:t,attrs:{begin:b,size:T}});I=Wn({inputs:{x:C},backend:t,attrs:{shape:m}}),t.disposeData(C.dataId)}else{let T=t.makeOutput(h,"float32"),C=t.dataIdMap.get(r.dataId).id,E=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),$=new Uint8Array(new Int32Array(b).buffer),R=new Uint8Array(new Int32Array(x).buffer),F=new Uint8Array(new Int32Array(w).buffer),S=new Uint8Array(new Int32Array(h).buffer),M=new Uint8Array(new Int32Array(v.computeStrides(h)).buffer),B=t.dataIdMap.get(T.dataId).id;L$(C,E,r.shape.length,$,R,F,S,M,h.length,B),I=Wn({inputs:{x:T},backend:t,attrs:{shape:m}}),t.disposeData(T.dataId)}return I}var Vue={kernelName:Au,backendName:"wasm",setupFunc:Wue,kernelFunc:Bue};function Uue(e){let{backend:t,inputs:n,attrs:a}=e,{data:r,dataSplits:s}=n,{separator:i,nGramWidths:o,leftPad:l,rightPad:u,padWidth:p,preserveShortSequences:d}=a,c=t.readSync(r.dataId),h=t.readSync(s.dataId),[m,f]=V0(c,h,i,o,l,u,p,d),g=t.makeOutput([m.length],"string"),y=t.dataIdMap.get(g.dataId);y.stringBytes=m;let b=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(b).set(f),[g,b]}var Gue={kernelName:Sc,backendName:"wasm",kernelFunc:Uue};function Hue(e){let{backend:t,inputs:n,attrs:a}=e,{input:r,delimiter:s}=n,{skipEmpty:i}=a,o=t.readSync(r.dataId),l=t.readSync(s.dataId),[u,p,d]=U0(o,l[0],i),c=p.length,h=t.makeOutput([c,2],"int32");t.typedArrayFromHeap(h).set(u);let m=t.makeOutput([c],"string"),f=t.dataIdMap.get(m.dataId);f.stringBytes=p;let g=t.makeOutput([2],"int32");return t.typedArrayFromHeap(g).set(d),[h,m,g]}var jue={kernelName:Tc,backendName:"wasm",kernelFunc:Hue};function que(e){let{backend:t,inputs:n,attrs:a}=e,{input:r}=n,{numBuckets:s}=a,i=t.readSync(r.dataId),o=G0(i,s),l=t.makeOutput(r.shape,"int32");return t.typedArrayFromHeap(l).set(o),l}var Kue={kernelName:Nc,backendName:"wasm",kernelFunc:que},Xue=!0,Yue=dn(uo,Xue),z$;function Zue(e){z$=e.wasm.cwrap(io,null,["number","number","number","number"])}function Jue(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Es(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("sum",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),y=v.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;z$(l,y,Et[b.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(b.shape,c);b.shape=x}return b}var Que={kernelName:io,backendName:"wasm",setupFunc:Zue,kernelFunc:Jue},epe=an(po),tpe=an(co),W$;function npe(e){W$=e.wasm.cwrap(bs,null,["number","array","number","array","number","number"])}function ape(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,s=n.dataIdMap.get(r.dataId).id,{reps:i}=a,o=new Array(r.shape.length);for(let c=0;c{let{x:a}=e,{k:r,sorted:s}=n,i=t.dataIdMap.get(a.dataId).id,o=new Uint8Array(new Int32Array(a.shape).buffer),l=a.shape.slice();l[l.length-1]=r;let u=t.makeOutput(l,a.dtype),p=t.dataIdMap.get(u.dataId).id,d=t.makeOutput(l,"int32"),c=t.dataIdMap.get(d.dataId).id;return B$(i,o,a.shape.length,Et[a.dtype],r,s,p,c),[u,d]},ope={kernelName:Fu,backendName:"wasm",setupFunc:spe,kernelFunc:ipe},V$;function lpe(e){V$=e.wasm.cwrap(Du,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function upe(e){let{backend:t,inputs:n,attrs:a}=e,{image:r,transforms:s}=n,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],y=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),b=new Uint8Array(new Int32Array(v.computeStrides(g)).buffer),x=t.makeOutput(g,r.dtype),w=t.dataIdMap.get(x.dataId).id,I=t.dataIdMap.get(r.dataId).id,T=t.dataIdMap.get(s.dataId).id,C=i==="nearest"?1:2,E;switch(o){case"constant":E=1;break;case"reflect":E=2;break;case"wrap":E=3;break;case"nearest":E=4;break;default:E=1;break}return V$(I,T,s.shape[0]>1,p,m,f,h,c,d,y,r.shape.length-1,b,g.length-1,C,E,l,w),x}var ppe={kernelName:Du,backendName:"wasm",setupFunc:lpe,kernelFunc:upe};function cpe(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r.shape[s],o=r.shape.length,l=new Array(o-1),u=0;for(let h=0;h({dataId:h,dtype:m,shape:l}))}var dpe={kernelName:Ru,backendName:"wasm",kernelFunc:cpe};function hpe(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var mpe={kernelName:Mu,backendName:"wasm",kernelFunc:hpe},fpe=[Use,Gse,jse,Xse,aie,iie,uie,die,gie,kie,Iie,Sie,Cie,_ie,Aie,Rie,Mie,Pie,zie,Vie,Hie,Kie,Zie,Jie,eoe,toe,noe,aoe,ioe,ooe,uoe,doe,foe,boe,woe,Soe,Noe,_oe,Yse,Aoe,Doe,Moe,Poe,Loe,zoe,Boe,Uoe,joe,Koe,Zoe,ele,ale,sle,lle,ple,cle,mle,yle,vle,kle,Tle,Cle,Ele,w$,Dle,Ple,zle,Ble,Ule,Gle,Hle,hie,Kle,Zle,eue,aue,rue,sue,lue,cue,mue,fue,vie,bue,vue,Iue,Nue,_ue,$ue,Fue,Due,Rue,Pue,zue,Vue,Gue,jue,Kue,Yue,Que,epe,tpe,rpe,ope,ppe,eie,dpe,mpe];for(let e of fpe)_c(e);var Sx=H();Sx.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]))}catch(e){return!1}});Sx.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(Sx.get("IS_NODE"))return!1;try{return new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch(e){return!1}});var PI=ms(MF()),gpe=ms(PF()),OI=ms(OF()),LI=PI.default||PI,ype=OI.default||OI,U$=class extends pc{constructor(e){super(),this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(G$),Tx=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new om(this,_a())}write(e,t,n){let a={id:this.dataIdNextNumber++};return this.move(a,e,t,n,1),a}numDataIds(){return this.dataIdMap.numDataIds()}async time(e){let t=v.now();return e(),{kernelMs:v.now()-t}}move(e,t,n,a,r){let s=this.dataIdNextNumber++;if(a==="string"){let u=t;this.dataIdMap.set(e,{id:s,stringBytes:u,shape:n,dtype:a,memoryOffset:null,refCount:r});return}let i=v.sizeFromShape(n),o=i*v.bytesPerElement(a),l=this.wasm._malloc(o);this.dataIdMap.set(e,{id:s,memoryOffset:l,shape:n,dtype:a,refCount:r}),this.wasm.tfjs.registerTensor(s,i,l),t!=null&&this.wasm.HEAPU8.set(new Uint8Array(t.buffer,t.byteOffset,o),l)}async read(e){return this.readSync(e)}readSync(e,t,n){let{memoryOffset:a,dtype:r,shape:s,stringBytes:i}=this.dataIdMap.get(e);if(r==="string")return(t==null||t===0)&&(n==null||n>=i.length)?i:i.slice(t,n);t=t||0,n=n||v.sizeFromShape(s);let o=v.bytesPerElement(r),l=this.wasm.HEAPU8.slice(a+t*o,a+n*o);return vpe(l.buffer,r)}disposeData(e,t=!1){if(this.dataIdMap.has(e)){let n=this.dataIdMap.get(e);if(n.refCount--,!t&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(e)}return!0}refCount(e){return this.dataIdMap.has(e)?this.dataIdMap.get(e).refCount:0}incRef(e){let t=this.dataIdMap.get(e);t!=null&&t.refCount++}floatPrecision(){return 32}getMemoryOffset(e){return this.dataIdMap.get(e).memoryOffset}dispose(){this.wasm.tfjs.dispose(),"PThread"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,n){let a;if(n==null)a=this.write(null,e,t);else{let r=this.dataIdNextNumber++;a={id:r},this.dataIdMap.set(a,{id:r,memoryOffset:n,shape:e,dtype:t,refCount:1});let s=v.sizeFromShape(e);this.wasm.tfjs.registerTensor(r,s,n)}return{dataId:a,shape:e,dtype:t}}typedArrayFromHeap({shape:e,dtype:t,dataId:n}){let a=this.wasm.HEAPU8.buffer,{memoryOffset:r}=this.dataIdMap.get(n),s=v.sizeFromShape(e);switch(t){case"float32":return new Float32Array(a,r,s);case"int32":return new Int32Array(a,r,s);case"bool":return new Uint8Array(a,r,s);default:throw new Error(`Unknown dtype ${t}`)}}};function bpe(e){return(t,n)=>(v.fetch(e,{credentials:"same-origin"}).then(a=>{a.ok||t.env.a(`failed to load wasm binary file at '${e}'`),a.arrayBuffer().then(r=>{WebAssembly.instantiate(r,t).then(s=>{n(s.instance,s.module)})})}),{})}function zI(e,t,n){if(sm!=null)return sm;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),jp!=null&&jp[a]!=null?jp[a]:n+a}async function xpe(){let[e,t]=await Promise.all([H().getAsync("WASM_HAS_SIMD_SUPPORT"),H().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(o,l)=>{if(o.endsWith(".worker.js")){let u=gpe.wasmWorkerContents.replace(/\n/g,"\\n"),p=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(p)}return o.endsWith(".wasm")?zI(e,t,Up!=null?Up:l):l+o},p1&&(r.instantiateWasm=bpe(zI(e,t,Up!=null?Up:"")));let s=!1;r.onAbort=()=>{s||qp||(qp=!0,a({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"}))};let i;t&&e&&sm==null?(r.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+LI.toString()],{type:"text/javascript"}),i=LI(r)):i=ype(r),i.then(o=>{s=!0,qp=!1;let l=null;o.tfjs={init:o.cwrap("init",null,[]),initWithThreadsCount:o.cwrap("init_with_threads_count",null,["number"]),getThreadsCount:o.cwrap("get_threads_count","number",[]),registerTensor:o.cwrap("register_tensor",null,["number","number","number"]),disposeData:o.cwrap("dispose_data",l,["number"]),dispose:o.cwrap("dispose",l,[])},n({wasm:o})}).catch(a)})}function vpe(e,t){switch(t){case"float32":return new Float32Array(e);case"int32":return new Int32Array(e);case"bool":return new Uint8Array(e);default:throw new Error(`Unknown dtype ${t}`)}}var wpe=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],sm=null,Up=null,jp={},qp=!1,p1=!1;function kpe(e,t=!1){if(Vx("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),qp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");sm=e,p1=t}function Ipe(e,t=!1){if(qp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof e=="string")Up=e;else{jp=e;let n=wpe.filter(a=>jp[a]==null);if(n.length>0)throw new Error(`There were no entries found for the following binaries: ${n.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}p1=t}var G$=-1,Tx=-1;function Spe(e){G$=e}function Tpe(){if(Tx===-1)throw new Error("WASM backend not initialized.");return Tx}var Npe="4.0.0",Cpe=2;Gm("wasm",async()=>{let{wasm:e}=await xpe();return new U$(e)},Cpe);var WI="4.0.0",_pe="4.0.0",Epe="4.0.0",$pe="4.0.0",Ape="4.0.0",Fpe={tfjs:WI,"tfjs-core":WI,"tfjs-converter":_pe,"tfjs-backend-cpu":Epe,"tfjs-backend-webgl":$pe,"tfjs-backend-wasm":Ape};var M1={};rh(M1,{AnchorPosition:()=>N1,DrawBox:()=>md,DrawBoxOptions:()=>ag,DrawFaceLandmarks:()=>mg,DrawFaceLandmarksOptions:()=>hg,DrawTextField:()=>zr,DrawTextFieldOptions:()=>op,drawContour:()=>Pr,drawDetections:()=>Bpe,drawFaceExpressions:()=>jpe,drawFaceLandmarks:()=>Kpe});function Pr(e,t,n=!1){if(e.beginPath(),t.slice(1).forEach(({x:a,y:r},s)=>{let i=t[s];e.moveTo(i.x,i.y),e.lineTo(a,r)}),n){let a=t[t.length-1],r=t[0];if(!a||!r)return;e.moveTo(a.x,a.y),e.lineTo(r.x,r.y)}e.stroke()}var m1={};rh(m1,{computeReshapedDimensions:()=>h1,getCenterPoint:()=>No,isDimensions:()=>tg,isEven:()=>eg,isFloat:()=>d1,isTensor:()=>So,isTensor1D:()=>Dpe,isTensor2D:()=>c1,isTensor3D:()=>Or,isTensor4D:()=>va,isValidNumber:()=>Ya,isValidProbablitiy:()=>rp,range:()=>fr,round:()=>To});var yn=class{constructor(t,n){if(!Ya(t)||!Ya(n))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:n})}`);this._width=t,this._height=n}get width(){return this._width}get height(){return this._height}reverse(){return new yn(1/this.width,1/this.height)}};function So(e,t){return e instanceof Te&&e.shape.length===t}function Dpe(e){return So(e,1)}function c1(e){return So(e,2)}function Or(e){return So(e,3)}function va(e){return So(e,4)}function d1(e){return e%1!==0}function eg(e){return e%2===0}function To(e,t=2){let n=10**t;return Math.floor(e*n)/n}function tg(e){return e&&e.width&&e.height}function h1({width:e,height:t},n){let a=n/Math.max(t,e);return new yn(Math.round(e*a),Math.round(t*a))}function No(e){return e.reduce((t,n)=>t.add(n),new De(0,0)).div(new De(e.length,e.length))}function fr(e,t,n){return Array(e).fill(0).map((a,r)=>t+r*n)}function Ya(e){return!!e&&e!==1/0&&e!==-1/0&&!Number.isNaN(e)||e===0}function rp(e){return Ya(e)&&e>=0&&e<=1}var De=class{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new De(this.x+t.x,this.y+t.y)}sub(t){return new De(this.x-t.x,this.y-t.y)}mul(t){return new De(this.x*t.x,this.y*t.y)}div(t){return new De(this.x/t.x,this.y/t.y)}abs(){return new De(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new De(Math.floor(this.x),Math.floor(this.y))}};var st=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(Ya)}static assertIsValidBox(t,n,a=!1){if(!st.isRect(t))throw new Error(`${n} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!a&&(t.width<0||t.height<0))throw new Error(`${n} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,n=!0){let a=t||{},r=[a.left,a.top,a.right,a.bottom].every(Ya),s=[a.x,a.y,a.width,a.height].every(Ya);if(!s&&!r)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(a)}`);let[i,o,l,u]=s?[a.x,a.y,a.width,a.height]:[a.left,a.top,a.right-a.left,a.bottom-a.top];st.assertIsValidBox({x:i,y:o,width:l,height:u},"Box.constructor",n),this._x=i,this._y=o,this._width=l,this._height=u}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new De(this.left,this.top)}get topRight(){return new De(this.right,this.top)}get bottomLeft(){return new De(this.left,this.bottom)}get bottomRight(){return new De(this.right,this.bottom)}round(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new st({x:t,y:n,width:a,height:r})}floor(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new st({x:t,y:n,width:a,height:r})}toSquare(){let{x:t,y:n,width:a,height:r}=this,s=Math.abs(a-r);return an&&(o=-d+n+a,d=n),c>t&&(l=-c+t+r,c=t),u<1&&(l=2-u,u=1),p<1&&(l=2-p,p=1),{dy:i,edy:l,dx:s,edx:o,y:p,ey:c,x:u,ex:d,w:a,h:r}}calibrate(t){return new st({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var Co=class extends st{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var Lr=class{constructor(t,n,a,r,s){this._imageDims=new yn(s.width,s.height),this._score=t,this._classScore=n,this._className=a,this._box=new st(r).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new st(this._box).rescale(this.imageDims.reverse())}forSize(t,n){return new Lr(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var yt=class extends Lr{constructor(t,n,a){super(t,t,"",n,a)}forSize(t,n){let{score:a,relativeBox:r,imageDims:s}=super.forSize(t,n);return new yt(a,r,s)}};function f1(e,t,n=!0){let a=Math.max(0,Math.min(e.right,t.right)-Math.max(e.left,t.left)),r=Math.max(0,Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top)),s=a*r;return n?s/(e.area+t.area-s):s/Math.min(e.area,t.area)}function g1(e){let t=e.map(o=>o.x),n=e.map(o=>o.y),a=t.reduce((o,l)=>lloo({score:i,boxIndex:o})).sort((i,o)=>i.score-o.score).map(i=>i.boxIndex),s=[];for(;r.length>0;){let i=r.pop();s.push(i);let o=r,l=[];for(let u=0;ul[p]<=n)}return s}function Za(e,t){return P(()=>{let[n,a,r]=t,s=gn([...e.shape.slice(0,3),1],n,"float32"),i=gn([...e.shape.slice(0,3),1],a,"float32"),o=gn([...e.shape.slice(0,3),1],r,"float32"),l=Ze([s,i,o],3);return pe(e,l)})}function b1(e,t=!1){return P(()=>{let[n,a]=e.shape.slice(1);if(n===a)return e;let r=Math.abs(n-a),s=Math.round(r*(t?.5:1)),i=n>a?2:1,o=c=>{let h=e.shape.slice();return h[i]=c,gn(h,0,"float32")},l=o(s),u=r-l.shape[i],d=[t&&u?o(u):null,e,l].filter(c=>!!c).map(c=>le(c,"float32"));return Ze(d,i)})}function Rpe(e){let t=e.slice();for(let n=t.length-1;n>0;n--){let a=Math.floor(Math.random()*(n+1)),r=t[n];t[n]=t[a],t[a]=r}return t}function dd(e){return 1/(1+Math.exp(-e))}function Mpe(e){return Math.log(e/(1-e))}var _o=class extends st{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var Ppe=.5,Ope=.43,Lpe=.45,ra=class{constructor(t,n,a=new De(0,0)){let{width:r,height:s}=n;this._imgDims=new yn(r,s),this._shift=a,this._positions=t.map(i=>i.mul(new De(r,s)).add(a))}get shift(){return new De(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new De(this.imageWidth,this.imageHeight)))}forSize(t,n){return new this.constructor(this.relativePositions,{width:t,height:n})}shiftBy(t,n){return new this.constructor(this.relativePositions,this._imgDims,new De(t,n))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,n={}){if(t){let s=t instanceof yt?t.box.floor():new st(t);return this.shiftBy(s.x,s.y).align(null,n)}let{useDlibAlignment:a,minBoxPadding:r}={useDlibAlignment:!1,minBoxPadding:.2,...n};return a?this.alignDlib():this.alignMinBbox(r)}alignDlib(){let t=this.getRefPointsForAlignment(),[n,a,r]=t,s=d=>r.sub(d).magnitude(),i=(s(n)+s(a))/2,o=Math.floor(i/Lpe),l=No(t),u=Math.floor(Math.max(0,l.x-Ppe*o)),p=Math.floor(Math.max(0,l.y-Ope*o));return new _o(u,p,Math.min(o,this.imageWidth+u),Math.min(o,this.imageHeight+p))}alignMinBbox(t){let n=g1(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var x1=class extends ra{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],No([t[3],t[4]])]}};var Eo=class extends ra{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(No)}};var sp=class{constructor(t,n){this._label=t,this._distance=n}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${To(this.distance)})`:""}`}};var ip=class extends st{constructor(n,a){super(n);this._label=a}static assertIsValidLabeledBox(n,a){if(st.assertIsValidBox(n,a),!Ya(n.label))throw new Error(`${a} - expected property label (${n.label}) to be a number`)}get label(){return this._label}};var gr=class{constructor(t,n){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(n)||n.some(a=>!(a instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=n}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let n=t.descriptors.map(a=>new Float32Array(a));return new gr(t.label,n)}};var v1=class extends ip{constructor(n,a,r,s){super(n,a);this._score=r,this._classScore=s}static assertIsValidPredictedBox(n,a){if(ip.assertIsValidLabeledBox(n,a),!rp(n.score)||!rp(n.classScore))throw new Error(`${a} - expected properties score (${n.score}) and (${n.classScore}) to be a number between [0, 1]`)}get score(){return this._score}get classScore(){return this._classScore}};function yr(e){return e.detection instanceof yt}function $o(e,t){return{...e,...{detection:t}}}function w1(){let e=window.fetch;if(!e)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),createVideoElement:()=>document.createElement("video"),fetch:e,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function hd(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function ng(e){let t="";if(!e&&hd())try{e=Xr("fs")}catch(a){t=a.toString()}return{readFile:e?a=>new Promise((r,s)=>{e.readFile(a,(i,o)=>i?s(i):r(o))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function k1(){let e=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,n=global.Video||global.HTMLVideoElement,a=()=>{if(e)return new e;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},r=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},s=()=>{if(n)return new n;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},i=global.fetch,o=ng();return{Canvas:e||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:a,createImageElement:r,createVideoElement:s,fetch:i,...o}}function I1(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var rn;function zpe(){if(!rn)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return rn}function S1(e){rn=e}function T1(){return I1()?S1(w1()):hd()?S1(k1()):null}function Wpe(e){if(rn||T1(),!rn)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=rn.Canvas,Image:n=rn.Image}=e;rn.Canvas=t,rn.Image=n,rn.createCanvasElement=e.createCanvasElement||(()=>new t),rn.createImageElement=e.createImageElement||(()=>new n),rn.ImageData=e.ImageData||rn.ImageData,rn.Video=e.Video||rn.Video,rn.fetch=e.fetch||rn.fetch,rn.readFile=e.readFile||rn.readFile}var Je={getEnv:zpe,setEnv:S1,initialize:T1,createBrowserEnv:w1,createFileSystem:ng,createNodejsEnv:k1,monkeyPatch:Wpe,isBrowser:I1,isNodejs:hd};T1();function Ao(e){return!Je.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function Gn(e){let{Canvas:t,CanvasRenderingContext2D:n}=Je.getEnv();if(e instanceof n)return e;let a=Ao(e);if(!(a instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let r=a.getContext("2d");if(!r)throw new Error("resolveContext2d - canvas 2d context is null");return r}var N1=(r=>(r.TOP_LEFT="TOP_LEFT",r.TOP_RIGHT="TOP_RIGHT",r.BOTTOM_LEFT="BOTTOM_LEFT",r.BOTTOM_RIGHT="BOTTOM_RIGHT",r))(N1||{}),op=class{constructor(t={}){let{anchorPosition:n,backgroundColor:a,fontColor:r,fontSize:s,fontStyle:i,padding:o}=t;this.anchorPosition=n||"TOP_LEFT",this.backgroundColor=a||"rgba(0, 0, 0, 0.5)",this.fontColor=r||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=i||"Georgia",this.padding=o||4}},zr=class{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof zr?t.text:t,this.anchor=n,this.options=new op(a)}measureWidth(t){let{padding:n}=this.options;return this.text.map(a=>t.measureText(a).width).reduce((a,r)=>a{let m=l+d.x,f=l+d.y+(h+1)*i;a.fillText(c,m,f)})}};var ag=class{constructor(t={}){let{boxColor:n,lineWidth:a,label:r,drawLabelOptions:s}=t;this.boxColor=n||"rgba(0, 0, 255, 1)",this.lineWidth=a||2,this.label=r;let i={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new op({...i,...s})}},md=class{constructor(t,n={}){this.box=new st(t),this.options=new ag(n)}draw(t){let n=Gn(t),{boxColor:a,lineWidth:r}=this.options,{x:s,y:i,width:o,height:l}=this.box;n.strokeStyle=a,n.lineWidth=r,n.strokeRect(s,i,o,l);let{label:u}=this.options;u&&new zr([u],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function Bpe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof yt?a.score:yr(a)?a.detection.score:void 0,s=a instanceof yt?a.box:yr(a)?a.detection.box:new st(a),i=r?`${To(r)}`:void 0;new md(s,{label:i}).draw(e)})}function fd(e){let{Image:t,Video:n}=Je.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function C1(e){return new Promise((t,n)=>{(e instanceof Je.getEnv().Canvas||fd(e))&&t(null);function a(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),n(s))}function r(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),t(s))}e.addEventListener("load",r),e.addEventListener("error",a)})}function _1(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToImage - expected buf to be of type: Blob"));let a=new FileReader;a.onload=()=>{typeof a.result!="string"&&n(new Error("bufferToImage - expected reader.result to be a string, in onload"));let r=Je.getEnv().createImageElement();r.onload=()=>t(r),r.onerror=n,r.src=a.result},a.onerror=n,a.readAsDataURL(e)})}function Fo(e){let{Image:t,Video:n}=Je.getEnv();return e instanceof t?new yn(e.naturalWidth,e.naturalHeight):e instanceof n?new yn(e.videoWidth,e.videoHeight):new yn(e.width,e.height)}function Do({width:e,height:t}){let{createCanvasElement:n}=Je.getEnv(),a=n();return a.width=e,a.height=t,a}function gd(e,t){let{ImageData:n}=Je.getEnv();if(!(e instanceof n)&&!fd(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||Fo(e),s=Do({width:a,height:r});return e instanceof n?Gn(s).putImageData(e,0,0):Gn(s).drawImage(e,0,0,a,r),s}async function E1(e,t){let n=t||Je.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(va(e)?1:0),i=P(()=>e.as3D(a,r,s).toInt());return await ho.toPixels(i,n),i.dispose(),n}function rg(e){let{Image:t,Canvas:n,Video:a}=Je.getEnv();return e instanceof t||e instanceof n||e instanceof a}function $1(e,t,n=!1){let{Image:a,Canvas:r}=Je.getEnv();if(!(e instanceof a||e instanceof r))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Do({width:1,height:1});let s=Fo(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,u=Do({width:t,height:t}),p=e instanceof r?e:gd(e),d=Math.abs(o-l)/2,c=n&&o0&&p.height>0&&Gn(u).drawImage(p,c,h,o,l),u}var br=class{constructor(t,n=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=n,this._batchSize=t.length,t.forEach((a,r)=>{if(Or(a)){this._imageTensors[r]=a,this._inputDimensions[r]=a.shape;return}if(va(a)){let i=a.shape[0];if(i!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${i} passed, but not supported in input array`);this._imageTensors[r]=a,this._inputDimensions[r]=a.shape.slice(1);return}let s=a instanceof Je.getEnv().Canvas?a:gd(a);this._canvases[r]=s,this._inputDimensions[r]=[s.height,s.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return fr(this.batchSize,0,1).map((t,n)=>this.getReshapedInputDimensions(n))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let n=this.getInputWidth(t),a=this.getInputHeight(t);return h1({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,P(()=>{let a=fr(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof Te){let o=va(i)?i:Zt(i);return o=b1(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=za.resizeBilinear(o,[t,t],!1,!1)),o.as3D(t,t,3)}if(i instanceof Je.getEnv().Canvas)return ho.fromPixels($1(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return Ft(a.map(s=>le(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function bt(e){if(e instanceof br)return e;let t=Array.isArray(e)?e:[e];if(!t.length)throw new Error("toNetInput - empty array passed as input");let n=r=>Array.isArray(e)?` at input index ${r}:`:"",a=t.map(Ao);return a.forEach((r,s)=>{if(!rg(r)&&!Or(r)&&!va(r))throw typeof t[s]=="string"?new Error(`toNetInput -${n(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${n(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(va(r)){let i=r.shape[0];if(i!==1)throw new Error(`toNetInput -${n(s)} tf.Tensor4D with batchSize ${i} passed, but not supported in input array`)}}),await Promise.all(a.map(r=>rg(r)&&C1(r))),new br(a,Array.isArray(e))}async function lp(e,t){let{Canvas:n}=Je.getEnv(),a=e;if(!(e instanceof n)){let i=await bt(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await E1(o)}let r=Gn(a);return t.map(i=>i instanceof yt?i.forSize(a.width,a.height).box.floor():i).map(i=>i.clipAtImageBorders(a.width,a.height)).map(({x:i,y:o,width:l,height:u})=>{let p=Do({width:l,height:u});return l>0&&u>0&&Gn(p).putImageData(r.getImageData(i,o,l,u),0,0),p})}async function up(e,t){if(!Or(e)&&!va(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(va(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return P(()=>{let[n,a,r]=e.shape.slice(va(e)?1:0);return t.map(o=>o instanceof yt?o.forSize(a,n).box:o).map(o=>o.clipAtImageBorders(a,n)).filter(o=>o.width>0&&o.height>0).map(({x:o,y:l,width:u,height:p})=>fo(e.as3D(n,a,r),[l,o,0],[p,u,r]))})}async function Wr(e,t){let{fetch:n}=Je.getEnv(),a=await n(e,t);if(!(a.status<400))throw new Error(`failed to fetch: (${a.status}) ${a.statusText}, from url: ${a.url}`);return a}async function Vpe(e){let t=await Wr(e),n=await t.blob();if(!n.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${n.type}, for url: ${t.url}`);return _1(n)}async function A1(e){return(await Wr(e)).json()}async function Upe(e){return new Float32Array(await(await Wr(e)).arrayBuffer())}function H$(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToVideo - expected buf to be of type: Blob"));let a=Je.getEnv().createVideoElement();a.oncanplay=()=>t(a),a.onerror=n,a.playsInline=!0,a.muted=!0,a.src=URL.createObjectURL(e),a.play()})}async function Gpe(e){let t=await Wr(e),n=await t.blob();if(!n.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${n.type}, for url: ${t.url}`);return H$(n)}function sg(e,t){let n=`${t}-weights_manifest.json`;if(!e)return{modelBaseUri:"",manifestUri:n};if(e==="/")return{modelBaseUri:"/",manifestUri:`/${n}`};let a=e.startsWith("http://")?"http://":e.startsWith("https://")?"https://":"";e=e.replace(a,"");let r=e.split("/").filter(o=>o),s=e.endsWith(".json")?r[r.length-1]:n,i=a+(e.endsWith(".json")?r.slice(0,r.length-1):r).join("/");return i=e.startsWith("/")?`/${i}`:i,{modelBaseUri:i,manifestUri:i==="/"?`/${s}`:`${i}/${s}`}}async function F1(e,t){let{manifestUri:n,modelBaseUri:a}=sg(e,t),r=await A1(n);return Ut.loadWeights(r,a)}function Hpe(e,t,n=!1){let{width:a,height:r}=n?Fo(t):t;return e.width=a,e.height=r,{width:a,height:r}}var sn=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:n,objProp:a}=this.traversePropertyPath(t);return n[a]}reassignParamFromPath(t,n){let{obj:a,objProp:r}=this.traversePropertyPath(t);a[r].dispose(),a[r]=n}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof is)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof is))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=In(n.dataSync());n.dispose(),this.reassignParamFromPath(t,a)})}dispose(t=!0){this.getParamList().forEach(n=>{if(t&&n.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${n.path}`);n.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,n)=>t.concat(n)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let n=await F1(t,this.getDefaultModelName());this.loadFromWeightMap(n)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:n}=Je.getEnv(),{manifestUri:a,modelBaseUri:r}=sg(t,this.getDefaultModelName()),s=u=>Promise.all(u.map(p=>n(p).then(d=>d.buffer))),i=Ut.weightsLoaderFactory(s),o=JSON.parse((await n(a)).toString()),l=await i(o,r);this.loadFromWeightMap(l)}loadFromWeightMap(t){let{paramMappings:n,params:a}=this.extractParamsFromWeightMap(t);this._paramMappings=n,this._params=a}extractWeights(t){let{paramMappings:n,params:a}=this.extractParams(t);this._paramMappings=n,this._params=a}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let n=t.split("/").reduce((s,i)=>{if(!s.nextObj.hasOwnProperty(i))throw new Error(`traversePropertyPath - object does not have property ${i}, for path ${t}`);return{obj:s.nextObj,objProp:i,nextObj:s.nextObj[i]}},{nextObj:this.params}),{obj:a,objProp:r}=n;if(!a||!r||!(a[r]instanceof Te))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:a,objProp:r}}};function Hn(e,t,n){return P(()=>{let a=Ts(e,t.depthwise_filter,t.pointwise_filter,n,"same");return a=Y(a,t.bias),a})}function ig(e,t,n=!1){return P(()=>{let a=Xe(n?Y(At(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Hn(e,t.conv0,[2,2])),r=Hn(a,t.conv1,[1,1]),s=Xe(Y(a,r)),i=Hn(s,t.conv2,[1,1]);return Xe(Y(a,Y(r,i)))})}function yd(e,t,n=!1,a=!0){return P(()=>{let r=Xe(n?Y(At(e,t.conv0.filters,a?[2,2]:[1,1],"same"),t.conv0.bias):Hn(e,t.conv0,a?[2,2]:[1,1])),s=Hn(r,t.conv1,[1,1]),i=Xe(Y(r,s)),o=Hn(i,t.conv2,[1,1]),l=Xe(Y(r,Y(s,o))),u=Hn(l,t.conv3,[1,1]);return Xe(Y(r,Y(s,Y(o,u))))})}function Ro(e,t,n="same",a=!1){return P(()=>{let r=Y(At(e,t.filters,[1,1],n),t.bias);return a?Xe(r):r})}function $n(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function pp(e,t){return(n,a,r,s)=>{let i=Da(e(n*a*r*r),[r,r,n,a]),o=Ke(e(a));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:o}}}function og(e,t){return(n,a,r)=>{let s=$a(e(n*a),[n,a]),i=Ke(e(a));return t.push({paramPath:`${r}/weights`},{paramPath:`${r}/bias`}),{weights:s,bias:i}}}var bd=class{constructor(t,n,a){this.depthwise_filter=t;this.pointwise_filter=n;this.bias=a}};function cp(e,t){return(n,a,r)=>{let s=Da(e(9*n),[3,3,n,1]),i=Da(e(n*a),[1,1,n,a]),o=Ke(e(a));return t.push({paramPath:`${r}/depthwise_filter`},{paramPath:`${r}/pointwise_filter`},{paramPath:`${r}/bias`}),new bd(s,i,o)}}function dp(e){return t=>{let n=e(`${t}/depthwise_filter`,4),a=e(`${t}/pointwise_filter`,4),r=e(`${t}/bias`,1);return new bd(n,a,r)}}function sa(e,t){return(n,a,r)=>{let s=e[n];if(!So(s,a))throw new Error(`expected weightMap[${n}] to be a Tensor${a}D, instead have ${s}`);return t.push({originalPath:n,paramPath:r||n}),s}}function An(e){let t=e;function n(r){let s=t.slice(0,r);return t=t.slice(r),s}function a(){return t}return{extractWeights:n,getRemainingWeights:a}}function lg(e,t){let n=pp(e,t),a=cp(e,t);function r(i,o,l,u=!1){let p=u?n(i,o,3,`${l}/conv0`):a(i,o,`${l}/conv0`),d=a(o,o,`${l}/conv1`),c=a(o,o,`${l}/conv2`);return{conv0:p,conv1:d,conv2:c}}function s(i,o,l,u=!1){let{conv0:p,conv1:d,conv2:c}=r(i,o,l,u),h=a(o,o,`${l}/conv3`);return{conv0:p,conv1:d,conv2:c,conv3:h}}return{extractDenseBlock3Params:r,extractDenseBlock4Params:s}}function j$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=An(e),{extractDenseBlock4Params:r}=lg(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2"),l=r(128,256,"dense3");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o,dense3:l}}}function ug(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function pg(e,t){let n=sa(e,t),a=ug(n),r=dp(n);function s(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),p=r(`${o}/conv1`),d=r(`${o}/conv2`);return{conv0:u,conv1:p,conv2:d}}function i(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),p=r(`${o}/conv1`),d=r(`${o}/conv2`),c=r(`${o}/conv3`);return{conv0:u,conv1:p,conv2:d,conv3:c}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:i}}function q$(e){let t=[],{extractDenseBlock4Params:n}=pg(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return $n(e,t),{params:a,paramMappings:t}}var hp=class extends sn{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return P(()=>{let a=le(t.toBatchTensor(112,!0),"float32"),s=Za(a,[122.782,117.001,104.298]).div(255),i=yd(s,n.dense0,!0);return i=yd(i,n.dense1),i=yd(i,n.dense2),i=yd(i,n.dense3),i=ya(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await bt(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return q$(t)}extractParams(t){return j$(t)}};function xd(e,t){return P(()=>Y(Fe(e,t.weights),t.bias))}function K$(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=An(e),o=og(r,a)(t,n,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:a,params:{fc:o}}}function X$(e){let t=[],n=sa(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:a("fc")};return $n(e,t),{params:r,paramMappings:t}}function cg(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=a.startsWith("fc")?n:t;r[a]=e[a]}),{featureExtractorMap:t,classifierMap:n}}var mp=class extends sn{constructor(n,a){super(n);this._faceFeatureExtractor=a}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(n){let{params:a}=this;if(!a)throw new Error(`${this._name} - load model before inference`);return P(()=>{let r=n instanceof br?this.faceFeatureExtractor.forwardInput(n):n;return xd(r.as2D(r.shape[0],-1),a.fc)})}dispose(n=!0){this.faceFeatureExtractor.dispose(n),super.dispose(n)}loadClassifierParams(n){let{params:a,paramMappings:r}=this.extractClassifierParams(n);this._params=a,this._paramMappings=r}extractClassifierParams(n){return K$(n,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=cg(n);return this.faceFeatureExtractor.loadFromWeightMap(a),X$(r)}extractParams(n){let a=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),s=r*a+r,i=n.slice(0,n.length-s),o=n.slice(n.length-s);return this.faceFeatureExtractor.extractWeights(i),this.extractClassifierParams(o)}};var D1=["neutral","happy","sad","angry","fearful","disgusted","surprised"],Br=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);D1.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return D1.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var vd=class extends mp{constructor(t=new hp){super("FaceExpressionNet",t)}forwardInput(t){return P(()=>Ka(this.runNet(t)))}async forward(t){return this.forwardInput(await bt(t))}async predictExpressions(t){let n=await bt(t),a=await this.forwardInput(n),r=await Promise.all(ct(a).map(async i=>{let o=i.dataSync();return i.dispose(),o}));a.dispose();let s=r.map(i=>new Br(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function R1(e){return e.expressions instanceof Br}function dg(e,t){return{...e,...{expressions:t}}}function jpe(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof Br?s:R1(s)?s.expressions:void 0;if(!i)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let l=i.asSortedArray().filter(d=>d.probability>n),u=yr(s)?s.detection.box.bottomLeft:a||new De(0,0);new zr(l.map(d=>`${d.expression} (${To(d.probability)})`),u).draw(e)})}function Mo(e){return yr(e)&&e.landmarks instanceof ra&&e.unshiftedLandmarks instanceof ra&&e.alignedRect instanceof yt}function qpe(e){let t=l=>l*180/Math.PI,n=(l,u)=>Math.sqrt((l._x-u._x)**2+(l._y-u._y)**2),a={roll:void 0,pitch:void 0,yaw:void 0},r=(l,u,p)=>{let d=Math.floor(l._x-u._x),c=Math.floor(u._x-p._x);return d-c},s=(l,u)=>{let p=Math.hypot(u._x-l._x,u._y-l._y),d=u._y-l._y,c=Math.asin(d/p),h=t(c),m=Math.floor(90-h),f=u._x-l._x<0?-1:1;return m*f},i=(l,u,p)=>{let d=n(l,p),c={_x:(l._x+p._x)/2,_y:(l._y+p._y)/2},h=n(u,c),m=Math.atan(h/d),f=Math.floor(t(m)),g=c._y-u._y<0?-1:1;return f*g};if(!e||!e._positions||e._positions.length!==68)return a;let o=e._positions;return a.roll=s(o[27],o[66]),a.pitch=i(o[14],o[30],o[2]),a.yaw=r(o[14],o[33],o[2]),a}function fp(e,t){let{box:n}=e.detection,a=t.shiftBy(n.x,n.y),r=a.align(),{imageDims:s}=e.detection,i=new yt(e.detection.score,r.rescale(s.reverse()),s),o=qpe(t);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i,angle:o}}}var hg=class{constructor(t={}){let{drawLines:n=!0,drawPoints:a=!0,lineWidth:r,lineColor:s,pointSize:i,pointColor:o}=t;this.drawLines=n,this.drawPoints=a,this.lineWidth=r||1,this.pointSize=i||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=o||"rgba(255, 0, 255, 1)"}},mg=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new hg(n)}draw(t){let n=Gn(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof Eo&&(n.strokeStyle=i,n.lineWidth=s,Pr(n,this.faceLandmarks.getJawOutline()),Pr(n,this.faceLandmarks.getLeftEyeBrow()),Pr(n,this.faceLandmarks.getRightEyeBrow()),Pr(n,this.faceLandmarks.getNose()),Pr(n,this.faceLandmarks.getLeftEye(),!0),Pr(n,this.faceLandmarks.getRightEye(),!0),Pr(n,this.faceLandmarks.getMouth(),!0)),r){n.strokeStyle=l,n.fillStyle=l;let u=p=>{n.beginPath(),n.arc(p.x,p.y,o,0,2*Math.PI),n.fill()};this.faceLandmarks.positions.forEach(u)}}};function Kpe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof ra?a:Mo(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new mg(r).draw(e)})}var Y$="1.7.6";function Zpe(e,t){let n=pp(e,t),a=cp(e,t);function r(i,o,l){let u=a(i,o,`${l}/separable_conv0`),p=a(o,o,`${l}/separable_conv1`),d=n(i,o,1,`${l}/expansion_conv`);return{separable_conv0:u,separable_conv1:p,expansion_conv:d}}function s(i,o){let l=a(i,i,`${o}/separable_conv0`),u=a(i,i,`${o}/separable_conv1`),p=a(i,i,`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:p}}return{extractConvParams:n,extractSeparableConvParams:a,extractReductionBlockParams:r,extractMainBlockParams:s}}function Z$(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=An(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=Zpe(a,n),u=s(3,32,3,"entry_flow/conv_in"),p=o(32,64,"entry_flow/reduction_block_0"),d=o(64,128,"entry_flow/reduction_block_1"),c={conv_in:u,reduction_block_0:p,reduction_block_1:d},h={};fr(t,0,1).forEach(y=>{h[`main_block_${y}`]=l(128,`middle_flow/main_block_${y}`)});let m=o(128,256,"exit_flow/reduction_block"),f=i(256,512,"exit_flow/separable_conv"),g={reduction_block:m,separable_conv:f};if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:n,params:{entry_flow:c,middle_flow:h,exit_flow:g}}}function Jpe(e,t){let n=sa(e,t),a=ug(n),r=dp(n);function s(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),p=a(`${o}/expansion_conv`);return{separable_conv0:l,separable_conv1:u,expansion_conv:p}}function i(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),p=r(`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:p}}return{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}}function J$(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=Jpe(e,n),o=a("entry_flow/conv_in"),l=s("entry_flow/reduction_block_0"),u=s("entry_flow/reduction_block_1"),p={conv_in:o,reduction_block_0:l,reduction_block_1:u},d={};fr(t,0,1).forEach(f=>{d[`main_block_${f}`]=i(`middle_flow/main_block_${f}`)});let c=s("exit_flow/reduction_block"),h=r("exit_flow/separable_conv"),m={reduction_block:c,separable_conv:h};return $n(e,n),{params:{entry_flow:p,middle_flow:d,exit_flow:m},paramMappings:n}}function Q$(e,t,n){return Y(At(e,t.filters,n,"same"),t.bias)}function P1(e,t,n=!0){let a=n?Xe(e):e;return a=Hn(a,t.separable_conv0,[1,1]),a=Hn(Xe(a),t.separable_conv1,[1,1]),a=Dt(a,[3,3],[2,2],"same"),a=Y(a,Q$(e,t.expansion_conv,[2,2])),a}function Qpe(e,t){let n=Hn(Xe(e),t.separable_conv0,[1,1]);return n=Hn(Xe(n),t.separable_conv1,[1,1]),n=Hn(Xe(n),t.separable_conv2,[1,1]),n=Y(n,e),n}var fg=class extends sn{constructor(n){super("TinyXception");this._numMainBlocks=n}forwardInput(n){let{params:a}=this;if(!a)throw new Error("TinyXception - load model before inference");return P(()=>{let r=le(n.toBatchTensor(112,!0),"float32"),i=Za(r,[122.782,117.001,104.298]).div(255),o=Xe(Q$(i,a.entry_flow.conv_in,[2,2]));return o=P1(o,a.entry_flow.reduction_block_0,!1),o=P1(o,a.entry_flow.reduction_block_1),fr(this._numMainBlocks,0,1).forEach(l=>{o=Qpe(o,a.middle_flow[`main_block_${l}`])}),o=P1(o,a.exit_flow.reduction_block),o=Xe(Hn(o,a.exit_flow.separable_conv,[1,1])),o})}async forward(n){return this.forwardInput(await bt(n))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(n){return J$(n,this._numMainBlocks)}extractParams(n){return Z$(n,this._numMainBlocks)}};function eA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=An(e),r=og(n,t),s=r(512,1,"fc/age"),i=r(512,2,"fc/gender");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{fc:{age:s,gender:i}}}}function tA(e){let t=[],n=sa(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:{age:a("fc/age"),gender:a("fc/gender")}};return $n(e,t),{params:r,paramMappings:t}}var gg=(n=>(n.FEMALE="female",n.MALE="male",n))(gg||{});var wd=class extends sn{constructor(n=new fg(2)){super("AgeGenderNet");this._faceFeatureExtractor=n}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(n){let{params:a}=this;if(!a)throw new Error(`${this._name} - load model before inference`);return P(()=>{let r=n instanceof br?this.faceFeatureExtractor.forwardInput(n):n,s=ya(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),i=xd(s,a.fc.age).as1D(),o=xd(s,a.fc.gender);return{age:i,gender:o}})}forwardInput(n){return P(()=>{let{age:a,gender:r}=this.runNet(n);return{age:a,gender:Ka(r)}})}async forward(n){return this.forwardInput(await bt(n))}async predictAgeAndGender(n){let a=await bt(n),r=await this.forwardInput(a),s=ct(r.age),i=ct(r.gender),o=s.map((u,p)=>({ageTensor:u,genderTensor:i[p]})),l=await Promise.all(o.map(async({ageTensor:u,genderTensor:p})=>{let d=u.dataSync()[0],c=p.dataSync()[0],h=c>.5,m=h?"male":"female",f=h?c:1-c;return u.dispose(),p.dispose(),{age:d,gender:m,genderProbability:f}}));return r.age.dispose(),r.gender.dispose(),a.isBatchInput?l:l[0]}getDefaultModelName(){return"age_gender_model"}dispose(n=!0){this.faceFeatureExtractor.dispose(n),super.dispose(n)}loadClassifierParams(n){let{params:a,paramMappings:r}=this.extractClassifierParams(n);this._params=a,this._paramMappings=r}extractClassifierParams(n){return eA(n)}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=cg(n);return this.faceFeatureExtractor.loadFromWeightMap(a),tA(r)}extractParams(n){let r=n.slice(0,n.length-1539),s=n.slice(n.length-1539);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(s)}};var gp=class extends mp{postProcess(t,n,a){let r=a.map(({width:i,height:o})=>{let l=n/Math.max(o,i);return{width:i*l,height:o*l}}),s=r.length;return P(()=>{let i=(d,c)=>Ft([gn([68],d,"float32"),gn([68],c,"float32")],1).as2D(1,136).as1D(),o=(d,c)=>{let{width:h,height:m}=r[d];return c(h,m)?Math.abs(h-m)/2:0},l=d=>o(d,(c,h)=>co(d,(c,h)=>hi(l(c),u(c))))).div(Ft(Array.from(Array(s),(d,c)=>i(r[c].width,r[c].height))))})}forwardInput(t){return P(()=>{let n=this.runNet(t);return this.postProcess(n,t.inputSize,t.inputDimensions.map(([a,r])=>({height:a,width:r})))})}async forward(t){return this.forwardInput(await bt(t))}async detectLandmarks(t){let n=await bt(t),a=P(()=>ct(this.forwardInput(n))),r=await Promise.all(a.map(async(s,i)=>{let o=Array.from(s.dataSync()),l=o.filter((p,d)=>eg(d)),u=o.filter((p,d)=>!eg(d));return new Eo(Array(68).fill(0).map((p,d)=>new De(l[d],u[d])),{height:n.getInputHeight(i),width:n.getInputWidth(i)})}));return a.forEach(s=>s.dispose()),n.isBatchInput?r:r[0]}getClassifierChannelsOut(){return 136}};var Po=class extends gp{constructor(t=new hp){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function nA(e){let t=[],{extractDenseBlock3Params:n}=pg(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return $n(e,t),{params:a,paramMappings:t}}function aA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=An(e),{extractDenseBlock3Params:r}=lg(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o}}}var yg=class extends sn{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return P(()=>{let a=le(t.toBatchTensor(112,!0),"float32"),s=Za(a,[122.782,117.001,104.298]).div(255),i=ig(s,n.dense0,!0);return i=ig(i,n.dense1),i=ig(i,n.dense2),i=ya(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await bt(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return nA(t)}extractParams(t){return aA(t)}};var kd=class extends gp{constructor(t=new yg){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var O1=class extends Po{};function rA(e,t){return Y(z(e,t.weights),t.biases)}function L1(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=At(e,s,n,r);return o=Y(o,i),o=rA(o,t.scale),a?Xe(o):o}function sA(e,t){return L1(e,t,[1,1],!0)}function z1(e,t){return L1(e,t,[1,1],!1)}function bg(e,t){return L1(e,t,[2,2],!0,"valid")}function ece(e,t){function n(o,l,u){let p=e(o),d=p.length/(l*u*u);if(d1(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${l}, filterSize: ${u}`);return P(()=>Ee(Da(p,[l,d,u,u]),[2,3,1,0]))}function a(o,l,u,p){let d=n(o,l,u),c=Ke(e(l));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:c}}function r(o,l){let u=Ke(e(o)),p=Ke(e(o));return t.push({paramPath:`${l}/weights`},{paramPath:`${l}/biases`}),{weights:u,biases:p}}function s(o,l,u,p){let d=a(o,l,u,`${p}/conv`),c=r(l,`${p}/scale`);return{conv:d,scale:c}}function i(o,l,u,p,d=!1){let c=s((d?.5:1)*o,l,u,`${p}/conv1`),h=s(o,l,u,`${p}/conv2`);return{conv1:c,conv2:h}}return{extractConvLayerParams:s,extractResidualLayerParams:i}}function iA(e){let{extractWeights:t,getRemainingWeights:n}=An(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=ece(t,a),i=r(4704,32,7,"conv32_down"),o=s(9216,32,3,"conv32_1"),l=s(9216,32,3,"conv32_2"),u=s(9216,32,3,"conv32_3"),p=s(36864,64,3,"conv64_down",!0),d=s(36864,64,3,"conv64_1"),c=s(36864,64,3,"conv64_2"),h=s(36864,64,3,"conv64_3"),m=s(147456,128,3,"conv128_down",!0),f=s(147456,128,3,"conv128_1"),g=s(147456,128,3,"conv128_2"),y=s(589824,256,3,"conv256_down",!0),b=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),w=s(589824,256,3,"conv256_down_out"),I=P(()=>Ee($a(t(256*128),[128,256]),[1,0]));if(a.push({paramPath:"fc"}),n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{params:{conv32_down:i,conv32_1:o,conv32_2:l,conv32_3:u,conv64_down:p,conv64_1:d,conv64_2:c,conv64_3:h,conv128_down:m,conv128_1:f,conv128_2:g,conv256_down:y,conv256_1:b,conv256_2:x,conv256_down_out:w,fc:I},paramMappings:a}}function tce(e,t){let n=sa(e,t);function a(i){let o=n(`${i}/scale/weights`,1),l=n(`${i}/scale/biases`,1);return{weights:o,biases:l}}function r(i){let o=n(`${i}/conv/filters`,4),l=n(`${i}/conv/bias`,1),u=a(i);return{conv:{filters:o,bias:l},scale:u}}function s(i){return{conv1:r(`${i}/conv1`),conv2:r(`${i}/conv2`)}}return{extractConvLayerParams:r,extractResidualLayerParams:s}}function oA(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=tce(e,t),r=n("conv32_down"),s=a("conv32_1"),i=a("conv32_2"),o=a("conv32_3"),l=a("conv64_down"),u=a("conv64_1"),p=a("conv64_2"),d=a("conv64_3"),c=a("conv128_down"),h=a("conv128_1"),m=a("conv128_2"),f=a("conv256_down"),g=a("conv256_1"),y=a("conv256_2"),b=a("conv256_down_out"),{fc:x}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!c1(x))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${x}`);let w={conv32_down:r,conv32_1:s,conv32_2:i,conv32_3:o,conv64_down:l,conv64_1:u,conv64_2:p,conv64_3:d,conv128_down:c,conv128_1:h,conv128_2:m,conv256_down:f,conv256_1:g,conv256_2:y,conv256_down_out:b,fc:x};return $n(e,t),{params:w,paramMappings:t}}function Ja(e,t){let n=sA(e,t.conv1);return n=z1(n,t.conv2),n=Y(n,e),n=Xe(n),n}function Id(e,t){let n=bg(e,t.conv1);n=z1(n,t.conv2);let a=ya(e,2,2,"valid"),r=It(a.shape),s=a.shape[3]!==n.shape[3];if(a.shape[1]!==n.shape[1]||a.shape[2]!==n.shape[2]){let o=[...n.shape];o[1]=1;let l=It(o);n=Ze([n,l],1);let u=[...n.shape];u[2]=1;let p=It(u);n=Ze([n,p],2)}return a=s?Ze([a,r],3):a,n=Y(a,n),n=Xe(n),n}var Oo=class extends sn{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return P(()=>{let a=le(t.toBatchTensor(150,!0),"float32"),s=Za(a,[122.782,117.001,104.298]).div(255),i=bg(s,n.conv32_down);i=Dt(i,3,2,"valid"),i=Ja(i,n.conv32_1),i=Ja(i,n.conv32_2),i=Ja(i,n.conv32_3),i=Id(i,n.conv64_down),i=Ja(i,n.conv64_1),i=Ja(i,n.conv64_2),i=Ja(i,n.conv64_3),i=Id(i,n.conv128_down),i=Ja(i,n.conv128_1),i=Ja(i,n.conv128_2),i=Id(i,n.conv256_down),i=Ja(i,n.conv256_1),i=Ja(i,n.conv256_2),i=Id(i,n.conv256_down_out);let o=i.mean([1,2]);return Fe(o,n.fc)})}async forward(t){return this.forwardInput(await bt(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)!=null&&s.some(i=>i<=0))return new Float32Array(128);let n=await bt(t),a=P(()=>ct(this.forwardInput(n))),r=await Promise.all(a.map(i=>i.data()));return a.forEach(i=>i.dispose()),n.isBatchInput?r:r[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return oA(t)}extractParams(t){return iA(t)}};function nce(e){let t=new Oo;return t.extractWeights(e),t}function xg(e,t){return{...e,...{descriptor:t}}}function ace(e){return typeof e.age=="number"}function vg(e,t){return{...e,...{age:t}}}function rce(e){return(e.gender==="male"||e.gender==="female")&&rp(e.genderProbability)}function wg(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function sce(e,t){function n(l,u){let p=Da(e(9*l),[3,3,l,1]),d=Ke(e(l)),c=Ke(e(l)),h=Ke(e(l)),m=Ke(e(l));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/batch_norm_scale`},{paramPath:`${u}/batch_norm_offset`},{paramPath:`${u}/batch_norm_mean`},{paramPath:`${u}/batch_norm_variance`}),{filters:p,batch_norm_scale:d,batch_norm_offset:c,batch_norm_mean:h,batch_norm_variance:m}}function a(l,u,p,d,c){let h=Da(e(l*u*p*p),[p,p,l,u]),m=Ke(e(u));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${c?"batch_norm_offset":"bias"}`}),{filters:h,bias:m}}function r(l,u,p,d){let{filters:c,bias:h}=a(l,u,p,d,!0);return{filters:c,batch_norm_offset:h}}function s(l,u,p){let d=n(l,`${p}/depthwise_conv`),c=r(l,u,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:c}}function i(){let l=r(3,32,3,"mobilenetv1/conv_0"),u=s(32,64,"mobilenetv1/conv_1"),p=s(64,128,"mobilenetv1/conv_2"),d=s(128,128,"mobilenetv1/conv_3"),c=s(128,256,"mobilenetv1/conv_4"),h=s(256,256,"mobilenetv1/conv_5"),m=s(256,512,"mobilenetv1/conv_6"),f=s(512,512,"mobilenetv1/conv_7"),g=s(512,512,"mobilenetv1/conv_8"),y=s(512,512,"mobilenetv1/conv_9"),b=s(512,512,"mobilenetv1/conv_10"),x=s(512,512,"mobilenetv1/conv_11"),w=s(512,1024,"mobilenetv1/conv_12"),I=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:l,conv_1:u,conv_2:p,conv_3:d,conv_4:c,conv_5:h,conv_6:m,conv_7:f,conv_8:g,conv_9:y,conv_10:b,conv_11:x,conv_12:w,conv_13:I}}function o(){let l=r(1024,256,1,"prediction_layer/conv_0"),u=r(256,512,3,"prediction_layer/conv_1"),p=r(512,128,1,"prediction_layer/conv_2"),d=r(128,256,3,"prediction_layer/conv_3"),c=r(256,128,1,"prediction_layer/conv_4"),h=r(128,256,3,"prediction_layer/conv_5"),m=r(256,64,1,"prediction_layer/conv_6"),f=r(64,128,3,"prediction_layer/conv_7"),g=a(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),b=a(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),x=a(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),w=a(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),I=a(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),T=a(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),C=a(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),E=a(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),$=a(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),R=a(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),F=a(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:l,conv_1:u,conv_2:p,conv_3:d,conv_4:c,conv_5:h,conv_6:m,conv_7:f,box_predictor_0:{box_encoding_predictor:g,class_predictor:y},box_predictor_1:{box_encoding_predictor:b,class_predictor:x},box_predictor_2:{box_encoding_predictor:w,class_predictor:I},box_predictor_3:{box_encoding_predictor:T,class_predictor:C},box_predictor_4:{box_encoding_predictor:E,class_predictor:$},box_predictor_5:{box_encoding_predictor:R,class_predictor:F}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function lA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=An(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=sce(n,t),i=r(),o=s(),u={extra_dim:Rc(n(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:{mobilenetv1:i,prediction_layer:o,output_layer:u},paramMappings:t}}function ice(e,t){let n=sa(e,t);function a(u,p,d){let c=n(`${u}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),h=n(`${u}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:c,batch_norm_offset:h}}function r(u){let p=`mobilenetv1/conv_${u}`,d=`MobilenetV1/Conv2d_${u}_depthwise`,c=`${p}/depthwise_conv`,h=`${p}/pointwise_conv`,m=n(`${d}/depthwise_weights`,4,`${c}/filters`),f=n(`${d}/BatchNorm/gamma`,1,`${c}/batch_norm_scale`),g=n(`${d}/BatchNorm/beta`,1,`${c}/batch_norm_offset`),y=n(`${d}/BatchNorm/moving_mean`,1,`${c}/batch_norm_mean`),b=n(`${d}/BatchNorm/moving_variance`,1,`${c}/batch_norm_variance`);return{depthwise_conv:{filters:m,batch_norm_scale:f,batch_norm_offset:g,batch_norm_mean:y,batch_norm_variance:b},pointwise_conv:a("MobilenetV1",u,h)}}function s(){return{conv_0:a("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:r(1),conv_2:r(2),conv_3:r(3),conv_4:r(4),conv_5:r(5),conv_6:r(6),conv_7:r(7),conv_8:r(8),conv_9:r(9),conv_10:r(10),conv_11:r(11),conv_12:r(12),conv_13:r(13)}}function i(u,p){let d=n(`${u}/weights`,4,`${p}/filters`),c=n(`${u}/biases`,1,`${p}/bias`);return{filters:d,bias:c}}function o(u){let p=i(`Prediction/BoxPredictor_${u}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${u}/box_encoding_predictor`),d=i(`Prediction/BoxPredictor_${u}/ClassPredictor`,`prediction_layer/box_predictor_${u}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}function l(){return{conv_0:a("Prediction",0,"prediction_layer/conv_0"),conv_1:a("Prediction",1,"prediction_layer/conv_1"),conv_2:a("Prediction",2,"prediction_layer/conv_2"),conv_3:a("Prediction",3,"prediction_layer/conv_3"),conv_4:a("Prediction",4,"prediction_layer/conv_4"),conv_5:a("Prediction",5,"prediction_layer/conv_5"),conv_6:a("Prediction",6,"prediction_layer/conv_6"),conv_7:a("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:o(0),box_predictor_1:o(1),box_predictor_2:o(2),box_predictor_3:o(3),box_predictor_4:o(4),box_predictor_5:o(5)}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:l}}function uA(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=ice(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Or(r))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${r}`);let s={mobilenetv1:n(),prediction_layer:a(),output_layer:{extra_dim:r}};return $n(e,t),{params:s,paramMappings:t}}function Pa(e,t,n){return P(()=>{let a=At(e,t.filters,n,"same");return a=Y(a,t.batch_norm_offset),en(a,0,6)})}var oce=.0010000000474974513;function lce(e,t,n){return P(()=>{let a=Is(e,t.filters,n,"same");return a=ks(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,oce),en(a,0,6)})}function uce(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function pA(e,t){return P(()=>{let n,a=Pa(e,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((s,i)=>{let o=i+1,l=uce(o);a=lce(a,s.depthwise_conv,l),a=Pa(a,s.pointwise_conv,[1,1]),o===11&&(n=a)}),n===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:a,conv11:n}})}function pce(e,t,n){let a=e.arraySync(),r=Math.min(a[t][0],a[t][2]),s=Math.min(a[t][1],a[t][3]),i=Math.max(a[t][0],a[t][2]),o=Math.max(a[t][1],a[t][3]),l=Math.min(a[n][0],a[n][2]),u=Math.min(a[n][1],a[n][3]),p=Math.max(a[n][0],a[n][2]),d=Math.max(a[n][1],a[n][3]),c=(i-r)*(o-s),h=(p-l)*(d-u);if(c<=0||h<=0)return 0;let m=Math.max(r,l),f=Math.max(s,u),g=Math.min(i,p),y=Math.min(o,d),b=Math.max(g-m,0)*Math.max(y-f,0);return b/(c+h-b)}function cA(e,t,n,a,r){let s=e.shape[0],i=Math.min(n,s),o=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>r).sort((p,d)=>d.score-p.score),l=p=>p<=a?1:0,u=[];return o.forEach(p=>{if(u.length>=i)return;let d=p.score;for(let c=u.length-1;c>=0;--c){let h=pce(e,p.boxIndex,u[c]);if(h!==0&&(p.score*=l(h),p.score<=r))break}d===p.score&&u.push(p.boxIndex)}),u}function cce(e){let t=ct(Ee(e,[1,0])),n=[pe(t[2],t[0]),pe(t[3],t[1])],a=[Y(t[0],he(n[0],2)),Y(t[1],he(n[1],2))];return{sizes:n,centers:a}}function dce(e,t){let{sizes:n,centers:a}=cce(e),r=ct(Ee(t,[1,0])),s=he(z(fn(he(r[2],5)),n[0]),2),i=Y(z(he(r[0],10),n[0]),a[0]),o=he(z(fn(he(r[3],5)),n[1]),2),l=Y(z(he(r[1],10),n[1]),a[1]);return Ee(Ft([pe(i,s),pe(l,o),Y(i,s),Y(l,o)]),[1,0])}function dA(e,t,n){return P(()=>{let a=e.shape[0],r=dce(W(Ln(n.extra_dim,[a,1,1]),[-1,4]),W(e,[-1,4]));r=W(r,[a,r.shape[0]/a,4]);let s=ha(Be(t,[0,0,1],[-1,-1,-1])),i=Be(s,[0,0,0],[-1,-1,1]);i=W(i,[a,i.shape[1]]);let o=ct(r),l=ct(i);return{boxes:o,scores:l}})}function Lo(e,t){return P(()=>{let n=e.shape[0],a=W(Ro(e,t.box_encoding_predictor),[n,-1,1,4]),r=W(Ro(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function hA(e,t,n){return P(()=>{let a=Pa(e,n.conv_0,[1,1]),r=Pa(a,n.conv_1,[2,2]),s=Pa(r,n.conv_2,[1,1]),i=Pa(s,n.conv_3,[2,2]),o=Pa(i,n.conv_4,[1,1]),l=Pa(o,n.conv_5,[2,2]),u=Pa(l,n.conv_6,[1,1]),p=Pa(u,n.conv_7,[2,2]),d=Lo(t,n.box_predictor_0),c=Lo(e,n.box_predictor_1),h=Lo(r,n.box_predictor_2),m=Lo(i,n.box_predictor_3),f=Lo(l,n.box_predictor_4),g=Lo(p,n.box_predictor_5),y=Ze([d.boxPredictionEncoding,c.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),b=Ze([d.classPrediction,c.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:y,classPredictions:b}})}var wa=class{constructor({minConfidence:t,maxResults:n}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=n||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var $s=class extends sn{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return P(()=>{let a=le(t.toBatchTensor(512,!1),"float32"),r=pe(he(a,127.5),1),s=pA(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=hA(s.out,s.conv11,n.prediction_layer);return dA(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await bt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new wa(n),s=await bt(t),{boxes:i,scores:o}=this.forwardInput(s),l=i[0],u=o[0];for(let x=1;x{let[w,I]=[Math.max(0,y[x][0]),Math.min(1,y[x][2])].map(E=>E*g),[T,C]=[Math.max(0,y[x][1]),Math.min(1,y[x][3])].map(E=>E*f);return new yt(p[x],new _o(T,w,C-T,I-w),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),u.dispose(),b}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return uA(t)}extractParams(t){return lA(t)}};function mA(e){let t=new $s;return t.extractWeights(e),t}function hce(e){return mA(e)}var W1=class extends $s{};var fA=.4,gA=[new De(.738768,.874946),new De(2.42204,2.65704),new De(4.30971,7.04493),new De(10.246,4.59428),new De(12.6868,11.8741)],yA=[new De(1.603231,2.094468),new De(6.041143,7.080126),new De(2.882459,3.518061),new De(4.266906,5.178857),new De(9.041765,10.66308)],bA=[117.001,114.697,97.404],xA="tiny_yolov2_model",vA="tiny_yolov2_separable_conv_model";var kg=e=>typeof e=="number";function B1(e){if(!e)throw new Error(`invalid config: ${e}`);if(typeof e.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${e.withSeparableConvs}`);if(!kg(e.iouThreshold)||e.iouThreshold<0||e.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${e.iouThreshold}`);if(!Array.isArray(e.classes)||!e.classes.length||!e.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(e.classes)}`);if(!Array.isArray(e.anchors)||!e.anchors.length||!e.anchors.map(t=>t||{}).every(t=>kg(t.x)&&kg(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(e.anchors)}`);if(e.meanRgb&&(!Array.isArray(e.meanRgb)||e.meanRgb.length!==3||!e.meanRgb.every(kg)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function yp(e){return P(()=>{let t=z(e,xe(.10000000149011612));return Y(Xe(pe(e,t)),t)})}function Vr(e,t){return P(()=>{let n=ba(e,[[0,0],[1,1],[1,1],[0,0]]);return n=At(n,t.conv.filters,[1,1],"valid"),n=pe(n,t.bn.sub),n=z(n,t.bn.truediv),n=Y(n,t.conv.bias),yp(n)})}function Ur(e,t){return P(()=>{let n=ba(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Ts(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=Y(n,t.bias),yp(n)})}function mce(e,t){let n=pp(e,t);function a(i,o){let l=Ke(e(i)),u=Ke(e(i));return t.push({paramPath:`${o}/sub`},{paramPath:`${o}/truediv`}),{sub:l,truediv:u}}function r(i,o,l){let u=n(i,o,3,`${l}/conv`),p=a(o,`${l}/bn`);return{conv:u,bn:p}}let s=cp(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function wA(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=An(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:u}=mce(r,i),p;if(t.withSeparableConvs){let[d,c,h,m,f,g,y,b,x]=a,w=t.isFirstLayerConv2d?o(d,c,3,"conv0"):u(d,c,"conv0"),I=u(c,h,"conv1"),T=u(h,m,"conv2"),C=u(m,f,"conv3"),E=u(f,g,"conv4"),$=u(g,y,"conv5"),R=b?u(y,b,"conv6"):void 0,F=x?u(b,x,"conv7"):void 0,S=o(x||b||y,5*n,1,"conv8");p={conv0:w,conv1:I,conv2:T,conv3:C,conv4:E,conv5:$,conv6:R,conv7:F,conv8:S}}else{let[d,c,h,m,f,g,y,b,x]=a,w=l(d,c,"conv0"),I=l(c,h,"conv1"),T=l(h,m,"conv2"),C=l(m,f,"conv3"),E=l(f,g,"conv4"),$=l(g,y,"conv5"),R=l(y,b,"conv6"),F=l(b,x,"conv7"),S=o(x,5*n,1,"conv8");p={conv0:w,conv1:I,conv2:T,conv3:C,conv4:E,conv5:$,conv6:R,conv7:F,conv8:S}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:p,paramMappings:i}}function fce(e,t){let n=sa(e,t);function a(o){let l=n(`${o}/sub`,1),u=n(`${o}/truediv`,1);return{sub:l,truediv:u}}function r(o){let l=n(`${o}/filters`,4),u=n(`${o}/bias`,1);return{filters:l,bias:u}}function s(o){let l=r(`${o}/conv`),u=a(`${o}/bn`);return{conv:l,bn:u}}let i=dp(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function kA(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=fce(e,n),i;if(t.withSeparableConvs){let o=t.filterSizes&&t.filterSizes.length||9;i={conv0:t.isFirstLayerConv2d?a("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:o>7?s("conv6"):void 0,conv7:o>8?s("conv7"):void 0,conv8:a("conv8")}}else i={conv0:r("conv0"),conv1:r("conv1"),conv2:r("conv2"),conv3:r("conv3"),conv4:r("conv4"),conv5:r("conv5"),conv6:r("conv6"),conv7:r("conv7"),conv8:a("conv8")};return $n(e,n),{params:i,paramMappings:n}}var Qa=class{constructor({inputSize:t,scoreThreshold:n}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=n||.5,typeof this._inputSize!="number"||this._inputSize%32!==0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var V1=class extends sn{constructor(n){super("TinyYolov2");B1(n),this._config=n}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(n,a){let r=Vr(n,a.conv0);return r=Dt(r,[2,2],[2,2],"same"),r=Vr(r,a.conv1),r=Dt(r,[2,2],[2,2],"same"),r=Vr(r,a.conv2),r=Dt(r,[2,2],[2,2],"same"),r=Vr(r,a.conv3),r=Dt(r,[2,2],[2,2],"same"),r=Vr(r,a.conv4),r=Dt(r,[2,2],[2,2],"same"),r=Vr(r,a.conv5),r=Dt(r,[2,2],[1,1],"same"),r=Vr(r,a.conv6),r=Vr(r,a.conv7),Ro(r,a.conv8,"valid",!1)}runMobilenet(n,a){let r=this.config.isFirstLayerConv2d?yp(Ro(n,a.conv0,"valid",!1)):Ur(n,a.conv0);return r=Dt(r,[2,2],[2,2],"same"),r=Ur(r,a.conv1),r=Dt(r,[2,2],[2,2],"same"),r=Ur(r,a.conv2),r=Dt(r,[2,2],[2,2],"same"),r=Ur(r,a.conv3),r=Dt(r,[2,2],[2,2],"same"),r=Ur(r,a.conv4),r=Dt(r,[2,2],[2,2],"same"),r=Ur(r,a.conv5),r=Dt(r,[2,2],[1,1],"same"),r=a.conv6?Ur(r,a.conv6):r,r=a.conv7?Ur(r,a.conv7):r,Ro(r,a.conv8,"valid",!1)}forwardInput(n,a){let{params:r}=this;if(!r)throw new Error("TinyYolov2 - load model before inference");return P(()=>{let s=le(n.toBatchTensor(a,!1),"float32");return s=this.config.meanRgb?Za(s,this.config.meanRgb):s,s=s.div(255),this.config.withSeparableConvs?this.runMobilenet(s,r):this.runTinyYolov2(s,r)})}async forward(n,a){return this.forwardInput(await bt(n),a)}async detect(n,a={}){let{inputSize:r,scoreThreshold:s}=new Qa(a),i=await bt(n),o=await this.forwardInput(i,r),l=P(()=>ct(o)[0].expandDims()),u={width:i.getInputWidth(0),height:i.getInputHeight(0)},p=await this.extractBoxes(l,i.getReshapedInputDimensions(0),s);o.dispose(),l.dispose();let d=p.map(y=>y.box),c=p.map(y=>y.score),h=p.map(y=>y.classScore),m=p.map(y=>this.config.classes[y.label]);return y1(d.map(y=>y.rescale(r)),c,this.config.iouThreshold,!0).map(y=>new Lr(c[y],h[y],m[y],d[y],u))}getDefaultModelName(){return""}extractParamsFromWeightMap(n){return kA(n,this.config)}extractParams(n){let a=this.config.filterSizes||V1.DEFAULT_FILTER_SIZES,r=a?a.length:void 0;if(r!==7&&r!==8&&r!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${r} filterSizes in config`);return wA(n,this.config,this.boxEncodingSize,a)}async extractBoxes(n,a,r){let{width:s,height:i}=a,o=Math.max(s,i),l=o/s,u=o/i,p=n.shape[1],d=this.config.anchors.length,[c,h,m]=P(()=>{let b=n.reshape([p,p,d,this.boxEncodingSize]),x=b.slice([0,0,0,0],[p,p,d,4]),w=b.slice([0,0,0,4],[p,p,d,1]),I=this.withClassScores?Ka(b.slice([0,0,0,5],[p,p,d,this.config.classes.length]),3):xe(0);return[x,w,I]}),f=[],g=await h.array(),y=await c.array();for(let b=0;br){let T=(x+dd(y[b][x][w][0]))/p*l,C=(b+dd(y[b][x][w][1]))/p*u,E=Math.exp(y[b][x][w][2])*this.config.anchors[w].x/p*l,$=Math.exp(y[b][x][w][3])*this.config.anchors[w].y/p*u,R=T-E/2,F=C-$/2,S={row:b,col:x,anchor:w},{classScore:M,label:B}=this.withClassScores?await this.extractPredictedClass(m,S):{classScore:1,label:0};f.push({box:new Co(R,F,R+E,F+$),score:I,classScore:I*M,label:B,...S})}}return c.dispose(),h.dispose(),m.dispose(),f}async extractPredictedClass(n,a){let{row:r,col:s,anchor:i}=a,o=await n.array();return Array(this.config.classes.length).fill(0).map((l,u)=>o[r][s][i][u]).map((l,u)=>({classScore:l,label:u})).reduce((l,u)=>l.classScore>u.classScore?l:u)}},zo=V1;zo.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var Wo=class extends zo{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:fA,classes:["face"],...t?{anchors:yA,meanRgb:bA}:{anchors:gA,withClassScores:!0}};super(n)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new yt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?vA:xA}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function gce(e,t=!0){let n=new Wo(t);return n.extractWeights(e),n}var Sd=class extends Qa{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var ka=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function Bo(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>Mo(l)?r(l):l.detection),i=a||(t instanceof Te?await up(t,s):await lp(t,s)),o=await n(i);return i.forEach(l=>l instanceof Te&&l.dispose()),o}async function bp(e,t,n,a,r){return Bo([e],t,async s=>n(s[0]),a,r)}var IA=.4,SA=[new De(1.603231,2.094468),new De(6.041143,7.080126),new De(2.882459,3.518061),new De(4.266906,5.178857),new De(9.041765,10.66308)],TA=[117.001,114.697,97.404];var Vo=class extends zo{constructor(){let t={withSeparableConvs:!0,iouThreshold:IA,classes:["face"],anchors:SA,meanRgb:TA,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new yt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var Qe={ssdMobilenetv1:new $s,tinyFaceDetector:new Vo,tinyYolov2:new Wo,faceLandmark68Net:new Po,faceLandmark68TinyNet:new kd,faceRecognitionNet:new Oo,faceExpressionNet:new vd,ageGenderNet:new wd},NA=(e,t)=>Qe.ssdMobilenetv1.locateFaces(e,t),yce=(e,t)=>Qe.tinyFaceDetector.locateFaces(e,t),bce=(e,t)=>Qe.tinyYolov2.locateFaces(e,t),CA=e=>Qe.faceLandmark68Net.detectLandmarks(e),xce=e=>Qe.faceLandmark68TinyNet.detectLandmarks(e),vce=e=>Qe.faceRecognitionNet.computeFaceDescriptor(e),wce=e=>Qe.faceExpressionNet.predictExpressions(e),kce=e=>Qe.ageGenderNet.predictAgeAndGender(e),_A=e=>Qe.ssdMobilenetv1.load(e),Ice=e=>Qe.tinyFaceDetector.load(e),Sce=e=>Qe.tinyYolov2.load(e),Tce=e=>Qe.faceLandmark68Net.load(e),Nce=e=>Qe.faceLandmark68TinyNet.load(e),Cce=e=>Qe.faceRecognitionNet.load(e),_ce=e=>Qe.faceExpressionNet.load(e),Ece=e=>Qe.ageGenderNet.load(e),$ce=_A,Ace=NA,Fce=CA;var Ig=class extends ka{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Uo=class extends Ig{async run(){let t=await this.parentTask,n=await Bo(t,this.input,async a=>Promise.all(a.map(r=>Qe.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>dg(a,n[r]))}withAgeAndGender(){return new Ho(this,this.input)}},Go=class extends Ig{async run(){let t=await this.parentTask;if(!t)return;let n=await bp(t,this.input,a=>Qe.faceExpressionNet.predictExpressions(a),this.extractedFaces);return dg(t,n)}withAgeAndGender(){return new jo(this,this.input)}},As=class extends Uo{withAgeAndGender(){return new Ds(this,this.input)}withFaceDescriptors(){return new Gr(this,this.input)}},Fs=class extends Go{withAgeAndGender(){return new Rs(this,this.input)}withFaceDescriptor(){return new Hr(this,this.input)}};var Sg=class extends ka{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Ho=class extends Sg{async run(){let t=await this.parentTask,n=await Bo(t,this.input,async a=>Promise.all(a.map(r=>Qe.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return vg(wg(a,i,o),s)})}withFaceExpressions(){return new Uo(this,this.input)}},jo=class extends Sg{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await bp(t,this.input,s=>Qe.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return vg(wg(t,a,r),n)}withFaceExpressions(){return new Go(this,this.input)}},Ds=class extends Ho{withFaceExpressions(){return new As(this,this.input)}withFaceDescriptors(){return new Gr(this,this.input)}},Rs=class extends jo{withFaceExpressions(){return new Fs(this,this.input)}withFaceDescriptor(){return new Hr(this,this.input)}};var Td=class extends ka{constructor(n,a){super();this.parentTask=n;this.input=a}},Gr=class extends Td{async run(){let t=await this.parentTask;return(await Bo(t,this.input,a=>Promise.all(a.map(r=>Qe.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>xg(t[r],a))}withFaceExpressions(){return new As(this,this.input)}withAgeAndGender(){return new Ds(this,this.input)}},Hr=class extends Td{async run(){let t=await this.parentTask;if(!t)return;let n=await bp(t,this.input,a=>Qe.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return xg(t,n)}withFaceExpressions(){return new Fs(this,this.input)}withAgeAndGender(){return new Rs(this,this.input)}};var Nd=class extends ka{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?Qe.faceLandmark68TinyNet:Qe.faceLandmark68Net}},Cd=class extends Nd{async run(){let t=await this.parentTask,n=t.map(i=>i.detection),a=this.input instanceof Te?await up(this.input,n):await lp(this.input,n),r=await Promise.all(a.map(i=>this.landmarkNet.detectLandmarks(i)));return a.forEach(i=>i instanceof Te&&i.dispose()),t.filter((i,o)=>r[o]).map((i,o)=>fp(i,r[o]))}withFaceExpressions(){return new As(this,this.input)}withAgeAndGender(){return new Ds(this,this.input)}withFaceDescriptors(){return new Gr(this,this.input)}},_d=class extends Nd{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Te?await up(this.input,[n]):await lp(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Te&&s.dispose()),fp(t,r)}withFaceExpressions(){return new Fs(this,this.input)}withAgeAndGender(){return new Rs(this,this.input)}withFaceDescriptor(){return new Hr(this,this.input)}};var Ed=class extends ka{constructor(n,a=new wa){super();this.input=n;this.options=a}},xp=class extends Ed{async run(){let{input:t,options:n}=this,a;if(n instanceof Sd)a=Qe.tinyFaceDetector.locateFaces(t,n);else if(n instanceof wa)a=Qe.ssdMobilenetv1.locateFaces(t,n);else if(n instanceof Qa)a=Qe.tinyYolov2.locateFaces(t,n);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return a}runAndExtendWithFaceDetections(){return new Promise((t,n)=>{this.run().then(a=>t(a.map(r=>$o({},r)))).catch(a=>n(a))})}withFaceLandmarks(t=!1){return new Cd(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new Uo(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Ho(this.runAndExtendWithFaceDetections(),this.input)}},$d=class extends Ed{async run(){let t=await new xp(this.input,this.options),n=t[0];return t.forEach(a=>{a.score>n.score&&(n=a)}),n}runAndExtendWithFaceDetection(){return new Promise(async t=>{let n=await this.run();t(n?$o({},n):void 0)})}withFaceLandmarks(t=!1){return new _d(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Go(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new jo(this.runAndExtendWithFaceDetection(),this.input)}};function Dce(e,t=new wa){return new $d(e,t)}function Tg(e,t=new wa){return new xp(e,t)}async function EA(e,t){return Tg(e,new wa(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function Rce(e,t={}){return Tg(e,new Qa(t)).withFaceLandmarks().withFaceDescriptors()}var Mce=EA;function U1(e,t){if(e.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let n=Array.from(e),a=Array.from(t);return Math.sqrt(n.map((r,s)=>r-a[s]).reduce((r,s)=>r+s*s,0))}var Ad=class{constructor(t,n=.6){this._distanceThreshold=n;let a=Array.isArray(t)?t:[t];if(!a.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let r=1,s=()=>`person ${r++}`;this._labeledDescriptors=a.map(i=>{if(i instanceof gr)return i;if(i instanceof Float32Array)return new gr(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new gr(s(),[i.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,n){return n.map(a=>U1(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new sp(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>gr.fromJSON(a));return new Ad(n,t.distanceThreshold)}};function Pce(e){let t=new Vo;return t.extractWeights(e),t}function $A(e,t){let{width:n,height:a}=new yn(t.width,t.height);if(n<=0||a<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:n,height:a})}`);if(Array.isArray(e))return e.map(r=>$A(r,{width:n,height:a}));if(Mo(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return fp($o(e,r),s)}return yr(e)?$o(e,e.detection.forSize(n,a)):e instanceof ra||e instanceof yt?e.forSize(n,a):e}var Oce=Y$;return mF(Lce);})(); diff --git a/dist/tfjs.esm.js b/dist/tfjs.esm.js index 4549cd25..bfaebeb6 100644 --- a/dist/tfjs.esm.js +++ b/dist/tfjs.esm.js @@ -4,51 +4,51 @@ author: ' */ -var DU=Object.create;var QS=Object.defineProperty;var RU=Object.getOwnPropertyDescriptor;var FU=Object.getOwnPropertyNames;var OU=Object.getPrototypeOf,PU=Object.prototype.hasOwnProperty;var Pg=(r=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(r,{get:(t,e)=>(typeof require!="undefined"?require:t)[e]}):r)(function(r){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var gr=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),Wt=(r,t)=>{for(var e in t)QS(r,e,{get:t[e],enumerable:!0})},LU=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of FU(t))!PU.call(r,o)&&o!==e&&QS(r,o,{get:()=>t[o],enumerable:!(n=RU(t,o))||n.enumerable});return r};var Tl=(r,t,e)=>(e=r!=null?DU(OU(r)):{},LU(t||!r||!r.__esModule?QS(e,"default",{value:r,enumerable:!0}):e,r));var T1=gr((Elt,N1)=>{N1.exports=Ue;var mo=null;try{mo=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(r){}function Ue(r,t,e){this.low=r|0,this.high=t|0,this.unsigned=!!e}Ue.prototype.__isLong__;Object.defineProperty(Ue.prototype,"__isLong__",{value:!0});function Fn(r){return(r&&r.__isLong__)===!0}Ue.isLong=Fn;var g1={},x1={};function zu(r,t){var e,n,o;return t?(r>>>=0,(o=0<=r&&r<256)&&(n=x1[r],n)?n:(e=He(r,(r|0)<0?-1:0,!0),o&&(x1[r]=e),e)):(r|=0,(o=-128<=r&&r<128)&&(n=g1[r],n)?n:(e=He(r,r<0?-1:0,!1),o&&(g1[r]=e),e))}Ue.fromInt=zu;function fo(r,t){if(isNaN(r))return t?Mu:ho;if(t){if(r<0)return Mu;if(r>=C1)return v1}else{if(r<=-b1)return Rn;if(r+1>=b1)return S1}return r<0?fo(-r,t).neg():He(r%Vp|0,r/Vp|0,t)}Ue.fromNumber=fo;function He(r,t,e){return new Ue(r,t,e)}Ue.fromBits=He;var Bg=Math.pow;function m0(r,t,e){if(r.length===0)throw Error("empty string");if(r==="NaN"||r==="Infinity"||r==="+Infinity"||r==="-Infinity")return ho;if(typeof t=="number"?(e=t,t=!1):t=!!t,e=e||10,e<2||360)throw Error("interior hyphen");if(n===0)return m0(r.substring(1),t,e).neg();for(var o=fo(Bg(e,8)),s=ho,i=0;i>>0:this.low};gt.toNumber=function(){return this.unsigned?(this.high>>>0)*Vp+(this.low>>>0):this.high*Vp+(this.low>>>0)};gt.toString=function(t){if(t=t||10,t<2||36>>0,c=l.toString(t);if(i=u,i.isZero())return c+a;for(;c.length<6;)c="0"+c;a=""+c+a}};gt.getHighBits=function(){return this.high};gt.getHighBitsUnsigned=function(){return this.high>>>0};gt.getLowBits=function(){return this.low};gt.getLowBitsUnsigned=function(){return this.low>>>0};gt.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Rn)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,e=31;e>0&&(t&1<=0};gt.isOdd=function(){return(this.low&1)===1};gt.isEven=function(){return(this.low&1)===0};gt.equals=function(t){return Fn(t)||(t=Ls(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low};gt.eq=gt.equals;gt.notEquals=function(t){return!this.eq(t)};gt.neq=gt.notEquals;gt.ne=gt.notEquals;gt.lessThan=function(t){return this.comp(t)<0};gt.lt=gt.lessThan;gt.lessThanOrEqual=function(t){return this.comp(t)<=0};gt.lte=gt.lessThanOrEqual;gt.le=gt.lessThanOrEqual;gt.greaterThan=function(t){return this.comp(t)>0};gt.gt=gt.greaterThan;gt.greaterThanOrEqual=function(t){return this.comp(t)>=0};gt.gte=gt.greaterThanOrEqual;gt.ge=gt.greaterThanOrEqual;gt.compare=function(t){if(Fn(t)||(t=Ls(t)),this.eq(t))return 0;var e=this.isNegative(),n=t.isNegative();return e&&!n?-1:!e&&n?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1};gt.comp=gt.compare;gt.negate=function(){return!this.unsigned&&this.eq(Rn)?Rn:this.not().add(Bp)};gt.neg=gt.negate;gt.add=function(t){Fn(t)||(t=Ls(t));var e=this.high>>>16,n=this.high&65535,o=this.low>>>16,s=this.low&65535,i=t.high>>>16,a=t.high&65535,u=t.low>>>16,l=t.low&65535,c=0,p=0,m=0,f=0;return f+=s+l,m+=f>>>16,f&=65535,m+=o+u,p+=m>>>16,m&=65535,p+=n+a,c+=p>>>16,p&=65535,c+=e+i,c&=65535,He(m<<16|f,c<<16|p,this.unsigned)};gt.subtract=function(t){return Fn(t)||(t=Ls(t)),this.add(t.neg())};gt.sub=gt.subtract;gt.multiply=function(t){if(this.isZero())return ho;if(Fn(t)||(t=Ls(t)),mo){var e=mo.mul(this.low,this.high,t.low,t.high);return He(e,mo.get_high(),this.unsigned)}if(t.isZero())return ho;if(this.eq(Rn))return t.isOdd()?Rn:ho;if(t.eq(Rn))return this.isOdd()?Rn:ho;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(w1)&&t.lt(w1))return fo(this.toNumber()*t.toNumber(),this.unsigned);var n=this.high>>>16,o=this.high&65535,s=this.low>>>16,i=this.low&65535,a=t.high>>>16,u=t.high&65535,l=t.low>>>16,c=t.low&65535,p=0,m=0,f=0,d=0;return d+=i*c,f+=d>>>16,d&=65535,f+=s*c,m+=f>>>16,f&=65535,f+=i*l,m+=f>>>16,f&=65535,m+=o*c,p+=m>>>16,m&=65535,m+=s*l,p+=m>>>16,m&=65535,m+=i*u,p+=m>>>16,m&=65535,p+=n*c+o*l+s*u+i*a,p&=65535,He(f<<16|d,p<<16|m,this.unsigned)};gt.mul=gt.multiply;gt.divide=function(t){if(Fn(t)||(t=Ls(t)),t.isZero())throw Error("division by zero");if(mo){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var e=(this.unsigned?mo.div_u:mo.div_s)(this.low,this.high,t.low,t.high);return He(e,mo.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Mu:ho;var n,o,s;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return Mu;if(t.gt(this.shru(1)))return I1;s=Mu}else{if(this.eq(Rn)){if(t.eq(Bp)||t.eq(p0))return Rn;if(t.eq(Rn))return Bp;var i=this.shr(1);return n=i.div(t).shl(1),n.eq(ho)?t.isNegative()?Bp:p0:(o=this.sub(t.mul(n)),s=n.add(o.div(t)),s)}else if(t.eq(Rn))return this.unsigned?Mu:ho;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();s=ho}for(o=this;o.gte(t);){n=Math.max(1,Math.floor(o.toNumber()/t.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),u=a<=48?1:Bg(2,a-48),l=fo(n),c=l.mul(t);c.isNegative()||c.gt(o);)n-=u,l=fo(n,this.unsigned),c=l.mul(t);l.isZero()&&(l=Bp),s=s.add(l),o=o.sub(c)}return s};gt.div=gt.divide;gt.modulo=function(t){if(Fn(t)||(t=Ls(t)),mo){var e=(this.unsigned?mo.rem_u:mo.rem_s)(this.low,this.high,t.low,t.high);return He(e,mo.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))};gt.mod=gt.modulo;gt.rem=gt.modulo;gt.not=function(){return He(~this.low,~this.high,this.unsigned)};gt.and=function(t){return Fn(t)||(t=Ls(t)),He(this.low&t.low,this.high&t.high,this.unsigned)};gt.or=function(t){return Fn(t)||(t=Ls(t)),He(this.low|t.low,this.high|t.high,this.unsigned)};gt.xor=function(t){return Fn(t)||(t=Ls(t)),He(this.low^t.low,this.high^t.high,this.unsigned)};gt.shiftLeft=function(t){return Fn(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?He(this.low<>>32-t,this.unsigned):He(0,this.low<>>t|this.high<<32-t,this.high>>t,this.unsigned):He(this.high>>t-32,this.high>=0?0:-1,this.unsigned)};gt.shr=gt.shiftRight;gt.shiftRightUnsigned=function(t){if(Fn(t)&&(t=t.toInt()),t&=63,t===0)return this;var e=this.high;if(t<32){var n=this.low;return He(n>>>t|e<<32-t,e>>>t,this.unsigned)}else return t===32?He(e,0,this.unsigned):He(e>>>t-32,0,this.unsigned)};gt.shru=gt.shiftRightUnsigned;gt.shr_u=gt.shiftRightUnsigned;gt.toSigned=function(){return this.unsigned?He(this.low,this.high,!1):this};gt.toUnsigned=function(){return this.unsigned?this:He(this.low,this.high,!0)};gt.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()};gt.toBytesLE=function(){var t=this.high,e=this.low;return[e&255,e>>>8&255,e>>>16&255,e>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]};gt.toBytesBE=function(){var t=this.high,e=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,e>>>24,e>>>16&255,e>>>8&255,e&255]};Ue.fromBytes=function(t,e,n){return n?Ue.fromBytesLE(t,e):Ue.fromBytesBE(t,e)};Ue.fromBytesLE=function(t,e){return new Ue(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,e)};Ue.fromBytesBE=function(t,e){return new Ue(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],e)}});var iE=gr(()=>{});var aE=gr(()=>{});var u_=gr((l_,rv)=>{(function(r,t,e){function n(a){var u=this,l=i();u.next=function(){var c=2091639*u.s0+u.c*23283064365386963e-26;return u.s0=u.s1,u.s1=u.s2,u.s2=c-(u.c=c|0)},u.c=1,u.s0=l(" "),u.s1=l(" "),u.s2=l(" "),u.s0-=l(a),u.s0<0&&(u.s0+=1),u.s1-=l(a),u.s1<0&&(u.s1+=1),u.s2-=l(a),u.s2<0&&(u.s2+=1),l=null}function o(a,u){return u.c=a.c,u.s0=a.s0,u.s1=a.s1,u.s2=a.s2,u}function s(a,u){var l=new n(a),c=u&&u.state,p=l.next;return p.int32=function(){return l.next()*4294967296|0},p.double=function(){return p()+(p()*2097152|0)*11102230246251565e-32},p.quick=p,c&&(typeof c=="object"&&o(c,l),p.state=function(){return o(l,{})}),p}function i(){var a=4022871197,u=function(l){l=String(l);for(var c=0;c>>0,p-=a,p*=a,a=p>>>0,p-=a,a+=p*4294967296}return(a>>>0)*23283064365386963e-26};return u}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.alea=s})(l_,typeof rv=="object"&&rv,typeof define=="function"&&define)});var p_=gr((c_,nv)=>{(function(r,t,e){function n(i){var a=this,u="";a.x=0,a.y=0,a.z=0,a.w=0,a.next=function(){var c=a.x^a.x<<11;return a.x=a.y,a.y=a.z,a.z=a.w,a.w^=a.w>>>19^c^c>>>8},i===(i|0)?a.x=i:u+=i;for(var l=0;l>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l=="object"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xor128=s})(c_,typeof nv=="object"&&nv,typeof define=="function"&&define)});var f_=gr((m_,ov)=>{(function(r,t,e){function n(i){var a=this,u="";a.next=function(){var c=a.x^a.x>>>2;return a.x=a.y,a.y=a.z,a.z=a.w,a.w=a.v,(a.d=a.d+362437|0)+(a.v=a.v^a.v<<4^(c^c<<1))|0},a.x=0,a.y=0,a.z=0,a.w=0,a.v=0,i===(i|0)?a.x=i:u+=i;for(var l=0;l>>4),a.next()}function o(i,a){return a.x=i.x,a.y=i.y,a.z=i.z,a.w=i.w,a.v=i.v,a.d=i.d,a}function s(i,a){var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l=="object"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xorwow=s})(m_,typeof ov=="object"&&ov,typeof define=="function"&&define)});var h_=gr((d_,sv)=>{(function(r,t,e){function n(i){var a=this;a.next=function(){var l=a.x,c=a.i,p,m,f;return p=l[c],p^=p>>>7,m=p^p<<24,p=l[c+1&7],m^=p^p>>>10,p=l[c+3&7],m^=p^p>>>3,p=l[c+4&7],m^=p^p<<7,p=l[c+7&7],p=p^p<<13,m^=p^p<<9,l[c]=m,a.i=c+1&7,m};function u(l,c){var p,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=""+c,p=0;p0;--p)l.next()}u(a,i)}function o(i,a){return a.x=i.x.slice(),a.i=i.i,a}function s(i,a){i==null&&(i=+new Date);var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(l.x&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xorshift7=s})(d_,typeof sv=="object"&&sv,typeof define=="function"&&define)});var x_=gr((g_,iv)=>{(function(r,t,e){function n(i){var a=this;a.next=function(){var l=a.w,c=a.X,p=a.i,m,f;return a.w=l=l+1640531527|0,f=c[p+34&127],m=c[p=p+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[p]=f^m,a.i=p,f+(l^l>>>16)|0};function u(l,c){var p,m,f,d,h,g=[],x=128;for(c===(c|0)?(m=c,c=null):(c=c+"\0",m=0,x=Math.max(x,c.length)),f=0,d=-32;d>>15,m^=m<<4,m^=m>>>13,d>=0&&(h=h+1640531527|0,p=g[d&127]^=m+h,f=p==0?f+1:0);for(f>=128&&(g[(c&&c.length||0)&127]=-1),f=127,d=4*128;d>0;--d)m=g[f+34&127],p=g[f=f+1&127],m^=m<<13,p^=p<<17,m^=m>>>15,p^=p>>>12,g[f]=m^p;l.w=h,l.X=g,l.i=f}u(a,i)}function o(i,a){return a.i=i.i,a.w=i.w,a.X=i.X.slice(),a}function s(i,a){i==null&&(i=+new Date);var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(l.X&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xor4096=s})(g_,typeof iv=="object"&&iv,typeof define=="function"&&define)});var b_=gr((y_,av)=>{(function(r,t,e){function n(i){var a=this,u="";a.next=function(){var c=a.b,p=a.c,m=a.d,f=a.a;return c=c<<25^c>>>7^p,p=p-m|0,m=m<<24^m>>>8^f,f=f-c|0,a.b=c=c<<20^c>>>12^p,a.c=p=p-m|0,a.d=m<<16^p>>>16^f,a.a=f-c|0},a.a=0,a.b=0,a.c=-1640531527,a.d=1367130551,i===Math.floor(i)?(a.a=i/4294967296|0,a.b=i|0):u+=i;for(var l=0;l>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l=="object"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.tychei=s})(y_,typeof av=="object"&&av,typeof define=="function"&&define)});var w_=gr(()=>{});var I_=gr((C_,Yx)=>{(function(r,t,e){var n=256,o=6,s=52,i="random",a=e.pow(n,o),u=e.pow(2,s),l=u*2,c=n-1,p;function m(w,C,N){var _=[];C=C==!0?{entropy:!0}:C||{};var A=g(h(C.entropy?[w,b(t)]:w==null?x():w,3),_),$=new f(_),F=function(){for(var P=$.g(o),V=a,G=0;P=l;)P/=2,V/=2,G>>>=1;return(P+G)/V};return F.int32=function(){return $.g(4)|0},F.quick=function(){return $.g(4)/4294967296},F.double=F,g(b($.S),t),(C.pass||N||function(P,V,G,W){return W&&(W.S&&d(W,$),P.state=function(){return d($,{})}),G?(e[i]=P,V):P})(F,A,"global"in C?C.global:this==e,C.state)}function f(w){var C,N=w.length,_=this,A=0,$=_.i=_.j=0,F=_.S=[];for(N||(w=[N++]);A{var lj=u_(),uj=p_(),cj=f_(),pj=h_(),mj=x_(),fj=b_(),Ju=I_();Ju.alea=lj;Ju.xor128=uj;Ju.xorwow=cj;Ju.xorshift7=pj;Ju.xor4096=mj;Ju.tychei=fj;S_.exports=Ju});var gN=gr(()=>{});var Zb=gr(()=>{});var ig=gr(()=>{});var BW=gr(()=>{});var VW=gr(()=>{});var GW=gr(()=>{});var WW=gr((fI,Ok)=>{var Fk=(()=>{var r=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(r=r||__filename),function(t){t=t||{};function e(){return it.buffer!=jt&&qe(it.buffer),ke}function n(){return it.buffer!=jt&&qe(it.buffer),fe}function o(){return it.buffer!=jt&&qe(it.buffer),Ae}function s(){return it.buffer!=jt&&qe(it.buffer),_n}function i(){return it.buffer!=jt&&qe(it.buffer),or}function a(){return it.buffer!=jt&&qe(it.buffer),Hn}function u(){return it.buffer!=jt&&qe(it.buffer),Lr}var l=typeof t!="undefined"?t:{},c,p;l.ready=new Promise(function(L,U){c=L,p=U});var m;typeof process!="undefined"&&process.listeners&&(m={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var f=Object.assign({},l),d=[],h="./this.program",g=(L,U)=>{throw U},x=typeof window=="object",b=typeof importScripts=="function",w=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",C=l.ENVIRONMENT_IS_PTHREAD||!1,N="";function _(L){return l.locateFile?l.locateFile(L,N):N+L}var A,$,F,P;function V(L){if(L instanceof Ru)return;Y("exiting due to exception: "+L)}if(w){b?N=ig().dirname(N)+"/":N=__dirname+"/";var G,W;typeof Pg=="function"&&(G=Zb(),W=ig()),A=(U,ut)=>(U=W.normalize(U),G.readFileSync(U,ut?void 0:"utf8")),F=U=>{var ut=A(U,!0);return ut.buffer||(ut=new Uint8Array(ut)),ut},$=(U,ut,xt)=>{U=W.normalize(U),G.readFile(U,function(Dt,ie){Dt?xt(Dt):ut(ie.buffer)})},process.argv.length>1&&(h=process.argv[1].replace(/\\/g,"/")),d=process.argv.slice(2),process.on("uncaughtException",function(U){if(!(U instanceof Ru))throw U}),process.on("unhandledRejection",function(U){throw U}),g=(U,ut)=>{if(Mo())throw process.exitCode=U,ut;V(ut),process.exit(U)},l.inspect=function(){return"[Emscripten Module object]"};let L;try{L=BW()}catch(U){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),U}global.Worker=L.Worker}else(x||b)&&(b?N=self.location.href:typeof document!="undefined"&&document.currentScript&&(N=document.currentScript.src),typeof r!="undefined"&&r&&(N=r),N.indexOf("blob:")!==0?N=N.substr(0,N.replace(/[?#].*/,"").lastIndexOf("/")+1):N="",w||(A=L=>{var U=new XMLHttpRequest;return U.open("GET",L,!1),U.send(null),U.responseText},b&&(F=L=>{var U=new XMLHttpRequest;return U.open("GET",L,!1),U.responseType="arraybuffer",U.send(null),new Uint8Array(U.response)}),$=(L,U,ut)=>{var xt=new XMLHttpRequest;xt.open("GET",L,!0),xt.responseType="arraybuffer",xt.onload=()=>{if(xt.status==200||xt.status==0&&xt.response){U(xt.response);return}ut()},xt.onerror=ut,xt.send(null)}),P=L=>document.title=L);w&&typeof performance=="undefined"&&(global.performance=VW().performance);var q=console.log.bind(console),H=console.warn.bind(console);w&&(q=L=>G.writeSync(1,L+` +var DU=Object.create;var QS=Object.defineProperty;var RU=Object.getOwnPropertyDescriptor;var FU=Object.getOwnPropertyNames;var OU=Object.getPrototypeOf,PU=Object.prototype.hasOwnProperty;var Pg=(r=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(r,{get:(t,e)=>(typeof require!="undefined"?require:t)[e]}):r)(function(r){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var gr=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),Wt=(r,t)=>{for(var e in t)QS(r,e,{get:t[e],enumerable:!0})},LU=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of FU(t))!PU.call(r,o)&&o!==e&&QS(r,o,{get:()=>t[o],enumerable:!(n=RU(t,o))||n.enumerable});return r};var Tl=(r,t,e)=>(e=r!=null?DU(OU(r)):{},LU(t||!r||!r.__esModule?QS(e,"default",{value:r,enumerable:!0}):e,r));var T1=gr((Elt,N1)=>{N1.exports=Ue;var mo=null;try{mo=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(r){}function Ue(r,t,e){this.low=r|0,this.high=t|0,this.unsigned=!!e}Ue.prototype.__isLong__;Object.defineProperty(Ue.prototype,"__isLong__",{value:!0});function Fn(r){return(r&&r.__isLong__)===!0}Ue.isLong=Fn;var g1={},x1={};function zu(r,t){var e,n,o;return t?(r>>>=0,(o=0<=r&&r<256)&&(n=x1[r],n)?n:(e=He(r,(r|0)<0?-1:0,!0),o&&(x1[r]=e),e)):(r|=0,(o=-128<=r&&r<128)&&(n=g1[r],n)?n:(e=He(r,r<0?-1:0,!1),o&&(g1[r]=e),e))}Ue.fromInt=zu;function fo(r,t){if(isNaN(r))return t?Mu:ho;if(t){if(r<0)return Mu;if(r>=C1)return v1}else{if(r<=-b1)return Rn;if(r+1>=b1)return S1}return r<0?fo(-r,t).neg():He(r%Vp|0,r/Vp|0,t)}Ue.fromNumber=fo;function He(r,t,e){return new Ue(r,t,e)}Ue.fromBits=He;var Bg=Math.pow;function mv(r,t,e){if(r.length===0)throw Error("empty string");if(r==="NaN"||r==="Infinity"||r==="+Infinity"||r==="-Infinity")return ho;if(typeof t=="number"?(e=t,t=!1):t=!!t,e=e||10,e<2||360)throw Error("interior hyphen");if(n===0)return mv(r.substring(1),t,e).neg();for(var o=fo(Bg(e,8)),s=ho,i=0;i>>0:this.low};gt.toNumber=function(){return this.unsigned?(this.high>>>0)*Vp+(this.low>>>0):this.high*Vp+(this.low>>>0)};gt.toString=function(t){if(t=t||10,t<2||36>>0,c=l.toString(t);if(i=u,i.isZero())return c+a;for(;c.length<6;)c="0"+c;a=""+c+a}};gt.getHighBits=function(){return this.high};gt.getHighBitsUnsigned=function(){return this.high>>>0};gt.getLowBits=function(){return this.low};gt.getLowBitsUnsigned=function(){return this.low>>>0};gt.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Rn)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,e=31;e>0&&(t&1<=0};gt.isOdd=function(){return(this.low&1)===1};gt.isEven=function(){return(this.low&1)===0};gt.equals=function(t){return Fn(t)||(t=Ls(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low};gt.eq=gt.equals;gt.notEquals=function(t){return!this.eq(t)};gt.neq=gt.notEquals;gt.ne=gt.notEquals;gt.lessThan=function(t){return this.comp(t)<0};gt.lt=gt.lessThan;gt.lessThanOrEqual=function(t){return this.comp(t)<=0};gt.lte=gt.lessThanOrEqual;gt.le=gt.lessThanOrEqual;gt.greaterThan=function(t){return this.comp(t)>0};gt.gt=gt.greaterThan;gt.greaterThanOrEqual=function(t){return this.comp(t)>=0};gt.gte=gt.greaterThanOrEqual;gt.ge=gt.greaterThanOrEqual;gt.compare=function(t){if(Fn(t)||(t=Ls(t)),this.eq(t))return 0;var e=this.isNegative(),n=t.isNegative();return e&&!n?-1:!e&&n?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1};gt.comp=gt.compare;gt.negate=function(){return!this.unsigned&&this.eq(Rn)?Rn:this.not().add(Bp)};gt.neg=gt.negate;gt.add=function(t){Fn(t)||(t=Ls(t));var e=this.high>>>16,n=this.high&65535,o=this.low>>>16,s=this.low&65535,i=t.high>>>16,a=t.high&65535,u=t.low>>>16,l=t.low&65535,c=0,p=0,m=0,f=0;return f+=s+l,m+=f>>>16,f&=65535,m+=o+u,p+=m>>>16,m&=65535,p+=n+a,c+=p>>>16,p&=65535,c+=e+i,c&=65535,He(m<<16|f,c<<16|p,this.unsigned)};gt.subtract=function(t){return Fn(t)||(t=Ls(t)),this.add(t.neg())};gt.sub=gt.subtract;gt.multiply=function(t){if(this.isZero())return ho;if(Fn(t)||(t=Ls(t)),mo){var e=mo.mul(this.low,this.high,t.low,t.high);return He(e,mo.get_high(),this.unsigned)}if(t.isZero())return ho;if(this.eq(Rn))return t.isOdd()?Rn:ho;if(t.eq(Rn))return this.isOdd()?Rn:ho;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(w1)&&t.lt(w1))return fo(this.toNumber()*t.toNumber(),this.unsigned);var n=this.high>>>16,o=this.high&65535,s=this.low>>>16,i=this.low&65535,a=t.high>>>16,u=t.high&65535,l=t.low>>>16,c=t.low&65535,p=0,m=0,f=0,d=0;return d+=i*c,f+=d>>>16,d&=65535,f+=s*c,m+=f>>>16,f&=65535,f+=i*l,m+=f>>>16,f&=65535,m+=o*c,p+=m>>>16,m&=65535,m+=s*l,p+=m>>>16,m&=65535,m+=i*u,p+=m>>>16,m&=65535,p+=n*c+o*l+s*u+i*a,p&=65535,He(f<<16|d,p<<16|m,this.unsigned)};gt.mul=gt.multiply;gt.divide=function(t){if(Fn(t)||(t=Ls(t)),t.isZero())throw Error("division by zero");if(mo){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var e=(this.unsigned?mo.div_u:mo.div_s)(this.low,this.high,t.low,t.high);return He(e,mo.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Mu:ho;var n,o,s;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return Mu;if(t.gt(this.shru(1)))return I1;s=Mu}else{if(this.eq(Rn)){if(t.eq(Bp)||t.eq(pv))return Rn;if(t.eq(Rn))return Bp;var i=this.shr(1);return n=i.div(t).shl(1),n.eq(ho)?t.isNegative()?Bp:pv:(o=this.sub(t.mul(n)),s=n.add(o.div(t)),s)}else if(t.eq(Rn))return this.unsigned?Mu:ho;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();s=ho}for(o=this;o.gte(t);){n=Math.max(1,Math.floor(o.toNumber()/t.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),u=a<=48?1:Bg(2,a-48),l=fo(n),c=l.mul(t);c.isNegative()||c.gt(o);)n-=u,l=fo(n,this.unsigned),c=l.mul(t);l.isZero()&&(l=Bp),s=s.add(l),o=o.sub(c)}return s};gt.div=gt.divide;gt.modulo=function(t){if(Fn(t)||(t=Ls(t)),mo){var e=(this.unsigned?mo.rem_u:mo.rem_s)(this.low,this.high,t.low,t.high);return He(e,mo.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))};gt.mod=gt.modulo;gt.rem=gt.modulo;gt.not=function(){return He(~this.low,~this.high,this.unsigned)};gt.and=function(t){return Fn(t)||(t=Ls(t)),He(this.low&t.low,this.high&t.high,this.unsigned)};gt.or=function(t){return Fn(t)||(t=Ls(t)),He(this.low|t.low,this.high|t.high,this.unsigned)};gt.xor=function(t){return Fn(t)||(t=Ls(t)),He(this.low^t.low,this.high^t.high,this.unsigned)};gt.shiftLeft=function(t){return Fn(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?He(this.low<>>32-t,this.unsigned):He(0,this.low<>>t|this.high<<32-t,this.high>>t,this.unsigned):He(this.high>>t-32,this.high>=0?0:-1,this.unsigned)};gt.shr=gt.shiftRight;gt.shiftRightUnsigned=function(t){if(Fn(t)&&(t=t.toInt()),t&=63,t===0)return this;var e=this.high;if(t<32){var n=this.low;return He(n>>>t|e<<32-t,e>>>t,this.unsigned)}else return t===32?He(e,0,this.unsigned):He(e>>>t-32,0,this.unsigned)};gt.shru=gt.shiftRightUnsigned;gt.shr_u=gt.shiftRightUnsigned;gt.toSigned=function(){return this.unsigned?He(this.low,this.high,!1):this};gt.toUnsigned=function(){return this.unsigned?this:He(this.low,this.high,!0)};gt.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()};gt.toBytesLE=function(){var t=this.high,e=this.low;return[e&255,e>>>8&255,e>>>16&255,e>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]};gt.toBytesBE=function(){var t=this.high,e=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,e>>>24,e>>>16&255,e>>>8&255,e&255]};Ue.fromBytes=function(t,e,n){return n?Ue.fromBytesLE(t,e):Ue.fromBytesBE(t,e)};Ue.fromBytesLE=function(t,e){return new Ue(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,e)};Ue.fromBytesBE=function(t,e){return new Ue(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],e)}});var iE=gr(()=>{});var aE=gr(()=>{});var u_=gr((l_,r0)=>{(function(r,t,e){function n(a){var u=this,l=i();u.next=function(){var c=2091639*u.s0+u.c*23283064365386963e-26;return u.s0=u.s1,u.s1=u.s2,u.s2=c-(u.c=c|0)},u.c=1,u.s0=l(" "),u.s1=l(" "),u.s2=l(" "),u.s0-=l(a),u.s0<0&&(u.s0+=1),u.s1-=l(a),u.s1<0&&(u.s1+=1),u.s2-=l(a),u.s2<0&&(u.s2+=1),l=null}function o(a,u){return u.c=a.c,u.s0=a.s0,u.s1=a.s1,u.s2=a.s2,u}function s(a,u){var l=new n(a),c=u&&u.state,p=l.next;return p.int32=function(){return l.next()*4294967296|0},p.double=function(){return p()+(p()*2097152|0)*11102230246251565e-32},p.quick=p,c&&(typeof c=="object"&&o(c,l),p.state=function(){return o(l,{})}),p}function i(){var a=4022871197,u=function(l){l=String(l);for(var c=0;c>>0,p-=a,p*=a,a=p>>>0,p-=a,a+=p*4294967296}return(a>>>0)*23283064365386963e-26};return u}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.alea=s})(l_,typeof r0=="object"&&r0,typeof define=="function"&&define)});var p_=gr((c_,n0)=>{(function(r,t,e){function n(i){var a=this,u="";a.x=0,a.y=0,a.z=0,a.w=0,a.next=function(){var c=a.x^a.x<<11;return a.x=a.y,a.y=a.z,a.z=a.w,a.w^=a.w>>>19^c^c>>>8},i===(i|0)?a.x=i:u+=i;for(var l=0;l>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l=="object"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xor128=s})(c_,typeof n0=="object"&&n0,typeof define=="function"&&define)});var f_=gr((m_,o0)=>{(function(r,t,e){function n(i){var a=this,u="";a.next=function(){var c=a.x^a.x>>>2;return a.x=a.y,a.y=a.z,a.z=a.w,a.w=a.v,(a.d=a.d+362437|0)+(a.v=a.v^a.v<<4^(c^c<<1))|0},a.x=0,a.y=0,a.z=0,a.w=0,a.v=0,i===(i|0)?a.x=i:u+=i;for(var l=0;l>>4),a.next()}function o(i,a){return a.x=i.x,a.y=i.y,a.z=i.z,a.w=i.w,a.v=i.v,a.d=i.d,a}function s(i,a){var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l=="object"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xorwow=s})(m_,typeof o0=="object"&&o0,typeof define=="function"&&define)});var h_=gr((d_,s0)=>{(function(r,t,e){function n(i){var a=this;a.next=function(){var l=a.x,c=a.i,p,m,f;return p=l[c],p^=p>>>7,m=p^p<<24,p=l[c+1&7],m^=p^p>>>10,p=l[c+3&7],m^=p^p>>>3,p=l[c+4&7],m^=p^p<<7,p=l[c+7&7],p=p^p<<13,m^=p^p<<9,l[c]=m,a.i=c+1&7,m};function u(l,c){var p,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=""+c,p=0;p0;--p)l.next()}u(a,i)}function o(i,a){return a.x=i.x.slice(),a.i=i.i,a}function s(i,a){i==null&&(i=+new Date);var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(l.x&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xorshift7=s})(d_,typeof s0=="object"&&s0,typeof define=="function"&&define)});var x_=gr((g_,i0)=>{(function(r,t,e){function n(i){var a=this;a.next=function(){var l=a.w,c=a.X,p=a.i,m,f;return a.w=l=l+1640531527|0,f=c[p+34&127],m=c[p=p+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[p]=f^m,a.i=p,f+(l^l>>>16)|0};function u(l,c){var p,m,f,d,h,g=[],x=128;for(c===(c|0)?(m=c,c=null):(c=c+"\0",m=0,x=Math.max(x,c.length)),f=0,d=-32;d>>15,m^=m<<4,m^=m>>>13,d>=0&&(h=h+1640531527|0,p=g[d&127]^=m+h,f=p==0?f+1:0);for(f>=128&&(g[(c&&c.length||0)&127]=-1),f=127,d=4*128;d>0;--d)m=g[f+34&127],p=g[f=f+1&127],m^=m<<13,p^=p<<17,m^=m>>>15,p^=p>>>12,g[f]=m^p;l.w=h,l.X=g,l.i=f}u(a,i)}function o(i,a){return a.i=i.i,a.w=i.w,a.X=i.X.slice(),a}function s(i,a){i==null&&(i=+new Date);var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(l.X&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xor4096=s})(g_,typeof i0=="object"&&i0,typeof define=="function"&&define)});var b_=gr((y_,a0)=>{(function(r,t,e){function n(i){var a=this,u="";a.next=function(){var c=a.b,p=a.c,m=a.d,f=a.a;return c=c<<25^c>>>7^p,p=p-m|0,m=m<<24^m>>>8^f,f=f-c|0,a.b=c=c<<20^c>>>12^p,a.c=p=p-m|0,a.d=m<<16^p>>>16^f,a.a=f-c|0},a.a=0,a.b=0,a.c=-1640531527,a.d=1367130551,i===Math.floor(i)?(a.a=i/4294967296|0,a.b=i|0):u+=i;for(var l=0;l>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l=="object"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.tychei=s})(y_,typeof a0=="object"&&a0,typeof define=="function"&&define)});var w_=gr(()=>{});var I_=gr((C_,Yx)=>{(function(r,t,e){var n=256,o=6,s=52,i="random",a=e.pow(n,o),u=e.pow(2,s),l=u*2,c=n-1,p;function m(w,C,N){var _=[];C=C==!0?{entropy:!0}:C||{};var A=g(h(C.entropy?[w,b(t)]:w==null?x():w,3),_),$=new f(_),F=function(){for(var P=$.g(o),V=a,G=0;P=l;)P/=2,V/=2,G>>>=1;return(P+G)/V};return F.int32=function(){return $.g(4)|0},F.quick=function(){return $.g(4)/4294967296},F.double=F,g(b($.S),t),(C.pass||N||function(P,V,G,W){return W&&(W.S&&d(W,$),P.state=function(){return d($,{})}),G?(e[i]=P,V):P})(F,A,"global"in C?C.global:this==e,C.state)}function f(w){var C,N=w.length,_=this,A=0,$=_.i=_.j=0,F=_.S=[];for(N||(w=[N++]);A{var lj=u_(),uj=p_(),cj=f_(),pj=h_(),mj=x_(),fj=b_(),Ju=I_();Ju.alea=lj;Ju.xor128=uj;Ju.xorwow=cj;Ju.xorshift7=pj;Ju.xor4096=mj;Ju.tychei=fj;S_.exports=Ju});var gN=gr(()=>{});var Zb=gr(()=>{});var ig=gr(()=>{});var BW=gr(()=>{});var VW=gr(()=>{});var GW=gr(()=>{});var WW=gr((fI,Ok)=>{var Fk=(()=>{var r=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(r=r||__filename),function(t){t=t||{};function e(){return st.buffer!=jt&&qe(st.buffer),ke}function n(){return st.buffer!=jt&&qe(st.buffer),fe}function o(){return st.buffer!=jt&&qe(st.buffer),Ae}function s(){return st.buffer!=jt&&qe(st.buffer),_n}function i(){return st.buffer!=jt&&qe(st.buffer),or}function a(){return st.buffer!=jt&&qe(st.buffer),Hn}function u(){return st.buffer!=jt&&qe(st.buffer),Lr}var l=typeof t!="undefined"?t:{},c,p;l.ready=new Promise(function(L,U){c=L,p=U});var m;typeof process!="undefined"&&process.listeners&&(m={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var f=Object.assign({},l),d=[],h="./this.program",g=(L,U)=>{throw U},x=typeof window=="object",b=typeof importScripts=="function",w=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",C=l.ENVIRONMENT_IS_PTHREAD||!1,N="";function _(L){return l.locateFile?l.locateFile(L,N):N+L}var A,$,F,P;function V(L){if(L instanceof Ru)return;Y("exiting due to exception: "+L)}if(w){b?N=ig().dirname(N)+"/":N=__dirname+"/";var G,W;typeof Pg=="function"&&(G=Zb(),W=ig()),A=(U,ut)=>(U=W.normalize(U),G.readFileSync(U,ut?void 0:"utf8")),F=U=>{var ut=A(U,!0);return ut.buffer||(ut=new Uint8Array(ut)),ut},$=(U,ut,xt)=>{U=W.normalize(U),G.readFile(U,function(Dt,ie){Dt?xt(Dt):ut(ie.buffer)})},process.argv.length>1&&(h=process.argv[1].replace(/\\/g,"/")),d=process.argv.slice(2),process.on("uncaughtException",function(U){if(!(U instanceof Ru))throw U}),process.on("unhandledRejection",function(U){throw U}),g=(U,ut)=>{if(Mo())throw process.exitCode=U,ut;V(ut),process.exit(U)},l.inspect=function(){return"[Emscripten Module object]"};let L;try{L=BW()}catch(U){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),U}global.Worker=L.Worker}else(x||b)&&(b?N=self.location.href:typeof document!="undefined"&&document.currentScript&&(N=document.currentScript.src),typeof r!="undefined"&&r&&(N=r),N.indexOf("blob:")!==0?N=N.substr(0,N.replace(/[?#].*/,"").lastIndexOf("/")+1):N="",w||(A=L=>{var U=new XMLHttpRequest;return U.open("GET",L,!1),U.send(null),U.responseText},b&&(F=L=>{var U=new XMLHttpRequest;return U.open("GET",L,!1),U.responseType="arraybuffer",U.send(null),new Uint8Array(U.response)}),$=(L,U,ut)=>{var xt=new XMLHttpRequest;xt.open("GET",L,!0),xt.responseType="arraybuffer",xt.onload=()=>{if(xt.status==200||xt.status==0&&xt.response){U(xt.response);return}ut()},xt.onerror=ut,xt.send(null)}),P=L=>document.title=L);w&&typeof performance=="undefined"&&(global.performance=VW().performance);var q=console.log.bind(console),H=console.warn.bind(console);w&&(q=L=>G.writeSync(1,L+` `),H=L=>G.writeSync(2,L+` -`));var j=l.print||q,Y=l.printErr||H;Object.assign(l,f),f=null,l.arguments&&(d=l.arguments),l.thisProgram&&(h=l.thisProgram),l.quit&&(g=l.quit);var Z=4,et=Atomics.load,rt=Atomics.store,ot=Atomics.compareExchange,at;l.wasmBinary&&(at=l.wasmBinary);var nt=l.noExitRuntime||!0;typeof WebAssembly!="object"&&Yc("no native wasm support detected");var it,dt,ht=!1,bt;function Et(L,U){L||Yc(U)}var At=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Vt(L,U,ut){for(var xt=U+ut,Dt=U;L[Dt]&&!(Dt>=xt);)++Dt;if(Dt-U>16&&L.buffer&&At)return At.decode(L.buffer instanceof SharedArrayBuffer?L.slice(U,Dt):L.subarray(U,Dt));for(var ie="";U>10,56320|Xn&1023)}}return ie}function Zt(L,U){return L?Vt(n(),L,U):""}function ce(L,U,ut,xt){if(!(xt>0))return 0;for(var Dt=ut,ie=ut+xt-1,Gt=0;Gt=55296&&Xt<=57343){var hr=L.charCodeAt(++Gt);Xt=65536+((Xt&1023)<<10)|hr&1023}if(Xt<=127){if(ut>=ie)break;U[ut++]=Xt}else if(Xt<=2047){if(ut+1>=ie)break;U[ut++]=192|Xt>>6,U[ut++]=128|Xt&63}else if(Xt<=65535){if(ut+2>=ie)break;U[ut++]=224|Xt>>12,U[ut++]=128|Xt>>6&63,U[ut++]=128|Xt&63}else{if(ut+3>=ie)break;U[ut++]=240|Xt>>18,U[ut++]=128|Xt>>12&63,U[ut++]=128|Xt>>6&63,U[ut++]=128|Xt&63}}return U[ut]=0,ut-Dt}function he(L,U,ut){return ce(L,n(),U,ut)}var jt,ke,fe,Ae,We,_n,or,Hn,Lr;C&&(jt=l.buffer);function qe(L){jt=L,l.HEAP8=ke=new Int8Array(L),l.HEAP16=Ae=new Int16Array(L),l.HEAP32=_n=new Int32Array(L),l.HEAPU8=fe=new Uint8Array(L),l.HEAPU16=We=new Uint16Array(L),l.HEAPU32=or=new Uint32Array(L),l.HEAPF32=Hn=new Float32Array(L),l.HEAPF64=Lr=new Float64Array(L)}var Mr=l.INITIAL_MEMORY||16777216;if(C)it=l.wasmMemory,jt=l.buffer;else if(l.wasmMemory)it=l.wasmMemory;else if(it=new WebAssembly.Memory({initial:Mr/65536,maximum:32768,shared:!0}),!(it.buffer instanceof SharedArrayBuffer))throw Y("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),w&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");it&&(jt=it.buffer),Mr=jt.byteLength,qe(jt);var zr,qn=[],Kn=[],Xr=[],Zi=!1;function Mo(){return nt}function Il(){if(l.preRun)for(typeof l.preRun=="function"&&(l.preRun=[l.preRun]);l.preRun.length;)Rd(l.preRun.shift());Md(qn)}function Tr(){Zi=!0,!C&&Md(Kn)}function Ji(){if(!C){if(l.postRun)for(typeof l.postRun=="function"&&(l.postRun=[l.postRun]);l.postRun.length;)Gk(l.postRun.shift());Md(Xr)}}function Rd(L){qn.unshift(L)}function Fd(L){Kn.unshift(L)}function Gk(L){Xr.unshift(L)}var Sl=0,Xc=null,Qi=null;function Wk(L){Sl++,l.monitorRunDependencies&&l.monitorRunDependencies(Sl)}function Uk(L){if(Sl--,l.monitorRunDependencies&&l.monitorRunDependencies(Sl),Sl==0&&(Xc!==null&&(clearInterval(Xc),Xc=null),Qi)){var U=Qi;Qi=null,U()}}function Yc(L){C?postMessage({cmd:"onAbort",arg:L}):l.onAbort&&l.onAbort(L),L="Aborted("+L+")",Y(L),ht=!0,bt=1,L+=". Build with -sASSERTIONS for more info.";var U=new WebAssembly.RuntimeError(L);throw p(U),U}var gI="data:application/octet-stream;base64,";function pg(L){return L.startsWith(gI)}function Od(L){return L.startsWith("file://")}var en;en="tfjs-backend-wasm-threaded-simd.wasm",pg(en)||(en=_(en));function mg(L){try{if(L==en&&at)return new Uint8Array(at);if(F)return F(L);throw"both async and sync fetching of the wasm failed"}catch(U){Yc(U)}}function xI(){if(!at&&(x||b)){if(typeof fetch=="function"&&!Od(en))return fetch(en,{credentials:"same-origin"}).then(function(L){if(!L.ok)throw"failed to load wasm binary file at '"+en+"'";return L.arrayBuffer()}).catch(function(){return mg(en)});if($)return new Promise(function(L,U){$(en,function(ut){L(new Uint8Array(ut))},U)})}return Promise.resolve().then(function(){return mg(en)})}function yI(){var L={env:vg,wasi_snapshot_preview1:vg};function U(Gt,Xt){var hr=Gt.exports;if(l.asm=hr,EI(l.asm._emscripten_tls_init),zr=l.asm.__indirect_function_table,Fd(l.asm.__wasm_call_ctors),dt=Xt,!C){var Xn=Kt.unusedWorkers.length;Kt.unusedWorkers.forEach(function(ea){Kt.loadWasmModuleToWorker(ea,function(){--Xn||Uk("wasm-instantiate")})})}}C||Wk("wasm-instantiate");function ut(Gt){U(Gt.instance,Gt.module)}function xt(Gt){return xI().then(function(Xt){return WebAssembly.instantiate(Xt,L)}).then(function(Xt){return Xt}).then(Gt,function(Xt){Y("failed to asynchronously prepare wasm: "+Xt),Yc(Xt)})}function Dt(){return!at&&typeof WebAssembly.instantiateStreaming=="function"&&!pg(en)&&!Od(en)&&!w&&typeof fetch=="function"?fetch(en,{credentials:"same-origin"}).then(function(Gt){var Xt=WebAssembly.instantiateStreaming(Gt,L);return Xt.then(ut,function(hr){return Y("wasm streaming compile failed: "+hr),Y("falling back to ArrayBuffer instantiation"),xt(ut)})}):xt(ut)}if(l.instantiateWasm)try{var ie=l.instantiateWasm(L,U);return ie}catch(Gt){Y("Module.instantiateWasm callback failed with error: "+Gt),p(Gt)}return Dt().catch(p),{}}var bI,Hk,wI={};function Ru(L){this.name="ExitStatus",this.message="Program terminated with exit("+L+")",this.status=L}function CI(L){var U=Kt.pthreads[L];delete Kt.pthreads[L],U.terminate(),YS(L),Kt.runningWorkers.splice(Kt.runningWorkers.indexOf(U),1),U.pthread_ptr=0}function II(L){var U=Kt.pthreads[L];U.postMessage({cmd:"cancel"})}function Pd(L){var U=Kt.pthreads[L];Et(U),Kt.returnWorkerToPool(U)}function fg(L){var U=Kt.getNewWorker();if(!U)return 6;Kt.runningWorkers.push(U),Kt.pthreads[L.pthread_ptr]=U,U.pthread_ptr=L.pthread_ptr;var ut={cmd:"run",start_routine:L.startRoutine,arg:L.arg,pthread_ptr:L.pthread_ptr};return U.runPthread=()=>{ut.time=performance.now(),U.postMessage(ut,L.transferList)},U.loaded&&(U.runPthread(),delete U.runPthread),0}var dg={varargs:void 0,get:function(){dg.varargs+=4;var L=s()[dg.varargs-4>>2];return L},getStr:function(L){var U=Zt(L);return U}};function Ld(L){if(C)return vl(1,1,L);bt=L,Mo()||(Kt.terminateAllThreads(),l.onExit&&l.onExit(L),ht=!0),g(L,new Ru(L))}function qk(L,U){if(bt=L,!U&&C)throw gg(L),"unwind";Ld(L)}var hg=qk;function SI(L){if(L instanceof Ru||L=="unwind")return bt;g(1,L)}var Kt={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?Kt.initWorker():Kt.initMainThread()},initMainThread:function(){for(var L=8;L--;)Kt.allocateUnusedWorker()},initWorker:function(){nt=!1},setExitStatus:function(L){bt=L},terminateAllThreads:function(){for(var L of Object.values(Kt.pthreads))Kt.returnWorkerToPool(L);for(var L of Kt.unusedWorkers)L.terminate();Kt.unusedWorkers=[]},returnWorkerToPool:function(L){var U=L.pthread_ptr;delete Kt.pthreads[U],Kt.unusedWorkers.push(L),Kt.runningWorkers.splice(Kt.runningWorkers.indexOf(L),1),L.pthread_ptr=0,YS(U)},receiveObjectTransfer:function(L){},threadInitTLS:function(){Kt.tlsInitFunctions.forEach(L=>L())},loadWasmModuleToWorker:function(L,U){L.onmessage=ut=>{var xt=ut.data,Dt=xt.cmd;if(L.pthread_ptr&&(Kt.currentProxiedOperationCallerThread=L.pthread_ptr),xt.targetThread&&xt.targetThread!=Ag()){var ie=Kt.pthreads[xt.targetThread];ie?ie.postMessage(xt,xt.transferList):Y('Internal error! Worker sent a message "'+Dt+'" to target pthread '+xt.targetThread+", but that thread no longer exists!"),Kt.currentProxiedOperationCallerThread=void 0;return}Dt==="processProxyingQueue"?zd(xt.queue):Dt==="spawnThread"?fg(xt):Dt==="cleanupThread"?Pd(xt.thread):Dt==="killThread"?CI(xt.thread):Dt==="cancelThread"?II(xt.thread):Dt==="loaded"?(L.loaded=!0,U&&U(L),L.runPthread&&(L.runPthread(),delete L.runPthread)):Dt==="print"?j("Thread "+xt.threadId+": "+xt.text):Dt==="printErr"?Y("Thread "+xt.threadId+": "+xt.text):Dt==="alert"?alert("Thread "+xt.threadId+": "+xt.text):xt.target==="setimmediate"?L.postMessage(xt):Dt==="onAbort"?l.onAbort&&l.onAbort(xt.arg):Dt&&Y("worker sent an unknown command "+Dt),Kt.currentProxiedOperationCallerThread=void 0},L.onerror=ut=>{var xt="worker sent an error!";throw Y(xt+" "+ut.filename+":"+ut.lineno+": "+ut.message),ut},w&&(L.on("message",function(ut){L.onmessage({data:ut})}),L.on("error",function(ut){L.onerror(ut)}),L.on("detachedExit",function(){})),L.postMessage({cmd:"load",urlOrBlob:l.mainScriptUrlOrBlob||r,wasmMemory:it,wasmModule:dt})},allocateUnusedWorker:function(){var L=_("tfjs-backend-wasm-threaded-simd.worker.js");Kt.unusedWorkers.push(new Worker(L))},getNewWorker:function(){return Kt.unusedWorkers.length==0&&(Kt.allocateUnusedWorker(),Kt.loadWasmModuleToWorker(Kt.unusedWorkers[0])),Kt.unusedWorkers.pop()}};l.PThread=Kt;function Md(L){for(;L.length>0;)L.shift()(l)}function vI(L){var U=ZS(),ut=L();return $g(U),ut}function Kk(L){return L}function jk(L){var U=/\b_Z[\w\d_]+/g;return L.replace(U,function(ut){var xt=ut;return ut===xt?ut:xt+" ["+ut+"]"})}function NI(){var L=Ag(),U=s()[L+44>>2],ut=s()[L+48>>2],xt=U-ut;e1(U,xt),$g(U)}l.establishStackSpace=NI;function gg(L){if(C)return vl(2,0,L);try{hg(L)}catch(U){SI(U)}}var Zc=[];function TI(L){var U=Zc[L];return U||(L>=Zc.length&&(Zc.length=L+1),Zc[L]=U=zr.get(L)),U}function kI(L,U){var ut=TI(L)(U);Mo()?Kt.setExitStatus(ut):t1(ut)}l.invokeEntryPoint=kI;function Xk(){var L=new Error;if(!L.stack){try{throw new Error}catch(U){L=U}if(!L.stack)return"(no stack trace available)"}return L.stack.toString()}function EI(L){Kt.tlsInitFunctions.push(L)}function _I(L,U){e().set(L,U)}function AI(L){Zk(L,!b,1,!x),Kt.threadInitTLS()}function $I(L){C?postMessage({cmd:"cleanupThread",thread:L}):Pd(L)}function xg(L,U,ut,xt){return C?vl(3,1,L,U,ut,xt):yg(L,U,ut,xt)}function yg(L,U,ut,xt){if(typeof SharedArrayBuffer=="undefined")return Y("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var Dt=[],ie=0;if(C&&(Dt.length===0||ie))return xg(L,U,ut,xt);if(ie)return ie;var Gt={startRoutine:ut,pthread_ptr:L,arg:xt,transferList:Dt};return C?(Gt.cmd="spawnThread",postMessage(Gt,Dt),0):fg(Gt)}function DI(){return 2097152}var RI=!0;function FI(){return RI}function zd(L){Atomics.store(s(),L>>2,1),Ag()&&Qk(L),Atomics.compareExchange(s(),L>>2,1,0)}l.executeNotifiedProxyingQueue=zd;function OI(L,U,ut,xt){if(L==U)setTimeout(()=>zd(xt));else if(C)postMessage({targetThread:L,cmd:"processProxyingQueue",queue:xt});else{var Dt=Kt.pthreads[L];if(!Dt)return;Dt.postMessage({cmd:"processProxyingQueue",queue:xt})}return 1}function PI(L,U,ut){return-1}function LI(){Yc("")}function Fu(L){Fu.shown||(Fu.shown={}),Fu.shown[L]||(Fu.shown[L]=1,w&&(L="warning: "+L),Y(L))}function MI(){w||b||Fu("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function zI(){return Date.now()}function bg(){return 2147483648}function BI(){return bg()}var Jc;w?Jc=()=>{var L=process.hrtime();return L[0]*1e3+L[1]/1e6}:C?Jc=()=>performance.now()-l.__performance_now_clock_drift:Jc=()=>performance.now();function VI(L,U,ut){n().copyWithin(L,U,U+ut)}function GI(){return w?GW().cpus().length:navigator.hardwareConcurrency}function vl(L,U){var ut=arguments.length-2,xt=arguments;return vI(()=>{for(var Dt=ut,ie=Dg(Dt*8),Gt=ie>>3,Xt=0;Xt>3,Dt=0;Dt>>16),qe(it.buffer),1}catch(U){}}function HI(L){var U=n().length;if(L=L>>>0,L<=U)return!1;var ut=bg();if(L>ut)return!1;let xt=(hr,Xn)=>hr+(Xn-hr%Xn)%Xn;for(var Dt=1;Dt<=4;Dt*=2){var ie=U*(1+.2/Dt);ie=Math.min(ie,L+100663296);var Gt=Math.min(ut,xt(Math.max(L,ie),65536)),Xt=UI(Gt);if(Xt)return!0}return!1}function qI(){throw"unwind"}function wg(L){return C?vl(4,1,L):52}function Cg(L,U,ut,xt,Dt){return C?vl(5,1,L,U,ut,xt,Dt):70}var KI=[null,[],[]];function jI(L,U){var ut=KI[L];U===0||U===10?((L===1?j:Y)(Vt(ut,0)),ut.length=0):ut.push(U)}function Ig(L,U,ut,xt){if(C)return vl(6,1,L,U,ut,xt);for(var Dt=0,ie=0;ie>2],Xt=i()[U+4>>2];U+=8;for(var hr=0;hr>2]=Dt,0}function Sg(L){var U=l["_"+L];return U}function XI(L,U,ut,xt,Dt){var ie={string:An=>{var rp=0;if(An!=null&&An!==0){var o1=(An.length<<2)+1;rp=Dg(o1),he(An,rp,o1)}return rp},array:An=>{var rp=Dg(An.length);return _I(An,rp),rp}};function Gt(An){return U==="string"?Zt(An):U==="boolean"?Boolean(An):An}var Xt=Sg(L),hr=[],Xn=0;if(xt)for(var ea=0;eaGt==="number"||Gt==="boolean"),ie=U!=="string";return ie&&Dt&&!xt?Sg(L):function(){return XI(L,U,ut,arguments,xt)}}Kt.init();var ZI=[null,Ld,gg,xg,wg,Cg,Ig],vg={__emscripten_init_main_thread_js:AI,__emscripten_thread_cleanup:$I,__pthread_create_js:yg,_emscripten_default_pthread_stack_size:DI,_emscripten_get_now_is_monotonic:FI,_emscripten_notify_task_queue:OI,_emscripten_set_offscreencanvas_size:PI,abort:LI,emscripten_check_blocking_allowed:MI,emscripten_date_now:zI,emscripten_get_heap_max:BI,emscripten_get_now:Jc,emscripten_memcpy_big:VI,emscripten_num_logical_cores:GI,emscripten_receive_on_main_thread_js:WI,emscripten_resize_heap:HI,emscripten_unwind_to_js_event_loop:qI,exit:hg,fd_close:wg,fd_seek:Cg,fd_write:Ig,memory:it||l.wasmMemory},Yk=yI(),JI=l.___wasm_call_ctors=function(){return(JI=l.___wasm_call_ctors=l.asm.__wasm_call_ctors).apply(null,arguments)},QI=l._init=function(){return(QI=l._init=l.asm.init).apply(null,arguments)},tS=l._init_with_threads_count=function(){return(tS=l._init_with_threads_count=l.asm.init_with_threads_count).apply(null,arguments)},eS=l._get_threads_count=function(){return(eS=l._get_threads_count=l.asm.get_threads_count).apply(null,arguments)},rS=l._register_tensor=function(){return(rS=l._register_tensor=l.asm.register_tensor).apply(null,arguments)},nS=l._dispose_data=function(){return(nS=l._dispose_data=l.asm.dispose_data).apply(null,arguments)},oS=l._dispose=function(){return(oS=l._dispose=l.asm.dispose).apply(null,arguments)},sS=l._Abs=function(){return(sS=l._Abs=l.asm.Abs).apply(null,arguments)},iS=l._Add=function(){return(iS=l._Add=l.asm.Add).apply(null,arguments)},aS=l._AddN=function(){return(aS=l._AddN=l.asm.AddN).apply(null,arguments)},lS=l._All=function(){return(lS=l._All=l.asm.All).apply(null,arguments)},uS=l._Any=function(){return(uS=l._Any=l.asm.Any).apply(null,arguments)},cS=l._ArgMax=function(){return(cS=l._ArgMax=l.asm.ArgMax).apply(null,arguments)},pS=l._AvgPool=function(){return(pS=l._AvgPool=l.asm.AvgPool).apply(null,arguments)},mS=l._BatchMatMul=function(){return(mS=l._BatchMatMul=l.asm.BatchMatMul).apply(null,arguments)},fS=l._Ceil=function(){return(fS=l._Ceil=l.asm.Ceil).apply(null,arguments)},dS=l._ClipByValue=function(){return(dS=l._ClipByValue=l.asm.ClipByValue).apply(null,arguments)},hS=l._Conv2D=function(){return(hS=l._Conv2D=l.asm.Conv2D).apply(null,arguments)},gS=l._Conv2DBackpropInput=function(){return(gS=l._Conv2DBackpropInput=l.asm.Conv2DBackpropInput).apply(null,arguments)},xS=l._Cos=function(){return(xS=l._Cos=l.asm.Cos).apply(null,arguments)},yS=l._Cosh=function(){return(yS=l._Cosh=l.asm.Cosh).apply(null,arguments)},bS=l._CropAndResize=function(){return(bS=l._CropAndResize=l.asm.CropAndResize).apply(null,arguments)},wS=l._Cumprod=function(){return(wS=l._Cumprod=l.asm.Cumprod).apply(null,arguments)},CS=l._Cumsum=function(){return(CS=l._Cumsum=l.asm.Cumsum).apply(null,arguments)},IS=l._DepthToSpace=function(){return(IS=l._DepthToSpace=l.asm.DepthToSpace).apply(null,arguments)},SS=l._DepthwiseConv2dNative=function(){return(SS=l._DepthwiseConv2dNative=l.asm.DepthwiseConv2dNative).apply(null,arguments)},vS=l._Elu=function(){return(vS=l._Elu=l.asm.Elu).apply(null,arguments)},NS=l._Equal=function(){return(NS=l._Equal=l.asm.Equal).apply(null,arguments)},TS=l._Exp=function(){return(TS=l._Exp=l.asm.Exp).apply(null,arguments)},kS=l._FlipLeftRight=function(){return(kS=l._FlipLeftRight=l.asm.FlipLeftRight).apply(null,arguments)},ES=l._Floor=function(){return(ES=l._Floor=l.asm.Floor).apply(null,arguments)},_S=l._FloorDiv=function(){return(_S=l._FloorDiv=l.asm.FloorDiv).apply(null,arguments)},AS=l._FusedBatchNorm=function(){return(AS=l._FusedBatchNorm=l.asm.FusedBatchNorm).apply(null,arguments)},$S=l._FusedConv2D=function(){return($S=l._FusedConv2D=l.asm.FusedConv2D).apply(null,arguments)},DS=l._FusedDepthwiseConv2D=function(){return(DS=l._FusedDepthwiseConv2D=l.asm.FusedDepthwiseConv2D).apply(null,arguments)},RS=l._Gather=function(){return(RS=l._Gather=l.asm.Gather).apply(null,arguments)},FS=l._GatherNd=function(){return(FS=l._GatherNd=l.asm.GatherNd).apply(null,arguments)},OS=l._Greater=function(){return(OS=l._Greater=l.asm.Greater).apply(null,arguments)},PS=l._GreaterEqual=function(){return(PS=l._GreaterEqual=l.asm.GreaterEqual).apply(null,arguments)},LS=l._LeakyRelu=function(){return(LS=l._LeakyRelu=l.asm.LeakyRelu).apply(null,arguments)},MS=l._Less=function(){return(MS=l._Less=l.asm.Less).apply(null,arguments)},zS=l._LessEqual=function(){return(zS=l._LessEqual=l.asm.LessEqual).apply(null,arguments)},BS=l._Log=function(){return(BS=l._Log=l.asm.Log).apply(null,arguments)},VS=l._LogicalAnd=function(){return(VS=l._LogicalAnd=l.asm.LogicalAnd).apply(null,arguments)},GS=l._LogicalNot=function(){return(GS=l._LogicalNot=l.asm.LogicalNot).apply(null,arguments)},WS=l._LogicalOr=function(){return(WS=l._LogicalOr=l.asm.LogicalOr).apply(null,arguments)},US=l._LogicalXor=function(){return(US=l._LogicalXor=l.asm.LogicalXor).apply(null,arguments)},HS=l._Max=function(){return(HS=l._Max=l.asm.Max).apply(null,arguments)},Ng=l._MaxPool=function(){return(Ng=l._MaxPool=l.asm.MaxPool).apply(null,arguments)},Tg=l._Maximum=function(){return(Tg=l._Maximum=l.asm.Maximum).apply(null,arguments)},Vd=l._Mean=function(){return(Vd=l._Mean=l.asm.Mean).apply(null,arguments)},qS=l._Min=function(){return(qS=l._Min=l.asm.Min).apply(null,arguments)},KS=l._Minimum=function(){return(KS=l._Minimum=l.asm.Minimum).apply(null,arguments)},Qc=l._MirrorPad=function(){return(Qc=l._MirrorPad=l.asm.MirrorPad).apply(null,arguments)},kg=l._Multiply=function(){return(kg=l._Multiply=l.asm.Multiply).apply(null,arguments)},tp=l._Neg=function(){return(tp=l._Neg=l.asm.Neg).apply(null,arguments)},ep=l._NonMaxSuppressionV3=function(){return(ep=l._NonMaxSuppressionV3=l.asm.NonMaxSuppressionV3).apply(null,arguments)},jS=l._NonMaxSuppressionV4=function(){return(jS=l._NonMaxSuppressionV4=l.asm.NonMaxSuppressionV4).apply(null,arguments)},K=l._NonMaxSuppressionV5=function(){return(K=l._NonMaxSuppressionV5=l.asm.NonMaxSuppressionV5).apply(null,arguments)},lt=l._NotEqual=function(){return(lt=l._NotEqual=l.asm.NotEqual).apply(null,arguments)},_t=l._OneHot=function(){return(_t=l._OneHot=l.asm.OneHot).apply(null,arguments)},re=l._PadV2=function(){return(re=l._PadV2=l.asm.PadV2).apply(null,arguments)},Ke=l._Pow=function(){return(Ke=l._Pow=l.asm.Pow).apply(null,arguments)},je=l._Prelu=function(){return(je=l._Prelu=l.asm.Prelu).apply(null,arguments)},ee=l._Prod=function(){return(ee=l._Prod=l.asm.Prod).apply(null,arguments)},te=l._RealDiv=function(){return(te=l._RealDiv=l.asm.RealDiv).apply(null,arguments)},dr=l._Relu=function(){return(dr=l._Relu=l.asm.Relu).apply(null,arguments)},jn=l._Relu6=function(){return(jn=l._Relu6=l.asm.Relu6).apply(null,arguments)},ta=l._ResizeBilinear=function(){return(ta=l._ResizeBilinear=l.asm.ResizeBilinear).apply(null,arguments)},Eg=l._ResizeNearestNeighbor=function(){return(Eg=l._ResizeNearestNeighbor=l.asm.ResizeNearestNeighbor).apply(null,arguments)},Gd=l._Reverse=function(){return(Gd=l._Reverse=l.asm.Reverse).apply(null,arguments)},XS=l._RotateWithOffset=function(){return(XS=l._RotateWithOffset=l.asm.RotateWithOffset).apply(null,arguments)},rn=l._Round=function(){return(rn=l._Round=l.asm.Round).apply(null,arguments)},Nl=l._Rsqrt=function(){return(Nl=l._Rsqrt=l.asm.Rsqrt).apply(null,arguments)},_g=l._ScatterNd=function(){return(_g=l._ScatterNd=l.asm.ScatterNd).apply(null,arguments)},QW=l._SelectV2=function(){return(QW=l._SelectV2=l.asm.SelectV2).apply(null,arguments)},tU=l._Sigmoid=function(){return(tU=l._Sigmoid=l.asm.Sigmoid).apply(null,arguments)},eU=l._Sin=function(){return(eU=l._Sin=l.asm.Sin).apply(null,arguments)},rU=l._Softmax=function(){return(rU=l._Softmax=l.asm.Softmax).apply(null,arguments)},nU=l._SparseFillEmptyRows=function(){return(nU=l._SparseFillEmptyRows=l.asm.SparseFillEmptyRows).apply(null,arguments)},oU=l._SparseReshape=function(){return(oU=l._SparseReshape=l.asm.SparseReshape).apply(null,arguments)},sU=l._SparseSegmentReduction=function(){return(sU=l._SparseSegmentReduction=l.asm.SparseSegmentReduction).apply(null,arguments)},iU=l._Sqrt=function(){return(iU=l._Sqrt=l.asm.Sqrt).apply(null,arguments)},aU=l._Square=function(){return(aU=l._Square=l.asm.Square).apply(null,arguments)},lU=l._SquaredDifference=function(){return(lU=l._SquaredDifference=l.asm.SquaredDifference).apply(null,arguments)},uU=l._Step=function(){return(uU=l._Step=l.asm.Step).apply(null,arguments)},cU=l._StridedSlice=function(){return(cU=l._StridedSlice=l.asm.StridedSlice).apply(null,arguments)},pU=l._Sub=function(){return(pU=l._Sub=l.asm.Sub).apply(null,arguments)},mU=l._Sum=function(){return(mU=l._Sum=l.asm.Sum).apply(null,arguments)},fU=l._Tan=function(){return(fU=l._Tan=l.asm.Tan).apply(null,arguments)},dU=l._Tanh=function(){return(dU=l._Tanh=l.asm.Tanh).apply(null,arguments)},hU=l._Tile=function(){return(hU=l._Tile=l.asm.Tile).apply(null,arguments)},gU=l._TopK=function(){return(gU=l._TopK=l.asm.TopK).apply(null,arguments)},xU=l._Transform=function(){return(xU=l._Transform=l.asm.Transform).apply(null,arguments)},yU=l._Transpose=function(){return(yU=l._Transpose=l.asm.Transpose).apply(null,arguments)},bU=l.__FusedMatMul=function(){return(bU=l.__FusedMatMul=l.asm._FusedMatMul).apply(null,arguments)},wU=l._malloc=function(){return(wU=l._malloc=l.asm.malloc).apply(null,arguments)},CU=l._free=function(){return(CU=l._free=l.asm.free).apply(null,arguments)},IU=l.__emscripten_tls_init=function(){return(IU=l.__emscripten_tls_init=l.asm._emscripten_tls_init).apply(null,arguments)},Ag=l._pthread_self=function(){return(Ag=l._pthread_self=l.asm.pthread_self).apply(null,arguments)},SU=l.___errno_location=function(){return(SU=l.___errno_location=l.asm.__errno_location).apply(null,arguments)},Zk=l.__emscripten_thread_init=function(){return(Zk=l.__emscripten_thread_init=l.asm._emscripten_thread_init).apply(null,arguments)},vU=l.__emscripten_thread_crashed=function(){return(vU=l.__emscripten_thread_crashed=l.asm._emscripten_thread_crashed).apply(null,arguments)},NU=l._emscripten_main_thread_process_queued_calls=function(){return(NU=l._emscripten_main_thread_process_queued_calls=l.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},TU=l._emscripten_main_browser_thread_id=function(){return(TU=l._emscripten_main_browser_thread_id=l.asm.emscripten_main_browser_thread_id).apply(null,arguments)},Jk=l._emscripten_run_in_main_runtime_thread_js=function(){return(Jk=l._emscripten_run_in_main_runtime_thread_js=l.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},kU=l._emscripten_dispatch_to_thread_=function(){return(kU=l._emscripten_dispatch_to_thread_=l.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},Qk=l.__emscripten_proxy_execute_task_queue=function(){return(Qk=l.__emscripten_proxy_execute_task_queue=l.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},YS=l.__emscripten_thread_free_data=function(){return(YS=l.__emscripten_thread_free_data=l.asm._emscripten_thread_free_data).apply(null,arguments)},t1=l.__emscripten_thread_exit=function(){return(t1=l.__emscripten_thread_exit=l.asm._emscripten_thread_exit).apply(null,arguments)},e1=l._emscripten_stack_set_limits=function(){return(e1=l._emscripten_stack_set_limits=l.asm.emscripten_stack_set_limits).apply(null,arguments)},ZS=l.stackSave=function(){return(ZS=l.stackSave=l.asm.stackSave).apply(null,arguments)},$g=l.stackRestore=function(){return($g=l.stackRestore=l.asm.stackRestore).apply(null,arguments)},Dg=l.stackAlloc=function(){return(Dg=l.stackAlloc=l.asm.stackAlloc).apply(null,arguments)},EU=l.dynCall_iijjiiii=function(){return(EU=l.dynCall_iijjiiii=l.asm.dynCall_iijjiiii).apply(null,arguments)},_U=l.dynCall_jiji=function(){return(_U=l.dynCall_jiji=l.asm.dynCall_jiji).apply(null,arguments)};l.keepRuntimeAlive=Mo,l.wasmMemory=it,l.cwrap=YI,l.ExitStatus=Ru,l.PThread=Kt;var Rg;Qi=function L(){Rg||r1(),Rg||(Qi=L)};function r1(L){if(L=L||d,Sl>0)return;if(C){c(l),Tr(),postMessage({cmd:"loaded"});return}if(Il(),Sl>0)return;function U(){Rg||(Rg=!0,l.calledRun=!0,!ht&&(Tr(),c(l),l.onRuntimeInitialized&&l.onRuntimeInitialized(),Ji()))}l.setStatus?(l.setStatus("Running..."),setTimeout(function(){setTimeout(function(){l.setStatus("")},1),U()},1)):U()}if(l.preInit)for(typeof l.preInit=="function"&&(l.preInit=[l.preInit]);l.preInit.length>0;)l.preInit.pop()();r1();var Fg;m&&(Fg={uncaughtException:process.listeners("uncaughtException").filter(function(L){return!m.uncaughtException.indexOf(L)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(L){return!m.unhandledRejection.indexOf(L)>-1})});var Og;if(typeof WasmBackendModule!="undefined")Og=WasmBackendModule;else if(typeof t!="undefined")Og=t;else throw new Error("Could not find wasm module in post.js");if(Fg){var AU=Og._dispose;Og._dispose=function(){AU(),Fg.uncaughtException.forEach(function(L){process.removeListener("uncaughtException",L)}),Fg.unhandledRejection.forEach(function(L){process.removeListener("unhandledRejection",L)})}}return t.ready}})();typeof fI=="object"&&typeof Ok=="object"?Ok.exports=Fk:typeof define=="function"&&define.amd?define([],function(){return Fk}):typeof fI=="object"&&(fI.WasmBackendModuleThreadedSimd=Fk)});var HW=gr((G5e,UW)=>{UW.exports.wasmWorkerContents=`"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",data=>onmessage({data:data}));var fs=require("fs");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,"utf8"))},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+" -");return}console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob=="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance})}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.pthread_ptr,0,0,1);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module["executeNotifiedProxyingQueue"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["__emscripten_thread_exit"](ex.status)}}else{throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processProxyingQueue"){if(initializedJS){Module["executeNotifiedProxyingQueue"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}};`});var qW=gr((dI,Lk)=>{var Pk=(()=>{var r=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(r=r||__filename),function(t){t=t||{};var e=typeof t!="undefined"?t:{},n,o;e.ready=new Promise(function(K,lt){n=K,o=lt});var s;typeof process!="undefined"&&process.listeners&&(s={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var i=Object.assign({},e),a=[],u="./this.program",l=(K,lt)=>{throw lt},c=typeof window=="object",p=typeof importScripts=="function",m=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",f="";function d(K){return e.locateFile?e.locateFile(K,f):f+K}var h,g,x,b;function w(K){if(K instanceof Xc)return;A("exiting due to exception: "+K)}if(m){p?f=ig().dirname(f)+"/":f=__dirname+"/";var C,N;typeof Pg=="function"&&(C=Zb(),N=ig()),h=(K,lt)=>(K=N.normalize(K),C.readFileSync(K,lt?void 0:"utf8")),x=K=>{var lt=h(K,!0);return lt.buffer||(lt=new Uint8Array(lt)),lt},g=(K,lt,_t)=>{K=N.normalize(K),C.readFile(K,function(re,Ke){re?_t(re):lt(Ke.buffer)})},process.argv.length>1&&(u=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),process.on("uncaughtException",function(K){if(!(K instanceof Xc))throw K}),process.on("unhandledRejection",function(K){throw K}),l=(K,lt)=>{if(fe())throw process.exitCode=K,lt;w(lt),process.exit(K)},e.inspect=function(){return"[Emscripten Module object]"}}else(c||p)&&(p?f=self.location.href:typeof document!="undefined"&&document.currentScript&&(f=document.currentScript.src),r&&(f=r),f.indexOf("blob:")!==0?f=f.substr(0,f.replace(/[?#].*/,"").lastIndexOf("/")+1):f="",h=K=>{var lt=new XMLHttpRequest;return lt.open("GET",K,!1),lt.send(null),lt.responseText},p&&(x=K=>{var lt=new XMLHttpRequest;return lt.open("GET",K,!1),lt.responseType="arraybuffer",lt.send(null),new Uint8Array(lt.response)}),g=(K,lt,_t)=>{var re=new XMLHttpRequest;re.open("GET",K,!0),re.responseType="arraybuffer",re.onload=()=>{if(re.status==200||re.status==0&&re.response){lt(re.response);return}_t()},re.onerror=_t,re.send(null)},b=K=>document.title=K);var _=e.print||console.log.bind(console),A=e.printErr||console.warn.bind(console);Object.assign(e,i),i=null,e.arguments&&(a=e.arguments),e.thisProgram&&(u=e.thisProgram),e.quit&&(l=e.quit);var $=4,F;e.wasmBinary&&(F=e.wasmBinary);var P=e.noExitRuntime||!0;typeof WebAssembly!="object"&&Xr("no native wasm support detected");var V,G=!1,W;function q(K,lt){K||Xr(lt)}var H=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function j(K,lt,_t){for(var re=lt+_t,Ke=lt;K[Ke]&&!(Ke>=re);)++Ke;if(Ke-lt>16&&K.buffer&&H)return H.decode(K.subarray(lt,Ke));for(var je="";lt>10,56320|jn&1023)}}return je}function Y(K,lt){return K?j(at,K,lt):""}function Z(K,lt,_t,re){if(!(re>0))return 0;for(var Ke=_t,je=_t+re-1,ee=0;ee=55296&&te<=57343){var dr=K.charCodeAt(++ee);te=65536+((te&1023)<<10)|dr&1023}if(te<=127){if(_t>=je)break;lt[_t++]=te}else if(te<=2047){if(_t+1>=je)break;lt[_t++]=192|te>>6,lt[_t++]=128|te&63}else if(te<=65535){if(_t+2>=je)break;lt[_t++]=224|te>>12,lt[_t++]=128|te>>6&63,lt[_t++]=128|te&63}else{if(_t+3>=je)break;lt[_t++]=240|te>>18,lt[_t++]=128|te>>12&63,lt[_t++]=128|te>>6&63,lt[_t++]=128|te&63}}return lt[_t]=0,_t-Ke}function et(K,lt,_t){return Z(K,at,lt,_t)}var rt,ot,at,nt,it,dt,ht,bt,Et;function At(K){rt=K,e.HEAP8=ot=new Int8Array(K),e.HEAP16=nt=new Int16Array(K),e.HEAP32=dt=new Int32Array(K),e.HEAPU8=at=new Uint8Array(K),e.HEAPU16=it=new Uint16Array(K),e.HEAPU32=ht=new Uint32Array(K),e.HEAPF32=bt=new Float32Array(K),e.HEAPF64=Et=new Float64Array(K)}var Vt=e.INITIAL_MEMORY||16777216,Zt,ce=[],he=[],jt=[],ke=!1;function fe(){return P}function Ae(){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)or(e.preRun.shift());Qi(ce)}function We(){ke=!0,Qi(he)}function _n(){if(e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;)Lr(e.postRun.shift());Qi(jt)}function or(K){ce.unshift(K)}function Hn(K){he.unshift(K)}function Lr(K){jt.unshift(K)}var qe=0,Mr=null,zr=null;function qn(K){qe++,e.monitorRunDependencies&&e.monitorRunDependencies(qe)}function Kn(K){if(qe--,e.monitorRunDependencies&&e.monitorRunDependencies(qe),qe==0&&(Mr!==null&&(clearInterval(Mr),Mr=null),zr)){var lt=zr;zr=null,lt()}}function Xr(K){e.onAbort&&e.onAbort(K),K="Aborted("+K+")",A(K),G=!0,W=1,K+=". Build with -sASSERTIONS for more info.";var lt=new WebAssembly.RuntimeError(K);throw o(lt),lt}var Zi="data:application/octet-stream;base64,";function Mo(K){return K.startsWith(Zi)}function Il(K){return K.startsWith("file://")}var Tr;Tr="tfjs-backend-wasm.wasm",Mo(Tr)||(Tr=d(Tr));function Ji(K){try{if(K==Tr&&F)return new Uint8Array(F);if(x)return x(K);throw"both async and sync fetching of the wasm failed"}catch(lt){Xr(lt)}}function Rd(){if(!F&&(c||p)){if(typeof fetch=="function"&&!Il(Tr))return fetch(Tr,{credentials:"same-origin"}).then(function(K){if(!K.ok)throw"failed to load wasm binary file at '"+Tr+"'";return K.arrayBuffer()}).catch(function(){return Ji(Tr)});if(g)return new Promise(function(K,lt){g(Tr,function(_t){K(new Uint8Array(_t))},lt)})}return Promise.resolve().then(function(){return Ji(Tr)})}function Fd(){var K={env:Ld,wasi_snapshot_preview1:Ld};function lt(ee,te){var dr=ee.exports;e.asm=dr,V=e.asm.memory,At(V.buffer),Zt=e.asm.__indirect_function_table,Hn(e.asm.__wasm_call_ctors),Kn("wasm-instantiate")}qn("wasm-instantiate");function _t(ee){lt(ee.instance)}function re(ee){return Rd().then(function(te){return WebAssembly.instantiate(te,K)}).then(function(te){return te}).then(ee,function(te){A("failed to asynchronously prepare wasm: "+te),Xr(te)})}function Ke(){return!F&&typeof WebAssembly.instantiateStreaming=="function"&&!Mo(Tr)&&!Il(Tr)&&!m&&typeof fetch=="function"?fetch(Tr,{credentials:"same-origin"}).then(function(ee){var te=WebAssembly.instantiateStreaming(ee,K);return te.then(_t,function(dr){return A("wasm streaming compile failed: "+dr),A("falling back to ArrayBuffer instantiation"),re(_t)})}):re(_t)}if(e.instantiateWasm)try{var je=e.instantiateWasm(K,lt);return je}catch(ee){A("Module.instantiateWasm callback failed with error: "+ee),o(ee)}return Ke().catch(o),{}}var Gk,Sl;function Xc(K){this.name="ExitStatus",this.message="Program terminated with exit("+K+")",this.status=K}function Qi(K){for(;K.length>0;)K.shift()(e)}function Wk(K){return K}function Uk(K){var lt=/\b_Z[\w\d_]+/g;return K.replace(lt,function(_t){var re=_t;return _t===re?_t:re+" ["+_t+"]"})}function Yc(){var K=new Error;if(!K.stack){try{throw new Error}catch(lt){K=lt}if(!K.stack)return"(no stack trace available)"}return K.stack.toString()}function gI(K,lt){ot.set(K,lt)}function pg(){Xr("")}function Od(){return 2147483648}function en(){return Od()}function mg(K,lt,_t){at.copyWithin(K,lt,lt+_t)}function xI(K){try{return V.grow(K-rt.byteLength+65535>>>16),At(V.buffer),1}catch(lt){}}function yI(K){var lt=at.length;K=K>>>0;var _t=Od();if(K>_t)return!1;let re=(dr,jn)=>dr+(jn-dr%jn)%jn;for(var Ke=1;Ke<=4;Ke*=2){var je=lt*(1+.2/Ke);je=Math.min(je,K+100663296);var ee=Math.min(_t,re(Math.max(K,je),65536)),te=xI(ee);if(te)return!0}return!1}var bI={varargs:void 0,get:function(){bI.varargs+=4;var K=dt[bI.varargs-4>>2];return K},getStr:function(K){var lt=Y(K);return lt}};function Hk(K){return 52}function wI(K,lt,_t,re,Ke){return 70}var Ru=[null,[],[]];function CI(K,lt){var _t=Ru[K];lt===0||lt===10?((K===1?_:A)(j(_t,0)),_t.length=0):_t.push(lt)}function II(K,lt,_t,re){for(var Ke=0,je=0;je<_t;je++){var ee=ht[lt>>2],te=ht[lt+4>>2];lt+=8;for(var dr=0;dr>2]=Ke,0}function Pd(K){var lt=e["_"+K];return lt}function fg(K,lt,_t,re,Ke){var je={string:rn=>{var Nl=0;if(rn!=null&&rn!==0){var _g=(rn.length<<2)+1;Nl=Vd(_g),et(rn,Nl,_g)}return Nl},array:rn=>{var Nl=Vd(rn.length);return gI(rn,Nl),Nl}};function ee(rn){return lt==="string"?Y(rn):lt==="boolean"?Boolean(rn):rn}var te=Pd(K),dr=[],jn=0;if(re)for(var ta=0;taee==="number"||ee==="boolean"),je=lt!=="string";return je&&Ke&&!re?Pd(K):function(){return fg(K,lt,_t,arguments,re)}}var Ld={abort:pg,emscripten_get_heap_max:en,emscripten_memcpy_big:mg,emscripten_resize_heap:yI,fd_close:Hk,fd_seek:wI,fd_write:II},qk=Fd(),hg=e.___wasm_call_ctors=function(){return(hg=e.___wasm_call_ctors=e.asm.__wasm_call_ctors).apply(null,arguments)},SI=e._init=function(){return(SI=e._init=e.asm.init).apply(null,arguments)},Kt=e._init_with_threads_count=function(){return(Kt=e._init_with_threads_count=e.asm.init_with_threads_count).apply(null,arguments)},Md=e._get_threads_count=function(){return(Md=e._get_threads_count=e.asm.get_threads_count).apply(null,arguments)},vI=e._register_tensor=function(){return(vI=e._register_tensor=e.asm.register_tensor).apply(null,arguments)},Kk=e._dispose_data=function(){return(Kk=e._dispose_data=e.asm.dispose_data).apply(null,arguments)},jk=e._dispose=function(){return(jk=e._dispose=e.asm.dispose).apply(null,arguments)},NI=e._Abs=function(){return(NI=e._Abs=e.asm.Abs).apply(null,arguments)},gg=e._Add=function(){return(gg=e._Add=e.asm.Add).apply(null,arguments)},Zc=e._AddN=function(){return(Zc=e._AddN=e.asm.AddN).apply(null,arguments)},TI=e._All=function(){return(TI=e._All=e.asm.All).apply(null,arguments)},kI=e._Any=function(){return(kI=e._Any=e.asm.Any).apply(null,arguments)},Xk=e._ArgMax=function(){return(Xk=e._ArgMax=e.asm.ArgMax).apply(null,arguments)},EI=e._AvgPool=function(){return(EI=e._AvgPool=e.asm.AvgPool).apply(null,arguments)},_I=e._BatchMatMul=function(){return(_I=e._BatchMatMul=e.asm.BatchMatMul).apply(null,arguments)},AI=e._Ceil=function(){return(AI=e._Ceil=e.asm.Ceil).apply(null,arguments)},$I=e._ClipByValue=function(){return($I=e._ClipByValue=e.asm.ClipByValue).apply(null,arguments)},xg=e._Conv2D=function(){return(xg=e._Conv2D=e.asm.Conv2D).apply(null,arguments)},yg=e._Conv2DBackpropInput=function(){return(yg=e._Conv2DBackpropInput=e.asm.Conv2DBackpropInput).apply(null,arguments)},DI=e._Cos=function(){return(DI=e._Cos=e.asm.Cos).apply(null,arguments)},RI=e._Cosh=function(){return(RI=e._Cosh=e.asm.Cosh).apply(null,arguments)},FI=e._CropAndResize=function(){return(FI=e._CropAndResize=e.asm.CropAndResize).apply(null,arguments)},zd=e._Cumprod=function(){return(zd=e._Cumprod=e.asm.Cumprod).apply(null,arguments)},OI=e._Cumsum=function(){return(OI=e._Cumsum=e.asm.Cumsum).apply(null,arguments)},PI=e._DepthToSpace=function(){return(PI=e._DepthToSpace=e.asm.DepthToSpace).apply(null,arguments)},LI=e._DepthwiseConv2dNative=function(){return(LI=e._DepthwiseConv2dNative=e.asm.DepthwiseConv2dNative).apply(null,arguments)},Fu=e._Elu=function(){return(Fu=e._Elu=e.asm.Elu).apply(null,arguments)},MI=e._Equal=function(){return(MI=e._Equal=e.asm.Equal).apply(null,arguments)},zI=e._Exp=function(){return(zI=e._Exp=e.asm.Exp).apply(null,arguments)},bg=e._FlipLeftRight=function(){return(bg=e._FlipLeftRight=e.asm.FlipLeftRight).apply(null,arguments)},BI=e._Floor=function(){return(BI=e._Floor=e.asm.Floor).apply(null,arguments)},Jc=e._FloorDiv=function(){return(Jc=e._FloorDiv=e.asm.FloorDiv).apply(null,arguments)},VI=e._FusedBatchNorm=function(){return(VI=e._FusedBatchNorm=e.asm.FusedBatchNorm).apply(null,arguments)},GI=e._FusedConv2D=function(){return(GI=e._FusedConv2D=e.asm.FusedConv2D).apply(null,arguments)},vl=e._FusedDepthwiseConv2D=function(){return(vl=e._FusedDepthwiseConv2D=e.asm.FusedDepthwiseConv2D).apply(null,arguments)},Bd=e._Gather=function(){return(Bd=e._Gather=e.asm.Gather).apply(null,arguments)},WI=e._GatherNd=function(){return(WI=e._GatherNd=e.asm.GatherNd).apply(null,arguments)},UI=e._Greater=function(){return(UI=e._Greater=e.asm.Greater).apply(null,arguments)},HI=e._GreaterEqual=function(){return(HI=e._GreaterEqual=e.asm.GreaterEqual).apply(null,arguments)},qI=e._LeakyRelu=function(){return(qI=e._LeakyRelu=e.asm.LeakyRelu).apply(null,arguments)},wg=e._Less=function(){return(wg=e._Less=e.asm.Less).apply(null,arguments)},Cg=e._LessEqual=function(){return(Cg=e._LessEqual=e.asm.LessEqual).apply(null,arguments)},KI=e._Log=function(){return(KI=e._Log=e.asm.Log).apply(null,arguments)},jI=e._LogicalAnd=function(){return(jI=e._LogicalAnd=e.asm.LogicalAnd).apply(null,arguments)},Ig=e._LogicalNot=function(){return(Ig=e._LogicalNot=e.asm.LogicalNot).apply(null,arguments)},Sg=e._LogicalOr=function(){return(Sg=e._LogicalOr=e.asm.LogicalOr).apply(null,arguments)},XI=e._LogicalXor=function(){return(XI=e._LogicalXor=e.asm.LogicalXor).apply(null,arguments)},YI=e._Max=function(){return(YI=e._Max=e.asm.Max).apply(null,arguments)},ZI=e._MaxPool=function(){return(ZI=e._MaxPool=e.asm.MaxPool).apply(null,arguments)},vg=e._Maximum=function(){return(vg=e._Maximum=e.asm.Maximum).apply(null,arguments)},Yk=e._Mean=function(){return(Yk=e._Mean=e.asm.Mean).apply(null,arguments)},JI=e._Min=function(){return(JI=e._Min=e.asm.Min).apply(null,arguments)},QI=e._Minimum=function(){return(QI=e._Minimum=e.asm.Minimum).apply(null,arguments)},tS=e._MirrorPad=function(){return(tS=e._MirrorPad=e.asm.MirrorPad).apply(null,arguments)},eS=e._Multiply=function(){return(eS=e._Multiply=e.asm.Multiply).apply(null,arguments)},rS=e._Neg=function(){return(rS=e._Neg=e.asm.Neg).apply(null,arguments)},nS=e._NonMaxSuppressionV3=function(){return(nS=e._NonMaxSuppressionV3=e.asm.NonMaxSuppressionV3).apply(null,arguments)},oS=e._NonMaxSuppressionV4=function(){return(oS=e._NonMaxSuppressionV4=e.asm.NonMaxSuppressionV4).apply(null,arguments)},sS=e._NonMaxSuppressionV5=function(){return(sS=e._NonMaxSuppressionV5=e.asm.NonMaxSuppressionV5).apply(null,arguments)},iS=e._NotEqual=function(){return(iS=e._NotEqual=e.asm.NotEqual).apply(null,arguments)},aS=e._OneHot=function(){return(aS=e._OneHot=e.asm.OneHot).apply(null,arguments)},lS=e._PadV2=function(){return(lS=e._PadV2=e.asm.PadV2).apply(null,arguments)},uS=e._Pow=function(){return(uS=e._Pow=e.asm.Pow).apply(null,arguments)},cS=e._Prelu=function(){return(cS=e._Prelu=e.asm.Prelu).apply(null,arguments)},pS=e._Prod=function(){return(pS=e._Prod=e.asm.Prod).apply(null,arguments)},mS=e._RealDiv=function(){return(mS=e._RealDiv=e.asm.RealDiv).apply(null,arguments)},fS=e._Relu=function(){return(fS=e._Relu=e.asm.Relu).apply(null,arguments)},dS=e._Relu6=function(){return(dS=e._Relu6=e.asm.Relu6).apply(null,arguments)},hS=e._ResizeBilinear=function(){return(hS=e._ResizeBilinear=e.asm.ResizeBilinear).apply(null,arguments)},gS=e._ResizeNearestNeighbor=function(){return(gS=e._ResizeNearestNeighbor=e.asm.ResizeNearestNeighbor).apply(null,arguments)},xS=e._Reverse=function(){return(xS=e._Reverse=e.asm.Reverse).apply(null,arguments)},yS=e._RotateWithOffset=function(){return(yS=e._RotateWithOffset=e.asm.RotateWithOffset).apply(null,arguments)},bS=e._Round=function(){return(bS=e._Round=e.asm.Round).apply(null,arguments)},wS=e._Rsqrt=function(){return(wS=e._Rsqrt=e.asm.Rsqrt).apply(null,arguments)},CS=e._ScatterNd=function(){return(CS=e._ScatterNd=e.asm.ScatterNd).apply(null,arguments)},IS=e._SelectV2=function(){return(IS=e._SelectV2=e.asm.SelectV2).apply(null,arguments)},SS=e._Sigmoid=function(){return(SS=e._Sigmoid=e.asm.Sigmoid).apply(null,arguments)},vS=e._Sin=function(){return(vS=e._Sin=e.asm.Sin).apply(null,arguments)},NS=e._Softmax=function(){return(NS=e._Softmax=e.asm.Softmax).apply(null,arguments)},TS=e._SparseFillEmptyRows=function(){return(TS=e._SparseFillEmptyRows=e.asm.SparseFillEmptyRows).apply(null,arguments)},kS=e._SparseReshape=function(){return(kS=e._SparseReshape=e.asm.SparseReshape).apply(null,arguments)},ES=e._SparseSegmentReduction=function(){return(ES=e._SparseSegmentReduction=e.asm.SparseSegmentReduction).apply(null,arguments)},_S=e._Sqrt=function(){return(_S=e._Sqrt=e.asm.Sqrt).apply(null,arguments)},AS=e._Square=function(){return(AS=e._Square=e.asm.Square).apply(null,arguments)},$S=e._SquaredDifference=function(){return($S=e._SquaredDifference=e.asm.SquaredDifference).apply(null,arguments)},DS=e._Step=function(){return(DS=e._Step=e.asm.Step).apply(null,arguments)},RS=e._StridedSlice=function(){return(RS=e._StridedSlice=e.asm.StridedSlice).apply(null,arguments)},FS=e._Sub=function(){return(FS=e._Sub=e.asm.Sub).apply(null,arguments)},OS=e._Sum=function(){return(OS=e._Sum=e.asm.Sum).apply(null,arguments)},PS=e._Tan=function(){return(PS=e._Tan=e.asm.Tan).apply(null,arguments)},LS=e._Tanh=function(){return(LS=e._Tanh=e.asm.Tanh).apply(null,arguments)},MS=e._Tile=function(){return(MS=e._Tile=e.asm.Tile).apply(null,arguments)},zS=e._TopK=function(){return(zS=e._TopK=e.asm.TopK).apply(null,arguments)},BS=e._Transform=function(){return(BS=e._Transform=e.asm.Transform).apply(null,arguments)},VS=e._Transpose=function(){return(VS=e._Transpose=e.asm.Transpose).apply(null,arguments)},GS=e.__FusedMatMul=function(){return(GS=e.__FusedMatMul=e.asm._FusedMatMul).apply(null,arguments)},WS=e._malloc=function(){return(WS=e._malloc=e.asm.malloc).apply(null,arguments)},US=e._free=function(){return(US=e._free=e.asm.free).apply(null,arguments)},HS=e.___errno_location=function(){return(HS=e.___errno_location=e.asm.__errno_location).apply(null,arguments)},Ng=e.stackSave=function(){return(Ng=e.stackSave=e.asm.stackSave).apply(null,arguments)},Tg=e.stackRestore=function(){return(Tg=e.stackRestore=e.asm.stackRestore).apply(null,arguments)},Vd=e.stackAlloc=function(){return(Vd=e.stackAlloc=e.asm.stackAlloc).apply(null,arguments)},qS=e.dynCall_iijjiiii=function(){return(qS=e.dynCall_iijjiiii=e.asm.dynCall_iijjiiii).apply(null,arguments)},KS=e.dynCall_jiji=function(){return(KS=e.dynCall_jiji=e.asm.dynCall_jiji).apply(null,arguments)};e.cwrap=dg;var Qc;zr=function K(){Qc||kg(),Qc||(zr=K)};function kg(K){if(K=K||a,qe>0||(Ae(),qe>0))return;function lt(){Qc||(Qc=!0,e.calledRun=!0,!G&&(We(),n(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),_n()))}e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),lt()},1)):lt()}if(e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();kg();var tp;s&&(tp={uncaughtException:process.listeners("uncaughtException").filter(function(K){return!s.uncaughtException.indexOf(K)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(K){return!s.unhandledRejection.indexOf(K)>-1})});var ep;if(typeof t!="undefined")ep=t;else if(typeof WasmBackendModuleThreadedSimd!="undefined")ep=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(tp){var jS=ep._dispose;ep._dispose=function(){jS(),tp.uncaughtException.forEach(function(K){process.removeListener("uncaughtException",K)}),tp.unhandledRejection.forEach(function(K){process.removeListener("unhandledRejection",K)})}}return t.ready}})();typeof dI=="object"&&typeof Lk=="object"?Lk.exports=Pk:typeof define=="function"&&define.amd?define([],function(){return Pk}):typeof dI=="object"&&(dI.WasmBackendModule=Pk)});var ra=class{constructor(t,e){this.backend=t,this.dataMover=e,this.data=new WeakMap,this.dataIdsCount=0}get(t){return this.data.has(t)||this.dataMover.moveData(this.backend,t),this.data.get(t)}set(t,e){this.dataIdsCount++,this.data.set(t,e)}has(t){return this.data.has(t)}delete(t){return this.dataIdsCount--,this.data.delete(t)}numDataIds(){return this.dataIdsCount}},zo=class{refCount(t){return $n("refCount")}incRef(t){return $n("incRef")}timerAvailable(){return!0}time(t){return $n("time")}read(t){return $n("read")}readSync(t){return $n("readSync")}readToGPU(t,e){return $n("readToGPU")}numDataIds(){return $n("numDataIds")}disposeData(t,e){return $n("disposeData")}write(t,e,n){return $n("write")}move(t,e,n,o,s){return $n("move")}createTensorFromTexture(t,e,n){return $n("createTensorFromTexture")}memory(){return $n("memory")}floatPrecision(){return $n("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return $n("dispose")}};function $n(r){throw new Error(`'${r}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function s1(r){let t=r.length,e=0;for(;t>0;)e=Math.random()*t|0,t--,Lg(r,t,e)}function MU(r,t){if(r.length!==t.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${r.length}Second array length was ${t.length}`);let e=r.length,n=0;for(;e>0;)n=Math.random()*e|0,e--,Lg(r,e,n),Lg(t,e,n)}function np(r,t,e){return Math.max(r,Math.min(t,e))}function zU(r){return r%2===0?r:r+1}function Lg(r,t,e){let n=r[t];r[t]=r[e],r[e]=n}function BU(r){let t=0;for(let e=0;ee+` Shapes ${r} and ${t} must match`)}function Yn(r){E(r!=null,()=>"The input to the tensor constructor must be a non-null value.")}function Bo(r,t=[],e=!1){if(t==null&&(t=[]),Array.isArray(r)||xr(r)&&!e)for(let n=0;n0,e,n){return new Promise((o,s)=>{let i=0,a=()=>{if(r()){o();return}i++;let u=t(i);if(e!=null&&i>=e){s();return}n!=null?n(a,u):setTimeout(a,u)};a()})}function jU(r,t){let e=1,n=-1;for(let s=0;s=0)e*=r[s];else if(r[s]===-1){if(n!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${n} and dim ${s}`);n=s}else if(r[s]<0)throw Error(`Shapes can not be < 0. Found ${r[s]} at dim ${s}`);if(n===-1){if(t>0&&t!==e)throw Error(`Size(${t}) must match the product of shape ${r}`);return r}if(e===0)throw Error(`Cannot infer the missing size in [${r}] when there are 0 elements`);if(t%e!==0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${e}`);let o=r.slice();return o[n]=t/e,o}function lr(r,t){let e=t.length;return r=r==null?t.map((n,o)=>o):[].concat(r),E(r.every(n=>n>=-e&&n`All values in axis param must be in range [-${e}, ${e}) but got axis ${r}`),E(r.every(n=>na(n)),()=>`All values in axis param must be integers but got axis ${r}`),r.map(n=>n<0?e+n:n)}function t0(r,t){let e=[],n=[],o=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||o?null:lr(t,r).sort(),i=0;for(let a=0;aa)&&r[a]===1&&(e.push(r[a]),n.push(a)),s[i]<=a&&i++}r[a]!==1&&(e.push(r[a]),n.push(a))}return{newShape:e,keptDims:n}}function e0(r,t){let e=null;if(r==null||r==="float32")e=new Float32Array(t);else if(r==="int32")e=new Int32Array(t);else if(r==="bool")e=new Uint8Array(t);else throw new Error(`Unknown data type ${r}`);return e}function r0(r,t){let e=null;if(r==null||r==="float32")e=new Float32Array(t);else if(r==="int32")e=new Int32Array(t);else if(r==="bool")e=new Uint8Array(t);else if(r==="string")e=new Array(t);else throw new Error(`Unknown data type ${r}`);return e}function n0(r,t){for(let e=0;et+=e.length),t}function Vo(r){return typeof r=="string"||r instanceof String}function i1(r){return typeof r=="boolean"}function a1(r){return typeof r=="number"}function op(r){return Array.isArray(r)?op(r[0]):r instanceof Float32Array?"float32":r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray?"int32":a1(r)?"float32":Vo(r)?"string":i1(r)?"bool":"float32"}function oi(r){return!!(r&&r.constructor&&r.call&&r.apply)}function sp(r,t){for(let e=t;e=0;--n)e[n]=e[n+1]*r[n+1];return e}function l1(r,t,e,n=!1){let o=new Array;if(t.length===1){let s=t[0]*(n?2:1);for(let i=0;iu*l)*(n?2:1);for(let u=0;uo*s)*(e?2:1);if(n===0)return[];if(n!==t.length)throw new Error(`[${r}] does not match the input size ${t.length}${e?" for a complex tensor":""}.`);return l1(0,r,t,e)}function Wd(r,t){let e=ip(r,t);for(let n=0;nn*o,1);if(t==null||t==="float32")return Ou(r,new Float32Array(e));if(t==="int32")return Ou(r,new Int32Array(e));if(t==="bool")return Ou(r,new Uint8Array(e));throw new Error(`Unknown data type ${t}`)}function Ud(r){r.forEach(t=>{E(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${r}].`)})}function ZU(r,t,e){if(t===0)return 0;if(t===1)return r[0];let n=r[r.length-1];for(let o=0;o{let[o,s]=n.split(":");this.urlFlags[o]=r4(o,s)})}};function t4(r){let t={};return r.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(e,...n)=>(e4(t,n[0],n[1]),n.join("="))),t}function e4(r,t,e){r[decodeURIComponent(t)]=decodeURIComponent(e||"")}function r4(r,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${r}.`)}function z(){return i0}var i0=null;function c1(r){i0=r}var a0;function l0(){if(a0==null){let r;if(typeof window!="undefined")r=window;else if(typeof global!="undefined")r=global;else if(typeof process!="undefined")r=process;else if(typeof self!="undefined")r=self;else throw new Error("Could not find a global object");a0=r}return a0}function n4(){let r=l0();return r._tfGlobals==null&&(r._tfGlobals=new Map),r._tfGlobals}function Kd(r,t){let e=n4();if(e.has(r))return e.get(r);{let n=t();return e.set(r,n),e.get(r)}}var ii="Abs",oa="Acos",sa="Acosh",Zn="Add",Go="AddN",ia="All",aa="Any",Wo="ArgMax",kl="ArgMin",la="Asin",ua="Asinh",ca="Atan",pa="Atanh",ma="Atan2",Uo="AvgPool",ap="AvgPoolGrad",El="AvgPool3D",lp="AvgPool3DGrad",Ho="BatchMatMul",ai="BatchToSpaceND",up="Bincount",p1="BroadcastTo",cp="BroadcastArgs",lo="Cast",qo="Ceil",uo="ClipByValue",pp="Complex",_l="ComplexAbs",li="Concat",Ko="Conv2D",mp="Conv2DBackpropFilter",jo="Conv2DBackpropInput",Al="Conv3D",fp="Conv3DBackpropFilterV2",dp="Conv3DBackpropInputV2",Xo="Cos",Yo="Cosh",fa="Cumprod",Zo="Cumsum",da="CropAndResize",hp="DenseBincount",ha="DepthToSpace",Jo="DepthwiseConv2dNative",gp="DepthwiseConv2dNativeBackpropFilter",xp="DepthwiseConv2dNativeBackpropInput",yp="Diag",$l="Dilation2D",jd="Dilation2DBackpropInput",Xd="Dilation2DBackpropFilter",Qo="RealDiv",bp="Einsum",ts="Elu",wp="EluGrad",ga="Erf",xa="Equal",es="Exp",ui="ExpandDims",ya="Expm1",Cp="FFT",Dl="Fill",ba="FlipLeftRight",rs="Floor",ns="FloorDiv",os="FusedBatchNorm",ci="GatherV2",wa="GatherNd",Ca="Greater",ss="GreaterEqual",co="Identity",Ip="IFFT",Sp="Imag",Ia="IsFinite",Sa="IsInf",va="IsNan",is="LeakyRelu",Na="Less",Ta="LessEqual",vp="LinSpace",as="Log",ka="Log1p",Ea="LogicalAnd",_a="LogicalNot",Aa="LogicalOr",m1="LogicalXor",f1="LogSoftmax",xlt="LowerBound",Rl="LRN",Np="LRNGrad",ls="Max",us="Maximum",cs="MaxPool",Tp="MaxPoolGrad",Fl="MaxPool3D",kp="MaxPool3DGrad",Ep="MaxPoolWithArgmax",ps="Mean",ms="Min",fs="Minimum",ds="MirrorPad",$a="Mod",_p="Multinomial",hs="Multiply",pi="Neg",Da="NotEqual",Ra="NonMaxSuppressionV3",Fa="NonMaxSuppressionV4",Oa="NonMaxSuppressionV5",mi="OnesLike",gs="OneHot",fi="Pack",xs="PadV2",ylt="Pool",ys="Pow",bs="Prelu",ws="Prod",Ap="RaggedGather",$p="RaggedRange",Dp="RaggedTensorToTensor",Ol="Range",Rp="Real",Pa="Reciprocal",Cs="Relu",di="Reshape",Is="ResizeNearestNeighbor",Fp="ResizeNearestNeighborGrad",Ss="ResizeBilinear",Op="ResizeBilinearGrad",vs="Relu6",Ns="Reverse",Ts="Round",ks="Rsqrt",La="ScatterNd",Pp="SearchSorted",hi="Select",Ma="Selu",gi="Slice",Es="Sin",za="Sinh",Ba="Sign",_s="Sigmoid",Va="Softplus",As="Sqrt",$s="Sum",xi="SpaceToBatchND",yi="SplitV",Ds="Softmax",Pl="SparseFillEmptyRows",Ga="SparseReshape",Ll="SparseSegmentMean",Ml="SparseSegmentSum",Lp="SparseToDense",Rs="SquaredDifference",zl="Square",Wa="StridedSlice",Bl="StringNGrams",Vl="StringSplit",Gl="StringToHashBucketFast",Fs="Sub",Os="Tan",Ps="Tanh",Jn="Tile",Ua="TopK",Ha="Transform",Qn="Transpose",Mp="Unique",bi="Unpack",Wl="UnsortedSegmentSum",blt="UpperBound",wi="ZerosLike",po="Step",Yd="FromPixels",qa="RotateWithOffset",Ci="_FusedMatMul",Ii="FusedConv2D",Si="FusedDepthwiseConv2D";function vi(...r){z().getBool("IS_TEST")||z().getBool("PROD")||console.warn(...r)}function o4(...r){z().getBool("IS_TEST")||z().getBool("PROD")||console.log(...r)}var zp=Kd("kernelRegistry",()=>new Map),Zd=Kd("gradRegistry",()=>new Map);function Jd(r,t){let e=c0(r,t);return zp.get(e)}function u0(r){return Zd.get(r)}function zg(r){let t=zp.entries(),e=[];for(;;){let{done:n,value:o}=t.next();if(n)break;let[s,i]=o,[a]=s.split("_");a===r&&e.push(i)}return e}function Lu(r){let{kernelName:t,backendName:e}=r,n=c0(t,e);zp.has(n)&&vi(`The kernel '${t}' for backend '${e}' is already registered`),zp.set(n,r)}function h1(r){let{kernelName:t}=r;Zd.has(t)&&z().getBool("DEBUG")&&vi(`Overriding the gradient for '${t}'`),Zd.set(t,r)}function vlt(r,t){let e=c0(r,t);if(!zp.has(e))throw new Error(`The kernel '${r}' for backend '${t}' is not registered`);zp.delete(e)}function Nlt(r){if(!Zd.has(r))throw new Error(`The gradient '${r}' for backend is not registered`);Zd.delete(r)}function Tlt(r,t){zg(r).forEach(n=>{let o=Object.assign({},n,{backendName:t});Lu(o)})}function c0(r,t){return`${t}_${r}`}var y={};Wt(y,{arraysEqual:()=>Dn,assert:()=>E,assertNonNegativeIntegerDimensions:()=>Ud,assertNonNull:()=>Yn,assertShapesMatch:()=>$e,bytesFromStringArray:()=>s0,bytesPerElement:()=>Mg,checkConversionForErrors:()=>n0,clamp:()=>np,computeStrides:()=>si,createScalarValue:()=>p4,createShuffledIndices:()=>qU,decodeString:()=>Wp,distSquared:()=>GU,encodeString:()=>Hl,fetch:()=>f4,fingerPrint64:()=>c4,flatten:()=>Bo,getArrayFromDType:()=>r0,getTypedArrayFromDType:()=>e0,hasEncodingLoss:()=>XU,hexToLong:()=>Qd,indexToLoc:()=>JU,inferDtype:()=>op,inferFromImplicitShape:()=>jU,isBoolean:()=>i1,isFunction:()=>oi,isInt:()=>na,isNumber:()=>a1,isPromise:()=>Hd,isScalarShape:()=>WU,isString:()=>Vo,isTypedArray:()=>xr,isValidDtype:()=>o0,locToIndex:()=>ZU,makeOnesTypedArray:()=>Wd,makeZerosNestedTypedArray:()=>YU,makeZerosTypedArray:()=>ip,nearestDivisor:()=>sp,nearestLargerEven:()=>zU,now:()=>Gu,parseAxisParam:()=>lr,randUniform:()=>VU,repeatedTry:()=>KU,rightPad:()=>Pu,shuffle:()=>s1,shuffleCombo:()=>MU,sizeFromShape:()=>Jt,sizeToSquarishShape:()=>HU,squeezeShape:()=>t0,sum:()=>BU,swap:()=>Lg,tanh:()=>UU,toNestedArray:()=>Ou,toTypedArray:()=>Gp});var d0=Tl(T1());var Vu=d0.default||d0;function Qd(r){return Vu.fromString(r,!0,16)}var E1=Qd("c3a5c85c97cb3127"),Bu=Qd("b492b66fbe98f273"),nn=Qd("9ae16a3b2f90404f");function f0(r){return r.xor(r.shru(47))}function _1(r,t,e){let n=r.slice(t,t+e);return Vu.fromBytes(Array.from(n),!0,!0)}function Pe(r,t){return _1(r,t,8)}function k1(r,t){return _1(r,t,4)}function kr(r,t){return t===0?r:r.shru(t).or(r.shl(64-t))}function Ul(r,t,e=Qd("9ddfea08eb382d69")){let n=r.xor(t).mul(e);n=n.xor(n.shru(47));let o=t.xor(n).mul(e);return o=o.xor(o.shru(47)),o=o.mul(e),o}function i4(r,t,e,n,o,s){o=o.add(r),s=kr(s.add(o).add(n),21);let i=o;return o=o.add(t),o=o.add(e),s=s.add(kr(o,44)),[o.add(n),s.add(i)]}function Vg(r,t,e,n){return i4(Pe(r,t),Pe(r,t+8),Pe(r,t+16),Pe(r,t+24),e,n)}function a4(r,t=r.length){if(t>=8){let e=nn.add(t*2),n=Pe(r,0).add(nn),o=Pe(r,t-8),s=kr(o,37).mul(e).add(n),i=kr(n,25).add(o).mul(e);return Ul(s,i,e)}if(t>=4){let e=nn.add(t*2),n=k1(r,0);return Ul(n.shl(3).add(t),k1(r,t-4),e)}if(t>0){let e=r[0],n=r[t>>1],o=r[t-1],s=e+(n<<8),i=t+(o<<2);return f0(nn.mul(s).xor(E1.mul(i))).mul(nn)}return nn}function l4(r,t=r.length){let e=nn.add(t*2),n=Pe(r,0).mul(Bu),o=Pe(r,8),s=Pe(r,t-8).mul(e),i=Pe(r,t-16).mul(nn);return Ul(kr(n.add(o),43).add(kr(s,30)).add(i),n.add(kr(o.add(nn),18)).add(s),e)}function u4(r,t=r.length){let e=nn.add(t*2),n=Pe(r,0).mul(nn),o=Pe(r,8),s=Pe(r,t-8).mul(e),i=Pe(r,t-16).mul(nn),a=kr(n.add(o),43).add(kr(s,30)).add(i),u=Ul(a,n.add(kr(o.add(nn),18)).add(s),e),l=Pe(r,16).mul(e),c=Pe(r,24),p=a.add(Pe(r,t-32)).mul(e),m=u.add(Pe(r,t-24)).mul(e);return Ul(kr(l.add(c),43).add(kr(p,30)).add(m),l.add(kr(c.add(n),18)).add(p),e)}function c4(r,t=r.length){let e=Vu.fromNumber(81,!0);if(t<=32)return t<=16?a4(r,t):l4(r,t);if(t<=64)return u4(r,t);let n=e,o=e.mul(Bu).add(113),s=f0(o.mul(nn).add(113)).mul(nn),i=[Vu.UZERO,Vu.UZERO],a=[Vu.UZERO,Vu.UZERO];n=n.mul(nn).add(Pe(r,0));let u=0,l=(t-1>>6)*64,c=l+(t-1&63)-63;do n=kr(n.add(o).add(i[0]).add(Pe(r,u+8)),37).mul(Bu),o=kr(o.add(i[1]).add(Pe(r,u+48)),42).mul(Bu),n=n.xor(a[1]),o=o.add(i[0]).add(Pe(r,u+40)),s=kr(s.add(a[0]),33).mul(Bu),i=Vg(r,u,i[1].mul(Bu),n.add(a[0])),a=Vg(r,u+32,s.add(a[1]),o.add(Pe(r,u+16))),[s,n]=[n,s],u+=64;while(u!==l);let p=Bu.add(s.and(255).shl(1));return u=c,a[0]=a[0].add(t-1&63),i[0]=i[0].add(a[0]),a[0]=a[0].add(i[0]),n=kr(n.add(o).add(i[0]).add(Pe(r,u+8)),37).mul(p),o=kr(o.add(i[1]).add(Pe(r,u+48)),42).mul(p),n=n.xor(a[1].mul(9)),o=o.add(i[0].mul(9).add(Pe(r,u+40))),s=kr(s.add(a[0]),33).mul(p),i=Vg(r,u,i[1].mul(p),n.add(a[0])),a=Vg(r,u+32,s.add(a[1]),o.add(Pe(r,u+16))),[s,n]=[n,s],Ul(Ul(i[0],a[0],p).add(f0(o).mul(E1)).add(s),Ul(i[1],a[1],p).add(n),p)}function p4(r,t){return t==="string"?Hl(r):Gp([r],t)}function m4(r,t){return r instanceof Float32Array&&t==="float32"||r instanceof Int32Array&&t==="int32"||r instanceof Uint8Array&&t==="bool"}function Gp(r,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(r)&&(r=Bo(r)),z().getBool("DEBUG")&&n0(r,t),m4(r,t))return r;if(t==null||t==="float32"||t==="complex64")return new Float32Array(r);if(t==="int32")return new Int32Array(r);if(t==="bool"){let e=new Uint8Array(r.length);for(let n=0;n{o=n()},i,a=Gu();if(this.backendTimer.timerAvailable())i=this.backendTimer.time(s);else{s();for(let l of o)l.dataSync();i=Promise.resolve({kernelMs:Gu()-a})}if(z().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let l=0;l{d4(p,c.dtype,t)})}return{kernelName:t,outputs:o,inputs:e,timeMs:i.then(l=>l.kernelMs),extraInfo:i.then(l=>l.getExtraProfileInfo!=null?l.getExtraProfileInfo():"")}}logKernelProfile(t){let{kernelName:e,outputs:n,timeMs:o,inputs:s,extraInfo:i}=t;n.forEach(a=>{Promise.all([a.data(),o,i]).then(u=>{this.logger.logKernelProfile(e,a,u[0],u[1],s,u[2])})})}};function d4(r,t,e){if(t!=="float32")return!1;for(let n=0;n0?h:""} `}}console.log(`%c${u} %c${a} %c${l}D ${p} %c${c} %c${m} %c${i}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function A1(r,t,e){let n={},o={};for(let u=0;un[h.id]=!0),f=!0,o[l.id]=!0;break}if(f)break}}let s={};s[e.id]=!0;let i={};for(let u=r.length-1;u>=0;u--){let l=r[u],c=l.inputs;for(let p=0;p=0;o--){let s=t[o],i=[];if(s.outputs.forEach(u=>{let l=r[u.id];l!=null?i.push(l):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let a=s.gradient(i);for(let u in s.inputs){if(!(u in a))throw new Error(`Cannot backprop through input ${u}. Available gradients found: ${Object.keys(a)}.`);let l=e(()=>a[u]());if(l.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${u} must have 'float32' dtype, but has '${l.dtype}'`);let c=s.inputs[u];if(!Dn(l.shape,c.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${u}' has shape '${l.shape}', which does not match the shape of the input '${c.shape}'`);if(r[c.id]==null)r[c.id]=l;else{let p=r[c.id];r[c.id]=n(p,l),p.dispose()}}}}var D1=20,th=3,g0=7;function R1(r,t,e,n){let o=si(t),s=h4(r,t,e,o),i=t.length,a=Wg(r,t,e,o,s),u=["Tensor"];return n&&(u.push(` dtype: ${e}`),u.push(` rank: ${i}`),u.push(` shape: [${t}]`),u.push(" values:")),u.push(a.map(l=>" "+l).join(` +`));var j=l.print||q,Y=l.printErr||H;Object.assign(l,f),f=null,l.arguments&&(d=l.arguments),l.thisProgram&&(h=l.thisProgram),l.quit&&(g=l.quit);var Z=4,et=Atomics.load,rt=Atomics.store,ot=Atomics.compareExchange,at;l.wasmBinary&&(at=l.wasmBinary);var nt=l.noExitRuntime||!0;typeof WebAssembly!="object"&&Yc("no native wasm support detected");var st,dt,ht=!1,bt;function kt(L,U){L||Yc(U)}var _t=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Vt(L,U,ut){for(var xt=U+ut,Dt=U;L[Dt]&&!(Dt>=xt);)++Dt;if(Dt-U>16&&L.buffer&&_t)return _t.decode(L.buffer instanceof SharedArrayBuffer?L.slice(U,Dt):L.subarray(U,Dt));for(var ie="";U>10,56320|Xn&1023)}}return ie}function Zt(L,U){return L?Vt(n(),L,U):""}function ce(L,U,ut,xt){if(!(xt>0))return 0;for(var Dt=ut,ie=ut+xt-1,Gt=0;Gt=55296&&Xt<=57343){var hr=L.charCodeAt(++Gt);Xt=65536+((Xt&1023)<<10)|hr&1023}if(Xt<=127){if(ut>=ie)break;U[ut++]=Xt}else if(Xt<=2047){if(ut+1>=ie)break;U[ut++]=192|Xt>>6,U[ut++]=128|Xt&63}else if(Xt<=65535){if(ut+2>=ie)break;U[ut++]=224|Xt>>12,U[ut++]=128|Xt>>6&63,U[ut++]=128|Xt&63}else{if(ut+3>=ie)break;U[ut++]=240|Xt>>18,U[ut++]=128|Xt>>12&63,U[ut++]=128|Xt>>6&63,U[ut++]=128|Xt&63}}return U[ut]=0,ut-Dt}function he(L,U,ut){return ce(L,n(),U,ut)}var jt,ke,fe,Ae,We,_n,or,Hn,Lr;C&&(jt=l.buffer);function qe(L){jt=L,l.HEAP8=ke=new Int8Array(L),l.HEAP16=Ae=new Int16Array(L),l.HEAP32=_n=new Int32Array(L),l.HEAPU8=fe=new Uint8Array(L),l.HEAPU16=We=new Uint16Array(L),l.HEAPU32=or=new Uint32Array(L),l.HEAPF32=Hn=new Float32Array(L),l.HEAPF64=Lr=new Float64Array(L)}var Mr=l.INITIAL_MEMORY||16777216;if(C)st=l.wasmMemory,jt=l.buffer;else if(l.wasmMemory)st=l.wasmMemory;else if(st=new WebAssembly.Memory({initial:Mr/65536,maximum:32768,shared:!0}),!(st.buffer instanceof SharedArrayBuffer))throw Y("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),w&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");st&&(jt=st.buffer),Mr=jt.byteLength,qe(jt);var zr,qn=[],Kn=[],Xr=[],Zi=!1;function Mo(){return nt}function Il(){if(l.preRun)for(typeof l.preRun=="function"&&(l.preRun=[l.preRun]);l.preRun.length;)Rd(l.preRun.shift());Md(qn)}function Tr(){Zi=!0,!C&&Md(Kn)}function Ji(){if(!C){if(l.postRun)for(typeof l.postRun=="function"&&(l.postRun=[l.postRun]);l.postRun.length;)Gk(l.postRun.shift());Md(Xr)}}function Rd(L){qn.unshift(L)}function Fd(L){Kn.unshift(L)}function Gk(L){Xr.unshift(L)}var Sl=0,Xc=null,Qi=null;function Wk(L){Sl++,l.monitorRunDependencies&&l.monitorRunDependencies(Sl)}function Uk(L){if(Sl--,l.monitorRunDependencies&&l.monitorRunDependencies(Sl),Sl==0&&(Xc!==null&&(clearInterval(Xc),Xc=null),Qi)){var U=Qi;Qi=null,U()}}function Yc(L){C?postMessage({cmd:"onAbort",arg:L}):l.onAbort&&l.onAbort(L),L="Aborted("+L+")",Y(L),ht=!0,bt=1,L+=". Build with -sASSERTIONS for more info.";var U=new WebAssembly.RuntimeError(L);throw p(U),U}var gI="data:application/octet-stream;base64,";function pg(L){return L.startsWith(gI)}function Od(L){return L.startsWith("file://")}var en;en="tfjs-backend-wasm-threaded-simd.wasm",pg(en)||(en=_(en));function mg(L){try{if(L==en&&at)return new Uint8Array(at);if(F)return F(L);throw"both async and sync fetching of the wasm failed"}catch(U){Yc(U)}}function xI(){if(!at&&(x||b)){if(typeof fetch=="function"&&!Od(en))return fetch(en,{credentials:"same-origin"}).then(function(L){if(!L.ok)throw"failed to load wasm binary file at '"+en+"'";return L.arrayBuffer()}).catch(function(){return mg(en)});if($)return new Promise(function(L,U){$(en,function(ut){L(new Uint8Array(ut))},U)})}return Promise.resolve().then(function(){return mg(en)})}function yI(){var L={env:vg,wasi_snapshot_preview1:vg};function U(Gt,Xt){var hr=Gt.exports;if(l.asm=hr,EI(l.asm._emscripten_tls_init),zr=l.asm.__indirect_function_table,Fd(l.asm.__wasm_call_ctors),dt=Xt,!C){var Xn=Kt.unusedWorkers.length;Kt.unusedWorkers.forEach(function(ea){Kt.loadWasmModuleToWorker(ea,function(){--Xn||Uk("wasm-instantiate")})})}}C||Wk("wasm-instantiate");function ut(Gt){U(Gt.instance,Gt.module)}function xt(Gt){return xI().then(function(Xt){return WebAssembly.instantiate(Xt,L)}).then(function(Xt){return Xt}).then(Gt,function(Xt){Y("failed to asynchronously prepare wasm: "+Xt),Yc(Xt)})}function Dt(){return!at&&typeof WebAssembly.instantiateStreaming=="function"&&!pg(en)&&!Od(en)&&!w&&typeof fetch=="function"?fetch(en,{credentials:"same-origin"}).then(function(Gt){var Xt=WebAssembly.instantiateStreaming(Gt,L);return Xt.then(ut,function(hr){return Y("wasm streaming compile failed: "+hr),Y("falling back to ArrayBuffer instantiation"),xt(ut)})}):xt(ut)}if(l.instantiateWasm)try{var ie=l.instantiateWasm(L,U);return ie}catch(Gt){Y("Module.instantiateWasm callback failed with error: "+Gt),p(Gt)}return Dt().catch(p),{}}var bI,Hk,wI={};function Ru(L){this.name="ExitStatus",this.message="Program terminated with exit("+L+")",this.status=L}function CI(L){var U=Kt.pthreads[L];delete Kt.pthreads[L],U.terminate(),YS(L),Kt.runningWorkers.splice(Kt.runningWorkers.indexOf(U),1),U.pthread_ptr=0}function II(L){var U=Kt.pthreads[L];U.postMessage({cmd:"cancel"})}function Pd(L){var U=Kt.pthreads[L];kt(U),Kt.returnWorkerToPool(U)}function fg(L){var U=Kt.getNewWorker();if(!U)return 6;Kt.runningWorkers.push(U),Kt.pthreads[L.pthread_ptr]=U,U.pthread_ptr=L.pthread_ptr;var ut={cmd:"run",start_routine:L.startRoutine,arg:L.arg,pthread_ptr:L.pthread_ptr};return U.runPthread=()=>{ut.time=performance.now(),U.postMessage(ut,L.transferList)},U.loaded&&(U.runPthread(),delete U.runPthread),0}var dg={varargs:void 0,get:function(){dg.varargs+=4;var L=s()[dg.varargs-4>>2];return L},getStr:function(L){var U=Zt(L);return U}};function Ld(L){if(C)return vl(1,1,L);bt=L,Mo()||(Kt.terminateAllThreads(),l.onExit&&l.onExit(L),ht=!0),g(L,new Ru(L))}function qk(L,U){if(bt=L,!U&&C)throw gg(L),"unwind";Ld(L)}var hg=qk;function SI(L){if(L instanceof Ru||L=="unwind")return bt;g(1,L)}var Kt={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?Kt.initWorker():Kt.initMainThread()},initMainThread:function(){for(var L=8;L--;)Kt.allocateUnusedWorker()},initWorker:function(){nt=!1},setExitStatus:function(L){bt=L},terminateAllThreads:function(){for(var L of Object.values(Kt.pthreads))Kt.returnWorkerToPool(L);for(var L of Kt.unusedWorkers)L.terminate();Kt.unusedWorkers=[]},returnWorkerToPool:function(L){var U=L.pthread_ptr;delete Kt.pthreads[U],Kt.unusedWorkers.push(L),Kt.runningWorkers.splice(Kt.runningWorkers.indexOf(L),1),L.pthread_ptr=0,YS(U)},receiveObjectTransfer:function(L){},threadInitTLS:function(){Kt.tlsInitFunctions.forEach(L=>L())},loadWasmModuleToWorker:function(L,U){L.onmessage=ut=>{var xt=ut.data,Dt=xt.cmd;if(L.pthread_ptr&&(Kt.currentProxiedOperationCallerThread=L.pthread_ptr),xt.targetThread&&xt.targetThread!=Ag()){var ie=Kt.pthreads[xt.targetThread];ie?ie.postMessage(xt,xt.transferList):Y('Internal error! Worker sent a message "'+Dt+'" to target pthread '+xt.targetThread+", but that thread no longer exists!"),Kt.currentProxiedOperationCallerThread=void 0;return}Dt==="processProxyingQueue"?zd(xt.queue):Dt==="spawnThread"?fg(xt):Dt==="cleanupThread"?Pd(xt.thread):Dt==="killThread"?CI(xt.thread):Dt==="cancelThread"?II(xt.thread):Dt==="loaded"?(L.loaded=!0,U&&U(L),L.runPthread&&(L.runPthread(),delete L.runPthread)):Dt==="print"?j("Thread "+xt.threadId+": "+xt.text):Dt==="printErr"?Y("Thread "+xt.threadId+": "+xt.text):Dt==="alert"?alert("Thread "+xt.threadId+": "+xt.text):xt.target==="setimmediate"?L.postMessage(xt):Dt==="onAbort"?l.onAbort&&l.onAbort(xt.arg):Dt&&Y("worker sent an unknown command "+Dt),Kt.currentProxiedOperationCallerThread=void 0},L.onerror=ut=>{var xt="worker sent an error!";throw Y(xt+" "+ut.filename+":"+ut.lineno+": "+ut.message),ut},w&&(L.on("message",function(ut){L.onmessage({data:ut})}),L.on("error",function(ut){L.onerror(ut)}),L.on("detachedExit",function(){})),L.postMessage({cmd:"load",urlOrBlob:l.mainScriptUrlOrBlob||r,wasmMemory:st,wasmModule:dt})},allocateUnusedWorker:function(){var L=_("tfjs-backend-wasm-threaded-simd.worker.js");Kt.unusedWorkers.push(new Worker(L))},getNewWorker:function(){return Kt.unusedWorkers.length==0&&(Kt.allocateUnusedWorker(),Kt.loadWasmModuleToWorker(Kt.unusedWorkers[0])),Kt.unusedWorkers.pop()}};l.PThread=Kt;function Md(L){for(;L.length>0;)L.shift()(l)}function vI(L){var U=ZS(),ut=L();return $g(U),ut}function Kk(L){return L}function jk(L){var U=/\b_Z[\w\d_]+/g;return L.replace(U,function(ut){var xt=ut;return ut===xt?ut:xt+" ["+ut+"]"})}function NI(){var L=Ag(),U=s()[L+44>>2],ut=s()[L+48>>2],xt=U-ut;e1(U,xt),$g(U)}l.establishStackSpace=NI;function gg(L){if(C)return vl(2,0,L);try{hg(L)}catch(U){SI(U)}}var Zc=[];function TI(L){var U=Zc[L];return U||(L>=Zc.length&&(Zc.length=L+1),Zc[L]=U=zr.get(L)),U}function kI(L,U){var ut=TI(L)(U);Mo()?Kt.setExitStatus(ut):t1(ut)}l.invokeEntryPoint=kI;function Xk(){var L=new Error;if(!L.stack){try{throw new Error}catch(U){L=U}if(!L.stack)return"(no stack trace available)"}return L.stack.toString()}function EI(L){Kt.tlsInitFunctions.push(L)}function _I(L,U){e().set(L,U)}function AI(L){Zk(L,!b,1,!x),Kt.threadInitTLS()}function $I(L){C?postMessage({cmd:"cleanupThread",thread:L}):Pd(L)}function xg(L,U,ut,xt){return C?vl(3,1,L,U,ut,xt):yg(L,U,ut,xt)}function yg(L,U,ut,xt){if(typeof SharedArrayBuffer=="undefined")return Y("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var Dt=[],ie=0;if(C&&(Dt.length===0||ie))return xg(L,U,ut,xt);if(ie)return ie;var Gt={startRoutine:ut,pthread_ptr:L,arg:xt,transferList:Dt};return C?(Gt.cmd="spawnThread",postMessage(Gt,Dt),0):fg(Gt)}function DI(){return 2097152}var RI=!0;function FI(){return RI}function zd(L){Atomics.store(s(),L>>2,1),Ag()&&Qk(L),Atomics.compareExchange(s(),L>>2,1,0)}l.executeNotifiedProxyingQueue=zd;function OI(L,U,ut,xt){if(L==U)setTimeout(()=>zd(xt));else if(C)postMessage({targetThread:L,cmd:"processProxyingQueue",queue:xt});else{var Dt=Kt.pthreads[L];if(!Dt)return;Dt.postMessage({cmd:"processProxyingQueue",queue:xt})}return 1}function PI(L,U,ut){return-1}function LI(){Yc("")}function Fu(L){Fu.shown||(Fu.shown={}),Fu.shown[L]||(Fu.shown[L]=1,w&&(L="warning: "+L),Y(L))}function MI(){w||b||Fu("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function zI(){return Date.now()}function bg(){return 2147483648}function BI(){return bg()}var Jc;w?Jc=()=>{var L=process.hrtime();return L[0]*1e3+L[1]/1e6}:C?Jc=()=>performance.now()-l.__performance_now_clock_drift:Jc=()=>performance.now();function VI(L,U,ut){n().copyWithin(L,U,U+ut)}function GI(){return w?GW().cpus().length:navigator.hardwareConcurrency}function vl(L,U){var ut=arguments.length-2,xt=arguments;return vI(()=>{for(var Dt=ut,ie=Dg(Dt*8),Gt=ie>>3,Xt=0;Xt>3,Dt=0;Dt>>16),qe(st.buffer),1}catch(U){}}function HI(L){var U=n().length;if(L=L>>>0,L<=U)return!1;var ut=bg();if(L>ut)return!1;let xt=(hr,Xn)=>hr+(Xn-hr%Xn)%Xn;for(var Dt=1;Dt<=4;Dt*=2){var ie=U*(1+.2/Dt);ie=Math.min(ie,L+100663296);var Gt=Math.min(ut,xt(Math.max(L,ie),65536)),Xt=UI(Gt);if(Xt)return!0}return!1}function qI(){throw"unwind"}function wg(L){return C?vl(4,1,L):52}function Cg(L,U,ut,xt,Dt){return C?vl(5,1,L,U,ut,xt,Dt):70}var KI=[null,[],[]];function jI(L,U){var ut=KI[L];U===0||U===10?((L===1?j:Y)(Vt(ut,0)),ut.length=0):ut.push(U)}function Ig(L,U,ut,xt){if(C)return vl(6,1,L,U,ut,xt);for(var Dt=0,ie=0;ie>2],Xt=i()[U+4>>2];U+=8;for(var hr=0;hr>2]=Dt,0}function Sg(L){var U=l["_"+L];return U}function XI(L,U,ut,xt,Dt){var ie={string:An=>{var rp=0;if(An!=null&&An!==0){var o1=(An.length<<2)+1;rp=Dg(o1),he(An,rp,o1)}return rp},array:An=>{var rp=Dg(An.length);return _I(An,rp),rp}};function Gt(An){return U==="string"?Zt(An):U==="boolean"?Boolean(An):An}var Xt=Sg(L),hr=[],Xn=0;if(xt)for(var ea=0;eaGt==="number"||Gt==="boolean"),ie=U!=="string";return ie&&Dt&&!xt?Sg(L):function(){return XI(L,U,ut,arguments,xt)}}Kt.init();var ZI=[null,Ld,gg,xg,wg,Cg,Ig],vg={__emscripten_init_main_thread_js:AI,__emscripten_thread_cleanup:$I,__pthread_create_js:yg,_emscripten_default_pthread_stack_size:DI,_emscripten_get_now_is_monotonic:FI,_emscripten_notify_task_queue:OI,_emscripten_set_offscreencanvas_size:PI,abort:LI,emscripten_check_blocking_allowed:MI,emscripten_date_now:zI,emscripten_get_heap_max:BI,emscripten_get_now:Jc,emscripten_memcpy_big:VI,emscripten_num_logical_cores:GI,emscripten_receive_on_main_thread_js:WI,emscripten_resize_heap:HI,emscripten_unwind_to_js_event_loop:qI,exit:hg,fd_close:wg,fd_seek:Cg,fd_write:Ig,memory:st||l.wasmMemory},Yk=yI(),JI=l.___wasm_call_ctors=function(){return(JI=l.___wasm_call_ctors=l.asm.__wasm_call_ctors).apply(null,arguments)},QI=l._init=function(){return(QI=l._init=l.asm.init).apply(null,arguments)},tS=l._init_with_threads_count=function(){return(tS=l._init_with_threads_count=l.asm.init_with_threads_count).apply(null,arguments)},eS=l._get_threads_count=function(){return(eS=l._get_threads_count=l.asm.get_threads_count).apply(null,arguments)},rS=l._register_tensor=function(){return(rS=l._register_tensor=l.asm.register_tensor).apply(null,arguments)},nS=l._dispose_data=function(){return(nS=l._dispose_data=l.asm.dispose_data).apply(null,arguments)},oS=l._dispose=function(){return(oS=l._dispose=l.asm.dispose).apply(null,arguments)},sS=l._Abs=function(){return(sS=l._Abs=l.asm.Abs).apply(null,arguments)},iS=l._Add=function(){return(iS=l._Add=l.asm.Add).apply(null,arguments)},aS=l._AddN=function(){return(aS=l._AddN=l.asm.AddN).apply(null,arguments)},lS=l._All=function(){return(lS=l._All=l.asm.All).apply(null,arguments)},uS=l._Any=function(){return(uS=l._Any=l.asm.Any).apply(null,arguments)},cS=l._ArgMax=function(){return(cS=l._ArgMax=l.asm.ArgMax).apply(null,arguments)},pS=l._AvgPool=function(){return(pS=l._AvgPool=l.asm.AvgPool).apply(null,arguments)},mS=l._BatchMatMul=function(){return(mS=l._BatchMatMul=l.asm.BatchMatMul).apply(null,arguments)},fS=l._Ceil=function(){return(fS=l._Ceil=l.asm.Ceil).apply(null,arguments)},dS=l._ClipByValue=function(){return(dS=l._ClipByValue=l.asm.ClipByValue).apply(null,arguments)},hS=l._Conv2D=function(){return(hS=l._Conv2D=l.asm.Conv2D).apply(null,arguments)},gS=l._Conv2DBackpropInput=function(){return(gS=l._Conv2DBackpropInput=l.asm.Conv2DBackpropInput).apply(null,arguments)},xS=l._Cos=function(){return(xS=l._Cos=l.asm.Cos).apply(null,arguments)},yS=l._Cosh=function(){return(yS=l._Cosh=l.asm.Cosh).apply(null,arguments)},bS=l._CropAndResize=function(){return(bS=l._CropAndResize=l.asm.CropAndResize).apply(null,arguments)},wS=l._Cumprod=function(){return(wS=l._Cumprod=l.asm.Cumprod).apply(null,arguments)},CS=l._Cumsum=function(){return(CS=l._Cumsum=l.asm.Cumsum).apply(null,arguments)},IS=l._DepthToSpace=function(){return(IS=l._DepthToSpace=l.asm.DepthToSpace).apply(null,arguments)},SS=l._DepthwiseConv2dNative=function(){return(SS=l._DepthwiseConv2dNative=l.asm.DepthwiseConv2dNative).apply(null,arguments)},vS=l._Elu=function(){return(vS=l._Elu=l.asm.Elu).apply(null,arguments)},NS=l._Equal=function(){return(NS=l._Equal=l.asm.Equal).apply(null,arguments)},TS=l._Exp=function(){return(TS=l._Exp=l.asm.Exp).apply(null,arguments)},kS=l._FlipLeftRight=function(){return(kS=l._FlipLeftRight=l.asm.FlipLeftRight).apply(null,arguments)},ES=l._Floor=function(){return(ES=l._Floor=l.asm.Floor).apply(null,arguments)},_S=l._FloorDiv=function(){return(_S=l._FloorDiv=l.asm.FloorDiv).apply(null,arguments)},AS=l._FusedBatchNorm=function(){return(AS=l._FusedBatchNorm=l.asm.FusedBatchNorm).apply(null,arguments)},$S=l._FusedConv2D=function(){return($S=l._FusedConv2D=l.asm.FusedConv2D).apply(null,arguments)},DS=l._FusedDepthwiseConv2D=function(){return(DS=l._FusedDepthwiseConv2D=l.asm.FusedDepthwiseConv2D).apply(null,arguments)},RS=l._Gather=function(){return(RS=l._Gather=l.asm.Gather).apply(null,arguments)},FS=l._GatherNd=function(){return(FS=l._GatherNd=l.asm.GatherNd).apply(null,arguments)},OS=l._Greater=function(){return(OS=l._Greater=l.asm.Greater).apply(null,arguments)},PS=l._GreaterEqual=function(){return(PS=l._GreaterEqual=l.asm.GreaterEqual).apply(null,arguments)},LS=l._LeakyRelu=function(){return(LS=l._LeakyRelu=l.asm.LeakyRelu).apply(null,arguments)},MS=l._Less=function(){return(MS=l._Less=l.asm.Less).apply(null,arguments)},zS=l._LessEqual=function(){return(zS=l._LessEqual=l.asm.LessEqual).apply(null,arguments)},BS=l._Log=function(){return(BS=l._Log=l.asm.Log).apply(null,arguments)},VS=l._LogicalAnd=function(){return(VS=l._LogicalAnd=l.asm.LogicalAnd).apply(null,arguments)},GS=l._LogicalNot=function(){return(GS=l._LogicalNot=l.asm.LogicalNot).apply(null,arguments)},WS=l._LogicalOr=function(){return(WS=l._LogicalOr=l.asm.LogicalOr).apply(null,arguments)},US=l._LogicalXor=function(){return(US=l._LogicalXor=l.asm.LogicalXor).apply(null,arguments)},HS=l._Max=function(){return(HS=l._Max=l.asm.Max).apply(null,arguments)},Ng=l._MaxPool=function(){return(Ng=l._MaxPool=l.asm.MaxPool).apply(null,arguments)},Tg=l._Maximum=function(){return(Tg=l._Maximum=l.asm.Maximum).apply(null,arguments)},Vd=l._Mean=function(){return(Vd=l._Mean=l.asm.Mean).apply(null,arguments)},qS=l._Min=function(){return(qS=l._Min=l.asm.Min).apply(null,arguments)},KS=l._Minimum=function(){return(KS=l._Minimum=l.asm.Minimum).apply(null,arguments)},Qc=l._MirrorPad=function(){return(Qc=l._MirrorPad=l.asm.MirrorPad).apply(null,arguments)},kg=l._Multiply=function(){return(kg=l._Multiply=l.asm.Multiply).apply(null,arguments)},tp=l._Neg=function(){return(tp=l._Neg=l.asm.Neg).apply(null,arguments)},ep=l._NonMaxSuppressionV3=function(){return(ep=l._NonMaxSuppressionV3=l.asm.NonMaxSuppressionV3).apply(null,arguments)},jS=l._NonMaxSuppressionV4=function(){return(jS=l._NonMaxSuppressionV4=l.asm.NonMaxSuppressionV4).apply(null,arguments)},K=l._NonMaxSuppressionV5=function(){return(K=l._NonMaxSuppressionV5=l.asm.NonMaxSuppressionV5).apply(null,arguments)},lt=l._NotEqual=function(){return(lt=l._NotEqual=l.asm.NotEqual).apply(null,arguments)},At=l._OneHot=function(){return(At=l._OneHot=l.asm.OneHot).apply(null,arguments)},re=l._PadV2=function(){return(re=l._PadV2=l.asm.PadV2).apply(null,arguments)},Ke=l._Pow=function(){return(Ke=l._Pow=l.asm.Pow).apply(null,arguments)},je=l._Prelu=function(){return(je=l._Prelu=l.asm.Prelu).apply(null,arguments)},ee=l._Prod=function(){return(ee=l._Prod=l.asm.Prod).apply(null,arguments)},te=l._RealDiv=function(){return(te=l._RealDiv=l.asm.RealDiv).apply(null,arguments)},dr=l._Relu=function(){return(dr=l._Relu=l.asm.Relu).apply(null,arguments)},jn=l._Relu6=function(){return(jn=l._Relu6=l.asm.Relu6).apply(null,arguments)},ta=l._ResizeBilinear=function(){return(ta=l._ResizeBilinear=l.asm.ResizeBilinear).apply(null,arguments)},Eg=l._ResizeNearestNeighbor=function(){return(Eg=l._ResizeNearestNeighbor=l.asm.ResizeNearestNeighbor).apply(null,arguments)},Gd=l._Reverse=function(){return(Gd=l._Reverse=l.asm.Reverse).apply(null,arguments)},XS=l._RotateWithOffset=function(){return(XS=l._RotateWithOffset=l.asm.RotateWithOffset).apply(null,arguments)},rn=l._Round=function(){return(rn=l._Round=l.asm.Round).apply(null,arguments)},Nl=l._Rsqrt=function(){return(Nl=l._Rsqrt=l.asm.Rsqrt).apply(null,arguments)},_g=l._ScatterNd=function(){return(_g=l._ScatterNd=l.asm.ScatterNd).apply(null,arguments)},QW=l._SelectV2=function(){return(QW=l._SelectV2=l.asm.SelectV2).apply(null,arguments)},tU=l._Sigmoid=function(){return(tU=l._Sigmoid=l.asm.Sigmoid).apply(null,arguments)},eU=l._Sin=function(){return(eU=l._Sin=l.asm.Sin).apply(null,arguments)},rU=l._Softmax=function(){return(rU=l._Softmax=l.asm.Softmax).apply(null,arguments)},nU=l._SparseFillEmptyRows=function(){return(nU=l._SparseFillEmptyRows=l.asm.SparseFillEmptyRows).apply(null,arguments)},oU=l._SparseReshape=function(){return(oU=l._SparseReshape=l.asm.SparseReshape).apply(null,arguments)},sU=l._SparseSegmentReduction=function(){return(sU=l._SparseSegmentReduction=l.asm.SparseSegmentReduction).apply(null,arguments)},iU=l._Sqrt=function(){return(iU=l._Sqrt=l.asm.Sqrt).apply(null,arguments)},aU=l._Square=function(){return(aU=l._Square=l.asm.Square).apply(null,arguments)},lU=l._SquaredDifference=function(){return(lU=l._SquaredDifference=l.asm.SquaredDifference).apply(null,arguments)},uU=l._Step=function(){return(uU=l._Step=l.asm.Step).apply(null,arguments)},cU=l._StridedSlice=function(){return(cU=l._StridedSlice=l.asm.StridedSlice).apply(null,arguments)},pU=l._Sub=function(){return(pU=l._Sub=l.asm.Sub).apply(null,arguments)},mU=l._Sum=function(){return(mU=l._Sum=l.asm.Sum).apply(null,arguments)},fU=l._Tan=function(){return(fU=l._Tan=l.asm.Tan).apply(null,arguments)},dU=l._Tanh=function(){return(dU=l._Tanh=l.asm.Tanh).apply(null,arguments)},hU=l._Tile=function(){return(hU=l._Tile=l.asm.Tile).apply(null,arguments)},gU=l._TopK=function(){return(gU=l._TopK=l.asm.TopK).apply(null,arguments)},xU=l._Transform=function(){return(xU=l._Transform=l.asm.Transform).apply(null,arguments)},yU=l._Transpose=function(){return(yU=l._Transpose=l.asm.Transpose).apply(null,arguments)},bU=l.__FusedMatMul=function(){return(bU=l.__FusedMatMul=l.asm._FusedMatMul).apply(null,arguments)},wU=l._malloc=function(){return(wU=l._malloc=l.asm.malloc).apply(null,arguments)},CU=l._free=function(){return(CU=l._free=l.asm.free).apply(null,arguments)},IU=l.__emscripten_tls_init=function(){return(IU=l.__emscripten_tls_init=l.asm._emscripten_tls_init).apply(null,arguments)},Ag=l._pthread_self=function(){return(Ag=l._pthread_self=l.asm.pthread_self).apply(null,arguments)},SU=l.___errno_location=function(){return(SU=l.___errno_location=l.asm.__errno_location).apply(null,arguments)},Zk=l.__emscripten_thread_init=function(){return(Zk=l.__emscripten_thread_init=l.asm._emscripten_thread_init).apply(null,arguments)},vU=l.__emscripten_thread_crashed=function(){return(vU=l.__emscripten_thread_crashed=l.asm._emscripten_thread_crashed).apply(null,arguments)},NU=l._emscripten_main_thread_process_queued_calls=function(){return(NU=l._emscripten_main_thread_process_queued_calls=l.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},TU=l._emscripten_main_browser_thread_id=function(){return(TU=l._emscripten_main_browser_thread_id=l.asm.emscripten_main_browser_thread_id).apply(null,arguments)},Jk=l._emscripten_run_in_main_runtime_thread_js=function(){return(Jk=l._emscripten_run_in_main_runtime_thread_js=l.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},kU=l._emscripten_dispatch_to_thread_=function(){return(kU=l._emscripten_dispatch_to_thread_=l.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},Qk=l.__emscripten_proxy_execute_task_queue=function(){return(Qk=l.__emscripten_proxy_execute_task_queue=l.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},YS=l.__emscripten_thread_free_data=function(){return(YS=l.__emscripten_thread_free_data=l.asm._emscripten_thread_free_data).apply(null,arguments)},t1=l.__emscripten_thread_exit=function(){return(t1=l.__emscripten_thread_exit=l.asm._emscripten_thread_exit).apply(null,arguments)},e1=l._emscripten_stack_set_limits=function(){return(e1=l._emscripten_stack_set_limits=l.asm.emscripten_stack_set_limits).apply(null,arguments)},ZS=l.stackSave=function(){return(ZS=l.stackSave=l.asm.stackSave).apply(null,arguments)},$g=l.stackRestore=function(){return($g=l.stackRestore=l.asm.stackRestore).apply(null,arguments)},Dg=l.stackAlloc=function(){return(Dg=l.stackAlloc=l.asm.stackAlloc).apply(null,arguments)},EU=l.dynCall_iijjiiii=function(){return(EU=l.dynCall_iijjiiii=l.asm.dynCall_iijjiiii).apply(null,arguments)},_U=l.dynCall_jiji=function(){return(_U=l.dynCall_jiji=l.asm.dynCall_jiji).apply(null,arguments)};l.keepRuntimeAlive=Mo,l.wasmMemory=st,l.cwrap=YI,l.ExitStatus=Ru,l.PThread=Kt;var Rg;Qi=function L(){Rg||r1(),Rg||(Qi=L)};function r1(L){if(L=L||d,Sl>0)return;if(C){c(l),Tr(),postMessage({cmd:"loaded"});return}if(Il(),Sl>0)return;function U(){Rg||(Rg=!0,l.calledRun=!0,!ht&&(Tr(),c(l),l.onRuntimeInitialized&&l.onRuntimeInitialized(),Ji()))}l.setStatus?(l.setStatus("Running..."),setTimeout(function(){setTimeout(function(){l.setStatus("")},1),U()},1)):U()}if(l.preInit)for(typeof l.preInit=="function"&&(l.preInit=[l.preInit]);l.preInit.length>0;)l.preInit.pop()();r1();var Fg;m&&(Fg={uncaughtException:process.listeners("uncaughtException").filter(function(L){return!m.uncaughtException.indexOf(L)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(L){return!m.unhandledRejection.indexOf(L)>-1})});var Og;if(typeof WasmBackendModule!="undefined")Og=WasmBackendModule;else if(typeof t!="undefined")Og=t;else throw new Error("Could not find wasm module in post.js");if(Fg){var AU=Og._dispose;Og._dispose=function(){AU(),Fg.uncaughtException.forEach(function(L){process.removeListener("uncaughtException",L)}),Fg.unhandledRejection.forEach(function(L){process.removeListener("unhandledRejection",L)})}}return t.ready}})();typeof fI=="object"&&typeof Ok=="object"?Ok.exports=Fk:typeof define=="function"&&define.amd?define([],function(){return Fk}):typeof fI=="object"&&(fI.WasmBackendModuleThreadedSimd=Fk)});var HW=gr((G5e,UW)=>{UW.exports.wasmWorkerContents=`"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",data=>onmessage({data:data}));var fs=require("fs");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,"utf8"))},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+" +");return}console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob=="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance})}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.pthread_ptr,0,0,1);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module["executeNotifiedProxyingQueue"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["__emscripten_thread_exit"](ex.status)}}else{throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processProxyingQueue"){if(initializedJS){Module["executeNotifiedProxyingQueue"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}};`});var qW=gr((dI,Lk)=>{var Pk=(()=>{var r=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(r=r||__filename),function(t){t=t||{};var e=typeof t!="undefined"?t:{},n,o;e.ready=new Promise(function(K,lt){n=K,o=lt});var s;typeof process!="undefined"&&process.listeners&&(s={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var i=Object.assign({},e),a=[],u="./this.program",l=(K,lt)=>{throw lt},c=typeof window=="object",p=typeof importScripts=="function",m=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",f="";function d(K){return e.locateFile?e.locateFile(K,f):f+K}var h,g,x,b;function w(K){if(K instanceof Xc)return;A("exiting due to exception: "+K)}if(m){p?f=ig().dirname(f)+"/":f=__dirname+"/";var C,N;typeof Pg=="function"&&(C=Zb(),N=ig()),h=(K,lt)=>(K=N.normalize(K),C.readFileSync(K,lt?void 0:"utf8")),x=K=>{var lt=h(K,!0);return lt.buffer||(lt=new Uint8Array(lt)),lt},g=(K,lt,At)=>{K=N.normalize(K),C.readFile(K,function(re,Ke){re?At(re):lt(Ke.buffer)})},process.argv.length>1&&(u=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),process.on("uncaughtException",function(K){if(!(K instanceof Xc))throw K}),process.on("unhandledRejection",function(K){throw K}),l=(K,lt)=>{if(fe())throw process.exitCode=K,lt;w(lt),process.exit(K)},e.inspect=function(){return"[Emscripten Module object]"}}else(c||p)&&(p?f=self.location.href:typeof document!="undefined"&&document.currentScript&&(f=document.currentScript.src),r&&(f=r),f.indexOf("blob:")!==0?f=f.substr(0,f.replace(/[?#].*/,"").lastIndexOf("/")+1):f="",h=K=>{var lt=new XMLHttpRequest;return lt.open("GET",K,!1),lt.send(null),lt.responseText},p&&(x=K=>{var lt=new XMLHttpRequest;return lt.open("GET",K,!1),lt.responseType="arraybuffer",lt.send(null),new Uint8Array(lt.response)}),g=(K,lt,At)=>{var re=new XMLHttpRequest;re.open("GET",K,!0),re.responseType="arraybuffer",re.onload=()=>{if(re.status==200||re.status==0&&re.response){lt(re.response);return}At()},re.onerror=At,re.send(null)},b=K=>document.title=K);var _=e.print||console.log.bind(console),A=e.printErr||console.warn.bind(console);Object.assign(e,i),i=null,e.arguments&&(a=e.arguments),e.thisProgram&&(u=e.thisProgram),e.quit&&(l=e.quit);var $=4,F;e.wasmBinary&&(F=e.wasmBinary);var P=e.noExitRuntime||!0;typeof WebAssembly!="object"&&Xr("no native wasm support detected");var V,G=!1,W;function q(K,lt){K||Xr(lt)}var H=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function j(K,lt,At){for(var re=lt+At,Ke=lt;K[Ke]&&!(Ke>=re);)++Ke;if(Ke-lt>16&&K.buffer&&H)return H.decode(K.subarray(lt,Ke));for(var je="";lt>10,56320|jn&1023)}}return je}function Y(K,lt){return K?j(at,K,lt):""}function Z(K,lt,At,re){if(!(re>0))return 0;for(var Ke=At,je=At+re-1,ee=0;ee=55296&&te<=57343){var dr=K.charCodeAt(++ee);te=65536+((te&1023)<<10)|dr&1023}if(te<=127){if(At>=je)break;lt[At++]=te}else if(te<=2047){if(At+1>=je)break;lt[At++]=192|te>>6,lt[At++]=128|te&63}else if(te<=65535){if(At+2>=je)break;lt[At++]=224|te>>12,lt[At++]=128|te>>6&63,lt[At++]=128|te&63}else{if(At+3>=je)break;lt[At++]=240|te>>18,lt[At++]=128|te>>12&63,lt[At++]=128|te>>6&63,lt[At++]=128|te&63}}return lt[At]=0,At-Ke}function et(K,lt,At){return Z(K,at,lt,At)}var rt,ot,at,nt,st,dt,ht,bt,kt;function _t(K){rt=K,e.HEAP8=ot=new Int8Array(K),e.HEAP16=nt=new Int16Array(K),e.HEAP32=dt=new Int32Array(K),e.HEAPU8=at=new Uint8Array(K),e.HEAPU16=st=new Uint16Array(K),e.HEAPU32=ht=new Uint32Array(K),e.HEAPF32=bt=new Float32Array(K),e.HEAPF64=kt=new Float64Array(K)}var Vt=e.INITIAL_MEMORY||16777216,Zt,ce=[],he=[],jt=[],ke=!1;function fe(){return P}function Ae(){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)or(e.preRun.shift());Qi(ce)}function We(){ke=!0,Qi(he)}function _n(){if(e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;)Lr(e.postRun.shift());Qi(jt)}function or(K){ce.unshift(K)}function Hn(K){he.unshift(K)}function Lr(K){jt.unshift(K)}var qe=0,Mr=null,zr=null;function qn(K){qe++,e.monitorRunDependencies&&e.monitorRunDependencies(qe)}function Kn(K){if(qe--,e.monitorRunDependencies&&e.monitorRunDependencies(qe),qe==0&&(Mr!==null&&(clearInterval(Mr),Mr=null),zr)){var lt=zr;zr=null,lt()}}function Xr(K){e.onAbort&&e.onAbort(K),K="Aborted("+K+")",A(K),G=!0,W=1,K+=". Build with -sASSERTIONS for more info.";var lt=new WebAssembly.RuntimeError(K);throw o(lt),lt}var Zi="data:application/octet-stream;base64,";function Mo(K){return K.startsWith(Zi)}function Il(K){return K.startsWith("file://")}var Tr;Tr="tfjs-backend-wasm.wasm",Mo(Tr)||(Tr=d(Tr));function Ji(K){try{if(K==Tr&&F)return new Uint8Array(F);if(x)return x(K);throw"both async and sync fetching of the wasm failed"}catch(lt){Xr(lt)}}function Rd(){if(!F&&(c||p)){if(typeof fetch=="function"&&!Il(Tr))return fetch(Tr,{credentials:"same-origin"}).then(function(K){if(!K.ok)throw"failed to load wasm binary file at '"+Tr+"'";return K.arrayBuffer()}).catch(function(){return Ji(Tr)});if(g)return new Promise(function(K,lt){g(Tr,function(At){K(new Uint8Array(At))},lt)})}return Promise.resolve().then(function(){return Ji(Tr)})}function Fd(){var K={env:Ld,wasi_snapshot_preview1:Ld};function lt(ee,te){var dr=ee.exports;e.asm=dr,V=e.asm.memory,_t(V.buffer),Zt=e.asm.__indirect_function_table,Hn(e.asm.__wasm_call_ctors),Kn("wasm-instantiate")}qn("wasm-instantiate");function At(ee){lt(ee.instance)}function re(ee){return Rd().then(function(te){return WebAssembly.instantiate(te,K)}).then(function(te){return te}).then(ee,function(te){A("failed to asynchronously prepare wasm: "+te),Xr(te)})}function Ke(){return!F&&typeof WebAssembly.instantiateStreaming=="function"&&!Mo(Tr)&&!Il(Tr)&&!m&&typeof fetch=="function"?fetch(Tr,{credentials:"same-origin"}).then(function(ee){var te=WebAssembly.instantiateStreaming(ee,K);return te.then(At,function(dr){return A("wasm streaming compile failed: "+dr),A("falling back to ArrayBuffer instantiation"),re(At)})}):re(At)}if(e.instantiateWasm)try{var je=e.instantiateWasm(K,lt);return je}catch(ee){A("Module.instantiateWasm callback failed with error: "+ee),o(ee)}return Ke().catch(o),{}}var Gk,Sl;function Xc(K){this.name="ExitStatus",this.message="Program terminated with exit("+K+")",this.status=K}function Qi(K){for(;K.length>0;)K.shift()(e)}function Wk(K){return K}function Uk(K){var lt=/\b_Z[\w\d_]+/g;return K.replace(lt,function(At){var re=At;return At===re?At:re+" ["+At+"]"})}function Yc(){var K=new Error;if(!K.stack){try{throw new Error}catch(lt){K=lt}if(!K.stack)return"(no stack trace available)"}return K.stack.toString()}function gI(K,lt){ot.set(K,lt)}function pg(){Xr("")}function Od(){return 2147483648}function en(){return Od()}function mg(K,lt,At){at.copyWithin(K,lt,lt+At)}function xI(K){try{return V.grow(K-rt.byteLength+65535>>>16),_t(V.buffer),1}catch(lt){}}function yI(K){var lt=at.length;K=K>>>0;var At=Od();if(K>At)return!1;let re=(dr,jn)=>dr+(jn-dr%jn)%jn;for(var Ke=1;Ke<=4;Ke*=2){var je=lt*(1+.2/Ke);je=Math.min(je,K+100663296);var ee=Math.min(At,re(Math.max(K,je),65536)),te=xI(ee);if(te)return!0}return!1}var bI={varargs:void 0,get:function(){bI.varargs+=4;var K=dt[bI.varargs-4>>2];return K},getStr:function(K){var lt=Y(K);return lt}};function Hk(K){return 52}function wI(K,lt,At,re,Ke){return 70}var Ru=[null,[],[]];function CI(K,lt){var At=Ru[K];lt===0||lt===10?((K===1?_:A)(j(At,0)),At.length=0):At.push(lt)}function II(K,lt,At,re){for(var Ke=0,je=0;je>2],te=ht[lt+4>>2];lt+=8;for(var dr=0;dr>2]=Ke,0}function Pd(K){var lt=e["_"+K];return lt}function fg(K,lt,At,re,Ke){var je={string:rn=>{var Nl=0;if(rn!=null&&rn!==0){var _g=(rn.length<<2)+1;Nl=Vd(_g),et(rn,Nl,_g)}return Nl},array:rn=>{var Nl=Vd(rn.length);return gI(rn,Nl),Nl}};function ee(rn){return lt==="string"?Y(rn):lt==="boolean"?Boolean(rn):rn}var te=Pd(K),dr=[],jn=0;if(re)for(var ta=0;taee==="number"||ee==="boolean"),je=lt!=="string";return je&&Ke&&!re?Pd(K):function(){return fg(K,lt,At,arguments,re)}}var Ld={abort:pg,emscripten_get_heap_max:en,emscripten_memcpy_big:mg,emscripten_resize_heap:yI,fd_close:Hk,fd_seek:wI,fd_write:II},qk=Fd(),hg=e.___wasm_call_ctors=function(){return(hg=e.___wasm_call_ctors=e.asm.__wasm_call_ctors).apply(null,arguments)},SI=e._init=function(){return(SI=e._init=e.asm.init).apply(null,arguments)},Kt=e._init_with_threads_count=function(){return(Kt=e._init_with_threads_count=e.asm.init_with_threads_count).apply(null,arguments)},Md=e._get_threads_count=function(){return(Md=e._get_threads_count=e.asm.get_threads_count).apply(null,arguments)},vI=e._register_tensor=function(){return(vI=e._register_tensor=e.asm.register_tensor).apply(null,arguments)},Kk=e._dispose_data=function(){return(Kk=e._dispose_data=e.asm.dispose_data).apply(null,arguments)},jk=e._dispose=function(){return(jk=e._dispose=e.asm.dispose).apply(null,arguments)},NI=e._Abs=function(){return(NI=e._Abs=e.asm.Abs).apply(null,arguments)},gg=e._Add=function(){return(gg=e._Add=e.asm.Add).apply(null,arguments)},Zc=e._AddN=function(){return(Zc=e._AddN=e.asm.AddN).apply(null,arguments)},TI=e._All=function(){return(TI=e._All=e.asm.All).apply(null,arguments)},kI=e._Any=function(){return(kI=e._Any=e.asm.Any).apply(null,arguments)},Xk=e._ArgMax=function(){return(Xk=e._ArgMax=e.asm.ArgMax).apply(null,arguments)},EI=e._AvgPool=function(){return(EI=e._AvgPool=e.asm.AvgPool).apply(null,arguments)},_I=e._BatchMatMul=function(){return(_I=e._BatchMatMul=e.asm.BatchMatMul).apply(null,arguments)},AI=e._Ceil=function(){return(AI=e._Ceil=e.asm.Ceil).apply(null,arguments)},$I=e._ClipByValue=function(){return($I=e._ClipByValue=e.asm.ClipByValue).apply(null,arguments)},xg=e._Conv2D=function(){return(xg=e._Conv2D=e.asm.Conv2D).apply(null,arguments)},yg=e._Conv2DBackpropInput=function(){return(yg=e._Conv2DBackpropInput=e.asm.Conv2DBackpropInput).apply(null,arguments)},DI=e._Cos=function(){return(DI=e._Cos=e.asm.Cos).apply(null,arguments)},RI=e._Cosh=function(){return(RI=e._Cosh=e.asm.Cosh).apply(null,arguments)},FI=e._CropAndResize=function(){return(FI=e._CropAndResize=e.asm.CropAndResize).apply(null,arguments)},zd=e._Cumprod=function(){return(zd=e._Cumprod=e.asm.Cumprod).apply(null,arguments)},OI=e._Cumsum=function(){return(OI=e._Cumsum=e.asm.Cumsum).apply(null,arguments)},PI=e._DepthToSpace=function(){return(PI=e._DepthToSpace=e.asm.DepthToSpace).apply(null,arguments)},LI=e._DepthwiseConv2dNative=function(){return(LI=e._DepthwiseConv2dNative=e.asm.DepthwiseConv2dNative).apply(null,arguments)},Fu=e._Elu=function(){return(Fu=e._Elu=e.asm.Elu).apply(null,arguments)},MI=e._Equal=function(){return(MI=e._Equal=e.asm.Equal).apply(null,arguments)},zI=e._Exp=function(){return(zI=e._Exp=e.asm.Exp).apply(null,arguments)},bg=e._FlipLeftRight=function(){return(bg=e._FlipLeftRight=e.asm.FlipLeftRight).apply(null,arguments)},BI=e._Floor=function(){return(BI=e._Floor=e.asm.Floor).apply(null,arguments)},Jc=e._FloorDiv=function(){return(Jc=e._FloorDiv=e.asm.FloorDiv).apply(null,arguments)},VI=e._FusedBatchNorm=function(){return(VI=e._FusedBatchNorm=e.asm.FusedBatchNorm).apply(null,arguments)},GI=e._FusedConv2D=function(){return(GI=e._FusedConv2D=e.asm.FusedConv2D).apply(null,arguments)},vl=e._FusedDepthwiseConv2D=function(){return(vl=e._FusedDepthwiseConv2D=e.asm.FusedDepthwiseConv2D).apply(null,arguments)},Bd=e._Gather=function(){return(Bd=e._Gather=e.asm.Gather).apply(null,arguments)},WI=e._GatherNd=function(){return(WI=e._GatherNd=e.asm.GatherNd).apply(null,arguments)},UI=e._Greater=function(){return(UI=e._Greater=e.asm.Greater).apply(null,arguments)},HI=e._GreaterEqual=function(){return(HI=e._GreaterEqual=e.asm.GreaterEqual).apply(null,arguments)},qI=e._LeakyRelu=function(){return(qI=e._LeakyRelu=e.asm.LeakyRelu).apply(null,arguments)},wg=e._Less=function(){return(wg=e._Less=e.asm.Less).apply(null,arguments)},Cg=e._LessEqual=function(){return(Cg=e._LessEqual=e.asm.LessEqual).apply(null,arguments)},KI=e._Log=function(){return(KI=e._Log=e.asm.Log).apply(null,arguments)},jI=e._LogicalAnd=function(){return(jI=e._LogicalAnd=e.asm.LogicalAnd).apply(null,arguments)},Ig=e._LogicalNot=function(){return(Ig=e._LogicalNot=e.asm.LogicalNot).apply(null,arguments)},Sg=e._LogicalOr=function(){return(Sg=e._LogicalOr=e.asm.LogicalOr).apply(null,arguments)},XI=e._LogicalXor=function(){return(XI=e._LogicalXor=e.asm.LogicalXor).apply(null,arguments)},YI=e._Max=function(){return(YI=e._Max=e.asm.Max).apply(null,arguments)},ZI=e._MaxPool=function(){return(ZI=e._MaxPool=e.asm.MaxPool).apply(null,arguments)},vg=e._Maximum=function(){return(vg=e._Maximum=e.asm.Maximum).apply(null,arguments)},Yk=e._Mean=function(){return(Yk=e._Mean=e.asm.Mean).apply(null,arguments)},JI=e._Min=function(){return(JI=e._Min=e.asm.Min).apply(null,arguments)},QI=e._Minimum=function(){return(QI=e._Minimum=e.asm.Minimum).apply(null,arguments)},tS=e._MirrorPad=function(){return(tS=e._MirrorPad=e.asm.MirrorPad).apply(null,arguments)},eS=e._Multiply=function(){return(eS=e._Multiply=e.asm.Multiply).apply(null,arguments)},rS=e._Neg=function(){return(rS=e._Neg=e.asm.Neg).apply(null,arguments)},nS=e._NonMaxSuppressionV3=function(){return(nS=e._NonMaxSuppressionV3=e.asm.NonMaxSuppressionV3).apply(null,arguments)},oS=e._NonMaxSuppressionV4=function(){return(oS=e._NonMaxSuppressionV4=e.asm.NonMaxSuppressionV4).apply(null,arguments)},sS=e._NonMaxSuppressionV5=function(){return(sS=e._NonMaxSuppressionV5=e.asm.NonMaxSuppressionV5).apply(null,arguments)},iS=e._NotEqual=function(){return(iS=e._NotEqual=e.asm.NotEqual).apply(null,arguments)},aS=e._OneHot=function(){return(aS=e._OneHot=e.asm.OneHot).apply(null,arguments)},lS=e._PadV2=function(){return(lS=e._PadV2=e.asm.PadV2).apply(null,arguments)},uS=e._Pow=function(){return(uS=e._Pow=e.asm.Pow).apply(null,arguments)},cS=e._Prelu=function(){return(cS=e._Prelu=e.asm.Prelu).apply(null,arguments)},pS=e._Prod=function(){return(pS=e._Prod=e.asm.Prod).apply(null,arguments)},mS=e._RealDiv=function(){return(mS=e._RealDiv=e.asm.RealDiv).apply(null,arguments)},fS=e._Relu=function(){return(fS=e._Relu=e.asm.Relu).apply(null,arguments)},dS=e._Relu6=function(){return(dS=e._Relu6=e.asm.Relu6).apply(null,arguments)},hS=e._ResizeBilinear=function(){return(hS=e._ResizeBilinear=e.asm.ResizeBilinear).apply(null,arguments)},gS=e._ResizeNearestNeighbor=function(){return(gS=e._ResizeNearestNeighbor=e.asm.ResizeNearestNeighbor).apply(null,arguments)},xS=e._Reverse=function(){return(xS=e._Reverse=e.asm.Reverse).apply(null,arguments)},yS=e._RotateWithOffset=function(){return(yS=e._RotateWithOffset=e.asm.RotateWithOffset).apply(null,arguments)},bS=e._Round=function(){return(bS=e._Round=e.asm.Round).apply(null,arguments)},wS=e._Rsqrt=function(){return(wS=e._Rsqrt=e.asm.Rsqrt).apply(null,arguments)},CS=e._ScatterNd=function(){return(CS=e._ScatterNd=e.asm.ScatterNd).apply(null,arguments)},IS=e._SelectV2=function(){return(IS=e._SelectV2=e.asm.SelectV2).apply(null,arguments)},SS=e._Sigmoid=function(){return(SS=e._Sigmoid=e.asm.Sigmoid).apply(null,arguments)},vS=e._Sin=function(){return(vS=e._Sin=e.asm.Sin).apply(null,arguments)},NS=e._Softmax=function(){return(NS=e._Softmax=e.asm.Softmax).apply(null,arguments)},TS=e._SparseFillEmptyRows=function(){return(TS=e._SparseFillEmptyRows=e.asm.SparseFillEmptyRows).apply(null,arguments)},kS=e._SparseReshape=function(){return(kS=e._SparseReshape=e.asm.SparseReshape).apply(null,arguments)},ES=e._SparseSegmentReduction=function(){return(ES=e._SparseSegmentReduction=e.asm.SparseSegmentReduction).apply(null,arguments)},_S=e._Sqrt=function(){return(_S=e._Sqrt=e.asm.Sqrt).apply(null,arguments)},AS=e._Square=function(){return(AS=e._Square=e.asm.Square).apply(null,arguments)},$S=e._SquaredDifference=function(){return($S=e._SquaredDifference=e.asm.SquaredDifference).apply(null,arguments)},DS=e._Step=function(){return(DS=e._Step=e.asm.Step).apply(null,arguments)},RS=e._StridedSlice=function(){return(RS=e._StridedSlice=e.asm.StridedSlice).apply(null,arguments)},FS=e._Sub=function(){return(FS=e._Sub=e.asm.Sub).apply(null,arguments)},OS=e._Sum=function(){return(OS=e._Sum=e.asm.Sum).apply(null,arguments)},PS=e._Tan=function(){return(PS=e._Tan=e.asm.Tan).apply(null,arguments)},LS=e._Tanh=function(){return(LS=e._Tanh=e.asm.Tanh).apply(null,arguments)},MS=e._Tile=function(){return(MS=e._Tile=e.asm.Tile).apply(null,arguments)},zS=e._TopK=function(){return(zS=e._TopK=e.asm.TopK).apply(null,arguments)},BS=e._Transform=function(){return(BS=e._Transform=e.asm.Transform).apply(null,arguments)},VS=e._Transpose=function(){return(VS=e._Transpose=e.asm.Transpose).apply(null,arguments)},GS=e.__FusedMatMul=function(){return(GS=e.__FusedMatMul=e.asm._FusedMatMul).apply(null,arguments)},WS=e._malloc=function(){return(WS=e._malloc=e.asm.malloc).apply(null,arguments)},US=e._free=function(){return(US=e._free=e.asm.free).apply(null,arguments)},HS=e.___errno_location=function(){return(HS=e.___errno_location=e.asm.__errno_location).apply(null,arguments)},Ng=e.stackSave=function(){return(Ng=e.stackSave=e.asm.stackSave).apply(null,arguments)},Tg=e.stackRestore=function(){return(Tg=e.stackRestore=e.asm.stackRestore).apply(null,arguments)},Vd=e.stackAlloc=function(){return(Vd=e.stackAlloc=e.asm.stackAlloc).apply(null,arguments)},qS=e.dynCall_iijjiiii=function(){return(qS=e.dynCall_iijjiiii=e.asm.dynCall_iijjiiii).apply(null,arguments)},KS=e.dynCall_jiji=function(){return(KS=e.dynCall_jiji=e.asm.dynCall_jiji).apply(null,arguments)};e.cwrap=dg;var Qc;zr=function K(){Qc||kg(),Qc||(zr=K)};function kg(K){if(K=K||a,qe>0||(Ae(),qe>0))return;function lt(){Qc||(Qc=!0,e.calledRun=!0,!G&&(We(),n(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),_n()))}e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),lt()},1)):lt()}if(e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();kg();var tp;s&&(tp={uncaughtException:process.listeners("uncaughtException").filter(function(K){return!s.uncaughtException.indexOf(K)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(K){return!s.unhandledRejection.indexOf(K)>-1})});var ep;if(typeof t!="undefined")ep=t;else if(typeof WasmBackendModuleThreadedSimd!="undefined")ep=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(tp){var jS=ep._dispose;ep._dispose=function(){jS(),tp.uncaughtException.forEach(function(K){process.removeListener("uncaughtException",K)}),tp.unhandledRejection.forEach(function(K){process.removeListener("unhandledRejection",K)})}}return t.ready}})();typeof dI=="object"&&typeof Lk=="object"?Lk.exports=Pk:typeof define=="function"&&define.amd?define([],function(){return Pk}):typeof dI=="object"&&(dI.WasmBackendModule=Pk)});var ra=class{constructor(t,e){this.backend=t,this.dataMover=e,this.data=new WeakMap,this.dataIdsCount=0}get(t){return this.data.has(t)||this.dataMover.moveData(this.backend,t),this.data.get(t)}set(t,e){this.dataIdsCount++,this.data.set(t,e)}has(t){return this.data.has(t)}delete(t){return this.dataIdsCount--,this.data.delete(t)}numDataIds(){return this.dataIdsCount}},zo=class{refCount(t){return $n("refCount")}incRef(t){return $n("incRef")}timerAvailable(){return!0}time(t){return $n("time")}read(t){return $n("read")}readSync(t){return $n("readSync")}readToGPU(t,e){return $n("readToGPU")}numDataIds(){return $n("numDataIds")}disposeData(t,e){return $n("disposeData")}write(t,e,n){return $n("write")}move(t,e,n,o,s){return $n("move")}createTensorFromTexture(t,e,n){return $n("createTensorFromTexture")}memory(){return $n("memory")}floatPrecision(){return $n("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return $n("dispose")}};function $n(r){throw new Error(`'${r}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function s1(r){let t=r.length,e=0;for(;t>0;)e=Math.random()*t|0,t--,Lg(r,t,e)}function MU(r,t){if(r.length!==t.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${r.length}Second array length was ${t.length}`);let e=r.length,n=0;for(;e>0;)n=Math.random()*e|0,e--,Lg(r,e,n),Lg(t,e,n)}function np(r,t,e){return Math.max(r,Math.min(t,e))}function zU(r){return r%2===0?r:r+1}function Lg(r,t,e){let n=r[t];r[t]=r[e],r[e]=n}function BU(r){let t=0;for(let e=0;ee+` Shapes ${r} and ${t} must match`)}function Yn(r){E(r!=null,()=>"The input to the tensor constructor must be a non-null value.")}function Bo(r,t=[],e=!1){if(t==null&&(t=[]),Array.isArray(r)||xr(r)&&!e)for(let n=0;n0,e,n){return new Promise((o,s)=>{let i=0,a=()=>{if(r()){o();return}i++;let u=t(i);if(e!=null&&i>=e){s();return}n!=null?n(a,u):setTimeout(a,u)};a()})}function jU(r,t){let e=1,n=-1;for(let s=0;s=0)e*=r[s];else if(r[s]===-1){if(n!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${n} and dim ${s}`);n=s}else if(r[s]<0)throw Error(`Shapes can not be < 0. Found ${r[s]} at dim ${s}`);if(n===-1){if(t>0&&t!==e)throw Error(`Size(${t}) must match the product of shape ${r}`);return r}if(e===0)throw Error(`Cannot infer the missing size in [${r}] when there are 0 elements`);if(t%e!==0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${e}`);let o=r.slice();return o[n]=t/e,o}function lr(r,t){let e=t.length;return r=r==null?t.map((n,o)=>o):[].concat(r),E(r.every(n=>n>=-e&&n`All values in axis param must be in range [-${e}, ${e}) but got axis ${r}`),E(r.every(n=>na(n)),()=>`All values in axis param must be integers but got axis ${r}`),r.map(n=>n<0?e+n:n)}function tv(r,t){let e=[],n=[],o=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||o?null:lr(t,r).sort(),i=0;for(let a=0;aa)&&r[a]===1&&(e.push(r[a]),n.push(a)),s[i]<=a&&i++}r[a]!==1&&(e.push(r[a]),n.push(a))}return{newShape:e,keptDims:n}}function ev(r,t){let e=null;if(r==null||r==="float32")e=new Float32Array(t);else if(r==="int32")e=new Int32Array(t);else if(r==="bool")e=new Uint8Array(t);else throw new Error(`Unknown data type ${r}`);return e}function rv(r,t){let e=null;if(r==null||r==="float32")e=new Float32Array(t);else if(r==="int32")e=new Int32Array(t);else if(r==="bool")e=new Uint8Array(t);else if(r==="string")e=new Array(t);else throw new Error(`Unknown data type ${r}`);return e}function nv(r,t){for(let e=0;et+=e.length),t}function Vo(r){return typeof r=="string"||r instanceof String}function i1(r){return typeof r=="boolean"}function a1(r){return typeof r=="number"}function op(r){return Array.isArray(r)?op(r[0]):r instanceof Float32Array?"float32":r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray?"int32":a1(r)?"float32":Vo(r)?"string":i1(r)?"bool":"float32"}function oi(r){return!!(r&&r.constructor&&r.call&&r.apply)}function sp(r,t){for(let e=t;e=0;--n)e[n]=e[n+1]*r[n+1];return e}function l1(r,t,e,n=!1){let o=new Array;if(t.length===1){let s=t[0]*(n?2:1);for(let i=0;iu*l)*(n?2:1);for(let u=0;uo*s)*(e?2:1);if(n===0)return[];if(n!==t.length)throw new Error(`[${r}] does not match the input size ${t.length}${e?" for a complex tensor":""}.`);return l1(0,r,t,e)}function Wd(r,t){let e=ip(r,t);for(let n=0;nn*o,1);if(t==null||t==="float32")return Ou(r,new Float32Array(e));if(t==="int32")return Ou(r,new Int32Array(e));if(t==="bool")return Ou(r,new Uint8Array(e));throw new Error(`Unknown data type ${t}`)}function Ud(r){r.forEach(t=>{E(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${r}].`)})}function ZU(r,t,e){if(t===0)return 0;if(t===1)return r[0];let n=r[r.length-1];for(let o=0;o{let[o,s]=n.split(":");this.urlFlags[o]=r4(o,s)})}};function t4(r){let t={};return r.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(e,...n)=>(e4(t,n[0],n[1]),n.join("="))),t}function e4(r,t,e){r[decodeURIComponent(t)]=decodeURIComponent(e||"")}function r4(r,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${r}.`)}function z(){return iv}var iv=null;function c1(r){iv=r}var av;function lv(){if(av==null){let r;if(typeof window!="undefined")r=window;else if(typeof global!="undefined")r=global;else if(typeof process!="undefined")r=process;else if(typeof self!="undefined")r=self;else throw new Error("Could not find a global object");av=r}return av}function n4(){let r=lv();return r._tfGlobals==null&&(r._tfGlobals=new Map),r._tfGlobals}function Kd(r,t){let e=n4();if(e.has(r))return e.get(r);{let n=t();return e.set(r,n),e.get(r)}}var ii="Abs",oa="Acos",sa="Acosh",Zn="Add",Go="AddN",ia="All",aa="Any",Wo="ArgMax",kl="ArgMin",la="Asin",ua="Asinh",ca="Atan",pa="Atanh",ma="Atan2",Uo="AvgPool",ap="AvgPoolGrad",El="AvgPool3D",lp="AvgPool3DGrad",Ho="BatchMatMul",ai="BatchToSpaceND",up="Bincount",p1="BroadcastTo",cp="BroadcastArgs",lo="Cast",qo="Ceil",uo="ClipByValue",pp="Complex",_l="ComplexAbs",li="Concat",Ko="Conv2D",mp="Conv2DBackpropFilter",jo="Conv2DBackpropInput",Al="Conv3D",fp="Conv3DBackpropFilterV2",dp="Conv3DBackpropInputV2",Xo="Cos",Yo="Cosh",fa="Cumprod",Zo="Cumsum",da="CropAndResize",hp="DenseBincount",ha="DepthToSpace",Jo="DepthwiseConv2dNative",gp="DepthwiseConv2dNativeBackpropFilter",xp="DepthwiseConv2dNativeBackpropInput",yp="Diag",$l="Dilation2D",jd="Dilation2DBackpropInput",Xd="Dilation2DBackpropFilter",Qo="RealDiv",bp="Einsum",ts="Elu",wp="EluGrad",ga="Erf",xa="Equal",es="Exp",ui="ExpandDims",ya="Expm1",Cp="FFT",Dl="Fill",ba="FlipLeftRight",rs="Floor",ns="FloorDiv",os="FusedBatchNorm",ci="GatherV2",wa="GatherNd",Ca="Greater",ss="GreaterEqual",co="Identity",Ip="IFFT",Sp="Imag",Ia="IsFinite",Sa="IsInf",va="IsNan",is="LeakyRelu",Na="Less",Ta="LessEqual",vp="LinSpace",as="Log",ka="Log1p",Ea="LogicalAnd",_a="LogicalNot",Aa="LogicalOr",m1="LogicalXor",f1="LogSoftmax",xlt="LowerBound",Rl="LRN",Np="LRNGrad",ls="Max",us="Maximum",cs="MaxPool",Tp="MaxPoolGrad",Fl="MaxPool3D",kp="MaxPool3DGrad",Ep="MaxPoolWithArgmax",ps="Mean",ms="Min",fs="Minimum",ds="MirrorPad",$a="Mod",_p="Multinomial",hs="Multiply",pi="Neg",Da="NotEqual",Ra="NonMaxSuppressionV3",Fa="NonMaxSuppressionV4",Oa="NonMaxSuppressionV5",mi="OnesLike",gs="OneHot",fi="Pack",xs="PadV2",ylt="Pool",ys="Pow",bs="Prelu",ws="Prod",Ap="RaggedGather",$p="RaggedRange",Dp="RaggedTensorToTensor",Ol="Range",Rp="Real",Pa="Reciprocal",Cs="Relu",di="Reshape",Is="ResizeNearestNeighbor",Fp="ResizeNearestNeighborGrad",Ss="ResizeBilinear",Op="ResizeBilinearGrad",vs="Relu6",Ns="Reverse",Ts="Round",ks="Rsqrt",La="ScatterNd",Pp="SearchSorted",hi="Select",Ma="Selu",gi="Slice",Es="Sin",za="Sinh",Ba="Sign",_s="Sigmoid",Va="Softplus",As="Sqrt",$s="Sum",xi="SpaceToBatchND",yi="SplitV",Ds="Softmax",Pl="SparseFillEmptyRows",Ga="SparseReshape",Ll="SparseSegmentMean",Ml="SparseSegmentSum",Lp="SparseToDense",Rs="SquaredDifference",zl="Square",Wa="StridedSlice",Bl="StringNGrams",Vl="StringSplit",Gl="StringToHashBucketFast",Fs="Sub",Os="Tan",Ps="Tanh",Jn="Tile",Ua="TopK",Ha="Transform",Qn="Transpose",Mp="Unique",bi="Unpack",Wl="UnsortedSegmentSum",blt="UpperBound",wi="ZerosLike",po="Step",Yd="FromPixels",qa="RotateWithOffset",Ci="_FusedMatMul",Ii="FusedConv2D",Si="FusedDepthwiseConv2D";function vi(...r){z().getBool("IS_TEST")||z().getBool("PROD")||console.warn(...r)}function o4(...r){z().getBool("IS_TEST")||z().getBool("PROD")||console.log(...r)}var zp=Kd("kernelRegistry",()=>new Map),Zd=Kd("gradRegistry",()=>new Map);function Jd(r,t){let e=cv(r,t);return zp.get(e)}function uv(r){return Zd.get(r)}function zg(r){let t=zp.entries(),e=[];for(;;){let{done:n,value:o}=t.next();if(n)break;let[s,i]=o,[a]=s.split("_");a===r&&e.push(i)}return e}function Lu(r){let{kernelName:t,backendName:e}=r,n=cv(t,e);zp.has(n)&&vi(`The kernel '${t}' for backend '${e}' is already registered`),zp.set(n,r)}function h1(r){let{kernelName:t}=r;Zd.has(t)&&z().getBool("DEBUG")&&vi(`Overriding the gradient for '${t}'`),Zd.set(t,r)}function vlt(r,t){let e=cv(r,t);if(!zp.has(e))throw new Error(`The kernel '${r}' for backend '${t}' is not registered`);zp.delete(e)}function Nlt(r){if(!Zd.has(r))throw new Error(`The gradient '${r}' for backend is not registered`);Zd.delete(r)}function Tlt(r,t){zg(r).forEach(n=>{let o=Object.assign({},n,{backendName:t});Lu(o)})}function cv(r,t){return`${t}_${r}`}var y={};Wt(y,{arraysEqual:()=>Dn,assert:()=>E,assertNonNegativeIntegerDimensions:()=>Ud,assertNonNull:()=>Yn,assertShapesMatch:()=>$e,bytesFromStringArray:()=>sv,bytesPerElement:()=>Mg,checkConversionForErrors:()=>nv,clamp:()=>np,computeStrides:()=>si,createScalarValue:()=>p4,createShuffledIndices:()=>qU,decodeString:()=>Wp,distSquared:()=>GU,encodeString:()=>Hl,fetch:()=>f4,fingerPrint64:()=>c4,flatten:()=>Bo,getArrayFromDType:()=>rv,getTypedArrayFromDType:()=>ev,hasEncodingLoss:()=>XU,hexToLong:()=>Qd,indexToLoc:()=>JU,inferDtype:()=>op,inferFromImplicitShape:()=>jU,isBoolean:()=>i1,isFunction:()=>oi,isInt:()=>na,isNumber:()=>a1,isPromise:()=>Hd,isScalarShape:()=>WU,isString:()=>Vo,isTypedArray:()=>xr,isValidDtype:()=>ov,locToIndex:()=>ZU,makeOnesTypedArray:()=>Wd,makeZerosNestedTypedArray:()=>YU,makeZerosTypedArray:()=>ip,nearestDivisor:()=>sp,nearestLargerEven:()=>zU,now:()=>Gu,parseAxisParam:()=>lr,randUniform:()=>VU,repeatedTry:()=>KU,rightPad:()=>Pu,shuffle:()=>s1,shuffleCombo:()=>MU,sizeFromShape:()=>Jt,sizeToSquarishShape:()=>HU,squeezeShape:()=>tv,sum:()=>BU,swap:()=>Lg,tanh:()=>UU,toNestedArray:()=>Ou,toTypedArray:()=>Gp});var dv=Tl(T1());var Vu=dv.default||dv;function Qd(r){return Vu.fromString(r,!0,16)}var E1=Qd("c3a5c85c97cb3127"),Bu=Qd("b492b66fbe98f273"),nn=Qd("9ae16a3b2f90404f");function fv(r){return r.xor(r.shru(47))}function _1(r,t,e){let n=r.slice(t,t+e);return Vu.fromBytes(Array.from(n),!0,!0)}function Pe(r,t){return _1(r,t,8)}function k1(r,t){return _1(r,t,4)}function kr(r,t){return t===0?r:r.shru(t).or(r.shl(64-t))}function Ul(r,t,e=Qd("9ddfea08eb382d69")){let n=r.xor(t).mul(e);n=n.xor(n.shru(47));let o=t.xor(n).mul(e);return o=o.xor(o.shru(47)),o=o.mul(e),o}function i4(r,t,e,n,o,s){o=o.add(r),s=kr(s.add(o).add(n),21);let i=o;return o=o.add(t),o=o.add(e),s=s.add(kr(o,44)),[o.add(n),s.add(i)]}function Vg(r,t,e,n){return i4(Pe(r,t),Pe(r,t+8),Pe(r,t+16),Pe(r,t+24),e,n)}function a4(r,t=r.length){if(t>=8){let e=nn.add(t*2),n=Pe(r,0).add(nn),o=Pe(r,t-8),s=kr(o,37).mul(e).add(n),i=kr(n,25).add(o).mul(e);return Ul(s,i,e)}if(t>=4){let e=nn.add(t*2),n=k1(r,0);return Ul(n.shl(3).add(t),k1(r,t-4),e)}if(t>0){let e=r[0],n=r[t>>1],o=r[t-1],s=e+(n<<8),i=t+(o<<2);return fv(nn.mul(s).xor(E1.mul(i))).mul(nn)}return nn}function l4(r,t=r.length){let e=nn.add(t*2),n=Pe(r,0).mul(Bu),o=Pe(r,8),s=Pe(r,t-8).mul(e),i=Pe(r,t-16).mul(nn);return Ul(kr(n.add(o),43).add(kr(s,30)).add(i),n.add(kr(o.add(nn),18)).add(s),e)}function u4(r,t=r.length){let e=nn.add(t*2),n=Pe(r,0).mul(nn),o=Pe(r,8),s=Pe(r,t-8).mul(e),i=Pe(r,t-16).mul(nn),a=kr(n.add(o),43).add(kr(s,30)).add(i),u=Ul(a,n.add(kr(o.add(nn),18)).add(s),e),l=Pe(r,16).mul(e),c=Pe(r,24),p=a.add(Pe(r,t-32)).mul(e),m=u.add(Pe(r,t-24)).mul(e);return Ul(kr(l.add(c),43).add(kr(p,30)).add(m),l.add(kr(c.add(n),18)).add(p),e)}function c4(r,t=r.length){let e=Vu.fromNumber(81,!0);if(t<=32)return t<=16?a4(r,t):l4(r,t);if(t<=64)return u4(r,t);let n=e,o=e.mul(Bu).add(113),s=fv(o.mul(nn).add(113)).mul(nn),i=[Vu.UZERO,Vu.UZERO],a=[Vu.UZERO,Vu.UZERO];n=n.mul(nn).add(Pe(r,0));let u=0,l=(t-1>>6)*64,c=l+(t-1&63)-63;do n=kr(n.add(o).add(i[0]).add(Pe(r,u+8)),37).mul(Bu),o=kr(o.add(i[1]).add(Pe(r,u+48)),42).mul(Bu),n=n.xor(a[1]),o=o.add(i[0]).add(Pe(r,u+40)),s=kr(s.add(a[0]),33).mul(Bu),i=Vg(r,u,i[1].mul(Bu),n.add(a[0])),a=Vg(r,u+32,s.add(a[1]),o.add(Pe(r,u+16))),[s,n]=[n,s],u+=64;while(u!==l);let p=Bu.add(s.and(255).shl(1));return u=c,a[0]=a[0].add(t-1&63),i[0]=i[0].add(a[0]),a[0]=a[0].add(i[0]),n=kr(n.add(o).add(i[0]).add(Pe(r,u+8)),37).mul(p),o=kr(o.add(i[1]).add(Pe(r,u+48)),42).mul(p),n=n.xor(a[1].mul(9)),o=o.add(i[0].mul(9).add(Pe(r,u+40))),s=kr(s.add(a[0]),33).mul(p),i=Vg(r,u,i[1].mul(p),n.add(a[0])),a=Vg(r,u+32,s.add(a[1]),o.add(Pe(r,u+16))),[s,n]=[n,s],Ul(Ul(i[0],a[0],p).add(fv(o).mul(E1)).add(s),Ul(i[1],a[1],p).add(n),p)}function p4(r,t){return t==="string"?Hl(r):Gp([r],t)}function m4(r,t){return r instanceof Float32Array&&t==="float32"||r instanceof Int32Array&&t==="int32"||r instanceof Uint8Array&&t==="bool"}function Gp(r,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(r)&&(r=Bo(r)),z().getBool("DEBUG")&&nv(r,t),m4(r,t))return r;if(t==null||t==="float32"||t==="complex64")return new Float32Array(r);if(t==="int32")return new Int32Array(r);if(t==="bool"){let e=new Uint8Array(r.length);for(let n=0;n{o=n()},i,a=Gu();if(this.backendTimer.timerAvailable())i=this.backendTimer.time(s);else{s();for(let l of o)l.dataSync();i=Promise.resolve({kernelMs:Gu()-a})}if(z().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let l=0;l{d4(p,c.dtype,t)})}return{kernelName:t,outputs:o,inputs:e,timeMs:i.then(l=>l.kernelMs),extraInfo:i.then(l=>l.getExtraProfileInfo!=null?l.getExtraProfileInfo():"")}}logKernelProfile(t){let{kernelName:e,outputs:n,timeMs:o,inputs:s,extraInfo:i}=t;n.forEach(a=>{Promise.all([a.data(),o,i]).then(u=>{this.logger.logKernelProfile(e,a,u[0],u[1],s,u[2])})})}};function d4(r,t,e){if(t!=="float32")return!1;for(let n=0;n0?h:""} `}}console.log(`%c${u} %c${a} %c${l}D ${p} %c${c} %c${m} %c${i}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function A1(r,t,e){let n={},o={};for(let u=0;un[h.id]=!0),f=!0,o[l.id]=!0;break}if(f)break}}let s={};s[e.id]=!0;let i={};for(let u=r.length-1;u>=0;u--){let l=r[u],c=l.inputs;for(let p=0;p=0;o--){let s=t[o],i=[];if(s.outputs.forEach(u=>{let l=r[u.id];l!=null?i.push(l):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let a=s.gradient(i);for(let u in s.inputs){if(!(u in a))throw new Error(`Cannot backprop through input ${u}. Available gradients found: ${Object.keys(a)}.`);let l=e(()=>a[u]());if(l.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${u} must have 'float32' dtype, but has '${l.dtype}'`);let c=s.inputs[u];if(!Dn(l.shape,c.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${u}' has shape '${l.shape}', which does not match the shape of the input '${c.shape}'`);if(r[c.id]==null)r[c.id]=l;else{let p=r[c.id];r[c.id]=n(p,l),p.dispose()}}}}var D1=20,th=3,gv=7;function R1(r,t,e,n){let o=si(t),s=h4(r,t,e,o),i=t.length,a=Wg(r,t,e,o,s),u=["Tensor"];return n&&(u.push(` dtype: ${e}`),u.push(` rank: ${i}`),u.push(` shape: [${t}]`),u.push(" values:")),u.push(a.map(l=>" "+l).join(` `)),u.join(` -`)}function h4(r,t,e,n){let o=Jt(t),s=n[n.length-1],i=new Array(s).fill(0),a=t.length,u=e==="complex64"?rh(r):r;if(a>1)for(let l=0;lD1){let g=th*i,x=Array.from(r.slice(0,g)),b=Array.from(r.slice((a-th)*i,a*i));return e==="complex64"&&(x=rh(x),b=rh(b)),["["+x.map((w,C)=>eh(w,o[C],e)).join(", ")+", ..., "+b.map((w,C)=>eh(w,o[a-th+C],e)).join(", ")+"]"]}let h=e==="complex64"?rh(r):Array.from(r);return["["+h.map((g,x)=>eh(g,o[x],e)).join(", ")+"]"]}let l=t.slice(1),c=n.slice(1),p=n[0]*i,m=[];if(a>D1){for(let h=0;h1)for(let l=0;lD1){let g=th*i,x=Array.from(r.slice(0,g)),b=Array.from(r.slice((a-th)*i,a*i));return e==="complex64"&&(x=rh(x),b=rh(b)),["["+x.map((w,C)=>eh(w,o[C],e)).join(", ")+", ..., "+b.map((w,C)=>eh(w,o[a-th+C],e)).join(", ")+"]"]}return["["+(e==="complex64"?rh(r):Array.from(r)).map((g,x)=>eh(g,o[x],e)).join(", ")+"]"]}let l=t.slice(1),c=n.slice(1),p=n[0]*i,m=[];if(a>D1){for(let h=0;h`Length of values '${o}' does not match the size inferred by the shape '${this.size}'.`)}if(e==="complex64")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||r0(e,this.size),this.strides=si(t)}set(t,...e){e.length===0&&(e=[0]),E(e.length===this.rank,()=>`The number of provided coordinates (${e.length}) must match the rank (${this.rank})`);let n=this.locToIndex(e);this.values[n]=t}get(...t){t.length===0&&(t=[0]);let e=0;for(let o of t){if(o<0||o>=this.shape[e]){let s=`Requested out of range element at ${t}. Buffer shape=${this.shape}`;throw new Error(s)}e++}let n=t[t.length-1];for(let o=0;oWp(n))}catch(n){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return t}dataToGPU(t){return this.throwIfDisposed(),Ms().readToGPU(this.dataId,t)}dataSync(){this.throwIfDisposed();let t=Ms().readSync(this.dataId);if(this.dtype==="string")try{return t.map(e=>Wp(e))}catch(e){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return t}async bytes(){this.throwIfDisposed();let t=await Ms().read(this.dataId);return this.dtype==="string"?t:new Uint8Array(t.buffer)}dispose(){this.isDisposed||(Ms().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(t=!1){return Up.print(this,t)}clone(){return this.throwIfDisposed(),Up.clone(this)}toString(t=!1){let e=this.dataSync();return R1(e,this.shape,this.dtype,t)}cast(t){return this.throwIfDisposed(),Up.cast(this,t)}variable(t=!0,e,n){return this.throwIfDisposed(),Ms().makeVariable(this,t,e,n)}};Object.defineProperty(Ft,Symbol.hasInstance,{value:r=>!!r&&r.data!=null&&r.dataSync!=null&&r.throwIfDisposed!=null});function O(){return Kd("Tensor",()=>Ft)}O();var Ka=class extends Ft{constructor(t,e,n,o){super(t.shape,t.dtype,t.dataId,o),this.trainable=e,this.name=n}assign(t){if(t.dtype!==this.dtype)throw new Error(`dtype of the new value (${t.dtype}) and previous value (${this.dtype}) must match`);if(!Dn(t.shape,this.shape))throw new Error(`shape of the new value (${t.shape}) and previous value (${this.shape}) must match`);Ms().disposeTensor(this),this.dataId=t.dataId,Ms().incRef(this,null)}dispose(){Ms().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(Ka,Symbol.hasInstance,{value:r=>r instanceof Ft&&r.assign!=null&&r.assign instanceof Function});var go={};Wt(go,{assertTypesMatch:()=>I0,getTensorsInContainer:()=>nh,isTensorInList:()=>y4,makeTypesMatch:()=>Ut});var x0;(function(r){r.R0="R0",r.R1="R1",r.R2="R2",r.R3="R3",r.R4="R4",r.R5="R5",r.R6="R6"})(x0||(x0={}));var y0;(function(r){r.float32="float32",r.int32="int32",r.bool="int32",r.complex64="complex64"})(y0||(y0={}));var b0;(function(r){r.float32="float32",r.int32="int32",r.bool="bool",r.complex64="complex64"})(b0||(b0={}));var w0;(function(r){r.float32="float32",r.int32="float32",r.bool="float32",r.complex64="complex64"})(w0||(w0={}));var C0;(function(r){r.float32="complex64",r.int32="complex64",r.bool="complex64",r.complex64="complex64"})(C0||(C0={}));var x4={float32:w0,int32:y0,bool:b0,complex64:C0};function sr(r,t){if(r==="string"||t==="string"){if(r==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${r} with ${t}`)}return x4[r][t]}function Wu(r){return sr(r,"int32")}function Ut(r,t){if(r.dtype===t.dtype)return[r,t];let e=sr(r.dtype,t.dtype);return[r.cast(e),t.cast(e)]}function I0(r,t){E(r.dtype===t.dtype,()=>`The dtypes of the first(${r.dtype}) and second(${t.dtype}) input must match`)}function y4(r,t){return t.some(e=>e.id===r.id)}function nh(r){let t=[];return M1(r,t,new Set),t}function M1(r,t,e){if(r==null)return;if(r instanceof Ft){t.push(r);return}if(!b4(r))return;let n=r;for(let o in n){let s=n[o];e.has(s)||(e.add(s),M1(s,t,e))}}function b4(r){return Array.isArray(r)||typeof r=="object"}function S0(r){return r.kernelName!=null}var Ug=class{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(t=>t.name)))}}}dispose(){for(let t in this.registeredVariables)this.registeredVariables[t].dispose()}},ql=class{constructor(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Ug}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let t=this.getSortedBackends();for(let e=0;e{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(t){zg(t).forEach(n=>{n.disposeFunc!=null&&n.disposeFunc(this.registry[t])})}initializeBackend(t){let e=this.registryFactory[t];if(e==null)throw new Error(`Cannot initialize backend ${t}, no registration found.`);try{let n=e.factory();if(n&&!(n instanceof zo)&&typeof n.then=="function"){let o=++this.pendingBackendInitId,s=n.then(i=>o(othis.registryFactory[e].priority-this.registryFactory[t].priority)}initializeBackendsAndReturnBest(){let t=this.getSortedBackends();for(let e=0;ethis.startScope(n),()=>this.endScope(o),()=>(o=e(),o instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),o))}scopedRun(t,e,n){t();try{let o=n();return e(),o}catch(o){throw e(),o}}nextTensorId(){return ql.nextTensorId++}nextVariableId(){return ql.nextVariableId++}clone(t){let e=k.runKernel(co,{x:t}),n={x:t},o=i=>({x:()=>{let a="float32",u={x:i},l={dtype:a};return k.runKernel(lo,u,l)}}),s=[];return this.addTapeNode(this.state.activeScope.name,n,[e],o,s,{}),e}runKernel(t,e,n){if(this.backendName==null&&this.backend,!(Jd(t,this.backendName)!=null))throw new Error(`Kernel '${t}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:t,inputs:e,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(t,e,n){let o=this.backend.numDataIds(),s=0;n.forEach(u=>{s+=u.dtype==="complex64"?3:1});let i=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],a=o-e-s-i;if(a>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${a} data ids) after running '${t}'`)}runKernelFunc(t){let e,n=[],o=this.isTapeOn(),s=this.state.numBytes,i=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let a;this.backendName==null&&this.backend;let u,l=S0(t)?t.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(S0(t)){let{kernelName:d,inputs:h,attrs:g}=t;this.backendName==null&&this.backend;let x=Jd(d,this.backendName);E(x!=null,()=>`Cannot find registered kernel '${d}' for backend '${this.backendName}'`),a=()=>{let b=this.backend.numDataIds();u=x.kernelFunc({inputs:h,attrs:g,backend:this.backend});let w=Array.isArray(u)?u:[u];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(d,b,w);let C=w.map(N=>N.rank!=null?N:this.makeTensorFromTensorInfo(N));if(o){let N=this.getTensorsForGradient(d,h,C);n=this.saveTensorsForBackwardMode(N)}return C}}else{let{forwardFunc:d}=t,h=g=>{!o||(n=g.map(x=>this.keep(this.clone(x))))};a=()=>{let g=this.backend.numDataIds();u=this.tidy(()=>d(this.backend,h));let x=Array.isArray(u)?u:[u];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,g,x),x}}let{inputs:c,attrs:p}=t,m=S0(t)?null:t.backwardsFunc,f;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?e=a():(f=this.profiler.profileKernel(l,c,()=>a()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(f),e=f.outputs)}),o&&this.addTapeNode(l,c,e,m,n,p),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-s,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-i,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(d=>c[d]!=null?c[d].shape:null),outputShapes:e.map(d=>d.shape),kernelTimeMs:f.timeMs,extraInfo:f.extraInfo}),Array.isArray(u)?e:e[0]}saveTensorsForBackwardMode(t){return t.map(n=>this.keep(this.clone(n)))}getTensorsForGradient(t,e,n){let o=u0(t);if(o!=null){let s=o.inputsToSave||[],i=o.outputsToSave||[],a;o.saveAllInputs?(E(Array.isArray(e),()=>"saveAllInputs is true, expected inputs to be an array."),a=Object.keys(e).map(l=>e[l])):a=s.map(l=>e[l]);let u=n.filter((l,c)=>i[c]);return a.concat(u)}return[]}makeTensor(t,e,n,o){if(t==null)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",o=o||this.backend;let s=t;n==="string"&&Vo(t[0])&&(s=t.map(u=>Hl(u)));let i=o.write(s,e,n),a=new Ft(e,n,i,this.nextTensorId());if(this.trackTensor(a,o),n==="string"){let u=this.state.tensorInfo.get(i),l=s0(s);this.state.numBytes+=l-u.bytes,u.bytes=l}return a}makeTensorFromDataId(t,e,n,o){n=n||"float32";let s={dataId:t,shape:e,dtype:n};return this.makeTensorFromTensorInfo(s,o)}makeTensorFromTensorInfo(t,e){let{dataId:n,shape:o,dtype:s}=t,i=new Ft(o,s,n,this.nextTensorId());return this.trackTensor(i,e),i}makeVariable(t,e=!0,n,o){n=n||this.nextVariableId().toString(),o!=null&&o!==t.dtype&&(t=t.cast(o));let s=new Ka(t,e,n,this.nextTensorId());if(this.state.registeredVariables[s.name]!=null)throw new Error(`Variable with name ${s.name} was already registered`);return this.state.registeredVariables[s.name]=s,this.incRef(s,this.backend),s}trackTensor(t,e){this.state.numTensors++,t.dtype==="string"&&this.state.numStringTensors++;let n=0;t.dtype!=="complex64"&&t.dtype!=="string"&&(n=t.size*Mg(t.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(t.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(t.dataId,{backend:e||this.backend,dtype:t.dtype,shape:t.shape,bytes:n})),t instanceof Ka||this.track(t)}incRef(t,e){this.trackTensor(t,e),this.backend.incRef(t.dataId)}removeDataId(t,e){this.state.tensorInfo.has(t)&&this.state.tensorInfo.get(t).backend===e&&(this.state.tensorInfo.delete(t),this.state.numDataBuffers--)}disposeTensor(t){if(!this.state.tensorInfo.has(t.dataId))return;let e=this.state.tensorInfo.get(t.dataId);if(this.state.numTensors--,t.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=e.bytes),t.dtype!=="complex64"&&t.dtype!=="string"){let n=t.size*Mg(t.dtype);this.state.numBytes-=n}e.backend.disposeData(t.dataId)&&this.removeDataId(t.dataId,e.backend)}disposeVariables(){for(let t in this.state.registeredVariables){let e=this.state.registeredVariables[t];this.disposeVariable(e)}}disposeVariable(t){this.disposeTensor(t),this.state.registeredVariables[t.name]!=null&&delete this.state.registeredVariables[t.name]}memory(){let t=this.backend.memory();return t.numTensors=this.state.numTensors,t.numDataBuffers=this.state.numDataBuffers,t.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(t.unreliable=!0,t.reasons==null&&(t.reasons=[]),t.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),t}async profile(t){this.state.profiling=!0;let e=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await t(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(o=>o.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-e,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let o of this.state.activeProfile.kernels)o.kernelTimeMs=await o.kernelTimeMs,o.extraInfo=await o.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(t,e,n,o,s,i){let a={id:this.state.nextTapeNodeId++,kernelName:t,inputs:e,outputs:n,saved:s},u=u0(t);u!=null&&(o=u.gradFunc),o!=null&&(a.gradient=l=>(l=l.map((c,p)=>{if(c==null){let m=n[p],f=ip(m.size,m.dtype);return this.makeTensor(f,m.shape,m.dtype)}return c}),o(l.length>1?l:l[0],s,i))),this.state.activeTape.push(a)}keep(t){return t.kept=!0,t}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(t){let e={track:[],name:"unnamed scope",id:this.state.nextScopeId++};t&&(e.name=t),this.state.scopeStack.push(e),this.state.activeScope=e}endScope(t){let e=nh(t),n=new Set(e.map(s=>s.id));for(let s=0;s{!s.kept&&s.scopeId===o.id&&this.track(s)})}gradients(t,e,n,o=!1){if(E(e.length>0,()=>"gradients() received an empty list of xs."),n!=null&&n.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);let s=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",t));E(s instanceof Ft,()=>"The result y returned by f() must be a tensor.");let i=A1(this.state.activeTape,e,s);if(!o&&i.length===0&&e.length>0)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",()=>{let a={};a[s.id]=n==null?w4(s.shape):n,$1(a,i,l=>this.tidy(l),C4);let u=e.map(l=>a[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let c of l.saved)c.dispose()}),this.state.activeTape=null),{value:s,grads:u}})}customGrad(t){return E(oi(t),()=>"The f passed in customGrad(f) must be a function."),(...e)=>{E(e.every(a=>a instanceof Ft),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n,o={};e.forEach((a,u)=>{o[u]=a});let s=(a,u)=>(n=t(...e,u),E(n.value instanceof Ft,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),E(oi(n.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),n.value),i=(a,u)=>{let l=n.gradFunc(a,u),c=Array.isArray(l)?l:[l];E(c.length===e.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(...)."),E(c.every(m=>m instanceof Ft),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let p={};return c.forEach((m,f)=>{p[f]=()=>m}),p};return this.runKernelFunc({forwardFunc:s,backwardsFunc:i,inputs:o})}}readSync(t){return this.state.tensorInfo.get(t).backend.readSync(t)}read(t){return this.state.tensorInfo.get(t).backend.read(t)}readToGPU(t,e){return this.state.tensorInfo.get(t).backend.readToGPU(t,e)}async time(t){let e=Gu(),n=await this.backend.time(t);return n.wallMs=Gu()-e,n}track(t){return this.state.activeScope!=null&&(t.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(t)),t}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new Ug;for(let t in this.registry)this.disposeRegisteredKernels(t),this.registry[t].dispose(),delete this.registry[t];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};ql.nextTensorId=0;ql.nextVariableId=0;function w4(r){let t=Wd(Jt(r),"float32");return k.makeTensor(t,r,"float32")}function v0(){let r=l0();if(r._tfengine==null){let t=new qd(r);r._tfengine=new ql(t)}return c1(r._tfengine.ENV),O1(()=>r._tfengine),r._tfengine}var k=v0();function C4(r,t){let e={a:r,b:t};return k.runKernel(Zn,e)}var Kl={};Wt(Kl,{isBrowser:()=>T0,isMobile:()=>v4,mockIsMobile:()=>S4});function I4(){return typeof navigator!="undefined"&&navigator!=null}var N0;function S4(r){N0=r}function v4(r){if(N0!==void 0)return N0;if(r||I4()){if(r||(r=navigator),r.product==="ReactNative")return!0;let t=r.userAgent||r.vendor||(typeof window!="undefined"?window.opera:"");if(!t){let e=r;return e.userAgentData&&e.userAgentData.mobile}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(t)||/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(t.substr(0,4))}return!1}function T0(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var On=z();On.registerFlag("DEBUG",()=>!1,r=>{r&&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.")});On.registerFlag("IS_BROWSER",()=>T0());On.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");On.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));On.registerFlag("PROD",()=>!1);On.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>On.getBool("DEBUG"));On.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);On.registerFlag("IS_TEST",()=>!1);On.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);On.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);On.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);On.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);On.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function Br(r,t){let e=r;if(xr(r))return t==="string"?[]:[r.length];if(typeof r=="object"&&"texture"in r){let o=r.channels||"RGBA";return[r.height,r.width*o.length]}if(!Array.isArray(r))return[];let n=[];for(;Array.isArray(e)||xr(e)&&t!=="string";)n.push(e.length),e=e[0];return Array.isArray(r)&&z().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&B1(r,n,[]),n}function B1(r,t,e){if(e=e||[],!Array.isArray(r)&&!xr(r)){E(t.length===0,()=>`Element arr[${e.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}E(t.length>0,()=>`Element arr[${e.join("][")}] should be a primitive, but is an array of ${r.length} elements`),E(r.length===t[0],()=>`Element arr[${e.join("][")}] should have ${t[0]} elements, but has ${r.length} elements`);let n=t.slice(1);for(let o=0;o=0&&(o=n),z1(n,o,t,e),r==null||!xr(r)&&!Array.isArray(r)&&typeof r!="number"&&typeof r!="boolean"&&typeof r!="string"){let u=r==null?"null":r.constructor.name;throw new Error(`Argument '${t}' passed to '${e}' must be a Tensor or TensorLike, but got '${u}'`)}let s=Br(r,o);!xr(r)&&!Array.isArray(r)&&(r=[r]);let a=o!=="string"?Gp(r,o):Bo(r,[],!0);return k.makeTensor(a,s,o)}function ja(r,t,e,n="numeric"){if(!Array.isArray(r))throw new Error(`Argument ${t} passed to ${e} must be a \`Tensor[]\` or \`TensorLike[]\``);return r.map((s,i)=>I(s,`${t}[${i}]`,e,n))}var k0="__op";function T(r){let t=Object.keys(r);if(t.length!==1)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 e=t[0],n=r[e];e.endsWith("_")&&(e=e.substring(0,e.length-1)),e=e+k0;let o=(...s)=>{k.startScope(e);try{let i=n(...s);return Hd(i)&&console.error("Cannot return a Promise inside of tidy."),k.endScope(i),i}catch(i){throw k.endScope(null),i}};return Object.defineProperty(o,"name",{value:e,configurable:!0}),o}function N4(r,t){let e=I(r,"real","complex"),n=I(t,"imag","complex");$e(e.shape,n.shape,`real and imag shapes, ${e.shape} and ${n.shape}, must match in call to tf.complex().`);let o={real:e,imag:n};return k.runKernel(pp,o)}var wn=T({complex_:N4});function on(r,t,e,n){if(n==null&&(n=op(r)),n==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(typeof r=="object"&&"texture"in r){if(n!=="float32"&&n!=="int32")throw new Error(`Creating tensor from texture only supports 'float32'|'int32' dtype, while the dtype is ${n}.`);return r.channels=r.channels||"RGBA",k.backend.createTensorFromTexture(r,t||e,n)}if(!xr(r)&&!Array.isArray(r)&&typeof r!="number"&&typeof r!="boolean"&&typeof r!="string")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(t!=null){Ud(t);let o=Jt(t),s=Jt(e);E(o===s,()=>`Based on the provided shape, [${t}], the tensor should have ${o} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${e}) does not match the provided shape (${t}). `)}}return!xr(r)&&!Array.isArray(r)&&(r=[r]),t=t||e,r=n!=="string"?Gp(r,n):Bo(r,[],!0),k.makeTensor(r,t,n)}function ur(r,t,e){let n=Br(r,e);return on(r,t,n,e)}var oh={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};var Hg=4;async function G1(r,t){let e=[],n=[],o=Array.isArray(r)?r.map(i=>i.name):Object.keys(r);for(let i=0;i{let m=await u.bytes(),f=m.reduce((g,x)=>g+x.length,0)+Hg*m.length,d=new Uint8Array(f),h=0;for(let g=0;g{if(t+=s.byteLength,e.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let n=new Uint8Array(t),o=0;return e.forEach(s=>{n.set(new Uint8Array(s.buffer),o),o+=s.byteLength}),n.buffer}var E0=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function V1(r){return E0?Buffer.byteLength(r):new Blob([r]).size}function W1(r){if(E0)return Buffer.from(r).toString("base64");let t=new Uint8Array(r),e="";for(let n=0,o=t.length;n{t+=o.byteLength});let e=new Uint8Array(t),n=0;return r.forEach(o=>{e.set(new Uint8Array(o),n),n+=o.byteLength}),e.buffer}function _0(r){let t="/";for(r=r.trim();r.endsWith(t);)r=r.slice(0,r.length-1);let e=r.split(t);return e[e.length-1]}function Kg(r,t){let e={modelTopology:r.modelTopology,format:r.format,generatedBy:r.generatedBy,convertedBy:r.convertedBy,weightsManifest:t};return r.signature!=null&&(e.signature=r.signature),r.userDefinedMetadata!=null&&(e.userDefinedMetadata=r.userDefinedMetadata),r.modelInitializer!=null&&(e.modelInitializer=r.modelInitializer),r.initializerSignature!=null&&(e.initializerSignature=r.initializerSignature),r.trainingConfig!=null&&(e.trainingConfig=r.trainingConfig),e}function A0(r,t,e){let n={modelTopology:r.modelTopology,format:r.format,generatedBy:r.generatedBy,convertedBy:r.convertedBy};if(r.trainingConfig!=null&&(n.trainingConfig=r.trainingConfig),r.weightsManifest!=null){if(!t)throw new Error("modelJSON has weightsManifest but weightSpecs is null");if(!e)throw new Error("modelJSON has weightsManifest but weightData is null");n.weightSpecs=t,n.weightData=e}return r.signature!=null&&(n.signature=r.signature),r.userDefinedMetadata!=null&&(n.userDefinedMetadata=r.userDefinedMetadata),r.modelInitializer!=null&&(n.modelInitializer=r.modelInitializer),r.initializerSignature!=null&&(n.initializerSignature=r.initializerSignature),n}async function qp(r,t){let e,n;return r.weightsManifest!=null&&([e,n]=await t(r.weightsManifest)),A0(r,e,n)}function Ni(r){if(r.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:r.modelTopology==null?0:V1(JSON.stringify(r.modelTopology)),weightSpecsBytes:r.weightSpecs==null?0:V1(JSON.stringify(r.weightSpecs)),weightDataBytes:r.weightData==null?0:r.weightData.byteLength}}function jg(r){let t=[];for(let e of r)t.push(...e.weights);return t}function k4(){let r=e=>{let n=e<<13,o=0;for(;(n&8388608)===0;)o-=8388608,n<<=1;return n&=-8388609,o+=947912704,n|o},t=new Uint32Array(2048);t[0]=0;for(let e=1;e<1024;e++)t[e]=r(e);for(let e=1024;e<2048;e++)t[e]=939524096+(e-1024<<13);return t}function E4(){let r=new Uint32Array(64);r[0]=0,r[31]=1199570944,r[32]=2147483648,r[63]=3347054592;for(let t=1;t<31;t++)r[t]=t<<23;for(let t=33;t<63;t++)r[t]=2147483648+(t-32<<23);return r}function _4(){let r=new Uint32Array(64);for(let t=0;t<64;t++)r[t]=1024;return r[0]=r[32]=0,r}function A4(){let r=k4(),t=E4(),e=_4();return n=>{let o=new ArrayBuffer(4*n.length),s=new Uint32Array(o);for(let i=0;i>10]+(a&1023)]+t[a>>10];s[i]=u}return new Float32Array(o)}}var Ce=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Ce.instance==null&&(Ce.instance=new Ce),Ce.instance}static registerSaveRouter(t){Ce.getInstance().saveRouters.push(t)}static registerLoadRouter(t){Ce.getInstance().loadRouters.push(t)}static getSaveHandlers(t){return Ce.getHandlers(t,"save")}static getLoadHandlers(t,e){return Ce.getHandlers(t,"load",e)}static getHandlers(t,e,n){let o=[];return(e==="load"?Ce.getInstance().loadRouters:Ce.getInstance().saveRouters).forEach(i=>{let a=i(t,n);a!==null&&o.push(a)}),o}},H1=r=>Ce.registerSaveRouter(r),q1=r=>Ce.registerLoadRouter(r),K1=r=>Ce.getSaveHandlers(r),j1=(r,t)=>Ce.getLoadHandlers(r,t);var $0="tensorflowjs",D0=1,Uu="models_store",jl="model_info_store";function X1(){if(!z().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let r=typeof window=="undefined"?self:window,t=r.indexedDB||r.mozIndexedDB||r.webkitIndexedDB||r.msIndexedDB||r.shimIndexedDB;if(t==null)throw new Error("The current browser does not appear to support IndexedDB.");return t}function R0(r){let t=r.result;t.createObjectStore(Uu,{keyPath:"modelPath"}),t.createObjectStore(jl,{keyPath:"modelPath"})}var Ti=class{constructor(t){if(this.indexedDB=X1(),t==null||!t)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=t}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,t)}async load(){return this.databaseAction(this.modelPath)}databaseAction(t,e){return new Promise((n,o)=>{let s=this.indexedDB.open($0,D0);s.onupgradeneeded=()=>R0(s),s.onsuccess=()=>{let i=s.result;if(e==null){let a=i.transaction(Uu,"readonly"),l=a.objectStore(Uu).get(this.modelPath);l.onsuccess=()=>{if(l.result==null)return i.close(),o(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(l.result.modelArtifacts)},l.onerror=c=>(i.close(),o(l.error)),a.oncomplete=()=>i.close()}else{let a=Ni(e),u=i.transaction(jl,"readwrite"),l=u.objectStore(jl),c=l.put({modelPath:this.modelPath,modelArtifactsInfo:a}),p;c.onsuccess=()=>{p=i.transaction(Uu,"readwrite");let f=p.objectStore(Uu).put({modelPath:this.modelPath,modelArtifacts:e,modelArtifactsInfo:a});f.onsuccess=()=>n({modelArtifactsInfo:a}),f.onerror=d=>{l=u.objectStore(jl);let h=l.delete(this.modelPath);h.onsuccess=()=>(i.close(),o(f.error)),h.onerror=g=>(i.close(),o(f.error))}},c.onerror=m=>(i.close(),o(c.error)),u.oncomplete=()=>{p==null?i.close():p.oncomplete=()=>i.close()}}},s.onerror=i=>o(s.error)})}};Ti.URL_SCHEME="indexeddb://";var Y1=r=>z().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(Ti.URL_SCHEME)?$4(r.slice(Ti.URL_SCHEME.length)):null;Ce.registerSaveRouter(Y1);Ce.registerLoadRouter(Y1);function $4(r){return new Ti(r)}function D4(r){return r.startsWith(Ti.URL_SCHEME)?r.slice(Ti.URL_SCHEME.length):r}var Xg=class{constructor(){this.indexedDB=X1()}async listModels(){return new Promise((t,e)=>{let n=this.indexedDB.open($0,D0);n.onupgradeneeded=()=>R0(n),n.onsuccess=()=>{let o=n.result,s=o.transaction(jl,"readonly"),a=s.objectStore(jl).getAll();a.onsuccess=()=>{let u={};for(let l of a.result)u[l.modelPath]=l.modelArtifactsInfo;t(u)},a.onerror=u=>(o.close(),e(a.error)),s.oncomplete=()=>o.close()},n.onerror=o=>e(n.error)})}async removeModel(t){return t=D4(t),new Promise((e,n)=>{let o=this.indexedDB.open($0,D0);o.onupgradeneeded=()=>R0(o),o.onsuccess=()=>{let s=o.result,i=s.transaction(jl,"readwrite"),a=i.objectStore(jl),u=a.get(t),l;u.onsuccess=()=>{if(u.result==null)return s.close(),n(new Error(`Cannot find model with path '${t}' in IndexedDB.`));{let c=a.delete(t),p=()=>{l=s.transaction(Uu,"readwrite");let f=l.objectStore(Uu).delete(t);f.onsuccess=()=>e(u.result.modelArtifactsInfo),f.onerror=d=>n(u.error)};c.onsuccess=p,c.onerror=m=>(p(),s.close(),n(u.error))}},u.onerror=c=>(s.close(),n(u.error)),i.oncomplete=()=>{l==null?s.close():l.oncomplete=()=>s.close()}},o.onerror=s=>n(o.error)})}};var Xa="/",Kp="tensorflowjs_models",Z1="info",R4="model_topology",F4="weight_specs",O4="weight_data",P4="model_metadata";function J1(r){return{info:[Kp,r,Z1].join(Xa),topology:[Kp,r,R4].join(Xa),weightSpecs:[Kp,r,F4].join(Xa),weightData:[Kp,r,O4].join(Xa),modelMetadata:[Kp,r,P4].join(Xa)}}function Q1(r){for(let t of Object.values(r))window.localStorage.removeItem(t)}function L4(r){let t=r.split(Xa);if(t.length<3)throw new Error(`Invalid key format: ${r}`);return t.slice(1,t.length-1).join(Xa)}function M4(r){return r.startsWith(ki.URL_SCHEME)?r.slice(ki.URL_SCHEME.length):r}var ki=class{constructor(t){if(!z().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,t==null||!t)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=t,this.keys=J1(this.modelPath)}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let e=JSON.stringify(t.modelTopology),n=JSON.stringify(t.weightSpecs),o=Ni(t);try{this.LS.setItem(this.keys.info,JSON.stringify(o)),this.LS.setItem(this.keys.topology,e),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,W1(t.weightData));let s={format:t.format,generatedBy:t.generatedBy,convertedBy:t.convertedBy,signature:t.signature!=null?t.signature:void 0,userDefinedMetadata:t.userDefinedMetadata!=null?t.userDefinedMetadata:void 0,modelInitializer:t.modelInitializer!=null?t.modelInitializer:void 0,initializerSignature:t.initializerSignature!=null?t.initializerSignature:void 0,trainingConfig:t.trainingConfig!=null?t.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(s)),{modelArtifactsInfo:o}}catch(s){throw Q1(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${o.modelTopologyBytes}, weightSpecsBytes=${o.weightSpecsBytes}, weightDataBytes=${o.weightDataBytes}.`)}}}async load(){let t=JSON.parse(this.LS.getItem(this.keys.info));if(t==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(t.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let e={},n=JSON.parse(this.LS.getItem(this.keys.topology));if(n==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);e.modelTopology=n;let o=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(o==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);e.weightSpecs=o;let s=this.LS.getItem(this.keys.modelMetadata);if(s!=null){let a=JSON.parse(s);e.format=a.format,e.generatedBy=a.generatedBy,e.convertedBy=a.convertedBy,a.signature!=null&&(e.signature=a.signature),a.userDefinedMetadata!=null&&(e.userDefinedMetadata=a.userDefinedMetadata),a.modelInitializer!=null&&(e.modelInitializer=a.modelInitializer),a.initializerSignature!=null&&(e.initializerSignature=a.initializerSignature),a.trainingConfig!=null&&(e.trainingConfig=a.trainingConfig)}let i=this.LS.getItem(this.keys.weightData);if(i==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return e.weightData=U1(i),e}};ki.URL_SCHEME="localstorage://";var tE=r=>z().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(ki.URL_SCHEME)?z4(r.slice(ki.URL_SCHEME.length)):null;Ce.registerSaveRouter(tE);Ce.registerLoadRouter(tE);function z4(r){return new ki(r)}var Yg=class{constructor(){E(z().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),E(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let t={},e=Kp+Xa,n=Xa+Z1;for(let o=0;o"scheme must not be undefined or null."),t.endsWith(jp)&&(t=t.slice(0,t.indexOf(jp))),E(t.length>0,()=>"scheme must not be an empty string.");let n=Er.getInstance();E(n.managers[t]==null,()=>`A model store manager is already registered for scheme '${t}'.`),n.managers[t]=e}static getManager(t){let e=Er.getInstance().managers[t];if(e==null)throw new Error(`Cannot find model manager for scheme '${t}'`);return e}static getSchemes(){return Object.keys(Er.getInstance().managers)}};function Zg(r){if(r.indexOf(jp)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Er.getSchemes().join(",")}`);return{scheme:r.split(jp)[0],path:r.split(jp)[1]}}async function eE(r,t,e=!1){E(r!==t,()=>`Old path and new path are the same: '${r}'`);let n=Ce.getLoadHandlers(r);E(n.length>0,()=>`Copying failed because no load handler is found for source URL ${r}.`),E(n.length<2,()=>`Copying failed because more than one (${n.length}) load handlers for source URL ${r}.`);let o=n[0],s=Ce.getSaveHandlers(t);E(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),E(s.length<2,()=>`Copying failed because more than one (${n.length}) save handlers for destination URL ${t}.`);let i=s[0],a=Zg(r).scheme,u=Zg(r).path,l=a===Zg(r).scheme,c=await o.load();e&&l&&await Er.getManager(a).removeModel(u);let p=await i.save(c);return e&&!l&&await Er.getManager(a).removeModel(u),p.modelArtifactsInfo}async function rE(){let r=Er.getSchemes(),t={};for(let e of r){let n=await Er.getManager(e).listModels();for(let o in n){let s=e+jp+o;t[s]=n[o]}}return t}async function nE(r){let t=Zg(r);return Er.getManager(t.scheme).removeModel(t.path)}async function oE(r,t){return eE(r,t,!1)}async function sE(r,t){return eE(r,t,!0)}var F0=class{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(t,e){return fetch(t,e)}now(){return performance.now()}encode(t,e){if(e!=="utf-8"&&e!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${e}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(t)}decode(t,e){return new TextDecoder(e).decode(t)}setTimeoutCustom(t,e){if(typeof window=="undefined"||!z().getBool("USE_SETTIMEOUTCUSTOM")){setTimeout(t,e);return}this.functionRefs.push(t),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")},e),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",n=>{if(n.source===window&&n.data.name===this.messageName){n.stopPropagation();let o=this.functionRefs[n.data.index];o(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}},!0))}};if(z().get("IS_BROWSER")){z().setPlatform("browser",new F0);try{Er.registerManager(ki.URL_SCHEME,new Yg)}catch(r){}try{Er.registerManager(Ti.URL_SCHEME,new Xg)}catch(r){}}var B4={importFetch:()=>iE()},O0;var P0=class{constructor(){this.util=aE(),this.textEncoder=new this.util.TextEncoder}fetch(t,e){return z().global.fetch!=null?z().global.fetch(t,e):(O0==null&&(O0=B4.importFetch()),O0(t,e))}now(){let t=process.hrtime();return t[0]*1e3+t[1]/1e6}encode(t,e){if(e!=="utf-8"&&e!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${e}`);return this.textEncoder.encode(t)}decode(t,e){return t.length===0?"":new this.util.TextDecoder(e).decode(t)}};z().get("IS_NODE")&&!z().get("IS_BROWSER")&&z().setPlatform("node",new P0);function wt(r,t="float32",e){return t=t||"float32",Ud(r),new pe(r,t,e)}function V4(r,t){let e=I(r,"x","cast");if(!o0(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&e.dtype!=="string"||t!=="string"&&e.dtype==="string")throw new Error("Only strings can be casted to strings");let n={x:e},o={dtype:t};return k.runKernel(lo,n,o)}var J=T({cast_:V4});function G4(r){let e={x:I(r,"x","clone","string_or_numeric")};return k.runKernel(co,e)}var sn=T({clone_:G4});function Jg(r,t=!1){console.log(r.toString(t))}v0();var W4={buffer:wt,cast:J,clone:sn,print:Jg};P1(W4);var _r={};Wt(_r,{browserFiles:()=>uE,browserHTTPRequest:()=>mE,concatenateArrayBuffers:()=>Hp,copyModel:()=>oE,decodeWeights:()=>qg,encodeWeights:()=>G1,fromMemory:()=>fE,fromMemorySync:()=>G0,getLoadHandlers:()=>j1,getModelArtifactsForJSON:()=>qp,getModelArtifactsForJSONSync:()=>A0,getModelArtifactsInfoForJSON:()=>Ni,getSaveHandlers:()=>K1,getWeightSpecs:()=>jg,http:()=>tx,isHTTPScheme:()=>Qg,listModels:()=>rE,loadWeights:()=>cE,moveModel:()=>sE,registerLoadRouter:()=>q1,registerSaveRouter:()=>H1,removeModel:()=>nE,weightsLoaderFactory:()=>B0,withSaveHandler:()=>dE,withSaveHandlerSync:()=>hE});var U4="model",H4=".json",q4=".weights.bin";function lE(r){return new Promise(t=>setTimeout(t)).then(r)}var Ya=class{constructor(t){if(!z().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");t.startsWith(Ya.URL_SCHEME)&&(t=t.slice(Ya.URL_SCHEME.length)),(t==null||t.length===0)&&(t=U4),this.modelJsonFileName=t+H4,this.weightDataFileName=t+q4}async save(t){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let e=window.URL.createObjectURL(new Blob([t.weightData],{type:"application/octet-stream"}));if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let n=[{paths:["./"+this.weightDataFileName],weights:t.weightSpecs}],o=Kg(t,n),s=window.URL.createObjectURL(new Blob([JSON.stringify(o)],{type:"application/json"})),i=this.modelJsonAnchor==null?document.createElement("a"):this.modelJsonAnchor;if(i.download=this.modelJsonFileName,i.href=s,await lE(()=>i.dispatchEvent(new MouseEvent("click"))),t.weightData!=null){let a=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;a.download=this.weightDataFileName,a.href=e,await lE(()=>a.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Ni(t)}}}};Ya.URL_SCHEME="downloads://";var L0=class{constructor(t){if(t==null||t.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${t}`);this.jsonFile=t[0],this.weightsFiles=t.slice(1)}async load(){return new Promise((t,e)=>{let n=new FileReader;n.onload=o=>{let s=JSON.parse(o.target.result),i=s.modelTopology;if(i==null){e(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(s.weightsManifest==null){e(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){t({modelTopology:i});return}let u=qp(s,l=>this.loadWeights(l));t(u)},n.onerror=o=>e(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)})}loadWeights(t){let e=[],n=[];for(let i of t)e.push(...i.weights),n.push(...i.paths);let o=this.checkManifestAndWeightFiles(t),s=n.map(i=>this.loadWeightsFile(i,o[i]));return Promise.all(s).then(i=>[e,Hp(i)])}loadWeightsFile(t,e){return new Promise((n,o)=>{let s=new FileReader;s.onload=i=>{let a=i.target.result;n(a)},s.onerror=i=>o(`Failed to weights data from file of path '${t}'.`),s.readAsArrayBuffer(e)})}checkManifestAndWeightFiles(t){let e=[],n=this.weightsFiles.map(s=>_0(s.name)),o={};for(let s of t)s.paths.forEach(i=>{let a=_0(i);if(e.indexOf(a)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${a}'`);if(e.push(a),n.indexOf(a)===-1)throw new Error(`Weight file with basename '${a}' is not provided.`);o[i]=this.weightsFiles[n.indexOf(a)]});if(e.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${e.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return o}},K4=r=>z().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(Ya.URL_SCHEME)?j4(r.slice(Ya.URL_SCHEME.length)):null;Ce.registerSaveRouter(K4);function j4(r="model"){return new Ya(r)}function uE(r){return new L0(r)}function M0(r,t,e,n){i(r),e=e==null?0:e,n=n==null?1:n,a(e,n);let o=0,s=u=>(u.then(l=>{let c=e+ ++o/r.length*(n-e);return t(c),l}),u);function i(u){E(u!=null&&Array.isArray(u)&&u.length>0,()=>"promises must be a none empty array")}function a(u,l){E(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${u}`),E(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${l}`),E(l>=u,()=>`startFraction must be no more than endFraction, but got startFraction ${u} and endFraction ${l}`)}return Promise.all(r.map(s))}async function z0(r,t){t==null&&(t={});let e=t.fetchFunc==null?z().platform.fetch:t.fetchFunc,n=r.map(p=>e(p,t.requestInit,{isBinary:!0})),o=0,s=.5,a=(t.onProgress==null?await Promise.all(n):await M0(n,t.onProgress,o,s)).map(p=>p.arrayBuffer()),u=.5,l=1;return t.onProgress==null?await Promise.all(a):await M0(a,t.onProgress,u,l)}async function cE(r,t="",e,n){return B0(i=>z0(i,{requestInit:n}))(r,t,e)}function B0(r){return async(t,e="",n)=>{let o=t.map(()=>!1),s={},i=n!=null?n.map(()=>!1):[],a=[];if(t.forEach((f,d)=>{let h=0;f.weights.forEach(g=>{let x="quantization"in g?g.quantization.dtype:g.dtype,b=oh[x]*Jt(g.shape),w=()=>{o[d]=!0,s[d]==null&&(s[d]=[]),s[d].push({manifestEntry:g,groupOffset:h,sizeBytes:b})};n!=null?n.forEach((C,N)=>{C===g.name&&(w(),i[N]=!0)}):w(),a.push(g.name),h+=b})}),!i.every(f=>f)){let f=n.filter((d,h)=>!i[h]);throw new Error(`Could not find weights in manifest with names: ${f.join(", ")}. -Manifest JSON has weights with names: ${a.join(", ")}.`)}let u=o.reduce((f,d,h)=>(d&&f.push(h),f),[]),l=[];u.forEach(f=>{t[f].paths.forEach(d=>{let h=e+(e.endsWith("/")?"":"/")+d;l.push(h)})});let c=await r(l),p={},m=0;return u.forEach(f=>{let d=t[f].paths.length,h=0;for(let C=0;C{let N=g.slice(C.groupOffset,C.groupOffset+C.sizeBytes),_=qg(N,[C.manifestEntry]);for(let A in _)p[A]=_[A]}),m+=d}),p}}var X4="application/octet-stream",Y4="application/json",sh=class{constructor(t,e){if(this.DEFAULT_METHOD="POST",e==null&&(e={}),this.weightPathPrefix=e.weightPathPrefix,this.onProgress=e.onProgress,this.weightUrlConverter=e.weightUrlConverter,e.fetchFunc!=null?(E(typeof e.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=e.fetchFunc):this.fetch=z().platform.fetch,E(t!=null&&t.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(t)&&E(t.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${t.length}).`),this.path=t,e.requestInit!=null&&e.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=e.requestInit||{}}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let e=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);e.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:t.weightSpecs}],o=Kg(t,n);e.body.append("model.json",new Blob([JSON.stringify(o)],{type:Y4}),"model.json"),t.weightData!=null&&e.body.append("model.weights.bin",new Blob([t.weightData],{type:X4}),"model.weights.bin");let s=await this.fetch(this.path,e);if(s.ok)return{modelArtifactsInfo:Ni(t),responses:[s]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${s.status}.`)}async load(){let t=await this.fetch(this.path,this.requestInit);if(!t.ok)throw new Error(`Request to ${this.path} failed with status code ${t.status}. Please verify this URL points to the model JSON of the model to load.`);let e;try{e=await t.json()}catch(s){let i=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?i+=" 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.":i+=" Please make sure the server is serving valid JSON for this request.",new Error(i)}let n=e.modelTopology,o=e.weightsManifest;if(n==null&&o==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return qp(e,s=>this.loadWeights(s))}async loadWeights(t){let e=Array.isArray(this.path)?this.path[1]:this.path,[n,o]=Z4(e),s=this.weightPathPrefix||n,i=jg(t),a=[],u=[];for(let c of t)for(let p of c.paths)this.weightUrlConverter!=null?u.push(this.weightUrlConverter(p)):a.push(s+p+o);this.weightUrlConverter&&a.push(...await Promise.all(u));let l=await z0(a,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[i,Hp(l)]}};sh.URL_SCHEME_REGEX=/^https?:\/\//;function Z4(r){let t=r.lastIndexOf("/"),e=r.lastIndexOf("?"),n=r.substring(0,t),o=e>t?r.substring(e):"";return[n+"/",o]}function Qg(r){return r.match(sh.URL_SCHEME_REGEX)!=null}var pE=(r,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let e=!0;if(Array.isArray(r)?e=r.every(n=>Qg(n)):e=Qg(r),e)return tx(r,t)}return null};Ce.registerSaveRouter(pE);Ce.registerLoadRouter(pE);function tx(r,t){return new sh(r,t)}function mE(r,t){return tx(r,t)}var ih=class{constructor(t){this.modelArtifacts=t}load(){return this.modelArtifacts}},ex=class{constructor(t){this.saveHandler=t}save(t){return this.saveHandler(t)}},V0=class{constructor(t){t.load&&(this.load=()=>Promise.resolve(t.load())),t.save&&(this.save=e=>Promise.resolve(t.save(e)))}};function fE(r,t,e,n){let o=arguments;return new V0(G0(...o))}function G0(r,t,e,n){return arguments.length===1?r.modelTopology!=null||r.weightSpecs!=null?new ih(r):(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 ih({modelTopology:r})):(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 ih({modelTopology:r,weightSpecs:t,weightData:e,trainingConfig:n}))}function dE(r){return new ex(r)}function hE(r){return new ex(r)}var yE={};Wt(yE,{confusionMatrix:()=>xE});function J4(r,t,e=!1,n=!1){let o=I(r,"a","matMul"),s=I(t,"b","matMul");[o,s]=Ut(o,s);let i={a:o,b:s},a={transposeA:e,transposeB:n};return k.runKernel(Ho,i,a)}var Lt=T({matMul_:J4});function Q4(r,t,e=1,n=0,o="int32"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let i={indices:I(r,"indices","oneHot","int32")},a={dtype:o,depth:t,onValue:e,offValue:n};return k.runKernel(gs,i,a)}var Ei=T({oneHot_:Q4});function dpt(){z().set("PROD",!0)}function hpt(){z().set("DEBUG",!0)}function gpt(){z().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function W0(r){z().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(r+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}L1(W0);function xpt(){k.disposeVariables()}function Pn(){return k}function ah(){return k.memory()}function ypt(r){return k.profile(r)}function B(r,t){return k.tidy(r,t)}function vt(r){nh(r).forEach(e=>e.dispose())}function De(r){return k.keep(r)}function bpt(r){return k.time(r)}function tH(r){return k.setBackend(r)}function wpt(){return k.ready()}function Cpt(){return k.backendName}function Ipt(r){k.removeBackend(r)}function Spt(r){return k.findBackend(r)}function vpt(r){return k.findBackendFactory(r)}function Xp(r,t,e=1){return k.registerBackend(r,t,e)}function gE(){return k.backend}function Npt(r,t){z().setPlatform(r,t)}function eH(r){let e={input:I(r,"input","imag")};return k.runKernel(Sp,e)}var Xl=T({imag_:eH});function rH(r){let e={x:I(r,"x","neg")};return k.runKernel(pi,e)}var Ht=T({neg_:rH});function nH(r){let e={input:I(r,"input","real")};return k.runKernel(Rp,e)}var Za=T({real_:nH});function oH(r,t,e){let n=I(r,"x","transpose");if(t==null&&(t=n.shape.map((i,a)=>a).reverse()),E(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(i=>{E(i>=0&&i`All entries in 'perm' must be between 0 and ${n.rank-1} but got ${t}`)}),n.rank<=1)return n.clone();let o={x:n},s={perm:t};return n.dtype==="complex64"?B(()=>{let i=Za(n),a=Xl(n);return i=k.runKernel(Qn,{x:i},s),a=k.runKernel(Qn,{x:a},s),e&&(a=Ht(a)),wn(i,a)}):k.runKernel(Qn,o,s)}var Ot=T({transpose_:oH});function sH(r,t,e){let n=I(r,"labels","confusionMatrix"),o=I(t,"predictions","confusionMatrix");E(e==null||e>0&&Number.isInteger(e),()=>`If provided, numClasses must be a positive integer, but got ${e}`),E(n.rank===1,()=>`Expected the rank of labels to be 1, but got ${n.rank}`),E(o.rank===1,()=>`Expected the rank of predictions to be 1, but got ${o.rank}`),E(n.shape[0]===o.shape[0],()=>`Mismatch in the number of examples: ${n.shape[0]} vs. ${o.shape[0]}. Labels and predictions should have the same number of elements.`),E(e>0&&Number.isInteger(e),()=>`numClasses is required to be a positive integer, but got ${e}`);let s=Ei(J(n,"int32"),e),i=Ei(J(o,"int32"),e),a=Ot(s),u=Lt(a,i);return J(u,"int32")}var xE=T({confusionMatrix_:sH});var Vr={};Wt(Vr,{assertAndGetBroadcastShape:()=>Pt,getBroadcastDims:()=>bE,getReductionAxes:()=>ge});function bE(r,t){let e=r.length,n=[];for(let o=0;o1&&i===1&&n.unshift(s)}return n}function ge(r,t){let e=[];for(let n=0;n1)&&e.unshift(s)}return e}function Pt(r,t){let e=[],n=Math.max(r.length,t.length);for(let o=0;omH,fromPixelsAsync:()=>cH,toPixels:()=>pH});function rx(r,t,e){if(Yn(r),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let n=Br(r,e);if(n.length!==3&&n.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return on(r,t,n,e)}var Hu;function wE(r,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(r==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let e=!1,n=!1,o=!1,s=!1,i=!1,a=!1;if(r.data instanceof Uint8Array)e=!0;else if(typeof ImageData!="undefined"&&r instanceof ImageData)n=!0;else if(typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement)o=!0;else if(typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement)s=!0;else if(r.getContext!=null)i=!0;else if(typeof ImageBitmap!="undefined"&&r instanceof ImageBitmap)a=!0;else 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 ${r.constructor.name}`);if(Jd(Yd,k.backendName)!=null){let d={pixels:r},h={numChannels:t};return k.runKernel(Yd,d,h)}let[l,c]=o?[r.videoWidth,r.videoHeight]:[r.width,r.height],p;if(i)p=r.getContext("2d").getImageData(0,0,l,c).data;else if(n||e)p=r.data;else if(s||o||a){if(Hu==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")Hu=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else Hu=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Hu.canvas.width=l,Hu.canvas.height=c,Hu.drawImage(r,0,0,l,c),p=Hu.getImageData(0,0,l,c).data}let m;if(t===4)m=new Int32Array(p);else{let d=l*c;m=new Int32Array(d*t);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(e.dtype!=="float32"&&e.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${e.dtype}. Please use float32 or int32 tensors.`);let i=await e.data(),a=e.dtype==="float32"?255:1,u=new Uint8ClampedArray(o*n*4);for(let l=0;l1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${f}.`)}else if(e.dtype==="int32"&&(f<0||f>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${f}.`);s===1?(c[0]=f*a,c[1]=f*a,c[2]=f*a):c[m]=f*a}let p=l*4;u[p+0]=Math.round(c[0]),u[p+1]=Math.round(c[1]),u[p+2]=Math.round(c[2]),u[p+3]=Math.round(c[3])}if(t!=null){t.width=o,t.height=n;let l=t.getContext("2d"),c=new ImageData(u,o,n);l.putImageData(c,0,0)}return e!==r&&e.dispose(),u}var mH=T({fromPixels_:wE});var ox={};Wt(ox,{prepareAndValidate:()=>CE});function CE(r,t){let e=r.shape.length,n=t.shape.length;if(e<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${e}.`);if(n<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${n}.`);if(t.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[n-1]>e)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[n-1]} vs. ${e}`);if(Jt(r.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${r.shape}.`);let o=t.shape,s=o[o.length-1],i=1;for(let p=0;pp/l),1].slice(0,s);return[u,i,l,c]}var lh={};Wt(lh,{calculateShapes:()=>IE,validateInput:()=>sx,validateUpdateShape:()=>U0});function U0(r,t,e){let n=t.rank>1?t.shape[t.rank-1]:1,o=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${e.shape}, indices.shape: ${t.shape}, shape: ${r}, sliceDim: ${n}, and batchDim: ${o}.`;if(e.rank1?t.shape[n-1]:1,s=e.length,i=1;for(let p=o;pdH,computeFlatOffset:()=>bH,computeOutShape:()=>gH,getNormalizedAxes:()=>xH,isSliceContinous:()=>yH,maskToAxes:()=>hH,parseSliceParams:()=>q0,sliceInfo:()=>wH,startForAxis:()=>AE,startIndicesWithElidedDims:()=>kE,stopForAxis:()=>$E,stopIndicesWithElidedDims:()=>EE,stridesForAxis:()=>_E,stridesWithElidedDims:()=>vE});var H0=-2,fH=-1;function dH(r,t,e){let n=r.shape.length;E(n===t.length,()=>`Error in slice${n}D: Length of begin ${t} must match the rank of the array (${n}).`),E(n===e.length,()=>`Error in slice${n}D: Length of size ${e} must match the rank of the array (${n}).`);for(let o=0;o`Error in slice${n}D: begin[${o}] + size[${o}] (${t[o]+e[o]}) would overflow input.shape[${o}] (${r.shape[o]})`)}function hH(r){let t=[],e=0;for(;r>0;)r&1&&t.push(e),r/=2,e++;return t}function gH(r,t,e){let n=[];for(let o=0;o0){let f=t[0],d=e+1;c=kE(i,f,d,n,r),p=EE(a,f,d,o,r),m=vE(s,f,d,r)}else for(let f=0;f-1)s[a]=0;else{let u=NE(t,e,a),l=n[u];r&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{let u=NE(t,e,a),l=n[u];r&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let u=n[o];return i<0&&(i+=u),i=np(0,i,u-1),i}function $E(r,t,e,n,o,s){let i=t[o],a=e[o]||1;(r&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let u=n[o];return i<0&&(i+=u),a>0?i=np(0,i,u):i=np(-1,i,u-1),i}function yH(r,t,e){let n=e.length;for(let o=0;o1){n=o;break}for(let o=n+1;o0||e[o]!==r[o])return!1;return!0}function bH(r,t){let e=r.length>0?r[r.length-1]:1;for(let n=0;n{E(i!==-1,()=>"slice() does not support negative begin indexing.")});let s;return e==null?s=new Array(o).fill(-1):typeof e=="number"?s=[e,...new Array(o-1).fill(-1)]:e.lengthi>=0?i:(E(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${a}.`),r.shape[a]-n[a])),[n,s]}function wH(r,t,e,n,o,s,i,a,u){let l;if(n==null?(l=new Array(t.length),l.fill(1)):l=n,i!=null&&(i&i-1)!==0)throw new Error("Multiple ellipses in slice is not allowed.");let c=!1,p={dims:l.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:e.slice(),strides:l.slice(),beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};for(let w=0;w0?0:-1,m.strides[w]>0?N:N-1];if(C&&m.strides[w]<=0)throw Error("only stride 1 allowed on non-range indexing.");h=h&&m.strides[w]===1;let $=!!(m.beginMask&1<=N)throw Error(`slice index ${m.begin[w]} of dimension ${w} out of bounds.`)}else m.begin[w]=SE(m.begin[w],0,m.strides[w],N,_,A),m.end[w]=SE(m.end[w],1,m.strides[w],N,_,A);let V=m.strides[w]===1&&m.begin[w]===0&&m.end[w]===N;f=f&&V,d=d&&(w===0&&m.strides[w]===1||V)}else f=f&&m.strides[w]===1&&$,d=d&&(w===0&&m.strides[w]===1||$);let F,P=!1;if(m.beginValid&&m.endValid?(F=m.end[w]-m.begin[w],P=!0):C?(F=1,P=!0):$&&N>=0&&(m.strides[w]<0?F=-N:F=N,P=!0),P){let V;F===0||F<0!=m.strides[w]<0?V=0:V=Math.trunc(F/m.strides[w])+(F%m.strides[w]!==0?1:0),g.push(V)}else g.push(-1)}for(let w=0;w=0?x.push(g[C]):C===H0&&x.push(1)}return{finalShapeSparse:x.filter((w,C)=>m.finalShapeGatherIndices[C]!==H0),finalShape:x,isIdentity:f,sliceDim0:d,isSimpleSlice:h,begin:m.begin,end:m.end,strides:m.strides}}function CH(r,t){t.beginMask=0,t.endMask=0,t.shrinkAxisMask=0;let e=0;t.beginValid=r.begin!=null,t.endValid=r.end!=null,t.begin=new Array(t.dims),t.end=new Array(t.dims),t.strides=new Array(t.dims),t.finalShapeGatherIndices=[],t.finalShapeGatherIndicesSparse=[],t.inputShapeGatherIndicesSparse=new Array(t.dims);for(let n=0;n0?s[t]:s[t+1&1];{let i=r<0?n+r:r;return is[1]?s[1]:i}}var Q={};Wt(Q,{Serializable:()=>uh,SerializationMap:()=>_i,registerClass:()=>Cn});var uh=class{getClassName(){return this.constructor.className}static fromConfig(t,e){return new t(e)}},_i=class{constructor(){this.classNameMap={}}static getMap(){return _i.instance==null&&(_i.instance=new _i),_i.instance}static register(t){_i.getMap().classNameMap[t.className]=[t,t.fromConfig]}};function Cn(r){E(r.className!=null,()=>"Class being registered does not have the static className property defined."),E(typeof r.className=="string",()=>"className is required to be a string, but got type "+typeof r.className),E(r.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),_i.register(r)}var OE={};Wt(OE,{TEST_EPSILON_FLOAT16:()=>DE,createVideoElement:()=>EH,encodeStrings:()=>FE,expectArrayBuffersEqual:()=>kH,expectArraysClose:()=>SH,expectArraysEqual:()=>NH,expectNumbersClose:()=>RE,expectPromiseToFail:()=>vH,expectValuesInRange:()=>TH,play:()=>_H,testEpsilon:()=>ix});var IH=.001,DE=.1;function SH(r,t,e){return e==null&&(e=ix()),K0(r,t,(n,o)=>j0(n,o,e))}function ix(){return k.backend.floatPrecision()===32?IH:DE}function K0(r,t,e){let n=!0;if((xr(r)||xr(t))&&(n=!1),xr(r)&&xr(t)&&(n=!0),n){let i=r.constructor.name,a=t.constructor.name;if(i!==a)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${a}`)}if(Array.isArray(r)&&Array.isArray(t)){let i=Br(r),a=Br(t);if(!Dn(i,a))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${a}]`)}let o=xr(r)?r:Bo(r),s=xr(t)?t:Bo(t);if(o.length!==s.length)throw new Error(`Arrays have different lengths actual: ${o.length} vs expected: ${s.length}. +`;return m[m.length-1]=" "+m[m.length-1]+"]"+(s?"":d),m}function rh(r){let t=[];for(let e=0;e`Length of values '${o}' does not match the size inferred by the shape '${this.size}'.`)}if(e==="complex64")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||rv(e,this.size),this.strides=si(t)}set(t,...e){e.length===0&&(e=[0]),E(e.length===this.rank,()=>`The number of provided coordinates (${e.length}) must match the rank (${this.rank})`);let n=this.locToIndex(e);this.values[n]=t}get(...t){t.length===0&&(t=[0]);let e=0;for(let o of t){if(o<0||o>=this.shape[e]){let s=`Requested out of range element at ${t}. Buffer shape=${this.shape}`;throw new Error(s)}e++}let n=t[t.length-1];for(let o=0;oWp(n))}catch(n){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return t}dataToGPU(t){return this.throwIfDisposed(),Ms().readToGPU(this.dataId,t)}dataSync(){this.throwIfDisposed();let t=Ms().readSync(this.dataId);if(this.dtype==="string")try{return t.map(e=>Wp(e))}catch(e){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return t}async bytes(){this.throwIfDisposed();let t=await Ms().read(this.dataId);return this.dtype==="string"?t:new Uint8Array(t.buffer)}dispose(){this.isDisposed||(Ms().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(t=!1){return Up.print(this,t)}clone(){return this.throwIfDisposed(),Up.clone(this)}toString(t=!1){let e=this.dataSync();return R1(e,this.shape,this.dtype,t)}cast(t){return this.throwIfDisposed(),Up.cast(this,t)}variable(t=!0,e,n){return this.throwIfDisposed(),Ms().makeVariable(this,t,e,n)}};Object.defineProperty(Ft,Symbol.hasInstance,{value:r=>!!r&&r.data!=null&&r.dataSync!=null&&r.throwIfDisposed!=null});function O(){return Kd("Tensor",()=>Ft)}O();var Ka=class extends Ft{constructor(t,e,n,o){super(t.shape,t.dtype,t.dataId,o),this.trainable=e,this.name=n}assign(t){if(t.dtype!==this.dtype)throw new Error(`dtype of the new value (${t.dtype}) and previous value (${this.dtype}) must match`);if(!Dn(t.shape,this.shape))throw new Error(`shape of the new value (${t.shape}) and previous value (${this.shape}) must match`);Ms().disposeTensor(this),this.dataId=t.dataId,Ms().incRef(this,null)}dispose(){Ms().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(Ka,Symbol.hasInstance,{value:r=>r instanceof Ft&&r.assign!=null&&r.assign instanceof Function});var go={};Wt(go,{assertTypesMatch:()=>Iv,getTensorsInContainer:()=>nh,isTensorInList:()=>y4,makeTypesMatch:()=>Ut});var xv;(function(r){r.R0="R0",r.R1="R1",r.R2="R2",r.R3="R3",r.R4="R4",r.R5="R5",r.R6="R6"})(xv||(xv={}));var yv;(function(r){r.float32="float32",r.int32="int32",r.bool="int32",r.complex64="complex64"})(yv||(yv={}));var bv;(function(r){r.float32="float32",r.int32="int32",r.bool="bool",r.complex64="complex64"})(bv||(bv={}));var wv;(function(r){r.float32="float32",r.int32="float32",r.bool="float32",r.complex64="complex64"})(wv||(wv={}));var Cv;(function(r){r.float32="complex64",r.int32="complex64",r.bool="complex64",r.complex64="complex64"})(Cv||(Cv={}));var x4={float32:wv,int32:yv,bool:bv,complex64:Cv};function sr(r,t){if(r==="string"||t==="string"){if(r==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${r} with ${t}`)}return x4[r][t]}function Wu(r){return sr(r,"int32")}function Ut(r,t){if(r.dtype===t.dtype)return[r,t];let e=sr(r.dtype,t.dtype);return[r.cast(e),t.cast(e)]}function Iv(r,t){E(r.dtype===t.dtype,()=>`The dtypes of the first(${r.dtype}) and second(${t.dtype}) input must match`)}function y4(r,t){return t.some(e=>e.id===r.id)}function nh(r){let t=[];return M1(r,t,new Set),t}function M1(r,t,e){if(r==null)return;if(r instanceof Ft){t.push(r);return}if(!b4(r))return;let n=r;for(let o in n){let s=n[o];e.has(s)||(e.add(s),M1(s,t,e))}}function b4(r){return Array.isArray(r)||typeof r=="object"}function Sv(r){return r.kernelName!=null}var Ug=class{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(t=>t.name)))}}}dispose(){for(let t in this.registeredVariables)this.registeredVariables[t].dispose()}},ql=class{constructor(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Ug}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let t=this.getSortedBackends();for(let e=0;e{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(t){zg(t).forEach(n=>{n.disposeFunc!=null&&n.disposeFunc(this.registry[t])})}initializeBackend(t){let e=this.registryFactory[t];if(e==null)throw new Error(`Cannot initialize backend ${t}, no registration found.`);try{let n=e.factory();if(n&&!(n instanceof zo)&&typeof n.then=="function"){let o=++this.pendingBackendInitId,s=n.then(i=>o(othis.registryFactory[e].priority-this.registryFactory[t].priority)}initializeBackendsAndReturnBest(){let t=this.getSortedBackends();for(let e=0;ethis.startScope(n),()=>this.endScope(o),()=>(o=e(),o instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),o))}scopedRun(t,e,n){t();try{let o=n();return e(),o}catch(o){throw e(),o}}nextTensorId(){return ql.nextTensorId++}nextVariableId(){return ql.nextVariableId++}clone(t){let e=k.runKernel(co,{x:t}),n={x:t},o=i=>({x:()=>{let a="float32",u={x:i},l={dtype:a};return k.runKernel(lo,u,l)}}),s=[];return this.addTapeNode(this.state.activeScope.name,n,[e],o,s,{}),e}runKernel(t,e,n){if(this.backendName==null&&this.backend,!(Jd(t,this.backendName)!=null))throw new Error(`Kernel '${t}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:t,inputs:e,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(t,e,n){let o=this.backend.numDataIds(),s=0;n.forEach(u=>{s+=u.dtype==="complex64"?3:1});let i=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],a=o-e-s-i;if(a>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${a} data ids) after running '${t}'`)}runKernelFunc(t){let e,n=[],o=this.isTapeOn(),s=this.state.numBytes,i=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let a;this.backendName==null&&this.backend;let u,l=Sv(t)?t.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(Sv(t)){let{kernelName:d,inputs:h,attrs:g}=t;this.backendName==null&&this.backend;let x=Jd(d,this.backendName);E(x!=null,()=>`Cannot find registered kernel '${d}' for backend '${this.backendName}'`),a=()=>{let b=this.backend.numDataIds();u=x.kernelFunc({inputs:h,attrs:g,backend:this.backend});let w=Array.isArray(u)?u:[u];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(d,b,w);let C=w.map(N=>N.rank!=null?N:this.makeTensorFromTensorInfo(N));if(o){let N=this.getTensorsForGradient(d,h,C);n=this.saveTensorsForBackwardMode(N)}return C}}else{let{forwardFunc:d}=t,h=g=>{!o||(n=g.map(x=>this.keep(this.clone(x))))};a=()=>{let g=this.backend.numDataIds();u=this.tidy(()=>d(this.backend,h));let x=Array.isArray(u)?u:[u];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,g,x),x}}let{inputs:c,attrs:p}=t,m=Sv(t)?null:t.backwardsFunc,f;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?e=a():(f=this.profiler.profileKernel(l,c,()=>a()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(f),e=f.outputs)}),o&&this.addTapeNode(l,c,e,m,n,p),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-s,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-i,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(d=>c[d]!=null?c[d].shape:null),outputShapes:e.map(d=>d.shape),kernelTimeMs:f.timeMs,extraInfo:f.extraInfo}),Array.isArray(u)?e:e[0]}saveTensorsForBackwardMode(t){return t.map(n=>this.keep(this.clone(n)))}getTensorsForGradient(t,e,n){let o=uv(t);if(o!=null){let s=o.inputsToSave||[],i=o.outputsToSave||[],a;o.saveAllInputs?(E(Array.isArray(e),()=>"saveAllInputs is true, expected inputs to be an array."),a=Object.keys(e).map(l=>e[l])):a=s.map(l=>e[l]);let u=n.filter((l,c)=>i[c]);return a.concat(u)}return[]}makeTensor(t,e,n,o){if(t==null)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",o=o||this.backend;let s=t;n==="string"&&Vo(t[0])&&(s=t.map(u=>Hl(u)));let i=o.write(s,e,n),a=new Ft(e,n,i,this.nextTensorId());if(this.trackTensor(a,o),n==="string"){let u=this.state.tensorInfo.get(i),l=sv(s);this.state.numBytes+=l-u.bytes,u.bytes=l}return a}makeTensorFromDataId(t,e,n,o){n=n||"float32";let s={dataId:t,shape:e,dtype:n};return this.makeTensorFromTensorInfo(s,o)}makeTensorFromTensorInfo(t,e){let{dataId:n,shape:o,dtype:s}=t,i=new Ft(o,s,n,this.nextTensorId());return this.trackTensor(i,e),i}makeVariable(t,e=!0,n,o){n=n||this.nextVariableId().toString(),o!=null&&o!==t.dtype&&(t=t.cast(o));let s=new Ka(t,e,n,this.nextTensorId());if(this.state.registeredVariables[s.name]!=null)throw new Error(`Variable with name ${s.name} was already registered`);return this.state.registeredVariables[s.name]=s,this.incRef(s,this.backend),s}trackTensor(t,e){this.state.numTensors++,t.dtype==="string"&&this.state.numStringTensors++;let n=0;t.dtype!=="complex64"&&t.dtype!=="string"&&(n=t.size*Mg(t.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(t.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(t.dataId,{backend:e||this.backend,dtype:t.dtype,shape:t.shape,bytes:n})),t instanceof Ka||this.track(t)}incRef(t,e){this.trackTensor(t,e),this.backend.incRef(t.dataId)}removeDataId(t,e){this.state.tensorInfo.has(t)&&this.state.tensorInfo.get(t).backend===e&&(this.state.tensorInfo.delete(t),this.state.numDataBuffers--)}disposeTensor(t){if(!this.state.tensorInfo.has(t.dataId))return;let e=this.state.tensorInfo.get(t.dataId);if(this.state.numTensors--,t.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=e.bytes),t.dtype!=="complex64"&&t.dtype!=="string"){let n=t.size*Mg(t.dtype);this.state.numBytes-=n}e.backend.disposeData(t.dataId)&&this.removeDataId(t.dataId,e.backend)}disposeVariables(){for(let t in this.state.registeredVariables){let e=this.state.registeredVariables[t];this.disposeVariable(e)}}disposeVariable(t){this.disposeTensor(t),this.state.registeredVariables[t.name]!=null&&delete this.state.registeredVariables[t.name]}memory(){let t=this.backend.memory();return t.numTensors=this.state.numTensors,t.numDataBuffers=this.state.numDataBuffers,t.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(t.unreliable=!0,t.reasons==null&&(t.reasons=[]),t.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),t}async profile(t){this.state.profiling=!0;let e=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await t(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(o=>o.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-e,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let o of this.state.activeProfile.kernels)o.kernelTimeMs=await o.kernelTimeMs,o.extraInfo=await o.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(t,e,n,o,s,i){let a={id:this.state.nextTapeNodeId++,kernelName:t,inputs:e,outputs:n,saved:s},u=uv(t);u!=null&&(o=u.gradFunc),o!=null&&(a.gradient=l=>(l=l.map((c,p)=>{if(c==null){let m=n[p],f=ip(m.size,m.dtype);return this.makeTensor(f,m.shape,m.dtype)}return c}),o(l.length>1?l:l[0],s,i))),this.state.activeTape.push(a)}keep(t){return t.kept=!0,t}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(t){let e={track:[],name:"unnamed scope",id:this.state.nextScopeId++};t&&(e.name=t),this.state.scopeStack.push(e),this.state.activeScope=e}endScope(t){let e=nh(t),n=new Set(e.map(s=>s.id));for(let s=0;s{!s.kept&&s.scopeId===o.id&&this.track(s)})}gradients(t,e,n,o=!1){if(E(e.length>0,()=>"gradients() received an empty list of xs."),n!=null&&n.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);let s=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",t));E(s instanceof Ft,()=>"The result y returned by f() must be a tensor.");let i=A1(this.state.activeTape,e,s);if(!o&&i.length===0&&e.length>0)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",()=>{let a={};a[s.id]=n==null?w4(s.shape):n,$1(a,i,l=>this.tidy(l),C4);let u=e.map(l=>a[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let c of l.saved)c.dispose()}),this.state.activeTape=null),{value:s,grads:u}})}customGrad(t){return E(oi(t),()=>"The f passed in customGrad(f) must be a function."),(...e)=>{E(e.every(a=>a instanceof Ft),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n,o={};e.forEach((a,u)=>{o[u]=a});let s=(a,u)=>(n=t(...e,u),E(n.value instanceof Ft,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),E(oi(n.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),n.value),i=(a,u)=>{let l=n.gradFunc(a,u),c=Array.isArray(l)?l:[l];E(c.length===e.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(...)."),E(c.every(m=>m instanceof Ft),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let p={};return c.forEach((m,f)=>{p[f]=()=>m}),p};return this.runKernelFunc({forwardFunc:s,backwardsFunc:i,inputs:o})}}readSync(t){return this.state.tensorInfo.get(t).backend.readSync(t)}read(t){return this.state.tensorInfo.get(t).backend.read(t)}readToGPU(t,e){return this.state.tensorInfo.get(t).backend.readToGPU(t,e)}async time(t){let e=Gu(),n=await this.backend.time(t);return n.wallMs=Gu()-e,n}track(t){return this.state.activeScope!=null&&(t.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(t)),t}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new Ug;for(let t in this.registry)this.disposeRegisteredKernels(t),this.registry[t].dispose(),delete this.registry[t];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};ql.nextTensorId=0;ql.nextVariableId=0;function w4(r){let t=Wd(Jt(r),"float32");return k.makeTensor(t,r,"float32")}function vv(){let r=lv();if(r._tfengine==null){let t=new qd(r);r._tfengine=new ql(t)}return c1(r._tfengine.ENV),O1(()=>r._tfengine),r._tfengine}var k=vv();function C4(r,t){let e={a:r,b:t};return k.runKernel(Zn,e)}var Kl={};Wt(Kl,{isBrowser:()=>Tv,isMobile:()=>v4,mockIsMobile:()=>S4});function I4(){return typeof navigator!="undefined"&&navigator!=null}var Nv;function S4(r){Nv=r}function v4(r){if(Nv!==void 0)return Nv;if(r||I4()){if(r||(r=navigator),r.product==="ReactNative")return!0;let t=r.userAgent||r.vendor||(typeof window!="undefined"?window.opera:"");if(!t){let e=r;return e.userAgentData&&e.userAgentData.mobile}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(t)||/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(t.substr(0,4))}return!1}function Tv(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var On=z();On.registerFlag("DEBUG",()=>!1,r=>{r&&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.")});On.registerFlag("IS_BROWSER",()=>Tv());On.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");On.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));On.registerFlag("PROD",()=>!1);On.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>On.getBool("DEBUG"));On.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);On.registerFlag("IS_TEST",()=>!1);On.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);On.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);On.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);On.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);On.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function Br(r,t){let e=r;if(xr(r))return t==="string"?[]:[r.length];if(typeof r=="object"&&"texture"in r){let o=r.channels||"RGBA";return[r.height,r.width*o.length]}if(!Array.isArray(r))return[];let n=[];for(;Array.isArray(e)||xr(e)&&t!=="string";)n.push(e.length),e=e[0];return Array.isArray(r)&&z().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&B1(r,n,[]),n}function B1(r,t,e){if(e=e||[],!Array.isArray(r)&&!xr(r)){E(t.length===0,()=>`Element arr[${e.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}E(t.length>0,()=>`Element arr[${e.join("][")}] should be a primitive, but is an array of ${r.length} elements`),E(r.length===t[0],()=>`Element arr[${e.join("][")}] should have ${t[0]} elements, but has ${r.length} elements`);let n=t.slice(1);for(let o=0;o=0&&(o=n),z1(n,o,t,e),r==null||!xr(r)&&!Array.isArray(r)&&typeof r!="number"&&typeof r!="boolean"&&typeof r!="string"){let u=r==null?"null":r.constructor.name;throw new Error(`Argument '${t}' passed to '${e}' must be a Tensor or TensorLike, but got '${u}'`)}let s=Br(r,o);!xr(r)&&!Array.isArray(r)&&(r=[r]);let a=o!=="string"?Gp(r,o):Bo(r,[],!0);return k.makeTensor(a,s,o)}function ja(r,t,e,n="numeric"){if(!Array.isArray(r))throw new Error(`Argument ${t} passed to ${e} must be a \`Tensor[]\` or \`TensorLike[]\``);return r.map((s,i)=>I(s,`${t}[${i}]`,e,n))}var kv="__op";function T(r){let t=Object.keys(r);if(t.length!==1)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 e=t[0],n=r[e];e.endsWith("_")&&(e=e.substring(0,e.length-1)),e=e+kv;let o=(...s)=>{k.startScope(e);try{let i=n(...s);return Hd(i)&&console.error("Cannot return a Promise inside of tidy."),k.endScope(i),i}catch(i){throw k.endScope(null),i}};return Object.defineProperty(o,"name",{value:e,configurable:!0}),o}function N4(r,t){let e=I(r,"real","complex"),n=I(t,"imag","complex");$e(e.shape,n.shape,`real and imag shapes, ${e.shape} and ${n.shape}, must match in call to tf.complex().`);let o={real:e,imag:n};return k.runKernel(pp,o)}var wn=T({complex_:N4});function on(r,t,e,n){if(n==null&&(n=op(r)),n==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(typeof r=="object"&&"texture"in r){if(n!=="float32"&&n!=="int32")throw new Error(`Creating tensor from texture only supports 'float32'|'int32' dtype, while the dtype is ${n}.`);return r.channels=r.channels||"RGBA",k.backend.createTensorFromTexture(r,t||e,n)}if(!xr(r)&&!Array.isArray(r)&&typeof r!="number"&&typeof r!="boolean"&&typeof r!="string")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(t!=null){Ud(t);let o=Jt(t),s=Jt(e);E(o===s,()=>`Based on the provided shape, [${t}], the tensor should have ${o} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${e}) does not match the provided shape (${t}). `)}}return!xr(r)&&!Array.isArray(r)&&(r=[r]),t=t||e,r=n!=="string"?Gp(r,n):Bo(r,[],!0),k.makeTensor(r,t,n)}function ur(r,t,e){let n=Br(r,e);return on(r,t,n,e)}var oh={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};var Hg=4;async function G1(r,t){let e=[],n=[],o=Array.isArray(r)?r.map(i=>i.name):Object.keys(r);for(let i=0;i{let m=await u.bytes(),f=m.reduce((g,x)=>g+x.length,0)+Hg*m.length,d=new Uint8Array(f),h=0;for(let g=0;g{if(t+=s.byteLength,e.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let n=new Uint8Array(t),o=0;return e.forEach(s=>{n.set(new Uint8Array(s.buffer),o),o+=s.byteLength}),n.buffer}var Ev=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function V1(r){return Ev?Buffer.byteLength(r):new Blob([r]).size}function W1(r){if(Ev)return Buffer.from(r).toString("base64");let t=new Uint8Array(r),e="";for(let n=0,o=t.length;n{t+=o.byteLength});let e=new Uint8Array(t),n=0;return r.forEach(o=>{e.set(new Uint8Array(o),n),n+=o.byteLength}),e.buffer}function _v(r){let t="/";for(r=r.trim();r.endsWith(t);)r=r.slice(0,r.length-1);let e=r.split(t);return e[e.length-1]}function Kg(r,t){let e={modelTopology:r.modelTopology,format:r.format,generatedBy:r.generatedBy,convertedBy:r.convertedBy,weightsManifest:t};return r.signature!=null&&(e.signature=r.signature),r.userDefinedMetadata!=null&&(e.userDefinedMetadata=r.userDefinedMetadata),r.modelInitializer!=null&&(e.modelInitializer=r.modelInitializer),r.initializerSignature!=null&&(e.initializerSignature=r.initializerSignature),r.trainingConfig!=null&&(e.trainingConfig=r.trainingConfig),e}function Av(r,t,e){let n={modelTopology:r.modelTopology,format:r.format,generatedBy:r.generatedBy,convertedBy:r.convertedBy};if(r.trainingConfig!=null&&(n.trainingConfig=r.trainingConfig),r.weightsManifest!=null){if(!t)throw new Error("modelJSON has weightsManifest but weightSpecs is null");if(!e)throw new Error("modelJSON has weightsManifest but weightData is null");n.weightSpecs=t,n.weightData=e}return r.signature!=null&&(n.signature=r.signature),r.userDefinedMetadata!=null&&(n.userDefinedMetadata=r.userDefinedMetadata),r.modelInitializer!=null&&(n.modelInitializer=r.modelInitializer),r.initializerSignature!=null&&(n.initializerSignature=r.initializerSignature),n}async function qp(r,t){let e,n;return r.weightsManifest!=null&&([e,n]=await t(r.weightsManifest)),Av(r,e,n)}function Ni(r){if(r.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:r.modelTopology==null?0:V1(JSON.stringify(r.modelTopology)),weightSpecsBytes:r.weightSpecs==null?0:V1(JSON.stringify(r.weightSpecs)),weightDataBytes:r.weightData==null?0:r.weightData.byteLength}}function jg(r){let t=[];for(let e of r)t.push(...e.weights);return t}function k4(){let r=e=>{let n=e<<13,o=0;for(;(n&8388608)===0;)o-=8388608,n<<=1;return n&=-8388609,o+=947912704,n|o},t=new Uint32Array(2048);t[0]=0;for(let e=1;e<1024;e++)t[e]=r(e);for(let e=1024;e<2048;e++)t[e]=939524096+(e-1024<<13);return t}function E4(){let r=new Uint32Array(64);r[0]=0,r[31]=1199570944,r[32]=2147483648,r[63]=3347054592;for(let t=1;t<31;t++)r[t]=t<<23;for(let t=33;t<63;t++)r[t]=2147483648+(t-32<<23);return r}function _4(){let r=new Uint32Array(64);for(let t=0;t<64;t++)r[t]=1024;return r[0]=r[32]=0,r}function A4(){let r=k4(),t=E4(),e=_4();return n=>{let o=new ArrayBuffer(4*n.length),s=new Uint32Array(o);for(let i=0;i>10]+(a&1023)]+t[a>>10];s[i]=u}return new Float32Array(o)}}var Ce=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Ce.instance==null&&(Ce.instance=new Ce),Ce.instance}static registerSaveRouter(t){Ce.getInstance().saveRouters.push(t)}static registerLoadRouter(t){Ce.getInstance().loadRouters.push(t)}static getSaveHandlers(t){return Ce.getHandlers(t,"save")}static getLoadHandlers(t,e){return Ce.getHandlers(t,"load",e)}static getHandlers(t,e,n){let o=[];return(e==="load"?Ce.getInstance().loadRouters:Ce.getInstance().saveRouters).forEach(i=>{let a=i(t,n);a!==null&&o.push(a)}),o}},H1=r=>Ce.registerSaveRouter(r),q1=r=>Ce.registerLoadRouter(r),K1=r=>Ce.getSaveHandlers(r),j1=(r,t)=>Ce.getLoadHandlers(r,t);var $v="tensorflowjs",Dv=1,Uu="models_store",jl="model_info_store";function X1(){if(!z().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let r=typeof window=="undefined"?self:window,t=r.indexedDB||r.mozIndexedDB||r.webkitIndexedDB||r.msIndexedDB||r.shimIndexedDB;if(t==null)throw new Error("The current browser does not appear to support IndexedDB.");return t}function Rv(r){let t=r.result;t.createObjectStore(Uu,{keyPath:"modelPath"}),t.createObjectStore(jl,{keyPath:"modelPath"})}var Ti=class{constructor(t){if(this.indexedDB=X1(),t==null||!t)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=t}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,t)}async load(){return this.databaseAction(this.modelPath)}databaseAction(t,e){return new Promise((n,o)=>{let s=this.indexedDB.open($v,Dv);s.onupgradeneeded=()=>Rv(s),s.onsuccess=()=>{let i=s.result;if(e==null){let a=i.transaction(Uu,"readonly"),l=a.objectStore(Uu).get(this.modelPath);l.onsuccess=()=>{if(l.result==null)return i.close(),o(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(l.result.modelArtifacts)},l.onerror=c=>(i.close(),o(l.error)),a.oncomplete=()=>i.close()}else{let a=Ni(e),u=i.transaction(jl,"readwrite"),l=u.objectStore(jl),c=l.put({modelPath:this.modelPath,modelArtifactsInfo:a}),p;c.onsuccess=()=>{p=i.transaction(Uu,"readwrite");let f=p.objectStore(Uu).put({modelPath:this.modelPath,modelArtifacts:e,modelArtifactsInfo:a});f.onsuccess=()=>n({modelArtifactsInfo:a}),f.onerror=d=>{l=u.objectStore(jl);let h=l.delete(this.modelPath);h.onsuccess=()=>(i.close(),o(f.error)),h.onerror=g=>(i.close(),o(f.error))}},c.onerror=m=>(i.close(),o(c.error)),u.oncomplete=()=>{p==null?i.close():p.oncomplete=()=>i.close()}}},s.onerror=i=>o(s.error)})}};Ti.URL_SCHEME="indexeddb://";var Y1=r=>z().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(Ti.URL_SCHEME)?$4(r.slice(Ti.URL_SCHEME.length)):null;Ce.registerSaveRouter(Y1);Ce.registerLoadRouter(Y1);function $4(r){return new Ti(r)}function D4(r){return r.startsWith(Ti.URL_SCHEME)?r.slice(Ti.URL_SCHEME.length):r}var Xg=class{constructor(){this.indexedDB=X1()}async listModels(){return new Promise((t,e)=>{let n=this.indexedDB.open($v,Dv);n.onupgradeneeded=()=>Rv(n),n.onsuccess=()=>{let o=n.result,s=o.transaction(jl,"readonly"),a=s.objectStore(jl).getAll();a.onsuccess=()=>{let u={};for(let l of a.result)u[l.modelPath]=l.modelArtifactsInfo;t(u)},a.onerror=u=>(o.close(),e(a.error)),s.oncomplete=()=>o.close()},n.onerror=o=>e(n.error)})}async removeModel(t){return t=D4(t),new Promise((e,n)=>{let o=this.indexedDB.open($v,Dv);o.onupgradeneeded=()=>Rv(o),o.onsuccess=()=>{let s=o.result,i=s.transaction(jl,"readwrite"),a=i.objectStore(jl),u=a.get(t),l;u.onsuccess=()=>{if(u.result==null)return s.close(),n(new Error(`Cannot find model with path '${t}' in IndexedDB.`));{let c=a.delete(t),p=()=>{l=s.transaction(Uu,"readwrite");let f=l.objectStore(Uu).delete(t);f.onsuccess=()=>e(u.result.modelArtifactsInfo),f.onerror=d=>n(u.error)};c.onsuccess=p,c.onerror=m=>(p(),s.close(),n(u.error))}},u.onerror=c=>(s.close(),n(u.error)),i.oncomplete=()=>{l==null?s.close():l.oncomplete=()=>s.close()}},o.onerror=s=>n(o.error)})}};var Xa="/",Kp="tensorflowjs_models",Z1="info",R4="model_topology",F4="weight_specs",O4="weight_data",P4="model_metadata";function J1(r){return{info:[Kp,r,Z1].join(Xa),topology:[Kp,r,R4].join(Xa),weightSpecs:[Kp,r,F4].join(Xa),weightData:[Kp,r,O4].join(Xa),modelMetadata:[Kp,r,P4].join(Xa)}}function Q1(r){for(let t of Object.values(r))window.localStorage.removeItem(t)}function L4(r){let t=r.split(Xa);if(t.length<3)throw new Error(`Invalid key format: ${r}`);return t.slice(1,t.length-1).join(Xa)}function M4(r){return r.startsWith(ki.URL_SCHEME)?r.slice(ki.URL_SCHEME.length):r}var ki=class{constructor(t){if(!z().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,t==null||!t)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=t,this.keys=J1(this.modelPath)}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let e=JSON.stringify(t.modelTopology),n=JSON.stringify(t.weightSpecs),o=Ni(t);try{this.LS.setItem(this.keys.info,JSON.stringify(o)),this.LS.setItem(this.keys.topology,e),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,W1(t.weightData));let s={format:t.format,generatedBy:t.generatedBy,convertedBy:t.convertedBy,signature:t.signature!=null?t.signature:void 0,userDefinedMetadata:t.userDefinedMetadata!=null?t.userDefinedMetadata:void 0,modelInitializer:t.modelInitializer!=null?t.modelInitializer:void 0,initializerSignature:t.initializerSignature!=null?t.initializerSignature:void 0,trainingConfig:t.trainingConfig!=null?t.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(s)),{modelArtifactsInfo:o}}catch(s){throw Q1(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${o.modelTopologyBytes}, weightSpecsBytes=${o.weightSpecsBytes}, weightDataBytes=${o.weightDataBytes}.`)}}}async load(){let t=JSON.parse(this.LS.getItem(this.keys.info));if(t==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(t.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let e={},n=JSON.parse(this.LS.getItem(this.keys.topology));if(n==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);e.modelTopology=n;let o=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(o==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);e.weightSpecs=o;let s=this.LS.getItem(this.keys.modelMetadata);if(s!=null){let a=JSON.parse(s);e.format=a.format,e.generatedBy=a.generatedBy,e.convertedBy=a.convertedBy,a.signature!=null&&(e.signature=a.signature),a.userDefinedMetadata!=null&&(e.userDefinedMetadata=a.userDefinedMetadata),a.modelInitializer!=null&&(e.modelInitializer=a.modelInitializer),a.initializerSignature!=null&&(e.initializerSignature=a.initializerSignature),a.trainingConfig!=null&&(e.trainingConfig=a.trainingConfig)}let i=this.LS.getItem(this.keys.weightData);if(i==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return e.weightData=U1(i),e}};ki.URL_SCHEME="localstorage://";var tE=r=>z().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(ki.URL_SCHEME)?z4(r.slice(ki.URL_SCHEME.length)):null;Ce.registerSaveRouter(tE);Ce.registerLoadRouter(tE);function z4(r){return new ki(r)}var Yg=class{constructor(){E(z().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),E(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let t={},e=Kp+Xa,n=Xa+Z1;for(let o=0;o"scheme must not be undefined or null."),t.endsWith(jp)&&(t=t.slice(0,t.indexOf(jp))),E(t.length>0,()=>"scheme must not be an empty string.");let n=Er.getInstance();E(n.managers[t]==null,()=>`A model store manager is already registered for scheme '${t}'.`),n.managers[t]=e}static getManager(t){let e=Er.getInstance().managers[t];if(e==null)throw new Error(`Cannot find model manager for scheme '${t}'`);return e}static getSchemes(){return Object.keys(Er.getInstance().managers)}};function Zg(r){if(r.indexOf(jp)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Er.getSchemes().join(",")}`);return{scheme:r.split(jp)[0],path:r.split(jp)[1]}}async function eE(r,t,e=!1){E(r!==t,()=>`Old path and new path are the same: '${r}'`);let n=Ce.getLoadHandlers(r);E(n.length>0,()=>`Copying failed because no load handler is found for source URL ${r}.`),E(n.length<2,()=>`Copying failed because more than one (${n.length}) load handlers for source URL ${r}.`);let o=n[0],s=Ce.getSaveHandlers(t);E(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),E(s.length<2,()=>`Copying failed because more than one (${n.length}) save handlers for destination URL ${t}.`);let i=s[0],a=Zg(r).scheme,u=Zg(r).path,l=a===Zg(r).scheme,c=await o.load();e&&l&&await Er.getManager(a).removeModel(u);let p=await i.save(c);return e&&!l&&await Er.getManager(a).removeModel(u),p.modelArtifactsInfo}async function rE(){let r=Er.getSchemes(),t={};for(let e of r){let n=await Er.getManager(e).listModels();for(let o in n){let s=e+jp+o;t[s]=n[o]}}return t}async function nE(r){let t=Zg(r);return Er.getManager(t.scheme).removeModel(t.path)}async function oE(r,t){return eE(r,t,!1)}async function sE(r,t){return eE(r,t,!0)}var Fv=class{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(t,e){return fetch(t,e)}now(){return performance.now()}encode(t,e){if(e!=="utf-8"&&e!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${e}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(t)}decode(t,e){return new TextDecoder(e).decode(t)}setTimeoutCustom(t,e){if(typeof window=="undefined"||!z().getBool("USE_SETTIMEOUTCUSTOM")){setTimeout(t,e);return}this.functionRefs.push(t),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")},e),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",n=>{if(n.source===window&&n.data.name===this.messageName){n.stopPropagation();let o=this.functionRefs[n.data.index];o(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}},!0))}};if(z().get("IS_BROWSER")){z().setPlatform("browser",new Fv);try{Er.registerManager(ki.URL_SCHEME,new Yg)}catch(r){}try{Er.registerManager(Ti.URL_SCHEME,new Xg)}catch(r){}}var B4={importFetch:()=>iE()},Ov;var Pv=class{constructor(){this.util=aE(),this.textEncoder=new this.util.TextEncoder}fetch(t,e){return z().global.fetch!=null?z().global.fetch(t,e):(Ov==null&&(Ov=B4.importFetch()),Ov(t,e))}now(){let t=process.hrtime();return t[0]*1e3+t[1]/1e6}encode(t,e){if(e!=="utf-8"&&e!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${e}`);return this.textEncoder.encode(t)}decode(t,e){return t.length===0?"":new this.util.TextDecoder(e).decode(t)}};z().get("IS_NODE")&&!z().get("IS_BROWSER")&&z().setPlatform("node",new Pv);function wt(r,t="float32",e){return t=t||"float32",Ud(r),new pe(r,t,e)}function V4(r,t){let e=I(r,"x","cast");if(!ov(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&e.dtype!=="string"||t!=="string"&&e.dtype==="string")throw new Error("Only strings can be casted to strings");let n={x:e},o={dtype:t};return k.runKernel(lo,n,o)}var J=T({cast_:V4});function G4(r){let e={x:I(r,"x","clone","string_or_numeric")};return k.runKernel(co,e)}var sn=T({clone_:G4});function Jg(r,t=!1){console.log(r.toString(t))}vv();var W4={buffer:wt,cast:J,clone:sn,print:Jg};P1(W4);var _r={};Wt(_r,{browserFiles:()=>uE,browserHTTPRequest:()=>mE,concatenateArrayBuffers:()=>Hp,copyModel:()=>oE,decodeWeights:()=>qg,encodeWeights:()=>G1,fromMemory:()=>fE,fromMemorySync:()=>Gv,getLoadHandlers:()=>j1,getModelArtifactsForJSON:()=>qp,getModelArtifactsForJSONSync:()=>Av,getModelArtifactsInfoForJSON:()=>Ni,getSaveHandlers:()=>K1,getWeightSpecs:()=>jg,http:()=>tx,isHTTPScheme:()=>Qg,listModels:()=>rE,loadWeights:()=>cE,moveModel:()=>sE,registerLoadRouter:()=>q1,registerSaveRouter:()=>H1,removeModel:()=>nE,weightsLoaderFactory:()=>Bv,withSaveHandler:()=>dE,withSaveHandlerSync:()=>hE});var U4="model",H4=".json",q4=".weights.bin";function lE(r){return new Promise(t=>setTimeout(t)).then(r)}var Ya=class{constructor(t){if(!z().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");t.startsWith(Ya.URL_SCHEME)&&(t=t.slice(Ya.URL_SCHEME.length)),(t==null||t.length===0)&&(t=U4),this.modelJsonFileName=t+H4,this.weightDataFileName=t+q4}async save(t){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let e=window.URL.createObjectURL(new Blob([t.weightData],{type:"application/octet-stream"}));if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let n=[{paths:["./"+this.weightDataFileName],weights:t.weightSpecs}],o=Kg(t,n),s=window.URL.createObjectURL(new Blob([JSON.stringify(o)],{type:"application/json"})),i=this.modelJsonAnchor==null?document.createElement("a"):this.modelJsonAnchor;if(i.download=this.modelJsonFileName,i.href=s,await lE(()=>i.dispatchEvent(new MouseEvent("click"))),t.weightData!=null){let a=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;a.download=this.weightDataFileName,a.href=e,await lE(()=>a.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Ni(t)}}}};Ya.URL_SCHEME="downloads://";var Lv=class{constructor(t){if(t==null||t.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${t}`);this.jsonFile=t[0],this.weightsFiles=t.slice(1)}async load(){return new Promise((t,e)=>{let n=new FileReader;n.onload=o=>{let s=JSON.parse(o.target.result),i=s.modelTopology;if(i==null){e(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(s.weightsManifest==null){e(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){t({modelTopology:i});return}let u=qp(s,l=>this.loadWeights(l));t(u)},n.onerror=o=>e(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)})}loadWeights(t){let e=[],n=[];for(let i of t)e.push(...i.weights),n.push(...i.paths);let o=this.checkManifestAndWeightFiles(t),s=n.map(i=>this.loadWeightsFile(i,o[i]));return Promise.all(s).then(i=>[e,Hp(i)])}loadWeightsFile(t,e){return new Promise((n,o)=>{let s=new FileReader;s.onload=i=>{let a=i.target.result;n(a)},s.onerror=i=>o(`Failed to weights data from file of path '${t}'.`),s.readAsArrayBuffer(e)})}checkManifestAndWeightFiles(t){let e=[],n=this.weightsFiles.map(s=>_v(s.name)),o={};for(let s of t)s.paths.forEach(i=>{let a=_v(i);if(e.indexOf(a)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${a}'`);if(e.push(a),n.indexOf(a)===-1)throw new Error(`Weight file with basename '${a}' is not provided.`);o[i]=this.weightsFiles[n.indexOf(a)]});if(e.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${e.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return o}},K4=r=>z().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(Ya.URL_SCHEME)?j4(r.slice(Ya.URL_SCHEME.length)):null;Ce.registerSaveRouter(K4);function j4(r="model"){return new Ya(r)}function uE(r){return new Lv(r)}function Mv(r,t,e,n){i(r),e=e==null?0:e,n=n==null?1:n,a(e,n);let o=0,s=u=>(u.then(l=>{let c=e+ ++o/r.length*(n-e);return t(c),l}),u);function i(u){E(u!=null&&Array.isArray(u)&&u.length>0,()=>"promises must be a none empty array")}function a(u,l){E(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${u}`),E(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${l}`),E(l>=u,()=>`startFraction must be no more than endFraction, but got startFraction ${u} and endFraction ${l}`)}return Promise.all(r.map(s))}async function zv(r,t){t==null&&(t={});let e=t.fetchFunc==null?z().platform.fetch:t.fetchFunc,n=r.map(p=>e(p,t.requestInit,{isBinary:!0})),o=0,s=.5,a=(t.onProgress==null?await Promise.all(n):await Mv(n,t.onProgress,o,s)).map(p=>p.arrayBuffer()),u=.5,l=1;return t.onProgress==null?await Promise.all(a):await Mv(a,t.onProgress,u,l)}async function cE(r,t="",e,n){return Bv(i=>zv(i,{requestInit:n}))(r,t,e)}function Bv(r){return async(t,e="",n)=>{let o=t.map(()=>!1),s={},i=n!=null?n.map(()=>!1):[],a=[];if(t.forEach((f,d)=>{let h=0;f.weights.forEach(g=>{let x="quantization"in g?g.quantization.dtype:g.dtype,b=oh[x]*Jt(g.shape),w=()=>{o[d]=!0,s[d]==null&&(s[d]=[]),s[d].push({manifestEntry:g,groupOffset:h,sizeBytes:b})};n!=null?n.forEach((C,N)=>{C===g.name&&(w(),i[N]=!0)}):w(),a.push(g.name),h+=b})}),!i.every(f=>f)){let f=n.filter((d,h)=>!i[h]);throw new Error(`Could not find weights in manifest with names: ${f.join(", ")}. +Manifest JSON has weights with names: ${a.join(", ")}.`)}let u=o.reduce((f,d,h)=>(d&&f.push(h),f),[]),l=[];u.forEach(f=>{t[f].paths.forEach(d=>{let h=e+(e.endsWith("/")?"":"/")+d;l.push(h)})});let c=await r(l),p={},m=0;return u.forEach(f=>{let d=t[f].paths.length,h=0;for(let C=0;C{let N=g.slice(C.groupOffset,C.groupOffset+C.sizeBytes),_=qg(N,[C.manifestEntry]);for(let A in _)p[A]=_[A]}),m+=d}),p}}var X4="application/octet-stream",Y4="application/json",sh=class{constructor(t,e){if(this.DEFAULT_METHOD="POST",e==null&&(e={}),this.weightPathPrefix=e.weightPathPrefix,this.onProgress=e.onProgress,this.weightUrlConverter=e.weightUrlConverter,e.fetchFunc!=null?(E(typeof e.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=e.fetchFunc):this.fetch=z().platform.fetch,E(t!=null&&t.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(t)&&E(t.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${t.length}).`),this.path=t,e.requestInit!=null&&e.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=e.requestInit||{}}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let e=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);e.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:t.weightSpecs}],o=Kg(t,n);e.body.append("model.json",new Blob([JSON.stringify(o)],{type:Y4}),"model.json"),t.weightData!=null&&e.body.append("model.weights.bin",new Blob([t.weightData],{type:X4}),"model.weights.bin");let s=await this.fetch(this.path,e);if(s.ok)return{modelArtifactsInfo:Ni(t),responses:[s]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${s.status}.`)}async load(){let t=await this.fetch(this.path,this.requestInit);if(!t.ok)throw new Error(`Request to ${this.path} failed with status code ${t.status}. Please verify this URL points to the model JSON of the model to load.`);let e;try{e=await t.json()}catch(s){let i=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?i+=" 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.":i+=" Please make sure the server is serving valid JSON for this request.",new Error(i)}let n=e.modelTopology,o=e.weightsManifest;if(n==null&&o==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return qp(e,s=>this.loadWeights(s))}async loadWeights(t){let e=Array.isArray(this.path)?this.path[1]:this.path,[n,o]=Z4(e),s=this.weightPathPrefix||n,i=jg(t),a=[],u=[];for(let c of t)for(let p of c.paths)this.weightUrlConverter!=null?u.push(this.weightUrlConverter(p)):a.push(s+p+o);this.weightUrlConverter&&a.push(...await Promise.all(u));let l=await zv(a,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[i,Hp(l)]}};sh.URL_SCHEME_REGEX=/^https?:\/\//;function Z4(r){let t=r.lastIndexOf("/"),e=r.lastIndexOf("?"),n=r.substring(0,t),o=e>t?r.substring(e):"";return[n+"/",o]}function Qg(r){return r.match(sh.URL_SCHEME_REGEX)!=null}var pE=(r,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let e=!0;if(Array.isArray(r)?e=r.every(n=>Qg(n)):e=Qg(r),e)return tx(r,t)}return null};Ce.registerSaveRouter(pE);Ce.registerLoadRouter(pE);function tx(r,t){return new sh(r,t)}function mE(r,t){return tx(r,t)}var ih=class{constructor(t){this.modelArtifacts=t}load(){return this.modelArtifacts}},ex=class{constructor(t){this.saveHandler=t}save(t){return this.saveHandler(t)}},Vv=class{constructor(t){t.load&&(this.load=()=>Promise.resolve(t.load())),t.save&&(this.save=e=>Promise.resolve(t.save(e)))}};function fE(r,t,e,n){let o=arguments;return new Vv(Gv(...o))}function Gv(r,t,e,n){return arguments.length===1?r.modelTopology!=null||r.weightSpecs!=null?new ih(r):(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 ih({modelTopology:r})):(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 ih({modelTopology:r,weightSpecs:t,weightData:e,trainingConfig:n}))}function dE(r){return new ex(r)}function hE(r){return new ex(r)}var yE={};Wt(yE,{confusionMatrix:()=>xE});function J4(r,t,e=!1,n=!1){let o=I(r,"a","matMul"),s=I(t,"b","matMul");[o,s]=Ut(o,s);let i={a:o,b:s},a={transposeA:e,transposeB:n};return k.runKernel(Ho,i,a)}var Lt=T({matMul_:J4});function Q4(r,t,e=1,n=0,o="int32"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let i={indices:I(r,"indices","oneHot","int32")},a={dtype:o,depth:t,onValue:e,offValue:n};return k.runKernel(gs,i,a)}var Ei=T({oneHot_:Q4});function dpt(){z().set("PROD",!0)}function hpt(){z().set("DEBUG",!0)}function gpt(){z().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function Wv(r){z().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(r+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}L1(Wv);function xpt(){k.disposeVariables()}function Pn(){return k}function ah(){return k.memory()}function ypt(r){return k.profile(r)}function B(r,t){return k.tidy(r,t)}function vt(r){nh(r).forEach(e=>e.dispose())}function De(r){return k.keep(r)}function bpt(r){return k.time(r)}function tH(r){return k.setBackend(r)}function wpt(){return k.ready()}function Cpt(){return k.backendName}function Ipt(r){k.removeBackend(r)}function Spt(r){return k.findBackend(r)}function vpt(r){return k.findBackendFactory(r)}function Xp(r,t,e=1){return k.registerBackend(r,t,e)}function gE(){return k.backend}function Npt(r,t){z().setPlatform(r,t)}function eH(r){let e={input:I(r,"input","imag")};return k.runKernel(Sp,e)}var Xl=T({imag_:eH});function rH(r){let e={x:I(r,"x","neg")};return k.runKernel(pi,e)}var Ht=T({neg_:rH});function nH(r){let e={input:I(r,"input","real")};return k.runKernel(Rp,e)}var Za=T({real_:nH});function oH(r,t,e){let n=I(r,"x","transpose");if(t==null&&(t=n.shape.map((i,a)=>a).reverse()),E(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(i=>{E(i>=0&&i`All entries in 'perm' must be between 0 and ${n.rank-1} but got ${t}`)}),n.rank<=1)return n.clone();let o={x:n},s={perm:t};return n.dtype==="complex64"?B(()=>{let i=Za(n),a=Xl(n);return i=k.runKernel(Qn,{x:i},s),a=k.runKernel(Qn,{x:a},s),e&&(a=Ht(a)),wn(i,a)}):k.runKernel(Qn,o,s)}var Ot=T({transpose_:oH});function sH(r,t,e){let n=I(r,"labels","confusionMatrix"),o=I(t,"predictions","confusionMatrix");E(e==null||e>0&&Number.isInteger(e),()=>`If provided, numClasses must be a positive integer, but got ${e}`),E(n.rank===1,()=>`Expected the rank of labels to be 1, but got ${n.rank}`),E(o.rank===1,()=>`Expected the rank of predictions to be 1, but got ${o.rank}`),E(n.shape[0]===o.shape[0],()=>`Mismatch in the number of examples: ${n.shape[0]} vs. ${o.shape[0]}. Labels and predictions should have the same number of elements.`),E(e>0&&Number.isInteger(e),()=>`numClasses is required to be a positive integer, but got ${e}`);let s=Ei(J(n,"int32"),e),i=Ei(J(o,"int32"),e),a=Ot(s),u=Lt(a,i);return J(u,"int32")}var xE=T({confusionMatrix_:sH});var Vr={};Wt(Vr,{assertAndGetBroadcastShape:()=>Pt,getBroadcastDims:()=>bE,getReductionAxes:()=>ge});function bE(r,t){let e=r.length,n=[];for(let o=0;o1&&i===1&&n.unshift(s)}return n}function ge(r,t){let e=[];for(let n=0;n1)&&e.unshift(s)}return e}function Pt(r,t){let e=[],n=Math.max(r.length,t.length);for(let o=0;omH,fromPixelsAsync:()=>cH,toPixels:()=>pH});function rx(r,t,e){if(Yn(r),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let n=Br(r,e);if(n.length!==3&&n.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return on(r,t,n,e)}var Hu;function wE(r,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(r==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let e=!1,n=!1,o=!1,s=!1,i=!1,a=!1;if(r.data instanceof Uint8Array)e=!0;else if(typeof ImageData!="undefined"&&r instanceof ImageData)n=!0;else if(typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement)o=!0;else if(typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement)s=!0;else if(r.getContext!=null)i=!0;else if(typeof ImageBitmap!="undefined"&&r instanceof ImageBitmap)a=!0;else 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 ${r.constructor.name}`);if(Jd(Yd,k.backendName)!=null){let d={pixels:r},h={numChannels:t};return k.runKernel(Yd,d,h)}let[l,c]=o?[r.videoWidth,r.videoHeight]:[r.width,r.height],p;if(i)p=r.getContext("2d").getImageData(0,0,l,c).data;else if(n||e)p=r.data;else if(s||o||a){if(Hu==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")Hu=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else Hu=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Hu.canvas.width=l,Hu.canvas.height=c,Hu.drawImage(r,0,0,l,c),p=Hu.getImageData(0,0,l,c).data}let m;if(t===4)m=new Int32Array(p);else{let d=l*c;m=new Int32Array(d*t);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(e.dtype!=="float32"&&e.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${e.dtype}. Please use float32 or int32 tensors.`);let i=await e.data(),a=e.dtype==="float32"?255:1,u=new Uint8ClampedArray(o*n*4);for(let l=0;l1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${f}.`)}else if(e.dtype==="int32"&&(f<0||f>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${f}.`);s===1?(c[0]=f*a,c[1]=f*a,c[2]=f*a):c[m]=f*a}let p=l*4;u[p+0]=Math.round(c[0]),u[p+1]=Math.round(c[1]),u[p+2]=Math.round(c[2]),u[p+3]=Math.round(c[3])}if(t!=null){t.width=o,t.height=n;let l=t.getContext("2d"),c=new ImageData(u,o,n);l.putImageData(c,0,0)}return e!==r&&e.dispose(),u}var mH=T({fromPixels_:wE});var ox={};Wt(ox,{prepareAndValidate:()=>CE});function CE(r,t){let e=r.shape.length,n=t.shape.length;if(e<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${e}.`);if(n<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${n}.`);if(t.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[n-1]>e)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[n-1]} vs. ${e}`);if(Jt(r.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${r.shape}.`);let o=t.shape,s=o[o.length-1],i=1;for(let p=0;pp/l),1].slice(0,s);return[u,i,l,c]}var lh={};Wt(lh,{calculateShapes:()=>IE,validateInput:()=>sx,validateUpdateShape:()=>Uv});function Uv(r,t,e){let n=t.rank>1?t.shape[t.rank-1]:1,o=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${e.shape}, indices.shape: ${t.shape}, shape: ${r}, sliceDim: ${n}, and batchDim: ${o}.`;if(e.rank1?t.shape[n-1]:1,s=e.length,i=1;for(let p=o;pdH,computeFlatOffset:()=>bH,computeOutShape:()=>gH,getNormalizedAxes:()=>xH,isSliceContinous:()=>yH,maskToAxes:()=>hH,parseSliceParams:()=>qv,sliceInfo:()=>wH,startForAxis:()=>AE,startIndicesWithElidedDims:()=>kE,stopForAxis:()=>$E,stopIndicesWithElidedDims:()=>EE,stridesForAxis:()=>_E,stridesWithElidedDims:()=>vE});var Hv=-2,fH=-1;function dH(r,t,e){let n=r.shape.length;E(n===t.length,()=>`Error in slice${n}D: Length of begin ${t} must match the rank of the array (${n}).`),E(n===e.length,()=>`Error in slice${n}D: Length of size ${e} must match the rank of the array (${n}).`);for(let o=0;o`Error in slice${n}D: begin[${o}] + size[${o}] (${t[o]+e[o]}) would overflow input.shape[${o}] (${r.shape[o]})`)}function hH(r){let t=[],e=0;for(;r>0;)r&1&&t.push(e),r/=2,e++;return t}function gH(r,t,e){let n=[];for(let o=0;o0){let f=t[0],d=e+1;c=kE(i,f,d,n,r),p=EE(a,f,d,o,r),m=vE(s,f,d,r)}else for(let f=0;f-1)s[a]=0;else{let u=NE(t,e,a),l=n[u];r&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{let u=NE(t,e,a),l=n[u];r&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let u=n[o];return i<0&&(i+=u),i=np(0,i,u-1),i}function $E(r,t,e,n,o,s){let i=t[o],a=e[o]||1;(r&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let u=n[o];return i<0&&(i+=u),a>0?i=np(0,i,u):i=np(-1,i,u-1),i}function yH(r,t,e){let n=e.length;for(let o=0;o1){n=o;break}for(let o=n+1;o0||e[o]!==r[o])return!1;return!0}function bH(r,t){let e=r.length>0?r[r.length-1]:1;for(let n=0;n{E(i!==-1,()=>"slice() does not support negative begin indexing.")});let s;return e==null?s=new Array(o).fill(-1):typeof e=="number"?s=[e,...new Array(o-1).fill(-1)]:e.lengthi>=0?i:(E(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${a}.`),r.shape[a]-n[a])),[n,s]}function wH(r,t,e,n,o,s,i,a,u){let l;if(n==null?(l=new Array(t.length),l.fill(1)):l=n,i!=null&&(i&i-1)!==0)throw new Error("Multiple ellipses in slice is not allowed.");let c=!1,p={dims:l.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:e.slice(),strides:l.slice(),beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};for(let w=0;w0?0:-1,m.strides[w]>0?N:N-1];if(C&&m.strides[w]<=0)throw Error("only stride 1 allowed on non-range indexing.");h=h&&m.strides[w]===1;let $=!!(m.beginMask&1<=N)throw Error(`slice index ${m.begin[w]} of dimension ${w} out of bounds.`)}else m.begin[w]=SE(m.begin[w],0,m.strides[w],N,_,A),m.end[w]=SE(m.end[w],1,m.strides[w],N,_,A);let V=m.strides[w]===1&&m.begin[w]===0&&m.end[w]===N;f=f&&V,d=d&&(w===0&&m.strides[w]===1||V)}else f=f&&m.strides[w]===1&&$,d=d&&(w===0&&m.strides[w]===1||$);let F,P=!1;if(m.beginValid&&m.endValid?(F=m.end[w]-m.begin[w],P=!0):C?(F=1,P=!0):$&&N>=0&&(m.strides[w]<0?F=-N:F=N,P=!0),P){let V;F===0||F<0!=m.strides[w]<0?V=0:V=Math.trunc(F/m.strides[w])+(F%m.strides[w]!==0?1:0),g.push(V)}else g.push(-1)}for(let w=0;w=0?x.push(g[C]):C===Hv&&x.push(1)}return{finalShapeSparse:x.filter((w,C)=>m.finalShapeGatherIndices[C]!==Hv),finalShape:x,isIdentity:f,sliceDim0:d,isSimpleSlice:h,begin:m.begin,end:m.end,strides:m.strides}}function CH(r,t){t.beginMask=0,t.endMask=0,t.shrinkAxisMask=0;let e=0;t.beginValid=r.begin!=null,t.endValid=r.end!=null,t.begin=new Array(t.dims),t.end=new Array(t.dims),t.strides=new Array(t.dims),t.finalShapeGatherIndices=[],t.finalShapeGatherIndicesSparse=[],t.inputShapeGatherIndicesSparse=new Array(t.dims);for(let n=0;n0?s[t]:s[t+1&1];{let i=r<0?n+r:r;return is[1]?s[1]:i}}var Q={};Wt(Q,{Serializable:()=>uh,SerializationMap:()=>_i,registerClass:()=>Cn});var uh=class{getClassName(){return this.constructor.className}static fromConfig(t,e){return new t(e)}},_i=class{constructor(){this.classNameMap={}}static getMap(){return _i.instance==null&&(_i.instance=new _i),_i.instance}static register(t){_i.getMap().classNameMap[t.className]=[t,t.fromConfig]}};function Cn(r){E(r.className!=null,()=>"Class being registered does not have the static className property defined."),E(typeof r.className=="string",()=>"className is required to be a string, but got type "+typeof r.className),E(r.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),_i.register(r)}var OE={};Wt(OE,{TEST_EPSILON_FLOAT16:()=>DE,createVideoElement:()=>EH,encodeStrings:()=>FE,expectArrayBuffersEqual:()=>kH,expectArraysClose:()=>SH,expectArraysEqual:()=>NH,expectNumbersClose:()=>RE,expectPromiseToFail:()=>vH,expectValuesInRange:()=>TH,play:()=>_H,testEpsilon:()=>ix});var IH=.001,DE=.1;function SH(r,t,e){return e==null&&(e=ix()),Kv(r,t,(n,o)=>jv(n,o,e))}function ix(){return k.backend.floatPrecision()===32?IH:DE}function Kv(r,t,e){let n=!0;if((xr(r)||xr(t))&&(n=!1),xr(r)&&xr(t)&&(n=!0),n){let i=r.constructor.name,a=t.constructor.name;if(i!==a)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${a}`)}if(Array.isArray(r)&&Array.isArray(t)){let i=Br(r),a=Br(t);if(!Dn(i,a))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${a}]`)}let o=xr(r)?r:Bo(r),s=xr(t)?t:Bo(t);if(o.length!==s.length)throw new Error(`Arrays have different lengths actual: ${o.length} vs expected: ${s.length}. Actual: ${o}. Expected: ${s}.`);for(let i=0;it.fail(),()=>t()),typeof expect!="undefined"&&expect().nothing()}function NH(r,t){let e=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Vo(r)||Vo(r[0])||Vo(t)||Vo(t[0])?K0(r,e,(n,o)=>n==o):K0(r,t,(n,o)=>j0(n,o,0))}function RE(r,t,e){if(e==null&&(e=ix()),!j0(r,t,e))throw new Error(`Numbers differ: actual === ${r}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function j0(r,t,e){return!isFinite(r)&&!isFinite(t)?!0:!(isNaN(r)||isNaN(t)||Math.abs(r-t)>e)}function TH(r,t,e){for(let n=0;ne)throw new Error(`Value out of range:${r[n]} low: ${t}, high: ${e}`)}function kH(r,t){let e=new Float32Array(r),n=new Float32Array(t);if(e.length!==n.length)throw new Error(`Expected ArrayBuffer to be of length ${n.length}, but it was ${e.length}`);for(let o=0;o{t.addEventListener("loadeddata",n=>e(t)),t.load()})}async function _H(r){await r.play(),"requestVideoFrameCallback"in r&&await new Promise(t=>{r.requestVideoFrameCallback(t)})}var PE="4.0.0";function AH(r,t){let e=I(r,"a","add"),n=I(t,"b","add");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(Zn,o)}var X=T({add_:AH});function $H(r,t){let e=I(r,"a","floorDiv"),n=I(t,"b","floorDiv");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(ns,o)}var Yp=T({floorDiv_:$H});function DH(r,t){let e=I(r,"a","div"),n=I(t,"b","div");if([e,n]=Ut(e,n),e.dtype==="int32"&&n.dtype==="int32")return Yp(e,n);let o={a:e,b:n},s={};return k.runKernel(Qo,o,s)}var pt=T({div_:DH});function RH(r,t){let e=I(r,"a","mul"),n=I(t,"b","mul");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(hs,o)}var D=T({mul_:RH});function FH(r){let t=I(r,"x","abs");if(t.dtype==="complex64"){let e={x:t};return k.runKernel(_l,e)}else{let e={x:t};return k.runKernel(ii,e)}}var Ee=T({abs_:FH});function OH(r){let e={x:I(r,"x","acos")};return k.runKernel(oa,e)}var ax=T({acos_:OH});function PH(r){let e={x:I(r,"x","acosh")};return k.runKernel(sa,e)}var lx=T({acosh_:PH});function LH(r){E(Array.isArray(r),()=>"The argument passed to tf.addN() must be a list of tensors"),E(r.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${r.length}`);let t=r.map((o,s)=>I(o,`tensors${s}`,"addN")),e=t[0];t.forEach(o=>{if(o.dtype!==e.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(o=>{if(!Dn(o.shape,e.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let n=t;return k.runKernel(Go,n)}var LE=T({addN_:LH});function MH(r,t=null,e=!1){let o={x:I(r,"x","all","bool")},s={axis:t,keepDims:e};return k.runKernel(ia,o,s)}var Zp=T({all_:MH});function zH(r,t=null,e=!1){let o={x:I(r,"x","any","bool")},s={axis:t,keepDims:e};return k.runKernel(aa,o,s)}var qu=T({any_:zH});function BH(r,t=0){let n={x:I(r,"x","argMax")},o={axis:t};return k.runKernel(Wo,n,o)}var Ai=T({argMax_:BH});function VH(r,t=0){let n={x:I(r,"x","argMin")},o={axis:t};return k.runKernel(kl,n,o)}var ux=T({argMin_:VH});function GH(r){let e={x:I(r,"x","asin")};return k.runKernel(la,e)}var cx=T({asin_:GH});function WH(r){let e={x:I(r,"x","asinh")};return k.runKernel(ua,e)}var px=T({asinh_:WH});function UH(r){let e={x:I(r,"x","atan")};return k.runKernel(ca,e)}var mx=T({atan_:UH});function HH(r,t){let e=I(r,"a","atan2"),n=I(t,"b","atan2");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(ma,o)}var fx=T({atan2_:HH});function qH(r){let e={x:I(r,"x","atanh")};return k.runKernel(pa,e)}var dx=T({atanh_:qH});function KH(r,t,e,n,o="NHWC",s){let i=r[3],a=[...t,i],u=zE(o);return ju(r,a,e,s,n,null,null,u)}function Y0(r,t,e,n,o,s,i="channelsLast"){let[a,u]=hx(t),l;if(i==="channelsLast")l=[a,u,r[3],r[3]];else if(i==="channelsFirst")l=[a,u,r[1],r[1]];else throw new Error(`Unknown dataFormat ${i}`);return ju(r,l,e,n,o,s,!1,i)}function jH(r,t,e,n,o,s,i="NDHWC"){let[a,u,l]=X0(t),c,p;if(i==="NDHWC")p="channelsLast",c=[a,u,l,r[4],r[4]];else if(i==="NCDHW")p="channelsFirst",c=[a,u,l,r[1],r[1]];else throw new Error(`Unknown dataFormat ${i}`);return ME(r,c,e,n,o,!1,p,s)}function ju(r,t,e,n,o,s,i=!1,a="channelsLast"){let[u,l,c,p]=[-1,-1,-1,-1];if(a==="channelsLast")[u,l,c,p]=r;else if(a==="channelsFirst")[u,p,l,c]=r;else throw new Error(`Unknown dataFormat ${a}`);let[m,f,,d]=t,[h,g]=hx(e),[x,b]=hx(n),w=Jp(m,x),C=Jp(f,b),{padInfo:N,outHeight:_,outWidth:A}=ZH(o,l,c,h,g,w,C,s,a),$=i?d*p:d,F;return a==="channelsFirst"?F=[u,$,_,A]:a==="channelsLast"&&(F=[u,_,A,$]),{batchSize:u,dataFormat:a,inHeight:l,inWidth:c,inChannels:p,outHeight:_,outWidth:A,outChannels:$,padInfo:N,strideHeight:h,strideWidth:g,filterHeight:m,filterWidth:f,effectiveFilterHeight:w,effectiveFilterWidth:C,dilationHeight:x,dilationWidth:b,inShape:r,outShape:F,filterShape:t}}function ME(r,t,e,n,o,s=!1,i="channelsLast",a){let[u,l,c,p,m]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[u,l,c,p,m]=r;else if(i==="channelsFirst")[u,m,l,c,p]=r;else throw new Error(`Unknown dataFormat ${i}`);let[f,d,h,,g]=t,[x,b,w]=X0(e),[C,N,_]=X0(n),A=Jp(f,C),$=Jp(d,N),F=Jp(h,_),{padInfo:P,outDepth:V,outHeight:G,outWidth:W}=JH(o,l,c,p,x,b,w,A,$,F,a),q=s?g*m:g,H;return i==="channelsFirst"?H=[u,q,V,G,W]:i==="channelsLast"&&(H=[u,V,G,W,q]),{batchSize:u,dataFormat:i,inDepth:l,inHeight:c,inWidth:p,inChannels:m,outDepth:V,outHeight:G,outWidth:W,outChannels:q,padInfo:P,strideDepth:x,strideHeight:b,strideWidth:w,filterDepth:f,filterHeight:d,filterWidth:h,effectiveFilterDepth:A,effectiveFilterHeight:$,effectiveFilterWidth:F,dilationDepth:C,dilationHeight:N,dilationWidth:_,inShape:r,outShape:H,filterShape:t}}function XH(r,t,e,n,o){n==null&&(n=Z0(r,t,e));let s=r[0],i=r[1],a=Ku((s-t+2*n)/e+1,o),u=Ku((i-t+2*n)/e+1,o);return[a,u]}function YH(r,t,e,n,o,s){o==null&&(o=Z0(r,t,n));let i=r[0],a=r[1],u=r[2],l=Ku((i-t+2*o)/n+1,s),c=Ku((a-t+2*o)/n+1,s),p=Ku((u-t+2*o)/n+1,s);return[l,c,p,e]}function Z0(r,t,e,n=1){let o=Jp(t,n);return Math.floor((r[0]*(e-1)-e+o)/2)}function hx(r){return typeof r=="number"?[r,r,r]:r.length===2?[r[0],r[1],1]:r}function X0(r){return typeof r=="number"?[r,r,r]:r}function Jp(r,t){return t<=1?r:r+(r-1)*(t-1)}function ZH(r,t,e,n,o,s,i,a,u){let l,c,p;if(typeof r=="number"){l={top:r,bottom:r,left:r,right:r,type:r===0?"VALID":"NUMBER"};let f=XH([t,e],s,n,r,a);c=f[0],p=f[1]}else if(r==="same"){c=Math.ceil(t/n),p=Math.ceil(e/o);let m=Math.max(0,(c-1)*n+s-t),f=Math.max(0,(p-1)*o+i-e),d=Math.floor(m/2),h=m-d,g=Math.floor(f/2),x=f-g;l={top:d,bottom:h,left:g,right:x,type:"SAME"}}else if(r==="valid")l={top:0,bottom:0,left:0,right:0,type:"VALID"},c=Math.ceil((t-s+1)/n),p=Math.ceil((e-i+1)/o);else if(typeof r=="object"){let m=u==="channelsLast"?r[1][0]:r[2][0],f=u==="channelsLast"?r[1][1]:r[2][1],d=u==="channelsLast"?r[2][0]:r[3][0],h=u==="channelsLast"?r[2][1]:r[3][1];l={top:m,bottom:f,left:d,right:h,type:m===0&&f===0&&d===0&&h===0?"VALID":"EXPLICIT"},c=Ku((t-s+m+f)/n+1,a),p=Ku((e-i+d+h)/o+1,a)}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:l,outHeight:c,outWidth:p}}function JH(r,t,e,n,o,s,i,a,u,l,c){let p,m,f,d;if(typeof r=="number"){p={top:r,bottom:r,left:r,right:r,front:r,back:r,type:r===0?"VALID":"NUMBER"};let g=YH([t,e,n,1],a,1,o,r,c);m=g[0],f=g[1],d=g[2]}else if(r==="same"){m=Math.ceil(t/o),f=Math.ceil(e/s),d=Math.ceil(n/i);let h=(m-1)*o+a-t,g=(f-1)*s+u-e,x=(d-1)*i+l-n,b=Math.floor(h/2),w=h-b,C=Math.floor(g/2),N=g-C,_=Math.floor(x/2),A=x-_;p={top:C,bottom:N,left:_,right:A,front:b,back:w,type:"SAME"}}else if(r==="valid")p={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},m=Math.ceil((t-a+1)/o),f=Math.ceil((e-u+1)/s),d=Math.ceil((n-l+1)/i);else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:p,outDepth:m,outHeight:f,outWidth:d}}function Ku(r,t){if(!t)return Math.trunc(r);switch(t){case"round":return Math.round(r);case"ceil":return Math.ceil(r);case"floor":return Math.floor(r);default:throw new Error(`Unknown roundingMode ${t}`)}}function to(r){let[t,e,n]=hx(r);return t===1&&e===1&&n===1}function Ar(r,t){return to(r)||to(t)}function zE(r){if(r==="NHWC")return"channelsLast";if(r==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${r}`)}function Ie(r,t,e){if(e!=null){if(typeof t=="string")throw Error(`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t}.`);if(typeof t=="number")E(na(t),()=>`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t}.`);else if(typeof t=="object")t.forEach(n=>{n.forEach(o=>{E(na(o),()=>`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${o}.`)})});else throw Error(`Error in ${r}: Unknown padding parameter: ${t}`)}}function QH(r,t){let n={x:I(r,"x","reshape","string_or_numeric")},o={shape:t};return k.runKernel(di,n,o)}var R=T({reshape_:QH});function tq(r,t,e,n,o){let s=I(r,"x","avgPool","float32"),i=1;E(Ar(e,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`);let a=s,u=!1;s.rank===3&&(u=!0,a=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),E(a.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${a.rank}.`),Ie("avgPool",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=k.runKernel(Uo,l,c);return p=J(p,s.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Yl=T({avgPool_:tq});function eq(r,t,e,n,o,s="NDHWC"){let i=I(r,"x","avgPool3d","float32"),a=i,u=!1;i.rank===4&&(u=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),E(a.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${a.rank}.`),E(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Ie("avgPool3d",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=k.runKernel(El,l,c);return p=J(p,a.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var gx=T({avgPool3d_:eq});function rq(r,t=0){E(r.length>=1,()=>"Pass at least one tensor to concat");let e=ja(r,"tensors","concat","string_or_numeric");if(e[0].dtype==="complex64"&&e.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor +Expected: ${s}.`)}typeof expect!="undefined"&&expect().nothing()}function vH(r,t){r().then(()=>t.fail(),()=>t()),typeof expect!="undefined"&&expect().nothing()}function NH(r,t){let e=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Vo(r)||Vo(r[0])||Vo(t)||Vo(t[0])?Kv(r,e,(n,o)=>n==o):Kv(r,t,(n,o)=>jv(n,o,0))}function RE(r,t,e){if(e==null&&(e=ix()),!jv(r,t,e))throw new Error(`Numbers differ: actual === ${r}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function jv(r,t,e){return!isFinite(r)&&!isFinite(t)?!0:!(isNaN(r)||isNaN(t)||Math.abs(r-t)>e)}function TH(r,t,e){for(let n=0;ne)throw new Error(`Value out of range:${r[n]} low: ${t}, high: ${e}`)}function kH(r,t){let e=new Float32Array(r),n=new Float32Array(t);if(e.length!==n.length)throw new Error(`Expected ArrayBuffer to be of length ${n.length}, but it was ${e.length}`);for(let o=0;o{t.addEventListener("loadeddata",n=>e(t)),t.load()})}async function _H(r){await r.play(),"requestVideoFrameCallback"in r&&await new Promise(t=>{r.requestVideoFrameCallback(t)})}var PE="4.0.0";function AH(r,t){let e=I(r,"a","add"),n=I(t,"b","add");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(Zn,o)}var X=T({add_:AH});function $H(r,t){let e=I(r,"a","floorDiv"),n=I(t,"b","floorDiv");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(ns,o)}var Yp=T({floorDiv_:$H});function DH(r,t){let e=I(r,"a","div"),n=I(t,"b","div");if([e,n]=Ut(e,n),e.dtype==="int32"&&n.dtype==="int32")return Yp(e,n);let o={a:e,b:n},s={};return k.runKernel(Qo,o,s)}var pt=T({div_:DH});function RH(r,t){let e=I(r,"a","mul"),n=I(t,"b","mul");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(hs,o)}var D=T({mul_:RH});function FH(r){let t=I(r,"x","abs");if(t.dtype==="complex64"){let e={x:t};return k.runKernel(_l,e)}else{let e={x:t};return k.runKernel(ii,e)}}var Ee=T({abs_:FH});function OH(r){let e={x:I(r,"x","acos")};return k.runKernel(oa,e)}var ax=T({acos_:OH});function PH(r){let e={x:I(r,"x","acosh")};return k.runKernel(sa,e)}var lx=T({acosh_:PH});function LH(r){E(Array.isArray(r),()=>"The argument passed to tf.addN() must be a list of tensors"),E(r.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${r.length}`);let t=r.map((o,s)=>I(o,`tensors${s}`,"addN")),e=t[0];t.forEach(o=>{if(o.dtype!==e.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(o=>{if(!Dn(o.shape,e.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let n=t;return k.runKernel(Go,n)}var LE=T({addN_:LH});function MH(r,t=null,e=!1){let o={x:I(r,"x","all","bool")},s={axis:t,keepDims:e};return k.runKernel(ia,o,s)}var Zp=T({all_:MH});function zH(r,t=null,e=!1){let o={x:I(r,"x","any","bool")},s={axis:t,keepDims:e};return k.runKernel(aa,o,s)}var qu=T({any_:zH});function BH(r,t=0){let n={x:I(r,"x","argMax")},o={axis:t};return k.runKernel(Wo,n,o)}var Ai=T({argMax_:BH});function VH(r,t=0){let n={x:I(r,"x","argMin")},o={axis:t};return k.runKernel(kl,n,o)}var ux=T({argMin_:VH});function GH(r){let e={x:I(r,"x","asin")};return k.runKernel(la,e)}var cx=T({asin_:GH});function WH(r){let e={x:I(r,"x","asinh")};return k.runKernel(ua,e)}var px=T({asinh_:WH});function UH(r){let e={x:I(r,"x","atan")};return k.runKernel(ca,e)}var mx=T({atan_:UH});function HH(r,t){let e=I(r,"a","atan2"),n=I(t,"b","atan2");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(ma,o)}var fx=T({atan2_:HH});function qH(r){let e={x:I(r,"x","atanh")};return k.runKernel(pa,e)}var dx=T({atanh_:qH});function KH(r,t,e,n,o="NHWC",s){let i=r[3],a=[...t,i],u=zE(o);return ju(r,a,e,s,n,null,null,u)}function Yv(r,t,e,n,o,s,i="channelsLast"){let[a,u]=hx(t),l;if(i==="channelsLast")l=[a,u,r[3],r[3]];else if(i==="channelsFirst")l=[a,u,r[1],r[1]];else throw new Error(`Unknown dataFormat ${i}`);return ju(r,l,e,n,o,s,!1,i)}function jH(r,t,e,n,o,s,i="NDHWC"){let[a,u,l]=Xv(t),c,p;if(i==="NDHWC")p="channelsLast",c=[a,u,l,r[4],r[4]];else if(i==="NCDHW")p="channelsFirst",c=[a,u,l,r[1],r[1]];else throw new Error(`Unknown dataFormat ${i}`);return ME(r,c,e,n,o,!1,p,s)}function ju(r,t,e,n,o,s,i=!1,a="channelsLast"){let[u,l,c,p]=[-1,-1,-1,-1];if(a==="channelsLast")[u,l,c,p]=r;else if(a==="channelsFirst")[u,p,l,c]=r;else throw new Error(`Unknown dataFormat ${a}`);let[m,f,,d]=t,[h,g]=hx(e),[x,b]=hx(n),w=Jp(m,x),C=Jp(f,b),{padInfo:N,outHeight:_,outWidth:A}=ZH(o,l,c,h,g,w,C,s,a),$=i?d*p:d,F;return a==="channelsFirst"?F=[u,$,_,A]:a==="channelsLast"&&(F=[u,_,A,$]),{batchSize:u,dataFormat:a,inHeight:l,inWidth:c,inChannels:p,outHeight:_,outWidth:A,outChannels:$,padInfo:N,strideHeight:h,strideWidth:g,filterHeight:m,filterWidth:f,effectiveFilterHeight:w,effectiveFilterWidth:C,dilationHeight:x,dilationWidth:b,inShape:r,outShape:F,filterShape:t}}function ME(r,t,e,n,o,s=!1,i="channelsLast",a){let[u,l,c,p,m]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[u,l,c,p,m]=r;else if(i==="channelsFirst")[u,m,l,c,p]=r;else throw new Error(`Unknown dataFormat ${i}`);let[f,d,h,,g]=t,[x,b,w]=Xv(e),[C,N,_]=Xv(n),A=Jp(f,C),$=Jp(d,N),F=Jp(h,_),{padInfo:P,outDepth:V,outHeight:G,outWidth:W}=JH(o,l,c,p,x,b,w,A,$,F,a),q=s?g*m:g,H;return i==="channelsFirst"?H=[u,q,V,G,W]:i==="channelsLast"&&(H=[u,V,G,W,q]),{batchSize:u,dataFormat:i,inDepth:l,inHeight:c,inWidth:p,inChannels:m,outDepth:V,outHeight:G,outWidth:W,outChannels:q,padInfo:P,strideDepth:x,strideHeight:b,strideWidth:w,filterDepth:f,filterHeight:d,filterWidth:h,effectiveFilterDepth:A,effectiveFilterHeight:$,effectiveFilterWidth:F,dilationDepth:C,dilationHeight:N,dilationWidth:_,inShape:r,outShape:H,filterShape:t}}function XH(r,t,e,n,o){n==null&&(n=Zv(r,t,e));let s=r[0],i=r[1],a=Ku((s-t+2*n)/e+1,o),u=Ku((i-t+2*n)/e+1,o);return[a,u]}function YH(r,t,e,n,o,s){o==null&&(o=Zv(r,t,n));let i=r[0],a=r[1],u=r[2],l=Ku((i-t+2*o)/n+1,s),c=Ku((a-t+2*o)/n+1,s),p=Ku((u-t+2*o)/n+1,s);return[l,c,p,e]}function Zv(r,t,e,n=1){let o=Jp(t,n);return Math.floor((r[0]*(e-1)-e+o)/2)}function hx(r){return typeof r=="number"?[r,r,r]:r.length===2?[r[0],r[1],1]:r}function Xv(r){return typeof r=="number"?[r,r,r]:r}function Jp(r,t){return t<=1?r:r+(r-1)*(t-1)}function ZH(r,t,e,n,o,s,i,a,u){let l,c,p;if(typeof r=="number"){l={top:r,bottom:r,left:r,right:r,type:r===0?"VALID":"NUMBER"};let f=XH([t,e],s,n,r,a);c=f[0],p=f[1]}else if(r==="same"){c=Math.ceil(t/n),p=Math.ceil(e/o);let m=Math.max(0,(c-1)*n+s-t),f=Math.max(0,(p-1)*o+i-e),d=Math.floor(m/2),h=m-d,g=Math.floor(f/2),x=f-g;l={top:d,bottom:h,left:g,right:x,type:"SAME"}}else if(r==="valid")l={top:0,bottom:0,left:0,right:0,type:"VALID"},c=Math.ceil((t-s+1)/n),p=Math.ceil((e-i+1)/o);else if(typeof r=="object"){let m=u==="channelsLast"?r[1][0]:r[2][0],f=u==="channelsLast"?r[1][1]:r[2][1],d=u==="channelsLast"?r[2][0]:r[3][0],h=u==="channelsLast"?r[2][1]:r[3][1];l={top:m,bottom:f,left:d,right:h,type:m===0&&f===0&&d===0&&h===0?"VALID":"EXPLICIT"},c=Ku((t-s+m+f)/n+1,a),p=Ku((e-i+d+h)/o+1,a)}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:l,outHeight:c,outWidth:p}}function JH(r,t,e,n,o,s,i,a,u,l,c){let p,m,f,d;if(typeof r=="number"){p={top:r,bottom:r,left:r,right:r,front:r,back:r,type:r===0?"VALID":"NUMBER"};let g=YH([t,e,n,1],a,1,o,r,c);m=g[0],f=g[1],d=g[2]}else if(r==="same"){m=Math.ceil(t/o),f=Math.ceil(e/s),d=Math.ceil(n/i);let h=(m-1)*o+a-t,g=(f-1)*s+u-e,x=(d-1)*i+l-n,b=Math.floor(h/2),w=h-b,C=Math.floor(g/2),N=g-C,_=Math.floor(x/2),A=x-_;p={top:C,bottom:N,left:_,right:A,front:b,back:w,type:"SAME"}}else if(r==="valid")p={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},m=Math.ceil((t-a+1)/o),f=Math.ceil((e-u+1)/s),d=Math.ceil((n-l+1)/i);else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:p,outDepth:m,outHeight:f,outWidth:d}}function Ku(r,t){if(!t)return Math.trunc(r);switch(t){case"round":return Math.round(r);case"ceil":return Math.ceil(r);case"floor":return Math.floor(r);default:throw new Error(`Unknown roundingMode ${t}`)}}function to(r){let[t,e,n]=hx(r);return t===1&&e===1&&n===1}function Ar(r,t){return to(r)||to(t)}function zE(r){if(r==="NHWC")return"channelsLast";if(r==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${r}`)}function Ie(r,t,e){if(e!=null){if(typeof t=="string")throw Error(`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t}.`);if(typeof t=="number")E(na(t),()=>`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t}.`);else if(typeof t=="object")t.forEach(n=>{n.forEach(o=>{E(na(o),()=>`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${o}.`)})});else throw Error(`Error in ${r}: Unknown padding parameter: ${t}`)}}function QH(r,t){let n={x:I(r,"x","reshape","string_or_numeric")},o={shape:t};return k.runKernel(di,n,o)}var R=T({reshape_:QH});function tq(r,t,e,n,o){let s=I(r,"x","avgPool","float32"),i=1;E(Ar(e,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`);let a=s,u=!1;s.rank===3&&(u=!0,a=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),E(a.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${a.rank}.`),Ie("avgPool",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=k.runKernel(Uo,l,c);return p=J(p,s.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Yl=T({avgPool_:tq});function eq(r,t,e,n,o,s="NDHWC"){let i=I(r,"x","avgPool3d","float32"),a=i,u=!1;i.rank===4&&(u=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),E(a.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${a.rank}.`),E(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Ie("avgPool3d",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=k.runKernel(El,l,c);return p=J(p,a.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var gx=T({avgPool3d_:eq});function rq(r,t=0){E(r.length>=1,()=>"Pass at least one tensor to concat");let e=ja(r,"tensors","concat","string_or_numeric");if(e[0].dtype==="complex64"&&e.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor with dtype ${s.dtype}. `)}),e.length===1)return sn(e[0]);let n=e,o={axis:t};return k.runKernel(li,n,o)}var ne=T({concat_:rq});function nq(r){let e={x:I(r,"x","sigmoid","float32")};return k.runKernel(_s,e)}var Yr=T({sigmoid_:nq});function oq(r,t,e){let n=I(r,"x","slice","string_or_numeric");if(n.rank===0)throw new Error("Slicing scalar is not possible");let o={x:n},s={begin:t,size:e};return k.runKernel(gi,o,s)}var Rt=T({slice_:oq});function sq(r){let e={x:I(r,"x","tanh","float32")};return k.runKernel(Ps,e)}var $i=T({tanh_:sq});function iq(r,t,e,n,o,s){let i=I(r,"forgetBias","basicLSTMCell"),a=I(t,"lstmKernel","basicLSTMCell"),u=I(e,"lstmBias","basicLSTMCell"),l=I(n,"data","basicLSTMCell"),c=I(o,"c","basicLSTMCell"),p=I(s,"h","basicLSTMCell"),m=ne([l,p],1),f=Lt(m,a),d=X(f,u),h=d.shape[0],g=d.shape[1]/4,x=[h,g],b=Rt(d,[0,0],x),w=Rt(d,[0,g],x),C=Rt(d,[0,g*2],x),N=Rt(d,[0,g*3],x),_=X(D(Yr(b),$i(w)),D(c,Yr(X(i,C)))),A=D($i(_),Yr(N));return[_,A]}var BE=T({basicLSTMCell_:iq});function aq(r,t,e){let n=I(r,"x","batchToSpaceND"),o=t.reduce((a,u)=>a*u);E(n.rank>=1+t.length,()=>`input rank is ${n.rank} but should be > than blockShape.length ${t.length}`),E(e.length===t.length,()=>`crops.length is ${e.length} but should be equal to blockShape.length ${t.length}`),E(n.shape[0]%o===0,()=>`input tensor batch is ${n.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${o}`);let s={x:n},i={blockShape:t,crops:e};return k.runKernel(ai,s,i)}var Zl=T({batchToSpaceND_:aq});function VE(r){let t;return r.rank===0||r.rank===1?t=R(r,[1,1,1,r.size]):r.rank===2?t=R(r,[1,1,r.shape[0],r.shape[1]]):r.rank===3?t=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]):t=r,t}function lq(r,t,e,n,o,s){s==null&&(s=.001);let i=I(r,"x","batchNorm"),a=I(t,"mean","batchNorm"),u=I(e,"variance","batchNorm"),l;o!=null&&(l=I(o,"scale","batchNorm"));let c;n!=null&&(c=I(n,"offset","batchNorm")),E(a.rank===u.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),E(c==null||a.rank===c.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),E(l==null||a.rank===l.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let m={x:VE(i),scale:l,offset:c,mean:a,variance:u},f={varianceEpsilon:s},d=k.runKernel(os,m,f);return R(d,i.shape)}var Di=T({batchNorm_:lq});function uq(r,t,e,n,o,s){let i=I(r,"x","batchNorm"),a=I(t,"mean","batchNorm"),u=I(e,"variance","batchNorm"),l;o!=null&&(l=I(o,"scale","batchNorm"));let c;return n!=null&&(c=I(n,"offset","batchNorm")),E(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),E(a.rank===2||a.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${a.rank}.`),E(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${u.rank}.`),l!=null&&E(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${l.rank}.`),c!=null&&E(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${c.rank}.`),Di(i,a,u,c,l,s)}var xx=T({batchNorm2d_:uq});function cq(r,t,e,n,o,s){let i=I(r,"x","batchNorm"),a=I(t,"mean","batchNorm"),u=I(e,"variance","batchNorm"),l;o!=null&&(l=I(o,"scale","batchNorm"));let c;return n!=null&&(c=I(n,"offset","batchNorm")),E(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),E(a.rank===3||a.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${a.rank}.`),E(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${u.rank}.`),l!=null&&E(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${l.rank}.`),c!=null&&E(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${c.rank}.`),Di(i,a,u,c,l,s)}var yx=T({batchNorm3d_:cq});function pq(r,t,e,n,o,s){let i=I(r,"x","batchNorm"),a=I(t,"mean","batchNorm"),u=I(e,"variance","batchNorm"),l;o!=null&&(l=I(o,"scale","batchNorm"));let c;return n!=null&&(c=I(n,"offset","batchNorm")),E(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),E(a.rank===4||a.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${a.rank}.`),E(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${u.rank}.`),l!=null&&E(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${l.rank}.`),c!=null&&E(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${c.rank}.`),Di(i,a,u,c,l,s)}var bx=T({batchNorm4d_:pq});function mq(r,t,e){let n=I(r,"x","bincount"),o=I(t,"weights","bincount");E(n.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${n.dtype}`),E(e>=0,()=>`size must be non-negative, but got ${e}.`),E(o.size===n.size||o.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${n.shape}, weights shape: ${o.shape}.`);let s={x:n,weights:o},i={size:e};return k.runKernel(up,s,i)}var wx=T({bincount_:mq});function fq(r,t){let e=I(r,"s0","broadcastArgs","int32"),n=I(t,"s1","broadcastArgs","int32");if(e.rank!==1)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${e.rank}`);if(n.rank!==1)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${n.rank}`);let o={s0:e,s1:n};return k.runKernel(cp,o)}var GE=T({broadcastArgs_:fq});function dq(r,t){let e=I(r,"broadcastTo","x"),n=e.shape;if(t.some(l=>!(l>0)||l%1!==0))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengthe.rank){let l=e.shape.slice();for(;l.length=0;l--)if(o[l]===t[l])s[l]=1;else if(e.shape[l]!==1)throw new Error(`broadcastTo(): [${n}] cannot be broadcast to [${t}].`);if(s.map((l,c)=>l>1?c:-1).filter(l=>l>=0).length===0)return sn(e);let a={x:e},u={reps:s};return k.runKernel(Jn,a,u)}var Ri=T({broadcastTo_:dq});function hq(r){let e={x:I(r,"x","ceil","float32")};return k.runKernel(qo,e)}var Cx=T({ceil_:hq});function xo(r,t,e){let n={shape:r,value:t,dtype:e};return k.runKernel(Dl,{},n)}function gq(r,t,e){let n=I(r,"x","clipByValue");if(E(t<=e,()=>`Error in clip: min (${t}) must be less than or equal to max (${e}).`),t===e)return xo(n.shape,t,n.dtype);let o={x:n},s={clipValueMin:t,clipValueMax:e};return k.runKernel(uo,o,s)}var Cr=T({clipByValue_:gq});function xq(r){return ne(r,0)}var Ix=T({concat1d_:xq});function yq(r,t){return ne(r,t)}var Sx=T({concat2d_:yq});function bq(r,t){return ne(r,t)}var vx=T({concat3d_:bq});function wq(r,t){return ne(r,t)}var Nx=T({concat4d_:wq});function Cq(r,t,e,n,o="NHWC",s=[1,1],i){let a=I(r,"x","conv2d","float32"),u=I(t,"filter","conv2d","float32"),l=a,c=!1;a.rank===3&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),E(l.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${l.rank}.`),E(u.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${u.rank}.`),Ie("conv2d",n,i);let p=o==="NHWC"?l.shape[3]:l.shape[1];E(p===u.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${u.shape[2]}.`),E(Ar(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=k.runKernel(Ko,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var In=T({conv2d_:Cq});function Iq(r,t,e,n,o="NWC",s=1,i){let a=I(r,"x","conv1d"),u=I(t,"filter","conv1d"),l=a,c=!1;a.rank===2&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1]])),E(l.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${l.rank}.`),E(u.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${u.rank}.`),Ie("conv1d",n,i),E(l.shape[2]===u.shape[1],()=>`Error in conv1d: depth of input (${l.shape[2]}) must match input depth for filter ${u.shape[1]}.`),E(Ar(e,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${e} and dilation '${s}'`),E(o==="NWC",()=>`Error in conv1d: got dataFormat of ${o} but only NWC is currently supported.`);let p=R(u,[1,u.shape[0],u.shape[1],u.shape[2]]),m=R(l,[l.shape[0],1,l.shape[1],l.shape[2]]),g=In(m,p,[1,e],n,"NHWC",[1,s],i);return c?R(g,[g.shape[2],g.shape[3]]):R(g,[g.shape[0],g.shape[2],g.shape[3]])}var Qp=T({conv1d_:Iq});function Sq(r,t,e,n,o,s="NHWC",i){E(r.length===t.rank,()=>`Length of inShape (${r.length}) and rank of dy (${t.rank}) must match`);let a=r,u=t,l=!1;t.rank===3&&(l=!0,u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]),a=[1,r[0],r[1],r[2]]),E(a.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${a.length}.`),E(u.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${u.rank}`),E(e.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${e.rank}`);let c=s==="NHWC"?a[3]:a[1],p=s==="NHWC"?u.shape[3]:u.shape[1];E(c===e.shape[2],()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${e.shape[2]}.`),E(p===e.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${e.shape[3]}.`),Ie("conv2dDerInput",o,i);let m={dy:u,filter:e},f={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,inputShape:a},d=k.runKernel(jo,m,f);return l?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var tm=T({conv2DBackpropInput_:Sq});function vq(r,t,e,n,o,s){let i=I(r,"x","conv2dTranspose"),a=I(t,"filter","conv2dTranspose");return tm(e,i,a,n,o,"NHWC",s)}var em=T({conv2dTranspose_:vq});function Nq(r,t,e,n,o="NDHWC",s=[1,1,1]){let i=I(r,"x","conv3d"),a=I(t,"filter","conv3d"),u=i,l=!1;i.rank===4&&(l=!0,u=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),E(u.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${u.rank}.`),E(a.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${a.rank}.`),E(u.shape[4]===a.shape[3],()=>`Error in conv3d: depth of input (${u.shape[4]}) must match input depth for filter ${a.shape[3]}.`),E(Ar(e,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),E(o==="NDHWC",()=>`Error in conv3d: got dataFormat of ${o} but only NDHWC is currently supported.`);let c={x:u,filter:a},p={strides:e,pad:n,dataFormat:o,dilations:s},m=k.runKernel(Al,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Tx=T({conv3d_:Nq});function Tq(r,t,e,n,o){E(r.length===t.rank,()=>`Length of inShape (${r.length}) and rank of dy (${t.rank}) must match`);let s=r,i=t,a=!1;t.rank===4&&(a=!0,i=R(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,r[0],r[1],r[2],r[3]]);let u=s[4],l=i.shape[4];E(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),E(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),E(e.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${e.rank}`),E(u===e.shape[3],()=>`Error in conv3dDerInput: depth of input (${u}) must match input depth for filter ${e.shape[3]}.`),E(l===e.shape[4],()=>`Error in conv3dDerInput: depth of output (${l}) must match output depth for filter ${e.shape[4]}.`);let c={dy:i,filter:e},p={pad:o,strides:n,inputShape:s},m=k.runKernel(dp,c,p);return a?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var kx=T({conv3DBackpropInput_:Tq});function kq(r,t,e,n,o){let s=I(r,"x","conv3dTranspose"),i=I(t,"filter","conv3dTranspose");return kx(e,s,i,n,o)}var Ex=T({conv3dTranspose_:kq});function Eq(r){let e={x:I(r,"x","cos","float32")};return k.runKernel(Xo,e)}var Jl=T({cos_:Eq});function _q(r){let e={x:I(r,"x","cosh","float32")};return k.runKernel(Yo,e)}var rm=T({cosh_:_q});function Aq(r,t=0,e=!1,n=!1){let s={x:I(r,"x","cumprod")},i={axis:t,exclusive:e,reverse:n};return k.runKernel(fa,s,i)}var Xu=T({cumprod_:Aq});function $q(r,t=0,e=!1,n=!1){let s={x:I(r,"x","cumsum")},i={axis:t,exclusive:e,reverse:n};return k.runKernel(Zo,s,i)}var nm=T({cumsum_:$q});function Dq(r,t,e,n=!1){let o=I(r,"x","denseBincount"),s=I(t,"weights","denseBincount");E(o.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${o.dtype}`),E(o.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${o.rank}.`),E(e>=0,()=>`size must be non-negative, but got ${e}.`),E(s.size===o.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${o.shape}, weights shape: ${s.shape}.`);let i={x:o,weights:s},a={size:e,binaryOutput:n};return k.runKernel(hp,i,a)}var ch=T({denseBincount_:Dq});function Rq(r,t,e="NHWC"){let n=I(r,"x","depthToSpace","float32"),o=e==="NHWC"?n.shape[1]:n.shape[2],s=e==="NHWC"?n.shape[2]:n.shape[3],i=e==="NHWC"?n.shape[3]:n.shape[1];E(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),E(o*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${o} and ${t} for depthToSpace with input shape ${n.shape}`),E(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${s} and ${t} for depthToSpace with input shape - ${n.shape}`),E(i%(t*t)===0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${n.shape}`);let a={x:n},u={blockSize:t,dataFormat:e};return k.runKernel(ha,a,u)}var _x=T({depthToSpace_:Rq});function Fq(r,t,e,n,o="NHWC",s=[1,1],i){let a=I(r,"x","depthwiseConv2d","float32"),u=I(t,"filter","depthwiseConv2d","float32"),l=a,c=!1;a.rank===3&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),E(l.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${l.rank}.`),E(u.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${u.rank}.`);let p=o==="NHWC"?l.shape[3]:l.shape[1];E(p===u.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${p}) must match the inChannels dimension in filter ${u.shape[2]}.`),Ie("depthwiseConv2d",n,i);let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=k.runKernel(Jo,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Fi=T({depthwiseConv2d_:Fq});function Oq(r){let e={x:I(r,"x","diag")};return k.runKernel(yp,e)}var WE=T({diag_:Oq});function Pq(r,t,e,n,o=[1,1],s="NHWC"){let i=I(r,"x","dilation2d"),a=I(t,"filter","dilation2d");E(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),E(a.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${a.rank}.`),E(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let u=i,l=!1;i.rank===3&&(u=R(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=!0);let c={x:u,filter:a},p={strides:e,pad:n,dilations:o},m=k.runKernel($l,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Ax=T({dilation2d_:Pq});function Lq(r,t){let e=I(r,"a","equal","string_or_numeric"),n=I(t,"b","equal","string_or_numeric");[e,n]=Ut(e,n),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(xa,o)}var $r=T({equal_:Lq});function Mq(r,t,e){let n=I(t,"a","where"),o=I(e,"b","where"),s=I(r,"condition","where","bool"),i=Pt(Pt(s.shape,n.shape),o.shape),a=Ri(s,i),u=Ri(n,i),l=Ri(o,i),c={condition:a,t:u,e:l};return k.runKernel(hi,c)}var _e=T({where_:Mq});function zq(r){let e={x:I(r,"x","zerosLike")};return k.runKernel(wi,e)}var It=T({zerosLike_:zq});function Bq(r,t){let e=I(r,"a","div"),n=I(t,"b","div");[e,n]=Ut(e,n);let o=pt(e,n),s=It(o),i=$r(n,s);return _e(i,s,o)}var $x=T({divNoNan_:Bq});function Vq(r,t){let e=I(r,"t1","dot"),n=I(t,"t2","dot");E((e.rank===1||e.rank===2)&&(n.rank===1||n.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${e.rank} and ${n.rank}.`);let o=e.rank===1?e.size:e.shape[1],s=n.rank===1?n.size:n.shape[0];if(E(o===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${o} and ${s}.`),e.rank===1&&n.rank===1){let i=R(e,[1,-1]),a=R(n,[-1,1]),u=Lt(i,a);return R(u,[])}else if(e.rank===1&&n.rank===2){let i=R(e,[1,-1]),a=R(n,[n.shape[0],n.shape[1]]),u=Lt(i,a);return R(u,[u.size])}else if(e.rank===2&&n.rank===1){let i=R(n,[-1,1]),a=Lt(e,i);return R(a,[a.size])}else{let i=R(n,[n.shape[0],n.shape[1]]);return Lt(e,i)}}var Dx=T({dot_:Vq});function Gq(r,...t){let e=t.map((o,s)=>I(o,`tensors${s}`,"einsum")),n={equation:r};return k.runKernel(bp,e,n)}var UE=T({einsum_:Gq});function Wq(r){let e={x:I(r,"x","elu","float32")};return k.runKernel(ts,e)}var Oi=T({elu_:Wq});function Uq(r){let t=I(r,"x","erf");E(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=J(t,"float32"));let e={x:t};return k.runKernel(ga,e)}var Rx=T({erf_:Uq});function J0(r,t){for(let e=0;er[s]);return[e,o]}function yo(r,t){let e=t.map(n=>1);return HE(r,e,t)}function Hq(r,t,e){E(J0(t,e),()=>`${r} supports only inner-most axes for now. Got axes ${t} and rank-${e} input.`)}function tv(r,t){if(J0(r,t))return null;let e=[];for(let n=0;ne.push(n)),e}function ph(r){return r.map((t,e)=>[e,t]).sort((t,e)=>t[1]-e[1]).map(t=>t[0])}function qq(r,t){let e=[];for(let n=t-r;n"Axis must be <= rank of the tensor");let n={input:e},o={dim:t};return k.runKernel(ui,n,o)}var rr=T({expandDims_:rK});function nK(r){let e={x:I(r,"x","expm1")};return k.runKernel(ya,e)}var Ox=T({expm1_:nK});function oK(r,t){let e=I(r,"x","tile","string_or_numeric");E(e.rank===t.length,()=>`Error in transpose: rank of input ${e.rank} must match length of reps ${t}.`);let n={x:e},o={reps:t};return k.runKernel(Jn,n,o)}var Dr=T({tile_:oK});function sK(r,t,e,n="float32"){t==null&&(t=r);let o=wt([r,t],n),s=r<=t?r:t;for(let a=0;a`Error in localResponseNormalization: x must be rank 3 or 4 but got + ${n.shape}`),E(i%(t*t)===0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${n.shape}`);let a={x:n},u={blockSize:t,dataFormat:e};return k.runKernel(ha,a,u)}var _x=T({depthToSpace_:Rq});function Fq(r,t,e,n,o="NHWC",s=[1,1],i){let a=I(r,"x","depthwiseConv2d","float32"),u=I(t,"filter","depthwiseConv2d","float32"),l=a,c=!1;a.rank===3&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),E(l.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${l.rank}.`),E(u.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${u.rank}.`);let p=o==="NHWC"?l.shape[3]:l.shape[1];E(p===u.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${p}) must match the inChannels dimension in filter ${u.shape[2]}.`),Ie("depthwiseConv2d",n,i);let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=k.runKernel(Jo,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Fi=T({depthwiseConv2d_:Fq});function Oq(r){let e={x:I(r,"x","diag")};return k.runKernel(yp,e)}var WE=T({diag_:Oq});function Pq(r,t,e,n,o=[1,1],s="NHWC"){let i=I(r,"x","dilation2d"),a=I(t,"filter","dilation2d");E(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),E(a.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${a.rank}.`),E(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let u=i,l=!1;i.rank===3&&(u=R(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=!0);let c={x:u,filter:a},p={strides:e,pad:n,dilations:o},m=k.runKernel($l,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Ax=T({dilation2d_:Pq});function Lq(r,t){let e=I(r,"a","equal","string_or_numeric"),n=I(t,"b","equal","string_or_numeric");[e,n]=Ut(e,n),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(xa,o)}var $r=T({equal_:Lq});function Mq(r,t,e){let n=I(t,"a","where"),o=I(e,"b","where"),s=I(r,"condition","where","bool"),i=Pt(Pt(s.shape,n.shape),o.shape),a=Ri(s,i),u=Ri(n,i),l=Ri(o,i),c={condition:a,t:u,e:l};return k.runKernel(hi,c)}var _e=T({where_:Mq});function zq(r){let e={x:I(r,"x","zerosLike")};return k.runKernel(wi,e)}var It=T({zerosLike_:zq});function Bq(r,t){let e=I(r,"a","div"),n=I(t,"b","div");[e,n]=Ut(e,n);let o=pt(e,n),s=It(o),i=$r(n,s);return _e(i,s,o)}var $x=T({divNoNan_:Bq});function Vq(r,t){let e=I(r,"t1","dot"),n=I(t,"t2","dot");E((e.rank===1||e.rank===2)&&(n.rank===1||n.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${e.rank} and ${n.rank}.`);let o=e.rank===1?e.size:e.shape[1],s=n.rank===1?n.size:n.shape[0];if(E(o===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${o} and ${s}.`),e.rank===1&&n.rank===1){let i=R(e,[1,-1]),a=R(n,[-1,1]),u=Lt(i,a);return R(u,[])}else if(e.rank===1&&n.rank===2){let i=R(e,[1,-1]),a=R(n,[n.shape[0],n.shape[1]]),u=Lt(i,a);return R(u,[u.size])}else if(e.rank===2&&n.rank===1){let i=R(n,[-1,1]),a=Lt(e,i);return R(a,[a.size])}else{let i=R(n,[n.shape[0],n.shape[1]]);return Lt(e,i)}}var Dx=T({dot_:Vq});function Gq(r,...t){let e=t.map((o,s)=>I(o,`tensors${s}`,"einsum")),n={equation:r};return k.runKernel(bp,e,n)}var UE=T({einsum_:Gq});function Wq(r){let e={x:I(r,"x","elu","float32")};return k.runKernel(ts,e)}var Oi=T({elu_:Wq});function Uq(r){let t=I(r,"x","erf");E(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=J(t,"float32"));let e={x:t};return k.runKernel(ga,e)}var Rx=T({erf_:Uq});function Jv(r,t){for(let e=0;er[s]);return[e,o]}function yo(r,t){let e=t.map(n=>1);return HE(r,e,t)}function Hq(r,t,e){E(Jv(t,e),()=>`${r} supports only inner-most axes for now. Got axes ${t} and rank-${e} input.`)}function t0(r,t){if(Jv(r,t))return null;let e=[];for(let n=0;ne.push(n)),e}function ph(r){return r.map((t,e)=>[e,t]).sort((t,e)=>t[1]-e[1]).map(t=>t[0])}function qq(r,t){let e=[];for(let n=t-r;n"Axis must be <= rank of the tensor");let n={input:e},o={dim:t};return k.runKernel(ui,n,o)}var rr=T({expandDims_:rK});function nK(r){let e={x:I(r,"x","expm1")};return k.runKernel(ya,e)}var Ox=T({expm1_:nK});function oK(r,t){let e=I(r,"x","tile","string_or_numeric");E(e.rank===t.length,()=>`Error in transpose: rank of input ${e.rank} must match length of reps ${t}.`);let n={x:e},o={reps:t};return k.runKernel(Jn,n,o)}var Dr=T({tile_:oK});function sK(r,t,e,n="float32"){t==null&&(t=r);let o=wt([r,t],n),s=r<=t?r:t;for(let a=0;a`Error in localResponseNormalization: x must be rank 3 or 4 but got rank ${s.rank}.`),E(na(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,a=!1;s.rank===3&&(a=!0,i=R(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let u={x:i},l={depthRadius:t,bias:e,alpha:n,beta:o},c=k.runKernel(Rl,u,l);return a?R(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var zx=T({localResponseNormalization_:gK});function xK(r){let e={x:I(r,"x","log","float32")};return k.runKernel(as,e)}var Sr=T({log_:xK});function yK(r){let e={x:I(r,"x","log1p")};return k.runKernel(ka,e)}var tu=T({log1p_:yK});function bK(r){return E(oi(r),()=>"The f passed in grad(f) must be a function"),(t,e)=>{let n=I(t,"x","tf.grad","string_or_numeric"),o=e!=null?I(e,"dy","tf.grad"):null;return k.tidy(()=>{let{value:s,grads:i}=k.gradients(()=>r(n),[n],o);return o!=null&&$e(s.shape,o.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Vx(i),i[0]})}}function wK(r){return E(oi(r),()=>"The f passed in grads(f) must be a function"),(t,e)=>{E(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let n=ja(t,"args","tf.grads","string_or_numeric"),o=e!=null?I(e,"dy","tf.grads"):null;return k.tidy(()=>{let{value:s,grads:i}=k.gradients(()=>r(...n),n,o);return o!=null&&$e(s.shape,o.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Vx(i),i})}}function CK(r){return E(oi(r),()=>"The f passed in valueAndGrad(f) must be a function"),(t,e)=>{E(t instanceof Ft,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),E(e==null||e instanceof Ft,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:n,value:o}=k.gradients(()=>r(t),[t],e);return Vx(n),{grad:n[0],value:o}}}function IK(r){return E(oi(r),()=>"The f passed in valueAndGrads(f) must be a function"),(t,e)=>{E(Array.isArray(t)&&t.every(o=>o instanceof Ft),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),E(e==null||e instanceof Ft,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let n=k.gradients(()=>r(...t),t,e);return e!=null&&$e(n.value.shape,e.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Vx(n.grads),n}}function Bx(r,t){E(oi(r),()=>"The f passed in variableGrads(f) must be a function"),E(t==null||Array.isArray(t)&&t.every(l=>l instanceof Ka),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let e=t!=null;if(!e){t=[];for(let l in k.registeredVariables)t.push(k.registeredVariables[l])}let n=e?t.filter(l=>!l.trainable):null,o=t.length;t=t.filter(l=>l.trainable),E(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${o} variables is trainable.`);let s=!0,{value:i,grads:a}=k.gradients(r,t,null,s);E(a.some(l=>l!=null),()=>"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()."),E(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let u={};return t.forEach((l,c)=>{a[c]!=null&&(u[l.name]=a[c])}),n!=null&&n.forEach(l=>u[l.name]=null),{value:i,grads:u}}function un(r){return k.customGrad(r)}function Vx(r){if(r.filter(e=>e==null).length>0)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.`)}function SK(r){let e={x:I(r,"x","softplus")};return k.runKernel(Va,e)}var zs=T({softplus_:SK});function vK(r){let t=I(r,"x","logSigmoid");return un(n=>({value:Ht(zs(Ht(n))),gradFunc:i=>D(i,Yr(Ht(n)))}))(t)}var Gx=T({logSigmoid_:vK});function NK(r,t){let e=I(r,"a","sub"),n=I(t,"b","sub");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(Fs,o)}var ct=T({sub_:NK});function TK(r,t=-1){let e=I(r,"logits","logSoftmax");if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and axis was ${t}`);return un((o,s)=>{let a=Ir(o,t,!0),u=ct(o,a),l=ct(J(u,"float32"),Sr(ft(er(u),t,!0)));return s([l]),{value:l,gradFunc:(p,m)=>{let[f]=m,d=!0,h=er(f);return ct(p,D(ft(p,t,d),h))}}})(e)}var sm=T({logSoftmax_:TK});function kK(r,t=null,e=!1){let n=I(r,"x","logSumExp"),o=lr(t,n.shape),s=Ir(n,o,!0),i=ct(n,s),a=er(i),u=ft(a,o),l=Sr(u),c=X(R(s,l.shape),l);if(e){let p=yo(c.shape,o);return R(c,p)}return c}var im=T({logSumExp_:kK});function EK(r,t){let e=I(r,"a","logicalAnd","bool"),n=I(t,"b","logicalAnd","bool");Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Ea,o)}var Rr=T({logicalAnd_:EK});function _K(r){let e={x:I(r,"x","logicalNot","bool")};return k.runKernel(_a,e)}var eu=T({logicalNot_:_K});function AK(r,t){let e=I(r,"a","logicalOr","bool"),n=I(t,"b","logicalOr","bool");Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Aa,o)}var am=T({logicalOr_:AK});function $K(r,t){let e=I(r,"a","logicalXor","bool"),n=I(t,"b","logicalXor","bool");return Pt(e.shape,n.shape),Rr(am(r,t),eu(Rr(r,t)))}var Wx=T({logicalXor_:$K});var Ux=2147483648;function DK(r,t,e="left"){let n=I(r,"sortedSequence","searchSorted"),o=I(t,"values","searchSorted"),s=n.shape[n.shape.length-1],i=o.shape[o.shape.length-1],a=R(n,[-1,s]),u=R(o,[-1,i]);if(a.rank<2)throw new Error("Sorted input argument must be at least 2-dimensional");if(a.shape[0]!==u.shape[0])throw new Error("Leading dimension of 'sortedSequence' and 'values' must match.");if(Jt(u.shape)>=Ux)throw new Error(`values tensor size must less than ${Ux}`);if(a.shape[1]>=Ux)throw new Error(`trailing dim_size must less than ${Ux} for int32 output type, was ${a.shape[1]}`);let l={sortedSequence:a,values:u},c={side:e};return k.runKernel(Pp,l,c)}var mh=T({searchSorted_:DK});function jE(r,t){return mh(r,t,"left")}function RK(r,t,e,n,o){let s=I(r,"x","maxPool"),i=1,a=s,u=!1;s.rank===3&&(u=!0,a=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),E(a.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.rank}.`),E(Ar(e,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`),Ie("maxPool",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=k.runKernel(cs,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var ru=T({maxPool_:RK});function FK(r,t=[1,1,1],e,n,o,s="NDHWC"){let i=I(r,"x","maxPool3d"),a=i,u=!1;i.rank===4&&(u=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),E(a.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${a.rank}.`),E(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Ie("maxPool3d",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=k.runKernel(Fl,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Hx=T({maxPool3d_:FK});function OK(r,t,e,n,o=!1){let i={x:I(r,"x","maxPoolWithArgmax")},a={filterSize:t,strides:e,pad:n,includeBatchInIndex:o},u=k.runKernel(Ep,i,a);return{result:u[0],indexes:u[1]}}var XE=T({maxPoolWithArgmax_:OK});function PK(r,t){let e=I(r,"a","maximum"),n=I(t,"b","maximum");[e,n]=Ut(e,n),e.dtype==="bool"&&(e=J(e,"int32"),n=J(n,"int32")),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(us,o)}var Sn=T({maximum_:PK});function LK(r,t=null,e=!1){let o={x:I(r,"x","mean")},s={axis:t,keepDims:e};return k.runKernel(ps,o,s)}var ve=T({mean_:LK});function Ne(r,t="float32"){if(t==="complex64"){let n=Ne(r,"float32"),o=Ne(r,"float32");return wn(n,o)}let e=ip(Jt(r),t);return k.makeTensor(e,r,t)}function cr(r,t="float32"){if(t==="complex64"){let n=cr(r,"float32"),o=Ne(r,"float32");return wn(n,o)}let e=Wd(Jt(r),t);return k.makeTensor(e,r,t)}function YE(r,t,{indexing:e="xy"}={}){if(e!=="xy"&&e!=="ij")throw new TypeError(`${e} is not a valid third argument to meshgrid`);if(r===void 0)return[];let n=I(r,"x","meshgrid",r instanceof Ft?r.dtype:"float32");if(t===void 0)return[n];let o=I(t,"y","meshgrid",t instanceof Ft?t.dtype:"float32"),s=Jt(n.shape),i=Jt(o.shape);return e==="xy"?(n=R(n,[1,-1]),o=R(o,[-1,1]),[Lt(cr([i,1],n.dtype),n),Lt(o,cr([1,s],o.dtype))]):(n=R(n,[-1,1]),o=R(o,[1,-1]),[Lt(n,cr([1,i],n.dtype)),Lt(cr([s,1],o.dtype),o)])}function MK(r,t){let e=I(r,"a","minimum"),n=I(t,"b","minimum");[e,n]=Ut(e,n),e.dtype==="bool"&&(e=J(e,"int32"),n=J(n,"int32")),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(fs,o)}var Mi=T({minimum_:MK});function zK(r,t,e){E(e==="reflect"||e==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${e}.`);let n=I(r,"x","mirrorPad");if(n.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");E(t.length===n.rank,()=>`Padding doesn't match input. Must be ${n.rank}. Got ${t.length}.`);let o=e==="reflect"?1:0;for(let a=0;a"Invalid number of paddings. Must be length of 2 each."),E(t[a][0]>=0&&t[a][0]<=n.shape[a]-o&&t[a][1]>=0&&t[a][1]<=n.shape[a]-o,()=>`Padding in dimension ${a} cannot be greater than or equal to ${n.shape[a]-o} or less than 0 for input of shape ${n.shape}`);let s={paddings:t,mode:e},i={x:n};return k.runKernel(ds,i,s)}var qx=T({mirrorPad_:zK});function BK(r,t){let e=I(r,"a","mod"),n=I(t,"b","mod");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel($a,o)}var Kx=T({mod_:BK});function VK(r,t=null,e=!1){r=I(r,"x","moments");let n=lr(t,r.shape),o=ve(r,n,e),s=o.shape;e||(s=yo(o.shape,n));let i=Mt(ct(J(r,"float32"),R(o,s))),a=ve(i,n,e);return{mean:o,variance:a}}var Zu=T({moments_:VK});function GK(r,t,e,n){let o=I(t,"data","multiRNNCell"),s=ja(e,"c","multiRNNCell"),i=ja(n,"h","multiRNNCell"),a=o,u=[];for(let p=0;p2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);e=e||Math.random();let u={logits:i===1?R(o,[1,-1]):o},l={numSamples:t,seed:e,normalized:n},c=k.runKernel(_p,u,l);return i===1?R(c,[c.size]):c}var JE=T({multinomial_:WK});function UK(r,t){let e=I(r,"a","notEqual","string_or_numeric"),n=I(t,"b","notEqual","string_or_numeric");[e,n]=Ut(e,n),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Da,o)}var Bs=T({notEqual_:UK});function HK(r){let e={x:I(r,"x","onesLike")};return k.runKernel(mi,e)}var yr=T({onesLike_:HK});function qK(r,t){let e=I(r,"v1","outerProduct"),n=I(t,"v2","outerProduct");E(e.rank===1&&n.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${e.rank} and ${n.rank}.`);let o=R(e,[-1,1]),s=R(n,[1,-1]);return Lt(o,s)}var QE=T({outerProduct_:qK});function KK(r,t,e=0){let n=I(r,"x","pad");if(n.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let o={paddings:t,constantValue:e},s={x:n};return k.runKernel(xs,s,o)}var cn=T({pad_:KK});function jK(r,t,e=0){return E(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),cn(r,[t],e)}var t_=T({pad1d_:jK});function XK(r,t,e=0){return E(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),cn(r,t,e)}var e_=T({pad2d_:XK});function YK(r,t,e=0){return E(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),cn(r,t,e)}var r_=T({pad3d_:YK});function ZK(r,t,e=0){return E(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),cn(r,t,e)}var n_=T({pad4d_:ZK});function JK(r,t,e){let n=I(r,"x","spaceToBatchND");E(n.rank>=1+t.length,()=>`input rank ${n.rank} should be > than [blockShape] ${t.length}`),E(e.length===t.length,()=>`paddings.shape[0] ${e.length} must be equal to [blockShape] ${t.length}`),E(n.shape.reduce((i,a,u)=>u>0&&u<=t.length?i&&(a+e[u-1][0]+e[u-1][1])%t[u-1]===0:i,!0),()=>`input spatial dimensions ${n.shape.slice(1)} with paddings ${e.toString()} must be divisible by blockShapes ${t.toString()}`);let o={x:n},s={blockShape:t,paddings:e};return k.runKernel(xi,o,s)}var nu=T({spaceToBatchND_:JK});function QK(r,t,e,n,o,s,i){o==null&&(o=[1,1]),s==null&&(s=1),n===0&&(n="valid");let a=I(r,"x","maxPool"),u=a,l=!1;a.rank===3&&(l=!0,u=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),E(Ar(s,o),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`);let c=Y0(u.shape,t,s,o,n),p=[c.dilationHeight,c.dilationWidth],m;n==="same"?m=ej([c.filterHeight,c.filterWidth],p):m=[[0,0],[0,0]];let f=p[0]===1&&p[1]===1,[d,h]=tj([c.inHeight,c.inWidth],p,m),g=f?n:"valid",x=f?u:nu(u,p,d),w=(e==="avg"?()=>Yl(x,t,s,g,i):()=>ru(x,t,s,g,i))(),C=f?w:Zl(w,p,h);return l?R(C,[C.shape[1],C.shape[2],C.shape[3]]):C}function tj(r,t,e){let n=e.map(c=>c[0]),o=e.map(c=>c[1]),s=r.concat(n,o),i=t.map((c,p)=>(c-s[p]%c)%c),a=o.map((c,p)=>c+i[p]),u=t.map((c,p)=>[n[p],a[p]]),l=t.map((c,p)=>[0,i[p]]);return[u,l]}function ej(r,t){let n=r.map((i,a)=>i+(i-1)*(t[a]-1)).map(i=>i-1),o=n.map(i=>Math.floor(i/2)),s=n.map((i,a)=>i-o[a]);return n.map((i,a)=>[o[a],s[a]])}var jx=T({pool_:QK});function rj(r,t){let e=I(r,"x","prelu"),n=I(t,"alpha","prelu"),o={x:e,alpha:n};return k.runKernel(bs,o)}var ou=T({prelu_:rj});function nj(r,t=null,e=!1){let n=I(r,"x","prod");n.dtype==="bool"&&(n=J(n,"int32"));let o={x:n},s={axis:t,keepDims:e};return k.runKernel(ws,o,s)}var Xx=T({prod_:nj});function oj(r,t,e,n){let o=r.map((c,p)=>I(c,`tensors${p}`,"raggedGather","int32")),s=I(t,"paramsDenseValues","raggedGather"),i=I(e,"indices","raggedGather","int32"),a={paramsNestedSplits:o,paramsDenseValues:s,indices:i},u={outputRaggedRank:n},l=k.runKernel(Ap,a,u);return{outputNestedSplits:l.slice(0,l.length-1),outputDenseValues:l[l.length-1]}}var o_=T({raggedGather_:oj});function sj(r,t,e){let n=I(r,"starts","raggedRange"),o=I(t,"limits","raggedRange",n.dtype),s=I(e,"deltas","raggedRange",n.dtype),i={starts:n,limits:o,deltas:s},a=k.runKernel($p,i);return{rtNestedSplits:a[0],rtDenseValues:a[1]}}var s_=T({raggedRange_:sj});function ij(r,t,e,n,o){let s=I(r,"shape","raggedTensorToTensor","int32"),i=I(t,"values","raggedTensorToTensor"),a=I(e,"defaultValue","raggedTensorToTensor",i.dtype),u=n.map((p,m)=>I(p,`tensors${m}`,"raggedTensorToTensor","int32")),l={shape:s,values:i,defaultValue:a,rowPartitionTensors:u},c={rowPartitionTypes:o};return k.runKernel(Dp,l,c)}var i_=T({raggedTensorToTensor_:ij});function aj(r,t,e){let n=Jt(r),o=null;if(e==null||e==="float32")o=new Float32Array(n);else if(e==="int32")o=new Int32Array(n);else if(e==="bool")o=new Uint8Array(n);else throw new Error(`Unknown data type ${e}`);for(let s=0;s=1||i===0);let a=Math.sqrt(-2*Math.log(i)/i);t=this.mean+this.stdDev*o*a,e=this.mean+this.stdDev*s*a,(!this.truncated||this.isValidTruncated(t))&&(n=!0)}return(!this.truncated||this.isValidTruncated(e))&&(this.nextVal=this.convertValue(e)),this.convertValue(t)}convertValue(t){return this.dtype==null||this.dtype==="float32"?t:Math.round(t)}isValidTruncated(t){return t<=this.upper&&t>=this.lower}},Zx=class{constructor(t,e,n,o){this.alpha=t,this.beta=1/e,this.dtype=n;let s=o||Math.random();this.randu=Qx.alea(s.toString()),this.randn=new Qu(0,1,n,!1,this.randu()),t<1?this.d=t+2/3:this.d=t-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let t,e,n,o,s,i;for(;;){do o=this.randn.nextValue(),i=1+this.c*o;while(i<=0);if(i*=i*i,t=o*o,e=1-.331*t*t,n=.5*t+this.d*(1-i+Math.log(i)),s=this.randu(),sthis.dtype==null||this.dtype==="float32",this.min=t,this.range=e-t,this.dtype=n,o==null&&(o=Math.random()),typeof o=="number"&&(o=o.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${t} - ${e} <= 1 and dtype is not float`);this.random=Qx.alea(o)}convertValue(t){return this.canReturnFloat()?t:Math.round(t)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function dj(r,t,e=1,n="float32",o){if(e==null&&(e=1),n==null&&(n="float32"),n!=="float32"&&n!=="int32")throw new Error(`Unsupported data type ${n}`);let s=new Zx(t,e,n,o),i=wt(r,n);for(let a=0;a`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),pr(t,0)}var T_=T({reverse1d_:Ij});function Sj(r,t){let e=I(r,"x","reverse");return E(e.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${e.rank}.`),pr(e,t)}var k_=T({reverse2d_:Sj});function vj(r,t){let e=I(r,"x","reverse");return E(e.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${e.rank}.`),pr(e,t)}var E_=T({reverse3d_:vj});function Nj(r,t){let e=I(r,"x","reverse");return E(e.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${e.rank}.`),pr(e,t)}var __=T({reverse4d_:Nj});function Tj(r){let e={x:I(r,"x","round")};return k.runKernel(Ts,e)}var um=T({round_:Tj});function kj(r){let e={x:I(r,"x","rsqrt","float32")};return k.runKernel(ks,e)}var cm=T({rsqrt_:kj});function Ej(r){let e={x:I(r,"x","selu")};return k.runKernel(Ma,e)}var pm=T({selu_:Ej});function _j(r,t,e,n,o,s=[1,1],i="NHWC"){let a=I(r,"x","separableConv2d"),u=I(t,"depthwiseFilter","separableConv2d"),l=I(e,"pointwiseFilter","separableConv2d"),c=a,p=!1;if(a.rank===3&&(p=!0,c=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),i==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");E(c.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${c.rank}.`),E(u.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${u.rank}.`),E(l.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${u.rank}.`),E(l.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${l.shape[0]}.`),E(l.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${l.shape[1]}.`);let m=u.shape[2],f=u.shape[3];E(l.shape[2]===m*f,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${m*f}, but got ${l.shape[2]}.`);let d=Fi(c,u,n,o,i,s),g=In(d,l,1,"valid",i);return p?R(g,[g.shape[1],g.shape[2],g.shape[3]]):g}var mm=T({separableConv2d_:_j});async function Aj(r,t){let e=I(r,"x","setdiff1d"),n=I(t,"y","setdiff1d");E(e.dtype===n.dtype,()=>`x and y should have the same dtype, but got x (${e.dtype}) and y (${n.dtype}).`),E(e.rank===1,()=>`x should be 1D tensor, but got x (${e.shape}).`),E(n.rank===1,()=>`y should be 1D tensor, but got y (${n.shape}).`);let o=await e.data(),s=await n.data(),i=new Set(s),a=0;for(let c=0;c`slice1d expects a rank-1 tensor, but got a rank-${n.rank} tensor`),Rt(n,[t],[e])}var hm=T({slice1d_:Fj});function Oj(r,t,e){let n=I(r,"x","slice2d");return E(n.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`),Rt(n,t,e)}var dh=T({slice2d_:Oj});function Pj(r,t,e){let n=I(r,"x","slice3d");return E(n.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`),Rt(n,t,e)}var gm=T({slice3d_:Pj});function Lj(r,t,e){let n=I(r,"x","slice4d");return E(n.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`),Rt(n,t,e)}var ec=T({slice4d_:Lj});function Mj(r,t=-1){let e=I(r,"logits","softmax","float32");if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and dim was ${t}`);let n={logits:e},o={dim:t};return k.runKernel(Ds,n,o)}var iu=T({softmax_:Mj});function zj(r){E(r.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${r.dtype}.`);let t={input:r};return k.runKernel(Cp,t)}var au=T({fft_:zj});function Bj(r){E(r.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${r.dtype}.`);let t={input:r};return k.runKernel(Ip,t)}var tl=T({ifft_:Bj});function Vj(r){let t=r.shape[r.shape.length-1],e=r.size/t,n;if(t<=2){let o=R(r,[e,t]);n=tl(o)}else{let o=[e,2*(t-1)],s=R(Za(r),[e,t]),i=R(Xl(r),[e,t]),a=pr(Rt(s,[0,1],[e,t-2]),1),u=D(pr(Rt(i,[0,1],[e,t-2]),1),mt(-1)),l=ne([s,a],1),c=ne([i,u],1),p=R(wn(l,c),[o[0],o[1]]);n=tl(p)}if(n=Za(n),r.rank===3&&r.shape[0]!==0){let o=n,s=r.shape[0];n=R(n,[s,n.shape[0]/s,n.shape[1]]),o.dispose()}return n}var xm=T({irfft_:Vj});function Gj(r,t,e=0){let o={x:I(r,"x","split")},s={numOrSizeSplits:t,axis:e};return k.runKernel(yi,o,s)}var mr=T({split_:Gj});function Wj(r,t){E(r.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${r.dtype}`);let e=r.shape[r.shape.length-1],n=r.size/e,o;if(t!=null&&t0),h=r.shape.map(g=>g);h[r.shape.length-1]=t,o=Rt(r,d,h),e=t}else if(t!=null&&t>e){let d=r.shape.map(h=>h);d[r.shape.length-1]=t-e,o=ne([r,Ne(d)],r.shape.length-1),e=t}else o=r;let s=It(o),i=R(wn(o,s),[n,e]),a=au(i),u=Math.floor(e/2)+1,l=Za(a),c=Xl(a),p=mr(l,[u,e-u],l.shape.length-1),m=mr(c,[u,e-u],c.shape.length-1),f=o.shape.slice();return f[o.shape.length-1]=u,R(wn(p[0],m[0]),f)}var lu=T({rfft_:Wj});function Uj(r,t){let e=I(r,"a","squaredDifference"),n=I(t,"b","squaredDifference");[e,n]=Ut(e,n),Pt(e.shape,n.shape);let o={a:e,b:n},s={};return k.runKernel(Rs,o,s)}var ym=T({squaredDifference_:Uj});function Hj(r,t){let e=I(r,"x","squeeze","string_or_numeric");return R(e,t0(e.shape,t).newShape)}var Mn=T({squeeze_:Hj});function qj(r,t=0){let e=ja(r,"tensors","stack","string_or_numeric");E(e.length>=1,()=>"Pass at least one tensor to tf.stack"),e.length>0&&E(t<=e[0].rank,()=>"Axis must be <= rank of the tensor");let n=e,o={axis:t};return k.runKernel(fi,n,o)}var nr=T({stack_:qj});function Kj(r,t=0){let n={x:I(r,"x","step")},o={alpha:t};return k.runKernel(po,n,o)}var bo=T({step_:Kj});function jj(r,t,e,n,o=0,s=0,i=0,a=0,u=0){let c={x:I(r,"x","stridedSlice","string_or_numeric")},p={begin:t,end:e,strides:n,beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};return k.runKernel(Wa,c,p)}var ry=T({stridedSlice_:jj});function Xj(r){let e={x:I(r,"x","tan","float32")};return k.runKernel(Os,e)}var ny=T({tan_:Xj});function Me(r,t){Yn(r);let e=Br(r,t);if(e.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return on(r,null,e,t)}function Vs(r,t,e){if(Yn(r),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let n=Br(r,e);if(n.length!==2&&n.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return on(r,t,n,e)}function $_(r,t,e){if(Yn(r),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let n=Br(r,e);if(n.length!==4&&n.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return on(r,t,n,e)}function D_(r,t,e){if(Yn(r),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let n=Br(r,e);if(n.length!==5&&n.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return on(r,t,n,e)}function R_(r,t,e){if(Yn(r),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let n=Br(r,e);if(n.length!==6&&n.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||n,on(r,t,n,e)}function Yj(r,t=1,e=!0){let n=I(r,"x","topk");if(n.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let o=n.shape[n.shape.length-1];if(t<0)throw new Error(`'k' passed to topk() must be >= 0 but got ${t}`);if(t>o)throw new Error(`'k' passed to topk() must be <= the last dimension (${o}) but got ${t}`);let s={x:n},i={k:t,sorted:e},[a,u]=k.runKernel(Ua,s,i);return{values:a,indices:u}}var oy=T({topk_:Yj});function Zj(r,t=0,e=1,n,o){if(n!=null&&n==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new Qu(t,e,n,!0,o),i=wt(r,n);for(let a=0;a0,()=>"The input tensor must be at least 1D");let n={x:e},o={axis:t},[s,i]=k.runKernel(Mp,n,o);return{values:s,indices:i}}var sy=T({unique_:Jj});function Qj(r,t,e){let n=I(r,"x","unsortedSegmentSum"),o=I(t,"segmentIds","unsortedSegmentSum","int32");E(na(e),()=>"numSegments must be of dtype int");let s={x:n,segmentIds:o},i={numSegments:e};return k.runKernel(Wl,s,i)}var wm=T({unsortedSegmentSum_:Qj});function t6(r,t=0){let e=I(r,"x","unstack","string_or_numeric");E(t>=-e.shape.length&&t`Axis = ${t} is not in [-${e.shape.length}, ${e.shape.length})`);let n={value:e},o={axis:t};return k.runKernel(bi,n,o)}var vr=T({unstack_:t6});function F_(r,t){return mh(r,t,"right")}function iy(r,t=!0,e,n){return k.makeVariable(r,t,e,n)}function ay(r,t){let e=[];for(let s=0;s0,()=>"mask cannot be scalar"),$e(a.slice(s,s+i),o.shape,"mask's shape must match the first K dimensions of tensor's shape,");let u=1;for(let h=s;h"Shape mismatch in v and x");let u=mt(1),l=ct(u,a),c=D(ct(i,s),l);if(o){E(n!=null,()=>"When using zeroDebias: true, step is required.");let p=I(n,"step","movingAverage");c=pt(c,ct(u,an(a,p)))}return X(s,c)}var s6=T({movingAverage_:o6});function i6(r,t,e){let n=I(r,"indices","scatterND","int32"),o=I(t,"updates","scatterND");sx(o,n,e);let s={indices:n,updates:o},i={shape:e};return k.runKernel(La,s,i)}var a6=T({scatterND_:i6});function O_(r,t,e,n){if(r.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${r.dtype}.`);if(r.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${r.shape}.`);let o=r.rank>0?r.shape[0]:1,s=r.rank>1?r.shape[1]:1;if(e.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${e.length}, should be: ${s}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===o))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${o}]`);if(t.dtype!==n.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function u6(r,t,e,n=0){let o=I(r,"sparseIndices","sparseToDense","int32"),s=I(t,"sparseValues","sparseToDense","string_or_numeric"),i=I(n,"defaultValue","sparseToDense",s.dtype);O_(o,s,e,i);let a={sparseIndices:o,sparseValues:s,defaultValue:i},u={outputShape:e};return k.runKernel(Lp,a,u)}var c6=T({sparseToDense_:u6});function p6(r,t){let e=I(t,"indices","gatherND","int32"),o={params:I(r,"x","gatherND","string_or_numeric"),indices:e};return k.runKernel(wa,o)}var m6=T({gatherND_:p6});function P_(r,t){if(t==null)return r.shape.slice();if(Dn(r.shape,t))return t;if(r.shape.length===t.length){let e=[];for(let n=0;n`x has to be a floating point tensor since it's going to be scaled, but got a ${o.dtype} tensor instead.`),E(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return r instanceof Ft?o.clone():o;let s=P_(o,e),i=1-t,a=pt(Pi(X(zi(s,0,1,"float32",n),i)),i);return D(o,a)}var lv=T({dropout_:f6});function uv(r){return Math.floor(Math.pow(2,Math.ceil(Math.log(r)/Math.log(2))))}function hh(r,t,e){let n=1-r%2,o=new Float32Array(r);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${n.rank}`),E(n.rank-1===o.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${n.rank} and targets rank ${o.rank}`),$e(n.shape.slice(0,n.shape.length-1),o.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=n.shape[n.shape.length-1];E(e>0&&e<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${e}`);let i=await n.data(),a=await o.data(),[u,l]=[i.length/s,s],c=e0("bool",u);for(let p=0;pg.value-h.value),c[p]=0;for(let h=0;hL_,depthwiseConv2d:()=>M_,matMul:()=>z_});function g6(r,t,e,n,o,s="NHWC",i){let a=r;r.rank===3&&(a=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]])),E(a.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${a.shape}.`),E(u.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${u.shape}.`),E(e.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${e}.`);let l=s==="NHWC"?a.shape[3]:a.shape[1],c=s==="NHWC"?u.shape[3]:u.shape[1];E(l===e[2],()=>`Error in conv2dDerFilter: depth of input ${l}) must match input depth in filter (${e[2]}.`),E(c===e[3],()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${e[3]}).`),Ie("conv2dDerFilter",o,i);let p={x:a,dy:u},m={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,filterShape:e};return k.runKernel(mp,p,m)}var Cm=T({conv2DBackpropFilter_:g6});function rc(r,t,e){if(e==null||e==="linear")return r;if(e==="relu")return D(r,bo(t));throw new Error(`Cannot compute gradient for fused activation ${e}.`)}function nc(r,t){let e=t,n=ge(r.shape,t.shape);return n.length>0&&(e=ft(e,n)),R(e,r.shape)}function oc(r,t,e,n){if(t==="linear")return r;if(t==="relu")return Fr(r);if(t==="elu")return Oi(r);if(t==="relu6")return lm(r);if(t==="prelu")return ou(r,e);if(t==="leakyrelu")return Ql(r,n);if(t==="sigmoid")return Yr(r);throw new Error(`Unknown fused activation ${t}.`)}var sc=(r,t)=>!(r>0)||t==="linear";function x6({x:r,filter:t,strides:e,pad:n,dataFormat:o="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:a,activation:u="linear",preluActivationWeights:l,leakyreluAlpha:c}){if(u=u||"linear",sc(k.state.gradientDepth,u)===!1){E(o==="NHWC",()=>`Error in fused conv2d: got dataFormat of ${o} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let _=In(r,t,e,n,o,s,i);return a!=null&&(_=X(_,a)),oc(_,u,l,c)}let p=I(r,"x","conv2d","float32"),m=I(t,"filter","conv2d","float32"),f=p,d=!1;p.rank===3&&(d=!0,f=R(p,[1,p.shape[0],p.shape[1],p.shape[2]])),E(f.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${f.rank}.`),E(m.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${m.rank}.`),Ie("fused conv2d",n,i);let h=o==="NHWC"?f.shape[3]:f.shape[1];E(m.shape[2]===h,()=>`Error in conv2d: depth of input (${h}) must match input depth for filter ${m.shape[2]}.`),E(Ar(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let g=ju(f.shape,m.shape,e,s,n,i),x;a!=null&&(x=I(a,"bias","fused conv2d"),[x]=Ut(x,p),o==="NHWC"?Pt(g.outShape,x.shape):(E(x.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${x.shape.length}.`),E(x.shape.length===0||x.shape[0]===g.outChannels||x.shape[0]===1,()=>`Error in fused conv2d: bias shape (${x.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let b;if(l!=null){let _=l.shape;if(E(_.length<=1||_.length===3,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${_.length}.`),_.length===1)E(_[0]===1||_[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${_}) is not compatible with the number of output channels (${g.outChannels}).`);else if(_.length===3)try{Pt(_,g.outShape)}catch(A){let $=`Error in fused conv2d: PReLU activation weights (${_}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error($)}b=I(l,"prelu weights","fused conv2d")}let w=(_,A)=>{E(o==="NHWC",()=>`Error in gradient of fused conv2D: got dataFormat of ${o} but only NHWC is currently supported.`);let[$,F,P,V]=A,G=rc(_,P,u);E(to(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let W=tm(F.shape,G,$,e,n),q=Cm(F,G,$.shape,e,n),H=[W,q];if(V!=null){let j=nc(V,G);H.push(j)}return H},C={x:f,filter:m,bias:x,preluActivationWeights:b},N={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?un((A,$,F)=>{let P=k.runKernel(Ii,C,N);return F([$,A,P]),d&&(P=R(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:w}})(f,m):un((A,$,F,P)=>{let V=k.runKernel(Ii,C,N);return P([$,A,V,F]),d&&(V=R(V,[V.shape[1],V.shape[2],V.shape[3]])),{value:V,gradFunc:w}})(f,m,x)}var L_=T({fusedConv2d_:x6});function y6(r,t,e,n,o,s=[1,1],i){let a=r;r.rank===3&&(a=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let l={x:a,dy:u},c={strides:n,pad:o,dimRoundingMode:i,dilations:s,filterShape:e};return k.runKernel(gp,l,c)}var uy=T({depthwiseConv2dNativeBackpropFilter_:y6});function b6(r,t,e,n,o,s=[1,1],i){let a=t,u=!1;t.rank===3&&(u=!0,a=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let l={dy:a,filter:e},c={strides:n,pad:o,dimRoundingMode:i,dilations:s,inputShape:r},p=k.runKernel(xp,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var cy=T({depthwiseConv2dNativeBackpropInput_:b6});function w6({x:r,filter:t,strides:e,pad:n,dataFormat:o="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:a,activation:u="linear",preluActivationWeights:l,leakyreluAlpha:c}){if(sc(k.state.gradientDepth,u)===!1){let N=Fi(r,t,e,n,o,s,i);return a!=null&&(N=X(N,a)),oc(N,u,l,c)}let p=I(r,"x","depthwiseConv2d","float32"),m=I(t,"filter","depthwiseConv2d","float32"),f=p,d=!1;p.rank===3&&(d=!0,f=R(p,[1,p.shape[0],p.shape[1],p.shape[2]])),E(f.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${f.rank}.`),E(m.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${m.rank}.`),E(f.shape[3]===m.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${f.shape[3]}) must match the inChannels dimension in filter ${m.shape[2]}.`),s==null&&(s=[1,1]),E(Ar(e,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),Ie("fused depthwiseConv2d",n,i);let h=ju(f.shape,m.shape,e,s,n,i,!0),g;a!=null&&(g=I(a,"bias","fused conv2d"),[g]=Ut(g,p),Pt(h.outShape,g.shape));let x;l!=null&&(x=I(l,"prelu weights","fused depthwiseConv2d"));let b=(N,_)=>{E(to(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[A,$,F,P]=_,V=rc(N,F,u),G=cy($.shape,V,A,e,n,s,i),W=uy($,V,A.shape,e,n,s,i);if(P!=null){let q=nc(g,V);return[G,W,q]}return[G,W]},w={x:f,filter:m,bias:g,preluActivationWeights:x},C={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?un((_,A,$)=>{let F=k.runKernel(Si,w,C);return $([A,_,F]),d&&(F=R(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(f,m):un((_,A,$,F)=>{let P=k.runKernel(Si,w,C);return F([A,_,P,$]),d&&(P=R(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:b}})(f,m,g)}var M_=T({fusedDepthwiseConv2d_:w6});function C6({a:r,b:t,transposeA:e=!1,transposeB:n=!1,bias:o,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:a=.2}){if(sc(k.state.gradientDepth,s)===!1){let V=Lt(r,t,e,n);return o!=null&&(V=X(V,o)),oc(V,s,i,a)}let u=I(r,"a","fused matMul"),l=I(t,"b","fused matMul");[u,l]=Ut(u,l);let c=e?u.shape[u.rank-2]:u.shape[u.rank-1],p=n?l.shape[l.rank-1]:l.shape[l.rank-2],m=e?u.shape[u.rank-1]:u.shape[u.rank-2],f=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=u.shape.slice(0,-2),h=l.shape.slice(0,-2),g=Jt(d),x=Jt(h);E(c===p,()=>`Error in fused matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${u.shape} and ${l.shape} and transposeA=${e} and transposeB=${n} must match.`);let w=Pt(u.shape.slice(0,-2),l.shape.slice(0,-2)).concat([m,f]),C=e?R(u,[g,c,m]):R(u,[g,m,c]),N=n?R(l,[x,f,p]):R(l,[x,p,f]),_;o!=null&&(_=I(o,"bias","fused matMul"),[_]=Ut(_,u),Pt(w,_.shape));let A;i!=null&&(A=I(i,"prelu weights","fused matMul"));let $=(V,G)=>{let[W,q,H,j]=G,Y=rc(R(V,H.shape),H,s),Z,et;if(!e&&!n?(Z=Lt(Y,q,!1,!0),et=Lt(W,Y,!0,!1)):!e&&n?(Z=Lt(Y,q,!1,!1),et=Lt(Y,W,!0,!1)):e&&!n?(Z=Lt(q,Y,!1,!0),et=Lt(W,Y,!1,!1)):(Z=Lt(q,Y,!0,!0),et=Lt(Y,W,!0,!0)),o!=null){let rt=nc(j,Y);return[Z,et,rt]}else return[Z,et]},F={a:C,b:N,bias:_,preluActivationWeights:A},P={transposeA:e,transposeB:n,activation:s,leakyreluAlpha:a};return o==null?un((G,W,q)=>{let H=k.runKernel(Ci,F,P);return q([G,W,H]),{value:R(H,w),gradFunc:$}})(C,N):un((G,W,q,H)=>{let j=k.runKernel(Ci,F,P);return H([G,W,j,q]),{value:R(j,w),gradFunc:$}})(C,N,_)}var z_=T({fusedMatMul_:C6});function I6(r){return hh(r,.54,.46)}var B_=T({hammingWindow_:I6});function S6(r){return hh(r,.5,.5)}var py=T({hannWindow_:S6});function v6(r,t,e,n=!1,o=0){let s=0,i=[];for(;s+t<=r.size;)i.push(Rt(r,s,t)),s+=e;if(n)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),E(a.rank===2&&a.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${l},4] but had shape ${a.shape}.`),E(u.rank===1&&u.shape[0]===l,()=>`Error in cropAndResize: boxInd must be have size [${l}] but had shape ${a.shape}.`),E(n.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${n.length}.`),E(n[0]>=1&&n[1]>=1,()=>`cropSize must be atleast [1,1], but was ${n}`),E(o==="bilinear"||o==="nearest",()=>`method must be bilinear or nearest, but was ${o}`);let c={image:i,boxes:a,boxInd:u},p={method:o,extrapolationValue:s,cropSize:n};return k.runKernel(da,c,p)}var G_=T({cropAndResize_:T6});function k6(r){let t=I(r,"image","flipLeftRight","float32");E(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let e={image:t};return k.runKernel(ba,e,{})}var W_=T({flipLeftRight_:k6});function E6(r){let t=I(r,"image","grayscaleToRGB"),e=t.rank-1,n=t.shape[e];E(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),E(n===1,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${n}.`);let o=new Array(t.rank);return o.fill(1,0,e),o[e]=3,Dr(t,o)}var U_=T({grayscaleToRGB_:E6});function _6(r,t,e=0,n=.5){let o=I(r,"image","rotateWithOffset","float32");E(o.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${o.rank}.`);let s={image:o},i={radians:t,fillValue:e,center:n};return k.runKernel(qa,s,i)}var H_=T({rotateWithOffset_:_6});function wo(r,t,e,n,o,s){n==null&&(n=.5),o==null&&(o=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=r.shape[0];return e=Math.min(e,i),E(0<=n&&n<=1,()=>`iouThreshold must be in [0, 1], but was '${n}'`),E(r.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${r.rank}'`),E(r.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${r.shape[1]}`),E(t.rank===1,()=>"scores must be a 1D tensor"),E(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),E(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s}}function A6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=I(r,"boxes","nonMaxSuppression","float32"),i=I(t,"scores","nonMaxSuppression","float32"),a=wo(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u={maxOutputSize:e,iouThreshold:n,scoreThreshold:o};return k.runKernel(Ra,{boxes:s,scores:i},u)}var q_=T({nonMaxSuppression_:A6});function K_(r,t,e){let n=$6(r,t,e),o=n<0?-(n+1):n;r.splice(o,0,t)}function $6(r,t,e){return R6(r,t,e||D6)}function D6(r,t){return r>t?1:r>>1);let a=e(t,r[s]);a>0?n=s+1:(o=s,i=!a)}return i?n:-n-1}function fy(r,t,e,n,o){return cv(r,t,e,n,o,0)}function dy(r,t,e,n,o,s){return cv(r,t,e,n,o,0,!1,s,!0)}function hy(r,t,e,n,o,s){return cv(r,t,e,n,o,s,!0)}function cv(r,t,e,n,o,s,i=!1,a=!1,u=!1){let l=[];for(let g=0;go&&l.push({score:t[g],boxIndex:g,suppressBeginIndex:0});l.sort(j_);let c=s>0?-.5/s:0,p=[],m=[];for(;p.length0;){let g=l.pop(),{score:x,boxIndex:b,suppressBeginIndex:w}=g;if(x=w;--N){let _=F6(r,b,p[N]);if(_>=n){C=!0;break}if(g.score=g.score*O6(n,c,_),g.score<=o)break}g.suppressBeginIndex=p.length,C||(g.score===x?(p.push(b),m.push(g.score)):g.score>o&&K_(l,g,j_))}let f=p.length,d=e-f;a&&d>0&&(p.push(...new Array(d).fill(0)),m.push(...new Array(d).fill(0)));let h={selectedIndices:p};return i&&(h.selectedScores=m),u&&(h.validOutputs=f),h}function F6(r,t,e){let n=r.subarray(t*4,t*4+4),o=r.subarray(e*4,e*4+4),s=Math.min(n[0],n[2]),i=Math.min(n[1],n[3]),a=Math.max(n[0],n[2]),u=Math.max(n[1],n[3]),l=Math.min(o[0],o[2]),c=Math.min(o[1],o[3]),p=Math.max(o[0],o[2]),m=Math.max(o[1],o[3]),f=(a-s)*(u-i),d=(p-l)*(m-c);if(f<=0||d<=0)return 0;let h=Math.max(s,l),g=Math.max(i,c),x=Math.min(a,p),b=Math.min(u,m),w=Math.max(x-h,0)*Math.max(b-g,0);return w/(f+d-w)}function O6(r,t,e){let n=Math.exp(t*e*e);return e<=r?n:0}function j_(r,t){return r.score-t.score||r.score===t.score&&t.boxIndex-r.boxIndex}async function P6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=I(r,"boxes","nonMaxSuppressionAsync"),i=I(t,"scores","nonMaxSuppressionAsync"),a=wo(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u=await Promise.all([s.data(),i.data()]),l=u[0],c=u[1],{selectedIndices:p}=fy(l,c,e,n,o);return s!==r&&s.dispose(),i!==t&&i.dispose(),Me(p,"int32")}var X_=P6;function L6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=I(r,"boxes","nonMaxSuppression"),a=I(t,"scores","nonMaxSuppression"),u=wo(i,a,e,n,o,s);e=u.maxOutputSize,n=u.iouThreshold,o=u.scoreThreshold,s=u.softNmsSigma;let l={boxes:i,scores:a},c={maxOutputSize:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s},p=k.runKernel(Oa,l,c);return{selectedIndices:p[0],selectedScores:p[1]}}var Y_=T({nonMaxSuppressionWithScore_:L6});async function M6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=I(r,"boxes","nonMaxSuppressionAsync"),a=I(t,"scores","nonMaxSuppressionAsync"),u=wo(i,a,e,n,o,s);e=u.maxOutputSize,n=u.iouThreshold,o=u.scoreThreshold,s=u.softNmsSigma;let l=await Promise.all([i.data(),a.data()]),c=l[0],p=l[1],{selectedIndices:m,selectedScores:f}=hy(c,p,e,n,o,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Me(m,"int32"),selectedScores:Me(f)}}var Z_=M6;function z6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=I(r,"boxes","nonMaxSuppression"),a=I(t,"scores","nonMaxSuppression"),u=wo(i,a,e,n,o,null),l=u.maxOutputSize,c=u.iouThreshold,p=u.scoreThreshold,m={boxes:i,scores:a},f={maxOutputSize:l,iouThreshold:c,scoreThreshold:p,padToMaxOutputSize:s},d=k.runKernel(Fa,m,f);return{selectedIndices:d[0],validOutputs:d[1]}}var J_=T({nonMaxSuppressionPadded_:z6});async function B6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=I(r,"boxes","nonMaxSuppressionAsync"),a=I(t,"scores","nonMaxSuppressionAsync"),u=wo(i,a,e,n,o,null),l=u.maxOutputSize,c=u.iouThreshold,p=u.scoreThreshold,[m,f]=await Promise.all([i.data(),a.data()]),{selectedIndices:d,validOutputs:h}=dy(m,f,l,c,p,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Me(d,"int32"),validOutputs:mt(h,"int32")}}var Q_=B6;function V6(r,t,e=!1,n=!1){let o=I(r,"images","resizeBilinear");E(o.rank===3||o.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${o.rank}.`),E(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),E(n===!1||e===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=o,i=!1;o.rank===3&&(i=!0,s=R(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=k.runKernel(Ss,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var gy=T({resizeBilinear_:V6});function G6(r,t,e=!1,n=!1){let o=I(r,"images","resizeNearestNeighbor");E(o.rank===3||o.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${o.rank}.`),E(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),E(o.dtype==="float32"||o.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),E(n===!1||e===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=o,i=!1;o.rank===3&&(i=!0,s=R(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=k.runKernel(Is,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var xy=T({resizeNearestNeighbor_:G6});function W6(r,t="binary",e=!1,n=.5){let o=I(r,"image","threshold"),s=.2989,i=.587,a=.114,u=o.shape[0]*o.shape[1],l=D(Me([n]),255),c,p,m,f;if(E(o.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${o.rank}.`),E(o.shape[2]===3||o.shape[2]===1,()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${o.shape[2]}.`),E(o.dtype==="int32"||o.dtype==="float32",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${o.dtype}.`),E(t==="otsu"||t==="binary",()=>`Method must be binary or otsu, but was ${t}`),o.shape[2]===3){[c,p,m]=mr(o,[1,1,1],-1);let g=D(c,s),x=D(p,i),b=D(m,a);f=X(X(g,x),b)}else f=r;if(t==="otsu"){let g=wx(J(um(f),"int32"),ur([]),256);l=U6(g,u)}let d=e?Ln(f,l):Re(f,l);return J(D(d,255),"int32")}function U6(r,t){let e=Me([-1]),n=Me([0]),o=Me([0]),s,i,a,u,l,c;for(let p=0;p`Error in transform: image must be rank 4,but got rank ${i.rank}.`),E(a.rank===2&&(a.shape[0]===i.shape[0]||a.shape[0]===1)&&a.shape[1]===8,()=>"Error in transform: Input transform should be batch x 8 or 1 x 8"),E(s==null||s.length===2,()=>`Error in transform: outputShape must be [height, width] or null, but got ${s}.`);let u={image:i,transforms:a},l={interpolation:e,fillMode:n,fillValue:o,outputShape:s};return k.runKernel(Ha,u,l)}var eA=T({transform_:H6});function q6(r,t,e){E(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),E(e%1===0,()=>`bandPart(): numUpper must be an integer, got ${e}.`);let n=I(r,"a","bandPart");E(n.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${n.rank}.`);let o=n.shape,[s,i]=n.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(e<=i))throw new Error(`bandPart(): numUpper (${e}) must not be greater than the number of columns (${i}).`);t<0&&(t=s),e<0&&(e=i);let a=R(su(0,s,1,"int32"),[-1,1]),u=su(0,i,1,"int32"),l=ct(a,u),c=Rr(Ln(l,mt(+t,"int32")),ln(l,mt(-e,"int32"))),p=Ne([s,i],n.dtype);return R(nr(vr(R(n,[-1,s,i])).map(m=>_e(c,m,p))),o)}var rA=T({bandPart_:q6});function K6(r){let t;if(Array.isArray(r)){t=!1,E(r!=null&&r.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let o=r[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${r[s].shape[0]} vs. ${o})`)}else t=!0,r=mr(r,r.shape[0],0).map(o=>Mn(o,[0]));E(r.length<=r[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${r.length}) exceeds number of dimensions (${r[0].shape[0]}).`);let e=[],n=r;for(let o=0;o{let s=n[o];if(o>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${r.rank}`),r.rank===2)return oA(r,t);{let e=r.shape.slice(0,r.shape.length-2).reduce((u,l)=>u*l),n=vr(R(r,[e,r.shape[r.shape.length-2],r.shape[r.shape.length-1]]),0),o=[],s=[];n.forEach(u=>{let[l,c]=oA(u,t);o.push(l),s.push(c)});let i=R(nr(o,0),r.shape),a=R(nr(s,0),r.shape);return[i,a]}}function oA(r,t=!1){return k.tidy(()=>{E(r.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${r.shape.length}D Tensor.`);let e=r.shape[0],n=r.shape[1],o=Yu(e),s=sn(r),i=Vs([[1]],[1,1]),a=sn(i),u=e>=n?n:e;for(let l=0;l{let f=Rt(s,[l,l],[e-l,1]),d=Qa(f),h=Rt(s,[l,l],[1,1]),g=_e(Re(h,0),Vs([[-1]]),Vs([[1]])),x=ct(h,D(g,d)),b=pt(f,x);b.shape[0]===1?a=sn(i):a=ne([i,Rt(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let w=Ht(pt(Lt(g,x),d)),C=Rt(s,[l,0],[e-l,n]),N=D(w,a),_=Ot(a);if(l===0)s=ct(C,Lt(N,Lt(_,C)));else{let F=ct(C,Lt(N,Lt(_,C)));s=ne([Rt(s,[0,0],[l,n]),F],0)}let A=Ot(N),$=Rt(o,[0,l],[e,o.shape[1]-l]);if(l===0)o=ct($,Lt(Lt($,a),A));else{let F=ct($,Lt(Lt($,a),A));o=ne([Rt(o,[0,0],[e,l]),F],1)}return[a,s,o]}),vt([c,p,m])}return!t&&e>n&&(o=Rt(o,[0,0],[e,n]),s=Rt(s,[0,0],[n,n])),[o,s]})}var sA=T({qr_:j6});var Xe;(function(r){r[r.NONE=0]="NONE",r[r.MEAN=1]="MEAN",r[r.SUM=2]="SUM",r[r.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(Xe||(Xe={}));function X6(r,t,e=Xe.SUM_BY_NONZERO_WEIGHTS){let n=I(r,"losses","computeWeightedLoss"),o=null;t!=null&&(o=I(t,"weights","computeWeightedLoss"));let s=o==null?n:D(n,o);if(e===Xe.NONE)return s;if(e===Xe.SUM)return ft(s);if(e===Xe.MEAN){if(o==null)return ve(s);{let i=n.size/o.size,a=pt(ft(s),ft(o));return i>1?pt(a,mt(i)):a}}if(e===Xe.SUM_BY_NONZERO_WEIGHTS){if(o==null)return pt(ft(s),mt(n.size));{let i=D(o,cr(n.shape)),a=J(ft(Bs(i,mt(0))),"float32");return pt(ft(s),a)}}throw Error(`Unknown reduction: ${e}`)}var Gr=T({computeWeightedLoss_:X6});function Y6(r,t,e,n=Xe.SUM_BY_NONZERO_WEIGHTS){let o=I(r,"labels","absoluteDifference"),s=I(t,"predictions","absoluteDifference"),i=null;e!=null&&(i=I(e,"weights","absoluteDifference")),$e(o.shape,s.shape,"Error in absoluteDifference: ");let a=Ee(ct(o,s));return Gr(a,i,n)}var iA=T({absoluteDifference_:Y6});function Z6(r,t,e,n,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,"labels","cosineDistance"),i=I(t,"predictions","cosineDistance"),a=null;n!=null&&(a=I(n,"weights","cosineDistance")),$e(s.shape,i.shape,"Error in cosineDistance: ");let u=mt(1),l=ct(u,ft(D(s,i),e,!0));return Gr(l,a,o)}var aA=T({cosineDistance_:Z6});function J6(r,t,e,n=Xe.SUM_BY_NONZERO_WEIGHTS){let o=I(r,"labels","hingeLoss"),s=I(t,"predictions","hingeLoss"),i=null;e!=null&&(i=I(e,"weights","hingeLoss")),$e(o.shape,s.shape,"Error in hingeLoss: ");let a=mt(1);o=ct(D(mt(2),o),a);let u=Fr(ct(a,D(o,s)));return Gr(u,i,n)}var lA=T({hingeLoss_:J6});function Q6(r,t,e,n=1,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,"labels","huberLoss"),i=I(t,"predictions","huberLoss"),a=null;e!=null&&(a=I(e,"weights","huberLoss")),$e(s.shape,i.shape,"Error in huberLoss: ");let u=mt(n),l=Ee(ct(i,s)),c=Mi(l,u),p=ct(l,c),m=X(D(mt(.5),Mt(c)),D(u,p));return Gr(m,a,o)}var uA=T({huberLoss_:Q6});function tX(r,t,e,n=1e-7,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,"labels","logLoss"),i=I(t,"predictions","logLoss"),a=null;e!=null&&(a=I(e,"weights","logLoss")),$e(s.shape,i.shape,"Error in logLoss: ");let u=mt(1),l=mt(n),c=Ht(D(s,Sr(X(i,l)))),p=D(ct(u,s),Sr(X(ct(u,i),l))),m=ct(c,p);return Gr(m,a,o)}var cA=T({logLoss_:tX});function eX(r,t,e,n=Xe.SUM_BY_NONZERO_WEIGHTS){let o=I(r,"labels","meanSquaredError"),s=I(t,"predictions","meanSquaredError"),i=null;e!=null&&(i=I(e,"weights","meanSquaredError")),$e(o.shape,s.shape,"Error in meanSquaredError: ");let a=ym(o,s);return Gr(a,i,n)}var pA=T({meanSquaredError_:eX});function rX(r,t){let e=I(r,"labels","sigmoidCrossEntropyWithLogits"),n=I(t,"logits","sigmoidCrossEntropyWithLogits");$e(e.shape,n.shape,"Error in sigmoidCrossEntropyWithLogits: ");let o=Fr(n),s=D(n,e),i=tu(er(Ht(Ee(n))));return X(ct(o,s),i)}function nX(r,t,e,n=0,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,"multiClassLabels","sigmoidCrossEntropy"),i=I(t,"logits","sigmoidCrossEntropy"),a=null;if(e!=null&&(a=I(e,"weights","sigmoidCrossEntropy")),$e(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),n>0){let l=mt(n),c=mt(1),p=mt(.5);s=X(D(s,ct(c,l)),D(p,l))}let u=rX(s,i);return Gr(u,a,o)}var mA=T({sigmoidCrossEntropy_:nX});function oX(r,t,e=-1){if(e===-1&&(e=t.rank-1),e!==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 ${e}`);return un((o,s,i)=>{let u=im(s,[e],!0),l=ct(J(s,"float32"),u);i([o,l]);let c=Ht(D(l,o));return{value:ft(c,[e]),gradFunc:(f,d)=>{let[h,g]=d,x=yo(f.shape,[e]);return[D(R(f,x),ct(J(h,"float32"),er(g))),D(R(f,x),ct(er(g),J(h,"float32")))]}}})(r,t)}function sX(r,t,e,n=0,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,"onehotLabels","softmaxCrossEntropy"),i=I(t,"logits","softmaxCrossEntropy"),a=null;if(e!=null&&(a=I(e,"weights","softmaxCrossEntropy")),$e(s.shape,i.shape,"Error in softmaxCrossEntropy: "),n>0){let l=mt(n),c=mt(1),p=mt(s.shape[1]);s=X(D(s,ct(c,l)),pt(l,p))}let u=oX(s,i);return Gr(u,a,o)}var fA=T({softmaxCrossEntropy_:sX});function iX(r,t,e,n){let o=I(r,"indices","sparseFillEmptyRows","int32"),s=I(t,"values","sparseFillEmptyRows"),i=I(e,"denseShape","sparseFillEmptyRows","int32"),a=I(n,"defaultValue","sparseFillEmptyRows",s.dtype);if(o.rank!==2)throw new Error(`Indices should be Tensor2D but received shape + the f you passed encloses all operations that lead from x to y.`)}function SK(r){let e={x:I(r,"x","softplus")};return k.runKernel(Va,e)}var zs=T({softplus_:SK});function vK(r){let t=I(r,"x","logSigmoid");return un(n=>({value:Ht(zs(Ht(n))),gradFunc:i=>D(i,Yr(Ht(n)))}))(t)}var Gx=T({logSigmoid_:vK});function NK(r,t){let e=I(r,"a","sub"),n=I(t,"b","sub");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(Fs,o)}var ct=T({sub_:NK});function TK(r,t=-1){let e=I(r,"logits","logSoftmax");if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and axis was ${t}`);return un((o,s)=>{let a=Ir(o,t,!0),u=ct(o,a),l=ct(J(u,"float32"),Sr(ft(er(u),t,!0)));return s([l]),{value:l,gradFunc:(p,m)=>{let[f]=m,d=!0,h=er(f);return ct(p,D(ft(p,t,d),h))}}})(e)}var sm=T({logSoftmax_:TK});function kK(r,t=null,e=!1){let n=I(r,"x","logSumExp"),o=lr(t,n.shape),s=Ir(n,o,!0),i=ct(n,s),a=er(i),u=ft(a,o),l=Sr(u),c=X(R(s,l.shape),l);if(e){let p=yo(c.shape,o);return R(c,p)}return c}var im=T({logSumExp_:kK});function EK(r,t){let e=I(r,"a","logicalAnd","bool"),n=I(t,"b","logicalAnd","bool");Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Ea,o)}var Rr=T({logicalAnd_:EK});function _K(r){let e={x:I(r,"x","logicalNot","bool")};return k.runKernel(_a,e)}var eu=T({logicalNot_:_K});function AK(r,t){let e=I(r,"a","logicalOr","bool"),n=I(t,"b","logicalOr","bool");Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Aa,o)}var am=T({logicalOr_:AK});function $K(r,t){let e=I(r,"a","logicalXor","bool"),n=I(t,"b","logicalXor","bool");return Pt(e.shape,n.shape),Rr(am(r,t),eu(Rr(r,t)))}var Wx=T({logicalXor_:$K});var Ux=2147483648;function DK(r,t,e="left"){let n=I(r,"sortedSequence","searchSorted"),o=I(t,"values","searchSorted"),s=n.shape[n.shape.length-1],i=o.shape[o.shape.length-1],a=R(n,[-1,s]),u=R(o,[-1,i]);if(a.rank<2)throw new Error("Sorted input argument must be at least 2-dimensional");if(a.shape[0]!==u.shape[0])throw new Error("Leading dimension of 'sortedSequence' and 'values' must match.");if(Jt(u.shape)>=Ux)throw new Error(`values tensor size must less than ${Ux}`);if(a.shape[1]>=Ux)throw new Error(`trailing dim_size must less than ${Ux} for int32 output type, was ${a.shape[1]}`);let l={sortedSequence:a,values:u},c={side:e};return k.runKernel(Pp,l,c)}var mh=T({searchSorted_:DK});function jE(r,t){return mh(r,t,"left")}function RK(r,t,e,n,o){let s=I(r,"x","maxPool"),i=1,a=s,u=!1;s.rank===3&&(u=!0,a=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),E(a.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.rank}.`),E(Ar(e,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`),Ie("maxPool",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=k.runKernel(cs,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var ru=T({maxPool_:RK});function FK(r,t=[1,1,1],e,n,o,s="NDHWC"){let i=I(r,"x","maxPool3d"),a=i,u=!1;i.rank===4&&(u=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),E(a.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${a.rank}.`),E(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Ie("maxPool3d",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=k.runKernel(Fl,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Hx=T({maxPool3d_:FK});function OK(r,t,e,n,o=!1){let i={x:I(r,"x","maxPoolWithArgmax")},a={filterSize:t,strides:e,pad:n,includeBatchInIndex:o},u=k.runKernel(Ep,i,a);return{result:u[0],indexes:u[1]}}var XE=T({maxPoolWithArgmax_:OK});function PK(r,t){let e=I(r,"a","maximum"),n=I(t,"b","maximum");[e,n]=Ut(e,n),e.dtype==="bool"&&(e=J(e,"int32"),n=J(n,"int32")),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(us,o)}var Sn=T({maximum_:PK});function LK(r,t=null,e=!1){let o={x:I(r,"x","mean")},s={axis:t,keepDims:e};return k.runKernel(ps,o,s)}var ve=T({mean_:LK});function Ne(r,t="float32"){if(t==="complex64"){let n=Ne(r,"float32"),o=Ne(r,"float32");return wn(n,o)}let e=ip(Jt(r),t);return k.makeTensor(e,r,t)}function cr(r,t="float32"){if(t==="complex64"){let n=cr(r,"float32"),o=Ne(r,"float32");return wn(n,o)}let e=Wd(Jt(r),t);return k.makeTensor(e,r,t)}function YE(r,t,{indexing:e="xy"}={}){if(e!=="xy"&&e!=="ij")throw new TypeError(`${e} is not a valid third argument to meshgrid`);if(r===void 0)return[];let n=I(r,"x","meshgrid",r instanceof Ft?r.dtype:"float32");if(t===void 0)return[n];let o=I(t,"y","meshgrid",t instanceof Ft?t.dtype:"float32"),s=Jt(n.shape),i=Jt(o.shape);return e==="xy"?(n=R(n,[1,-1]),o=R(o,[-1,1]),[Lt(cr([i,1],n.dtype),n),Lt(o,cr([1,s],o.dtype))]):(n=R(n,[-1,1]),o=R(o,[1,-1]),[Lt(n,cr([1,i],n.dtype)),Lt(cr([s,1],o.dtype),o)])}function MK(r,t){let e=I(r,"a","minimum"),n=I(t,"b","minimum");[e,n]=Ut(e,n),e.dtype==="bool"&&(e=J(e,"int32"),n=J(n,"int32")),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(fs,o)}var Mi=T({minimum_:MK});function zK(r,t,e){E(e==="reflect"||e==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${e}.`);let n=I(r,"x","mirrorPad");if(n.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");E(t.length===n.rank,()=>`Padding doesn't match input. Must be ${n.rank}. Got ${t.length}.`);let o=e==="reflect"?1:0;for(let a=0;a"Invalid number of paddings. Must be length of 2 each."),E(t[a][0]>=0&&t[a][0]<=n.shape[a]-o&&t[a][1]>=0&&t[a][1]<=n.shape[a]-o,()=>`Padding in dimension ${a} cannot be greater than or equal to ${n.shape[a]-o} or less than 0 for input of shape ${n.shape}`);let s={paddings:t,mode:e},i={x:n};return k.runKernel(ds,i,s)}var qx=T({mirrorPad_:zK});function BK(r,t){let e=I(r,"a","mod"),n=I(t,"b","mod");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel($a,o)}var Kx=T({mod_:BK});function VK(r,t=null,e=!1){r=I(r,"x","moments");let n=lr(t,r.shape),o=ve(r,n,e),s=o.shape;e||(s=yo(o.shape,n));let i=Mt(ct(J(r,"float32"),R(o,s))),a=ve(i,n,e);return{mean:o,variance:a}}var Zu=T({moments_:VK});function GK(r,t,e,n){let o=I(t,"data","multiRNNCell"),s=ja(e,"c","multiRNNCell"),i=ja(n,"h","multiRNNCell"),a=o,u=[];for(let p=0;p2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);e=e||Math.random();let u={logits:i===1?R(o,[1,-1]):o},l={numSamples:t,seed:e,normalized:n},c=k.runKernel(_p,u,l);return i===1?R(c,[c.size]):c}var JE=T({multinomial_:WK});function UK(r,t){let e=I(r,"a","notEqual","string_or_numeric"),n=I(t,"b","notEqual","string_or_numeric");[e,n]=Ut(e,n),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Da,o)}var Bs=T({notEqual_:UK});function HK(r){let e={x:I(r,"x","onesLike")};return k.runKernel(mi,e)}var yr=T({onesLike_:HK});function qK(r,t){let e=I(r,"v1","outerProduct"),n=I(t,"v2","outerProduct");E(e.rank===1&&n.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${e.rank} and ${n.rank}.`);let o=R(e,[-1,1]),s=R(n,[1,-1]);return Lt(o,s)}var QE=T({outerProduct_:qK});function KK(r,t,e=0){let n=I(r,"x","pad");if(n.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let o={paddings:t,constantValue:e},s={x:n};return k.runKernel(xs,s,o)}var cn=T({pad_:KK});function jK(r,t,e=0){return E(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),cn(r,[t],e)}var t_=T({pad1d_:jK});function XK(r,t,e=0){return E(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),cn(r,t,e)}var e_=T({pad2d_:XK});function YK(r,t,e=0){return E(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),cn(r,t,e)}var r_=T({pad3d_:YK});function ZK(r,t,e=0){return E(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),cn(r,t,e)}var n_=T({pad4d_:ZK});function JK(r,t,e){let n=I(r,"x","spaceToBatchND");E(n.rank>=1+t.length,()=>`input rank ${n.rank} should be > than [blockShape] ${t.length}`),E(e.length===t.length,()=>`paddings.shape[0] ${e.length} must be equal to [blockShape] ${t.length}`),E(n.shape.reduce((i,a,u)=>u>0&&u<=t.length?i&&(a+e[u-1][0]+e[u-1][1])%t[u-1]===0:i,!0),()=>`input spatial dimensions ${n.shape.slice(1)} with paddings ${e.toString()} must be divisible by blockShapes ${t.toString()}`);let o={x:n},s={blockShape:t,paddings:e};return k.runKernel(xi,o,s)}var nu=T({spaceToBatchND_:JK});function QK(r,t,e,n,o,s,i){o==null&&(o=[1,1]),s==null&&(s=1),n===0&&(n="valid");let a=I(r,"x","maxPool"),u=a,l=!1;a.rank===3&&(l=!0,u=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),E(Ar(s,o),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`);let c=Yv(u.shape,t,s,o,n),p=[c.dilationHeight,c.dilationWidth],m;n==="same"?m=ej([c.filterHeight,c.filterWidth],p):m=[[0,0],[0,0]];let f=p[0]===1&&p[1]===1,[d,h]=tj([c.inHeight,c.inWidth],p,m),g=f?n:"valid",x=f?u:nu(u,p,d),w=(e==="avg"?()=>Yl(x,t,s,g,i):()=>ru(x,t,s,g,i))(),C=f?w:Zl(w,p,h);return l?R(C,[C.shape[1],C.shape[2],C.shape[3]]):C}function tj(r,t,e){let n=e.map(c=>c[0]),o=e.map(c=>c[1]),s=r.concat(n,o),i=t.map((c,p)=>(c-s[p]%c)%c),a=o.map((c,p)=>c+i[p]),u=t.map((c,p)=>[n[p],a[p]]),l=t.map((c,p)=>[0,i[p]]);return[u,l]}function ej(r,t){let n=r.map((i,a)=>i+(i-1)*(t[a]-1)).map(i=>i-1),o=n.map(i=>Math.floor(i/2)),s=n.map((i,a)=>i-o[a]);return n.map((i,a)=>[o[a],s[a]])}var jx=T({pool_:QK});function rj(r,t){let e=I(r,"x","prelu"),n=I(t,"alpha","prelu"),o={x:e,alpha:n};return k.runKernel(bs,o)}var ou=T({prelu_:rj});function nj(r,t=null,e=!1){let n=I(r,"x","prod");n.dtype==="bool"&&(n=J(n,"int32"));let o={x:n},s={axis:t,keepDims:e};return k.runKernel(ws,o,s)}var Xx=T({prod_:nj});function oj(r,t,e,n){let o=r.map((c,p)=>I(c,`tensors${p}`,"raggedGather","int32")),s=I(t,"paramsDenseValues","raggedGather"),i=I(e,"indices","raggedGather","int32"),a={paramsNestedSplits:o,paramsDenseValues:s,indices:i},u={outputRaggedRank:n},l=k.runKernel(Ap,a,u);return{outputNestedSplits:l.slice(0,l.length-1),outputDenseValues:l[l.length-1]}}var o_=T({raggedGather_:oj});function sj(r,t,e){let n=I(r,"starts","raggedRange"),o=I(t,"limits","raggedRange",n.dtype),s=I(e,"deltas","raggedRange",n.dtype),i={starts:n,limits:o,deltas:s},a=k.runKernel($p,i);return{rtNestedSplits:a[0],rtDenseValues:a[1]}}var s_=T({raggedRange_:sj});function ij(r,t,e,n,o){let s=I(r,"shape","raggedTensorToTensor","int32"),i=I(t,"values","raggedTensorToTensor"),a=I(e,"defaultValue","raggedTensorToTensor",i.dtype),u=n.map((p,m)=>I(p,`tensors${m}`,"raggedTensorToTensor","int32")),l={shape:s,values:i,defaultValue:a,rowPartitionTensors:u},c={rowPartitionTypes:o};return k.runKernel(Dp,l,c)}var i_=T({raggedTensorToTensor_:ij});function aj(r,t,e){let n=Jt(r),o=null;if(e==null||e==="float32")o=new Float32Array(n);else if(e==="int32")o=new Int32Array(n);else if(e==="bool")o=new Uint8Array(n);else throw new Error(`Unknown data type ${e}`);for(let s=0;s=1||i===0);let a=Math.sqrt(-2*Math.log(i)/i);t=this.mean+this.stdDev*o*a,e=this.mean+this.stdDev*s*a,(!this.truncated||this.isValidTruncated(t))&&(n=!0)}return(!this.truncated||this.isValidTruncated(e))&&(this.nextVal=this.convertValue(e)),this.convertValue(t)}convertValue(t){return this.dtype==null||this.dtype==="float32"?t:Math.round(t)}isValidTruncated(t){return t<=this.upper&&t>=this.lower}},Zx=class{constructor(t,e,n,o){this.alpha=t,this.beta=1/e,this.dtype=n;let s=o||Math.random();this.randu=Qx.alea(s.toString()),this.randn=new Qu(0,1,n,!1,this.randu()),t<1?this.d=t+2/3:this.d=t-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let t,e,n,o,s,i;for(;;){do o=this.randn.nextValue(),i=1+this.c*o;while(i<=0);if(i*=i*i,t=o*o,e=1-.331*t*t,n=.5*t+this.d*(1-i+Math.log(i)),s=this.randu(),sthis.dtype==null||this.dtype==="float32",this.min=t,this.range=e-t,this.dtype=n,o==null&&(o=Math.random()),typeof o=="number"&&(o=o.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${t} - ${e} <= 1 and dtype is not float`);this.random=Qx.alea(o)}convertValue(t){return this.canReturnFloat()?t:Math.round(t)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function dj(r,t,e=1,n="float32",o){if(e==null&&(e=1),n==null&&(n="float32"),n!=="float32"&&n!=="int32")throw new Error(`Unsupported data type ${n}`);let s=new Zx(t,e,n,o),i=wt(r,n);for(let a=0;a`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),pr(t,0)}var T_=T({reverse1d_:Ij});function Sj(r,t){let e=I(r,"x","reverse");return E(e.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${e.rank}.`),pr(e,t)}var k_=T({reverse2d_:Sj});function vj(r,t){let e=I(r,"x","reverse");return E(e.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${e.rank}.`),pr(e,t)}var E_=T({reverse3d_:vj});function Nj(r,t){let e=I(r,"x","reverse");return E(e.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${e.rank}.`),pr(e,t)}var __=T({reverse4d_:Nj});function Tj(r){let e={x:I(r,"x","round")};return k.runKernel(Ts,e)}var um=T({round_:Tj});function kj(r){let e={x:I(r,"x","rsqrt","float32")};return k.runKernel(ks,e)}var cm=T({rsqrt_:kj});function Ej(r){let e={x:I(r,"x","selu")};return k.runKernel(Ma,e)}var pm=T({selu_:Ej});function _j(r,t,e,n,o,s=[1,1],i="NHWC"){let a=I(r,"x","separableConv2d"),u=I(t,"depthwiseFilter","separableConv2d"),l=I(e,"pointwiseFilter","separableConv2d"),c=a,p=!1;if(a.rank===3&&(p=!0,c=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),i==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");E(c.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${c.rank}.`),E(u.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${u.rank}.`),E(l.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${u.rank}.`),E(l.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${l.shape[0]}.`),E(l.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${l.shape[1]}.`);let m=u.shape[2],f=u.shape[3];E(l.shape[2]===m*f,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${m*f}, but got ${l.shape[2]}.`);let d=Fi(c,u,n,o,i,s),g=In(d,l,1,"valid",i);return p?R(g,[g.shape[1],g.shape[2],g.shape[3]]):g}var mm=T({separableConv2d_:_j});async function Aj(r,t){let e=I(r,"x","setdiff1d"),n=I(t,"y","setdiff1d");E(e.dtype===n.dtype,()=>`x and y should have the same dtype, but got x (${e.dtype}) and y (${n.dtype}).`),E(e.rank===1,()=>`x should be 1D tensor, but got x (${e.shape}).`),E(n.rank===1,()=>`y should be 1D tensor, but got y (${n.shape}).`);let o=await e.data(),s=await n.data(),i=new Set(s),a=0;for(let c=0;c`slice1d expects a rank-1 tensor, but got a rank-${n.rank} tensor`),Rt(n,[t],[e])}var hm=T({slice1d_:Fj});function Oj(r,t,e){let n=I(r,"x","slice2d");return E(n.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`),Rt(n,t,e)}var dh=T({slice2d_:Oj});function Pj(r,t,e){let n=I(r,"x","slice3d");return E(n.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`),Rt(n,t,e)}var gm=T({slice3d_:Pj});function Lj(r,t,e){let n=I(r,"x","slice4d");return E(n.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`),Rt(n,t,e)}var ec=T({slice4d_:Lj});function Mj(r,t=-1){let e=I(r,"logits","softmax","float32");if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and dim was ${t}`);let n={logits:e},o={dim:t};return k.runKernel(Ds,n,o)}var iu=T({softmax_:Mj});function zj(r){E(r.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${r.dtype}.`);let t={input:r};return k.runKernel(Cp,t)}var au=T({fft_:zj});function Bj(r){E(r.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${r.dtype}.`);let t={input:r};return k.runKernel(Ip,t)}var tl=T({ifft_:Bj});function Vj(r){let t=r.shape[r.shape.length-1],e=r.size/t,n;if(t<=2){let o=R(r,[e,t]);n=tl(o)}else{let o=[e,2*(t-1)],s=R(Za(r),[e,t]),i=R(Xl(r),[e,t]),a=pr(Rt(s,[0,1],[e,t-2]),1),u=D(pr(Rt(i,[0,1],[e,t-2]),1),mt(-1)),l=ne([s,a],1),c=ne([i,u],1),p=R(wn(l,c),[o[0],o[1]]);n=tl(p)}if(n=Za(n),r.rank===3&&r.shape[0]!==0){let o=n,s=r.shape[0];n=R(n,[s,n.shape[0]/s,n.shape[1]]),o.dispose()}return n}var xm=T({irfft_:Vj});function Gj(r,t,e=0){let o={x:I(r,"x","split")},s={numOrSizeSplits:t,axis:e};return k.runKernel(yi,o,s)}var mr=T({split_:Gj});function Wj(r,t){E(r.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${r.dtype}`);let e=r.shape[r.shape.length-1],n=r.size/e,o;if(t!=null&&t0),h=r.shape.map(g=>g);h[r.shape.length-1]=t,o=Rt(r,d,h),e=t}else if(t!=null&&t>e){let d=r.shape.map(h=>h);d[r.shape.length-1]=t-e,o=ne([r,Ne(d)],r.shape.length-1),e=t}else o=r;let s=It(o),i=R(wn(o,s),[n,e]),a=au(i),u=Math.floor(e/2)+1,l=Za(a),c=Xl(a),p=mr(l,[u,e-u],l.shape.length-1),m=mr(c,[u,e-u],c.shape.length-1),f=o.shape.slice();return f[o.shape.length-1]=u,R(wn(p[0],m[0]),f)}var lu=T({rfft_:Wj});function Uj(r,t){let e=I(r,"a","squaredDifference"),n=I(t,"b","squaredDifference");[e,n]=Ut(e,n),Pt(e.shape,n.shape);let o={a:e,b:n},s={};return k.runKernel(Rs,o,s)}var ym=T({squaredDifference_:Uj});function Hj(r,t){let e=I(r,"x","squeeze","string_or_numeric");return R(e,tv(e.shape,t).newShape)}var Mn=T({squeeze_:Hj});function qj(r,t=0){let e=ja(r,"tensors","stack","string_or_numeric");E(e.length>=1,()=>"Pass at least one tensor to tf.stack"),e.length>0&&E(t<=e[0].rank,()=>"Axis must be <= rank of the tensor");let n=e,o={axis:t};return k.runKernel(fi,n,o)}var nr=T({stack_:qj});function Kj(r,t=0){let n={x:I(r,"x","step")},o={alpha:t};return k.runKernel(po,n,o)}var bo=T({step_:Kj});function jj(r,t,e,n,o=0,s=0,i=0,a=0,u=0){let c={x:I(r,"x","stridedSlice","string_or_numeric")},p={begin:t,end:e,strides:n,beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};return k.runKernel(Wa,c,p)}var ry=T({stridedSlice_:jj});function Xj(r){let e={x:I(r,"x","tan","float32")};return k.runKernel(Os,e)}var ny=T({tan_:Xj});function Me(r,t){Yn(r);let e=Br(r,t);if(e.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return on(r,null,e,t)}function Vs(r,t,e){if(Yn(r),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let n=Br(r,e);if(n.length!==2&&n.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return on(r,t,n,e)}function $_(r,t,e){if(Yn(r),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let n=Br(r,e);if(n.length!==4&&n.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return on(r,t,n,e)}function D_(r,t,e){if(Yn(r),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let n=Br(r,e);if(n.length!==5&&n.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return on(r,t,n,e)}function R_(r,t,e){if(Yn(r),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let n=Br(r,e);if(n.length!==6&&n.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||n,on(r,t,n,e)}function Yj(r,t=1,e=!0){let n=I(r,"x","topk");if(n.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let o=n.shape[n.shape.length-1];if(t<0)throw new Error(`'k' passed to topk() must be >= 0 but got ${t}`);if(t>o)throw new Error(`'k' passed to topk() must be <= the last dimension (${o}) but got ${t}`);let s={x:n},i={k:t,sorted:e},[a,u]=k.runKernel(Ua,s,i);return{values:a,indices:u}}var oy=T({topk_:Yj});function Zj(r,t=0,e=1,n,o){if(n!=null&&n==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new Qu(t,e,n,!0,o),i=wt(r,n);for(let a=0;a0,()=>"The input tensor must be at least 1D");let n={x:e},o={axis:t},[s,i]=k.runKernel(Mp,n,o);return{values:s,indices:i}}var sy=T({unique_:Jj});function Qj(r,t,e){let n=I(r,"x","unsortedSegmentSum"),o=I(t,"segmentIds","unsortedSegmentSum","int32");E(na(e),()=>"numSegments must be of dtype int");let s={x:n,segmentIds:o},i={numSegments:e};return k.runKernel(Wl,s,i)}var wm=T({unsortedSegmentSum_:Qj});function t6(r,t=0){let e=I(r,"x","unstack","string_or_numeric");E(t>=-e.shape.length&&t`Axis = ${t} is not in [-${e.shape.length}, ${e.shape.length})`);let n={value:e},o={axis:t};return k.runKernel(bi,n,o)}var vr=T({unstack_:t6});function F_(r,t){return mh(r,t,"right")}function iy(r,t=!0,e,n){return k.makeVariable(r,t,e,n)}function ay(r,t){let e=[];for(let s=0;s0,()=>"mask cannot be scalar"),$e(a.slice(s,s+i),o.shape,"mask's shape must match the first K dimensions of tensor's shape,");let u=1;for(let h=s;h"Shape mismatch in v and x");let u=mt(1),l=ct(u,a),c=D(ct(i,s),l);if(o){E(n!=null,()=>"When using zeroDebias: true, step is required.");let p=I(n,"step","movingAverage");c=pt(c,ct(u,an(a,p)))}return X(s,c)}var s6=T({movingAverage_:o6});function i6(r,t,e){let n=I(r,"indices","scatterND","int32"),o=I(t,"updates","scatterND");sx(o,n,e);let s={indices:n,updates:o},i={shape:e};return k.runKernel(La,s,i)}var a6=T({scatterND_:i6});function O_(r,t,e,n){if(r.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${r.dtype}.`);if(r.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${r.shape}.`);let o=r.rank>0?r.shape[0]:1,s=r.rank>1?r.shape[1]:1;if(e.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${e.length}, should be: ${s}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===o))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${o}]`);if(t.dtype!==n.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function u6(r,t,e,n=0){let o=I(r,"sparseIndices","sparseToDense","int32"),s=I(t,"sparseValues","sparseToDense","string_or_numeric"),i=I(n,"defaultValue","sparseToDense",s.dtype);O_(o,s,e,i);let a={sparseIndices:o,sparseValues:s,defaultValue:i},u={outputShape:e};return k.runKernel(Lp,a,u)}var c6=T({sparseToDense_:u6});function p6(r,t){let e=I(t,"indices","gatherND","int32"),o={params:I(r,"x","gatherND","string_or_numeric"),indices:e};return k.runKernel(wa,o)}var m6=T({gatherND_:p6});function P_(r,t){if(t==null)return r.shape.slice();if(Dn(r.shape,t))return t;if(r.shape.length===t.length){let e=[];for(let n=0;n`x has to be a floating point tensor since it's going to be scaled, but got a ${o.dtype} tensor instead.`),E(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return r instanceof Ft?o.clone():o;let s=P_(o,e),i=1-t,a=pt(Pi(X(zi(s,0,1,"float32",n),i)),i);return D(o,a)}var l0=T({dropout_:f6});function u0(r){return Math.floor(Math.pow(2,Math.ceil(Math.log(r)/Math.log(2))))}function hh(r,t,e){let n=1-r%2,o=new Float32Array(r);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${n.rank}`),E(n.rank-1===o.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${n.rank} and targets rank ${o.rank}`),$e(n.shape.slice(0,n.shape.length-1),o.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=n.shape[n.shape.length-1];E(e>0&&e<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${e}`);let i=await n.data(),a=await o.data(),[u,l]=[i.length/s,s],c=ev("bool",u);for(let p=0;pg.value-h.value),c[p]=0;for(let h=0;hL_,depthwiseConv2d:()=>M_,matMul:()=>z_});function g6(r,t,e,n,o,s="NHWC",i){let a=r;r.rank===3&&(a=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]])),E(a.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${a.shape}.`),E(u.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${u.shape}.`),E(e.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${e}.`);let l=s==="NHWC"?a.shape[3]:a.shape[1],c=s==="NHWC"?u.shape[3]:u.shape[1];E(l===e[2],()=>`Error in conv2dDerFilter: depth of input ${l}) must match input depth in filter (${e[2]}.`),E(c===e[3],()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${e[3]}).`),Ie("conv2dDerFilter",o,i);let p={x:a,dy:u},m={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,filterShape:e};return k.runKernel(mp,p,m)}var Cm=T({conv2DBackpropFilter_:g6});function rc(r,t,e){if(e==null||e==="linear")return r;if(e==="relu")return D(r,bo(t));throw new Error(`Cannot compute gradient for fused activation ${e}.`)}function nc(r,t){let e=t,n=ge(r.shape,t.shape);return n.length>0&&(e=ft(e,n)),R(e,r.shape)}function oc(r,t,e,n){if(t==="linear")return r;if(t==="relu")return Fr(r);if(t==="elu")return Oi(r);if(t==="relu6")return lm(r);if(t==="prelu")return ou(r,e);if(t==="leakyrelu")return Ql(r,n);if(t==="sigmoid")return Yr(r);throw new Error(`Unknown fused activation ${t}.`)}var sc=(r,t)=>!(r>0)||t==="linear";function x6({x:r,filter:t,strides:e,pad:n,dataFormat:o="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:a,activation:u="linear",preluActivationWeights:l,leakyreluAlpha:c}){if(u=u||"linear",sc(k.state.gradientDepth,u)===!1){E(o==="NHWC",()=>`Error in fused conv2d: got dataFormat of ${o} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let _=In(r,t,e,n,o,s,i);return a!=null&&(_=X(_,a)),oc(_,u,l,c)}let p=I(r,"x","conv2d","float32"),m=I(t,"filter","conv2d","float32"),f=p,d=!1;p.rank===3&&(d=!0,f=R(p,[1,p.shape[0],p.shape[1],p.shape[2]])),E(f.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${f.rank}.`),E(m.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${m.rank}.`),Ie("fused conv2d",n,i);let h=o==="NHWC"?f.shape[3]:f.shape[1];E(m.shape[2]===h,()=>`Error in conv2d: depth of input (${h}) must match input depth for filter ${m.shape[2]}.`),E(Ar(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let g=ju(f.shape,m.shape,e,s,n,i),x;a!=null&&(x=I(a,"bias","fused conv2d"),[x]=Ut(x,p),o==="NHWC"?Pt(g.outShape,x.shape):(E(x.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${x.shape.length}.`),E(x.shape.length===0||x.shape[0]===g.outChannels||x.shape[0]===1,()=>`Error in fused conv2d: bias shape (${x.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let b;if(l!=null){let _=l.shape;if(E(_.length<=1||_.length===3,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${_.length}.`),_.length===1)E(_[0]===1||_[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${_}) is not compatible with the number of output channels (${g.outChannels}).`);else if(_.length===3)try{Pt(_,g.outShape)}catch(A){let $=`Error in fused conv2d: PReLU activation weights (${_}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error($)}b=I(l,"prelu weights","fused conv2d")}let w=(_,A)=>{E(o==="NHWC",()=>`Error in gradient of fused conv2D: got dataFormat of ${o} but only NHWC is currently supported.`);let[$,F,P,V]=A,G=rc(_,P,u);E(to(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let W=tm(F.shape,G,$,e,n),q=Cm(F,G,$.shape,e,n),H=[W,q];if(V!=null){let j=nc(V,G);H.push(j)}return H},C={x:f,filter:m,bias:x,preluActivationWeights:b},N={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?un((A,$,F)=>{let P=k.runKernel(Ii,C,N);return F([$,A,P]),d&&(P=R(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:w}})(f,m):un((A,$,F,P)=>{let V=k.runKernel(Ii,C,N);return P([$,A,V,F]),d&&(V=R(V,[V.shape[1],V.shape[2],V.shape[3]])),{value:V,gradFunc:w}})(f,m,x)}var L_=T({fusedConv2d_:x6});function y6(r,t,e,n,o,s=[1,1],i){let a=r;r.rank===3&&(a=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let l={x:a,dy:u},c={strides:n,pad:o,dimRoundingMode:i,dilations:s,filterShape:e};return k.runKernel(gp,l,c)}var uy=T({depthwiseConv2dNativeBackpropFilter_:y6});function b6(r,t,e,n,o,s=[1,1],i){let a=t,u=!1;t.rank===3&&(u=!0,a=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let l={dy:a,filter:e},c={strides:n,pad:o,dimRoundingMode:i,dilations:s,inputShape:r},p=k.runKernel(xp,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var cy=T({depthwiseConv2dNativeBackpropInput_:b6});function w6({x:r,filter:t,strides:e,pad:n,dataFormat:o="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:a,activation:u="linear",preluActivationWeights:l,leakyreluAlpha:c}){if(sc(k.state.gradientDepth,u)===!1){let N=Fi(r,t,e,n,o,s,i);return a!=null&&(N=X(N,a)),oc(N,u,l,c)}let p=I(r,"x","depthwiseConv2d","float32"),m=I(t,"filter","depthwiseConv2d","float32"),f=p,d=!1;p.rank===3&&(d=!0,f=R(p,[1,p.shape[0],p.shape[1],p.shape[2]])),E(f.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${f.rank}.`),E(m.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${m.rank}.`),E(f.shape[3]===m.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${f.shape[3]}) must match the inChannels dimension in filter ${m.shape[2]}.`),s==null&&(s=[1,1]),E(Ar(e,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),Ie("fused depthwiseConv2d",n,i);let h=ju(f.shape,m.shape,e,s,n,i,!0),g;a!=null&&(g=I(a,"bias","fused conv2d"),[g]=Ut(g,p),Pt(h.outShape,g.shape));let x;l!=null&&(x=I(l,"prelu weights","fused depthwiseConv2d"));let b=(N,_)=>{E(to(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[A,$,F,P]=_,V=rc(N,F,u),G=cy($.shape,V,A,e,n,s,i),W=uy($,V,A.shape,e,n,s,i);if(P!=null){let q=nc(g,V);return[G,W,q]}return[G,W]},w={x:f,filter:m,bias:g,preluActivationWeights:x},C={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?un((_,A,$)=>{let F=k.runKernel(Si,w,C);return $([A,_,F]),d&&(F=R(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(f,m):un((_,A,$,F)=>{let P=k.runKernel(Si,w,C);return F([A,_,P,$]),d&&(P=R(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:b}})(f,m,g)}var M_=T({fusedDepthwiseConv2d_:w6});function C6({a:r,b:t,transposeA:e=!1,transposeB:n=!1,bias:o,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:a=.2}){if(sc(k.state.gradientDepth,s)===!1){let V=Lt(r,t,e,n);return o!=null&&(V=X(V,o)),oc(V,s,i,a)}let u=I(r,"a","fused matMul"),l=I(t,"b","fused matMul");[u,l]=Ut(u,l);let c=e?u.shape[u.rank-2]:u.shape[u.rank-1],p=n?l.shape[l.rank-1]:l.shape[l.rank-2],m=e?u.shape[u.rank-1]:u.shape[u.rank-2],f=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=u.shape.slice(0,-2),h=l.shape.slice(0,-2),g=Jt(d),x=Jt(h);E(c===p,()=>`Error in fused matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${u.shape} and ${l.shape} and transposeA=${e} and transposeB=${n} must match.`);let w=Pt(u.shape.slice(0,-2),l.shape.slice(0,-2)).concat([m,f]),C=e?R(u,[g,c,m]):R(u,[g,m,c]),N=n?R(l,[x,f,p]):R(l,[x,p,f]),_;o!=null&&(_=I(o,"bias","fused matMul"),[_]=Ut(_,u),Pt(w,_.shape));let A;i!=null&&(A=I(i,"prelu weights","fused matMul"));let $=(V,G)=>{let[W,q,H,j]=G,Y=rc(R(V,H.shape),H,s),Z,et;if(!e&&!n?(Z=Lt(Y,q,!1,!0),et=Lt(W,Y,!0,!1)):!e&&n?(Z=Lt(Y,q,!1,!1),et=Lt(Y,W,!0,!1)):e&&!n?(Z=Lt(q,Y,!1,!0),et=Lt(W,Y,!1,!1)):(Z=Lt(q,Y,!0,!0),et=Lt(Y,W,!0,!0)),o!=null){let rt=nc(j,Y);return[Z,et,rt]}else return[Z,et]},F={a:C,b:N,bias:_,preluActivationWeights:A},P={transposeA:e,transposeB:n,activation:s,leakyreluAlpha:a};return o==null?un((G,W,q)=>{let H=k.runKernel(Ci,F,P);return q([G,W,H]),{value:R(H,w),gradFunc:$}})(C,N):un((G,W,q,H)=>{let j=k.runKernel(Ci,F,P);return H([G,W,j,q]),{value:R(j,w),gradFunc:$}})(C,N,_)}var z_=T({fusedMatMul_:C6});function I6(r){return hh(r,.54,.46)}var B_=T({hammingWindow_:I6});function S6(r){return hh(r,.5,.5)}var py=T({hannWindow_:S6});function v6(r,t,e,n=!1,o=0){let s=0,i=[];for(;s+t<=r.size;)i.push(Rt(r,s,t)),s+=e;if(n)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),E(a.rank===2&&a.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${l},4] but had shape ${a.shape}.`),E(u.rank===1&&u.shape[0]===l,()=>`Error in cropAndResize: boxInd must be have size [${l}] but had shape ${a.shape}.`),E(n.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${n.length}.`),E(n[0]>=1&&n[1]>=1,()=>`cropSize must be atleast [1,1], but was ${n}`),E(o==="bilinear"||o==="nearest",()=>`method must be bilinear or nearest, but was ${o}`);let c={image:i,boxes:a,boxInd:u},p={method:o,extrapolationValue:s,cropSize:n};return k.runKernel(da,c,p)}var G_=T({cropAndResize_:T6});function k6(r){let t=I(r,"image","flipLeftRight","float32");E(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let e={image:t};return k.runKernel(ba,e,{})}var W_=T({flipLeftRight_:k6});function E6(r){let t=I(r,"image","grayscaleToRGB"),e=t.rank-1,n=t.shape[e];E(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),E(n===1,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${n}.`);let o=new Array(t.rank);return o.fill(1,0,e),o[e]=3,Dr(t,o)}var U_=T({grayscaleToRGB_:E6});function _6(r,t,e=0,n=.5){let o=I(r,"image","rotateWithOffset","float32");E(o.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${o.rank}.`);let s={image:o},i={radians:t,fillValue:e,center:n};return k.runKernel(qa,s,i)}var H_=T({rotateWithOffset_:_6});function wo(r,t,e,n,o,s){n==null&&(n=.5),o==null&&(o=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=r.shape[0];return e=Math.min(e,i),E(0<=n&&n<=1,()=>`iouThreshold must be in [0, 1], but was '${n}'`),E(r.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${r.rank}'`),E(r.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${r.shape[1]}`),E(t.rank===1,()=>"scores must be a 1D tensor"),E(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),E(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s}}function A6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=I(r,"boxes","nonMaxSuppression","float32"),i=I(t,"scores","nonMaxSuppression","float32"),a=wo(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u={maxOutputSize:e,iouThreshold:n,scoreThreshold:o};return k.runKernel(Ra,{boxes:s,scores:i},u)}var q_=T({nonMaxSuppression_:A6});function K_(r,t,e){let n=$6(r,t,e),o=n<0?-(n+1):n;r.splice(o,0,t)}function $6(r,t,e){return R6(r,t,e||D6)}function D6(r,t){return r>t?1:r>>1);let a=e(t,r[s]);a>0?n=s+1:(o=s,i=!a)}return i?n:-n-1}function fy(r,t,e,n,o){return c0(r,t,e,n,o,0)}function dy(r,t,e,n,o,s){return c0(r,t,e,n,o,0,!1,s,!0)}function hy(r,t,e,n,o,s){return c0(r,t,e,n,o,s,!0)}function c0(r,t,e,n,o,s,i=!1,a=!1,u=!1){let l=[];for(let g=0;go&&l.push({score:t[g],boxIndex:g,suppressBeginIndex:0});l.sort(j_);let c=s>0?-.5/s:0,p=[],m=[];for(;p.length0;){let g=l.pop(),{score:x,boxIndex:b,suppressBeginIndex:w}=g;if(x=w;--N){let _=F6(r,b,p[N]);if(_>=n){C=!0;break}if(g.score=g.score*O6(n,c,_),g.score<=o)break}g.suppressBeginIndex=p.length,C||(g.score===x?(p.push(b),m.push(g.score)):g.score>o&&K_(l,g,j_))}let f=p.length,d=e-f;a&&d>0&&(p.push(...new Array(d).fill(0)),m.push(...new Array(d).fill(0)));let h={selectedIndices:p};return i&&(h.selectedScores=m),u&&(h.validOutputs=f),h}function F6(r,t,e){let n=r.subarray(t*4,t*4+4),o=r.subarray(e*4,e*4+4),s=Math.min(n[0],n[2]),i=Math.min(n[1],n[3]),a=Math.max(n[0],n[2]),u=Math.max(n[1],n[3]),l=Math.min(o[0],o[2]),c=Math.min(o[1],o[3]),p=Math.max(o[0],o[2]),m=Math.max(o[1],o[3]),f=(a-s)*(u-i),d=(p-l)*(m-c);if(f<=0||d<=0)return 0;let h=Math.max(s,l),g=Math.max(i,c),x=Math.min(a,p),b=Math.min(u,m),w=Math.max(x-h,0)*Math.max(b-g,0);return w/(f+d-w)}function O6(r,t,e){let n=Math.exp(t*e*e);return e<=r?n:0}function j_(r,t){return r.score-t.score||r.score===t.score&&t.boxIndex-r.boxIndex}async function P6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=I(r,"boxes","nonMaxSuppressionAsync"),i=I(t,"scores","nonMaxSuppressionAsync"),a=wo(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u=await Promise.all([s.data(),i.data()]),l=u[0],c=u[1],{selectedIndices:p}=fy(l,c,e,n,o);return s!==r&&s.dispose(),i!==t&&i.dispose(),Me(p,"int32")}var X_=P6;function L6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=I(r,"boxes","nonMaxSuppression"),a=I(t,"scores","nonMaxSuppression"),u=wo(i,a,e,n,o,s);e=u.maxOutputSize,n=u.iouThreshold,o=u.scoreThreshold,s=u.softNmsSigma;let l={boxes:i,scores:a},c={maxOutputSize:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s},p=k.runKernel(Oa,l,c);return{selectedIndices:p[0],selectedScores:p[1]}}var Y_=T({nonMaxSuppressionWithScore_:L6});async function M6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=I(r,"boxes","nonMaxSuppressionAsync"),a=I(t,"scores","nonMaxSuppressionAsync"),u=wo(i,a,e,n,o,s);e=u.maxOutputSize,n=u.iouThreshold,o=u.scoreThreshold,s=u.softNmsSigma;let l=await Promise.all([i.data(),a.data()]),c=l[0],p=l[1],{selectedIndices:m,selectedScores:f}=hy(c,p,e,n,o,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Me(m,"int32"),selectedScores:Me(f)}}var Z_=M6;function z6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=I(r,"boxes","nonMaxSuppression"),a=I(t,"scores","nonMaxSuppression"),u=wo(i,a,e,n,o,null),l=u.maxOutputSize,c=u.iouThreshold,p=u.scoreThreshold,m={boxes:i,scores:a},f={maxOutputSize:l,iouThreshold:c,scoreThreshold:p,padToMaxOutputSize:s},d=k.runKernel(Fa,m,f);return{selectedIndices:d[0],validOutputs:d[1]}}var J_=T({nonMaxSuppressionPadded_:z6});async function B6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=I(r,"boxes","nonMaxSuppressionAsync"),a=I(t,"scores","nonMaxSuppressionAsync"),u=wo(i,a,e,n,o,null),l=u.maxOutputSize,c=u.iouThreshold,p=u.scoreThreshold,[m,f]=await Promise.all([i.data(),a.data()]),{selectedIndices:d,validOutputs:h}=dy(m,f,l,c,p,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Me(d,"int32"),validOutputs:mt(h,"int32")}}var Q_=B6;function V6(r,t,e=!1,n=!1){let o=I(r,"images","resizeBilinear");E(o.rank===3||o.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${o.rank}.`),E(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),E(n===!1||e===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=o,i=!1;o.rank===3&&(i=!0,s=R(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=k.runKernel(Ss,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var gy=T({resizeBilinear_:V6});function G6(r,t,e=!1,n=!1){let o=I(r,"images","resizeNearestNeighbor");E(o.rank===3||o.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${o.rank}.`),E(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),E(o.dtype==="float32"||o.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),E(n===!1||e===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=o,i=!1;o.rank===3&&(i=!0,s=R(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=k.runKernel(Is,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var xy=T({resizeNearestNeighbor_:G6});function W6(r,t="binary",e=!1,n=.5){let o=I(r,"image","threshold"),s=.2989,i=.587,a=.114,u=o.shape[0]*o.shape[1],l=D(Me([n]),255),c,p,m,f;if(E(o.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${o.rank}.`),E(o.shape[2]===3||o.shape[2]===1,()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${o.shape[2]}.`),E(o.dtype==="int32"||o.dtype==="float32",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${o.dtype}.`),E(t==="otsu"||t==="binary",()=>`Method must be binary or otsu, but was ${t}`),o.shape[2]===3){[c,p,m]=mr(o,[1,1,1],-1);let g=D(c,s),x=D(p,i),b=D(m,a);f=X(X(g,x),b)}else f=r;if(t==="otsu"){let g=wx(J(um(f),"int32"),ur([]),256);l=U6(g,u)}let d=e?Ln(f,l):Re(f,l);return J(D(d,255),"int32")}function U6(r,t){let e=Me([-1]),n=Me([0]),o=Me([0]),s,i,a,u,l,c;for(let p=0;p`Error in transform: image must be rank 4,but got rank ${i.rank}.`),E(a.rank===2&&(a.shape[0]===i.shape[0]||a.shape[0]===1)&&a.shape[1]===8,()=>"Error in transform: Input transform should be batch x 8 or 1 x 8"),E(s==null||s.length===2,()=>`Error in transform: outputShape must be [height, width] or null, but got ${s}.`);let u={image:i,transforms:a},l={interpolation:e,fillMode:n,fillValue:o,outputShape:s};return k.runKernel(Ha,u,l)}var eA=T({transform_:H6});function q6(r,t,e){E(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),E(e%1===0,()=>`bandPart(): numUpper must be an integer, got ${e}.`);let n=I(r,"a","bandPart");E(n.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${n.rank}.`);let o=n.shape,[s,i]=n.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(e<=i))throw new Error(`bandPart(): numUpper (${e}) must not be greater than the number of columns (${i}).`);t<0&&(t=s),e<0&&(e=i);let a=R(su(0,s,1,"int32"),[-1,1]),u=su(0,i,1,"int32"),l=ct(a,u),c=Rr(Ln(l,mt(+t,"int32")),ln(l,mt(-e,"int32"))),p=Ne([s,i],n.dtype);return R(nr(vr(R(n,[-1,s,i])).map(m=>_e(c,m,p))),o)}var rA=T({bandPart_:q6});function K6(r){let t;if(Array.isArray(r)){t=!1,E(r!=null&&r.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let o=r[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${r[s].shape[0]} vs. ${o})`)}else t=!0,r=mr(r,r.shape[0],0).map(o=>Mn(o,[0]));E(r.length<=r[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${r.length}) exceeds number of dimensions (${r[0].shape[0]}).`);let e=[],n=r;for(let o=0;o{let s=n[o];if(o>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${r.rank}`),r.rank===2)return oA(r,t);{let e=r.shape.slice(0,r.shape.length-2).reduce((u,l)=>u*l),n=vr(R(r,[e,r.shape[r.shape.length-2],r.shape[r.shape.length-1]]),0),o=[],s=[];n.forEach(u=>{let[l,c]=oA(u,t);o.push(l),s.push(c)});let i=R(nr(o,0),r.shape),a=R(nr(s,0),r.shape);return[i,a]}}function oA(r,t=!1){return k.tidy(()=>{E(r.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${r.shape.length}D Tensor.`);let e=r.shape[0],n=r.shape[1],o=Yu(e),s=sn(r),i=Vs([[1]],[1,1]),a=sn(i),u=e>=n?n:e;for(let l=0;l{let f=Rt(s,[l,l],[e-l,1]),d=Qa(f),h=Rt(s,[l,l],[1,1]),g=_e(Re(h,0),Vs([[-1]]),Vs([[1]])),x=ct(h,D(g,d)),b=pt(f,x);b.shape[0]===1?a=sn(i):a=ne([i,Rt(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let w=Ht(pt(Lt(g,x),d)),C=Rt(s,[l,0],[e-l,n]),N=D(w,a),_=Ot(a);if(l===0)s=ct(C,Lt(N,Lt(_,C)));else{let F=ct(C,Lt(N,Lt(_,C)));s=ne([Rt(s,[0,0],[l,n]),F],0)}let A=Ot(N),$=Rt(o,[0,l],[e,o.shape[1]-l]);if(l===0)o=ct($,Lt(Lt($,a),A));else{let F=ct($,Lt(Lt($,a),A));o=ne([Rt(o,[0,0],[e,l]),F],1)}return[a,s,o]}),vt([c,p,m])}return!t&&e>n&&(o=Rt(o,[0,0],[e,n]),s=Rt(s,[0,0],[n,n])),[o,s]})}var sA=T({qr_:j6});var Xe;(function(r){r[r.NONE=0]="NONE",r[r.MEAN=1]="MEAN",r[r.SUM=2]="SUM",r[r.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(Xe||(Xe={}));function X6(r,t,e=Xe.SUM_BY_NONZERO_WEIGHTS){let n=I(r,"losses","computeWeightedLoss"),o=null;t!=null&&(o=I(t,"weights","computeWeightedLoss"));let s=o==null?n:D(n,o);if(e===Xe.NONE)return s;if(e===Xe.SUM)return ft(s);if(e===Xe.MEAN){if(o==null)return ve(s);{let i=n.size/o.size,a=pt(ft(s),ft(o));return i>1?pt(a,mt(i)):a}}if(e===Xe.SUM_BY_NONZERO_WEIGHTS){if(o==null)return pt(ft(s),mt(n.size));{let i=D(o,cr(n.shape)),a=J(ft(Bs(i,mt(0))),"float32");return pt(ft(s),a)}}throw Error(`Unknown reduction: ${e}`)}var Gr=T({computeWeightedLoss_:X6});function Y6(r,t,e,n=Xe.SUM_BY_NONZERO_WEIGHTS){let o=I(r,"labels","absoluteDifference"),s=I(t,"predictions","absoluteDifference"),i=null;e!=null&&(i=I(e,"weights","absoluteDifference")),$e(o.shape,s.shape,"Error in absoluteDifference: ");let a=Ee(ct(o,s));return Gr(a,i,n)}var iA=T({absoluteDifference_:Y6});function Z6(r,t,e,n,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,"labels","cosineDistance"),i=I(t,"predictions","cosineDistance"),a=null;n!=null&&(a=I(n,"weights","cosineDistance")),$e(s.shape,i.shape,"Error in cosineDistance: ");let u=mt(1),l=ct(u,ft(D(s,i),e,!0));return Gr(l,a,o)}var aA=T({cosineDistance_:Z6});function J6(r,t,e,n=Xe.SUM_BY_NONZERO_WEIGHTS){let o=I(r,"labels","hingeLoss"),s=I(t,"predictions","hingeLoss"),i=null;e!=null&&(i=I(e,"weights","hingeLoss")),$e(o.shape,s.shape,"Error in hingeLoss: ");let a=mt(1);o=ct(D(mt(2),o),a);let u=Fr(ct(a,D(o,s)));return Gr(u,i,n)}var lA=T({hingeLoss_:J6});function Q6(r,t,e,n=1,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,"labels","huberLoss"),i=I(t,"predictions","huberLoss"),a=null;e!=null&&(a=I(e,"weights","huberLoss")),$e(s.shape,i.shape,"Error in huberLoss: ");let u=mt(n),l=Ee(ct(i,s)),c=Mi(l,u),p=ct(l,c),m=X(D(mt(.5),Mt(c)),D(u,p));return Gr(m,a,o)}var uA=T({huberLoss_:Q6});function tX(r,t,e,n=1e-7,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,"labels","logLoss"),i=I(t,"predictions","logLoss"),a=null;e!=null&&(a=I(e,"weights","logLoss")),$e(s.shape,i.shape,"Error in logLoss: ");let u=mt(1),l=mt(n),c=Ht(D(s,Sr(X(i,l)))),p=D(ct(u,s),Sr(X(ct(u,i),l))),m=ct(c,p);return Gr(m,a,o)}var cA=T({logLoss_:tX});function eX(r,t,e,n=Xe.SUM_BY_NONZERO_WEIGHTS){let o=I(r,"labels","meanSquaredError"),s=I(t,"predictions","meanSquaredError"),i=null;e!=null&&(i=I(e,"weights","meanSquaredError")),$e(o.shape,s.shape,"Error in meanSquaredError: ");let a=ym(o,s);return Gr(a,i,n)}var pA=T({meanSquaredError_:eX});function rX(r,t){let e=I(r,"labels","sigmoidCrossEntropyWithLogits"),n=I(t,"logits","sigmoidCrossEntropyWithLogits");$e(e.shape,n.shape,"Error in sigmoidCrossEntropyWithLogits: ");let o=Fr(n),s=D(n,e),i=tu(er(Ht(Ee(n))));return X(ct(o,s),i)}function nX(r,t,e,n=0,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,"multiClassLabels","sigmoidCrossEntropy"),i=I(t,"logits","sigmoidCrossEntropy"),a=null;if(e!=null&&(a=I(e,"weights","sigmoidCrossEntropy")),$e(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),n>0){let l=mt(n),c=mt(1),p=mt(.5);s=X(D(s,ct(c,l)),D(p,l))}let u=rX(s,i);return Gr(u,a,o)}var mA=T({sigmoidCrossEntropy_:nX});function oX(r,t,e=-1){if(e===-1&&(e=t.rank-1),e!==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 ${e}`);return un((o,s,i)=>{let u=im(s,[e],!0),l=ct(J(s,"float32"),u);i([o,l]);let c=Ht(D(l,o));return{value:ft(c,[e]),gradFunc:(f,d)=>{let[h,g]=d,x=yo(f.shape,[e]);return[D(R(f,x),ct(J(h,"float32"),er(g))),D(R(f,x),ct(er(g),J(h,"float32")))]}}})(r,t)}function sX(r,t,e,n=0,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,"onehotLabels","softmaxCrossEntropy"),i=I(t,"logits","softmaxCrossEntropy"),a=null;if(e!=null&&(a=I(e,"weights","softmaxCrossEntropy")),$e(s.shape,i.shape,"Error in softmaxCrossEntropy: "),n>0){let l=mt(n),c=mt(1),p=mt(s.shape[1]);s=X(D(s,ct(c,l)),pt(l,p))}let u=oX(s,i);return Gr(u,a,o)}var fA=T({softmaxCrossEntropy_:sX});function iX(r,t,e,n){let o=I(r,"indices","sparseFillEmptyRows","int32"),s=I(t,"values","sparseFillEmptyRows"),i=I(e,"denseShape","sparseFillEmptyRows","int32"),a=I(n,"defaultValue","sparseFillEmptyRows",s.dtype);if(o.rank!==2)throw new Error(`Indices should be Tensor2D but received shape ${o.shape}`);if(s.rank!==1)throw new Error(`Values should be Tensor1D but received shape ${s.shape}`);if(i.rank!==1)throw new Error(`Dense shape should be Tensor1D but received shape ${i.shape}`);if(a.rank!==0)throw new Error(`Default value should be a scalar but received shape ${a.shape}`);let u={indices:o,values:s,denseShape:i,defaultValue:a},l=k.runKernel(Pl,u);return{outputIndices:l[0],outputValues:l[1],emptyRowIndicator:l[2],reverseIndexMap:l[3]}}var dA=T({sparseFillEmptyRows_:iX});function aX(r,t,e){let n=I(r,"inputIndices","sparseReshape","int32"),o=I(t,"inputShape","sparseReshape","int32"),s=I(e,"newShape","sparseReshape","int32");if(n.rank!==2)throw new Error(`Input indices should be Tensor2D but received shape ${n.shape}`);if(o.rank!==1)throw new Error(`Input shape should be Tensor1D but received shape ${o.shape}`);if(s.rank!==1)throw new Error(`New shape should be Tensor1D but received shape ${s.shape}`);let i={inputIndices:n,inputShape:o,newShape:s},a=k.runKernel(Ga,i);return{outputIndices:a[0],outputShape:a[1]}}var hA=T({sparseReshape_:aX});function lX(r,t,e){let n=I(r,"data","sparseSegmentMean"),o=I(t,"indices","sparseSegmentMean","int32"),s=I(e,"segmentIds","sparseSegmentMean","int32");if(n.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.rank!==1)throw new Error(`Indices should be Tensor1D but received shape ${o.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return k.runKernel(Ll,i)}var gA=T({sparseSegmentMean_:lX});function uX(r,t,e){let n=I(r,"data","sparseSegmentSum"),o=I(t,"indices","sparseSegmentSum","int32"),s=I(e,"segmentIds","sparseSegmentSum","int32");if(n.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.rank!==1)throw new Error(`Indices should be Tensor1D but received shape ${o.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape - ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return k.runKernel(Ml,i)}var xA=T({sparseSegmentSum_:uX});function cX(r,t,e,n,o,s,i,a){let u=I(r,"data","stringNGrams","string");if(u.dtype!=="string")throw new Error("Data must be of datatype string");if(u.shape.length!==1)throw new Error(`Data must be a vector, saw: ${u.shape}`);let l=I(t,"dataSplits","stringNGrams");if(l.dtype!=="int32")throw new Error("Data splits must be of datatype int32");let c={separator:e,nGramWidths:n,leftPad:o,rightPad:s,padWidth:i,preserveShortSequences:a},p={data:u,dataSplits:l},m=k.runKernel(Bl,p,c);return{nGrams:m[0],nGramsSplits:m[1]}}var yA=T({stringNGrams_:cX});function pX(r,t,e=!0){let n=I(r,"input","stringSplit","string"),o=I(t,"delimiter","stringSplit","string");if(n.rank!==1)throw new Error(`Input should be Tensor1D but received shape ${n.shape}`);if(o.rank!==0)throw new Error(`Delimiter should be a scalar but received shape ${o.shape}`);let s={skipEmpty:e},i={input:n,delimiter:o},a=k.runKernel(Vl,i,s);return{indices:a[0],values:a[1],shape:a[2]}}var bA=T({stringSplit_:pX});function mX(r,t){let e=I(r,"input","stringToHashBucketFast","string"),n={numBuckets:t};if(t<=0)throw new Error("Number of buckets must be at least 1");let o={input:e};return k.runKernel(Gl,o,n)}var wA=T({stringToHashBucketFast_:mX});var fX={fft:au,ifft:tl,rfft:lu,irfft:xm},dX={hammingWindow:B_,hannWindow:py,frame:my,stft:V_},Gs={flipLeftRight:W_,grayscaleToRGB:U_,resizeNearestNeighbor:xy,resizeBilinear:gy,rotateWithOffset:H_,cropAndResize:G_,nonMaxSuppression:q_,nonMaxSuppressionAsync:X_,nonMaxSuppressionWithScore:Y_,nonMaxSuppressionWithScoreAsync:Z_,nonMaxSuppressionPadded:J_,nonMaxSuppressionPaddedAsync:Q_,threshold:tA,transform:eA},pv={bandPart:rA,gramSchmidt:nA,qr:sA},hX={absoluteDifference:iA,computeWeightedLoss:Gr,cosineDistance:aA,hingeLoss:lA,huberLoss:uA,logLoss:cA,meanSquaredError:pA,sigmoidCrossEntropy:mA,softmaxCrossEntropy:fA},gX={sparseFillEmptyRows:dA,sparseReshape:hA,sparseSegmentMean:gA,sparseSegmentSum:xA},xX={stringNGrams:yA,stringSplit:bA,stringToHashBucketFast:wA};var Wr=class extends uh{minimize(t,e=!1,n){let{value:o,grads:s}=this.computeGradients(t,n);if(n!=null){let i=n.map(a=>({name:a.name,tensor:s[a.name]}));this.applyGradients(i)}else this.applyGradients(s);return vt(s),e?o:(o.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(t,e){return Bx(t,e)}dispose(){this.iterations_!=null&&vt(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:mt(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(t){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(t){return this.iterations_=(await t[0].tensor.data())[0],t.slice(1)}};Object.defineProperty(Wr,Symbol.hasInstance,{value:r=>r.minimize!=null&&r.computeGradients!=null&&r.applyGradients!=null});var cu=class extends Wr{constructor(t,e,n=null){super(),this.learningRate=t,this.rho=e,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=k.backend.epsilon())}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n],i=!1;this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accum_grad`,variable:B(()=>It(s).variable(i))}),this.accumulatedUpdates[o]==null&&(this.accumulatedUpdates[o]={originalName:`${n}/accum_var`,variable:B(()=>It(s).variable(i))});let a=Array.isArray(t)?t[o].tensor:t[n];if(a==null)return;let u=this.accumulatedGrads[o].variable,l=this.accumulatedUpdates[o].variable;B(()=>{let c=X(D(u,this.rho),D(Mt(a),1-this.rho)),p=D(pt(Se(X(l,this.epsilon)),Se(X(u,this.epsilon))),a),m=X(D(l,this.rho),D(Mt(p),1-this.rho));u.assign(c),l.assign(m);let f=X(D(p,-this.learningRate),s);s.assign(f)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(vt(this.accumulatedGrads.map(t=>t.variable)),vt(this.accumulatedUpdates.map(t=>t.variable)))}async getWeights(){let t=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=t.length/2,n=!1;this.accumulatedGrads=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedUpdates=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(t,e){return new t(e.learningRate,e.rho,e.epsilon)}};cu.className="Adadelta";Cn(cu);var pu=class extends Wr{constructor(t,e=.1){super(),this.learningRate=t,this.initialAccumulatorValue=e,this.accumulatedGrads=[]}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n];this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accumulator`,variable:B(()=>xo(s.shape,this.initialAccumulatorValue).variable(!1))});let i=Array.isArray(t)?t[o].tensor:t[n];if(i==null)return;let a=this.accumulatedGrads[o].variable;B(()=>{let u=X(a,Mt(i));a.assign(u);let l=X(D(pt(i,Se(X(u,k.backend.epsilon()))),-this.learningRate),s);s.assign(l)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&vt(this.accumulatedGrads.map(t=>t.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=!1;this.accumulatedGrads=t.map(n=>({originalName:n.name,variable:n.tensor.variable(e)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(t,e){return new t(e.learningRate,e.initialAccumulatorValue)}};pu.className="Adagrad";Cn(pu);var mu=class extends Wr{constructor(t,e,n,o=null){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],B(()=>{this.accBeta1=mt(e).variable(),this.accBeta2=mt(n).variable()}),o==null&&(this.epsilon=k.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=ct(1,this.accBeta1),o=ct(1,this.accBeta2);e.forEach((s,i)=>{let a=k.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:B(()=>It(a).variable(u))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${s}/v`,variable:B(()=>It(a).variable(u))});let l=Array.isArray(t)?t[i].tensor:t[s];if(l==null)return;let c=this.accumulatedFirstMoment[i].variable,p=this.accumulatedSecondMoment[i].variable,m=X(D(c,this.beta1),D(l,1-this.beta1)),f=X(D(p,this.beta2),D(Mt(l),1-this.beta2)),d=pt(m,n),h=pt(f,o);c.assign(m),p.assign(f);let g=X(D(pt(d,X(Se(h),this.epsilon)),-this.learningRate),a);a.assign(g)}),this.accBeta1.assign(D(this.accBeta1,this.beta1)),this.accBeta2.assign(D(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&vt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedSecondMoment!=null&&vt(this.accumulatedSecondMoment.map(t=>t.variable))}async getWeights(){let t=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t),B(()=>{this.accBeta1.assign(an(this.beta1,this.iterations_+1)),this.accBeta2.assign(an(this.beta2,this.iterations_+1))});let e=t.length/2,n=!1;this.accumulatedFirstMoment=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedSecondMoment=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon)}};mu.className="Adam";Cn(mu);var fu=class extends Wr{constructor(t,e,n,o=null,s=0){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.decay=s,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],B(()=>{this.iteration=mt(0).variable(),this.accBeta1=mt(e).variable()}),o==null&&(this.epsilon=k.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=ct(1,this.accBeta1),o=pt(-this.learningRate,X(D(this.iteration,this.decay),1));e.forEach((s,i)=>{let a=k.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:It(a).variable(u)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${s}/v`,variable:It(a).variable(u)});let l=Array.isArray(t)?t[i].tensor:t[s];if(l==null)return;let c=this.accumulatedFirstMoment[i].variable,p=this.accumulatedWeightedInfNorm[i].variable,m=X(D(c,this.beta1),D(l,1-this.beta1)),f=D(p,this.beta2),d=Ee(l),h=Sn(f,d);c.assign(m),p.assign(h);let g=X(D(pt(o,n),pt(m,X(h,this.epsilon))),a);a.assign(g)}),this.iteration.assign(X(this.iteration,1)),this.accBeta1.assign(D(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&vt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedWeightedInfNorm!=null&&vt(this.accumulatedWeightedInfNorm.map(t=>t.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(t){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(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon,e.decay)}};fu.className="Adamax";Cn(fu);var Bi=class extends Wr{constructor(t){super(),this.learningRate=t,this.setLearningRate(t)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=Array.isArray(t)?t[o].tensor:t[n];if(s==null)return;let i=k.registeredVariables[n];B(()=>{let a=X(D(this.c,s),i);i.assign(a)})}),this.incrementIterations()}setLearningRate(t){this.learningRate=t,this.c!=null&&this.c.dispose(),this.c=De(mt(-t))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(t){if(t=await this.extractIterations(t),t.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(t,e){return new t(e.learningRate)}};Bi.className="SGD";Cn(Bi);var du=class extends Bi{constructor(t,e,n=!1){super(t),this.learningRate=t,this.momentum=e,this.useNesterov=n,this.accumulations=[],this.m=mt(this.momentum)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n];this.accumulations[o]==null&&(this.accumulations[o]={originalName:`${n}/momentum`,variable:B(()=>It(s).variable(!1))});let i=this.accumulations[o].variable,a=Array.isArray(t)?t[o].tensor:t[n];a!=null&&B(()=>{let u,l=X(D(this.m,i),a);this.useNesterov?u=X(D(this.c,X(a,D(l,this.m))),s):u=X(D(this.c,l),s),i.assign(l),s.assign(u)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&vt(this.accumulations.map(t=>t.variable))}setMomentum(t){this.momentum=t}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=!1;this.accumulations=t.map(n=>({originalName:n.name,variable:n.tensor.variable(e)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(t,e){return new t(e.learningRate,e.momentum,e.useNesterov)}};du.className="Momentum";Cn(du);var hu=class extends Wr{constructor(t,e=.9,n=0,o=null,s=!1){if(super(),this.learningRate=t,this.decay=e,this.momentum=n,this.epsilon=o,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=s,o==null&&(this.epsilon=k.backend.epsilon()),t==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n],i=!1;this.accumulatedMeanSquares[o]==null&&(this.accumulatedMeanSquares[o]={originalName:`${n}/rms`,variable:B(()=>It(s).variable(i))}),this.accumulatedMoments[o]==null&&(this.accumulatedMoments[o]={originalName:`${n}/momentum`,variable:B(()=>It(s).variable(i))}),this.accumulatedMeanGrads[o]==null&&this.centered&&(this.accumulatedMeanGrads[o]={originalName:`${n}/mg`,variable:B(()=>It(s).variable(i))});let a=Array.isArray(t)?t[o].tensor:t[n];if(a==null)return;let u=this.accumulatedMeanSquares[o].variable,l=this.accumulatedMoments[o].variable;B(()=>{let c=X(D(u,this.decay),D(Mt(a),1-this.decay));if(this.centered){let p=this.accumulatedMeanGrads[o].variable,m=X(D(p,this.decay),D(a,1-this.decay)),f=pt(D(a,this.learningRate),Se(ct(c,X(Mt(m),this.epsilon)))),d=X(D(l,this.momentum),f);u.assign(c),p.assign(m),l.assign(d);let h=ct(s,d);s.assign(h)}else{let p=X(D(u,this.decay),D(Mt(a),1-this.decay)),m=X(D(l,this.momentum),pt(D(a,this.learningRate),Se(X(p,this.epsilon))));u.assign(p),l.assign(m);let f=ct(s,m);s.assign(f)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&vt(this.accumulatedMeanSquares.map(t=>t.variable)),this.accumulatedMeanGrads!=null&&this.centered&&vt(this.accumulatedMeanGrads.map(t=>t.variable)),this.accumulatedMoments!=null&&vt(this.accumulatedMoments.map(t=>t.variable))}async getWeights(){let t=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&t.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=this.centered?t.length/3:t.length/2,n=!1;this.accumulatedMeanSquares=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedMoments=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=t.slice(e*2,e*3).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(t,e){return new t(e.learningRate,e.decay,e.momentum,e.epsilon,e.centered)}};hu.className="RMSProp";Cn(hu);var Ws=class{static sgd(t){return new Bi(t)}static momentum(t,e,n=!1){return new du(t,e,n)}static rmsprop(t,e=.9,n=0,o=null,s=!1){return new hu(t,e,n,o,s)}static adam(t=.001,e=.9,n=.999,o=null){return new mu(t,e,n,o)}static adadelta(t=.001,e=.95,n=null){return new cu(t,e,n)}static adamax(t=.002,e=.9,n=.999,o=null,s=0){return new fu(t,e,n,o,s)}static adagrad(t,e=.1){return new pu(t,e)}};var ic={sgd:Ws.sgd,momentum:Ws.momentum,adadelta:Ws.adadelta,adagrad:Ws.adagrad,rmsprop:Ws.rmsprop,adamax:Ws.adamax,adam:Ws.adam};var yX=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:r=>r())();function gh(){return new Promise(r=>yX(()=>r()))}var v={};Wt(v,{ERF_A1:()=>RX,ERF_A2:()=>FX,ERF_A3:()=>OX,ERF_A4:()=>PX,ERF_A5:()=>LX,ERF_P:()=>DX,PARALLELIZE_THRESHOLD:()=>yy,RowPartitionType:()=>Vi,SELU_SCALE:()=>fv,SELU_SCALEALPHA:()=>mv,applyActivation:()=>oc,assertAndGetBroadcastShape:()=>Pt,assertAxesAreInnerMostDims:()=>Hq,assertParamsConsistent:()=>bX,assignToTypedArray:()=>WX,axesAreInnerMostDims:()=>J0,calculateShapes:()=>IE,checkEinsumDimSizes:()=>XX,checkPadOnDimRoundingMode:()=>Ie,combineLocations:()=>HE,combineRaggedTensorToTensorShapes:()=>CX,complexWithEvenIndex:()=>BX,complexWithOddIndex:()=>VX,computeConv2DInfo:()=>ju,computeConv3DInfo:()=>ME,computeDefaultPad:()=>Z0,computeDilation2DInfo:()=>KH,computeOptimalWindowSize:()=>NX,computeOutAndReduceShapes:()=>Q0,computeOutShape:()=>wX,computePool2DInfo:()=>Y0,computePool3DInfo:()=>jH,convertConv2DDataFormat:()=>zE,decodeEinsumEquation:()=>KX,eitherStridesOrDilationsAreOne:()=>Ar,expandShapeToKeepDim:()=>yo,exponent:()=>HX,exponents:()=>UX,fromStringArrayToUint8:()=>g5,fromUint8ToStringArray:()=>h5,getAxesPermutation:()=>tv,getBroadcastDims:()=>bE,getComplexWithIndex:()=>GX,getEinsumComputePath:()=>YX,getEinsumPermutation:()=>jX,getFusedBiasGradient:()=>nc,getFusedDyActivation:()=>rc,getImageCenter:()=>TX,getInnerMostAxes:()=>qq,getPermuted:()=>EX,getRaggedRank:()=>SX,getReductionAxes:()=>ge,getReshaped:()=>kX,getReshapedPermuted:()=>_X,getRowPartitionTypesHelper:()=>IX,getSliceBeginCoords:()=>AX,getSliceSize:()=>$X,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>t5,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>e5,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>r5,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>s5,getSparseReshapeInputOutputMismatchErrorMessage:()=>a5,getSparseReshapeInputOutputMultipleErrorMessage:()=>i5,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>n5,getSparseReshapeNegativeOutputDimErrorMessage:()=>o5,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>p5,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>l5,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>u5,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>c5,getUndoAxesPermutation:()=>ph,isIdentityPermutation:()=>ZX,log:()=>o4,mergeRealAndImagArrays:()=>MX,prepareAndValidate:()=>CE,prepareSplitSize:()=>QX,segment_util:()=>hv,shouldFuse:()=>sc,slice_util:()=>Le,splitRealAndImagArrays:()=>zX,tupleValuesAreOne:()=>to,upcastType:()=>sr,validateDefaultValueShape:()=>vX,validateInput:()=>sx,validateUpdateShape:()=>U0,warn:()=>vi});function bX(r,t){let e=r[0].length;r.forEach((o,s)=>{E(o.length===e,()=>`Error in concat${e}D: rank of tensors[${s}] must be the same as the rank of the rest (${e})`)}),E(t>=0&&t`Error in concat${e}D: axis must be between 0 and ${e-1}.`);let n=r[0];r.forEach((o,s)=>{for(let i=0;i`Error in concat${e}D: Shape of tensors[${s}] (${o}) does not match the shape of the rest (${n}) along the non-concatenated axis ${s}.`)})}function wX(r,t){let e=r[0].slice();for(let n=1;n=0)if(a>=0){if(a!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${o+r}] = ${s} but shape[${o+r}] = ${a}`)}else n[i]=s}return n}function IX(r){let t={FIRST_DIM_SIZE:Vi.FIRST_DIM_SIZE,VALUE_ROWIDS:Vi.VALUE_ROWIDS,ROW_LENGTHS:Vi.ROW_LENGTHS,ROW_SPLITS:Vi.ROW_SPLITS,ROW_LIMITS:Vi.ROW_LIMITS,ROW_STARTS:Vi.ROW_STARTS},e=[];for(let n of r)if(n in t)e.push(t[n]);else break;return e}function SX(r){return r.length===0?0:r[0]===Vi.FIRST_DIM_SIZE?r.length-1:r.length}function vX(r,t){if(r==null||t==null)return;let e=r.length,n=t.length;if(e>=n)throw new Error(`defaultValue.shape=${r} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${e} must be less than ragged tensor input flatValues.rank = ${n})`);for(let o=0;o=0&&i>=0&&s!==1&&s!==i)throw new Error(`defaultValue.shape=${r}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${o-r.length}] = ${s} but ragged tensor input.flatValues.shape[${o-r.length}] = ${i}`)}}var yy=30;function NX(r){return r<=yy?r:sp(r,Math.floor(Math.sqrt(r)))}function TX(r,t,e){let n=e*(typeof r=="number"?r:r[0]),o=t*(typeof r=="number"?r:r[1]);return[n,o]}function kX(r,t,e,n=!0){let o=[];if(n)o=o.concat(t.slice(0)),o.push(r[0]/e),o=o.concat(r.slice(1));else{o=o.concat(r[0]);let s=t.length;for(let i=0;i=t*2+1||i%2===1?s.push(i):o.push(i);n.push(...o),n.push(0),n.push(...s)}return n}function _X(r,t,e,n=!0){let o=[];n?o.push(r[0]/e):o.push(r[0]*e);for(let s=1;s/g,CA=",",IA="...";function KX(r,t){r=r.replace(/\s/g,"");let e=(r.length-r.replace(qX,"").length)/dv.length;if(e<1)throw new Error("Equations without an arrow are not supported.");if(e>1)throw new Error(`Equation must contain exactly one arrow ("${dv}").`);let[n,o]=r.split(dv);E(n.indexOf(IA)===-1,()=>`The ellipsis notation ("${IA}") is not supported yet.`);let s=n.split(CA),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error("Support for more than 2 input tensors is not implemented yet.");let a=[];for(let m=0;md.indexOf(f)!==-1))throw new Error(`Output subscripts contain the label ${f} not present in the input subscripts.`);a.indexOf(f)===-1&&a.push(f)}for(let m=0;mo!==-1),{permutationIndices:e,expandDims:n}}function XX(r,t,e){let n=new Array(r);for(let o=0;o`Expected dimension ${n[t[o][i]]} at axis ${i} of input shaped ${JSON.stringify(s)}, but got dimension ${s[i]}`)}}function YX(r,t){let e=r,n=[],o=0;r.length===0&&e.push(-1),o=r.length+1;for(let i=0;it===e)}function JX(r,t){let e=[];for(let n=0;n"Number of splits must evenly divide the axis."),n=new Array(t).fill(r.shape[e]/t);else{let o=t.reduce((i,a)=>(a===-1&&(i+=1),i),0);E(o<=1,()=>"There should be only one negative value in split array.");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((a,u)=>u>0?a+u:a);t[s]=r.shape[e]-i}E(r.shape[e]===t.reduce((i,a)=>i+a),()=>"The sum of sizes must match the size of the axis dimension."),n=t}return n}function t5(r){return`Received SparseTensor with denseShape[0] = 0 but + ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return k.runKernel(Ml,i)}var xA=T({sparseSegmentSum_:uX});function cX(r,t,e,n,o,s,i,a){let u=I(r,"data","stringNGrams","string");if(u.dtype!=="string")throw new Error("Data must be of datatype string");if(u.shape.length!==1)throw new Error(`Data must be a vector, saw: ${u.shape}`);let l=I(t,"dataSplits","stringNGrams");if(l.dtype!=="int32")throw new Error("Data splits must be of datatype int32");let c={separator:e,nGramWidths:n,leftPad:o,rightPad:s,padWidth:i,preserveShortSequences:a},p={data:u,dataSplits:l},m=k.runKernel(Bl,p,c);return{nGrams:m[0],nGramsSplits:m[1]}}var yA=T({stringNGrams_:cX});function pX(r,t,e=!0){let n=I(r,"input","stringSplit","string"),o=I(t,"delimiter","stringSplit","string");if(n.rank!==1)throw new Error(`Input should be Tensor1D but received shape ${n.shape}`);if(o.rank!==0)throw new Error(`Delimiter should be a scalar but received shape ${o.shape}`);let s={skipEmpty:e},i={input:n,delimiter:o},a=k.runKernel(Vl,i,s);return{indices:a[0],values:a[1],shape:a[2]}}var bA=T({stringSplit_:pX});function mX(r,t){let e=I(r,"input","stringToHashBucketFast","string"),n={numBuckets:t};if(t<=0)throw new Error("Number of buckets must be at least 1");let o={input:e};return k.runKernel(Gl,o,n)}var wA=T({stringToHashBucketFast_:mX});var fX={fft:au,ifft:tl,rfft:lu,irfft:xm},dX={hammingWindow:B_,hannWindow:py,frame:my,stft:V_},Gs={flipLeftRight:W_,grayscaleToRGB:U_,resizeNearestNeighbor:xy,resizeBilinear:gy,rotateWithOffset:H_,cropAndResize:G_,nonMaxSuppression:q_,nonMaxSuppressionAsync:X_,nonMaxSuppressionWithScore:Y_,nonMaxSuppressionWithScoreAsync:Z_,nonMaxSuppressionPadded:J_,nonMaxSuppressionPaddedAsync:Q_,threshold:tA,transform:eA},p0={bandPart:rA,gramSchmidt:nA,qr:sA},hX={absoluteDifference:iA,computeWeightedLoss:Gr,cosineDistance:aA,hingeLoss:lA,huberLoss:uA,logLoss:cA,meanSquaredError:pA,sigmoidCrossEntropy:mA,softmaxCrossEntropy:fA},gX={sparseFillEmptyRows:dA,sparseReshape:hA,sparseSegmentMean:gA,sparseSegmentSum:xA},xX={stringNGrams:yA,stringSplit:bA,stringToHashBucketFast:wA};var Wr=class extends uh{minimize(t,e=!1,n){let{value:o,grads:s}=this.computeGradients(t,n);if(n!=null){let i=n.map(a=>({name:a.name,tensor:s[a.name]}));this.applyGradients(i)}else this.applyGradients(s);return vt(s),e?o:(o.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(t,e){return Bx(t,e)}dispose(){this.iterations_!=null&&vt(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:mt(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(t){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(t){return this.iterations_=(await t[0].tensor.data())[0],t.slice(1)}};Object.defineProperty(Wr,Symbol.hasInstance,{value:r=>r.minimize!=null&&r.computeGradients!=null&&r.applyGradients!=null});var cu=class extends Wr{constructor(t,e,n=null){super(),this.learningRate=t,this.rho=e,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=k.backend.epsilon())}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n],i=!1;this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accum_grad`,variable:B(()=>It(s).variable(i))}),this.accumulatedUpdates[o]==null&&(this.accumulatedUpdates[o]={originalName:`${n}/accum_var`,variable:B(()=>It(s).variable(i))});let a=Array.isArray(t)?t[o].tensor:t[n];if(a==null)return;let u=this.accumulatedGrads[o].variable,l=this.accumulatedUpdates[o].variable;B(()=>{let c=X(D(u,this.rho),D(Mt(a),1-this.rho)),p=D(pt(Se(X(l,this.epsilon)),Se(X(u,this.epsilon))),a),m=X(D(l,this.rho),D(Mt(p),1-this.rho));u.assign(c),l.assign(m);let f=X(D(p,-this.learningRate),s);s.assign(f)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(vt(this.accumulatedGrads.map(t=>t.variable)),vt(this.accumulatedUpdates.map(t=>t.variable)))}async getWeights(){let t=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=t.length/2,n=!1;this.accumulatedGrads=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedUpdates=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(t,e){return new t(e.learningRate,e.rho,e.epsilon)}};cu.className="Adadelta";Cn(cu);var pu=class extends Wr{constructor(t,e=.1){super(),this.learningRate=t,this.initialAccumulatorValue=e,this.accumulatedGrads=[]}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n];this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accumulator`,variable:B(()=>xo(s.shape,this.initialAccumulatorValue).variable(!1))});let i=Array.isArray(t)?t[o].tensor:t[n];if(i==null)return;let a=this.accumulatedGrads[o].variable;B(()=>{let u=X(a,Mt(i));a.assign(u);let l=X(D(pt(i,Se(X(u,k.backend.epsilon()))),-this.learningRate),s);s.assign(l)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&vt(this.accumulatedGrads.map(t=>t.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=!1;this.accumulatedGrads=t.map(n=>({originalName:n.name,variable:n.tensor.variable(e)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(t,e){return new t(e.learningRate,e.initialAccumulatorValue)}};pu.className="Adagrad";Cn(pu);var mu=class extends Wr{constructor(t,e,n,o=null){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],B(()=>{this.accBeta1=mt(e).variable(),this.accBeta2=mt(n).variable()}),o==null&&(this.epsilon=k.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=ct(1,this.accBeta1),o=ct(1,this.accBeta2);e.forEach((s,i)=>{let a=k.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:B(()=>It(a).variable(u))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${s}/v`,variable:B(()=>It(a).variable(u))});let l=Array.isArray(t)?t[i].tensor:t[s];if(l==null)return;let c=this.accumulatedFirstMoment[i].variable,p=this.accumulatedSecondMoment[i].variable,m=X(D(c,this.beta1),D(l,1-this.beta1)),f=X(D(p,this.beta2),D(Mt(l),1-this.beta2)),d=pt(m,n),h=pt(f,o);c.assign(m),p.assign(f);let g=X(D(pt(d,X(Se(h),this.epsilon)),-this.learningRate),a);a.assign(g)}),this.accBeta1.assign(D(this.accBeta1,this.beta1)),this.accBeta2.assign(D(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&vt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedSecondMoment!=null&&vt(this.accumulatedSecondMoment.map(t=>t.variable))}async getWeights(){let t=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t),B(()=>{this.accBeta1.assign(an(this.beta1,this.iterations_+1)),this.accBeta2.assign(an(this.beta2,this.iterations_+1))});let e=t.length/2,n=!1;this.accumulatedFirstMoment=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedSecondMoment=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon)}};mu.className="Adam";Cn(mu);var fu=class extends Wr{constructor(t,e,n,o=null,s=0){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.decay=s,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],B(()=>{this.iteration=mt(0).variable(),this.accBeta1=mt(e).variable()}),o==null&&(this.epsilon=k.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=ct(1,this.accBeta1),o=pt(-this.learningRate,X(D(this.iteration,this.decay),1));e.forEach((s,i)=>{let a=k.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:It(a).variable(u)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${s}/v`,variable:It(a).variable(u)});let l=Array.isArray(t)?t[i].tensor:t[s];if(l==null)return;let c=this.accumulatedFirstMoment[i].variable,p=this.accumulatedWeightedInfNorm[i].variable,m=X(D(c,this.beta1),D(l,1-this.beta1)),f=D(p,this.beta2),d=Ee(l),h=Sn(f,d);c.assign(m),p.assign(h);let g=X(D(pt(o,n),pt(m,X(h,this.epsilon))),a);a.assign(g)}),this.iteration.assign(X(this.iteration,1)),this.accBeta1.assign(D(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&vt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedWeightedInfNorm!=null&&vt(this.accumulatedWeightedInfNorm.map(t=>t.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(t){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(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon,e.decay)}};fu.className="Adamax";Cn(fu);var Bi=class extends Wr{constructor(t){super(),this.learningRate=t,this.setLearningRate(t)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=Array.isArray(t)?t[o].tensor:t[n];if(s==null)return;let i=k.registeredVariables[n];B(()=>{let a=X(D(this.c,s),i);i.assign(a)})}),this.incrementIterations()}setLearningRate(t){this.learningRate=t,this.c!=null&&this.c.dispose(),this.c=De(mt(-t))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(t){if(t=await this.extractIterations(t),t.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(t,e){return new t(e.learningRate)}};Bi.className="SGD";Cn(Bi);var du=class extends Bi{constructor(t,e,n=!1){super(t),this.learningRate=t,this.momentum=e,this.useNesterov=n,this.accumulations=[],this.m=mt(this.momentum)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n];this.accumulations[o]==null&&(this.accumulations[o]={originalName:`${n}/momentum`,variable:B(()=>It(s).variable(!1))});let i=this.accumulations[o].variable,a=Array.isArray(t)?t[o].tensor:t[n];a!=null&&B(()=>{let u,l=X(D(this.m,i),a);this.useNesterov?u=X(D(this.c,X(a,D(l,this.m))),s):u=X(D(this.c,l),s),i.assign(l),s.assign(u)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&vt(this.accumulations.map(t=>t.variable))}setMomentum(t){this.momentum=t}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=!1;this.accumulations=t.map(n=>({originalName:n.name,variable:n.tensor.variable(e)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(t,e){return new t(e.learningRate,e.momentum,e.useNesterov)}};du.className="Momentum";Cn(du);var hu=class extends Wr{constructor(t,e=.9,n=0,o=null,s=!1){if(super(),this.learningRate=t,this.decay=e,this.momentum=n,this.epsilon=o,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=s,o==null&&(this.epsilon=k.backend.epsilon()),t==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n],i=!1;this.accumulatedMeanSquares[o]==null&&(this.accumulatedMeanSquares[o]={originalName:`${n}/rms`,variable:B(()=>It(s).variable(i))}),this.accumulatedMoments[o]==null&&(this.accumulatedMoments[o]={originalName:`${n}/momentum`,variable:B(()=>It(s).variable(i))}),this.accumulatedMeanGrads[o]==null&&this.centered&&(this.accumulatedMeanGrads[o]={originalName:`${n}/mg`,variable:B(()=>It(s).variable(i))});let a=Array.isArray(t)?t[o].tensor:t[n];if(a==null)return;let u=this.accumulatedMeanSquares[o].variable,l=this.accumulatedMoments[o].variable;B(()=>{let c=X(D(u,this.decay),D(Mt(a),1-this.decay));if(this.centered){let p=this.accumulatedMeanGrads[o].variable,m=X(D(p,this.decay),D(a,1-this.decay)),f=pt(D(a,this.learningRate),Se(ct(c,X(Mt(m),this.epsilon)))),d=X(D(l,this.momentum),f);u.assign(c),p.assign(m),l.assign(d);let h=ct(s,d);s.assign(h)}else{let p=X(D(u,this.decay),D(Mt(a),1-this.decay)),m=X(D(l,this.momentum),pt(D(a,this.learningRate),Se(X(p,this.epsilon))));u.assign(p),l.assign(m);let f=ct(s,m);s.assign(f)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&vt(this.accumulatedMeanSquares.map(t=>t.variable)),this.accumulatedMeanGrads!=null&&this.centered&&vt(this.accumulatedMeanGrads.map(t=>t.variable)),this.accumulatedMoments!=null&&vt(this.accumulatedMoments.map(t=>t.variable))}async getWeights(){let t=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&t.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=this.centered?t.length/3:t.length/2,n=!1;this.accumulatedMeanSquares=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedMoments=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=t.slice(e*2,e*3).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(t,e){return new t(e.learningRate,e.decay,e.momentum,e.epsilon,e.centered)}};hu.className="RMSProp";Cn(hu);var Ws=class{static sgd(t){return new Bi(t)}static momentum(t,e,n=!1){return new du(t,e,n)}static rmsprop(t,e=.9,n=0,o=null,s=!1){return new hu(t,e,n,o,s)}static adam(t=.001,e=.9,n=.999,o=null){return new mu(t,e,n,o)}static adadelta(t=.001,e=.95,n=null){return new cu(t,e,n)}static adamax(t=.002,e=.9,n=.999,o=null,s=0){return new fu(t,e,n,o,s)}static adagrad(t,e=.1){return new pu(t,e)}};var ic={sgd:Ws.sgd,momentum:Ws.momentum,adadelta:Ws.adadelta,adagrad:Ws.adagrad,rmsprop:Ws.rmsprop,adamax:Ws.adamax,adam:Ws.adam};var yX=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:r=>r())();function gh(){return new Promise(r=>yX(()=>r()))}var v={};Wt(v,{ERF_A1:()=>RX,ERF_A2:()=>FX,ERF_A3:()=>OX,ERF_A4:()=>PX,ERF_A5:()=>LX,ERF_P:()=>DX,PARALLELIZE_THRESHOLD:()=>yy,RowPartitionType:()=>Vi,SELU_SCALE:()=>f0,SELU_SCALEALPHA:()=>m0,applyActivation:()=>oc,assertAndGetBroadcastShape:()=>Pt,assertAxesAreInnerMostDims:()=>Hq,assertParamsConsistent:()=>bX,assignToTypedArray:()=>WX,axesAreInnerMostDims:()=>Jv,calculateShapes:()=>IE,checkEinsumDimSizes:()=>XX,checkPadOnDimRoundingMode:()=>Ie,combineLocations:()=>HE,combineRaggedTensorToTensorShapes:()=>CX,complexWithEvenIndex:()=>BX,complexWithOddIndex:()=>VX,computeConv2DInfo:()=>ju,computeConv3DInfo:()=>ME,computeDefaultPad:()=>Zv,computeDilation2DInfo:()=>KH,computeOptimalWindowSize:()=>NX,computeOutAndReduceShapes:()=>Qv,computeOutShape:()=>wX,computePool2DInfo:()=>Yv,computePool3DInfo:()=>jH,convertConv2DDataFormat:()=>zE,decodeEinsumEquation:()=>KX,eitherStridesOrDilationsAreOne:()=>Ar,expandShapeToKeepDim:()=>yo,exponent:()=>HX,exponents:()=>UX,fromStringArrayToUint8:()=>g5,fromUint8ToStringArray:()=>h5,getAxesPermutation:()=>t0,getBroadcastDims:()=>bE,getComplexWithIndex:()=>GX,getEinsumComputePath:()=>YX,getEinsumPermutation:()=>jX,getFusedBiasGradient:()=>nc,getFusedDyActivation:()=>rc,getImageCenter:()=>TX,getInnerMostAxes:()=>qq,getPermuted:()=>EX,getRaggedRank:()=>SX,getReductionAxes:()=>ge,getReshaped:()=>kX,getReshapedPermuted:()=>_X,getRowPartitionTypesHelper:()=>IX,getSliceBeginCoords:()=>AX,getSliceSize:()=>$X,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>t5,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>e5,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>r5,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>s5,getSparseReshapeInputOutputMismatchErrorMessage:()=>a5,getSparseReshapeInputOutputMultipleErrorMessage:()=>i5,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>n5,getSparseReshapeNegativeOutputDimErrorMessage:()=>o5,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>p5,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>l5,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>u5,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>c5,getUndoAxesPermutation:()=>ph,isIdentityPermutation:()=>ZX,log:()=>o4,mergeRealAndImagArrays:()=>MX,prepareAndValidate:()=>CE,prepareSplitSize:()=>QX,segment_util:()=>h0,shouldFuse:()=>sc,slice_util:()=>Le,splitRealAndImagArrays:()=>zX,tupleValuesAreOne:()=>to,upcastType:()=>sr,validateDefaultValueShape:()=>vX,validateInput:()=>sx,validateUpdateShape:()=>Uv,warn:()=>vi});function bX(r,t){let e=r[0].length;r.forEach((o,s)=>{E(o.length===e,()=>`Error in concat${e}D: rank of tensors[${s}] must be the same as the rank of the rest (${e})`)}),E(t>=0&&t`Error in concat${e}D: axis must be between 0 and ${e-1}.`);let n=r[0];r.forEach((o,s)=>{for(let i=0;i`Error in concat${e}D: Shape of tensors[${s}] (${o}) does not match the shape of the rest (${n}) along the non-concatenated axis ${s}.`)})}function wX(r,t){let e=r[0].slice();for(let n=1;n=0)if(a>=0){if(a!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${o+r}] = ${s} but shape[${o+r}] = ${a}`)}else n[i]=s}return n}function IX(r){let t={FIRST_DIM_SIZE:Vi.FIRST_DIM_SIZE,VALUE_ROWIDS:Vi.VALUE_ROWIDS,ROW_LENGTHS:Vi.ROW_LENGTHS,ROW_SPLITS:Vi.ROW_SPLITS,ROW_LIMITS:Vi.ROW_LIMITS,ROW_STARTS:Vi.ROW_STARTS},e=[];for(let n of r)if(n in t)e.push(t[n]);else break;return e}function SX(r){return r.length===0?0:r[0]===Vi.FIRST_DIM_SIZE?r.length-1:r.length}function vX(r,t){if(r==null||t==null)return;let e=r.length,n=t.length;if(e>=n)throw new Error(`defaultValue.shape=${r} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${e} must be less than ragged tensor input flatValues.rank = ${n})`);for(let o=0;o=0&&i>=0&&s!==1&&s!==i)throw new Error(`defaultValue.shape=${r}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${o-r.length}] = ${s} but ragged tensor input.flatValues.shape[${o-r.length}] = ${i}`)}}var yy=30;function NX(r){return r<=yy?r:sp(r,Math.floor(Math.sqrt(r)))}function TX(r,t,e){let n=e*(typeof r=="number"?r:r[0]),o=t*(typeof r=="number"?r:r[1]);return[n,o]}function kX(r,t,e,n=!0){let o=[];if(n)o=o.concat(t.slice(0)),o.push(r[0]/e),o=o.concat(r.slice(1));else{o=o.concat(r[0]);let s=t.length;for(let i=0;i=t*2+1||i%2===1?s.push(i):o.push(i);n.push(...o),n.push(0),n.push(...s)}return n}function _X(r,t,e,n=!0){let o=[];n?o.push(r[0]/e):o.push(r[0]*e);for(let s=1;s/g,CA=",",IA="...";function KX(r,t){r=r.replace(/\s/g,"");let e=(r.length-r.replace(qX,"").length)/d0.length;if(e<1)throw new Error("Equations without an arrow are not supported.");if(e>1)throw new Error(`Equation must contain exactly one arrow ("${d0}").`);let[n,o]=r.split(d0);E(n.indexOf(IA)===-1,()=>`The ellipsis notation ("${IA}") is not supported yet.`);let s=n.split(CA),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error("Support for more than 2 input tensors is not implemented yet.");let a=[];for(let m=0;md.indexOf(f)!==-1))throw new Error(`Output subscripts contain the label ${f} not present in the input subscripts.`);a.indexOf(f)===-1&&a.push(f)}for(let m=0;mo!==-1),{permutationIndices:e,expandDims:n}}function XX(r,t,e){let n=new Array(r);for(let o=0;o`Expected dimension ${n[t[o][i]]} at axis ${i} of input shaped ${JSON.stringify(s)}, but got dimension ${s[i]}`)}}function YX(r,t){let e=r,n=[],o=0;r.length===0&&e.push(-1),o=r.length+1;for(let i=0;it===e)}function JX(r,t){let e=[];for(let n=0;n"Number of splits must evenly divide the axis."),n=new Array(t).fill(r.shape[e]/t);else{let o=t.reduce((i,a)=>(a===-1&&(i+=1),i),0);E(o<=1,()=>"There should be only one negative value in split array.");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((a,u)=>u>0?a+u:a);t[s]=r.shape[e]-i}E(r.shape[e]===t.reduce((i,a)=>i+a),()=>"The sum of sizes must match the size of the axis dimension."),n=t}return n}function t5(r){return`Received SparseTensor with denseShape[0] = 0 but indices.shape[0] = ${r}`}function e5(r,t){return`indices(${r}, 0) is invalid: ${t} < 0`}function r5(r,t,e){return`indices(${r}, 0) is invalid: ${t} >= ${e}`}function n5(r,t){return`only one output dimension may be -1, not both ${r} and ${t}`}function o5(r,t){return`size ${r} must be non-negative, not ${t}`}function s5(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function i5(r,t){let e=Jt(r),n=Jt(t);return`Input to reshape is a SparseTensor with ${e} - dense values, but the requested shape requires a multiple of ${n}. inputShape=${r} outputShape= ${t}`}function a5(r,t){let e=Jt(r),n=Jt(t);return`Input to reshape is a tensor with ${e} dense values, but the requested shape has ${n}. inputShape=${r} outputShape=${t}`}function l5(){return"segment ids must be >= 0"}function u5(){return"segment ids are not increasing"}function c5(r,t){return`Segment id ${r} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function p5(r,t,e){return`Bad: indices[${r}] == ${t} out of range [0, ${e})`}var hv={};Wt(hv,{collectGatherOpShapeInfo:()=>d5,computeOutShape:()=>f5,segOpComputeOptimalWindowSize:()=>m5});function m5(r,t){let e=!1,n;for(r<=yy?(n=r,e=!0):n=sp(r,Math.floor(Math.sqrt(r)));!e;)n>t||n===r?e=!0:n=sp(r,n+1);return n}function f5(r,t,e){let n=[],o=r.length;for(let s=0;so))throw new Error(`Expect batchDims in the range of [-${o}, ${o}], but got ${n}`);if(n<0&&(n+=o),n>s)throw new Error(`batchDims (${n}) must be less than rank(x) ( - ${s}).`);if(eWp(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function g5(r){return r.map(t=>Hl(t))}var Ur={};Wt(Ur,{nonMaxSuppressionV3Impl:()=>fy,nonMaxSuppressionV4Impl:()=>dy,nonMaxSuppressionV5Impl:()=>hy,whereImpl:()=>ay});var by={kernelName:ii,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,bo(J(e,"float32"),-1))}}};var SA={kernelName:oa,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Mt(J(e,"float32")),o=Se(ct(mt(1),n));return Ht(pt(r,o))}}}};var vA={kernelName:sa,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Se(ct(Mt(J(e,"float32")),1));return pt(r,n)}}}};var NA={kernelName:Zn,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=r,u=ge(e.shape,o);return u.length>0&&(a=ft(a,u)),R(a,e.shape)},b:()=>{let a=r,u=ge(n.shape,o);return u.length>0&&(a=ft(a,u)),R(a,n.shape)}}}};var TA={kernelName:Go,saveAllInputs:!0,gradFunc:(r,t)=>{let e={};return t.forEach((n,o)=>{e[o]=()=>r.clone()}),e}};var kA={kernelName:Wo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>It(e)}}};var EA={kernelName:kl,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>It(e)}}};var _A={kernelName:la,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Se(ct(mt(1),Mt(J(e,"float32")))))}}};var AA={kernelName:ua,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Se(X(mt(1),Mt(J(e,"float32"))));return pt(r,n)}}}};var $A={kernelName:ma,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=X(Mt(e),Mt(n)),u=D(r,pt(n,a)),l=ge(e.shape,o);return l.length>0&&(u=ft(u,l)),R(u,e.shape)},b:()=>{let a=X(Mt(e),Mt(n)),u=Ht(D(r,pt(e,a))),l=ge(n.shape,o);return l.length>0&&(u=ft(u,l)),R(u,n.shape)}}}};var DA={kernelName:ca,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,X(Mt(J(e,"float32")),1))}}};var RA={kernelName:pa,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,ct(mt(1),Mt(J(e,"float32"))))}}};function x5(r,t,e,n,o,s){let i=I(r,"dy","avgPool3dGrad"),a=I(t,"input","avgPool3dGrad"),u=i,l=a,c=!1;a.rank===4&&(c=!0,u=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),l=R(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),E(u.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${u.rank}.`),E(l.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${l.rank}.`),Ie("avgPool3dGrad",o,s);let p={dy:u,input:l},m={filterSize:e,strides:n,pad:o,dimRoundingMode:s},f=k.runKernel(lp,p,m);return c?R(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}var FA=T({avgPool3dGrad_:x5});var OA={kernelName:El,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i,dimRoundingMode:a}=e;return{x:()=>FA(r,n,o,s,i,a)}}};function y5(r,t,e,n,o){let s=I(r,"dy","avgPoolGrad"),i=I(t,"input","avgPoolGrad");E(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let a=i,u=s,l=!1;i.rank===3&&(l=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),E(u.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${u.rank}.`),E(a.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${a.rank}.`);let c={dy:u,input:a},p={filterSize:e,strides:n,pad:o},m=k.runKernel(ap,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var PA=T({avgPoolGrad_:y5});var LA={kernelName:Uo,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i}=e;return{x:()=>PA(r,n,o,s,i)}}};var MA={kernelName:Ho,inputsToSave:["a","b"],gradFunc:(r,t,e)=>{let[n,o]=t,{transposeA:s,transposeB:i}=e;return!s&&!i?{a:()=>Lt(r,o,!1,!0),b:()=>Lt(n,r,!0,!1)}:!s&&i?{a:()=>Lt(r,o,!1,!1),b:()=>Lt(r,n,!0,!1)}:s&&!i?{a:()=>Lt(o,r,!1,!0),b:()=>Lt(n,r,!1,!1)}:{a:()=>Lt(o,r,!0,!0),b:()=>Lt(r,n,!0,!0)}}};var zA={kernelName:ai,gradFunc:(r,t,e)=>{let{blockShape:n,crops:o}=e;return{x:()=>nu(r,n,o)}}};var BA={kernelName:p1,gradFunc:(r,t,e)=>{let n=e,o=n.inputShape,s=n.shape,i=Array.from(s);for(let u=o.length-1;u>=0;u--)if(o[u]===s[u])i[u]=1;else if(o[u]!==1)throw new Error(`broadcastTo(): [${o}] cannot be broadcast to [${s}].`);let a=[];for(let u=0;u1&&a.push(u);return{x:()=>ft(r,a,!0)}}};var VA={kernelName:lo,gradFunc:r=>({x:()=>r.clone()})};var GA={kernelName:qo,gradFunc:r=>({x:()=>It(r)})};var WA={kernelName:uo,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{clipValueMin:o,clipValueMax:s}=e;return{x:()=>_e(Rr(ln(n,o),Ln(n,s)),r,It(r))}}};var UA={kernelName:_l,inputsToSave:["x"],gradFunc:by.gradFunc};var HA={kernelName:li,saveAllInputs:!0,gradFunc:(r,t,e)=>{let n=t.map(u=>u.shape),{axis:o}=e,s=lr(o,t[0].shape)[0],i=n.map(u=>u[s]);return mr(r,i,s).map(u=>()=>u)}};var qA={kernelName:Ko,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,{dilations:s,strides:i,pad:a,dataFormat:u}=e;return E(to(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>tm(n.shape,r,o,i,a,u),filter:()=>Cm(n,r,o.shape,i,a,u)}}};var KA={kernelName:jo,inputsToSave:["dy","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,{strides:s,pad:i,dataFormat:a,dimRoundingMode:u}=e;return{dy:()=>In(r,o,s,i,a,1,u),filter:()=>Cm(r,n,o.shape,s,i,a,u)}}};function b5(r,t,e,n,o){let s=r;r.rank===4&&(s=R(r,[1,r.shape[0],r.shape[1],r.shape[2],r.shape[3]]));let i=t;i.rank===4&&(i=R(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),E(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),E(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),E(e.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${e}.`),E(s.shape[4]===e[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${e[3]}.`),E(i.shape[4]===e[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${e[4]}).`);let a={x:s,dy:i},u={strides:n,pad:o,filterShape:e};return k.runKernel(fp,a,u)}var jA=T({conv3DBackpropFilter_:b5});var XA={kernelName:Al,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s}=e;E(to(n),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${n}'`);let[i,a]=t;return{x:()=>kx(i.shape,r,a,o,s),filter:()=>jA(i,r,a.shape,o,s)}}};var YA={kernelName:Xo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(Ht(fm(J(e,"float32"))),r)}}};var ZA={kernelName:Yo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(dm(J(e,"float32")),r)}}};var JA={kernelName:Zo,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o,exclusive:s,reverse:i}=e;return{x:()=>{let a=tv([o],n.rank),u=nm(r,o,s,!i);return a!=null&&(u=Ot(u,a)),u}}}};var QA={kernelName:Jo,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s,dimRoundingMode:i}=e,a=n==null?[1,1]:n;E(to(a),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${a}'`);let[u,l]=t;return E(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${u.rank}.`),E(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${l.rank}.`),E(u.shape[3]===l.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${u.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),E(Ar(o,a),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${o} and dilations '${a}'.`),Ie("depthwiseConv2d",s,i),{x:()=>cy(u.shape,r,l,o,s,a,i),filter:()=>uy(u,r,l.shape,o,s,a,i)}}};var t2={kernelName:$l,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,s={x:n,filter:o,dy:r},i={x:n,filter:o,dy:r};return{x:()=>k.runKernel(jd,s,e),filter:()=>k.runKernel(Xd,i,e)}}};var e2={kernelName:ts,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t,n={dy:r,y:e};return{x:()=>k.runKernel(wp,n)}}};var r2={kernelName:ga,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t,n=D(er(Ht(Mt(e))),2/Math.sqrt(Math.PI));return{x:()=>D(r,n)}}};var n2={kernelName:es,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,e)}}};var o2={kernelName:ui,inputsToSave:["input"],gradFunc:(r,t)=>{let[e]=t;return{input:()=>R(r,e.shape)}}};var s2={kernelName:ya,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,er(e))}}};var i2={kernelName:rs,gradFunc:r=>({x:()=>It(r)})};var a2={kernelName:ns,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=pt(r,J(n,"float32")),u=ge(e.shape,o);return u.length>0?R(ft(a,u),e.shape):a},b:()=>{let a=D(r,J(e,"float32")),u=ge(n.shape,o);u.length>0&&(a=R(ft(a,u),n.shape));let l=Mt(n);return Ht(pt(a,J(l,"float32")))}}}};var l2={kernelName:os,inputsToSave:["x","mean","variance","scale"],gradFunc:(r,t,e)=>{let{varianceEpsilon:n}=e,[o,s,i,a]=t,u=a==null?mt(1):a,l=ge(s.shape,o.shape),c=[];if(s.rank===1){for(let C=0;Cs.rank===1?R(D(D(r,Dr(R(f,[1,1,1,s.shape[0]]),c)),u),o.shape):R(D(D(r,f),u),o.shape),mean:()=>{let C=D(D(f,mt(-1)),m);return s.rank===1&&(C=ft(C,l)),R(C,s.shape)},variance:()=>{let C=D(D(d,p),m);return s.rank===1&&(C=ft(C,l)),R(C,s.shape)},scale:()=>{let C=D(p,f),N=D(r,C);return s.rank===1&&(N=ft(N,l)),R(N,s.shape)},offset:()=>{let C=r;return s.rank===1&&(C=ft(C,l)),R(C,s.shape)}}}};var p2={kernelName:ci,inputsToSave:["x","indices"],gradFunc:(r,t,e)=>{let[n,o]=t,{axis:s}=e,i=lr(s,n.shape)[0];return{x:()=>{let u=n.shape,l=o.size,c=u.slice(0,i),p=c.length,m=u.slice(s,u.length).slice(1),f=m.length,d=u2(0,p),h=u2(p+1,p+1+f),g=c2([c,[l],m]),x=R(r,g),b=R(o,[l]),w=c2([[p],d,h]),C=Ot(x,w),N=wm(C,b,n.shape[i]),_=ph(w);return N=Ot(N,_),N},indices:()=>o}}};function u2(r,t){let e=[];for(let n=r;n{let[e,n]=t;return{a:()=>It(e),b:()=>It(n)}}};var f2={kernelName:co,gradFunc:r=>({x:()=>J(r,"float32")})};var d2={kernelName:Ia,gradFunc:r=>({x:()=>It(r)})};var h2={kernelName:Sa,gradFunc:r=>({x:()=>It(r)})};var g2={kernelName:va,gradFunc:r=>({x:()=>It(r)})};var x2={kernelName:is,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{alpha:o}=e,s=Re(n,0);return{x:()=>_e(s,r,D(r,o))}}};var y2={kernelName:ka,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,X(e,1))}}};var b2={kernelName:as,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,J(e,"float32"))}}};var w2={kernelName:f1,inputsToSave:[],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e;return{logits:()=>{let i=er(n);return ct(r,D(ft(r,o,!0),i))}}}};function w5(r,t,e,n=5,o=1,s=1,i=.5){let a={x:r,y:t,dy:e},u={depthRadius:n,bias:o,alpha:s,beta:i};return k.runKernel(Np,a,u)}var C2=T({localResponseNormalizationBackprop_:w5});var I2={kernelName:Rl,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{depthRadius:s,bias:i,alpha:a,beta:u}=e;return{x:()=>C2(n,o,r,s,i,a,u)}}};function wy(r,t,e,n){return t.rankD(r,J($r(e,t),r.dtype))}}var gv={kernelName:ls,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{reductionIndices:o}=n,s=t[0],i=t[1],a=lr(o,s.shape),u=wy(r,i,s,a);return{x:()=>u.x()}}};var S2={kernelName:us,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>D(r,J(ln(e,n),"float32")),b:()=>D(r,J(om(e,n),"float32"))}}};function C5(r,t,e,n,o,s,i){let a=I(r,"dy","maxPool3dGrad"),u=I(t,"input","maxPool3dGrad"),l=I(e,"output","maxPool3dGrad"),c=a,p=u,m=l,f=!1;u.rank===4&&(f=!0,c=R(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),p=R(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]]),m=R(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]])),E(c.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${c.rank}.`),E(p.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${p.rank}.`),E(m.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${m.rank}.`),Ie("maxPool3dGrad",s,i);let d={dy:c,input:p,output:m},h={filterSize:n,strides:o,pad:s,dimRoundingMode:i},g=k.runKernel(kp,d,h);return f?R(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var v2=T({maxPool3dGrad_:C5});var N2={kernelName:Fl,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=e;return{x:()=>v2(r,n,o,s,i,a,u)}}};function I5(r,t,e,n,o,s,i){let a=I(r,"dy","maxPoolGrad"),u=I(t,"input","maxPoolGrad"),l=I(e,"output","maxPoolGrad");E(u.rank===a.rank,()=>`Rank of input (${u.rank}) does not match rank of dy (${a.rank})`),E(a.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${a.rank}.`),E(u.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${u.rank}.`),Ie("maxPoolGrad",s,i);let c={dy:a,input:u,output:l},p={filterSize:n,strides:o,pad:s,dimRoundingMode:i};return k.runKernel(Tp,c,p)}var T2=T({maxPoolGrad_:I5});var k2={kernelName:cs,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a}=e;return{x:()=>T2(r,n,o,s,i,a)}}};var E2={kernelName:ps,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=lr(o,n.shape),a=Q0(n.shape,s)[1],u=Jt(a);return{x:()=>{let c=n.shape.slice();s.forEach(f=>{c[f]=1});let p=R(r,c);return pt(D(p,cr(n.shape,"float32")),u)}}}};var _2={kernelName:ms,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{axis:o}=n,[s,i]=t,a=lr(o,s.shape),u=wy(r,i,s,a);return{x:()=>u.x()}}};var A2={kernelName:fs,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>D(r,J(Ln(e,n),"float32")),b:()=>D(r,J(Re(e,n),"float32"))}}};var $2={kernelName:ds,inputsToSave:["x"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Rt(r,s,n.shape)}}};var D2={kernelName:$a,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=ge(e.shape,o);return a.length>0?R(ft(r,a),e.shape):r},b:()=>{let a=D(r,Ht(Pi(pt(e,n)))),u=ge(n.shape,o);return u.length>0?R(ft(a,u),n.shape):a}}}};var R2={kernelName:hs,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=D(r,J(n,"float32")),u=ge(e.shape,o);return u.length>0?R(ft(a,u),e.shape):a},b:()=>{let a=D(r,J(e,"float32")),u=ge(n.shape,o);return u.length>0?R(ft(a,u),n.shape):a}}}};var F2={kernelName:pi,gradFunc:r=>({x:()=>Ht(r)})};var O2={kernelName:gs,inputsToSave:["indices"],gradFunc:(r,t)=>{let e=t[0];return{indices:()=>Ne(e.shape,"float32")}}};var P2={kernelName:mi,gradFunc:r=>({x:()=>It(r)})};var L2={kernelName:fi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let{axis:n}=e;return vr(r,n).map(s=>()=>s)}};var xv={kernelName:xs,inputsToSave:["x"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Rt(r,s,n.shape)}}};var M2={kernelName:ys,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(r,t)=>{let[e,n,o]=t,s=e,i=n,a=Pt(s.shape,i.shape);return{a:()=>{let c=J(i,"float32"),p=D(r,D(c,an(s,ct(c,mt(1))))),m=ge(s.shape,a);return m.length>0&&(p=ft(p,m)),R(p,s.shape)},b:()=>{let c=Re(s,0),p=_e(c,Sr(s),It(s)),m=D(r,D(o,p)),f=ge(i.shape,a);return f.length>0&&(m=ft(m,f)),R(m,i.shape)}}}};var z2={kernelName:bs,inputsToSave:["x","alpha"],gradFunc:(r,t)=>{let[e,n]=t,o=Re(e,0);return{x:()=>_e(o,r,D(r,n)),alpha:()=>{let s=_e(o,It(r),D(r,e)),i=ge(n.shape,r.shape);return i.length>0&&(s=ft(s,i)),R(s,n.shape)}}}};function S5(r,t,e){let n=r.shape.slice();n[e]=1;let o=R(t,n),s=Xu(r,e,!0,!1),i=Xu(r,e,!0,!0),a=D(s,i);return D(o,a)}function v5(r,t,e){let n=r.shape.length,o=n-e.length,s=v.getAxesPermutation(e,n),i=r;s!=null&&(i=Ot(r,s));let a=i.shape.slice(),l=a.splice(n-e.length,e.length).reduce((m,f)=>m*f,1);a.push(l);let c=i.reshape(a),p=S5(c,t,o);if(p=p.reshape(i.shape),s!=null){let m=v.getUndoAxesPermutation(s);p=Ot(p,m)}return p}var B2={kernelName:ws,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=[];return o==null?s=n.shape.map((i,a)=>a):typeof o=="number"?s=[o]:s=o,{x:()=>v5(n,r,s)}}};var V2={kernelName:Qo,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=pt(r,J(n,"float32")),u=ge(e.shape,o);return u.length>0?R(ft(a,u),e.shape):a},b:()=>{let a=D(r,J(e,"float32")),u=ge(n.shape,o);u.length>0&&(a=R(ft(a,u),n.shape));let l=Mt(n);return Ht(pt(a,J(l,"float32")))}}}};var G2={kernelName:Pa,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Ht(Mt(e)))}}};var W2={kernelName:vs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t,n=D(Ln(e,6),bo(e));return{x:()=>D(r,J(n,"float32"))}}};var U2={kernelName:Cs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,J(bo(e),"float32"))}}};var H2={kernelName:di,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,e.shape)}}};var q2={kernelName:Ss,inputsToSave:["images"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>k.runKernel(Op,o,e)}}};var K2={kernelName:Is,inputsToSave:["images"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>k.runKernel(Fp,o,e)}}};var j2={kernelName:Ns,gradFunc:(r,t,e)=>{let{dims:n}=e,o=lr(n,r.shape);return{x:()=>pr(r,o)}}};var X2={kernelName:Ts,gradFunc:r=>({x:()=>It(r)})};var Y2={kernelName:ks,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>Ht(pt(r,D(an(e,1.5),2)))}}};var Z2={kernelName:hi,inputsToSave:["condition"],gradFunc:(r,t)=>{let[e]=t;return{condition:()=>J(It(e),"float32"),t:()=>D(r,J(e,r.dtype)),e:()=>D(r,J(eu(e),r.dtype))}}};var J2={kernelName:Ma,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Re(e,mt(0)),o=mt(mv),s=mt(fv),i=D(r,s),a=D(D(r,o),er(J(e,"float32")));return _e(n,i,a)}}}};var Q2={kernelName:_s,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,D(e,ct(mt(1),e)))}}};var t$={kernelName:Ba,gradFunc:r=>({x:()=>It(r)})};var e$={kernelName:Es,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(Jl(J(e,"float32")),r)}}};var r$={kernelName:za,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(rm(J(e,"float32")),r)}}};var n$={kernelName:gi,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{begin:o,size:s}=e,i=n.shape,[a,u]=q0(n,o,s),l=[];for(let c=0;ccn(r,l)}}};var o$={kernelName:Ds,outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{dim:o}=e,s=!0,i=D(r,n);return{logits:()=>ct(i,D(ft(i,[o],s),n))}}};var s$={kernelName:Va,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,Yr(e))}}};var yv={kernelName:xi,gradFunc:(r,t,e)=>{let{blockShape:n,paddings:o}=e;return{x:()=>Zl(r,n,o)}}};var bv={kernelName:yi,gradFunc:(r,t,e)=>{let{axis:n}=e;return{x:()=>ne(r,n)}}};var i$={kernelName:As,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,D(Se(J(e,"float32")),2))}}};var a$={kernelName:zl,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,D(J(e,"float32"),2))}}};var l$={kernelName:Rs,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=mt(2);return{a:()=>D(r,D(o,ct(e,n))),b:()=>D(r,D(o,ct(n,e)))}}};var u$={kernelName:po,gradFunc:r=>({x:()=>It(r)})};var c$={kernelName:Fs,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=r,u=ge(e.shape,o);return u.length>0&&(a=ft(a,u)),R(a,e.shape)},b:()=>{let a=r,u=ge(n.shape,o);return u.length>0&&(a=ft(a,u)),R(Ht(a),n.shape)}}}};var p$={kernelName:$s,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,o=n.shape.slice(),{axis:s}=e;lr(s,n.shape).forEach(l=>{o[l]=1});let a=R(r,o),u=D(a,cr(n.shape,"float32"));return{x:()=>u}}};var m$={kernelName:Os,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Mt(Jl(e)))}}};var f$={kernelName:Ps,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(ct(mt(1),Mt(e)),r)}}};var d$={kernelName:Jn,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{reps:o}=e;return{x:()=>{let i=It(n);if(n.rank===1)for(let a=0;a{let n=e,{perm:o}=n,s=ph(o);return{x:()=>Ot(r,s)}}};var g$={kernelName:bi,gradFunc:(r,t,e)=>{let n=e,{axis:o}=n;return{value:()=>nr(r,o)}}};var x$={kernelName:Wl,inputsToSave:["segmentIds"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>N5(r,e)}}};function N5(r,t){let e=Sn(t,It(t)),n=Li(r,e),o=ln(t,mt(0,"int32")),s=n.rank-o.rank;for(let a=0;a({x:()=>It(r)})};var T5=[by,SA,vA,NA,TA,kA,EA,_A,AA,$A,DA,RA,OA,LA,MA,zA,BA,VA,GA,WA,UA,HA,KA,qA,XA,YA,ZA,JA,QA,t2,V2,e2,r2,n2,o2,s2,a2,i2,l2,p2,m2,f2,d2,h2,g2,x2,y2,b2,w2,I2,gv,gv,S2,N2,k2,E2,_2,A2,$2,D2,R2,F2,O2,P2,L2,xv,xv,M2,z2,B2,G2,W2,U2,H2,q2,K2,j2,X2,Y2,Z2,J2,Q2,t$,e$,r$,n$,o$,s$,yv,yv,bv,bv,i$,l$,a$,u$,c$,p$,m$,f$,d$,h$,g$,x$,y$];for(let r of T5)h1(r);O().prototype.abs=function(){return this.throwIfDisposed(),Ee(this)};O().prototype.acos=function(){return this.throwIfDisposed(),ax(this)};O().prototype.acosh=function(){return this.throwIfDisposed(),lx(this)};O().prototype.add=function(r){return this.throwIfDisposed(),X(this,r)};O().prototype.all=function(r,t){return this.throwIfDisposed(),Zp(this,r,t)};O().prototype.any=function(r,t){return this.throwIfDisposed(),qu(this,r,t)};O().prototype.argMax=function(r){return this.throwIfDisposed(),Ai(this,r)};O().prototype.argMin=function(r){return this.throwIfDisposed(),ux(this,r)};O().prototype.asScalar=function(){return this.throwIfDisposed(),E(this.size===1,()=>"The array must have only 1 element."),R(this,[])};O().prototype.asType=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.as1D=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.as2D=function(r,t){return this.throwIfDisposed(),R(this,[r,t])};O().prototype.as3D=function(r,t,e){return this.throwIfDisposed(),R(this,[r,t,e])};O().prototype.as4D=function(r,t,e,n){return this.throwIfDisposed(),R(this,[r,t,e,n])};O().prototype.as5D=function(r,t,e,n,o){return this.throwIfDisposed(),R(this,[r,t,e,n,o])};O().prototype.asin=function(){return this.throwIfDisposed(),cx(this)};O().prototype.asinh=function(){return this.throwIfDisposed(),px(this)};O().prototype.atan=function(){return this.throwIfDisposed(),mx(this)};O().prototype.atan2=function(r){return this.throwIfDisposed(),fx(this,r)};O().prototype.atanh=function(){return this.throwIfDisposed(),dx(this)};O().prototype.avgPool=function(r,t,e,n){return this.throwIfDisposed(),Yl(this,r,t,e,n)};O().prototype.batchToSpaceND=function(r,t){return this.throwIfDisposed(),Zl(this,r,t)};O().prototype.batchNorm=function(r,t,e,n,o){return this.throwIfDisposed(),Di(this,r,t,e,n,o)};O().prototype.broadcastTo=function(r){return this.throwIfDisposed(),Ri(this,r)};O().prototype.cast=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.ceil=function(){return this.throwIfDisposed(),Cx(this)};O().prototype.clipByValue=function(r,t){return this.throwIfDisposed(),Cr(this,r,t)};O().prototype.concat=function(r,t){return this.throwIfDisposed(),r instanceof Ft&&(r=[r]),ne([this,...r],t)};O().prototype.conv1d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Qp(this,r,t,e,n,o,s)};O().prototype.conv2dTranspose=function(r,t,e,n,o){return this.throwIfDisposed(),em(this,r,t,e,n,o)};O().prototype.conv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),In(this,r,t,e,n,o,s)};O().prototype.cos=function(){return this.throwIfDisposed(),Jl(this)};O().prototype.cosh=function(){return this.throwIfDisposed(),rm(this)};O().prototype.cumprod=function(r,t,e){return this.throwIfDisposed(),Xu(this,r,t,e)};O().prototype.cumsum=function(r,t,e){return this.throwIfDisposed(),nm(this,r,t,e)};O().prototype.depthToSpace=function(r,t){return this.throwIfDisposed(),_x(this,r,t)};O().prototype.depthwiseConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Fi(this,r,t,e,n,o,s)};O().prototype.dilation2d=function(r,t,e,n,o){return this.throwIfDisposed(),Ax(this,r,t,e,n,o)};O().prototype.divNoNan=function(r){return this.throwIfDisposed(),$x(this,r)};O().prototype.div=function(r){return this.throwIfDisposed(),pt(this,r)};O().prototype.dot=function(r){return this.throwIfDisposed(),Dx(this,r)};O().prototype.elu=function(){return this.throwIfDisposed(),Oi(this)};O().prototype.equal=function(r){return this.throwIfDisposed(),$r(this,r)};O().prototype.erf=function(){return this.throwIfDisposed(),Rx(this)};O().prototype.euclideanNorm=function(r,t){return this.throwIfDisposed(),Fx(this,r,t)};O().prototype.exp=function(){return this.throwIfDisposed(),er(this)};O().prototype.expandDims=function(r){return this.throwIfDisposed(),rr(this,r)};O().prototype.expm1=function(){return this.throwIfDisposed(),Ox(this)};O().prototype.fft=function(){return this.throwIfDisposed(),au(this)};O().prototype.flatten=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.floor=function(){return this.throwIfDisposed(),Pi(this)};O().prototype.floorDiv=function(r){return this.throwIfDisposed(),Yp(this,r)};O().prototype.gather=function(r,t){return this.throwIfDisposed(),Li(this,r,t)};O().prototype.greaterEqual=function(r){return this.throwIfDisposed(),ln(this,r)};O().prototype.greater=function(r){return this.throwIfDisposed(),Re(this,r)};O().prototype.ifft=function(){return this.throwIfDisposed(),tl(this)};O().prototype.irfft=function(){return this.throwIfDisposed(),xm(this)};O().prototype.isFinite=function(){return this.throwIfDisposed(),Px(this)};O().prototype.isInf=function(){return this.throwIfDisposed(),Lx(this)};O().prototype.isNaN=function(){return this.throwIfDisposed(),Mx(this)};O().prototype.leakyRelu=function(r){return this.throwIfDisposed(),Ql(this,r)};O().prototype.lessEqual=function(r){return this.throwIfDisposed(),Ln(this,r)};O().prototype.less=function(r){return this.throwIfDisposed(),om(this,r)};O().prototype.localResponseNormalization=function(r,t,e,n){return this.throwIfDisposed(),zx(this,r,t,e,n)};O().prototype.logSigmoid=function(){return this.throwIfDisposed(),Gx(this)};O().prototype.logSoftmax=function(r){return this.throwIfDisposed(),sm(this,r)};O().prototype.logSumExp=function(r,t){return this.throwIfDisposed(),im(this,r,t)};O().prototype.log=function(){return this.throwIfDisposed(),Sr(this)};O().prototype.log1p=function(){return this.throwIfDisposed(),tu(this)};O().prototype.logicalAnd=function(r){return this.throwIfDisposed(),Rr(this,r)};O().prototype.logicalNot=function(){return this.throwIfDisposed(),eu(this)};O().prototype.logicalOr=function(r){return this.throwIfDisposed(),am(this,r)};O().prototype.logicalXor=function(r){return this.throwIfDisposed(),Wx(this,r)};O().prototype.matMul=function(r,t,e){return this.throwIfDisposed(),Lt(this,r,t,e)};O().prototype.maxPool=function(r,t,e,n){return this.throwIfDisposed(),ru(this,r,t,e,n)};O().prototype.max=function(r,t){return this.throwIfDisposed(),Ir(this,r,t)};O().prototype.maximum=function(r){return this.throwIfDisposed(),Sn(this,r)};O().prototype.mean=function(r,t){return this.throwIfDisposed(),ve(this,r,t)};O().prototype.min=function(r,t){return this.throwIfDisposed(),Ja(this,r,t)};O().prototype.minimum=function(r){return this.throwIfDisposed(),Mi(this,r)};O().prototype.mirrorPad=function(r,t){return this.throwIfDisposed(),qx(this,r,t)};O().prototype.mod=function(r){return this.throwIfDisposed(),Kx(this,r)};O().prototype.mul=function(r){return this.throwIfDisposed(),D(this,r)};O().prototype.neg=function(){return this.throwIfDisposed(),Ht(this)};O().prototype.norm=function(r,t,e){return this.throwIfDisposed(),Qa(this,r,t,e)};O().prototype.notEqual=function(r){return this.throwIfDisposed(),Bs(this,r)};O().prototype.oneHot=function(r,t=1,e=0){return this.throwIfDisposed(),Ei(this,r,t,e)};O().prototype.onesLike=function(){return this.throwIfDisposed(),yr(this)};O().prototype.pad=function(r,t){return this.throwIfDisposed(),cn(this,r,t)};O().prototype.pool=function(r,t,e,n,o,s){return this.throwIfDisposed(),jx(this,r,t,e,n,o,s)};O().prototype.pow=function(r){return this.throwIfDisposed(),an(this,r)};O().prototype.prelu=function(r){return this.throwIfDisposed(),ou(this,r)};O().prototype.prod=function(r,t){return this.throwIfDisposed(),Xx(this,r,t)};O().prototype.reciprocal=function(){return this.throwIfDisposed(),ty(this)};O().prototype.relu=function(){return this.throwIfDisposed(),Fr(this)};O().prototype.relu6=function(){return this.throwIfDisposed(),lm(this)};O().prototype.reshapeAs=function(r){return this.throwIfDisposed(),R(this,r.shape)};O().prototype.reshape=function(r){return this.throwIfDisposed(),R(this,r)};O().prototype.resizeBilinear=function(r,t,e){return this.throwIfDisposed(),gy(this,r,t,e)};O().prototype.resizeNearestNeighbor=function(r,t,e){return this.throwIfDisposed(),xy(this,r,t,e)};O().prototype.reverse=function(r){return this.throwIfDisposed(),pr(this,r)};O().prototype.rfft=function(){return this.throwIfDisposed(),lu(this)};O().prototype.round=function(){return this.throwIfDisposed(),um(this)};O().prototype.rsqrt=function(){return this.throwIfDisposed(),cm(this)};O().prototype.selu=function(){return this.throwIfDisposed(),pm(this)};O().prototype.separableConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),mm(this,r,t,e,n,o,s)};O().prototype.sigmoid=function(){return this.throwIfDisposed(),Yr(this)};O().prototype.sign=function(){return this.throwIfDisposed(),ey(this)};O().prototype.sin=function(){return this.throwIfDisposed(),fm(this)};O().prototype.sinh=function(){return this.throwIfDisposed(),dm(this)};O().prototype.slice=function(r,t){return this.throwIfDisposed(),Rt(this,r,t)};O().prototype.softmax=function(r){return this.throwIfDisposed(),iu(this,r)};O().prototype.softplus=function(){return this.throwIfDisposed(),zs(this)};O().prototype.spaceToBatchND=function(r,t){return this.throwIfDisposed(),nu(this,r,t)};O().prototype.split=function(r,t){return this.throwIfDisposed(),mr(this,r,t)};O().prototype.sqrt=function(){return this.throwIfDisposed(),Se(this)};O().prototype.square=function(){return this.throwIfDisposed(),Mt(this)};O().prototype.squaredDifference=function(r){return this.throwIfDisposed(),ym(this,r)};O().prototype.squeeze=function(r){return this.throwIfDisposed(),Mn(this,r)};O().prototype.stack=function(r,t){this.throwIfDisposed();let e=r instanceof Ft?[this,r]:[this,...r];return nr(e,t)};O().prototype.step=function(r){return this.throwIfDisposed(),bo(this,r)};O().prototype.stridedSlice=function(r,t,e,n,o,s,i,a){return this.throwIfDisposed(),ry(this,r,t,e,n,o,s,i,a)};O().prototype.sub=function(r){return this.throwIfDisposed(),ct(this,r)};O().prototype.sum=function(r,t){return this.throwIfDisposed(),ft(this,r,t)};O().prototype.tan=function(){return this.throwIfDisposed(),ny(this)};O().prototype.tanh=function(){return this.throwIfDisposed(),$i(this)};O().prototype.tile=function(r){return this.throwIfDisposed(),Dr(this,r)};O().prototype.toBool=function(){return this.throwIfDisposed(),J(this,"bool")};O().prototype.toFloat=function(){return this.throwIfDisposed(),J(this,"float32")};O().prototype.toInt=function(){return this.throwIfDisposed(),J(this,"int32")};O().prototype.topk=function(r,t){return this.throwIfDisposed(),oy(this,r,t)};O().prototype.transpose=function(r){return this.throwIfDisposed(),Ot(this,r)};O().prototype.unique=function(r){return this.throwIfDisposed(),sy(this,r)};O().prototype.unsortedSegmentSum=function(r,t){return this.throwIfDisposed(),wm(this,r,t)};O().prototype.unstack=function(r){return this.throwIfDisposed(),vr(this,r)};O().prototype.where=function(r,t){return this.throwIfDisposed(),_e(r,this,t)};O().prototype.zerosLike=function(){return this.throwIfDisposed(),It(this)};var vn=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,vn.prototype)}},Hr=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Hr.prototype)}},M=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,M.prototype)}},St=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,St.prototype)}},Im=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Im.prototype)}};var xh=class{constructor(t){this.maxEntries=t||100,this.cache=new Map}get(t){let e;return this.cache.has(t)&&(e=this.cache.get(t),this.cache.delete(t),this.cache.set(t,e)),e}put(t,e){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxEntries){let n=this.cache.keys().next().value;this.cache.delete(n)}this.cache.set(t,e)}getMaxEntries(){return this.maxEntries}setMaxEntries(t){if(t<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${t}.`);if(this.maxEntries>t)for(let e=0;ee.toUpperCase())}var Co={};function Sm(r){if(r==null)return null;let t={};return t.className=r.getClassName(),t.config=r.getConfig(),t}function wv(r){if(!(r==null||typeof r!="object"))if(Array.isArray(r))r.forEach(t=>wv(t));else{let t=Object.keys(r);for(let e of t){let n=r[e];n!=null&&typeof n=="object"&&(!Array.isArray(n)&&n.type==="ndarray"&&typeof n.value=="number"?r[e]=n.value:wv(n))}}}function Gi(r,t={},e={},n="object",o=!1){if(typeof r=="string"){let s=r,i;if(s in e)i=e[s];else if(s in Co)i=Co[s];else if(i=t[s],i==null)throw new M(`Unknown ${n}: ${r}. This may be due to one of the following reasons: + dense values, but the requested shape requires a multiple of ${n}. inputShape=${r} outputShape= ${t}`}function a5(r,t){let e=Jt(r),n=Jt(t);return`Input to reshape is a tensor with ${e} dense values, but the requested shape has ${n}. inputShape=${r} outputShape=${t}`}function l5(){return"segment ids must be >= 0"}function u5(){return"segment ids are not increasing"}function c5(r,t){return`Segment id ${r} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function p5(r,t,e){return`Bad: indices[${r}] == ${t} out of range [0, ${e})`}var h0={};Wt(h0,{collectGatherOpShapeInfo:()=>d5,computeOutShape:()=>f5,segOpComputeOptimalWindowSize:()=>m5});function m5(r,t){let e=!1,n;for(r<=yy?(n=r,e=!0):n=sp(r,Math.floor(Math.sqrt(r)));!e;)n>t||n===r?e=!0:n=sp(r,n+1);return n}function f5(r,t,e){let n=[],o=r.length;for(let s=0;so))throw new Error(`Expect batchDims in the range of [-${o}, ${o}], but got ${n}`);if(n<0&&(n+=o),n>s)throw new Error(`batchDims (${n}) must be less than rank(x) ( + ${s}).`);if(eWp(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function g5(r){return r.map(t=>Hl(t))}var Ur={};Wt(Ur,{nonMaxSuppressionV3Impl:()=>fy,nonMaxSuppressionV4Impl:()=>dy,nonMaxSuppressionV5Impl:()=>hy,whereImpl:()=>ay});var by={kernelName:ii,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,bo(J(e,"float32"),-1))}}};var SA={kernelName:oa,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Mt(J(e,"float32")),o=Se(ct(mt(1),n));return Ht(pt(r,o))}}}};var vA={kernelName:sa,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Se(ct(Mt(J(e,"float32")),1));return pt(r,n)}}}};var NA={kernelName:Zn,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=r,u=ge(e.shape,o);return u.length>0&&(a=ft(a,u)),R(a,e.shape)},b:()=>{let a=r,u=ge(n.shape,o);return u.length>0&&(a=ft(a,u)),R(a,n.shape)}}}};var TA={kernelName:Go,saveAllInputs:!0,gradFunc:(r,t)=>{let e={};return t.forEach((n,o)=>{e[o]=()=>r.clone()}),e}};var kA={kernelName:Wo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>It(e)}}};var EA={kernelName:kl,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>It(e)}}};var _A={kernelName:la,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Se(ct(mt(1),Mt(J(e,"float32")))))}}};var AA={kernelName:ua,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Se(X(mt(1),Mt(J(e,"float32"))));return pt(r,n)}}}};var $A={kernelName:ma,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=X(Mt(e),Mt(n)),u=D(r,pt(n,a)),l=ge(e.shape,o);return l.length>0&&(u=ft(u,l)),R(u,e.shape)},b:()=>{let a=X(Mt(e),Mt(n)),u=Ht(D(r,pt(e,a))),l=ge(n.shape,o);return l.length>0&&(u=ft(u,l)),R(u,n.shape)}}}};var DA={kernelName:ca,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,X(Mt(J(e,"float32")),1))}}};var RA={kernelName:pa,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,ct(mt(1),Mt(J(e,"float32"))))}}};function x5(r,t,e,n,o,s){let i=I(r,"dy","avgPool3dGrad"),a=I(t,"input","avgPool3dGrad"),u=i,l=a,c=!1;a.rank===4&&(c=!0,u=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),l=R(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),E(u.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${u.rank}.`),E(l.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${l.rank}.`),Ie("avgPool3dGrad",o,s);let p={dy:u,input:l},m={filterSize:e,strides:n,pad:o,dimRoundingMode:s},f=k.runKernel(lp,p,m);return c?R(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}var FA=T({avgPool3dGrad_:x5});var OA={kernelName:El,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i,dimRoundingMode:a}=e;return{x:()=>FA(r,n,o,s,i,a)}}};function y5(r,t,e,n,o){let s=I(r,"dy","avgPoolGrad"),i=I(t,"input","avgPoolGrad");E(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let a=i,u=s,l=!1;i.rank===3&&(l=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),E(u.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${u.rank}.`),E(a.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${a.rank}.`);let c={dy:u,input:a},p={filterSize:e,strides:n,pad:o},m=k.runKernel(ap,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var PA=T({avgPoolGrad_:y5});var LA={kernelName:Uo,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i}=e;return{x:()=>PA(r,n,o,s,i)}}};var MA={kernelName:Ho,inputsToSave:["a","b"],gradFunc:(r,t,e)=>{let[n,o]=t,{transposeA:s,transposeB:i}=e;return!s&&!i?{a:()=>Lt(r,o,!1,!0),b:()=>Lt(n,r,!0,!1)}:!s&&i?{a:()=>Lt(r,o,!1,!1),b:()=>Lt(r,n,!0,!1)}:s&&!i?{a:()=>Lt(o,r,!1,!0),b:()=>Lt(n,r,!1,!1)}:{a:()=>Lt(o,r,!0,!0),b:()=>Lt(r,n,!0,!0)}}};var zA={kernelName:ai,gradFunc:(r,t,e)=>{let{blockShape:n,crops:o}=e;return{x:()=>nu(r,n,o)}}};var BA={kernelName:p1,gradFunc:(r,t,e)=>{let n=e,o=n.inputShape,s=n.shape,i=Array.from(s);for(let u=o.length-1;u>=0;u--)if(o[u]===s[u])i[u]=1;else if(o[u]!==1)throw new Error(`broadcastTo(): [${o}] cannot be broadcast to [${s}].`);let a=[];for(let u=0;u1&&a.push(u);return{x:()=>ft(r,a,!0)}}};var VA={kernelName:lo,gradFunc:r=>({x:()=>r.clone()})};var GA={kernelName:qo,gradFunc:r=>({x:()=>It(r)})};var WA={kernelName:uo,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{clipValueMin:o,clipValueMax:s}=e;return{x:()=>_e(Rr(ln(n,o),Ln(n,s)),r,It(r))}}};var UA={kernelName:_l,inputsToSave:["x"],gradFunc:by.gradFunc};var HA={kernelName:li,saveAllInputs:!0,gradFunc:(r,t,e)=>{let n=t.map(u=>u.shape),{axis:o}=e,s=lr(o,t[0].shape)[0],i=n.map(u=>u[s]);return mr(r,i,s).map(u=>()=>u)}};var qA={kernelName:Ko,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,{dilations:s,strides:i,pad:a,dataFormat:u}=e;return E(to(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>tm(n.shape,r,o,i,a,u),filter:()=>Cm(n,r,o.shape,i,a,u)}}};var KA={kernelName:jo,inputsToSave:["dy","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,{strides:s,pad:i,dataFormat:a,dimRoundingMode:u}=e;return{dy:()=>In(r,o,s,i,a,1,u),filter:()=>Cm(r,n,o.shape,s,i,a,u)}}};function b5(r,t,e,n,o){let s=r;r.rank===4&&(s=R(r,[1,r.shape[0],r.shape[1],r.shape[2],r.shape[3]]));let i=t;i.rank===4&&(i=R(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),E(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),E(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),E(e.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${e}.`),E(s.shape[4]===e[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${e[3]}.`),E(i.shape[4]===e[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${e[4]}).`);let a={x:s,dy:i},u={strides:n,pad:o,filterShape:e};return k.runKernel(fp,a,u)}var jA=T({conv3DBackpropFilter_:b5});var XA={kernelName:Al,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s}=e;E(to(n),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${n}'`);let[i,a]=t;return{x:()=>kx(i.shape,r,a,o,s),filter:()=>jA(i,r,a.shape,o,s)}}};var YA={kernelName:Xo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(Ht(fm(J(e,"float32"))),r)}}};var ZA={kernelName:Yo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(dm(J(e,"float32")),r)}}};var JA={kernelName:Zo,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o,exclusive:s,reverse:i}=e;return{x:()=>{let a=t0([o],n.rank),u=nm(r,o,s,!i);return a!=null&&(u=Ot(u,a)),u}}}};var QA={kernelName:Jo,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s,dimRoundingMode:i}=e,a=n==null?[1,1]:n;E(to(a),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${a}'`);let[u,l]=t;return E(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${u.rank}.`),E(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${l.rank}.`),E(u.shape[3]===l.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${u.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),E(Ar(o,a),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${o} and dilations '${a}'.`),Ie("depthwiseConv2d",s,i),{x:()=>cy(u.shape,r,l,o,s,a,i),filter:()=>uy(u,r,l.shape,o,s,a,i)}}};var t2={kernelName:$l,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,s={x:n,filter:o,dy:r},i={x:n,filter:o,dy:r};return{x:()=>k.runKernel(jd,s,e),filter:()=>k.runKernel(Xd,i,e)}}};var e2={kernelName:ts,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t,n={dy:r,y:e};return{x:()=>k.runKernel(wp,n)}}};var r2={kernelName:ga,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t,n=D(er(Ht(Mt(e))),2/Math.sqrt(Math.PI));return{x:()=>D(r,n)}}};var n2={kernelName:es,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,e)}}};var o2={kernelName:ui,inputsToSave:["input"],gradFunc:(r,t)=>{let[e]=t;return{input:()=>R(r,e.shape)}}};var s2={kernelName:ya,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,er(e))}}};var i2={kernelName:rs,gradFunc:r=>({x:()=>It(r)})};var a2={kernelName:ns,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=pt(r,J(n,"float32")),u=ge(e.shape,o);return u.length>0?R(ft(a,u),e.shape):a},b:()=>{let a=D(r,J(e,"float32")),u=ge(n.shape,o);u.length>0&&(a=R(ft(a,u),n.shape));let l=Mt(n);return Ht(pt(a,J(l,"float32")))}}}};var l2={kernelName:os,inputsToSave:["x","mean","variance","scale"],gradFunc:(r,t,e)=>{let{varianceEpsilon:n}=e,[o,s,i,a]=t,u=a==null?mt(1):a,l=ge(s.shape,o.shape),c=[];if(s.rank===1){for(let C=0;Cs.rank===1?R(D(D(r,Dr(R(f,[1,1,1,s.shape[0]]),c)),u),o.shape):R(D(D(r,f),u),o.shape),mean:()=>{let C=D(D(f,mt(-1)),m);return s.rank===1&&(C=ft(C,l)),R(C,s.shape)},variance:()=>{let C=D(D(d,p),m);return s.rank===1&&(C=ft(C,l)),R(C,s.shape)},scale:()=>{let C=D(p,f),N=D(r,C);return s.rank===1&&(N=ft(N,l)),R(N,s.shape)},offset:()=>{let C=r;return s.rank===1&&(C=ft(C,l)),R(C,s.shape)}}}};var p2={kernelName:ci,inputsToSave:["x","indices"],gradFunc:(r,t,e)=>{let[n,o]=t,{axis:s}=e,i=lr(s,n.shape)[0];return{x:()=>{let u=n.shape,l=o.size,c=u.slice(0,i),p=c.length,m=u.slice(s,u.length).slice(1),f=m.length,d=u2(0,p),h=u2(p+1,p+1+f),g=c2([c,[l],m]),x=R(r,g),b=R(o,[l]),w=c2([[p],d,h]),C=Ot(x,w),N=wm(C,b,n.shape[i]),_=ph(w);return N=Ot(N,_),N},indices:()=>o}}};function u2(r,t){let e=[];for(let n=r;n{let[e,n]=t;return{a:()=>It(e),b:()=>It(n)}}};var f2={kernelName:co,gradFunc:r=>({x:()=>J(r,"float32")})};var d2={kernelName:Ia,gradFunc:r=>({x:()=>It(r)})};var h2={kernelName:Sa,gradFunc:r=>({x:()=>It(r)})};var g2={kernelName:va,gradFunc:r=>({x:()=>It(r)})};var x2={kernelName:is,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{alpha:o}=e,s=Re(n,0);return{x:()=>_e(s,r,D(r,o))}}};var y2={kernelName:ka,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,X(e,1))}}};var b2={kernelName:as,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,J(e,"float32"))}}};var w2={kernelName:f1,inputsToSave:[],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e;return{logits:()=>{let i=er(n);return ct(r,D(ft(r,o,!0),i))}}}};function w5(r,t,e,n=5,o=1,s=1,i=.5){let a={x:r,y:t,dy:e},u={depthRadius:n,bias:o,alpha:s,beta:i};return k.runKernel(Np,a,u)}var C2=T({localResponseNormalizationBackprop_:w5});var I2={kernelName:Rl,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{depthRadius:s,bias:i,alpha:a,beta:u}=e;return{x:()=>C2(n,o,r,s,i,a,u)}}};function wy(r,t,e,n){return t.rankD(r,J($r(e,t),r.dtype))}}var g0={kernelName:ls,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{reductionIndices:o}=n,s=t[0],i=t[1],a=lr(o,s.shape),u=wy(r,i,s,a);return{x:()=>u.x()}}};var S2={kernelName:us,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>D(r,J(ln(e,n),"float32")),b:()=>D(r,J(om(e,n),"float32"))}}};function C5(r,t,e,n,o,s,i){let a=I(r,"dy","maxPool3dGrad"),u=I(t,"input","maxPool3dGrad"),l=I(e,"output","maxPool3dGrad"),c=a,p=u,m=l,f=!1;u.rank===4&&(f=!0,c=R(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),p=R(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]]),m=R(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]])),E(c.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${c.rank}.`),E(p.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${p.rank}.`),E(m.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${m.rank}.`),Ie("maxPool3dGrad",s,i);let d={dy:c,input:p,output:m},h={filterSize:n,strides:o,pad:s,dimRoundingMode:i},g=k.runKernel(kp,d,h);return f?R(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var v2=T({maxPool3dGrad_:C5});var N2={kernelName:Fl,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=e;return{x:()=>v2(r,n,o,s,i,a,u)}}};function I5(r,t,e,n,o,s,i){let a=I(r,"dy","maxPoolGrad"),u=I(t,"input","maxPoolGrad"),l=I(e,"output","maxPoolGrad");E(u.rank===a.rank,()=>`Rank of input (${u.rank}) does not match rank of dy (${a.rank})`),E(a.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${a.rank}.`),E(u.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${u.rank}.`),Ie("maxPoolGrad",s,i);let c={dy:a,input:u,output:l},p={filterSize:n,strides:o,pad:s,dimRoundingMode:i};return k.runKernel(Tp,c,p)}var T2=T({maxPoolGrad_:I5});var k2={kernelName:cs,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a}=e;return{x:()=>T2(r,n,o,s,i,a)}}};var E2={kernelName:ps,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=lr(o,n.shape),a=Qv(n.shape,s)[1],u=Jt(a);return{x:()=>{let c=n.shape.slice();s.forEach(f=>{c[f]=1});let p=R(r,c);return pt(D(p,cr(n.shape,"float32")),u)}}}};var _2={kernelName:ms,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{axis:o}=n,[s,i]=t,a=lr(o,s.shape),u=wy(r,i,s,a);return{x:()=>u.x()}}};var A2={kernelName:fs,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>D(r,J(Ln(e,n),"float32")),b:()=>D(r,J(Re(e,n),"float32"))}}};var $2={kernelName:ds,inputsToSave:["x"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Rt(r,s,n.shape)}}};var D2={kernelName:$a,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=ge(e.shape,o);return a.length>0?R(ft(r,a),e.shape):r},b:()=>{let a=D(r,Ht(Pi(pt(e,n)))),u=ge(n.shape,o);return u.length>0?R(ft(a,u),n.shape):a}}}};var R2={kernelName:hs,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=D(r,J(n,"float32")),u=ge(e.shape,o);return u.length>0?R(ft(a,u),e.shape):a},b:()=>{let a=D(r,J(e,"float32")),u=ge(n.shape,o);return u.length>0?R(ft(a,u),n.shape):a}}}};var F2={kernelName:pi,gradFunc:r=>({x:()=>Ht(r)})};var O2={kernelName:gs,inputsToSave:["indices"],gradFunc:(r,t)=>{let e=t[0];return{indices:()=>Ne(e.shape,"float32")}}};var P2={kernelName:mi,gradFunc:r=>({x:()=>It(r)})};var L2={kernelName:fi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let{axis:n}=e;return vr(r,n).map(s=>()=>s)}};var x0={kernelName:xs,inputsToSave:["x"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Rt(r,s,n.shape)}}};var M2={kernelName:ys,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(r,t)=>{let[e,n,o]=t,s=e,i=n,a=Pt(s.shape,i.shape);return{a:()=>{let c=J(i,"float32"),p=D(r,D(c,an(s,ct(c,mt(1))))),m=ge(s.shape,a);return m.length>0&&(p=ft(p,m)),R(p,s.shape)},b:()=>{let c=Re(s,0),p=_e(c,Sr(s),It(s)),m=D(r,D(o,p)),f=ge(i.shape,a);return f.length>0&&(m=ft(m,f)),R(m,i.shape)}}}};var z2={kernelName:bs,inputsToSave:["x","alpha"],gradFunc:(r,t)=>{let[e,n]=t,o=Re(e,0);return{x:()=>_e(o,r,D(r,n)),alpha:()=>{let s=_e(o,It(r),D(r,e)),i=ge(n.shape,r.shape);return i.length>0&&(s=ft(s,i)),R(s,n.shape)}}}};function S5(r,t,e){let n=r.shape.slice();n[e]=1;let o=R(t,n),s=Xu(r,e,!0,!1),i=Xu(r,e,!0,!0),a=D(s,i);return D(o,a)}function v5(r,t,e){let n=r.shape.length,o=n-e.length,s=v.getAxesPermutation(e,n),i=r;s!=null&&(i=Ot(r,s));let a=i.shape.slice(),l=a.splice(n-e.length,e.length).reduce((m,f)=>m*f,1);a.push(l);let c=i.reshape(a),p=S5(c,t,o);if(p=p.reshape(i.shape),s!=null){let m=v.getUndoAxesPermutation(s);p=Ot(p,m)}return p}var B2={kernelName:ws,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=[];return o==null?s=n.shape.map((i,a)=>a):typeof o=="number"?s=[o]:s=o,{x:()=>v5(n,r,s)}}};var V2={kernelName:Qo,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=pt(r,J(n,"float32")),u=ge(e.shape,o);return u.length>0?R(ft(a,u),e.shape):a},b:()=>{let a=D(r,J(e,"float32")),u=ge(n.shape,o);u.length>0&&(a=R(ft(a,u),n.shape));let l=Mt(n);return Ht(pt(a,J(l,"float32")))}}}};var G2={kernelName:Pa,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Ht(Mt(e)))}}};var W2={kernelName:vs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t,n=D(Ln(e,6),bo(e));return{x:()=>D(r,J(n,"float32"))}}};var U2={kernelName:Cs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,J(bo(e),"float32"))}}};var H2={kernelName:di,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,e.shape)}}};var q2={kernelName:Ss,inputsToSave:["images"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>k.runKernel(Op,o,e)}}};var K2={kernelName:Is,inputsToSave:["images"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>k.runKernel(Fp,o,e)}}};var j2={kernelName:Ns,gradFunc:(r,t,e)=>{let{dims:n}=e,o=lr(n,r.shape);return{x:()=>pr(r,o)}}};var X2={kernelName:Ts,gradFunc:r=>({x:()=>It(r)})};var Y2={kernelName:ks,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>Ht(pt(r,D(an(e,1.5),2)))}}};var Z2={kernelName:hi,inputsToSave:["condition"],gradFunc:(r,t)=>{let[e]=t;return{condition:()=>J(It(e),"float32"),t:()=>D(r,J(e,r.dtype)),e:()=>D(r,J(eu(e),r.dtype))}}};var J2={kernelName:Ma,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Re(e,mt(0)),o=mt(m0),s=mt(f0),i=D(r,s),a=D(D(r,o),er(J(e,"float32")));return _e(n,i,a)}}}};var Q2={kernelName:_s,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,D(e,ct(mt(1),e)))}}};var t$={kernelName:Ba,gradFunc:r=>({x:()=>It(r)})};var e$={kernelName:Es,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(Jl(J(e,"float32")),r)}}};var r$={kernelName:za,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(rm(J(e,"float32")),r)}}};var n$={kernelName:gi,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{begin:o,size:s}=e,i=n.shape,[a,u]=qv(n,o,s),l=[];for(let c=0;ccn(r,l)}}};var o$={kernelName:Ds,outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{dim:o}=e,s=!0,i=D(r,n);return{logits:()=>ct(i,D(ft(i,[o],s),n))}}};var s$={kernelName:Va,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,Yr(e))}}};var y0={kernelName:xi,gradFunc:(r,t,e)=>{let{blockShape:n,paddings:o}=e;return{x:()=>Zl(r,n,o)}}};var b0={kernelName:yi,gradFunc:(r,t,e)=>{let{axis:n}=e;return{x:()=>ne(r,n)}}};var i$={kernelName:As,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,D(Se(J(e,"float32")),2))}}};var a$={kernelName:zl,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,D(J(e,"float32"),2))}}};var l$={kernelName:Rs,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=mt(2);return{a:()=>D(r,D(o,ct(e,n))),b:()=>D(r,D(o,ct(n,e)))}}};var u$={kernelName:po,gradFunc:r=>({x:()=>It(r)})};var c$={kernelName:Fs,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=r,u=ge(e.shape,o);return u.length>0&&(a=ft(a,u)),R(a,e.shape)},b:()=>{let a=r,u=ge(n.shape,o);return u.length>0&&(a=ft(a,u)),R(Ht(a),n.shape)}}}};var p$={kernelName:$s,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,o=n.shape.slice(),{axis:s}=e;lr(s,n.shape).forEach(l=>{o[l]=1});let a=R(r,o),u=D(a,cr(n.shape,"float32"));return{x:()=>u}}};var m$={kernelName:Os,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Mt(Jl(e)))}}};var f$={kernelName:Ps,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(ct(mt(1),Mt(e)),r)}}};var d$={kernelName:Jn,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{reps:o}=e;return{x:()=>{let i=It(n);if(n.rank===1)for(let a=0;a{let n=e,{perm:o}=n,s=ph(o);return{x:()=>Ot(r,s)}}};var g$={kernelName:bi,gradFunc:(r,t,e)=>{let n=e,{axis:o}=n;return{value:()=>nr(r,o)}}};var x$={kernelName:Wl,inputsToSave:["segmentIds"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>N5(r,e)}}};function N5(r,t){let e=Sn(t,It(t)),n=Li(r,e),o=ln(t,mt(0,"int32")),s=n.rank-o.rank;for(let a=0;a({x:()=>It(r)})};var T5=[by,SA,vA,NA,TA,kA,EA,_A,AA,$A,DA,RA,OA,LA,MA,zA,BA,VA,GA,WA,UA,HA,KA,qA,XA,YA,ZA,JA,QA,t2,V2,e2,r2,n2,o2,s2,a2,i2,l2,p2,m2,f2,d2,h2,g2,x2,y2,b2,w2,I2,g0,g0,S2,N2,k2,E2,_2,A2,$2,D2,R2,F2,O2,P2,L2,x0,x0,M2,z2,B2,G2,W2,U2,H2,q2,K2,j2,X2,Y2,Z2,J2,Q2,t$,e$,r$,n$,o$,s$,y0,y0,b0,b0,i$,l$,a$,u$,c$,p$,m$,f$,d$,h$,g$,x$,y$];for(let r of T5)h1(r);O().prototype.abs=function(){return this.throwIfDisposed(),Ee(this)};O().prototype.acos=function(){return this.throwIfDisposed(),ax(this)};O().prototype.acosh=function(){return this.throwIfDisposed(),lx(this)};O().prototype.add=function(r){return this.throwIfDisposed(),X(this,r)};O().prototype.all=function(r,t){return this.throwIfDisposed(),Zp(this,r,t)};O().prototype.any=function(r,t){return this.throwIfDisposed(),qu(this,r,t)};O().prototype.argMax=function(r){return this.throwIfDisposed(),Ai(this,r)};O().prototype.argMin=function(r){return this.throwIfDisposed(),ux(this,r)};O().prototype.asScalar=function(){return this.throwIfDisposed(),E(this.size===1,()=>"The array must have only 1 element."),R(this,[])};O().prototype.asType=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.as1D=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.as2D=function(r,t){return this.throwIfDisposed(),R(this,[r,t])};O().prototype.as3D=function(r,t,e){return this.throwIfDisposed(),R(this,[r,t,e])};O().prototype.as4D=function(r,t,e,n){return this.throwIfDisposed(),R(this,[r,t,e,n])};O().prototype.as5D=function(r,t,e,n,o){return this.throwIfDisposed(),R(this,[r,t,e,n,o])};O().prototype.asin=function(){return this.throwIfDisposed(),cx(this)};O().prototype.asinh=function(){return this.throwIfDisposed(),px(this)};O().prototype.atan=function(){return this.throwIfDisposed(),mx(this)};O().prototype.atan2=function(r){return this.throwIfDisposed(),fx(this,r)};O().prototype.atanh=function(){return this.throwIfDisposed(),dx(this)};O().prototype.avgPool=function(r,t,e,n){return this.throwIfDisposed(),Yl(this,r,t,e,n)};O().prototype.batchToSpaceND=function(r,t){return this.throwIfDisposed(),Zl(this,r,t)};O().prototype.batchNorm=function(r,t,e,n,o){return this.throwIfDisposed(),Di(this,r,t,e,n,o)};O().prototype.broadcastTo=function(r){return this.throwIfDisposed(),Ri(this,r)};O().prototype.cast=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.ceil=function(){return this.throwIfDisposed(),Cx(this)};O().prototype.clipByValue=function(r,t){return this.throwIfDisposed(),Cr(this,r,t)};O().prototype.concat=function(r,t){return this.throwIfDisposed(),r instanceof Ft&&(r=[r]),ne([this,...r],t)};O().prototype.conv1d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Qp(this,r,t,e,n,o,s)};O().prototype.conv2dTranspose=function(r,t,e,n,o){return this.throwIfDisposed(),em(this,r,t,e,n,o)};O().prototype.conv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),In(this,r,t,e,n,o,s)};O().prototype.cos=function(){return this.throwIfDisposed(),Jl(this)};O().prototype.cosh=function(){return this.throwIfDisposed(),rm(this)};O().prototype.cumprod=function(r,t,e){return this.throwIfDisposed(),Xu(this,r,t,e)};O().prototype.cumsum=function(r,t,e){return this.throwIfDisposed(),nm(this,r,t,e)};O().prototype.depthToSpace=function(r,t){return this.throwIfDisposed(),_x(this,r,t)};O().prototype.depthwiseConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Fi(this,r,t,e,n,o,s)};O().prototype.dilation2d=function(r,t,e,n,o){return this.throwIfDisposed(),Ax(this,r,t,e,n,o)};O().prototype.divNoNan=function(r){return this.throwIfDisposed(),$x(this,r)};O().prototype.div=function(r){return this.throwIfDisposed(),pt(this,r)};O().prototype.dot=function(r){return this.throwIfDisposed(),Dx(this,r)};O().prototype.elu=function(){return this.throwIfDisposed(),Oi(this)};O().prototype.equal=function(r){return this.throwIfDisposed(),$r(this,r)};O().prototype.erf=function(){return this.throwIfDisposed(),Rx(this)};O().prototype.euclideanNorm=function(r,t){return this.throwIfDisposed(),Fx(this,r,t)};O().prototype.exp=function(){return this.throwIfDisposed(),er(this)};O().prototype.expandDims=function(r){return this.throwIfDisposed(),rr(this,r)};O().prototype.expm1=function(){return this.throwIfDisposed(),Ox(this)};O().prototype.fft=function(){return this.throwIfDisposed(),au(this)};O().prototype.flatten=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.floor=function(){return this.throwIfDisposed(),Pi(this)};O().prototype.floorDiv=function(r){return this.throwIfDisposed(),Yp(this,r)};O().prototype.gather=function(r,t){return this.throwIfDisposed(),Li(this,r,t)};O().prototype.greaterEqual=function(r){return this.throwIfDisposed(),ln(this,r)};O().prototype.greater=function(r){return this.throwIfDisposed(),Re(this,r)};O().prototype.ifft=function(){return this.throwIfDisposed(),tl(this)};O().prototype.irfft=function(){return this.throwIfDisposed(),xm(this)};O().prototype.isFinite=function(){return this.throwIfDisposed(),Px(this)};O().prototype.isInf=function(){return this.throwIfDisposed(),Lx(this)};O().prototype.isNaN=function(){return this.throwIfDisposed(),Mx(this)};O().prototype.leakyRelu=function(r){return this.throwIfDisposed(),Ql(this,r)};O().prototype.lessEqual=function(r){return this.throwIfDisposed(),Ln(this,r)};O().prototype.less=function(r){return this.throwIfDisposed(),om(this,r)};O().prototype.localResponseNormalization=function(r,t,e,n){return this.throwIfDisposed(),zx(this,r,t,e,n)};O().prototype.logSigmoid=function(){return this.throwIfDisposed(),Gx(this)};O().prototype.logSoftmax=function(r){return this.throwIfDisposed(),sm(this,r)};O().prototype.logSumExp=function(r,t){return this.throwIfDisposed(),im(this,r,t)};O().prototype.log=function(){return this.throwIfDisposed(),Sr(this)};O().prototype.log1p=function(){return this.throwIfDisposed(),tu(this)};O().prototype.logicalAnd=function(r){return this.throwIfDisposed(),Rr(this,r)};O().prototype.logicalNot=function(){return this.throwIfDisposed(),eu(this)};O().prototype.logicalOr=function(r){return this.throwIfDisposed(),am(this,r)};O().prototype.logicalXor=function(r){return this.throwIfDisposed(),Wx(this,r)};O().prototype.matMul=function(r,t,e){return this.throwIfDisposed(),Lt(this,r,t,e)};O().prototype.maxPool=function(r,t,e,n){return this.throwIfDisposed(),ru(this,r,t,e,n)};O().prototype.max=function(r,t){return this.throwIfDisposed(),Ir(this,r,t)};O().prototype.maximum=function(r){return this.throwIfDisposed(),Sn(this,r)};O().prototype.mean=function(r,t){return this.throwIfDisposed(),ve(this,r,t)};O().prototype.min=function(r,t){return this.throwIfDisposed(),Ja(this,r,t)};O().prototype.minimum=function(r){return this.throwIfDisposed(),Mi(this,r)};O().prototype.mirrorPad=function(r,t){return this.throwIfDisposed(),qx(this,r,t)};O().prototype.mod=function(r){return this.throwIfDisposed(),Kx(this,r)};O().prototype.mul=function(r){return this.throwIfDisposed(),D(this,r)};O().prototype.neg=function(){return this.throwIfDisposed(),Ht(this)};O().prototype.norm=function(r,t,e){return this.throwIfDisposed(),Qa(this,r,t,e)};O().prototype.notEqual=function(r){return this.throwIfDisposed(),Bs(this,r)};O().prototype.oneHot=function(r,t=1,e=0){return this.throwIfDisposed(),Ei(this,r,t,e)};O().prototype.onesLike=function(){return this.throwIfDisposed(),yr(this)};O().prototype.pad=function(r,t){return this.throwIfDisposed(),cn(this,r,t)};O().prototype.pool=function(r,t,e,n,o,s){return this.throwIfDisposed(),jx(this,r,t,e,n,o,s)};O().prototype.pow=function(r){return this.throwIfDisposed(),an(this,r)};O().prototype.prelu=function(r){return this.throwIfDisposed(),ou(this,r)};O().prototype.prod=function(r,t){return this.throwIfDisposed(),Xx(this,r,t)};O().prototype.reciprocal=function(){return this.throwIfDisposed(),ty(this)};O().prototype.relu=function(){return this.throwIfDisposed(),Fr(this)};O().prototype.relu6=function(){return this.throwIfDisposed(),lm(this)};O().prototype.reshapeAs=function(r){return this.throwIfDisposed(),R(this,r.shape)};O().prototype.reshape=function(r){return this.throwIfDisposed(),R(this,r)};O().prototype.resizeBilinear=function(r,t,e){return this.throwIfDisposed(),gy(this,r,t,e)};O().prototype.resizeNearestNeighbor=function(r,t,e){return this.throwIfDisposed(),xy(this,r,t,e)};O().prototype.reverse=function(r){return this.throwIfDisposed(),pr(this,r)};O().prototype.rfft=function(){return this.throwIfDisposed(),lu(this)};O().prototype.round=function(){return this.throwIfDisposed(),um(this)};O().prototype.rsqrt=function(){return this.throwIfDisposed(),cm(this)};O().prototype.selu=function(){return this.throwIfDisposed(),pm(this)};O().prototype.separableConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),mm(this,r,t,e,n,o,s)};O().prototype.sigmoid=function(){return this.throwIfDisposed(),Yr(this)};O().prototype.sign=function(){return this.throwIfDisposed(),ey(this)};O().prototype.sin=function(){return this.throwIfDisposed(),fm(this)};O().prototype.sinh=function(){return this.throwIfDisposed(),dm(this)};O().prototype.slice=function(r,t){return this.throwIfDisposed(),Rt(this,r,t)};O().prototype.softmax=function(r){return this.throwIfDisposed(),iu(this,r)};O().prototype.softplus=function(){return this.throwIfDisposed(),zs(this)};O().prototype.spaceToBatchND=function(r,t){return this.throwIfDisposed(),nu(this,r,t)};O().prototype.split=function(r,t){return this.throwIfDisposed(),mr(this,r,t)};O().prototype.sqrt=function(){return this.throwIfDisposed(),Se(this)};O().prototype.square=function(){return this.throwIfDisposed(),Mt(this)};O().prototype.squaredDifference=function(r){return this.throwIfDisposed(),ym(this,r)};O().prototype.squeeze=function(r){return this.throwIfDisposed(),Mn(this,r)};O().prototype.stack=function(r,t){this.throwIfDisposed();let e=r instanceof Ft?[this,r]:[this,...r];return nr(e,t)};O().prototype.step=function(r){return this.throwIfDisposed(),bo(this,r)};O().prototype.stridedSlice=function(r,t,e,n,o,s,i,a){return this.throwIfDisposed(),ry(this,r,t,e,n,o,s,i,a)};O().prototype.sub=function(r){return this.throwIfDisposed(),ct(this,r)};O().prototype.sum=function(r,t){return this.throwIfDisposed(),ft(this,r,t)};O().prototype.tan=function(){return this.throwIfDisposed(),ny(this)};O().prototype.tanh=function(){return this.throwIfDisposed(),$i(this)};O().prototype.tile=function(r){return this.throwIfDisposed(),Dr(this,r)};O().prototype.toBool=function(){return this.throwIfDisposed(),J(this,"bool")};O().prototype.toFloat=function(){return this.throwIfDisposed(),J(this,"float32")};O().prototype.toInt=function(){return this.throwIfDisposed(),J(this,"int32")};O().prototype.topk=function(r,t){return this.throwIfDisposed(),oy(this,r,t)};O().prototype.transpose=function(r){return this.throwIfDisposed(),Ot(this,r)};O().prototype.unique=function(r){return this.throwIfDisposed(),sy(this,r)};O().prototype.unsortedSegmentSum=function(r,t){return this.throwIfDisposed(),wm(this,r,t)};O().prototype.unstack=function(r){return this.throwIfDisposed(),vr(this,r)};O().prototype.where=function(r,t){return this.throwIfDisposed(),_e(r,this,t)};O().prototype.zerosLike=function(){return this.throwIfDisposed(),It(this)};var vn=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,vn.prototype)}},Hr=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Hr.prototype)}},M=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,M.prototype)}},St=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,St.prototype)}},Im=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Im.prototype)}};var xh=class{constructor(t){this.maxEntries=t||100,this.cache=new Map}get(t){let e;return this.cache.has(t)&&(e=this.cache.get(t),this.cache.delete(t),this.cache.set(t,e)),e}put(t,e){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxEntries){let n=this.cache.keys().next().value;this.cache.delete(n)}this.cache.set(t,e)}getMaxEntries(){return this.maxEntries}setMaxEntries(t){if(t<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${t}.`);if(this.maxEntries>t)for(let e=0;ee.toUpperCase())}var Co={};function Sm(r){if(r==null)return null;let t={};return t.className=r.getClassName(),t.config=r.getConfig(),t}function w0(r){if(!(r==null||typeof r!="object"))if(Array.isArray(r))r.forEach(t=>w0(t));else{let t=Object.keys(r);for(let e of t){let n=r[e];n!=null&&typeof n=="object"&&(!Array.isArray(n)&&n.type==="ndarray"&&typeof n.value=="number"?r[e]=n.value:w0(n))}}}function Gi(r,t={},e={},n="object",o=!1){if(typeof r=="string"){let s=r,i;if(s in e)i=e[s];else if(s in Co)i=Co[s];else if(i=t[s],i==null)throw new M(`Unknown ${n}: ${r}. This may be due to one of the following reasons: 1. The ${n} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. 2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return i}else{let s=r;if(s.className==null||s.config==null)throw new M(`${n}: Improper config format: ${JSON.stringify(s)}. 'className' and 'config' must set.`);let i=s.className,a,u;if(i in e?[a,u]=e[i]:i in Co?[a,u]=Co.className:i in t&&([a,u]=t[i]),a==null)throw new M(`Unknown ${n}: ${i}. This may be due to one of the following reasons: 1. The ${n} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. -2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(u!=null){let l={};for(let f of Object.keys(Co))l[f]=Co[f];for(let f of Object.keys(e))l[f]=e[f];let c=s.config;c.customObjects=l;let p=Object.assign({},Co);for(let f of Object.keys(e))Co[f]=e[f];wv(s.config);let m=u(a,s.config,e,o);return Co=Object.assign({},p),m}else{let l=Object.assign({},Co);for(let p of Object.keys(e))Co[p]=e[p];let c=new a(s.config);return Co=Object.assign({},l),c}}}function k5(r,t){return rt?1:0}function yh(r,t){return-1*k5(r,t)}function vo(r){if(r==null)return r;let t=[];for(let e of r)t.indexOf(e)===-1&&t.push(e);return t}function b$(r){if(r==null)throw new M(`Invalid value in obj: ${JSON.stringify(r)}`);for(let t in r)if(r.hasOwnProperty(t))return!1;return!0}function Wi(r,t,e){if(e!=null&&r.indexOf(e)<0)throw new M(`${e} is not a valid ${t}. Valid values are ${r} or null/undefined.`)}function Cy(r,t,e=0,n=1/0){return ro(e>=0),ro(n>=e),Array.isArray(r)&&r.length>=e&&r.length<=n&&r.every(o=>typeof o===t)}function Ze(r,t){Array.isArray(r)?(y.assert(r.length>0,()=>`${t} is unexpectedly an empty array.`),r.forEach((e,n)=>Ze(e,`element ${n+1} of ${t}`))):y.assert(Number.isInteger(r)&&r>0,()=>`Expected ${t} to be a positive integer, but got ${w$(r)}.`)}function w$(r){return r===null?"null":Array.isArray(r)?"["+r.map(t=>w$(t)).join(",")+"]":typeof r=="string"?`"${r}"`:`${r}`}function C$(r,t,e){let n=e!=null?e():y.now(),o;return(...i)=>{let a=e!=null?e():y.now();return a-n0){let e=`${r}_${t}`;return vm.set(e,1),e}else return r}var A5=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function _$(r){return!!r.match(A5)}function A$(r){return r===parseInt(r.toString(),10)}function No(r,t,e){t==null&&(t=0),e==null&&(e=r.length);let n=1;for(let o=t;ot&&(t=n)}return t}function Zr(r,t){if(t{if(r.shape.length!==2)throw new M(`repeat() expects a rank-2 tensor, but received a rank-${r.shape.length} tensor.`);let e=nl(r,1);return Ey(e,[1,t,1])})}function D$(r){let t=[No(r.shape)];return R(r,t)}function R$(r){if(r.rank<=1)throw new M(`batchFlatten requires a minimum rank of 2. Got rank: ${r.rank}.`);let t=[r.shape[0],No(r.shape,1)];return R(r,t)}function rl(r,t,e){return B(()=>{switch(r.rank){case 1:return hm(r,t,e);case 2:return dh(r,[t,0],[e,r.shape[1]]);case 3:return gm(r,[t,0,0],[e,r.shape[1],r.shape[2]]);case 4:return ec(r,[t,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3]]);case 5:return Rt(r,[t,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4]]);case 6:return Rt(r,[t,0,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4],r.shape[5]]);default:throw new M(`sliceAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}})}function vv(r,t,e){return B(()=>{switch(r.rank){case 1:return hm(r,t,e);case 2:return dh(r,[0,t],[r.shape[0],e]);case 3:return gm(r,[0,0,t],[r.shape[0],r.shape[1],e]);case 4:return ec(r,[0,0,0,t],[r.shape[0],r.shape[1],r.shape[2],e]);default:throw new M(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function wh(r,t,e,n){return B(()=>{switch(r.rank){case 1:return hm(r,t,e);case 2:switch(n){case 1:return rl(r,t,e);case 2:return vv(r,t,e);default:throw new M(`The axis is not within the rank of the tensor ${n}`)}case 3:switch(n){case 1:return rl(r,t,e);case 2:return gm(r,[0,t,0],[r.shape[0],e,r.shape[2]]);case 3:return vv(r,t,e);default:throw new M(`The axis is not within the rank of the tensor ${n}`)}case 4:switch(n){case 1:return rl(r,t,e);case 2:return ec(r,[0,t,0,0],[r.shape[0],e,r.shape[2],r.shape[3]]);case 3:return ec(r,[0,0,t,0],[r.shape[0],r.shape[1],e,r.shape[3]]);case 4:return vv(r,t,e);default:throw new M(`The axis is not within the rank of the tensor ${n}`)}default:throw new M(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function Nm(r,t=-1){let e;return t<0&&(e=r[0].rank,e!==0?t=e:t=0),t===r[0].rank&&(t=-1),ne(r,t)}function Tv(r,t){switch(r.rank){case 1:return Ix([r,t]);case 2:return Sx([r,t],0);case 3:return vx([r,t],0);case 4:return Nx([r,t],0);default:throw new M(`concatAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}}function Ey(r,t){if(Array.isArray(t)||(t=[t]),r.rank!==t.length)throw new M(`The length of input n (${t.length}) does not match the number of dimensions in input x (${r.rank})`);return Dr(r,t)}function Tm(r,t=0,e=1,n,o){return tc(r,t,e,n,o)}function To(r,t,e,n){if(r.rank<2||t.rank<2)throw new St(`dot requires both inputs to be rank >= 2 but got x shape = ${r.shape} and y shape = ${t.shape}`);if(t.rank>=3){let o=r.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(o!==s)throw new St(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${r.shape} and y shape = ${t.shape}`)}if(r.rank===2&&t.rank===2)return uu.matMul({a:r,b:t,transposeA:!1,transposeB:!1,bias:n?Nv(r.rank,n,mn()):null,activation:e});{let o=r.shape.slice(),s=o.pop();r=R(r,[-1,s]);let i=t.shape.slice(),a=i.pop(),u=i.pop(),l=[...i,a],c=Array.from({length:t.rank},(d,h)=>h===0?t.rank-2:h<=t.rank-2?h-1:h);t=R(Ot(t,c),[u,-1]);let p=[...o,...l],m=!1,f=!1;return R(uu.matMul({a:r,b:t,transposeA:m,transposeB:f,bias:n?Nv(r.rank,n,mn()):null,activation:e}),p)}}function _y(r,t,e){return B(()=>(Array.isArray(t)?t=Me(t,"int32"):t=J(t,"int32"),Li(r,t,e)))}function lc(r){return D(r,r)}function Nv(r,t,e){let n=t.shape;if(t.rank!==1&&t.rank!==r)throw new M(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${r}`);if(r===5){if(e==="channelsFirst")return n.length===1?R(t,[1,n[0],1,1,1]):R(t,[1,n[3],n[0],n[1],n[2]]);if(e==="channelsLast")return n.length===1?R(t,[1,1,1,1,n[0]]):R(t,[1].concat(n))}else if(r===4){if(e==="channelsFirst")return n.length===1?R(t,[1,n[0],1,1]):R(t,[1,n[2],n[0],n[1]]);if(e==="channelsLast")return n.length===1?R(t,[1,1,1,n[0]]):R(t,[1].concat(n))}else if(r===3){if(e==="channelsFirst")return n.length===1?R(t,[1,n[0],1]):R(t,[1,n[1],n[0]]);if(e==="channelsLast")return n.length===1?R(t,[1,1,n[0]]):R(t,[1].concat(n))}else if(r<3)return t;throw new M(`Unsupported input rank by biasAdd: ${t.rank}`)}function fn(r,t,e){return B(()=>(e==null&&(e=mn()),Fe(e),X(r,Nv(r.rank,t,e))))}function F$(r,t=1){if(t!==1)throw new St(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Oi(r)}function O$(r){return B(()=>pt(r,X(Ee(r),1)))}function Ay(r,t,e,n){return B(()=>lv(r,t,e,n))}function P$(r){return B(()=>{let t=X(.5,D(.2,r));return Cr(t,0,1)})}function xu(r,t,e=!1){return e?r():t()}var L$=["fanIn","fanOut","fanAvg"],M$=["normal","uniform","truncatedNormal"];function $5(r){Wi(L$,"FanMode",r)}function D5(r){Wi(M$,"Distribution",r)}var dn=class extends Q.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},km=class extends dn{apply(t,e){return Ne(t,e)}};km.className="Zeros";Q.registerClass(km);var yu=class extends dn{apply(t,e){return cr(t,e)}};yu.className="Ones";Q.registerClass(yu);var Em=class extends dn{constructor(t){if(super(),typeof t!="object")throw new M(`Expected argument of type ConstantConfig but got ${t}`);if(t.value===void 0)throw new M(`config must have value set but got ${t}`);this.value=t.value}apply(t,e){return B(()=>D(mt(this.value),cr(t,e)))}getConfig(){return{value:this.value}}};Em.className="Constant";Q.registerClass(Em);var _m=class extends dn{constructor(t){super(),this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=t.minval||this.DEFAULT_MINVAL,this.maxval=t.maxval||this.DEFAULT_MAXVAL,this.seed=t.seed}apply(t,e){return zi(t,this.minval,this.maxval,e)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};_m.className="RandomUniform";Q.registerClass(_m);var Am=class extends dn{constructor(t){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=t.mean||this.DEFAULT_MEAN,this.stddev=t.stddev||this.DEFAULT_STDDEV,this.seed=t.seed}apply(t,e){if(e=e||"float32",e!=="float32"&&e!=="int32")throw new St(`randomNormal does not support dType ${e}.`);return Tm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Am.className="RandomNormal";Q.registerClass(Am);var $m=class extends dn{constructor(t){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=t.mean||this.DEFAULT_MEAN,this.stddev=t.stddev||this.DEFAULT_STDDEV,this.seed=t.seed}apply(t,e){if(e=e||"float32",e!=="float32"&&e!=="int32")throw new St(`truncatedNormal does not support dType ${e}.`);return bm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};$m.className="TruncatedNormal";Q.registerClass($m);var Dm=class extends dn{constructor(t){super(),this.gain=t.gain!=null?t.gain:1}apply(t,e){return B(()=>{if(t.length!==2||t[0]!==t[1])throw new M("Identity matrix initializer can only be used for 2D square matrices.");return D(this.gain,Yu(t[0]))})}getConfig(){return{gain:this.gain}}};Dm.className="Identity";Q.registerClass(Dm);function R5(r,t="channelsLast"){let e,n;if(Fe(t),r.length===2)e=r[0],n=r[1];else if([3,4,5].indexOf(r.length)!==-1){if(t==="channelsFirst"){let o=No(r,2);e=r[1]*o,n=r[0]*o}else if(t==="channelsLast"){let o=No(r,0,r.length-2);e=r[r.length-2]*o,n=r[r.length-1]*o}}else{let o=No(r);e=Math.sqrt(o),n=Math.sqrt(o)}return[e,n]}var qr=class extends dn{constructor(t){if(super(),t.scale<0)throw new M(`scale must be a positive float. Got: ${t.scale}`);this.scale=t.scale==null?1:t.scale,this.mode=t.mode==null?"fanIn":t.mode,$5(this.mode),this.distribution=t.distribution==null?"normal":t.distribution,D5(this.distribution),this.seed=t.seed}apply(t,e){let n=R5(t),o=n[0],s=n[1],i=this.scale;if(this.mode==="fanIn"?i/=Math.max(1,o):this.mode==="fanOut"?i/=Math.max(1,s):i/=Math.max(1,(o+s)/2),this.distribution==="normal"){let a=Math.sqrt(i);if(e=e||"float32",e!=="float32"&&e!=="int32")throw new St(`${this.getClassName()} does not support dType ${e}.`);return bm(t,0,a,e,this.seed)}else{let a=Math.sqrt(3*i);return zi(t,-a,a,e)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};qr.className="VarianceScaling";Q.registerClass(qr);var uc=class extends qr{constructor(t){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return qr.className}};uc.className="GlorotUniform";Q.registerClass(uc);var cc=class extends qr{constructor(t){super({scale:1,mode:"fanAvg",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return qr.className}};cc.className="GlorotNormal";Q.registerClass(cc);var pc=class extends qr{constructor(t){super({scale:2,mode:"fanIn",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return qr.className}};pc.className="HeNormal";Q.registerClass(pc);var mc=class extends qr{constructor(t){super({scale:2,mode:"fanIn",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return qr.className}};mc.className="HeUniform";Q.registerClass(mc);var fc=class extends qr{constructor(t){super({scale:1,mode:"fanIn",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return qr.className}};fc.className="LeCunNormal";Q.registerClass(fc);var dc=class extends qr{constructor(t){super({scale:1,mode:"fanIn",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return qr.className}};dc.className="LeCunNormal";Q.registerClass(dc);var Rm=class extends dn{constructor(t){if(super(),this.DEFAULT_GAIN=1,this.gain=t.gain==null?this.DEFAULT_GAIN:t.gain,this.seed=t.seed,this.seed!=null)throw new St("Random seed is not implemented for Orthogonal Initializer yet.")}apply(t,e){return B(()=>{if(t.length<2)throw new St("Shape must be at least 2D.");t[0]*t[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${t[0]*t[1]}) elements: Slowness may result.`);let n=t[0]>t[1]?[t[1],t[0]]:t,o=Tm(n,0,1,"float32"),s=pv.gramSchmidt(o);return t[0]>t[1]&&(s=Ot(s)),D(this.gain,s)})}getConfig(){return{gain:this.gain,seed:this.seed}}};Rm.className="Orthogonal";Q.registerClass(Rm);var z$={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 B$(r,t={}){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,"initializer")}function Te(r){return Sm(r)}function de(r){if(typeof r=="string"){let t=r in z$?z$[r]:r;if(t==="GlorotNormal")return new cc;if(t==="GlorotUniform")return new uc;if(t==="HeNormal")return new pc;if(t==="HeUniform")return new mc;if(t==="LeCunNormal")return new fc;if(t==="LeCunUniform")return new dc;{let e={};return e.className=t,e.config={},B$(e)}}else return r instanceof dn?r:B$(r)}function $y(r){return Array.isArray(r)&&Array.isArray(r[0])}function Fm(r){return r.length===0?[]:Array.isArray(r[0])?r:[r]}function Nt(r){let t;if(Array.isArray(r)){if(r.length!==1)throw new M(`Expected Tensor length to be 1; got ${r.length}`);t=r[0]}else t=r;return t}function Bt(r){if(Array.isArray(r)&&Array.isArray(r[0])){if(r.length===1)return r=r,r[0];throw new M(`Expected exactly 1 Shape; got ${r.length}`)}else return r}function Om(r){let t=0;for(let e of r)e.shape.length===0?t+=1:t+=e.shape.reduce((n,o)=>n*o);return t}var G$="Variable",Ch=class{constructor(t,e="float32",n=G$,o=!0,s=null){this.dtype=e==null?"float32":e,this.shape=t.shape,this.id=vy(),n=n==null?G$:n,this.originalName=Ny(n),this.name=Ty(this.originalName),this.trainable_=o,this.constraint=s,this.val=iy(t,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(t){return this.assertNotDisposed(),O5(this.val,t),this.val.id!==t.id&&(this.val.assign(t),this.constraint!=null&&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(t){this.trainable_=t,this.val.trainable=t}};function O5(r,t){if(r.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(r.shape)+" vs. "+JSON.stringify(t.shape))}function Ih(r){return r.map(t=>t.read())}function Pm(r){r.forEach(t=>{t[0].write(t[1])})}var ye=class{constructor(t){this.dtype=t.dtype,this.shape=t.shape,t.shape!=null?this.ndim=t.shape.length:this.ndim=t.ndim,this.maxNDim=t.maxNDim,this.minNDim=t.minNDim,this.axes=t.axes||{}}},Jr=class{constructor(t,e,n,o,s,i,a){this.dtype=t,this.shape=e,this.sourceLayer=n,this.inputs=o,this.callArgs=s,this.outputTensorIndex=a,this.id=vy(),i!=null&&(this.originalName=Ny(i),this.name=Ty(this.originalName)),this.rank=e.length}},P5=0,ol=class{constructor(t,e){this.callArgs=e,this.id=P5++,this.outboundLayer=t.outboundLayer,this.inboundLayers=t.inboundLayers,this.nodeIndices=t.nodeIndices,this.tensorIndices=t.tensorIndices,this.inputTensors=t.inputTensors,this.outputTensors=t.outputTensors,this.inputMasks=t.inputMasks,this.outputMasks=t.outputMasks,this.inputShapes=t.inputShapes,this.outputShapes=t.outputShapes;for(let n of t.inboundLayers)n!=null&&n.outboundNodes.push(this);t.outboundLayer.inboundNodes.push(this)}getConfig(){let t=[];for(let e of this.inboundLayers)e!=null?t.push(e.name):t.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:t,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},L5=0,$t=class extends Q.Serializable{constructor(t={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=L5++,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 e=t.name;if(!e){let n=this.getClassName();e=So(n)+"_"+gu(n)}if(this.name=e,this.trainable_=t.trainable==null?!0:t.trainable,t.inputShape!=null||t.batchInputShape!=null){let n;if(t.batchInputShape!=null)n=t.batchInputShape;else if(t.inputShape!=null){let s=null;t.batchSize!=null&&(s=t.batchSize),n=[s].concat(t.inputShape)}this.batchInputShape=n;let o=t.dtype;o==null&&(o=t.inputDType),o==null&&(o="float32"),this.dtype=o}t.weights!=null?this.initialWeights=t.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(t,e){return t.name+"_ib-"+e.toString()}getNodeAtIndex(t,e){if(this.inboundNodes.length===0)throw new Hr(`The layer has never been called and thus has no defined ${e}.`);if(this.inboundNodes.length<=t)throw new M(`Asked to get ${e} at node ${t}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[t]}getInputAt(t){return Nr(this.getNodeAtIndex(t,"input").inputTensors)}getOutputAt(t){return Nr(this.getNodeAtIndex(t,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new vn(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new vn(`Layer ${this.name} is not connected, no input to return.`);return Nr(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new vn(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new vn(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return Nr(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(t=>t())}get updates(){return this._updates}get built(){return this._built}set built(t){this._built=t}get trainable(){return this.trainable_}set trainable(t){this._trainableWeights.forEach(e=>e.trainable=t),this.trainable_=t}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(t=>t.trainable):[]}set trainableWeights(t){this._trainableWeights=t}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(t=>!t.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(t){this._nonTrainableWeights=t}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(t){if(t=xe(t),this.inputSpec==null||this.inputSpec.length===0)return;let e=xe(this.inputSpec);if(t.length!==e.length)throw new M(`Layer ${this.name} expects ${e.length} inputs, but it received ${t.length} input tensors. Input received: ${t}`);for(let n=0;ns.maxNDim)throw new M(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${s.maxNDim}, found ndim=${i}`);if(s.minNDim!=null&&i=0?a[l]:a[a.length+l];if(c!=null&&[c,null].indexOf(p)===-1)throw new M(`Input ${n} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${c} but got shape ${a}.`)}}if(s.shape!=null)for(let a=0;a{if(!this.built){this.assertInputCompatibility(t);let i=[];for(let a of xe(t))i.push(a.shape);this.build(Nr(i)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&s&&(this._refCount=1)}if(this.assertInputCompatibility(t),s){let i=this.call(t,e),a=xe(i),u=[];for(let l of a)n.indexOf(l)!==-1&&(l=l.clone()),u.push(l);if(i=Nr(u),this.activityRegularizer!=null)throw new St("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return i}else{let i=M5(t),a=this.computeOutputShape(i),u,l=z5(t);if(this.warnOnIncompatibleInputShape(Array.isArray(t)?i[0]:i),a!=null&&a.length>0&&Array.isArray(a[0])?u=a.map((c,p)=>new Jr(l,c,this,xe(t),e,this.name,p)):u=new Jr(l,a,this,xe(t),e,this.name),this.addInboundNode(t,u,null,null,i,a,e),this._refCount++,this.activityRegularizer!=null)throw new St("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return u}})}warnOnIncompatibleInputShape(t){if(this.batchInputShape!=null)if(t.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(t)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let e=!1;this.batchInputShape.forEach((n,o)=>{n!=null&&t[o]!=null&&t[o]!==n&&(e=!0)}),e&&console.warn(`The shape of the input tensor (${JSON.stringify(t)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new vn(`The layer ${this.name} has never been called and thus has no defined output shape.`);let t=[];for(let e of this.inboundNodes){let n=JSON.stringify(e.outputShapes);t.indexOf(n)===-1&&t.push(n)}if(t.length===1){let e=this.inboundNodes[0].outputShapes;return Array.isArray(e)&&Array.isArray(e[0])&&e.length===1?e[0]:e}else throw new vn(`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 Hr(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Om(this.weights)}build(t){this.built=!0}getWeights(t=!1){return Ih(t?this.trainableWeights:this.weights)}setWeights(t){B(()=>{let e=this.weights;if(e.length!==t.length)throw new M(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${t.length}, but the layer was expecting ${e.length} weights. Provided weights: ${t}...`);if(e.length===0)return;let n=[],o=Ih(e);for(let s=0;ss.apply(c.read())),i==null&&(i=!0),i?this._trainableWeights.push(c):this._nonTrainableWeights.push(c),c}setFastWeightInitDuringBuild(t){this.fastWeightInitDuringBuild=t}addLoss(t){t==null||Array.isArray(t)&&t.length===0||(t=xe(t),this._losses!==void 0&&this._losses!==null&&this.losses.push(...t))}computeOutputShape(t){return t}computeMask(t,e){if(!this.supportsMasking){if(e!=null)if(Array.isArray(e))e.forEach(n=>{if(n!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return e}addInboundNode(t,e,n,o,s,i,a=null){let u=xe(t);e=xe(e),n=xe(n),o=xe(o),s=Fm(s),i=Fm(i);let l=[],c=[],p=[];for(let m of u)l.push(m.sourceLayer),c.push(m.nodeIndex),p.push(m.tensorIndex);new ol({outboundLayer:this,inboundLayers:l,nodeIndices:c,tensorIndices:p,inputTensors:u,outputTensors:e,inputMasks:n,outputMasks:o,inputShapes:s,outputShapes:i},a);for(let m=0;mt.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)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(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let t=0;return--this._refCount===0&&(t=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:t}}};function M5(r){r=xe(r);let t=[];for(let e of r)t.push(e.shape);return Nr(t)}function z5(r){return"float32"}function kv(r,t,e){if((t==null||e!=null&&e>0)&&(t=r.sourceLayer,e=r.nodeIndex),t.inboundNodes.length===0)return[r];{let n=t.inboundNodes[e];if(n.inboundLayers.length===0)return n.inputTensors;{let o=[];for(let s=0;sd.name),u=[],l=t.names();for(let d of a)l.indexOf(d)!==-1?u.push(t.getValue(d)):u.push(null);n!=null&&(n.maxNumTensors=-1/0,n.minNumTensors=1/0);let c=a.join(",")+"|"+t.names().sort().join(","),p=Ry.get(c),m;if(p==null){let d=V5(i,t);p=d.sorted,m=d.recipientCounts,Ry.put(c,p),Fy.put(c,m)}m={},o||Object.assign(m,Fy.get(c));let f=new ko(t);for(let d=0;dn.maxNumTensors&&(n.maxNumTensors=F),F0,()=>"Expected at least one fetch, got none");let e=[],n={};if(r.length===1){let o=W$(r[0],t);e=o.sorted,n=o.recipientMap}else{let o=new Set;for(let s of r){let{sorted:i,recipientMap:a}=W$(s,t);for(let u of i)o.has(u.name)||(e.push(u),o.add(u.name));for(let u in a)n[u]==null&&(n[u]=new Set),a[u].forEach(l=>n[u].add(l))}}return{sorted:e,recipientCounts:G5(n)}}function G5(r){let t={};for(let e in r)t[e]=r[e].size;return t}function W$(r,t){let e=new Set,n=[],o={};for(let a of t.names())e.add(a);let s=[],i=[];for(s.push(r);s.length>0;){let a=s[s.length-1];if(e.has(a.name)){s.pop();continue}let u=i[i.length-1]===s.length-1;if(a.inputs.length===0||u)s.pop(),n.push(a),e.add(a.name),u&&i.pop();else{i.push(s.length-1);for(let l of a.inputs)o[l.name]==null&&(o[l.name]=new Set),o[l.name].add(a.name),!e.has(l.name)&&s.push(l)}}return{sorted:n,recipientMap:o}}function W5(r){let t;if(r.sourceLayer.inboundNodes.length===1)t=r.sourceLayer.output;else{let e=null;for(let n=0;n100,U$);var K$={};Wt(K$,{maxNorm:()=>H5,minMaxNorm:()=>j5,nonNeg:()=>K5,unitNorm:()=>q5});function Ev(r,t){return B(()=>Se(ft(D(r,r),t,!0)))}var gc=class extends Q.Serializable{getConfig(){return{}}},Lm=class extends gc{constructor(t){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=t.maxValue!=null?t.maxValue:this.defaultMaxValue,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>{let e=Ev(t,this.axis),n=Cr(e,0,this.maxValue);return D(t,pt(n,X(ir(),e)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};Lm.className="MaxNorm";Q.registerClass(Lm);var Mm=class extends gc{constructor(t){super(),this.defaultAxis=0,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>pt(t,X(ir(),Ev(t,this.axis))))}getConfig(){return{axis:this.axis}}};Mm.className="UnitNorm";Q.registerClass(Mm);var zm=class extends gc{apply(t){return Fr(t)}};zm.className="NonNeg";Q.registerClass(zm);var Bm=class extends gc{constructor(t){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=t.minValue!=null?t.minValue:this.defaultMinValue,this.maxValue=t.maxValue!=null?t.maxValue:this.defaultMaxValue,this.rate=t.rate!=null?t.rate:this.defaultRate,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>{let e=Ev(t,this.axis),n=X(D(this.rate,Cr(e,this.minValue,this.maxValue)),D(1-this.rate,e));return D(t,pt(n,X(ir(),e)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};Bm.className="MinMaxNorm";Q.registerClass(Bm);var H$={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function ze(r){return Sm(r)}function q$(r,t={}){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,"constraint")}function Be(r){if(r==null)return null;if(typeof r=="string"){let e={className:r in H$?H$[r]:r,config:{}};return q$(e)}else return r instanceof gc?r:q$(r)}function H5(r){return new Lm(r)}function q5(r){return new Mm(r)}function K5(){return new zm}function j5(r){return new Bm(r)}var j$={};Wt(j$,{constant:()=>Z5,glorotNormal:()=>o8,glorotUniform:()=>n8,heNormal:()=>s8,heUniform:()=>i8,identity:()=>e8,leCunNormal:()=>a8,leCunUniform:()=>l8,ones:()=>Y5,orthogonal:()=>u8,randomNormal:()=>Q5,randomUniform:()=>J5,truncatedNormal:()=>t8,varianceScaling:()=>r8,zeros:()=>X5});function X5(){return new km}function Y5(){return new yu}function Z5(r){return new Em(r)}function J5(r){return new _m(r)}function Q5(r){return new Am(r)}function t8(r){return new $m(r)}function e8(r){return new Dm(r)}function r8(r){return new qr(r)}function n8(r){return new uc(r)}function o8(r){return new cc(r)}function s8(r){return new pc(r)}function i8(r){return new mc(r)}function a8(r){return new fc(r)}function l8(r){return new dc(r)}function u8(r){return new Rm(r)}var ED={};Wt(ED,{Layer:()=>$t,RNN:()=>Tn,RNNCell:()=>ll,activation:()=>NY,add:()=>FY,alphaDropout:()=>xZ,average:()=>OY,averagePooling1d:()=>Gv,averagePooling2d:()=>Wv,averagePooling3d:()=>Uv,avgPool1d:()=>UY,avgPool2d:()=>qY,avgPool3d:()=>jY,avgPooling1d:()=>HY,avgPooling2d:()=>KY,avgPooling3d:()=>XY,batchNormalization:()=>VY,bidirectional:()=>uZ,categoryEncoding:()=>CZ,concatenate:()=>PY,conv1d:()=>gY,conv2d:()=>xY,conv2dTranspose:()=>yY,conv3d:()=>bY,conv3dTranspose:()=>wY,convLstm2d:()=>sZ,convLstm2dCell:()=>iZ,cropping2D:()=>IY,dense:()=>TY,depthwiseConv2d:()=>vY,dot:()=>BY,dropout:()=>kY,elu:()=>cY,embedding:()=>RY,flatten:()=>_Y,gaussianDropout:()=>gZ,gaussianNoise:()=>hZ,globalAveragePooling1d:()=>YY,globalAveragePooling2d:()=>ZY,globalMaxPool1d:()=>pZ,globalMaxPool2d:()=>mZ,globalMaxPooling1d:()=>vD,globalMaxPooling2d:()=>ND,gru:()=>QY,gruCell:()=>tZ,input:()=>Pv,inputLayer:()=>uY,layerNormalization:()=>GY,leakyReLU:()=>mY,lstm:()=>eZ,lstmCell:()=>rZ,masking:()=>yZ,maxPool1d:()=>fZ,maxPool2d:()=>dZ,maxPooling1d:()=>TD,maxPooling2d:()=>kD,maxPooling3d:()=>JY,maximum:()=>LY,minimum:()=>MY,multiply:()=>zY,permute:()=>DY,prelu:()=>fY,reLU:()=>pY,repeatVector:()=>AY,rescaling:()=>bZ,reshape:()=>$Y,resizing:()=>wZ,rnn:()=>aZ,separableConv2d:()=>CY,simpleRNN:()=>nZ,simpleRNNCell:()=>oZ,softmax:()=>dY,spatialDropout1d:()=>EY,stackedRNNCells:()=>lZ,thresholdedReLU:()=>hY,timeDistributed:()=>cZ,upSampling2d:()=>SY,zeroPadding2d:()=>WY});async function Ui(r){if(r==null)return;let t=[],e=[],n=[];for(let o in r){let s=r[o];if(typeof s!="number"){let i=s;t.push(i.data()),e.push(o),n.push(i)}}if(t.length>0){let o=await Promise.all(t);for(let s=0;sX(this.totals[o],D(s,n)));this.totals[o]=a,i!=null&&i.dispose()}}}async onEpochEnd(t,e){if(e!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]=="number"?e[n]=this.totals[n]/this.seen:B(()=>{let o=D(pt(1,this.seen),this.totals[n]);e[n]=o,this.totals[n].dispose(),De(e[n])}))}},Ly=class extends sl{async onTrainBegin(t){this.epoch=[],this.history={}}async onEpochEnd(t,e){e==null&&(e={}),this.epoch.push(t);for(let n in e)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(e[n])}async syncData(){let t=[],e=[],n=[];for(let s in this.history){let i=this.history[s];for(let a=0;anew My(n,t))}var hn=class{constructor(){}static registerCallbackConstructor(t,e){y.assert(t>=0&&Number.isInteger(t),()=>`Verbosity level is expected to be an integer >= 0, but got ${t}`),hn.checkForDuplicate(e),hn.constructors[t]==null&&(hn.constructors[t]=[]),hn.constructors[t].push(e)}static checkForDuplicate(t){for(let e in hn.constructors)hn.constructors[+e].forEach(o=>{if(o===t)throw new M("Duplicate callback constructor.")})}static clear(){hn.constructors={}}static createCallbacks(t){let e=[];for(let n in hn.constructors){let o=+n;t>=o&&e.push(...hn.constructors[o])}return e.map(n=>new n)}};hn.constructors={};function By(r,t,e,n,o,s,i,a,u){let l=new Ly,c=[new _v,...hn.createCallbacks(t)];r!=null&&c.push(...r),c.push(l);let p=new Py(c);return p.setParams({epochs:e,initialEpoch:n,samples:o,steps:s,batchSize:i,verbose:t,doValidation:a,metrics:u}),{callbackList:p,history:l}}function gn(r,t={},e=!1){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,"layer",e)}function Sh(r,t){return B(()=>{r.dtype!=="float32"&&(r=J(r,"float32"));let e=ft(lc(r),t,!0),n=xo(e.shape,ir()),o=Se(Sn(e,n));return pt(r,o)})}function Hi(r,t){return B(()=>ve(lc(ct(t,r)),-1))}function Vm(r,t){return B(()=>ve(Ee(ct(t,r)),-1))}function bu(r,t){return B(()=>{let e=ct(r,t),n=Cr(Ee(r),ir(),Number.MAX_VALUE),o=Ee(pt(e,n));return D(100,ve(o,-1))})}function p8(r,t){return B(()=>{let e=Cr(t,ir(),Number.MAX_VALUE),n=Sr(X(1,e)),o=Cr(r,ir(),Number.MAX_VALUE),s=Sr(X(1,o));return ve(lc(ct(n,s)),-1)})}function m8(r,t){return B(()=>{let e=Sn(0,ct(1,D(r,t)));return ve(lc(e),-1)})}function f8(r,t){return B(()=>{let e=Sn(0,ct(1,D(r,t)));return ve(e,-1)})}function d8(r,t){return B(()=>{let e=ft(D(r,t),-1),n=Ir(D(ct(1,r),t),-1);return Sn(0,X(1,ct(n,e)))})}function h8(r,t){return B(()=>{let e=Math.log(2),n=ct(t,r),o=ct(X(n,zs(D(-2,n))),e);return ve(o,-1)})}function xc(r,t,e=!1){return B(()=>{if(e)t=iu(t);else{let n=ft(t,t.shape.length-1,!0);t=pt(t,n)}return t=Cr(t,ir(),1-ir()),Ht(ft(D(J(r,"float32"),Sr(t)),t.shape.length-1))})}function Gm(r,t,e=!1){return B(()=>{let n=J(Pi(D$(r)),"int32");t=Cr(t,ir(),1-ir());let o=t.shape,s=R(Ei(n,o[o.length-1]),o);return xc(s,t,e)})}function g8(r,t){if(!y.arraysEqual(r.shape,t.shape))throw new M(`logits and labels must have the same shape, but got shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);return B(()=>{let e=Fr(t),n=Ht(Ee(t));return X(ct(e,D(t,r)),tu(er(n)))})}function Wm(r,t){return B(()=>{let e;return e=Cr(t,ir(),1-ir()),e=Sr(pt(e,ct(1,e))),ve(g8(r,e),-1)})}function x8(r,t){return B(()=>{let e=Cr(r,ir(),1),n=Cr(t,ir(),1);return ft(D(r,Sr(pt(e,n))),-1)})}function y8(r,t){return B(()=>{let e=Sr(X(ir(),t));return ve(ct(t,D(r,e)),-1)})}function Nh(r,t){return B(()=>{let e=Sh(r,-1),n=Sh(t,-1),o=D(e,n);return Ht(ft(o,-1))})}var vh={meanSquaredError:Hi,meanAbsoluteError:Vm,meanAbsolutePercentageError:bu,meanSquaredLogarithmicError:p8,squaredHinge:m8,hinge:f8,categoricalHinge:d8,logcosh:h8,categoricalCrossentropy:xc,sparseCategoricalCrossentropy:Gm,binaryCrossentropy:Wm,kullbackLeiblerDivergence:x8,poisson:y8,cosineProximity:Nh};function Vy(r){if(typeof r=="string"){if(r in vh)return vh[r];let t=`Unknown loss ${r}`;throw r.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${r}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new M(t)}else return r}function Th(r,t){return B(()=>{let e=D(.5,yr(t)),n=no(Re(t,e),r.dtype);return ve($r(r,n),-1)})}function kh(r,t){return B(()=>no($r(Ai(r,-1),Ai(t,-1)),"float32"))}function Z$(r,t){return B(()=>J(ft(Rr($r(r,1),$r(t,1))),"float32"))}function b8(r,t){return B(()=>J(ft(Rr($r(r,1),$r(t,0))),"float32"))}function w8(r,t){return B(()=>J(ft(Rr($r(r,0),$r(t,1))),"float32"))}function Av(r,t){return B(()=>{let e=Z$(r,t),n=w8(r,t),o=X(e,n);return J(_e(Re(o,0),pt(e,o),0),"float32")})}function J$(r,t){return B(()=>{let e=Z$(r,t),n=b8(r,t),o=X(e,n);return J(_e(Re(o,0),pt(e,o),0),"float32")})}function Wy(r,t){return Wm(r,t)}function Uy(r,t){return r.rank===t.rank&&(r=Mn(r,[r.rank-1])),t=Ai(t,-1),t.dtype!==r.dtype&&(t=J(t,r.dtype)),J($r(r,t),"float32")}var C8=Hi,I8=Hi,S8=Vm,v8=Vm,N8=bu,T8=bu,Eh=xc,k8=Nh,$v=Gm,Gy={binaryAccuracy:Th,categoricalAccuracy:kh,precision:Av,categoricalCrossentropy:Eh,sparseCategoricalCrossentropy:$v,mse:C8,MSE:I8,mae:S8,MAE:v8,mape:N8,MAPE:T8,cosine:k8};function Q$(r){if(typeof r=="string"&&r in Gy)return Gy[r];if(typeof r!="string"&&r!=null)return r;throw new M(`Unknown metric ${r}`)}function _h(r){if(ro(r!==null,`Unknown LossOrMetricFn ${r}`),typeof r=="string")return r;{let t;for(let e of Object.keys(vh))if(vh[e]===r){t=e;break}if(t!==void 0)return t;for(let e of Object.keys(Gy))if(Gy[e]===r){t=e;break}return t!==void 0?t:r.name}}function eD(r){let t={Adagrad:()=>ic.adagrad(.01),Adadelta:()=>ic.adadelta(1,.95,ir()),Adam:()=>ic.adam(.001,.9,.999,ir()),Adamax:()=>ic.adamax(.002,.9,.999,ir(),0),RMSProp:()=>ic.rmsprop(.001,.9,0,ir()),SGD:()=>ic.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,r in t)return t[r]();throw new M(`Unknown Optimizer ${r}`)}function Rv(r,t,e=!1){if(r==null||typeof r!="object"||Object.getPrototypeOf(r)!==Object.prototype||!Dv(r))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(e){let n=JSON.stringify(r);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 Dv(r){if(r===null)return!0;if(typeof r=="object")if(Object.getPrototypeOf(r)===Object.prototype){let t=Object.keys(r);for(let e of t)if(typeof e!="string"||!Dv(r[e]))return!1;return!0}else if(Array.isArray(r)){for(let t of r)if(!Dv(t))return!1;return!0}else return!1;else{let t=typeof r;return t==="string"||t==="number"||t==="boolean"}}function rD(r,t,e,n=console.log){let o=A8(r),s=["Layer (type)","Input Shape","Output shape","Param #"];o?(t=t||90,e=e||[.32,.61,.89,1]):(t=t||115,e=e||[.24,.48,.7,.8,1]),e[e.length-1]<=1&&(e=e.map(c=>Math.floor(t*c)));let i;if(!o){s.push("Receives inputs"),i=[];for(let c in r.nodesByDepth)i.push(...r.nodesByDepth[c])}n("_".repeat(t)),Hy(s,e,n),n("=".repeat(t));let a=r.layers;for(let c=0;c1||o.length===1&&o[0].inboundLayers.length>1){t=!1;break}n.push(...o)}if(t)for(let o of r.layers){let s=!1;for(let i of o.inboundNodes)if(n.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function Hy(r,t,e=console.log){let n="";for(let o=0;o0&&(n=n.slice(0,n.length-1)+" "),n+=r[o],n=n.slice(0,t[o]),n+=" ".repeat(t[o]-n.length);e(n)}function $8(r,t,e){let n,o;try{o=r.inboundNodes.map(u=>JSON.stringify(u.inputShapes)).join(",")}catch(u){o="multiple"}try{n=JSON.stringify(r.outputShape)}catch(u){n="multiple"}let s=r.name,i=r.getClassName(),a=[`${s} (${i})`,o,n,r.countParams().toString()];Hy(a,t,e)}function D8(r,t,e,n){let o,s;try{s=r.inboundNodes.map(p=>JSON.stringify(p.inputShapes)).join(",")}catch(p){s="multiple"}try{o=JSON.stringify(r.outputShape)}catch(p){o="multiple"}let i=[];for(let p of r.inboundNodes)if(!(e!=null&&e.length>0&&e.indexOf(p)===-1))for(let m=0;mb.name)}`);vo(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(b=>b.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let b of this.outputs){let w=b.sourceLayer,C=b.nodeIndex,N=b.tensorIndex;this.outputLayers.push(w),this.outputLayersNodeIndices.push(C),this.outputLayersTensorIndices.push(N)}for(let b of this.inputs){let w=b.sourceLayer,C=b.nodeIndex,N=b.tensorIndex;ro(C===0,"input layer has >1 nodes"),ro(N===0,"input layer has >1 tensors"),this.inputLayers.push(w),this.inputLayersNodeIndices.push(C),this.inputLayersTensorIndices.push(N)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let b=0;bb.shape),this.internalOutputShapes=this.outputs.map(b=>b.shape);let e={},n={},o={},s={},i={},a=[],u=(b,w,C,N,_,A)=>{(N==null||_==null||A==null)&&(N=b.sourceLayer,_=b.nodeIndex,A=b.tensorIndex);let $=N.inboundNodes[_];if(C.indexOf($)!==-1)throw new Hr(`The tensor ${b.name} at layer "${N.name}" is part of a cycle.`);if(w.indexOf($)!==-1)return;this.containerNodes.add(zn.nodeKey(N,_)),N.id in i||(i[N.id]=Object.keys(i).length),C.indexOf($)===-1&&C.push($);let F=$.inboundLayers.length;for(let P=0;P=0;)C.splice(C.indexOf($),1);a.push($)},l=[],c=[];for(let b of this.outputs)u(b,l,c);let p=a.slice().reverse();for(let b of p){n[b.id]=b,b.id in e||(e[b.id]=0);let w=e[b.id],C=o[b.outboundLayer.id]==null?0:o[b.outboundLayer.id];w=Math.max(w,C),o[b.outboundLayer.id]=w,s[b.outboundLayer.id]=b.outboundLayer,e[b.id]=w;for(let N=0;NparseInt(b,10)).sort(yh);this.layers=[];for(let b of d){let w=f[b];w.sort((C,N)=>{let _=i[C.id],A=i[N.id];return _A?1:0});for(let C of w)C instanceof zn&&this.internalContainerRefs.push(C),this.layers.push(C)}this.layersByDepth=f,d=Object.keys(m).map(b=>parseInt(b,10)).sort(yh);let h=this.inputs.slice(),g=[];for(let b of d)for(let w of m[b]){let C=w.outboundLayer;if(C!=null){for(let N of w.inputTensors)if(h.indexOf(N)===-1)throw new Hr(`Graph disconnected: cannot obtain value for tensor ${N} at layer "${C.name}". The following previous layers were accessed without issue: ${g}`);for(let N of w.outputTensors)h.push(N);g.push(C.name)}}this.nodesByDepth=m;let x=this.layers.map(b=>b.name);for(let b of x){let w=x.filter(C=>C===b).length;if(w!==1)throw new Hr(`The name "${b}" is used ${w} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(x))}this.outboundNodes=[],this.inboundNodes=[],new ol({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(b=>null),outputMasks:this.outputs.map(b=>null),inputShapes:this.inputs.map(b=>b.shape),outputShapes:this.outputs.map(b=>b.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let t={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(let e of this.layers)t.numDisposedVariables+=e.dispose().numDisposedVariables;for(let e of this.internalContainerRefs)t.numDisposedVariables+=e.dispose().numDisposedVariables}return t.refCountAfterDispose=this._refCount,t}get trainable(){return this.trainable_}set trainable(t){this.layers.forEach(e=>{e._trainableWeights.forEach(n=>n.trainable=t)}),this.trainable_=t}get trainableWeights(){if(this._trainableWeights.length>0)throw new M("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 t=[];for(let e of this.layers)t=t.concat(e.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let e of this.layers)t.push(...e.nonTrainableWeights);if(!this.trainable){let e=[];for(let n of this.layers)e.push(...n.trainableWeights);return e.concat(t)}return t}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(t,e=!0){let n={},o=0;for(let i of this.layers)for(let a of i.weights){if(n[a.originalName]!=null)throw new M(`Duplicate weight name: ${a.originalName}`);n[a.originalName]=a,o++}let s=[];for(let i in t){let a=i;if(n[i]==null){let u=i.split("/");a=u.slice(0,-2).concat([u[u.length-1]]).join("/")}if(n[a]!=null)s.push([n[a],t[i]]);else if(e)throw new M(`Provided weight data has no target variable: ${i}`);delete n[a]}if(e){let i=[];for(let a in n)i.push(a);if(i.length>0)throw new M(`${i.length} of ${o} weights are not set: ${i}`)}Pm(s)}updatedConfig(){let t=this.getConfig(),e={};return e.className=this.getClassName(),e.config=t,e.kerasVersion=`tfjs-layers ${Um}`,e.backend="TensorFlow.js",e}toJSON(t,e=!0){let n=qy(this.updatedConfig());return e?JSON.stringify(n):n}call(t,e){return B(()=>{t=xe(t);let n=new ko;for(let o=0;o{t=xe(t);let n;return e==null?n=Io(null,t.length):n=xe(e),this.runInternalGraph(t,n)[1]})}computeOutputShape(t){let e=Fm(t);if(e.length!==this.inputLayers.length)throw new M(`Invalid inputShape argument ${t}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let a=0;aparseInt(a,10)).sort(yh);if(o.length>1)for(let a of o){let u=this.nodesByDepth[a];for(let l of u){let c=l.outboundLayer;if(this.inputLayers.map(h=>h.id).indexOf(c.id)!==-1)continue;let p=[];for(let h=0;hparseInt(u,10)).sort(yh);for(let u of o){let l=this.nodesByDepth[u];for(let c of l){let p=c.outboundLayer,m=c.inputTensors,f=c.outputTensors,d=new Array;for(let h of m)h.id in n&&d.push(n[h.id]);if(d.length===m.length){let h={},g,x,b,w;if(c.callArgs!=null&&(h=c.callArgs),d.length===1){let[C,N]=d[0];h.mask==null&&(h.mask=N),b=xe(p.call(C,h)),w=xe(p.computeMask(C,N)),g=[C],x=[N]}else g=d.map(C=>C[0]),x=d.map(C=>C[1]),h.mask==null&&(h.mask=x),b=xe(p.call(g,h)),w=xe(p.computeMask(g,x));if(p.activityRegularizer)throw new St("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let C=0;C{let t=[];for(let e of this.layers)for(let n=0;n0){let h=[];for(let g=0;g0&&g.apply(Nr(b),w)}function l(g){let x=g.name,b=gn(g,e.customObjects!=null?e.customObjects:{});b.setFastWeightInitDuringBuild(o),s[x]=b,g.inboundNodes.forEach(C=>{if(!(C instanceof Array))throw new M(`Corrupted configuration, expected array for nodeData: ${C}`);a(b,C)})}let c=e.name,p=e.layers;for(let g of p)l(g);for(;!b$(i);)for(let g of p){let x=s[g.name];if(x.name in i){let b=i[x.name];delete i[x.name];for(let w of b)u(x,w)}}let m=[],f=[],d=e.inputLayers;for(let g of d){let x=g[0],b=g[1],w=g[2];ro(x in s);let N=s[x].inboundNodes[b].outputTensors;m.push(N[w])}let h=e.outputLayers;for(let g of h){let x=g[0],b=g[1],w=g[2];ro(x in s);let N=s[x].inboundNodes[b].outputTensors;f.push(N[w])}return new t({inputs:m,outputs:f,name:c})}get stateful(){if(this._stateful)throw new M("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(let t of this.layers)if(t.stateful)return!0;return!1}resetStates(){B(()=>{this.layers.forEach(t=>{t.stateful&&t.resetStates()})})}};function R8(r,t,e){let n=t.length;if(r==null||Array.isArray(r)&&r.length===0)return t.map(o=>null);if(n===1)return Array.isArray(r)&&r.length===1?r:typeof r=="object"&&t[0]in r?[r[t[0]]]:[r];if(Array.isArray(r)){if(r.length!==n)throw new Error(`Provided ${e} is an array of ${r.length} element(s), but the model has ${n} outputs. Make sure a set of weights is provided for each model output.`);return r}else if(typeof r=="object"&&Object.keys(r).length>0&&typeof r[Object.keys(r)[0]]=="object"){let o=[];return t.forEach(s=>{s in r?o.push(r[s]):o.push(null)}),o}else throw new Error(`The model has multiple (${n}) outputs, so ${e} must be either an array with ${n} elements or an object with ${t} keys. Provided ${e} not understood: ${JSON.stringify(r)}`)}function Ky(r,t){return R8(r,t,"classWeight")}async function jy(r,t,e,n){if(t!=null||n!=null)throw new Error("Support sampleWeight is not implemented yet");if(e!=null){let o=B(()=>{if(r.shape.length===1)return sn(r);if(r.shape.length===2){if(r.shape[1]>1)return Ai(r,1);if(r.shape[1]===1)return R(r,[r.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${r.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${r.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),s=Array.from(await o.data());vt(o);let i=[];return s.forEach(a=>{if(e[a]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${a} exists in the data but not in classWeight`);i.push(e[a])}),Me(i,"float32")}else return null}function oD(r,t){return D(r,t)}var F8=32;function aD(r,t){let e,n,o=t;e=o.xs,n=o.ys,y.assert(e!=null&&n!=null,()=>`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}`);let s=sD("input",r.inputNames,e),i=sD("output",r.outputNames,n),a=s[0].shape[0];y.assert(s.length===r.inputs.length,()=>`LayersModel has ${r.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(r.inputNames)})`),y.assert(i.length===r.outputs.length,()=>`LayersModel has ${r.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(r.outputNames)})`);for(let u=0;u`Batch size mismatch: input ${r.inputNames[u]} has ${s[u].shape[0]}; expected ${a} based on input ${r.inputNames[0]}.`);for(let u=0;u`Batch size mismatch: output ${r.outputNames[u]} has ${i[u].shape[0]}; expected ${a} based on input ${r.inputNames[0]}.`);return{xs:s,ys:i}}function sD(r,t,e){if(e instanceof Ft)return[e];if(Array.isArray(e))return y.assert(e.length===t.length,()=>`Received an array of ${e.length} Tensors, but expected ${t.length} to match the ${r} keys ${t}.`),e;{let n=[];for(let o of t){if(e[o]==null)throw new M(`The feature data generated by the dataset lacks the required ${r} key '${o}'.`);n.push(e[o])}return n}}function O8(r){if(r.length===3)throw new St("Validation with sample weights is not implemented yet.");return{xs:r[0],ys:r[1]}}async function lD(r,t,e){let n=e.batchesPerEpoch!=null;if(y.assert(r.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),y.assert(e!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),y.assert(e.epochs!=null&&e.epochs>0&&Number.isInteger(e.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${e.epochs}`),y.assert(!n||e.batchesPerEpoch>0&&Number.isInteger(e.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${e.batchesPerEpoch}`),y.assert(e.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),r.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");r.isTraining=!0;try{let o=e.validationData!=null,s,i;if(o)if(iD(e.validationData))y.assert(e.validationBatches==null||e.validationBatches>0&&Number.isInteger(e.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${e.validationBatches}`);else{let g=O8(e.validationData);s=g.xs,i=g.ys}let a=r.makeTrainFunction(),u=r.getDedupedMetricsNames(),l;o?l=u.slice().concat(u.map(g=>"val_"+g)):l=u.slice();let c=zy(e.callbacks,e.yieldEvery),p=e.verbose==null?1:e.verbose,{callbackList:m,history:f}=By(c,p,e.epochs,null,null,P8(t,e),null,o,l);m.setModel(r),r.history=f,await m.onTrainBegin(),r.stopTraining_=!1;let d=e.initialEpoch==null?0:e.initialEpoch,h=await t.iterator();for(;d=e.batchesPerEpoch:w.done){if(o){let C;iD(e.validationData)?C=xe(await r.evaluateDataset(e.validationData,{batches:e.validationBatches})):C=xe(r.evaluate(s,i,{batchSize:e.validationBatchSize==null?F8:e.validationBatchSize,verbose:0}));for(let N=0;N0)throw new St("Verbose mode is not implemented yet.");y.assert(!n||e.batches>0&&Number.isInteger(e.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(e.batches)}`);let i=L8(t)?t:await t.iterator(),a=0,u=0;for(;!n||u{if(l.value){let{xs:c,ys:p}=aD(r,l.value),m=c.concat(p),f=B(()=>o(m));if(vt(m),u===0)for(let h=0;hX(s[h],D(d,g))),u>0&&vt(x)}vt(f),a+=d,++u}return s}),l.done){n&&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, ${e.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let l=0;l0&&Number.isInteger(r),()=>`batchSize is required to be a positive integer, but got ${r}`)}function Hm(r,t,e){return r==null?[null]:Array.isArray(r)?r.map(n=>rl(n,t,e-t)):rl(r,t,e-t)}function Yy(r,t){return B(()=>r==null?null:Array.isArray(r)?r.map(e=>Yy(e,t)):_y(r,t.dtype==="int32"?t:J(t,"int32")))}function Zy(r,t){let e=[],n=0,o=null;for(;n=r&&(o=r),e.push([n,o]),n=o;return e}async function M8(r,t,e,n,o,s,i,a,u,l,c,p,m,f,d){o==null&&(o=32),s==null&&(s=1),c==null&&(c=!0),m==null&&(m=0);let h=!1;if(u!=null&&l!=null&&(h=!0),d!=null&&(h=!0,f==null))throw new M("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let g=r.checkNumSamples(e,o,f,"steps_per_epoch"),x;g!=null&&(x=Zr(0,g)),i==null&&(i=1);let{callbackList:b,history:w}=By(a,i,s,m,g,f,o,h,p);b.setModel(r),r.history=w,await b.onTrainBegin(),r.stopTraining_=!1;for(let C=m;C{let P=A[$][0],V=A[$][1],G=rl(_,P,V-P);F.batch=$,F.size=V-P;let W=Yy(e,G),q=t(W);for(let H=0;H0){if(g=!0,n.validationData.length===2)u=n.validationData[0],l=n.validationData[1];else throw n.validationData.length===3?new St("validationData including sample weights is not supported yet."):new M(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${n.validationData} is invalid.`);let F=!0,P=await r.standardizeUserData(u,l,null,null,F,f);c=P[0],p=P[1],x=c.concat(p)}else if(n.validationSplit!=null&&n.validationSplit>0&&n.validationSplit<1){g=!0;let F=Math.floor(o[0].shape[0]*(1-n.validationSplit)),P=o[0].shape[0];c=Hm(o,F,P),i=o,o=Hm(o,0,F),p=Hm(s,F,P),a=s,s=Hm(s,0,F),x=c.concat(p)}else n.validationSteps!=null&&(g=!0);let b=o.concat(s).concat(m);r.checkTrainableWeightsConsistency();let w=r.makeTrainFunction(),C=r.getDedupedMetricsNames(),N,_;g?(r.makeTestFunction(),N=r.testFunction,_=C.slice().concat(C.map(F=>"val_"+F))):(N=null,x=[],_=C.slice());let A=zy(n.callbacks,n.yieldEvery);return await M8(r,w,b,C,f,n.epochs,n.verbose,A,N,x,n.shuffle,_,n.initialEpoch,null,null)}finally{r.isTraining=!1,Eo(o,t),Eo(s,e),Eo(i,t),Eo(a,e),Eo(c,u),Eo(p,l),m!=null&&vt(m)}}function Fv(r){let t=[];r instanceof Ft&&(r=[r]);for(let e=0;ee.push(o.id));else if(t!=null)for(let o in t){let s=t[o];e.push(s.id)}let n=[];if(r instanceof Ft)e.indexOf(r.id)===-1&&n.push(r);else if(Array.isArray(r))r.forEach(o=>{e.indexOf(o.id)===-1&&n.push(o)});else if(r!=null)for(let o in r){let s=r[o];e.indexOf(s.id)===-1&&n.push(s)}n.forEach(o=>{o.isDisposed||o.dispose()})}function z8(r){return r instanceof Ft}function Ov(r){return Array.isArray(r)}function pD(r){return!z8(r)&&!Ov(r)}function mD(r,t,e,n=!0,o=""){if(t==null||t.length===0){if(r!=null){let i=!1;if(Ov(r)&&r.length>0)i=!0;else if(pD(r)){for(let a in r)if(r.hasOwnProperty(a)){i=!0;break}}else i=!0;if(i)throw new M(`Error when checking model ${o} expected no data, but got ${r}`)}return[]}if(r==null)return t.map(i=>null);let s;if(pD(r)){r=r,s=[];for(let i of t){if(r[i]==null)throw new M(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(r[i])}}else if(Ov(r)){if(r=r,r.length!==t.length)throw new M(`Error when checking model ${o}: 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): ${r}`);s=r}else{if(r=r,t.length>1)throw new M(`The model ${o} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${r.shape}`);s=[r]}if(s=Fv(s),e!=null)for(let i=0;i=0&&l!==c)throw new M(`${o} expected a batch of elements where each example has shape [${e[i].slice(1,e[i].length)}] (i.e.,tensor shape [*,${e[i].slice(1,e[i].length)}]) but the ${o} received an input with ${a.shape[0]} examples, each with shape [${a.shape.slice(1,a.shape.length)}] (tensor shape [${a.shape}])`)}}return s}function B8(r,t,e){let n=vo(r.map(s=>s.shape[0]));n.sort();let o=vo(t.map(s=>s.shape[0]));if(o.sort(),n.length>1)throw new M(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(r.map(s=>s.shape))}`);if(o.length>1)throw new M(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(s=>s.shape))}`);if(n.length>0&&o.length>0&&!y.arraysEqual(n,o))throw new M(`Input Tensors should have the same number of samples as target Tensors. Found ${n[0]} input sample(s) and ${o[0]} target sample(s).`)}function V8(r,t,e){let n=[Hi,Wm,xc];for(let o=0;o1)throw new M(`The model expects ${t.length} ${o} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(r.shape)}.`);s=[r]}if(e!=null)for(let i=0;i[]);let e;if(typeof r=="string"||typeof r=="function")e=[r];else if(Array.isArray(r)||typeof r=="object")e=r;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${r}`);if(Array.isArray(e))return t.map(n=>e);{let n=[];for(let o of t){let s=e.hasOwnProperty(o)?e[o]:[];Array.isArray(s)||(s=[s]),n.push(s)}return n}}var W8="layers-model",Bn=class extends zn{constructor(t){super(t),this.isTraining=!1}summary(t,e,n=console.log){if(!this.built)throw new M("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");rD(this,t,e,n)}compile(t){if(t.loss==null&&(t.loss=[]),this.loss=t.loss,typeof t.optimizer=="string")this.optimizer_=eD(t.optimizer),this.isOptimizerOwned=!0;else{if(!(t.optimizer instanceof Wr))throw new M("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=t.optimizer,this.isOptimizerOwned=!1}let e=[];if(!Array.isArray(t.loss)&&typeof t.loss!="string"&&typeof t.loss!="function"){t.loss=t.loss;for(let i in t.loss)if(this.outputNames.indexOf(i)===-1)throw new M(`Unknown entry in loss dictionary: "${i}". Only expected the following keys: ${this.outputNames}`);for(let i of this.outputNames)t.loss[i]==null&&console.warn(`Output "${i}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${i} during training`),e.push(Vy(t.loss[i]))}else if(Array.isArray(t.loss)){if(t.loss.length!==this.outputs.length)throw new M(`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=${t.loss}.`);e=t.loss.map(a=>Vy(a))}else{let i=Vy(t.loss);this.outputs.forEach(a=>{e.push(i)})}this.lossFunctions=e,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let i=0;i{for(let i=0;i1&&(this.metricsTensors.push([a,i]),this.metricsNames.push(this.outputNames[i]+"_loss"))}});let o=G8(t.metrics,this.outputNames),s=(i,a,u)=>{this.outputNames.length>1&&(a=this.outputNames[i]+"_"+a),this.metricsNames.push(a),this.metricsTensors.push([u,i])};Hs("metric",()=>{for(let i=0;i{let c="",p,m,f;for(let d of l){if(typeof d=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(d)!==-1){let g=this.internalOutputShapes[i];g[g.length-1]===1||this.lossFunctions[i]===Wm?["accuracy","acc"].indexOf(d)!==-1?m=Th:["crossentropy","ce"].indexOf(d)!==-1&&(m=Wy):this.lossFunctions[i]===Gm?["accuracy","acc"].indexOf(d)!==-1?m=Uy:["crossentropy","ce"].indexOf(d)!==-1&&(m=$v):["accuracy","acc"].indexOf(d)!==-1?m=kh:["crossentropy","ce"].indexOf(d)!==-1&&(m=Eh);let x;["accuracy","acc"].indexOf(d)!==-1?x="acc":["crossentropy","ce"].indexOf(d)!==-1&&(x="ce"),f=m,p=c+x}else f=Q$(d),p=c+_h(d);let h;Hs(p,()=>{h=f}),s(i,p,h)}})(a)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&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(t,e,n={}){let o=n.batchSize==null?32:n.batchSize;Xy(o);let s=!0,i=this.standardizeUserDataXY(t,e,s,o);try{let a=i[0].concat(i[1]);this.makeTestFunction();let u=this.testFunction,l=this.testLoop(u,a,o,n.verbose,n.steps);return Nr(l)}finally{Eo(i[0],t),Eo(i[1],e)}}async evaluateDataset(t,e){return this.makeTestFunction(),uD(this,t,e)}checkNumSamples(t,e,n,o="steps"){let s;if(n!=null){if(s=null,e!=null)throw new M(`If ${o} is set, batchSize must be null or undefined.Got batchSize = ${e}`)}else if(t!=null)Array.isArray(t)?s=t[0].shape[0]:s=t.shape[0];else throw new M(`Either the input data should have a defined shape, or ${o} shoud be specified.`);return s}execute(t,e){if(Array.isArray(e)&&e.length===0)throw new M("`outputs` is an empty Array, which is not allowed.");let n=Array.isArray(e),o=n?e:[e],s=this.retrieveSymbolicTensors(o),i=new ko;if(t instanceof Ft&&(t=[t]),Array.isArray(t)){if(t.length!==this.inputs.length)throw new M(`The number of inputs provided (${t.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let u=0;ua.name);for(let a=0;a0){let o=[];throw e.forEach((s,i)=>{s==null&&o.push(t[i])}),new M(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(o)}`)}return e}predictLoop(t,e=32,n=!1){return B(()=>{let o=this.checkNumSamples(t);if(n)throw new St("Verbose predictLoop() is not implemented yet.");let s=Zy(o,e),i=this.outputs.map(a=>[]);for(let a=0;a{let l=s[a][0],c=s[a][1],p=Hm(t,l,c),m=[];if(Array.isArray(p))for(let d=0;di[c].push(l));return Nr(i.map(a=>ne(a,0)))})}predict(t,e={}){let n=Fv(t);fD(n,this.inputNames,this.feedInputShapes,!1);try{let o=e.batchSize==null?32:e.batchSize;return Xy(o),this.predictLoop(n,o)}finally{Eo(n,t)}}predictOnBatch(t){fD(t,this.inputNames,this.feedInputShapes,!0);let e=(Array.isArray(t)?t[0]:t).shape[0];return this.predictLoop(t,e)}standardizeUserDataXY(t,e,n=!0,o){if(this.optimizer_==null)throw new Hr("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let s=[];for(let i=0;i0&&t[0].shape[0]%o!==0)throw new M(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${o}. Found: ${t[0].shape[0]} sample(s).`);return[t,e]}async standardizeUserData(t,e,n,o,s=!0,i){let[a,u]=this.standardizeUserDataXY(t,e,s,i);if(n!=null)throw new Error("sample weight is not supported yet.");let l=null;if(o!=null){let c=Ky(o,this.outputNames);l=[];for(let p=0;p{let i=this.checkNumSamples(e,n,s,"steps"),a=[];if(o>0)throw new St("Verbose mode is not implemented yet.");if(s!=null)throw new St("steps mode in testLoop() is not implemented yet");{let u=Zy(i,n),l=Me(Zr(0,i));for(let c=0;c1&&(s+=`_${Cv(t.slice(0,n),o)}`),e.push(s)}return e}makeTrainFunction(){return t=>{let e=[],n=t.slice(0,this.inputs.length),o=t.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=t.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),i=[],a=()=>{let p=[];for(let h=0;h1&&h{d=X(d,h)}),d},u=this.collectedTrainableWeights.map(p=>p.read()),l=!0;return[this.optimizer_.minimize(a,l,u)].concat(i)}}makeTestFunction(){this.testFunction=t=>B(()=>{let e=[],n,o=t.slice(0,this.inputs.length),s=t.slice(this.inputs.length,this.inputs.length+this.outputs.length),i=[];for(let l=0;lSo(e))}else{let e=Object.keys(this.loss);t={};let n=this.loss;for(let o of e)if(typeof n[o]=="string")t[o]=So(n[o]);else throw new Error("Serialization of non-string loss is not supported.")}return t}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[So(_h(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(t=>So(_h(t)));{let t={};for(let e in this.metrics)t[e]=So(_h(this.metrics[e]));return t}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(t){if(t.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(t.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(t.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let e=yc(t.optimizer_config),n=gn(e),o;if(typeof t.loss=="string")o=el(t.loss);else if(Array.isArray(t.loss))o=t.loss.map(i=>el(i));else if(t.loss!=null){o={};for(let i in t.loss)o[i]=el(t.loss[i])}let s;if(Array.isArray(t.metrics))s=t.metrics.map(i=>el(i));else if(t.metrics!=null){s={};for(let i in t.metrics)s[i]=el(t.metrics[i])}this.compile({loss:o,metrics:s,optimizer:n})}async save(t,e){if(typeof t=="string"){let l=_r.getSaveHandlers(t);if(l.length===0)throw new M(`Cannot find any save handlers for URL '${t}'`);if(l.length>1)throw new M(`Found more than one (${l.length}) save handlers for URL '${t}'`);t=l[0]}if(t.save==null)throw new M("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await _r.encodeWeights(this.getNamedWeights(e)),o=!1,s=null,a={modelTopology:this.toJSON(s,o),format:W8,generatedBy:`TensorFlow.js tfjs-layers v${Um}`,convertedBy:null};if((e==null?!1:e.includeOptimizer)&&this.optimizer!=null){a.trainingConfig=this.getTrainingConfig();let l="optimizer",{data:c,specs:p}=await _r.encodeWeights(await this.optimizer.getWeights(),l);n.specs.push(...p),n.data=_r.concatenateArrayBuffers([n.data,c])}return this.userDefinedMetadata!=null&&(Rv(this.userDefinedMetadata,this.name,!0),a.userDefinedMetadata=this.userDefinedMetadata),a.weightData=n.data,a.weightSpecs=n.specs,t.save(a)}setUserDefinedMetadata(t){Rv(t,this.name),this.userDefinedMetadata=t}getUserDefinedMetadata(){return this.userDefinedMetadata}};Bn.className="Model";Q.registerClass(Bn);var Jy=class extends Bn{};Jy.className="Functional";Q.registerClass(Jy);async function dD(r,t){"modelTopology"in r||(r={modelTopology:r}),r=r;let e=r.modelTopology;e.model_config!=null&&(e=e.model_config);let n=yc(e),o=gn(n,t);if(r.weightsManifest!=null){let s=await _r.loadWeights(r.weightsManifest,r.pathPrefix,o.weights.map(a=>a.originalName)),i={};for(let a of o.weights)i[a.originalName]=s[a.originalName];o.loadWeights(i),vt(s)}return o}async function hD(r,t){if(t==null&&(t={}),typeof r=="string"){let e=_r.getLoadHandlers(r,t);if(e.length===0)e.push(_r.browserHTTPRequest(r,t));else if(e.length>1)throw new M(`Found more than one (${e.length}) load handlers for URL '${r}'`);r=e[0]}return U8(r,void 0,t)}async function U8(r,t,e){if(e==null&&(e={}),r.load==null)throw new M("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let n=await r.load(),o=n.modelTopology;o.model_config!=null&&(o=o.model_config);let s=e.strict==null?!0:e.strict,i=n.weightData!=null&&n.weightSpecs!=null&&s,a=gn(yc(o),t,i),u=n.trainingConfig;if(u!=null&&a.loadTrainingConfig(u),n.userDefinedMetadata!=null&&a.setUserDefinedMetadata(n.userDefinedMetadata),n.weightData!=null){if(n.weightSpecs==null)throw new M("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:l,optimizerWeights:c}=H8(n.weightData,n.weightSpecs);a.loadWeights(l,s),a.optimizer!=null&&c.length>0&&await a.optimizer.setWeights(c),vt(l),vt(c.map(p=>p.tensor))}return a}function H8(r,t){let e=_r.decodeWeights(r,t),n={},o=[];return t.forEach(s=>{s.group==="optimizer"?o.push({name:s.name,tensor:e[s.name]}):n[s.name]=e[s.name]}),{modelWeights:n,optimizerWeights:o}}var qi=class extends Bn{constructor(t){if(super({inputs:[],outputs:[]}),t=t||{},this.trainable=!0,this.built=!1,this.name=t.name!=null?t.name:gu("sequential_"),t.layers!=null)for(let e of t.layers)this.add(e)}checkShape(t){if(t.inboundNodes[0].outputTensors[0].shape.some(n=>n<0))throw new M(`Negative dimension size caused by adding layer ${t.name} with input shape [${t.inboundNodes[0].inputTensors[0].shape}]`)}add(t){let e=t instanceof qi||t instanceof Bn,n;if(e){if(n=t,n.outputs.length!==1)throw new M("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(n.inputs.length!==1)throw new M("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(t.inboundNodes.length===0){if(t.batchInputShape==null)throw new M("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let o=Dy({batchShape:t.batchInputShape,dtype:t.dtype,name:t.name+"_input"});t.apply(o)}if(e)this.outputs=n.outputs,this.inputs=n.inputs;else{if(t.inboundNodes.length!==1)throw new M(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${t.name} which has ${t.inboundNodes.length} pre-existing inbound connections.`);if(t.inboundNodes[0].outputTensors.length!==1)throw new M("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(t),this.outputs=[t.inboundNodes[0].outputTensors[0]],this.inputs=kv(this.outputs[0])}this.inboundNodes=[],new ol({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:Io(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(o=>o.shape),outputShapes:this.outputs[0].shape})}else{let o=t.apply(this.outputs[0]);if(Array.isArray(o))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(t),this.outputs=[o],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(t),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let t=this.layers.length-1;this.layers[t].outboundNodes=[],this.outputs=[this.layers[t].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(t,e){return this.model==null&&this.build(),this.model.call(t,e)}build(t){if(Bt(t),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new Bn({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(t,e,n=console.log){this.built||this.build(),super.summary(t,e,n)}setWeights(t){this.model==null&&this.build(),this.model.setWeights(t)}evaluate(t,e,n={}){if(!this.built)throw new Hr("The model needs to be compiled before being used.");return this.model.evaluate(t,e,n)}async evaluateDataset(t,e){if(!this.built)throw new Hr("The model needs to be compiled before being used.");return this.model.evaluateDataset(t,e)}predict(t,e={}){return this.model==null&&this.build(),this.model.predict(t,e)}predictOnBatch(t){return this.model==null&&this.build(),this.model.predictOnBatch(t)}compile(t){this.build(),this.model.compile(t),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 this.model==null?void 0:this.model.optimizer}set optimizer(t){this.model.optimizer=t}async fit(t,e,n={}){if(!this.built)throw new Hr("The model needs to be compiled before being used.");return this.model.fit(t,e,n)}async fitDataset(t,e){if(!this.built)throw new Hr("The model needs to be compiled before being used.");return this.model.fitDataset(t,e)}async trainOnBatch(t,e){return this.model.trainOnBatch(t,e)}static fromConfig(t,e,n={},o=!1){let s,i={};if(e instanceof Array){if(e[0].className==null||e[0].className==="Merge")throw new M("Legacy serialization format not supported yet.");s=e}else y.assert(e.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),s=e.layers,delete e.layers,i=e;let a=new t(i);if(!(a instanceof qi))throw new St(`Sequential.fromConfig called on non-Sequential input: ${a}`);for(let u of s){let c=gn(u,void 0,o);o&&c.setFastWeightInitDuringBuild(!0),a.add(c)}return a}set stopTraining(t){if(this.model==null)throw new M("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=t}get stopTraining(){if(this.model==null)throw new M("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let t=[];for(let e of this.layers){let n={};n.className=e.getClassName(),n.config=e.getConfig(),t.push(n)}return{name:this.name,layers:t}}};qi.className="Sequential";Q.registerClass(qi);function q8(r){return new Bn(r)}function K8(r){return new qi(r)}function Pv(r){return Dy(r)}function j8(r,t){hn.registerCallbackConstructor(r,t)}var Qr=class extends Q.Serializable{getConfig(){return{}}},Qy=class extends Qr{apply(t,e=1){return F$(t,e)}};Qy.className="elu";Q.registerClass(Qy);var tb=class extends Qr{apply(t){return pm(t)}};tb.className="selu";Q.registerClass(tb);var eb=class extends Qr{apply(t){return Fr(t)}};eb.className="relu";Q.registerClass(eb);var rb=class extends Qr{apply(t){return B(()=>Mi(6,Fr(t)))}};rb.className="relu6";Q.registerClass(rb);var nb=class extends Qr{apply(t){return t}};nb.className="linear";Q.registerClass(nb);var ob=class extends Qr{apply(t){return Yr(t)}};ob.className="sigmoid";Q.registerClass(ob);var sb=class extends Qr{apply(t){return P$(t)}};sb.className="hardSigmoid";Q.registerClass(sb);var ib=class extends Qr{apply(t){return zs(t)}};ib.className="softplus";Q.registerClass(ib);var ab=class extends Qr{apply(t){return O$(t)}};ab.className="softsign";Q.registerClass(ab);var lb=class extends Qr{apply(t){return $i(t)}};lb.className="tanh";Q.registerClass(lb);var qm=class extends Qr{apply(t,e=-1){return iu(t,e)}};qm.className="softmax";Q.registerClass(qm);var ub=class extends Qr{apply(t,e=-1){return sm(t,e)}};ub.className="logSoftmax";Q.registerClass(ub);var cb=class extends Qr{apply(t,e=1){return B(()=>D(Yr(D(t,e)),t))}};cb.className="swish";Q.registerClass(cb);var pb=class extends Qr{apply(t){return B(()=>D(t,$i(zs(t))))}};pb.className="mish";Q.registerClass(pb);function js(r){return r.getClassName()}function Lv(r,t={}){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,"activation")}function Xs(r){if(r==null){let t={};return t.className="linear",t.config={},Lv(t)}if(typeof r=="string"){let t={};return t.className=r,t.config={},Lv(t)}else return r instanceof Qr?r:Lv(r)}function Mv(r){if(r!=null&&typeof r!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${r}`)}var mb=class extends Q.Serializable{},wu=class extends mb{constructor(t){super(),Mv(t),this.l1=t==null||t.l1==null?.01:t.l1,this.l2=t==null||t.l2==null?.01:t.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(t){return B(()=>{let e=Ne([1]);return this.hasL1&&(e=X(e,ft(D(this.l1,Ee(t))))),this.hasL2&&(e=X(e,ft(D(this.l2,lc(t))))),R(e,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(t,e){return new t({l1:e.l1,l2:e.l2})}};wu.className="L1L2";Q.registerClass(wu);function yD(r){return Mv(r),new wu({l1:r!=null?r.l1:null,l2:0})}function bD(r){return Mv(r),new wu({l2:r!=null?r.l2:null,l1:0})}var gD={l1l2:"L1L2"};function me(r){return Sm(r)}function xD(r,t={}){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,"regularizer")}function be(r){if(r==null)return null;if(typeof r=="string"){let e={className:r in gD?gD[r]:r,config:{}};return xD(e)}else return r instanceof mb?r:xD(r)}var Km=class extends $t{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null&&(this.maxValue=t.maxValue)}call(t,e){t=Nt(t);let n=Fr(t);return this.maxValue!=null&&(n=Cr(n,0,this.maxValue)),n}computeOutputShape(t){return t}getConfig(){let t={maxValue:this.maxValue},e=super.getConfig();return Object.assign(t,e),t}};Km.className="ReLU";Q.registerClass(Km);var jm=class extends $t{constructor(t){super(t==null?{}:t),this.DEFAULT_ALPHA=.3,t==null&&(t={}),this.alpha=t.alpha==null?this.DEFAULT_ALPHA:t.alpha}call(t,e){let n=Nt(t);return Ql(n,this.alpha)}computeOutputShape(t){return t}getConfig(){let t={alpha:this.alpha},e=super.getConfig();return Object.assign(t,e),t}};jm.className="LeakyReLU";Q.registerClass(jm);var Xm=class extends $t{constructor(t){if(super(t==null?{}:t),this.DEFAULT_ALPHA_INITIALIZER="zeros",t==null&&(t={}),this.supportsMasking=!0,this.alphaInitializer=de(t.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=be(t.alphaRegularizer),this.alphaConstraint=Be(t.alphaConstraint),t.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(t.sharedAxes))this.sharedAxes=t.sharedAxes;else if(typeof t.sharedAxes=="number")this.sharedAxes=[t.sharedAxes];else throw new M(`Expected sharedAxes to be a number or an array of numbers, but got ${t.sharedAxes}`)}build(t){t=Bt(t);let e=t.slice(1);if(this.sharedAxes!=null)for(let o of this.sharedAxes)e[o-1]=1;this.alpha=this.addWeight("alpha",e,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let o=1;o(Fe(t),t==="channelsFirst"?Ot(r,[0,2,3,1]):r))}function zv(r,t){return B(()=>(Fe(t),t==="channelsFirst"?Ot(r,[0,2,3,4,1]):r))}function Y8(r,t,e,n=1,o="valid",s,i=1){return B(()=>{if(s==null&&(s=mn()),Fe(s),r.shape.length!==3)throw new M(`The input of a conv1dWithBias operation should be 3, but is ${r.shape.length} instead.`);if(t.shape.length!==3)throw new M(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(e!=null&&e.shape.length!==1)throw new M(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s==="channelsFirst"&&(r=Ot(r,[0,2,1])),o==="causal")throw new St("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let a=Qp(r,t,n,o==="same"?"same":"valid","NWC",i);return e!=null&&(a=fn(a,e)),a})}function wD(r,t,e,n=[1,1],o="valid",s,i,a=null){return B(()=>{if(s==null&&(s=mn()),Fe(s),r.rank!==3&&r.rank!==4)throw new M(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${r.rank}.`);if(t.rank!==3&&t.rank!==4)throw new M(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${r.rank}.`);let u=Ah(r,s);if(o==="causal")throw new St("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return u=uu.conv2d({x:u,filter:t,strides:n,pad:o==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:e,activation:a}),s==="channelsFirst"&&(u=Ot(u,[0,3,1,2])),u})}function Z8(r,t,e,n=[1,1,1],o="valid",s,i){return B(()=>{if(s==null&&(s=mn()),Fe(s),r.rank!==4&&r.rank!==5)throw new M(`conv3dWithBias expects input to be of rank 4 or 5, but received ${r.rank}.`);if(t.rank!==4&&t.rank!==5)throw new M(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${r.rank}.`);let a=zv(r,s);if(o==="causal")throw new St("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return a=Tx(a,t,n,o==="same"?"same":"valid","NDHWC",i),e!=null&&(a=fn(a,e)),s==="channelsFirst"&&(a=Ot(a,[0,4,1,2,3])),a})}var bc=class extends $t{constructor(t,e){if(super(e),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",bc.verifyArgs(e),this.rank=t,Ze(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new St(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=Cu(e.kernelSize,t,"kernelSize"),this.strides=Cu(e.strides==null?1:e.strides,t,"strides"),this.padding=e.padding==null?"valid":e.padding,pn(this.padding),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Fe(this.dataFormat),this.activation=Xs(e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.biasInitializer=de(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Be(e.biasConstraint),this.biasRegularizer=be(e.biasRegularizer),this.activityRegularizer=be(e.activityRegularizer),this.dilationRate=Cu(e.dilationRate==null?1:e.dilationRate,t,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new M(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new M(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new M(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(t){if(ro("kernelSize"in t,"required key 'kernelSize' not in config"),typeof t.kernelSize!="number"&&!Cy(t.kernelSize,"number",1,3))throw new M(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(t.kernelSize)}.`)}getConfig(){let t={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:js(this.activation),useBias:this.useBias,biasInitializer:Te(this.biasInitializer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),biasConstraint:ze(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}},Iu=class extends bc{constructor(t,e){super(t,e),this.kernel=null,Iu.verifyArgs(e),this.filters=e.filters,Ze(this.filters,"filters"),this.kernelInitializer=de(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Be(e.kernelConstraint),this.kernelRegularizer=be(e.kernelRegularizer)}build(t){t=Bt(t);let e=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[e]==null)throw new M(`The channel dimension of the input should be defined. Found ${t[e]}`);let n=t[e],o=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",o,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:{[e]:n}}],this.built=!0}call(t,e){return B(()=>{t=Nt(t);let n,o=this.bias==null?null:this.bias.read(),s=Iy(this.activation.getClassName());if(s!=null&&this.rank===2)n=wD(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)n=Y8(t,this.kernel.read(),o,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=wD(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=Z8(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new St("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(t){t=Bt(t);let e=[],n=this.dataFormat==="channelsLast"?t.slice(1,t.length-1):t.slice(2);for(let s=0;s 0 but got ${JSON.stringify(t.filters)}`)}},il=class extends Iu{constructor(t){super(2,t),il.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!Cy(t.kernelSize,"number",1,2))throw new M(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(t.kernelSize)}.`)}};il.className="Conv2D";Q.registerClass(il);var al=class extends Iu{constructor(t){super(3,t),al.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!(Array.isArray(t.kernelSize)&&(t.kernelSize.length===1||t.kernelSize.length===3)))throw new M(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(t.kernelSize)}.`)}};al.className="Conv3D";Q.registerClass(al);var Qm=class extends il{constructor(t){if(super(t),this.inputSpec=[new ye({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new M(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=Bt(t),t.length!==4)throw new M("Input should have rank 4; Received input shape: "+JSON.stringify(t));let e=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[e]==null)throw new M("The channel dimension of the inputs should be defined. Found `None`.");let n=t[e],o=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",o,"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 ye({ndim:4,axes:{[e]:n}})],this.built=!0}call(t,e){return B(()=>{let n=Nt(t);if(n.shape.length!==4)throw new M(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let o=n.shape,s=o[0],i,a;this.dataFormat==="channelsFirst"?(i=2,a=3):(i=1,a=2);let u=o[i],l=o[a],c=this.kernelSize[0],p=this.kernelSize[1],m=this.strides[0],f=this.strides[1],d=Ys(u,m,c,this.padding),h=Ys(l,f,p,this.padding),g=[s,d,h,this.filters];this.dataFormat!=="channelsLast"&&(n=Ot(n,[0,2,3,1]));let x=em(n,this.kernel.read(),g,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(x=Ot(x,[0,3,1,2])),this.bias!=null&&(x=fn(x,this.bias.read(),this.dataFormat)),this.activation!=null&&(x=this.activation.apply(x)),x})}computeOutputShape(t){t=Bt(t);let e=t.slice(),n,o,s;this.dataFormat==="channelsFirst"?(n=1,o=2,s=3):(n=3,o=1,s=2);let i=this.kernelSize[0],a=this.kernelSize[1],u=this.strides[0],l=this.strides[1];return e[n]=this.filters,e[o]=Ys(e[o],u,i,this.padding),e[s]=Ys(e[s],l,a,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};Qm.className="Conv2DTranspose";Q.registerClass(Qm);var tf=class extends al{constructor(t){if(super(t),this.inputSpec=[new ye({ndim:5})],this.padding!=="same"&&this.padding!=="valid")throw new M(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=Bt(t),t.length!==5)throw new M("Input should have rank 5; Received input shape: "+JSON.stringify(t));let e=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[e]==null)throw new M("The channel dimension of the inputs should be defined. Found `None`.");let n=t[e],o=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",o,"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 ye({ndim:5,axes:{[e]:n}})],this.built=!0}call(t,e){return B(()=>{let n=Nt(t);if(n.shape.length!==5)throw new M(`Conv3DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let o=n.shape,s=o[0],i,a,u;this.dataFormat==="channelsFirst"?(u=2,i=3,a=4):(u=1,i=2,a=3);let l=o[u],c=o[i],p=o[a],m=this.kernelSize[0],f=this.kernelSize[1],d=this.kernelSize[2],h=this.strides[0],g=this.strides[1],x=this.strides[2],b=Ys(l,h,m,this.padding),w=Ys(c,g,f,this.padding),C=Ys(p,x,d,this.padding),N=[s,b,w,C,this.filters];this.dataFormat!=="channelsLast"&&(n=Ot(n,[0,2,3,4,1]));let _=Ex(n,this.kernel.read(),N,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(_=Ot(_,[0,4,1,2,3])),this.bias!==null&&(_=fn(_,this.bias.read(),this.dataFormat)),this.activation!==null&&(_=this.activation.apply(_)),_})}computeOutputShape(t){t=Bt(t);let e=t.slice(),n,o,s,i;this.dataFormat==="channelsFirst"?(n=1,o=2,s=3,i=4):(n=4,o=1,s=2,i=3);let a=this.kernelSize[0],u=this.kernelSize[1],l=this.kernelSize[2],c=this.strides[0],p=this.strides[1],m=this.strides[2];return e[n]=this.filters,e[o]=Ys(e[o],c,a,this.padding),e[s]=Ys(e[s],p,u,this.padding),e[i]=Ys(e[i],m,l,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};tf.className="Conv3DTranspose";Q.registerClass(tf);var fb=class extends Iu{constructor(t,e){if(super(t,e),this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,e.filters==null)throw new M("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(e.kernelInitializer!=null||e.kernelRegularizer!=null||e.kernelConstraint!=null)throw new M("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(e.padding!=null&&e.padding!=="same"&&e.padding!=="valid")throw new M(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(e.padding)}`);this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=de(e.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=be(e.depthwiseRegularizer),this.depthwiseConstraint=Be(e.depthwiseConstraint),this.pointwiseInitializer=de(e.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=be(e.pointwiseRegularizer),this.pointwiseConstraint=Be(e.pointwiseConstraint)}build(t){if(t=Bt(t),t.length{t=Nt(t);let n;if(this.rank===1)throw new St("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(t=Ot(t,[0,2,3,1])),n=mm(t,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=fn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Ot(n,[0,3,1,2])),n})}getConfig(){let t=super.getConfig();return delete t.rank,delete t.kernelInitializer,delete t.kernelRegularizer,delete t.kernelConstraint,t.depthwiseInitializer=Te(this.depthwiseInitializer),t.pointwiseInitializer=Te(this.pointwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.pointwiseRegularizer=me(this.pointwiseRegularizer),t.depthwiseConstraint=ze(this.depthwiseConstraint),t.pointwiseConstraint=ze(this.pointwiseConstraint),t}};fb.className="SeparableConv";var ef=class extends fb{constructor(t){super(2,t)}};ef.className="SeparableConv2D";Q.registerClass(ef);var Su=class extends Iu{constructor(t){super(1,t),Su.verifyArgs(t),this.inputSpec=[{ndim:3}]}getConfig(){let t=super.getConfig();return delete t.rank,delete t.dataFormat,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!Cy(t.kernelSize,"number",1,1))throw new M(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(t.kernelSize)}.`)}};Su.className="Conv1D";Q.registerClass(Su);var rf=class extends $t{constructor(t){super(t),typeof t.cropping=="number"?this.cropping=[[t.cropping,t.cropping],[t.cropping,t.cropping]]:typeof t.cropping[0]=="number"?this.cropping=[[t.cropping[0],t.cropping[0]],[t.cropping[1],t.cropping[1]]]:this.cropping=t.cropping,this.dataFormat=t.dataFormat===void 0?"channelsLast":t.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(t){return this.dataFormat==="channelsFirst"?[t[0],t[1],t[2]-this.cropping[0][0]-this.cropping[0][1],t[3]-this.cropping[1][0]-this.cropping[1][1]]:[t[0],t[1]-this.cropping[0][0]-this.cropping[0][1],t[2]-this.cropping[1][0]-this.cropping[1][1],t[3]]}call(t,e){return B(()=>{if(t=Nt(t),this.dataFormat==="channelsLast"){let n=wh(t,this.cropping[0][0],t.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return wh(n,this.cropping[1][0],t.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=wh(t,this.cropping[0][0],t.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return wh(n,this.cropping[1][0],t.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let t={cropping:this.cropping,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};rf.className="Cropping2D";Q.registerClass(rf);var nf=class extends $t{constructor(t){super(t),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=t.size==null?this.DEFAULT_SIZE:t.size,this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Fe(this.dataFormat),this.interpolation=t.interpolation==null?"nearest":t.interpolation,E$(this.interpolation)}computeOutputShape(t){if(this.dataFormat==="channelsFirst"){let e=t[2]==null?null:this.size[0]*t[2],n=t[3]==null?null:this.size[1]*t[3];return[t[0],t[1],e,n]}else{let e=t[1]==null?null:this.size[0]*t[1],n=t[2]==null?null:this.size[1]*t[2];return[t[0],e,n,t[3]]}}call(t,e){return B(()=>{let n=Nt(t),o=n.shape;if(this.dataFormat==="channelsFirst"){n=Ot(n,[0,2,3,1]);let s=this.size[0]*o[2],i=this.size[1]*o[3],a=this.interpolation==="nearest"?Gs.resizeNearestNeighbor(n,[s,i]):Gs.resizeBilinear(n,[s,i]);return Ot(a,[0,3,1,2])}else{let s=this.size[0]*o[1],i=this.size[1]*o[2];return this.interpolation==="nearest"?Gs.resizeNearestNeighbor(n,[s,i]):Gs.resizeBilinear(n,[s,i])}})}getConfig(){let t={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},e=super.getConfig();return Object.assign(t,e),t}};nf.className="UpSampling2D";Q.registerClass(nf);function J8(r,t,e=[1,1],n="valid",o,s){return B(()=>{o==null&&(o=mn()),Fe(o);let i=Ah(r,o);if(r.rank!==4)throw new M(`Input for depthwiseConv2d is required to be 4-D, but is instead ${r.rank}-D`);if(t.rank!==4)throw new M(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=Fi(i,t,e,n==="same"?"same":"valid","NHWC",s),o==="channelsFirst"&&(i=Ot(i,[0,3,1,2])),i})}var of=class extends bc{constructor(t){super(2,t),this.depthwiseKernel=null,this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=de(t.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Be(t.depthwiseConstraint),this.depthwiseRegularizer=be(t.depthwiseRegularizer)}build(t){if(t=Bt(t),t.length<4)throw new M(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(t)}.`);let e=this.dataFormat==="channelsFirst"?1:3;if(t[e]==null||t[e]<0)throw new M(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${t[e]}).`);let n=t[e],o=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",o,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(t,e){return B(()=>{t=Nt(t);let n=J8(t,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=fn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(t){t=Bt(t);let e=this.dataFormat==="channelsFirst"?t[2]:t[1],n=this.dataFormat==="channelsFirst"?t[3]:t[2],o=this.dataFormat==="channelsFirst"?t[1]*this.depthMultiplier:t[3]*this.depthMultiplier,s=Nn(e,this.kernelSize[0],this.padding,this.strides[0]),i=Nn(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[t[0],o,s,i]:[t[0],s,i,o]}getConfig(){let t=super.getConfig();return t.depthMultiplier=this.depthMultiplier,t.depthwiseInitializer=Te(this.depthwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.depthwiseConstraint=ze(this.depthwiseRegularizer),t}};of.className="DepthwiseConv2D";Q.registerClass(of);function Bv(r,t,e,n){if(Array.isArray(r)){if(t!=null||e!=null)throw new M("When inputs is an array, neither initialState or constants should be provided");n!=null&&(e=r.slice(r.length-n,r.length),r=r.slice(0,r.length-n)),r.length>1&&(t=r.slice(1,r.length)),r=r[0]}function o(s){return s==null||Array.isArray(s)?s:[s]}return t=o(t),e=o(e),{inputs:r,initialState:t,constants:e}}function Vv(r,t,e,n=!1,o,s,i=!1,a=!1){return B(()=>{let u=t.shape.length;if(u<3)throw new M(`Input should be at least 3D, but is ${u}D.`);let l=[1,0].concat(Zr(2,u));if(t=Ot(t,l),s!=null)throw new St("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."),o!=null&&(o=J(J(o,"bool"),"float32"),o.rank===u-1&&(o=rr(o,-1)),o=Ot(o,l)),n&&(t=pr(t,0),o!=null&&(o=pr(o,0)));let c=[],p,m=e,f=t.shape[0],d=vr(t),h;o!=null&&(h=vr(o));for(let x=0;xr(b,m));if(o==null)p=w[0],m=w[1];else{let C=B(()=>{let N=h[x],_=ct(yr(N),N),A=X(D(w[0],N),D(m[0],_)),$=m.map((F,P)=>X(D(w[1][P],N),D(F,_)));return{output:A,newStates:$}});p=C.output,m=C.newStates}a&&c.push(p)}let g;return a&&(g=nr(c,1)),[p,g,m]})}var Tn=class extends $t{constructor(t){super(t);let e;if(t.cell==null)throw new M("cell property is missing for the constructor of RNN.");if(Array.isArray(t.cell)?e=new Ic({cells:t.cell}):e=t.cell,e.stateSize==null)throw new M("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=e,this.returnSequences=t.returnSequences==null?!1:t.returnSequences,this.returnState=t.returnState==null?!1:t.returnState,this.goBackwards=t.goBackwards==null?!1:t.goBackwards,this._stateful=t.stateful==null?!1:t.stateful,this.unroll=t.unroll==null?!1:t.unroll,this.supportsMasking=!0,this.inputSpec=[new ye({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Zr(0,t).map(e=>null)}else return this.states_}setStates(t){this.states_=t}computeOutputShape(t){$y(t)&&(t=t[0]),t=t;let e=this.cell.stateSize;Array.isArray(e)||(e=[e]);let n=e[0],o;if(this.returnSequences?o=[t[0],t[1],n]:o=[t[0],n],this.returnState){let s=[];for(let i of e)s.push([t[0],i]);return[o].concat(s)}else return o}computeMask(t,e){return B(()=>{Array.isArray(e)&&(e=e[0]);let n=this.returnSequences?e:null;if(this.returnState){let o=this.states.map(s=>null);return[n].concat(o)}else return n})}get states(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,e=[];for(let n=0;na.shape[a.shape.length-1]),i))throw new M(`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=i.map(a=>new ye({shape:[null,a]}));this.stateful&&this.resetStates()}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new vn("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape[0];if(n==null)throw new M("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(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>Ne([n,o])):this.states_=[Ne([n,this.cell.stateSize])];else if(t==null)vt(this.states_),this.keptStates!=null&&(vt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>Ne([n,o])):this.states_[0]=Ne([n,this.cell.stateSize]);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new M(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);e===!0?this.keptStates.push(this.states_.slice()):vt(this.states_);for(let o=0;oDe(o.clone()))})}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=Bv(t,n,o,this.numConstants);t=s.inputs,n=s.initialState,o=s.constants;let i=[],a=[];if(n!=null){e.initialState=n,i=i.concat(n),this.stateSpec=[];for(let l of n)this.stateSpec.push(new ye({shape:l.shape}));a=a.concat(this.stateSpec)}if(o!=null&&(e.constants=o,i=i.concat(o),this.numConstants=o.length),i[0]instanceof Jr){let l=[t].concat(i),c=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=c;let m=super.apply(l,e);return this.inputSpec=p,m}else return super.apply(t,e)}call(t,e){return B(()=>{let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;t=Nt(t),s==null&&(this.stateful?s=this.states_:s=this.getInitialState(t));let i=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(s.length!==i)throw new M(`RNN Layer has ${i} state(s) but was passed ${s.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let a={training:o},l=Vv((d,h)=>{let g=this.cell.call([d].concat(h),a);return[g[0],g.slice(1)]},t,s,this.goBackwards,n,null,this.unroll,this.returnSequences),c=l[0],p=l[1],m=l[2];this.stateful&&this.resetStates(m,o);let f=this.returnSequences?p:c;return this.returnState?[f].concat(m):f})}getInitialState(t){return B(()=>{let e=Ne(t.shape);return e=ft(e,[1,2]),e=nl(e),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Ey(e,[1,n]):e):this.cell.stateSize>1?[Ey(e,[1,this.cell.stateSize])]:[e]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(t)}getConfig(){let t=super.getConfig(),e={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(e.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===Tn.className&&(e.cell={className:this.cell.getClassName(),config:n}),Object.assign(Object.assign(Object.assign({},n),t),e)}static fromConfig(t,e,n={}){let o=e.cell,s=gn(o,n);return new t(Object.assign(e,{cell:s}))}};Tn.className="RNN";Q.registerClass(Tn);var ll=class extends $t{},wc=class extends ll{constructor(t){super(t),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=t.units,Ze(this.units,"units"),this.activation=Xs(t.activation==null?this.DEFAULT_ACTIVATION:t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=de(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=be(t.kernelRegularizer),this.recurrentRegularizer=be(t.recurrentRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.kernelConstraint=Be(t.kernelConstraint),this.recurrentConstraint=Be(t.recurrentConstraint),this.biasConstraint=Be(t.biasConstraint),this.dropout=ac([1,qs([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=ac([1,qs([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Bt(t),this.kernel=this.addWeight("kernel",[t[t.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(t,e){return B(()=>{if(t=t,t.length!==2)throw new M(`SimpleRNNCell expects 2 input Tensors, got ${t.length}.`);let n=t[1];t=t[0];let o=e.training==null?!1:e.training;0yr(t),rate:this.dropout,training:o,dropoutFunc:this.dropoutFunc})),0yr(n),rate:this.recurrentDropout,training:o,dropoutFunc:this.dropoutFunc}));let s,i=this.dropoutMask,a=this.recurrentDropoutMask;i!=null?s=To(D(t,i),this.kernel.read()):s=To(t,this.kernel.read()),this.bias!=null&&(s=fn(s,this.bias.read())),a!=null&&(n=D(n,a));let u=X(s,To(n,this.recurrentKernel.read()));return this.activation!=null&&(u=this.activation.apply(u)),[u,u]})}getConfig(){let t=super.getConfig(),e={units:this.units,activation:js(this.activation),useBias:this.useBias,kernelInitializer:Te(this.kernelInitializer),recurrentInitializer:Te(this.recurrentInitializer),biasInitializer:Te(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),recurrentRegularizer:me(this.recurrentRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:ze(this.kernelConstraint),recurrentConstraint:ze(this.recurrentConstraint),biasConstraint:ze(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},t),e)}};wc.className="SimpleRNNCell";Q.registerClass(wc);var sf=class extends Tn{constructor(t){t.cell=new wc(t),super(t)}call(t,e){return B(()=>{this.cell.dropoutMask!=null&&(vt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(vt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return new t(e)}};sf.className="SimpleRNN";Q.registerClass(sf);var Cc=class extends ll{constructor(t){if(super(t),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",t.resetAfter)throw new M("GRUCell does not support reset_after parameter set to true.");this.units=t.units,Ze(this.units,"units"),this.activation=Xs(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=Xs(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=de(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=be(t.kernelRegularizer),this.recurrentRegularizer=be(t.recurrentRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.kernelConstraint=Be(t.kernelConstraint),this.recurrentConstraint=Be(t.recurrentConstraint),this.biasConstraint=Be(t.biasConstraint),this.dropout=ac([1,qs([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=ac([1,qs([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Bt(t);let e=t[t.length-1];this.kernel=this.addWeight("kernel",[e,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(t,e){return B(()=>{if(t=t,t.length!==2)throw new M(`GRUCell expects 2 input Tensors (inputs, h, c), got ${t.length}.`);let n=e.training==null?!1:e.training,o=t[1];t=t[0],0yr(t),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0yr(o),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));let s=this.dropoutMask,i=this.recurrentDropoutMask,a,u,l;0{this.cell.dropoutMask!=null&&(vt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(vt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return e.implmentation===0&&(e.implementation=1),new t(e)}};af.className="GRU";Q.registerClass(af);var ul=class extends ll{constructor(t){super(t),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=t.units,Ze(this.units,"units"),this.activation=Xs(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=Xs(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=de(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=t.unitForgetBias,this.kernelRegularizer=be(t.kernelRegularizer),this.recurrentRegularizer=be(t.recurrentRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.kernelConstraint=Be(t.kernelConstraint),this.recurrentConstraint=Be(t.recurrentConstraint),this.biasConstraint=Be(t.biasConstraint),this.dropout=ac([1,qs([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=ac([1,qs([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){var e;t=Bt(t);let n=t[t.length-1];this.kernel=this.addWeight("kernel",[n,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let o;if(this.useBias){if(this.unitForgetBias){let s=this.biasInitializer,i=this.units;o=new(e=class extends dn{apply(u,l){let c=s.apply([i]),p=new yu().apply([i]),m=s.apply([i*2]);return Tv(Tv(c,p),m)}},e.className="CustomInit",e)}else o=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,o,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(t,e){return B(()=>{let n=e.training==null?!1:e.training;if(t=t,t.length!==3)throw new M(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let o=t[1],s=t[2];t=t[0],0yr(t),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0yr(o),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));let i=this.dropoutMask,a=this.recurrentDropoutMask,u,l,c,p;0{this.cell.dropoutMask!=null&&(vt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(vt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return e.implmentation===0&&(e.implementation=1),new t(e)}};lf.className="LSTM";Q.registerClass(lf);var Ic=class extends ll{constructor(t){super(t),this.cells=t.cells}get stateSize(){let t=[];for(let e of this.cells.slice().reverse())Array.isArray(e.stateSize)?t.push(...e.stateSize):t.push(e.stateSize);return t}call(t,e){return B(()=>{t=t;let n=t.slice(1),o=[];for(let a of this.cells.slice().reverse())Array.isArray(a.stateSize)?o.push(n.splice(0,a.stateSize.length)):o.push(n.splice(0,1));o.reverse();let s=[],i;for(let a=0;a{Hs(`RNNCell_${o}`,()=>{n.build(t),Array.isArray(n.stateSize)?e=n.stateSize[0]:e=n.stateSize,t=[t[0],e]})}),this.built=!0}getConfig(){let t=super.getConfig(),e=s=>({className:s.getClassName(),config:s.getConfig()}),o={cells:this.cells.map(e)};return Object.assign(Object.assign({},t),o)}static fromConfig(t,e,n={}){let o=[];for(let s of e.cells)o.push(gn(s,n));return new t({cells:o})}get trainableWeights(){if(!this.trainable)return[];let t=[];for(let e of this.cells)t.push(...e.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let e of this.cells)t.push(...e.nonTrainableWeights);if(!this.trainable){let e=[];for(let n of this.cells)e.push(...n.trainableWeights);return e.concat(t)}return t}getWeights(){let t=[];for(let e of this.cells)t.push(...e.weights);return Ih(t)}setWeights(t){let e=[];for(let n of this.cells){let o=n.weights.length,s=t.splice(o);for(let i=0;is!=null?s(t(),e):Ay(t(),e),a=()=>xu(i,t,n);return!o||o<=1?De(a().clone()):Array(o).fill(void 0).map(a).map(l=>De(l.clone()))}var Q8=function(r,t){var e={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&t.indexOf(n)<0&&(e[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,n=Object.getOwnPropertySymbols(r);o{if(this.cell.dropoutMask!=null&&(vt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(vt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),e&&e.constants)throw new M("ConvRNN2D cell does not support constants");let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}computeOutputShape(t){let e=this.computeSingleOutputShape(t);return this.returnSequences||(e=[e[0],...e.slice(2)]),this.returnState&&(e=[e,...Array(2).fill([t[0],...e.slice(-3)])]),e}getInitialState(t){return B(()=>{let{stateSize:e}=this.cell,n=t.shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.slice(2)],i=Ne(s);return Array.isArray(e)?Array(e.length).fill(i):[i]})}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new vn("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.slice(2)];if(n[0]==null)throw new M("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(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>Ne(s)):this.states_=[Ne(s)];else if(t==null)vt(this.states_),this.keptStates!=null&&(vt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>Ne(s)):this.states_[0]=Ne(s);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new M(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);e?this.keptStates.push(this.states_.slice()):vt(this.states_);for(let a=0;aDe(a.clone()))})}computeSingleOutputShape(t){let{dataFormat:e,filters:n,kernelSize:o,padding:s,strides:i,dilationRate:a}=this.cell,u=e==="channelsFirst",l=t[u?3:2],c=t[u?4:3],p=Nn(l,o[0],s,i[0],a[0]),m=Nn(c,o[1],s,i[1],a[1]);return[...t.slice(0,2),...u?[n,p,m]:[p,m,n]]}};db.className="ConvRNN2D";var Sc=class extends ul{constructor(t){let{filters:e,kernelSize:n,strides:o,padding:s,dataFormat:i,dilationRate:a}=t;super(Object.assign(Object.assign({},t),{units:e})),this.filters=e,Ze(this.filters,"filters"),this.kernelSize=Cu(n,2,"kernelSize"),this.kernelSize.forEach(u=>Ze(u,"kernelSize")),this.strides=Cu(o||1,2,"strides"),this.strides.forEach(u=>Ze(u,"strides")),this.padding=s||"valid",pn(this.padding),this.dataFormat=i||"channelsLast",Fe(this.dataFormat),this.dilationRate=Cu(a||1,2,"dilationRate"),this.dilationRate.forEach(u=>Ze(u,"dilationRate"))}build(t){var e;t=Bt(t);let n=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[n]==null)throw new M(`The channel dimension of the input should be defined. Found ${t[n]}`);let o=t[n],s=4,i=this.kernelSize.concat([o,this.filters*s]);this.kernel=this.addWeight("kernel",i,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let a=this.kernelSize.concat([this.filters,this.filters*s]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",a,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let u;if(this.unitForgetBias){let l=this.biasInitializer,c=this.filters;u=new(e=class extends dn{apply(m,f){let d=l.apply([c]),h=cr([c]),g=l.apply([c*2]);return Nm([d,h,g])}},e.className="CustomInit",e)}else u=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*s],null,u,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(t,e){return B(()=>{if(t.length!==3)throw new M(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let n=e.training||!1,o=t[0],s=t[1],i=t[2],a=4;0yr(o),rate:this.dropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let u=this.dropoutMask,l=(rt,ot,at)=>!ot||!ot[at]?rt:D(ot[at],rt),c=l(o,u,0),p=l(o,u,1),m=l(o,u,2),f=l(o,u,3);0yr(s),rate:this.recurrentDropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let d=this.recurrentDropoutMask,h=l(s,d,0),g=l(s,d,1),x=l(s,d,2),b=l(s,d,3),w=3,[C,N,_,A]=mr(this.kernel.read(),a,w),[$,F,P,V]=this.useBias?mr(this.bias.read(),a):[null,null,null,null];c=this.inputConv(c,C,$,this.padding),p=this.inputConv(p,N,F,this.padding),m=this.inputConv(m,_,P,this.padding),f=this.inputConv(f,A,V,this.padding);let[G,W,q,H]=mr(this.recurrentKernel.read(),a,w);h=this.recurrentConv(h,G),g=this.recurrentConv(g,W),x=this.recurrentConv(x,q),b=this.recurrentConv(b,H);let j=this.recurrentActivation.apply(X(c,h)),Y=this.recurrentActivation.apply(X(p,g)),Z=X(D(Y,i),D(j,this.activation.apply(X(m,x)))),et=D(this.recurrentActivation.apply(X(f,b)),this.activation.apply(Z));return[et,et,Z]})}getConfig(){let t=super.getConfig(),{units:e}=t,n=Q8(t,["units"]),o={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),o)}inputConv(t,e,n,o){let s=In(t,e,this.strides,o||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?fn(s,n,this.dataFormat):s}recurrentConv(t,e){return In(t,e,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Sc.className="ConvLSTM2DCell";Q.registerClass(Sc);var uf=class extends db{constructor(t){let e=new Sc(t);super(Object.assign(Object.assign({},t),{cell:e}))}static fromConfig(t,e){return new t(e)}};uf.className="ConvLSTM2D";Q.registerClass(uf);var vc=class extends $t{constructor(t){super(t),this.rate=Math.max(Math.min(t.rate,1),0),this.noiseShape=t.noiseShape,this.seed=t.seed,this.supportsMasking=!0}getNoiseShape(t){if(this.noiseShape==null)return this.noiseShape;let e=t.shape,n=[];for(let o=0;o{this.invokeCallHook(t,e);let n=Nt(t);if(0Ay(n,this.rate,s,this.seed),()=>n,o)}return t})}getConfig(){let t={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},e=super.getConfig();return Object.assign(t,e),t}dispose(){return super.dispose()}};vc.className="Dropout";Q.registerClass(vc);var cf=class extends vc{constructor(t){super(t),this.inputSpec=[{ndim:3}]}getNoiseShape(t){let e=t.shape;return[e[0],1,e[2]]}};cf.className="SpatialDropout1D";Q.registerClass(cf);var pf=class extends $t{constructor(t){if(super(t),this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",t.batchInputShape==null&&t.inputShape==null&&t.inputDim!=null){let e=null;t.batchSize!=null&&(e=t.batchSize),this.batchInputShape=[e,t.inputDim]}this.units=t.units,Ze(this.units,"units"),this.activation=Xs(t.activation),t.useBias!=null&&(this.useBias=t.useBias),this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Be(t.kernelConstraint),this.biasConstraint=Be(t.biasConstraint),this.kernelRegularizer=be(t.kernelRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.activityRegularizer=be(t.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(t){t=Bt(t);let e=t[t.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[e,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]:e}}],this.built=!0}computeOutputShape(t){t=Bt(t);let e=t.slice();return e[e.length-1]=this.units,e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t),o=Iy(this.activation.getClassName()),s;return o!=null?s=To(n,this.kernel.read(),o,this.bias?this.bias.read():null):(s=To(n,this.kernel.read()),this.bias!=null&&(s=fn(s,this.bias.read())),this.activation!=null&&(s=this.activation.apply(s))),s})}getConfig(){let t={units:this.units,activation:js(this.activation),useBias:this.useBias,kernelInitializer:Te(this.kernelInitializer),biasInitializer:Te(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:ze(this.kernelConstraint),biasConstraint:ze(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}};pf.className="Dense";Q.registerClass(pf);var mf=class extends $t{constructor(t){t=t||{},super(t),this.inputSpec=[{minNDim:3}],this.dataFormat=t.dataFormat}computeOutputShape(t){t=Bt(t);for(let e of t.slice(1))if(e==null)throw new M(`The shape of the input to "Flatten" is not fully defined (got ${t.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[t[0],No(t,1)]}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t);if(this.dataFormat==="channelsFirst"&&n.rank>1){let o=[0];for(let s=2;s{this.invokeCallHook(t,e);let n=Nt(t);return this.activation.apply(n)})}getConfig(){let t={activation:js(this.activation)},e=super.getConfig();return Object.assign(t,e),t}};ff.className="Activation";Q.registerClass(ff);var df=class extends $t{constructor(t){super(t),this.n=t.n,this.inputSpec=[{ndim:2}]}computeOutputShape(t){return[t[0],this.n,t[1]]}call(t,e){return B(()=>(t=Nt(t),$$(t,this.n)))}getConfig(){let t={n:this.n},e=super.getConfig();return Object.assign(t,e),t}};df.className="RepeatVector";Q.registerClass(df);var hf=class extends $t{constructor(t){super(t),this.targetShape=t.targetShape;for(let e=0;e{this.invokeCallHook(t,e);let n=Nt(t),o=n.shape,s=o.slice(0,1).concat(this.fixUnknownDimension(o.slice(1),this.targetShape));return R(n,s)})}getConfig(){let t={targetShape:this.targetShape},e=super.getConfig();return Object.assign(t,e),t}};hf.className="Reshape";Q.registerClass(hf);var gf=class extends $t{constructor(t){if(super(t),t.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(t.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${t.dims} instead.`);let e=Zr(1,t.dims.length+1);if(!y.arraysEqual(t.dims.slice().sort(),e))throw new Error("Invalid permutation `dims`: "+JSON.stringify(t.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=t.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new ye({ndim:this.dims.length+1})]}computeOutputShape(t){t=Bt(t);let e=t.slice();return this.dims.forEach((n,o)=>{e[o+1]=t[n]}),e}call(t,e){return Ot(Nt(t),this.dimsIncludingBatch)}getConfig(){let t={dims:this.dims},e=super.getConfig();return Object.assign(t,e),t}};gf.className="Permute";Q.registerClass(gf);var xf=class extends $t{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null?this.maskValue=t.maskValue==null?0:t.maskValue:this.maskValue=0}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={maskValue:this.maskValue};return Object.assign(e,t),e}computeMask(t,e){let n=Nt(t),o=-1;return qu(Bs(n,this.maskValue),o)}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t),o=-1,s=!0,i=qu(Bs(n,this.maskValue),o,s);return D(n,J(i,n.dtype))})}};xf.className="Masking";Q.registerClass(xf);var yf=class extends $t{constructor(t){if(super(t),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",t.batchInputShape==null&&t.inputShape==null){let e=null;t.batchSize!=null&&(e=t.batchSize),t.inputLength==null?this.batchInputShape=[e,null]:this.batchInputShape=[e].concat(xe(t.inputLength))}this.inputDim=t.inputDim,Ze(this.inputDim,"inputDim"),this.outputDim=t.outputDim,Ze(this.outputDim,"outputDim"),this.embeddingsInitializer=de(t.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=be(t.embeddingsRegularizer),this.activityRegularizer=be(t.activityRegularizer),this.embeddingsConstraint=Be(t.embeddingsConstraint),this.maskZero=t.maskZero,this.supportsMasking=t.maskZero,this.inputLength=t.inputLength}build(t){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(t){}computeMask(t,e){return B(()=>this.maskZero?(t=Nt(t),Bs(t,It(t))):null)}computeOutputShape(t){if(t=Bt(t),this.inputLength==null)return[...t,this.outputDim];let e=xe(this.inputLength);if(e.length!==t.length-1)throw new M(`"inputLength" is ${this.inputLength}, but received input shape has shape ${t}`);{let n=0;for(let o=0;o{this.invokeCallHook(t,e);let n=Nt(t);n.dtype!=="int32"&&(n=no(n,"int32"));let o=_y(this.embeddings.read(),R(n,[n.size]));return R(o,Bt(this.computeOutputShape(n.shape)))})}getConfig(){let t={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Te(this.embeddingsInitializer),embeddingsRegularizer:me(this.embeddingsRegularizer),activityRegularizer:me(this.activityRegularizer),embeddingsConstraint:ze(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},e=super.getConfig();return Object.assign(t,e),t}};yf.className="Embedding";Q.registerClass(yf);var pl=class extends $t{constructor(t){super(t||{}),this.supportsMasking=!0}mergeFunction(t){throw new St}computeElementwiseOpOutputShape(t,e){if(t==null||e==null)return null;if(t.length1)throw new M(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(t)}.`);let n=t[0]==null?null:t[0].slice(1);for(let s=1;ss.length);t.indexOf(null)===-1&&vo(o).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(t,e){return B(()=>{if(t=t,this.reshapeRequired){let n=[],o=t.map(s=>s.rank);if(o.indexOf(null)===-1){let s=qs(o);for(let i of t){let a=i.rank;for(let u=0;u1){let c=Zr(1,l).concat([0]);n.push(Ot(u,c)),s=!0}else n.push(u)}let i=this.mergeFunction(n),a=i.rank;if(s){if(a==null){let u=i.shape,l=u.length,c=u[l-1],p=[c].concat(u.slice(0,u.length-1));i=R(Ot(R(i,[-1,c]),[1,0]),p)}else if(a>1){let u=[a-1].concat(Zr(0,a-1));i=Ot(i,u)}}return i}}else return this.mergeFunction(t)})}computeOutputShape(t){t=t;let e;t[0]==null?e=null:e=t[0].slice(1);for(let o=1;o{if(e==null)return null;if(!Array.isArray(e))throw new M("`mask` should be an Array");if(!Array.isArray(t))throw new M("`inputs` should be an Array");if(e.length!==t.length)throw new M(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${t.length} vs ${e.length})`);if(e.every(o=>o==null))return null;e=e.map(o=>o==null?o:rr(o,0));let n=e[0];for(let o=1;o{let e=t[0].clone();for(let n=1;n{let e=t[0].clone();for(let n=1;n{let e=t[0].clone();for(let n=1;n{let e=t[0];for(let n=1;n{let e=t[0];for(let n=1;n1)throw new M("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(t))}mergeFunction(t){return B(()=>Nm(t,this.axis))}computeOutputShape(t){if(!(Array.isArray(t)&&Array.isArray(t[0])))throw new M("A `Concatenate` layer should be called on a list of inputs.");let e=t,n=e[0].slice(),o=this.axis<0?n.length+this.axis:this.axis;for(let s of e.slice(1)){if(n[o]==null||s[o]==null){n[o]=null;break}n[o]+=s[o]}return n}computeMask(t,e){if(e==null)return null;if(!Array.isArray(e))throw new M("`mask` should be an array for Concatenate");if(!Array.isArray(t))throw new M("`inputs` should be an array for Concatenate");if(e.length!==t.length)throw new M(`Mismatch in the length of mask (${e.length}) and the legnth of inputs (${t.length})`);return B(()=>{let n=!0;if(e.forEach(i=>{if(i!=null){n=!1;return}}),n)return null;let o=[];for(let i=0;i3||t.shape.length>3)throw new St("batchDot is not implemented for tensors of 4D or higher rank yet");if(y.assert(r.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${r.shape.length}`),y.assert(r.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof e=="number"&&(e=[e,e]),r.dtype==="complex64"||t.dtype==="complex64")throw new St("batchDot is not implemented for complex64-type Tensors yet.");let n=r.shape.length,o=t.shape.length;e==null&&(e=[n-1,o-2]);let s=e;return B(()=>{let i;if(n>o){i=n-o;let u=[];for(let l=0;ln){i=o-n;let u=[];for(let l=0;l0){let u;n>o?u=n+o-3:u=n-1;let l=[];for(let c=u;c"A `Dot` layer should be called on a list of exactly 2 inputs.");let e=t[0],n=t[1];if(e.length>3||n.length>3)throw new St("Dot layer does not support tensors of 4D or higher rank yet.");let o=this.interpretAxes(e,n);if(e[o[0]]!==n[o[1]])throw new M(`Dimension incompatibility: ${e[o[0]]} !== ${n[o[1]]}`)}mergeFunction(t){if(t.length!==2)throw new M(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${t.length} input(s).`);let e=t[0],n=t[1],o;return Array.isArray(this.axes)?o=this.axes.map((s,i)=>$h(s,t[i].shape.length)):o=[$h(this.axes,e.shape.length),$h(this.axes,n.shape.length)],this.normalize&&(e=Sh(e,o[0]),n=Sh(n,o[1])),tY(e,n,o)}interpretAxes(t,e){let n;return Array.isArray(this.axes)?n=this.axes:n=[$h(this.axes,t.length),$h(this.axes,e.length)],n}computeOutputShape(t){y.assert(Array.isArray(t)&&t.length===2&&Array.isArray(t[0])&&Array.isArray(t[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let e=t[0].slice(),n=t[1].slice();if(e.length>3||n.length>3)throw new St("Dot layer does not support tensors of 4D or higher rank yet.");let o=this.interpretAxes(e,n);e.splice(o[0],1),n.splice(o[1],1),n.splice(0,1);let s=e.concat(n);return s.length===1&&s.push(1),s}computeMask(t,e){return null}getConfig(){let t={axes:this.axes,normalize:this.normalize},e=super.getConfig();return Object.assign(t,e),t}};Nf.className="Dot";Q.registerClass(Nf);var Tf=class extends $t{constructor(t){super(t),this.supportsMasking=!0,this.stddev=t.stddev}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={stddev:this.stddev};return Object.assign(e,t),e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t);return xu(()=>X(Tm(n.shape,0,this.stddev),n),()=>n,e.training||!1)})}};Tf.className="GaussianNoise";Q.registerClass(Tf);var kf=class extends $t{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={rate:this.rate};return Object.assign(e,t),e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t);return this.rate>0&&this.rate<1?xu(()=>{let s=Math.sqrt(this.rate/(1-this.rate));return D(n,Tm(n.shape,1,s))},()=>n,e.training||!1):n})}};kf.className="GaussianDropout";Q.registerClass(kf);var Ef=class extends $t{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate,this.noiseShape=t.noiseShape}_getNoiseShape(t){return this.noiseShape||Nt(t).shape}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={rate:this.rate};return Object.assign(e,t),e}call(t,e){return B(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(t);return xu(()=>{let s=Nt(t),i=1.6732632423543772,a=1.0507009873554805,u=-i*a,l=ln(zi(n),this.rate);l=no(l,"float32");let c=((1-this.rate)*(1+this.rate*u**2))**-.5,p=-c*u*this.rate,m=X(D(s,l),D(X(l,-1),u));return X(D(m,c),p)},()=>Nt(t),e.training||!1)}return t})}};Ef.className="AlphaDropout";Q.registerClass(Ef);function Dh(r,t,e,n,o,s=.001){let i;if(r.rank===2)i=xx(r,t,e,n,o,s);else if(r.rank===3)i=yx(r,t,e,n,o,s);else if(r.rank===4)i=bx(r,t,e,n,o,s);else throw new St(`batchNormalization is not implemented for array of rank ${r.rank} yet`);return i}function eY(r,t,e,n,o=.001){return B(()=>{let s=Zu(r,n),i=s.mean,a=s.variance;return[Dh(r,i,a,e,t,o),i,a]})}function rY(r,t,e,n,o=.001){return B(()=>{let s=Zu(r,n),i=s.mean,a=s.variance,u=[];for(let d of Zr(0,r.rank))n.indexOf(d)!==-1?u.push(1):u.push(r.shape[d]);let l=R(i,u),c=R(a,u),p=t==null?null:R(t,u),m=e==null?null:R(e,u);return[Dh(r,l,c,m,p,o),i,a]})}function nY(r,t,e,n,o=.001){return y.arraysEqual(n.slice().sort(),Zr(0,r.rank-1))?eY(r,t,e,n,o):rY(r,t,e,n,o)}var _f=class extends $t{constructor(t){t==null&&(t={}),super(t),this.supportsMasking=!0,this.axis=t.axis==null?-1:t.axis,this.momentum=t.momentum==null?.99:t.momentum,this.epsilon=t.epsilon==null?.001:t.epsilon,this.center=t.center==null?!0:t.center,this.scale=t.scale==null?!0:t.scale,this.betaInitializer=de(t.betaInitializer||"zeros"),this.gammaInitializer=de(t.gammaInitializer||"ones"),this.movingMeanInitializer=de(t.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=de(t.movingVarianceInitializer||"ones"),this.betaConstraint=Be(t.betaConstraint),this.gammaConstraint=Be(t.gammaConstraint),this.betaRegularizer=be(t.betaRegularizer),this.gammaRegularizer=be(t.gammaRegularizer)}build(t){t=Bt(t);let e=this.axis>=0?this.axis:this.axis+t.length,n=t[e];if(n==null)throw new M(`Axis ${e} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(t)}.`);this.inputSpec=[new ye({ndim:t.length,axes:{[e]:n}})];let o=[n];this.scale&&(this.gamma=this.addWeight("gamma",o,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",o,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",o,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",o,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(t,e){return B(()=>{let n=e.training==null?!1:e.training,o=Nt(t),s=o.shape,i=s.length,a=Zr(0,i),u=this.axis>=0?this.axis:this.axis+i;a.splice(u,1);let l=Io(1,i);l[u]=s[u];let c=a.slice();c.sort();let p=!y.arraysEqual(c,Zr(0,i).slice(0,i-1)),m=()=>{if(p){let b=R(this.movingMean.read(),l),w=R(this.movingVariance.read(),l),C=this.center?R(this.beta.read(),l):null,N=this.scale?R(this.gamma.read(),l):null;return Dh(o,b,w,C,N,this.epsilon)}else return Dh(o,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!n)return m();let[f,d,h]=nY(o,this.gamma.read(),this.beta.read(),a,this.epsilon),g=(b,w,C)=>{B(()=>{let N=1-C,_=b.read(),A=D(ct(_,w),N);b.write(ct(_,A))})};return(()=>{g(this.movingMean,d,this.momentum),g(this.movingVariance,h,this.momentum)})(),f})}getConfig(){let t={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Te(this.betaInitializer),gammaInitializer:Te(this.gammaInitializer),movingMeanInitializer:Te(this.movingMeanInitializer),movingVarianceInitializer:Te(this.movingVarianceInitializer),betaRegularizer:me(this.betaRegularizer),gammaRegularizer:me(this.gammaRegularizer),betaConstraint:ze(this.betaConstraint),gammaConstraint:ze(this.gammaConstraint)},e=super.getConfig();return Object.assign(t,e),t}};_f.className="BatchNormalization";Q.registerClass(_f);var Af=class extends $t{constructor(t){if(t==null&&(t={}),super(t),this.axis=t.axis==null?-1:t.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let 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)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=t.epsilon==null?.001:t.epsilon,this.center=t.center==null?!0:t.center,this.scale=t.scale==null?!0:t.scale,this.betaInitializer=de(t.betaInitializer||"zeros"),this.gammaInitializer=de(t.gammaInitializer||"ones"),this.betaRegularizer=be(t.betaRegularizer),this.gammaRegularizer=be(t.gammaRegularizer),this.supportsMasking=!0}build(t){t=Bt(t);let e=t.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let s=0;s=e)throw new Error(`Invalid axis: ${s}`);if(this.axis.length!==vo(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(s=>t[s]),o=!0;this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,o):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,o):this.beta=null,this.built=!0}call(t,e){let n=Nt(t),o=n.shape,s=o.length;return B(()=>{let{mean:a,variance:u}=Zu(n,this.axis,!0),l=Io(1,s);for(let h of this.axis)l[h]=o[h];let c=h=>h!=null&&h.shape.length!==s?R(h,l):h,p=this.scale?c(this.gamma.read()):null,m=this.center?c(this.beta.read()):null,f=[],d=[];for(let h=0;h{if(r.rank!==4)throw new M(`temporalPadding expects input tensor to be 4-D, but received a ${r.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new M("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(e==null&&(e=mn()),e!=="channelsLast"&&e!=="channelsFirst")throw new M(`Unknown data format: ${e}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let n;return e==="channelsFirst"?n=[[0,0],[0,0],t[0],t[1]]:n=[[0,0],t[0],t[1],[0,0]],cn(r,n)})}var $f=class extends $t{constructor(t){if(t==null&&(t={}),super(t),this.dataFormat=t.dataFormat==null?mn():t.dataFormat,t.padding==null)this.padding=[[1,1],[1,1]];else if(typeof t.padding=="number")this.padding=[[t.padding,t.padding],[t.padding,t.padding]];else{if(t.padding=t.padding,t.padding.length!==2)throw new M(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${t.padding.length} array.`);let e,n;if(typeof t.padding[0]=="number")e=[t.padding[0],t.padding[0]],n=[t.padding[1],t.padding[1]];else{if(t.padding=t.padding,t.padding[0].length!==2)throw new M(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${t.padding[0].length} array.`);if(e=t.padding[0],t.padding[1].length!==2)throw new M(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${t.padding[1].length} array.`);n=t.padding[1]}this.padding=[e,n]}this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){t=Bt(t);let e,n;return this.dataFormat==="channelsFirst"?(t[2]!=null&&t[2]>=0?e=t[2]+this.padding[0][0]+this.padding[0][1]:e=null,t[3]!=null&&t[3]>=0?n=t[3]+this.padding[1][0]+this.padding[1][1]:n=null,[t[0],t[1],e,n]):(t[1]!=null&&t[1]>=0?e=t[1]+this.padding[0][0]+this.padding[0][1]:e=null,t[2]!=null&&t[2]>=0?n=t[2]+this.padding[1][0]+this.padding[1][1]:n=null,[t[0],e,n,t[3]])}call(t,e){return B(()=>oY(Nt(t),this.padding,this.dataFormat))}getConfig(){let t={padding:this.padding,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};$f.className="ZeroPadding2D";Q.registerClass($f);function wb(r,t,e,n,o,s){return B(()=>{Fe(o),Iv(s),pn(n),e==null&&(e=[1,1]),n==null&&(n="valid"),o==null&&(o=mn()),s==null&&(s="max"),r=Ah(r,o);let i,a=n==="same"?"same":"valid";return s==="max"?i=ru(r,t,e,a):i=Yl(r,t,e,a),o==="channelsFirst"&&(i=Ot(i,[0,3,1,2])),i})}function CD(r,t,e,n,o,s){return B(()=>{Fe(o),Iv(s),pn(n),e==null&&(e=[1,1,1]),n==null&&(n="valid"),o==null&&(o=mn()),s==null&&(s="max"),r=zv(r,o);let i,a=n==="same"?"same":"valid";return s==="max"?i=Hx(r,t,e,a):i=gx(r,t,e,a),o==="channelsFirst"&&(i=Ot(i,[0,4,1,2,3])),i})}var hb=class extends $t{constructor(t){if(t.poolSize==null&&(t.poolSize=2),super(t),typeof t.poolSize=="number")this.poolSize=[t.poolSize];else if(Array.isArray(t.poolSize)&&t.poolSize.length===1&&typeof t.poolSize[0]=="number")this.poolSize=t.poolSize;else throw new M(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(t.poolSize)}`);if(Ze(this.poolSize,"poolSize"),t.strides==null)this.strides=this.poolSize;else if(typeof t.strides=="number")this.strides=[t.strides];else if(Array.isArray(t.strides)&&t.strides.length===1&&typeof t.strides[0]=="number")this.strides=t.strides;else throw new M(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(t.strides)}`);Ze(this.strides,"strides"),this.padding=t.padding==null?"valid":t.padding,pn(this.padding),this.inputSpec=[new ye({ndim:3})]}computeOutputShape(t){t=Bt(t);let e=Nn(t[1],this.poolSize[0],this.padding,this.strides[0]);return[t[0],e,t[2]]}call(t,e){return B(()=>{this.invokeCallHook(t,e),t=nl(Nt(t),2);let n=this.poolingFunction(Nt(t),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Mn(n,[2])})}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides},e=super.getConfig();return Object.assign(t,e),t}},Df=class extends hb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),wb(t,e,n,o,s,"max")}};Df.className="MaxPooling1D";Q.registerClass(Df);var Rf=class extends hb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),wb(t,e,n,o,s,"avg")}};Rf.className="AveragePooling1D";Q.registerClass(Rf);var gb=class extends $t{constructor(t){if(t.poolSize==null&&(t.poolSize=[2,2]),super(t),this.poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize],t.strides==null)this.strides=this.poolSize;else if(Array.isArray(t.strides)){if(t.strides.length!==2)throw new M(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${t.strides.length}.`);this.strides=t.strides}else this.strides=[t.strides,t.strides];Ze(this.poolSize,"poolSize"),Ze(this.strides,"strides"),this.padding=t.padding==null?"valid":t.padding,this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Fe(this.dataFormat),pn(this.padding),this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){t=Bt(t);let e=this.dataFormat==="channelsFirst"?t[2]:t[1],n=this.dataFormat==="channelsFirst"?t[3]:t[2];return e=Nn(e,this.poolSize[0],this.padding,this.strides[0]),n=Nn(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[t[0],t[1],e,n]:[t[0],e,n,t[3]]}call(t,e){return B(()=>(this.invokeCallHook(t,e),this.poolingFunction(Nt(t),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Ff=class extends gb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),wb(t,e,n,o,s,"max")}};Ff.className="MaxPooling2D";Q.registerClass(Ff);var Of=class extends gb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),wb(t,e,n,o,s,"avg")}};Of.className="AveragePooling2D";Q.registerClass(Of);var xb=class extends $t{constructor(t){if(t.poolSize==null&&(t.poolSize=[2,2,2]),super(t),this.poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize,t.poolSize],t.strides==null)this.strides=this.poolSize;else if(Array.isArray(t.strides)){if(t.strides.length!==3)throw new M(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${t.strides.length}.`);this.strides=t.strides}else this.strides=[t.strides,t.strides,t.strides];Ze(this.poolSize,"poolSize"),Ze(this.strides,"strides"),this.padding=t.padding==null?"valid":t.padding,this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Fe(this.dataFormat),pn(this.padding),this.inputSpec=[new ye({ndim:5})]}computeOutputShape(t){t=Bt(t);let e=this.dataFormat==="channelsFirst"?t[2]:t[1],n=this.dataFormat==="channelsFirst"?t[3]:t[2],o=this.dataFormat==="channelsFirst"?t[4]:t[3];return e=Nn(e,this.poolSize[0],this.padding,this.strides[0]),n=Nn(n,this.poolSize[1],this.padding,this.strides[1]),o=Nn(o,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[t[0],t[1],e,n,o]:[t[0],e,n,o,t[4]]}call(t,e){return B(()=>(this.invokeCallHook(t,e),this.poolingFunction(Nt(t),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Pf=class extends xb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),CD(t,e,n,o,s,"max")}};Pf.className="MaxPooling3D";Q.registerClass(Pf);var Lf=class extends xb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),CD(t,e,n,o,s,"avg")}};Lf.className="AveragePooling3D";Q.registerClass(Lf);var yb=class extends $t{constructor(t){super(t),this.inputSpec=[new ye({ndim:3})]}computeOutputShape(t){return[t[0],t[2]]}call(t,e){throw new St}},Mf=class extends yb{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=Nt(t);return ve(n,1)})}};Mf.className="GlobalAveragePooling1D";Q.registerClass(Mf);var zf=class extends yb{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=Nt(t);return Ir(n,1)})}};zf.className="GlobalMaxPooling1D";Q.registerClass(zf);var bb=class extends $t{constructor(t){super(t),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Fe(this.dataFormat),this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){return t=t,this.dataFormat==="channelsLast"?[t[0],t[3]]:[t[0],t[1]]}call(t,e){throw new St}getConfig(){let t={dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Bf=class extends bb{call(t,e){return B(()=>{let n=Nt(t);return this.dataFormat==="channelsLast"?ve(n,[1,2]):ve(n,[2,3])})}};Bf.className="GlobalAveragePooling2D";Q.registerClass(Bf);var Vf=class extends bb{call(t,e){return B(()=>{let n=Nt(t);return this.dataFormat==="channelsLast"?Ir(n,[1,2]):Ir(n,[2,3])})}};Vf.className="GlobalMaxPooling2D";Q.registerClass(Vf);var Cb=class extends $t{constructor(t){super(t),this.layer=t.layer}build(t){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(t){this.layer!=null&&(this.layer.trainable=t)}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(t){this.layer.setWeights(t)}getConfig(){let t={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},e=super.getConfig();return Object.assign(t,e),t}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(t)}static fromConfig(t,e,n={}){let o=e.layer,s=gn(o,n);delete e.layer;let i={layer:s};return Object.assign(i,e),new t(i)}},Gf=class extends Cb{constructor(t){super(t),this.supportsMasking=!0}build(t){if(t=Bt(t),t.length<3)throw new M(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(t)}`);this.inputSpec=[{shape:t}];let e=[t[0]].concat(t.slice(2));this.layer.built||(this.layer.build(e),this.layer.built=!0),super.build(t)}computeOutputShape(t){t=Bt(t);let e=[t[0]].concat(t.slice(2)),n=this.layer.computeOutputShape(e),o=t[1];return[n[0],o].concat(n.slice(1))}call(t,e){return B(()=>(t=Nt(t),Vv((i,a)=>[Nt(this.layer.call(i,e)),[]],t,[],!1,null,null,!1,!0)[1]))}};Gf.className="TimeDistributed";Q.registerClass(Gf);function sY(r){Wi(T$,"BidirectionalMergeMode",r)}var iY="concat",Wf=class extends Cb{constructor(t){super(t);let e=t.layer.getConfig(),n={};n.className=t.layer.getClassName(),n.config=e,this.forwardLayer=gn(n),e.goBackwards=e.goBackwards!==!0;let o={};if(o.className=t.layer.getClassName(),o.config=e,this.backwardLayer=gn(o),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=t.mergeMode===void 0?iY:t.mergeMode,sY(this.mergeMode),t.weights)throw new St("weights support is not implemented for Bidirectional layer yet.");this._stateful=t.layer.stateful,this.returnSequences=t.layer.returnSequences,this.returnState=t.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=t.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(t){this._trainable=t,this.forwardLayer!=null&&(this.forwardLayer.trainable=t),this.backwardLayer!=null&&(this.backwardLayer.trainable=t)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(t){let e=t.length,n=Math.floor(e/2);this.forwardLayer.setWeights(t.slice(0,n)),this.backwardLayer.setWeights(t.slice(n))}computeOutputShape(t){let e=this.forwardLayer.computeOutputShape(t);Array.isArray(e)&&Array.isArray(e[0])||(e=[e]),e=e;let n,o,s;return this.returnState&&(s=e.slice(1)),n=e[0],n=n,this.mergeMode==="concat"?(n[n.length-1]*=2,o=[n]):this.mergeMode==null?o=[n,n.slice()]:o=[n],this.returnState?this.mergeMode==null?o.concat(s).concat(s.slice()):[n].concat(s).concat(s.slice()):Nr(o)}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=Bv(t,n,o,this.numConstants);if(t=s.inputs,n=s.initialState,o=s.constants,Array.isArray(t)&&(n=t.slice(1),t=t[0]),(n==null||n.length===0)&&o==null)return super.apply(t,e);let i=[],a=[];if(n!=null){let l=n.length;if(l%2>0)throw new M("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");e.initialState=n,i.push(...n);let c=n.map(p=>new ye({shape:p.shape}));this.forwardLayer.stateSpec=c.slice(0,l/2),this.backwardLayer.stateSpec=c.slice(l/2),a.push(...c)}if(o!=null)throw new St("Support for constants in Bidirectional layers is not implemented yet.");let u=i[0]instanceof Jr;for(let l of i)if(l instanceof Jr!==u)throw new M("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(u){let l=[t].concat(i),c=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=c;let m=super.apply(l,e);return this.inputSpec=p,m}else return super.apply(t,e)}call(t,e){return B(()=>{let n=e.initialState,o,s;if(n==null)o=this.forwardLayer.call(t,e),s=this.backwardLayer.call(t,e);else{let u=n.slice(0,n.length/2),l=n.slice(n.length/2);o=this.forwardLayer.call(t,Object.assign(e,{initialState:u})),s=this.backwardLayer.call(t,Object.assign(e,{initialState:l}))}let i;this.returnState&&(Array.isArray(o)&&(i=o.slice(1).concat(s.slice(1))),o=o[0],s=s[0]),this.returnSequences&&(s=pr(s,1));let a;return this.mergeMode==="concat"?a=Nm([o,s]):this.mergeMode==="sum"?a=X(o,s):this.mergeMode==="ave"?a=D(.5,X(o,s)):this.mergeMode==="mul"?a=D(o,s):this.mergeMode==null&&(a=[o,s]),this.returnState?this.mergeMode==null?a.concat(i):[a].concat(i):a})}resetStates(t){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(t){Hs(this.forwardLayer.name,()=>{this.forwardLayer.build(t)}),Hs(this.backwardLayer.name,()=>{this.backwardLayer.build(t)}),this.built=!0}computeMask(t,e){Array.isArray(e)&&(e=e[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[e,e]:n=e:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let s=this.forwardLayer.states.map(i=>null);return Array.isArray(n)?n.concat(s).concat(s):[n].concat(s).concat(s)}else return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(t),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(t)}getConfig(){let t={mergeMode:this.mergeMode},e=super.getConfig();return Object.assign(t,e),t}static fromConfig(t,e){let n=gn(e.layer);if(delete e.layer,e.numConstants!=null)throw new St("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let o=e;return o.layer=n,new t(o)}};Wf.className="Bidirectional";Q.registerClass(Wf);var Uf=class extends $t{constructor(t){super(t),this.scale=t.scale,t.offset?this.offset=t.offset:this.offset=0}getConfig(){let t={scale:this.scale,offset:this.offset},e=super.getConfig();return Object.assign(t,e),t}call(t,e){return B(()=>(t=Nt(t),t.dtype!=="float32"&&(t=no(t,"float32")),X(D(t,this.scale),this.offset)))}};Uf.className="Rescaling";Q.registerClass(Uf);var aY=["bilinear","nearest"],ID=new Set(aY),Hf=class extends $t{constructor(t){if(super(t),this.height=t.height,this.width=t.width,t.interpolation)if(ID.has(t.interpolation))this.interpolation=t.interpolation;else throw new M(`Invalid interpolation parameter: ${t.interpolation} is not implemented`);else this.interpolation="bilinear";this.cropToAspectRatio=Boolean(t.cropToAspectRatio)}computeOutputShape(t){t=Bt(t);let e=t[2];return[this.height,this.width,e]}getConfig(){let t={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},e=super.getConfig();return Object.assign(t,e),t}call(t,e){return B(()=>{let n=[this.height,this.width];if(this.interpolation==="bilinear")return Gs.resizeBilinear(t,n,!this.cropToAspectRatio);if(this.interpolation==="nearest")return Gs.resizeNearestNeighbor(t,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...ID]} are supported`)})}};Hf.className="Resizing";Q.registerClass(Hf);function SD(r,t,e,n){let o=Nt(r);if(o.dtype!=="int32"&&(o=no(o,"int32")),t==="int")return o;let s=o.shape;if(o.rank===0&&(o=rr(o,-1)),t==="oneHot"&&o.shape[o.shape.length-1]!==1&&(o=rr(o,-1)),o.rank>2)throw new M(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${s} which would result in output rank ${o.rank}.`);let i=["multiHot","oneHot"].includes(t),a=o,u;if(typeof n!="undefined"&&t==="count"?u=ch(a,n,e,i):u=ch(a,[],e,i),t!=="tfIdf")return u;if(n)return D(u,n);throw new M("When outputMode is 'tfIdf', weights must be provided.")}var qf=class extends $t{constructor(t){super(t),this.numTokens=t.numTokens,t.outputMode?this.outputMode=t.outputMode:this.outputMode="multiHot"}getConfig(){let t={numTokens:this.numTokens,outputMode:this.outputMode},e=super.getConfig();return Object.assign(t,e),t}computeOutputShape(t){return t=Bt(t),t==null?[this.numTokens]:this.outputMode==="oneHot"&&t[t.length-1]!==1?(t.push(this.numTokens),t):(t[t.length-1]=this.numTokens,t)}call(t,e){return B(()=>{t=Nt(t),t.dtype!=="int32"&&(t=no(t,"int32"));let n;if(typeof e.countWeights!="undefined"){if(this.outputMode!=="count")throw new M(`countWeights is not used when outputMode !== count. - Received countWeights=${e.countWeights}`);n=Nt(e.countWeights)}let o=Ir(t),s=Ja(t),i=Re(this.numTokens,o).bufferSync().get(0),a=ln(s,0).bufferSync().get(0);if(!(i&&a))throw new M(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return SD(t,this.outputMode,this.numTokens,n)})}};qf.className="CategoryEncoding";Q.registerClass(qf);function uY(r){return new Ks(r)}function cY(r){return new Ym(r)}function pY(r){return new Km(r)}function mY(r){return new jm(r)}function fY(r){return new Xm(r)}function dY(r){return new Jm(r)}function hY(r){return new Zm(r)}function gY(r){return new Su(r)}function xY(r){return new il(r)}function yY(r){return new Qm(r)}function bY(r){return new al(r)}function wY(r){return new tf(r)}function CY(r){return new ef(r)}function IY(r){return new rf(r)}function SY(r){return new nf(r)}function vY(r){return new of(r)}function NY(r){return new ff(r)}function TY(r){return new pf(r)}function kY(r){return new vc(r)}function EY(r){return new cf(r)}function _Y(r){return new mf(r)}function AY(r){return new df(r)}function $Y(r){return new hf(r)}function DY(r){return new gf(r)}function RY(r){return new yf(r)}function FY(r){return new bf(r)}function OY(r){return new Cf(r)}function PY(r){return new vf(r)}function LY(r){return new If(r)}function MY(r){return new Sf(r)}function zY(r){return new wf(r)}function BY(r){return new Nf(r)}function VY(r){return new _f(r)}function GY(r){return new Af(r)}function WY(r){return new $f(r)}function Gv(r){return new Rf(r)}function UY(r){return Gv(r)}function HY(r){return Gv(r)}function Wv(r){return new Of(r)}function qY(r){return Wv(r)}function KY(r){return Wv(r)}function Uv(r){return new Lf(r)}function jY(r){return Uv(r)}function XY(r){return Uv(r)}function YY(r){return new Mf(r)}function ZY(r){return new Bf(r)}function vD(r){return new zf(r)}function ND(r){return new Vf(r)}function TD(r){return new Df(r)}function kD(r){return new Ff(r)}function JY(r){return new Pf(r)}function QY(r){return new af(r)}function tZ(r){return new Cc(r)}function eZ(r){return new lf(r)}function rZ(r){return new ul(r)}function nZ(r){return new sf(r)}function oZ(r){return new wc(r)}function sZ(r){return new uf(r)}function iZ(r){return new Sc(r)}function aZ(r){return new Tn(r)}function lZ(r){return new Ic(r)}function uZ(r){return new Wf(r)}function cZ(r){return new Gf(r)}var pZ=vD,mZ=ND,fZ=TD,dZ=kD;function hZ(r){return new Tf(r)}function gZ(r){return new kf(r)}function xZ(r){return new Ef(r)}function yZ(r){return new xf(r)}function bZ(r){return new Uf(r)}function wZ(r){return new Hf(r)}function CZ(r){return new qf(r)}var _D={};Wt(_D,{MAPE:()=>DZ,MSE:()=>OZ,binaryAccuracy:()=>IZ,binaryCrossentropy:()=>SZ,categoricalAccuracy:()=>NZ,categoricalCrossentropy:()=>TZ,cosineProximity:()=>_Z,mape:()=>RZ,meanAbsoluteError:()=>AZ,meanAbsolutePercentageError:()=>$Z,meanSquaredError:()=>FZ,mse:()=>PZ,precision:()=>kZ,recall:()=>EZ,sparseCategoricalAccuracy:()=>vZ});function IZ(r,t){return Th(r,t)}function SZ(r,t){return Wy(r,t)}function vZ(r,t){return Uy(r,t)}function NZ(r,t){return kh(r,t)}function TZ(r,t){return Eh(r,t)}function kZ(r,t){return Av(r,t)}function EZ(r,t){return J$(r,t)}function _Z(r,t){return Nh(r,t)}function AZ(r,t){return Vm(r,t)}function $Z(r,t){return bu(r,t)}function DZ(r,t){return bu(r,t)}function RZ(r,t){return bu(r,t)}function FZ(r,t){return Hi(r,t)}function OZ(r,t){return Hi(r,t)}function PZ(r,t){return Hi(r,t)}var AD={};Wt(AD,{modelFromJSON:()=>dD});var $D={};Wt($D,{l1:()=>MZ,l1l2:()=>LZ,l2:()=>zZ});function LZ(r){return new wu(r)}function MZ(r){return yD(r)}function zZ(r){return bD(r)}var Sb=class extends sl{constructor(){super(...arguments),this.model=null}setModel(t){if(!(t instanceof Bn))throw new Error("model must be a LayersModel, not some other Container");this.model=t}};function Ib(r,t){return rt}var vb=class extends Sb{constructor(t){if(super(),t==null&&(t={}),t.restoreBestWeights)throw new St("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=t.monitor||"val_loss",this.minDelta=Math.abs(t.minDelta||0),this.patience=t.patience||0,this.verbose=t.verbose||0,this.mode=t.mode||"auto",this.baseline=t.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=Ib:this.mode==="max"?this.monitorFunc=DD:this.monitor.indexOf("acc")!==-1?this.monitorFunc=DD:this.monitorFunc=Ib,this.monitorFunc===Ib&&(this.minDelta*=-1)}async onTrainBegin(t){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Ib?1/0:-1/0}async onEpochEnd(t,e){await Ui(e);let n=this.getMonitorValue(e);n!=null&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=t,this.model.stopTraining=!0)))}async onTrainEnd(t){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(t){t==null&&(t={});let e=t[this.monitor];return e==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(t)}`),e}};function BZ(r){return new vb(r)}var VZ={earlyStopping:BZ};var GZ=z();GZ.registerFlag("KEEP_INTERMEDIATE_TENSORS",()=>!1,r=>{r&&console.warn("Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.")});var oo;(function(r){r[r.DT_INVALID=0]="DT_INVALID",r[r.DT_FLOAT=1]="DT_FLOAT",r[r.DT_DOUBLE=2]="DT_DOUBLE",r[r.DT_INT32=3]="DT_INT32",r[r.DT_UINT8=4]="DT_UINT8",r[r.DT_INT16=5]="DT_INT16",r[r.DT_INT8=6]="DT_INT8",r[r.DT_STRING=7]="DT_STRING",r[r.DT_COMPLEX64=8]="DT_COMPLEX64",r[r.DT_INT64=9]="DT_INT64",r[r.DT_BOOL=10]="DT_BOOL",r[r.DT_QINT8=11]="DT_QINT8",r[r.DT_QUINT8=12]="DT_QUINT8",r[r.DT_QINT32=13]="DT_QINT32",r[r.DT_BFLOAT16=14]="DT_BFLOAT16",r[r.DT_QINT16=15]="DT_QINT16",r[r.DT_QUINT16=16]="DT_QUINT16",r[r.DT_UINT16=17]="DT_UINT16",r[r.DT_COMPLEX128=18]="DT_COMPLEX128",r[r.DT_HALF=19]="DT_HALF",r[r.DT_RESOURCE=20]="DT_RESOURCE",r[r.DT_VARIANT=21]="DT_VARIANT",r[r.DT_UINT32=22]="DT_UINT32",r[r.DT_UINT64=23]="DT_UINT64",r[r.DT_FLOAT_REF=101]="DT_FLOAT_REF",r[r.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",r[r.DT_INT32_REF=103]="DT_INT32_REF",r[r.DT_UINT8_REF=104]="DT_UINT8_REF",r[r.DT_INT16_REF=105]="DT_INT16_REF",r[r.DT_INT8_REF=106]="DT_INT8_REF",r[r.DT_STRING_REF=107]="DT_STRING_REF",r[r.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",r[r.DT_INT64_REF=109]="DT_INT64_REF",r[r.DT_BOOL_REF=110]="DT_BOOL_REF",r[r.DT_QINT8_REF=111]="DT_QINT8_REF",r[r.DT_QUINT8_REF=112]="DT_QUINT8_REF",r[r.DT_QINT32_REF=113]="DT_QINT32_REF",r[r.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF",r[r.DT_QINT16_REF=115]="DT_QINT16_REF",r[r.DT_QUINT16_REF=116]="DT_QUINT16_REF",r[r.DT_UINT16_REF=117]="DT_UINT16_REF",r[r.DT_COMPLEX128_REF=118]="DT_COMPLEX128_REF",r[r.DT_HALF_REF=119]="DT_HALF_REF",r[r.DT_RESOURCE_REF=120]="DT_RESOURCE_REF",r[r.DT_VARIANT_REF=121]="DT_VARIANT_REF",r[r.DT_UINT32_REF=122]="DT_UINT32_REF",r[r.DT_UINT64_REF=123]="DT_UINT64_REF"})(oo||(oo={}));var RD;(function(r){let t;(function(e){e[e.LEGACY=0]="LEGACY",e[e.V1=1]="V1",e[e.V2=2]="V2"})(t=r.CheckpointFormatVersion||(r.CheckpointFormatVersion={}))})(RD||(RD={}));var Hv={};function UZ(r,t){let e={tfOpName:r,category:"custom",inputs:[],attrs:[],customExecutor:t};Hv[r]=e}function Nb(r){return Hv[r]}function HZ(r){delete Hv[r]}function S(r,t,e,n,o){let s=t.inputParams[r];if(s&&s.inputIndexStart!==void 0){let a=s.inputIndexStart,u=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?a+1:s.inputIndexEnd;if(s.type==="tensor")return br(t.inputNames[s.inputIndexStart],e,n,o);if(s.type==="tensors")return t.inputNames.slice(a,u).map(m=>br(m,e,n,o));let l=br(t.inputNames.slice(a)[0],e,n,o),c=l.dataSync();return s.type==="number"?c[0]:y.toNestedArray(l.shape,c)}let i=t.attrParams[r];return i&&i.value}function br(r,t,e,n){let[o,s]=xn(r);if(n!=null){let a=n.getHashTableHandleByName(o);if(a!=null)return a}let i=e.currentContextIds.find(a=>!!t[Tb(o,a)]);return i!==void 0?t[Tb(o,i)][s]:void 0}function FD(r,t,e){return t[Tb(r,e.currentContextId)]}function _o(r,t){let[e,n,o]=xn(r);return[Tb(e,t&&t.currentContextId),n,o]}function Tb(r,t){return t?`${r}-${t}`:r}function xn(r){let t=r.split(":");if(t.length===1)return[r,0,void 0];let e=t[0],n=t.length===3?t[1]:void 0,o=Number(t[t.length-1]);return[e,o,n]}function Rh(r,t,e){let n=S("pad",r,t,e);if(n==="explicit"){n=S("explicitPaddings",r,t,e);let o=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)o[s][0]=n[s*2],o[s][1]=n[s*2+1];return o}return n}function Zs(r){return r.kept?r:sn(r)}var qv={};Wt(qv,{json:()=>qZ});var qZ=[{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}]}];var Kv={};Wt(Kv,{json:()=>KZ});var KZ=[{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}]},{tfOpName:"IsNan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var jv={};Wt(jv,{json:()=>jZ});var jZ=[{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:"TensorListConcatV2",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"}]},{tfOpName:"TensorListLength",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}]},{tfOpName:"TensorListResize",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"size",type:"number"}]}];var Xv={};Wt(Xv,{json:()=>XZ});var XZ=[{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",defaultValue:.2}]},{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"}]}];var Yv={};Wt(Yv,{json:()=>YZ});var YZ=[{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"}]},{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:"RandomStandardNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"seed",name:"seed",type:"number",defaultValue:0},{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:"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"}]}];var Zv={};Wt(Zv,{json:()=>ZZ});var ZZ=[{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}]}];var Jv={};Wt(Jv,{json:()=>JZ});var JZ=[{tfOpName:"LowerBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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:"UpperBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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"}]}];var Qv={};Wt(Qv,{json:()=>QZ});var QZ=[{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"}]}];var tN={};Wt(tN,{json:()=>t7});var t7=[{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"}]}];var eN={};Wt(eN,{json:()=>e7});var e7=[{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"}]},{tfOpName:"ImageProjectiveTransformV3",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"transforms",type:"tensor"},{start:2,name:"outputShape",type:"number[]"},{start:3,name:"fillValue",type:"number"}],attrs:[{tfName:"interpolation",name:"interpolation",type:"string"},{tfName:"fill_mode",name:"fillMode",type:"string"}]}];var rN={};Wt(rN,{json:()=>r7});var r7=[{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}]}];var nN={};Wt(nN,{json:()=>n7});var n7=[{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:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2},{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}]},{tfOpName:"Einsum",category:"matrices",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"equation",name:"equation",type:"string"},{tfName:"N",name:"n",type:"number",defaultValue:2},{tfName:"T",name:"dtype",type:"dtype"}]}];var oN={};Wt(oN,{json:()=>o7});var o7=[{tfOpName:"EuclideanNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",defaultValue:!1}]},{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}]}];var sN={};Wt(sN,{json:()=>s7});var s7=[{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:"Cumprod",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"}]},{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"}]}];var iN={};Wt(iN,{json:()=>i7});var i7=[{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}]}];var aN={};Wt(aN,{json:()=>a7});var a7=[{tfOpName:"SparseFillEmptyRows",category:"sparse",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"denseShape",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}]},{tfOpName:"SparseReshape",category:"sparse",inputs:[{start:0,name:"inputIndices",type:"tensor"},{start:1,name:"inputShape",type:"tensor"},{start:2,name:"newShape",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SparseSegmentMean",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]},{tfOpName:"SparseSegmentSum",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]}];var lN={};Wt(lN,{json:()=>l7});var l7=[{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}]}];var uN={};Wt(uN,{json:()=>u7});var u7=[{tfOpName:"StringNGrams",category:"string",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"dataSplits",type:"tensor"}],attrs:[{tfName:"separator",name:"separator",type:"string"},{tfName:"ngram_widths",name:"nGramWidths",type:"number[]"},{tfName:"left_pad",name:"leftPad",type:"string"},{tfName:"right_pad",name:"rightPad",type:"string"},{tfName:"pad_width",name:"padWidth",type:"number"},{tfName:"preserve_short_sequences",name:"preserveShortSequences",type:"bool"}],outputs:["ngrams","ngrams_splits"]},{tfOpName:"StringSplit",category:"string",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"delimiter",type:"tensor"}],attrs:[{tfName:"skip_empty",name:"skipEmpty",type:"bool"}],outputs:["indices","values","shape"]},{tfOpName:"StringToHashBucketFast",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"num_buckets",name:"numBuckets",type:"number"}]}];var cN={};Wt(cN,{json:()=>c7});var c7=[{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:[]},{tfOpName:"BroadcastArgs",category:"transformation",inputs:[{start:0,name:"s0",type:"tensor"},{start:1,name:"s1",type:"tensor"}],attrs:[]}];var Fh=class{constructor(){let t=[qv,Kv,jv,Xv,Yv,Zv,Jv,Qv,tN,eN,rN,nN,oN,sN,iN,aN,lN,uN,cN],e=[].concat(...t.map(n=>n.json));this.opMappers=e.reduce((n,o)=>(n[o.tfOpName]=o,n),{})}static get Instance(){return this._instance||(this._instance=new this)}transformGraph(t,e={}){let n=t.node,o=[],s=[],i=[],a=n.reduce((h,g)=>(h[g.name]=this.mapNode(g),g.op.startsWith("Placeholder")?o.push(h[g.name]):g.op==="Const"?s.push(h[g.name]):(g.input==null||g.input.length===0)&&i.push(h[g.name]),h),{}),u=[],l=[],c={},p={};e!=null&&(c=this.mapSignatureEntries(e.inputs),p=this.mapSignatureEntries(e.outputs));let m=Object.keys(a);m.forEach(h=>{let g=a[h];g.inputNames.forEach((x,b)=>{let[w,,C]=_o(x),N=a[w];if(N.outputs!=null){let _=N.outputs.indexOf(C);if(_!==-1){let A=`${w}:${_}`;g.inputNames[b]=A}}g.inputs.push(N),N.children.push(g)})}),Object.keys(p).length===0?m.forEach(h=>{let g=a[h];g.children.length===0&&l.push(g)}):Object.keys(p).forEach(h=>{let[g]=_o(h),x=a[g];x!=null&&(x.signatureKey=p[h],l.push(x))}),Object.keys(c).length>0?Object.keys(c).forEach(h=>{let[g]=_o(h),x=a[g];x&&(x.signatureKey=c[h],u.push(x))}):u=o;let f={};t.library!=null&&t.library.function!=null&&(f=t.library.function.reduce((h,g)=>(h[g.signature.name]=this.mapFunction(g),h),{}));let d={nodes:a,inputs:u,outputs:l,weights:s,placeholders:o,signature:e,functions:f};return i.length>0&&(d.initNodes=i),d}mapSignatureEntries(t){return Object.keys(t||{}).reduce((e,n)=>(e[t[n].name]=n,e),{})}mapNode(t){let e=Nb(t.op)||this.opMappers[t.op]||{};t.attr==null&&(t.attr={});let n={name:t.name,op:t.op,category:e.category,inputNames:(t.input||[]).map(o=>o.startsWith("^")?o.slice(1):o),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:t.attr,outputs:e.outputs};return e.inputs!=null&&(n.inputParams=e.inputs.reduce((o,s)=>(o[s.name]={type:s.type,inputIndexStart:s.start,inputIndexEnd:s.end},o),{})),e.attrs!=null&&(n.attrParams=e.attrs.reduce((o,s)=>{let i=s.type,a;switch(s.type){case"string":a=kb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=kb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"string[]":a=Fb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Fb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"number":a=_b(t.attr,s.tfName,s.defaultValue||0),a===void 0&&!!s.tfDeprecatedName&&(a=_b(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"number[]":a=Rb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Rb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool":a=Eb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Eb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool[]":a=Pb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Pb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape":a=Db(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Db(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape[]":a=Ob(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Ob(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype":a=Ab(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Ab(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype[]":a=$b(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=$b(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"func":a=OD(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=OD(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${s.type} for op: ${t.op}`)}return o[s.name]={value:a,type:i},o},{})),n}mapFunction(t){let e=t.nodeDef,n=[],o=[],s={};e!=null&&(s=e.reduce((p,m)=>(p[m.name]=this.mapNode(m),m.op==="Const"&&o.push(p[m.name]),p),{}));let i=[],a=[];t.signature.inputArg.forEach(p=>{let[m]=_o(p.name),f={name:m,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:pN(p.type),type:"dtype"}},children:[]};f.signatureKey=p.name,i.push(f),s[m]=f}),Object.keys(s).forEach(p=>{let m=s[p];m.inputNames.forEach((f,d)=>{let[h,,g]=_o(f),x=s[h];if(x.outputs!=null){let b=x.outputs.indexOf(g);if(b!==-1){let w=`${h}:${b}`;m.inputNames[d]=w}}m.inputs.push(x),x.children.push(m)})});let l=t.ret;t.signature.outputArg.forEach(p=>{let[m,f]=_o(l[p.name]),d=s[m];d!=null&&(d.defaultOutput=f,a.push(d))});let c=this.mapArgsToSignature(t);return{nodes:s,inputs:i,outputs:a,weights:o,placeholders:n,signature:c}}mapArgsToSignature(t){return{methodName:t.signature.name,inputs:t.signature.inputArg.reduce((e,n)=>(e[n.name]=this.mapArgToTensorInfo(n),e),{}),outputs:t.signature.outputArg.reduce((e,n)=>(e[n.name]=this.mapArgToTensorInfo(n,t.ret),e),{})}}mapArgToTensorInfo(t,e){let n=t.name;return e!=null&&(n=e[n]),{name:n,dtype:t.type}}};function p7(r){let t=z().global;if(typeof t.atob!="undefined")return t.atob(r);if(typeof Buffer!="undefined")return new Buffer(r,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function PD(r,t){let e=Array.isArray(r)?String.fromCharCode.apply(null,r):p7(r);return t?e:e.toLowerCase()}function kb(r,t,e,n=!1){let o=r[t];return o!=null?PD(o.s,n):e}function Eb(r,t,e){let n=r[t];return n?n.b:e}function _b(r,t,e){let n=r[t]||{},o=n.i!=null?n.i:n.f!=null?n.f:e;return typeof o=="number"?o:parseInt(o,10)}function pN(r){switch(typeof r=="string"&&(r=oo[r]),r){case oo.DT_FLOAT:case oo.DT_HALF:return"float32";case oo.DT_INT32:case oo.DT_INT64:case oo.DT_INT8:case oo.DT_UINT8:return"int32";case oo.DT_BOOL:return"bool";case oo.DT_DOUBLE:return"float32";case oo.DT_STRING:return"string";default:return null}}function OD(r,t,e){let n=r[t];return n&&n.func?n.func.name:e}function Ab(r,t,e){let n=r[t];return n&&n.type?pN(n.type):e}function $b(r,t,e){let n=r[t];return n&&n.list&&n.list.type?n.list.type.map(o=>pN(o)):e}function LD(r){if(!r.unknownRank)return r.dim!=null?r.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function Db(r,t,e){let n=r[t];return n&&n.shape?LD(n.shape):e}function Rb(r,t,e){let n=r[t];return n?((n.list.f&&n.list.f.length?n.list.f:n.list.i)||[]).map(o=>typeof o=="number"?o:parseInt(o,10)):e}function Fb(r,t,e,n=!1){let o=r[t];return o&&o.list&&o.list.s?o.list.s.map(s=>PD(s,n)):e}function Ob(r,t,e){let n=r[t];return n&&n.list&&n.list.shape?n.list.shape.map(o=>LD(o)):e}function Pb(r,t,e){let n=r[t];return n&&n.list&&n.list.b?n.list.b:e}var Lb=class{constructor(t,e,n){this.node=t,this.tensorMap=e,this.context=n,this.inputs=[],this.attrs={},this.inputs=t.inputNames.map(o=>this.getInput(o)),t.rawAttrs!=null&&(this.attrs=Object.keys(t.rawAttrs).reduce((o,s)=>(o[s]=this.getAttr(s),o),{}))}getInput(t){return br(t,this.tensorMap,this.context)}getAttr(t,e){let n=this.node.rawAttrs[t];if(n.tensor!=null)return br(t,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return _b(this.node.rawAttrs,t,e);if(n.s!=null)return kb(this.node.rawAttrs,t,e);if(n.b!=null)return Eb(this.node.rawAttrs,t,e);if(n.shape!=null)return Db(this.node.rawAttrs,t,e);if(n.type!=null)return Ab(this.node.rawAttrs,t,e);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Rb(this.node.rawAttrs,t,e);if(n.list.s!=null)return Fb(this.node.rawAttrs,t,e);if(n.list.shape!=null)return Ob(this.node.rawAttrs,t,e);if(n.list.b!=null)return Pb(this.node.rawAttrs,t,e);if(n.list.type!=null)return $b(this.node.rawAttrs,t,e)}return e}};var ae={};Wt(ae,{OP_SCOPE_SUFFIX:()=>k0,abs:()=>Ee,acos:()=>ax,acosh:()=>lx,add:()=>X,addN:()=>LE,all:()=>Zp,any:()=>qu,argMax:()=>Ai,argMin:()=>ux,asin:()=>cx,asinh:()=>px,atan:()=>mx,atan2:()=>fx,atanh:()=>dx,avgPool:()=>Yl,avgPool3d:()=>gx,basicLSTMCell:()=>BE,batchNorm:()=>Di,batchNorm2d:()=>xx,batchNorm3d:()=>yx,batchNorm4d:()=>bx,batchToSpaceND:()=>Zl,bincount:()=>wx,booleanMaskAsync:()=>n6,broadcastArgs:()=>GE,broadcastTo:()=>Ri,buffer:()=>wt,cast:()=>J,ceil:()=>Cx,clipByValue:()=>Cr,clone:()=>sn,complex:()=>wn,concat:()=>ne,concat1d:()=>Ix,concat2d:()=>Sx,concat3d:()=>vx,concat4d:()=>Nx,conv1d:()=>Qp,conv2d:()=>In,conv2dTranspose:()=>em,conv3d:()=>Tx,conv3dTranspose:()=>Ex,cos:()=>Jl,cosh:()=>rm,cosineWindow:()=>hh,cumprod:()=>Xu,cumsum:()=>nm,denseBincount:()=>ch,depthToSpace:()=>_x,depthwiseConv2d:()=>Fi,diag:()=>WE,dilation2d:()=>Ax,div:()=>pt,divNoNan:()=>$x,dot:()=>Dx,dropout:()=>lv,einsum:()=>UE,elu:()=>Oi,enclosingPowerOfTwo:()=>uv,equal:()=>$r,erf:()=>Rx,euclideanNorm:()=>Fx,exp:()=>er,expandDims:()=>rr,expm1:()=>Ox,eye:()=>Yu,fft:()=>au,fill:()=>xo,floor:()=>Pi,floorDiv:()=>Yp,fused:()=>uu,gather:()=>Li,gatherND:()=>m6,greater:()=>Re,greaterEqual:()=>ln,ifft:()=>tl,imag:()=>Xl,image:()=>Gs,inTopKAsync:()=>h6,irfft:()=>xm,isFinite:()=>Px,isInf:()=>Lx,isNaN:()=>Mx,leakyRelu:()=>Ql,less:()=>om,lessEqual:()=>Ln,linalg:()=>pv,linspace:()=>KE,localResponseNormalization:()=>zx,log:()=>Sr,log1p:()=>tu,logSigmoid:()=>Gx,logSoftmax:()=>sm,logSumExp:()=>im,logicalAnd:()=>Rr,logicalNot:()=>eu,logicalOr:()=>am,logicalXor:()=>Wx,losses:()=>hX,lowerBound:()=>jE,matMul:()=>Lt,max:()=>Ir,maxPool:()=>ru,maxPool3d:()=>Hx,maxPoolWithArgmax:()=>XE,maximum:()=>Sn,mean:()=>ve,meshgrid:()=>YE,min:()=>Ja,minimum:()=>Mi,mirrorPad:()=>qx,mod:()=>Kx,moments:()=>Zu,movingAverage:()=>s6,mul:()=>D,multiRNNCell:()=>ZE,multinomial:()=>JE,neg:()=>Ht,norm:()=>Qa,notEqual:()=>Bs,oneHot:()=>Ei,ones:()=>cr,onesLike:()=>yr,op:()=>T,outerProduct:()=>QE,pad:()=>cn,pad1d:()=>t_,pad2d:()=>e_,pad3d:()=>r_,pad4d:()=>n_,pool:()=>jx,pow:()=>an,prelu:()=>ou,print:()=>Jg,prod:()=>Xx,raggedGather:()=>o_,raggedRange:()=>s_,raggedTensorToTensor:()=>i_,rand:()=>a_,randomGamma:()=>v_,randomNormal:()=>tc,randomStandardNormal:()=>N_,randomUniform:()=>zi,range:()=>su,real:()=>Za,reciprocal:()=>ty,relu:()=>Fr,relu6:()=>lm,reshape:()=>R,reverse:()=>pr,reverse1d:()=>T_,reverse2d:()=>k_,reverse3d:()=>E_,reverse4d:()=>__,rfft:()=>lu,round:()=>um,rsqrt:()=>cm,scalar:()=>mt,scatterND:()=>a6,searchSorted:()=>mh,selu:()=>pm,separableConv2d:()=>mm,setdiff1dAsync:()=>A_,sigmoid:()=>Yr,sign:()=>ey,signal:()=>dX,sin:()=>fm,sinh:()=>dm,slice:()=>Rt,slice1d:()=>hm,slice2d:()=>dh,slice3d:()=>gm,slice4d:()=>ec,softmax:()=>iu,softplus:()=>zs,spaceToBatchND:()=>nu,sparse:()=>gX,sparseToDense:()=>c6,spectral:()=>fX,split:()=>mr,sqrt:()=>Se,square:()=>Mt,squaredDifference:()=>ym,squeeze:()=>Mn,stack:()=>nr,step:()=>bo,stridedSlice:()=>ry,string:()=>xX,sub:()=>ct,sum:()=>ft,tan:()=>ny,tanh:()=>$i,tensor:()=>ur,tensor1d:()=>Me,tensor2d:()=>Vs,tensor3d:()=>rx,tensor4d:()=>$_,tensor5d:()=>D_,tensor6d:()=>R_,tile:()=>Dr,topk:()=>oy,transpose:()=>Ot,truncatedNormal:()=>bm,unique:()=>sy,unsortedSegmentSum:()=>wm,unstack:()=>vr,upperBound:()=>F_,variable:()=>iy,where:()=>_e,whereAsync:()=>ly,zeros:()=>Ne,zerosLike:()=>It});var MD=(r,t,e,n=ae)=>{switch(r.op){case"BiasAdd":case"AddV2":case"Add":return[n.add(S("a",r,t,e),S("b",r,t,e))];case"AddN":return[n.addN(S("tensors",r,t,e))];case"FloorMod":case"Mod":return[n.mod(S("a",r,t,e),S("b",r,t,e))];case"Mul":return[n.mul(S("a",r,t,e),S("b",r,t,e))];case"RealDiv":case"Div":return[n.div(S("a",r,t,e),S("b",r,t,e))];case"DivNoNan":return[n.divNoNan(S("a",r,t,e),S("b",r,t,e))];case"FloorDiv":return[n.floorDiv(S("a",r,t,e),S("b",r,t,e))];case"Sub":return[n.sub(S("a",r,t,e),S("b",r,t,e))];case"Minimum":return[n.minimum(S("a",r,t,e),S("b",r,t,e))];case"Maximum":return[n.maximum(S("a",r,t,e),S("b",r,t,e))];case"Pow":return[n.pow(S("a",r,t,e),S("b",r,t,e))];case"SquaredDifference":return[n.squaredDifference(S("a",r,t,e),S("b",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var zD=(r,t,e,n=ae)=>{switch(r.op){case"Abs":case"ComplexAbs":return[n.abs(S("x",r,t,e))];case"Acos":return[n.acos(S("x",r,t,e))];case"Acosh":return[n.acosh(S("x",r,t,e))];case"Asin":return[n.asin(S("x",r,t,e))];case"Asinh":return[n.asinh(S("x",r,t,e))];case"Atan":return[n.atan(S("x",r,t,e))];case"Atan2":return[n.atan2(S("x",r,t,e),S("y",r,t,e))];case"Atanh":return[n.atanh(S("x",r,t,e))];case"Ceil":return[n.ceil(S("x",r,t,e))];case"Complex":return[n.complex(S("real",r,t,e),S("imag",r,t,e))];case"Cos":return[n.cos(S("x",r,t,e))];case"Cosh":return[n.cosh(S("x",r,t,e))];case"Elu":return[n.elu(S("x",r,t,e))];case"Erf":return[n.erf(S("x",r,t,e))];case"Exp":return[n.exp(S("x",r,t,e))];case"Expm1":return[n.expm1(S("x",r,t,e))];case"Floor":return[n.floor(S("x",r,t,e))];case"Log":return[n.log(S("x",r,t,e))];case"Log1p":return[n.log1p(S("x",r,t,e))];case"Imag":return[n.imag(S("x",r,t,e))];case"Neg":return[n.neg(S("x",r,t,e))];case"Reciprocal":return[n.reciprocal(S("x",r,t,e))];case"Real":return[n.real(S("x",r,t,e))];case"Relu":return[n.relu(S("x",r,t,e))];case"Round":return[n.round(S("x",r,t,e))];case"Selu":return[n.selu(S("x",r,t,e))];case"Sigmoid":return[n.sigmoid(S("x",r,t,e))];case"Sin":return[n.sin(S("x",r,t,e))];case"Sign":return[n.sign(S("x",r,t,e))];case"Sinh":return[n.sinh(S("x",r,t,e))];case"Softplus":return[n.softplus(S("x",r,t,e))];case"Sqrt":return[n.sqrt(S("x",r,t,e))];case"Square":return[n.square(S("x",r,t,e))];case"Tanh":return[n.tanh(S("x",r,t,e))];case"Tan":return[n.tan(S("x",r,t,e))];case"ClipByValue":return[n.clipByValue(S("x",r,t,e),S("clipValueMin",r,t,e),S("clipValueMax",r,t,e))];case"Relu6":return[n.relu6(S("x",r,t,e))];case"Rsqrt":return[n.rsqrt(br(r.inputNames[0],t,e))];case"Prod":return[n.prod(S("x",r,t,e),S("axes",r,t,e))];case"LeakyRelu":return[n.leakyRelu(S("x",r,t,e),S("alpha",r,t,e))];case"Prelu":return[n.prelu(S("x",r,t,e),S("alpha",r,t,e))];case"IsNan":return[n.isNaN(br(r.inputNames[0],t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Vn(r,t,e=""){if(!(typeof r=="number"||typeof t=="number")){y.assert(r.length===t.length,()=>e+` Shapes ${r} and ${t} must match`);for(let n=0;ne+` Shapes ${r} and ${t} must match`)}}}function BD(r){return!(typeof r=="number"||r.some(t=>t<0))}function Kf(r,t,e){let n=Mb(r,e),o=!BD(n);if(o&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${n}`);if(o&&t.forEach(s=>{n=Mb(s.shape,n)}),!BD(n))throw new Error(`Non-fully-defined elementShape: ${n}`);return n}function Mb(r,t){if(typeof r=="number")return t;if(typeof t=="number")return r;if(r.length!==t.length)throw new Error(`Incompatible ranks during merge: ${r} vs. ${t}`);let e=[];for(let n=0;n=0&&s>=0&&o!==s)throw new Error(`Incompatible shape during merge: ${r} vs. ${t}`);e[n]=o>=0?o:s}return e}var zb=class{constructor(t,e,n,o,s,i,a){this.name=t,this.dtype=e,this.maxSize=n,this.elementShape=o,this.identicalElementShapes=s,this.dynamicSize=i,this.clearAfterRead=a,this.tensors=[],this.closed_=!1,this.idTensor=mt(0),De(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(t){this.tensors.forEach(e=>{(t==null||!t.has(e.tensor.id))&&e.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(t<0||t>=this.size())throw new Error(`Tried to read from index ${t}, but array size is: ${this.size()}`);let e=this.tensors[t];if(e.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${t} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(e.cleared=!0),e.read=!0,e.tensor}readMany(t){return t.map(e=>this.read(e))}write(t,e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(t<0||!this.dynamicSize&&t>=this.maxSize)throw new Error(`Tried to write to index ${t}, but array is not resizeable and size is: ${this.maxSize}`);let n=this.tensors[t]||{};if(e.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, +2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(u!=null){let l={};for(let f of Object.keys(Co))l[f]=Co[f];for(let f of Object.keys(e))l[f]=e[f];let c=s.config;c.customObjects=l;let p=Object.assign({},Co);for(let f of Object.keys(e))Co[f]=e[f];w0(s.config);let m=u(a,s.config,e,o);return Co=Object.assign({},p),m}else{let l=Object.assign({},Co);for(let p of Object.keys(e))Co[p]=e[p];let c=new a(s.config);return Co=Object.assign({},l),c}}}function k5(r,t){return rt?1:0}function yh(r,t){return-1*k5(r,t)}function vo(r){if(r==null)return r;let t=[];for(let e of r)t.indexOf(e)===-1&&t.push(e);return t}function b$(r){if(r==null)throw new M(`Invalid value in obj: ${JSON.stringify(r)}`);for(let t in r)if(r.hasOwnProperty(t))return!1;return!0}function Wi(r,t,e){if(e!=null&&r.indexOf(e)<0)throw new M(`${e} is not a valid ${t}. Valid values are ${r} or null/undefined.`)}function Cy(r,t,e=0,n=1/0){return ro(e>=0),ro(n>=e),Array.isArray(r)&&r.length>=e&&r.length<=n&&r.every(o=>typeof o===t)}function Ze(r,t){Array.isArray(r)?(y.assert(r.length>0,()=>`${t} is unexpectedly an empty array.`),r.forEach((e,n)=>Ze(e,`element ${n+1} of ${t}`))):y.assert(Number.isInteger(r)&&r>0,()=>`Expected ${t} to be a positive integer, but got ${w$(r)}.`)}function w$(r){return r===null?"null":Array.isArray(r)?"["+r.map(t=>w$(t)).join(",")+"]":typeof r=="string"?`"${r}"`:`${r}`}function C$(r,t,e){let n=e!=null?e():y.now(),o;return(...i)=>{let a=e!=null?e():y.now();return a-n0){let e=`${r}_${t}`;return vm.set(e,1),e}else return r}var A5=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function _$(r){return!!r.match(A5)}function A$(r){return r===parseInt(r.toString(),10)}function No(r,t,e){t==null&&(t=0),e==null&&(e=r.length);let n=1;for(let o=t;ot&&(t=n)}return t}function Zr(r,t){if(t{if(r.shape.length!==2)throw new M(`repeat() expects a rank-2 tensor, but received a rank-${r.shape.length} tensor.`);let e=nl(r,1);return Ey(e,[1,t,1])})}function D$(r){let t=[No(r.shape)];return R(r,t)}function R$(r){if(r.rank<=1)throw new M(`batchFlatten requires a minimum rank of 2. Got rank: ${r.rank}.`);let t=[r.shape[0],No(r.shape,1)];return R(r,t)}function rl(r,t,e){return B(()=>{switch(r.rank){case 1:return hm(r,t,e);case 2:return dh(r,[t,0],[e,r.shape[1]]);case 3:return gm(r,[t,0,0],[e,r.shape[1],r.shape[2]]);case 4:return ec(r,[t,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3]]);case 5:return Rt(r,[t,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4]]);case 6:return Rt(r,[t,0,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4],r.shape[5]]);default:throw new M(`sliceAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}})}function v0(r,t,e){return B(()=>{switch(r.rank){case 1:return hm(r,t,e);case 2:return dh(r,[0,t],[r.shape[0],e]);case 3:return gm(r,[0,0,t],[r.shape[0],r.shape[1],e]);case 4:return ec(r,[0,0,0,t],[r.shape[0],r.shape[1],r.shape[2],e]);default:throw new M(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function wh(r,t,e,n){return B(()=>{switch(r.rank){case 1:return hm(r,t,e);case 2:switch(n){case 1:return rl(r,t,e);case 2:return v0(r,t,e);default:throw new M(`The axis is not within the rank of the tensor ${n}`)}case 3:switch(n){case 1:return rl(r,t,e);case 2:return gm(r,[0,t,0],[r.shape[0],e,r.shape[2]]);case 3:return v0(r,t,e);default:throw new M(`The axis is not within the rank of the tensor ${n}`)}case 4:switch(n){case 1:return rl(r,t,e);case 2:return ec(r,[0,t,0,0],[r.shape[0],e,r.shape[2],r.shape[3]]);case 3:return ec(r,[0,0,t,0],[r.shape[0],r.shape[1],e,r.shape[3]]);case 4:return v0(r,t,e);default:throw new M(`The axis is not within the rank of the tensor ${n}`)}default:throw new M(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function Nm(r,t=-1){let e;return t<0&&(e=r[0].rank,e!==0?t=e:t=0),t===r[0].rank&&(t=-1),ne(r,t)}function T0(r,t){switch(r.rank){case 1:return Ix([r,t]);case 2:return Sx([r,t],0);case 3:return vx([r,t],0);case 4:return Nx([r,t],0);default:throw new M(`concatAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}}function Ey(r,t){if(Array.isArray(t)||(t=[t]),r.rank!==t.length)throw new M(`The length of input n (${t.length}) does not match the number of dimensions in input x (${r.rank})`);return Dr(r,t)}function Tm(r,t=0,e=1,n,o){return tc(r,t,e,n,o)}function To(r,t,e,n){if(r.rank<2||t.rank<2)throw new St(`dot requires both inputs to be rank >= 2 but got x shape = ${r.shape} and y shape = ${t.shape}`);if(t.rank>=3){let o=r.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(o!==s)throw new St(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${r.shape} and y shape = ${t.shape}`)}if(r.rank===2&&t.rank===2)return uu.matMul({a:r,b:t,transposeA:!1,transposeB:!1,bias:n?N0(r.rank,n,mn()):null,activation:e});{let o=r.shape.slice(),s=o.pop();r=R(r,[-1,s]);let i=t.shape.slice(),a=i.pop(),u=i.pop(),l=[...i,a],c=Array.from({length:t.rank},(d,h)=>h===0?t.rank-2:h<=t.rank-2?h-1:h);t=R(Ot(t,c),[u,-1]);let p=[...o,...l],m=!1,f=!1;return R(uu.matMul({a:r,b:t,transposeA:m,transposeB:f,bias:n?N0(r.rank,n,mn()):null,activation:e}),p)}}function _y(r,t,e){return B(()=>(Array.isArray(t)?t=Me(t,"int32"):t=J(t,"int32"),Li(r,t,e)))}function lc(r){return D(r,r)}function N0(r,t,e){let n=t.shape;if(t.rank!==1&&t.rank!==r)throw new M(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${r}`);if(r===5){if(e==="channelsFirst")return n.length===1?R(t,[1,n[0],1,1,1]):R(t,[1,n[3],n[0],n[1],n[2]]);if(e==="channelsLast")return n.length===1?R(t,[1,1,1,1,n[0]]):R(t,[1].concat(n))}else if(r===4){if(e==="channelsFirst")return n.length===1?R(t,[1,n[0],1,1]):R(t,[1,n[2],n[0],n[1]]);if(e==="channelsLast")return n.length===1?R(t,[1,1,1,n[0]]):R(t,[1].concat(n))}else if(r===3){if(e==="channelsFirst")return n.length===1?R(t,[1,n[0],1]):R(t,[1,n[1],n[0]]);if(e==="channelsLast")return n.length===1?R(t,[1,1,n[0]]):R(t,[1].concat(n))}else if(r<3)return t;throw new M(`Unsupported input rank by biasAdd: ${t.rank}`)}function fn(r,t,e){return B(()=>(e==null&&(e=mn()),Fe(e),X(r,N0(r.rank,t,e))))}function F$(r,t=1){if(t!==1)throw new St(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Oi(r)}function O$(r){return B(()=>pt(r,X(Ee(r),1)))}function Ay(r,t,e,n){return B(()=>l0(r,t,e,n))}function P$(r){return B(()=>{let t=X(.5,D(.2,r));return Cr(t,0,1)})}function xu(r,t,e=!1){return e?r():t()}var L$=["fanIn","fanOut","fanAvg"],M$=["normal","uniform","truncatedNormal"];function $5(r){Wi(L$,"FanMode",r)}function D5(r){Wi(M$,"Distribution",r)}var dn=class extends Q.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},km=class extends dn{apply(t,e){return Ne(t,e)}};km.className="Zeros";Q.registerClass(km);var yu=class extends dn{apply(t,e){return cr(t,e)}};yu.className="Ones";Q.registerClass(yu);var Em=class extends dn{constructor(t){if(super(),typeof t!="object")throw new M(`Expected argument of type ConstantConfig but got ${t}`);if(t.value===void 0)throw new M(`config must have value set but got ${t}`);this.value=t.value}apply(t,e){return B(()=>D(mt(this.value),cr(t,e)))}getConfig(){return{value:this.value}}};Em.className="Constant";Q.registerClass(Em);var _m=class extends dn{constructor(t){super(),this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=t.minval||this.DEFAULT_MINVAL,this.maxval=t.maxval||this.DEFAULT_MAXVAL,this.seed=t.seed}apply(t,e){return zi(t,this.minval,this.maxval,e)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};_m.className="RandomUniform";Q.registerClass(_m);var Am=class extends dn{constructor(t){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=t.mean||this.DEFAULT_MEAN,this.stddev=t.stddev||this.DEFAULT_STDDEV,this.seed=t.seed}apply(t,e){if(e=e||"float32",e!=="float32"&&e!=="int32")throw new St(`randomNormal does not support dType ${e}.`);return Tm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Am.className="RandomNormal";Q.registerClass(Am);var $m=class extends dn{constructor(t){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=t.mean||this.DEFAULT_MEAN,this.stddev=t.stddev||this.DEFAULT_STDDEV,this.seed=t.seed}apply(t,e){if(e=e||"float32",e!=="float32"&&e!=="int32")throw new St(`truncatedNormal does not support dType ${e}.`);return bm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};$m.className="TruncatedNormal";Q.registerClass($m);var Dm=class extends dn{constructor(t){super(),this.gain=t.gain!=null?t.gain:1}apply(t,e){return B(()=>{if(t.length!==2||t[0]!==t[1])throw new M("Identity matrix initializer can only be used for 2D square matrices.");return D(this.gain,Yu(t[0]))})}getConfig(){return{gain:this.gain}}};Dm.className="Identity";Q.registerClass(Dm);function R5(r,t="channelsLast"){let e,n;if(Fe(t),r.length===2)e=r[0],n=r[1];else if([3,4,5].indexOf(r.length)!==-1){if(t==="channelsFirst"){let o=No(r,2);e=r[1]*o,n=r[0]*o}else if(t==="channelsLast"){let o=No(r,0,r.length-2);e=r[r.length-2]*o,n=r[r.length-1]*o}}else{let o=No(r);e=Math.sqrt(o),n=Math.sqrt(o)}return[e,n]}var qr=class extends dn{constructor(t){if(super(),t.scale<0)throw new M(`scale must be a positive float. Got: ${t.scale}`);this.scale=t.scale==null?1:t.scale,this.mode=t.mode==null?"fanIn":t.mode,$5(this.mode),this.distribution=t.distribution==null?"normal":t.distribution,D5(this.distribution),this.seed=t.seed}apply(t,e){let n=R5(t),o=n[0],s=n[1],i=this.scale;if(this.mode==="fanIn"?i/=Math.max(1,o):this.mode==="fanOut"?i/=Math.max(1,s):i/=Math.max(1,(o+s)/2),this.distribution==="normal"){let a=Math.sqrt(i);if(e=e||"float32",e!=="float32"&&e!=="int32")throw new St(`${this.getClassName()} does not support dType ${e}.`);return bm(t,0,a,e,this.seed)}else{let a=Math.sqrt(3*i);return zi(t,-a,a,e)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};qr.className="VarianceScaling";Q.registerClass(qr);var uc=class extends qr{constructor(t){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return qr.className}};uc.className="GlorotUniform";Q.registerClass(uc);var cc=class extends qr{constructor(t){super({scale:1,mode:"fanAvg",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return qr.className}};cc.className="GlorotNormal";Q.registerClass(cc);var pc=class extends qr{constructor(t){super({scale:2,mode:"fanIn",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return qr.className}};pc.className="HeNormal";Q.registerClass(pc);var mc=class extends qr{constructor(t){super({scale:2,mode:"fanIn",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return qr.className}};mc.className="HeUniform";Q.registerClass(mc);var fc=class extends qr{constructor(t){super({scale:1,mode:"fanIn",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return qr.className}};fc.className="LeCunNormal";Q.registerClass(fc);var dc=class extends qr{constructor(t){super({scale:1,mode:"fanIn",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return qr.className}};dc.className="LeCunNormal";Q.registerClass(dc);var Rm=class extends dn{constructor(t){if(super(),this.DEFAULT_GAIN=1,this.gain=t.gain==null?this.DEFAULT_GAIN:t.gain,this.seed=t.seed,this.seed!=null)throw new St("Random seed is not implemented for Orthogonal Initializer yet.")}apply(t,e){return B(()=>{if(t.length<2)throw new St("Shape must be at least 2D.");t[0]*t[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${t[0]*t[1]}) elements: Slowness may result.`);let n=t[0]>t[1]?[t[1],t[0]]:t,o=Tm(n,0,1,"float32"),s=p0.gramSchmidt(o);return t[0]>t[1]&&(s=Ot(s)),D(this.gain,s)})}getConfig(){return{gain:this.gain,seed:this.seed}}};Rm.className="Orthogonal";Q.registerClass(Rm);var z$={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 B$(r,t={}){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,"initializer")}function Te(r){return Sm(r)}function de(r){if(typeof r=="string"){let t=r in z$?z$[r]:r;if(t==="GlorotNormal")return new cc;if(t==="GlorotUniform")return new uc;if(t==="HeNormal")return new pc;if(t==="HeUniform")return new mc;if(t==="LeCunNormal")return new fc;if(t==="LeCunUniform")return new dc;{let e={};return e.className=t,e.config={},B$(e)}}else return r instanceof dn?r:B$(r)}function $y(r){return Array.isArray(r)&&Array.isArray(r[0])}function Fm(r){return r.length===0?[]:Array.isArray(r[0])?r:[r]}function Nt(r){let t;if(Array.isArray(r)){if(r.length!==1)throw new M(`Expected Tensor length to be 1; got ${r.length}`);t=r[0]}else t=r;return t}function Bt(r){if(Array.isArray(r)&&Array.isArray(r[0])){if(r.length===1)return r=r,r[0];throw new M(`Expected exactly 1 Shape; got ${r.length}`)}else return r}function Om(r){let t=0;for(let e of r)e.shape.length===0?t+=1:t+=e.shape.reduce((n,o)=>n*o);return t}var G$="Variable",Ch=class{constructor(t,e="float32",n=G$,o=!0,s=null){this.dtype=e==null?"float32":e,this.shape=t.shape,this.id=vy(),n=n==null?G$:n,this.originalName=Ny(n),this.name=Ty(this.originalName),this.trainable_=o,this.constraint=s,this.val=iy(t,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(t){return this.assertNotDisposed(),O5(this.val,t),this.val.id!==t.id&&(this.val.assign(t),this.constraint!=null&&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(t){this.trainable_=t,this.val.trainable=t}};function O5(r,t){if(r.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(r.shape)+" vs. "+JSON.stringify(t.shape))}function Ih(r){return r.map(t=>t.read())}function Pm(r){r.forEach(t=>{t[0].write(t[1])})}var ye=class{constructor(t){this.dtype=t.dtype,this.shape=t.shape,t.shape!=null?this.ndim=t.shape.length:this.ndim=t.ndim,this.maxNDim=t.maxNDim,this.minNDim=t.minNDim,this.axes=t.axes||{}}},Jr=class{constructor(t,e,n,o,s,i,a){this.dtype=t,this.shape=e,this.sourceLayer=n,this.inputs=o,this.callArgs=s,this.outputTensorIndex=a,this.id=vy(),i!=null&&(this.originalName=Ny(i),this.name=Ty(this.originalName)),this.rank=e.length}},P5=0,ol=class{constructor(t,e){this.callArgs=e,this.id=P5++,this.outboundLayer=t.outboundLayer,this.inboundLayers=t.inboundLayers,this.nodeIndices=t.nodeIndices,this.tensorIndices=t.tensorIndices,this.inputTensors=t.inputTensors,this.outputTensors=t.outputTensors,this.inputMasks=t.inputMasks,this.outputMasks=t.outputMasks,this.inputShapes=t.inputShapes,this.outputShapes=t.outputShapes;for(let n of t.inboundLayers)n!=null&&n.outboundNodes.push(this);t.outboundLayer.inboundNodes.push(this)}getConfig(){let t=[];for(let e of this.inboundLayers)e!=null?t.push(e.name):t.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:t,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},L5=0,$t=class extends Q.Serializable{constructor(t={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=L5++,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 e=t.name;if(!e){let n=this.getClassName();e=So(n)+"_"+gu(n)}if(this.name=e,this.trainable_=t.trainable==null?!0:t.trainable,t.inputShape!=null||t.batchInputShape!=null){let n;if(t.batchInputShape!=null)n=t.batchInputShape;else if(t.inputShape!=null){let s=null;t.batchSize!=null&&(s=t.batchSize),n=[s].concat(t.inputShape)}this.batchInputShape=n;let o=t.dtype;o==null&&(o=t.inputDType),o==null&&(o="float32"),this.dtype=o}t.weights!=null?this.initialWeights=t.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(t,e){return t.name+"_ib-"+e.toString()}getNodeAtIndex(t,e){if(this.inboundNodes.length===0)throw new Hr(`The layer has never been called and thus has no defined ${e}.`);if(this.inboundNodes.length<=t)throw new M(`Asked to get ${e} at node ${t}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[t]}getInputAt(t){return Nr(this.getNodeAtIndex(t,"input").inputTensors)}getOutputAt(t){return Nr(this.getNodeAtIndex(t,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new vn(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new vn(`Layer ${this.name} is not connected, no input to return.`);return Nr(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new vn(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new vn(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return Nr(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(t=>t())}get updates(){return this._updates}get built(){return this._built}set built(t){this._built=t}get trainable(){return this.trainable_}set trainable(t){this._trainableWeights.forEach(e=>e.trainable=t),this.trainable_=t}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(t=>t.trainable):[]}set trainableWeights(t){this._trainableWeights=t}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(t=>!t.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(t){this._nonTrainableWeights=t}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(t){if(t=xe(t),this.inputSpec==null||this.inputSpec.length===0)return;let e=xe(this.inputSpec);if(t.length!==e.length)throw new M(`Layer ${this.name} expects ${e.length} inputs, but it received ${t.length} input tensors. Input received: ${t}`);for(let n=0;ns.maxNDim)throw new M(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${s.maxNDim}, found ndim=${i}`);if(s.minNDim!=null&&i=0?a[l]:a[a.length+l];if(c!=null&&[c,null].indexOf(p)===-1)throw new M(`Input ${n} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${c} but got shape ${a}.`)}}if(s.shape!=null)for(let a=0;a{if(!this.built){this.assertInputCompatibility(t);let i=[];for(let a of xe(t))i.push(a.shape);this.build(Nr(i)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&s&&(this._refCount=1)}if(this.assertInputCompatibility(t),s){let i=this.call(t,e),a=xe(i),u=[];for(let l of a)n.indexOf(l)!==-1&&(l=l.clone()),u.push(l);if(i=Nr(u),this.activityRegularizer!=null)throw new St("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return i}else{let i=M5(t),a=this.computeOutputShape(i),u,l=z5(t);if(this.warnOnIncompatibleInputShape(Array.isArray(t)?i[0]:i),a!=null&&a.length>0&&Array.isArray(a[0])?u=a.map((c,p)=>new Jr(l,c,this,xe(t),e,this.name,p)):u=new Jr(l,a,this,xe(t),e,this.name),this.addInboundNode(t,u,null,null,i,a,e),this._refCount++,this.activityRegularizer!=null)throw new St("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return u}})}warnOnIncompatibleInputShape(t){if(this.batchInputShape!=null)if(t.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(t)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let e=!1;this.batchInputShape.forEach((n,o)=>{n!=null&&t[o]!=null&&t[o]!==n&&(e=!0)}),e&&console.warn(`The shape of the input tensor (${JSON.stringify(t)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new vn(`The layer ${this.name} has never been called and thus has no defined output shape.`);let t=[];for(let e of this.inboundNodes){let n=JSON.stringify(e.outputShapes);t.indexOf(n)===-1&&t.push(n)}if(t.length===1){let e=this.inboundNodes[0].outputShapes;return Array.isArray(e)&&Array.isArray(e[0])&&e.length===1?e[0]:e}else throw new vn(`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 Hr(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Om(this.weights)}build(t){this.built=!0}getWeights(t=!1){return Ih(t?this.trainableWeights:this.weights)}setWeights(t){B(()=>{let e=this.weights;if(e.length!==t.length)throw new M(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${t.length}, but the layer was expecting ${e.length} weights. Provided weights: ${t}...`);if(e.length===0)return;let n=[],o=Ih(e);for(let s=0;ss.apply(c.read())),i==null&&(i=!0),i?this._trainableWeights.push(c):this._nonTrainableWeights.push(c),c}setFastWeightInitDuringBuild(t){this.fastWeightInitDuringBuild=t}addLoss(t){t==null||Array.isArray(t)&&t.length===0||(t=xe(t),this._losses!==void 0&&this._losses!==null&&this.losses.push(...t))}computeOutputShape(t){return t}computeMask(t,e){if(!this.supportsMasking){if(e!=null)if(Array.isArray(e))e.forEach(n=>{if(n!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return e}addInboundNode(t,e,n,o,s,i,a=null){let u=xe(t);e=xe(e),n=xe(n),o=xe(o),s=Fm(s),i=Fm(i);let l=[],c=[],p=[];for(let m of u)l.push(m.sourceLayer),c.push(m.nodeIndex),p.push(m.tensorIndex);new ol({outboundLayer:this,inboundLayers:l,nodeIndices:c,tensorIndices:p,inputTensors:u,outputTensors:e,inputMasks:n,outputMasks:o,inputShapes:s,outputShapes:i},a);for(let m=0;mt.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)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(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let t=0;return--this._refCount===0&&(t=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:t}}};function M5(r){r=xe(r);let t=[];for(let e of r)t.push(e.shape);return Nr(t)}function z5(r){return"float32"}function k0(r,t,e){if((t==null||e!=null&&e>0)&&(t=r.sourceLayer,e=r.nodeIndex),t.inboundNodes.length===0)return[r];{let n=t.inboundNodes[e];if(n.inboundLayers.length===0)return n.inputTensors;{let o=[];for(let s=0;sd.name),u=[],l=t.names();for(let d of a)l.indexOf(d)!==-1?u.push(t.getValue(d)):u.push(null);n!=null&&(n.maxNumTensors=-1/0,n.minNumTensors=1/0);let c=a.join(",")+"|"+t.names().sort().join(","),p=Ry.get(c),m;if(p==null){let d=V5(i,t);p=d.sorted,m=d.recipientCounts,Ry.put(c,p),Fy.put(c,m)}m={},o||Object.assign(m,Fy.get(c));let f=new ko(t);for(let d=0;dn.maxNumTensors&&(n.maxNumTensors=F),F0,()=>"Expected at least one fetch, got none");let e=[],n={};if(r.length===1){let o=W$(r[0],t);e=o.sorted,n=o.recipientMap}else{let o=new Set;for(let s of r){let{sorted:i,recipientMap:a}=W$(s,t);for(let u of i)o.has(u.name)||(e.push(u),o.add(u.name));for(let u in a)n[u]==null&&(n[u]=new Set),a[u].forEach(l=>n[u].add(l))}}return{sorted:e,recipientCounts:G5(n)}}function G5(r){let t={};for(let e in r)t[e]=r[e].size;return t}function W$(r,t){let e=new Set,n=[],o={};for(let a of t.names())e.add(a);let s=[],i=[];for(s.push(r);s.length>0;){let a=s[s.length-1];if(e.has(a.name)){s.pop();continue}let u=i[i.length-1]===s.length-1;if(a.inputs.length===0||u)s.pop(),n.push(a),e.add(a.name),u&&i.pop();else{i.push(s.length-1);for(let l of a.inputs)o[l.name]==null&&(o[l.name]=new Set),o[l.name].add(a.name),!e.has(l.name)&&s.push(l)}}return{sorted:n,recipientMap:o}}function W5(r){let t;if(r.sourceLayer.inboundNodes.length===1)t=r.sourceLayer.output;else{let e=null;for(let n=0;n100,U$);var K$={};Wt(K$,{maxNorm:()=>H5,minMaxNorm:()=>j5,nonNeg:()=>K5,unitNorm:()=>q5});function E0(r,t){return B(()=>Se(ft(D(r,r),t,!0)))}var gc=class extends Q.Serializable{getConfig(){return{}}},Lm=class extends gc{constructor(t){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=t.maxValue!=null?t.maxValue:this.defaultMaxValue,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>{let e=E0(t,this.axis),n=Cr(e,0,this.maxValue);return D(t,pt(n,X(ir(),e)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};Lm.className="MaxNorm";Q.registerClass(Lm);var Mm=class extends gc{constructor(t){super(),this.defaultAxis=0,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>pt(t,X(ir(),E0(t,this.axis))))}getConfig(){return{axis:this.axis}}};Mm.className="UnitNorm";Q.registerClass(Mm);var zm=class extends gc{apply(t){return Fr(t)}};zm.className="NonNeg";Q.registerClass(zm);var Bm=class extends gc{constructor(t){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=t.minValue!=null?t.minValue:this.defaultMinValue,this.maxValue=t.maxValue!=null?t.maxValue:this.defaultMaxValue,this.rate=t.rate!=null?t.rate:this.defaultRate,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>{let e=E0(t,this.axis),n=X(D(this.rate,Cr(e,this.minValue,this.maxValue)),D(1-this.rate,e));return D(t,pt(n,X(ir(),e)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};Bm.className="MinMaxNorm";Q.registerClass(Bm);var H$={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function ze(r){return Sm(r)}function q$(r,t={}){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,"constraint")}function Be(r){if(r==null)return null;if(typeof r=="string"){let e={className:r in H$?H$[r]:r,config:{}};return q$(e)}else return r instanceof gc?r:q$(r)}function H5(r){return new Lm(r)}function q5(r){return new Mm(r)}function K5(){return new zm}function j5(r){return new Bm(r)}var j$={};Wt(j$,{constant:()=>Z5,glorotNormal:()=>o8,glorotUniform:()=>n8,heNormal:()=>s8,heUniform:()=>i8,identity:()=>e8,leCunNormal:()=>a8,leCunUniform:()=>l8,ones:()=>Y5,orthogonal:()=>u8,randomNormal:()=>Q5,randomUniform:()=>J5,truncatedNormal:()=>t8,varianceScaling:()=>r8,zeros:()=>X5});function X5(){return new km}function Y5(){return new yu}function Z5(r){return new Em(r)}function J5(r){return new _m(r)}function Q5(r){return new Am(r)}function t8(r){return new $m(r)}function e8(r){return new Dm(r)}function r8(r){return new qr(r)}function n8(r){return new uc(r)}function o8(r){return new cc(r)}function s8(r){return new pc(r)}function i8(r){return new mc(r)}function a8(r){return new fc(r)}function l8(r){return new dc(r)}function u8(r){return new Rm(r)}var ED={};Wt(ED,{Layer:()=>$t,RNN:()=>Tn,RNNCell:()=>ll,activation:()=>NY,add:()=>FY,alphaDropout:()=>xZ,average:()=>OY,averagePooling1d:()=>G0,averagePooling2d:()=>W0,averagePooling3d:()=>U0,avgPool1d:()=>UY,avgPool2d:()=>qY,avgPool3d:()=>jY,avgPooling1d:()=>HY,avgPooling2d:()=>KY,avgPooling3d:()=>XY,batchNormalization:()=>VY,bidirectional:()=>uZ,categoryEncoding:()=>CZ,concatenate:()=>PY,conv1d:()=>gY,conv2d:()=>xY,conv2dTranspose:()=>yY,conv3d:()=>bY,conv3dTranspose:()=>wY,convLstm2d:()=>sZ,convLstm2dCell:()=>iZ,cropping2D:()=>IY,dense:()=>TY,depthwiseConv2d:()=>vY,dot:()=>BY,dropout:()=>kY,elu:()=>cY,embedding:()=>RY,flatten:()=>_Y,gaussianDropout:()=>gZ,gaussianNoise:()=>hZ,globalAveragePooling1d:()=>YY,globalAveragePooling2d:()=>ZY,globalMaxPool1d:()=>pZ,globalMaxPool2d:()=>mZ,globalMaxPooling1d:()=>vD,globalMaxPooling2d:()=>ND,gru:()=>QY,gruCell:()=>tZ,input:()=>P0,inputLayer:()=>uY,layerNormalization:()=>GY,leakyReLU:()=>mY,lstm:()=>eZ,lstmCell:()=>rZ,masking:()=>yZ,maxPool1d:()=>fZ,maxPool2d:()=>dZ,maxPooling1d:()=>TD,maxPooling2d:()=>kD,maxPooling3d:()=>JY,maximum:()=>LY,minimum:()=>MY,multiply:()=>zY,permute:()=>DY,prelu:()=>fY,reLU:()=>pY,repeatVector:()=>AY,rescaling:()=>bZ,reshape:()=>$Y,resizing:()=>wZ,rnn:()=>aZ,separableConv2d:()=>CY,simpleRNN:()=>nZ,simpleRNNCell:()=>oZ,softmax:()=>dY,spatialDropout1d:()=>EY,stackedRNNCells:()=>lZ,thresholdedReLU:()=>hY,timeDistributed:()=>cZ,upSampling2d:()=>SY,zeroPadding2d:()=>WY});async function Ui(r){if(r==null)return;let t=[],e=[],n=[];for(let o in r){let s=r[o];if(typeof s!="number"){let i=s;t.push(i.data()),e.push(o),n.push(i)}}if(t.length>0){let o=await Promise.all(t);for(let s=0;sX(this.totals[o],D(s,n)));this.totals[o]=a,i!=null&&i.dispose()}}}async onEpochEnd(t,e){if(e!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]=="number"?e[n]=this.totals[n]/this.seen:B(()=>{let o=D(pt(1,this.seen),this.totals[n]);e[n]=o,this.totals[n].dispose(),De(e[n])}))}},Ly=class extends sl{async onTrainBegin(t){this.epoch=[],this.history={}}async onEpochEnd(t,e){e==null&&(e={}),this.epoch.push(t);for(let n in e)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(e[n])}async syncData(){let t=[],e=[],n=[];for(let s in this.history){let i=this.history[s];for(let a=0;anew My(n,t))}var hn=class{constructor(){}static registerCallbackConstructor(t,e){y.assert(t>=0&&Number.isInteger(t),()=>`Verbosity level is expected to be an integer >= 0, but got ${t}`),hn.checkForDuplicate(e),hn.constructors[t]==null&&(hn.constructors[t]=[]),hn.constructors[t].push(e)}static checkForDuplicate(t){for(let e in hn.constructors)hn.constructors[+e].forEach(o=>{if(o===t)throw new M("Duplicate callback constructor.")})}static clear(){hn.constructors={}}static createCallbacks(t){let e=[];for(let n in hn.constructors){let o=+n;t>=o&&e.push(...hn.constructors[o])}return e.map(n=>new n)}};hn.constructors={};function By(r,t,e,n,o,s,i,a,u){let l=new Ly,c=[new _0,...hn.createCallbacks(t)];r!=null&&c.push(...r),c.push(l);let p=new Py(c);return p.setParams({epochs:e,initialEpoch:n,samples:o,steps:s,batchSize:i,verbose:t,doValidation:a,metrics:u}),{callbackList:p,history:l}}function gn(r,t={},e=!1){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,"layer",e)}function Sh(r,t){return B(()=>{r.dtype!=="float32"&&(r=J(r,"float32"));let e=ft(lc(r),t,!0),n=xo(e.shape,ir()),o=Se(Sn(e,n));return pt(r,o)})}function Hi(r,t){return B(()=>ve(lc(ct(t,r)),-1))}function Vm(r,t){return B(()=>ve(Ee(ct(t,r)),-1))}function bu(r,t){return B(()=>{let e=ct(r,t),n=Cr(Ee(r),ir(),Number.MAX_VALUE),o=Ee(pt(e,n));return D(100,ve(o,-1))})}function p8(r,t){return B(()=>{let e=Cr(t,ir(),Number.MAX_VALUE),n=Sr(X(1,e)),o=Cr(r,ir(),Number.MAX_VALUE),s=Sr(X(1,o));return ve(lc(ct(n,s)),-1)})}function m8(r,t){return B(()=>{let e=Sn(0,ct(1,D(r,t)));return ve(lc(e),-1)})}function f8(r,t){return B(()=>{let e=Sn(0,ct(1,D(r,t)));return ve(e,-1)})}function d8(r,t){return B(()=>{let e=ft(D(r,t),-1),n=Ir(D(ct(1,r),t),-1);return Sn(0,X(1,ct(n,e)))})}function h8(r,t){return B(()=>{let e=Math.log(2),n=ct(t,r),o=ct(X(n,zs(D(-2,n))),e);return ve(o,-1)})}function xc(r,t,e=!1){return B(()=>{if(e)t=iu(t);else{let n=ft(t,t.shape.length-1,!0);t=pt(t,n)}return t=Cr(t,ir(),1-ir()),Ht(ft(D(J(r,"float32"),Sr(t)),t.shape.length-1))})}function Gm(r,t,e=!1){return B(()=>{let n=J(Pi(D$(r)),"int32");t=Cr(t,ir(),1-ir());let o=t.shape,s=R(Ei(n,o[o.length-1]),o);return xc(s,t,e)})}function g8(r,t){if(!y.arraysEqual(r.shape,t.shape))throw new M(`logits and labels must have the same shape, but got shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);return B(()=>{let e=Fr(t),n=Ht(Ee(t));return X(ct(e,D(t,r)),tu(er(n)))})}function Wm(r,t){return B(()=>{let e;return e=Cr(t,ir(),1-ir()),e=Sr(pt(e,ct(1,e))),ve(g8(r,e),-1)})}function x8(r,t){return B(()=>{let e=Cr(r,ir(),1),n=Cr(t,ir(),1);return ft(D(r,Sr(pt(e,n))),-1)})}function y8(r,t){return B(()=>{let e=Sr(X(ir(),t));return ve(ct(t,D(r,e)),-1)})}function Nh(r,t){return B(()=>{let e=Sh(r,-1),n=Sh(t,-1),o=D(e,n);return Ht(ft(o,-1))})}var vh={meanSquaredError:Hi,meanAbsoluteError:Vm,meanAbsolutePercentageError:bu,meanSquaredLogarithmicError:p8,squaredHinge:m8,hinge:f8,categoricalHinge:d8,logcosh:h8,categoricalCrossentropy:xc,sparseCategoricalCrossentropy:Gm,binaryCrossentropy:Wm,kullbackLeiblerDivergence:x8,poisson:y8,cosineProximity:Nh};function Vy(r){if(typeof r=="string"){if(r in vh)return vh[r];let t=`Unknown loss ${r}`;throw r.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${r}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new M(t)}else return r}function Th(r,t){return B(()=>{let e=D(.5,yr(t)),n=no(Re(t,e),r.dtype);return ve($r(r,n),-1)})}function kh(r,t){return B(()=>no($r(Ai(r,-1),Ai(t,-1)),"float32"))}function Z$(r,t){return B(()=>J(ft(Rr($r(r,1),$r(t,1))),"float32"))}function b8(r,t){return B(()=>J(ft(Rr($r(r,1),$r(t,0))),"float32"))}function w8(r,t){return B(()=>J(ft(Rr($r(r,0),$r(t,1))),"float32"))}function A0(r,t){return B(()=>{let e=Z$(r,t),n=w8(r,t),o=X(e,n);return J(_e(Re(o,0),pt(e,o),0),"float32")})}function J$(r,t){return B(()=>{let e=Z$(r,t),n=b8(r,t),o=X(e,n);return J(_e(Re(o,0),pt(e,o),0),"float32")})}function Wy(r,t){return Wm(r,t)}function Uy(r,t){return r.rank===t.rank&&(r=Mn(r,[r.rank-1])),t=Ai(t,-1),t.dtype!==r.dtype&&(t=J(t,r.dtype)),J($r(r,t),"float32")}var C8=Hi,I8=Hi,S8=Vm,v8=Vm,N8=bu,T8=bu,Eh=xc,k8=Nh,$0=Gm,Gy={binaryAccuracy:Th,categoricalAccuracy:kh,precision:A0,categoricalCrossentropy:Eh,sparseCategoricalCrossentropy:$0,mse:C8,MSE:I8,mae:S8,MAE:v8,mape:N8,MAPE:T8,cosine:k8};function Q$(r){if(typeof r=="string"&&r in Gy)return Gy[r];if(typeof r!="string"&&r!=null)return r;throw new M(`Unknown metric ${r}`)}function _h(r){if(ro(r!==null,`Unknown LossOrMetricFn ${r}`),typeof r=="string")return r;{let t;for(let e of Object.keys(vh))if(vh[e]===r){t=e;break}if(t!==void 0)return t;for(let e of Object.keys(Gy))if(Gy[e]===r){t=e;break}return t!==void 0?t:r.name}}function eD(r){let t={Adagrad:()=>ic.adagrad(.01),Adadelta:()=>ic.adadelta(1,.95,ir()),Adam:()=>ic.adam(.001,.9,.999,ir()),Adamax:()=>ic.adamax(.002,.9,.999,ir(),0),RMSProp:()=>ic.rmsprop(.001,.9,0,ir()),SGD:()=>ic.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,r in t)return t[r]();throw new M(`Unknown Optimizer ${r}`)}function R0(r,t,e=!1){if(r==null||typeof r!="object"||Object.getPrototypeOf(r)!==Object.prototype||!D0(r))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(e){let n=JSON.stringify(r);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 D0(r){if(r===null)return!0;if(typeof r=="object")if(Object.getPrototypeOf(r)===Object.prototype){let t=Object.keys(r);for(let e of t)if(typeof e!="string"||!D0(r[e]))return!1;return!0}else if(Array.isArray(r)){for(let t of r)if(!D0(t))return!1;return!0}else return!1;else{let t=typeof r;return t==="string"||t==="number"||t==="boolean"}}function rD(r,t,e,n=console.log){let o=A8(r),s=["Layer (type)","Input Shape","Output shape","Param #"];o?(t=t||90,e=e||[.32,.61,.89,1]):(t=t||115,e=e||[.24,.48,.7,.8,1]),e[e.length-1]<=1&&(e=e.map(c=>Math.floor(t*c)));let i;if(!o){s.push("Receives inputs"),i=[];for(let c in r.nodesByDepth)i.push(...r.nodesByDepth[c])}n("_".repeat(t)),Hy(s,e,n),n("=".repeat(t));let a=r.layers;for(let c=0;c1||o.length===1&&o[0].inboundLayers.length>1){t=!1;break}n.push(...o)}if(t)for(let o of r.layers){let s=!1;for(let i of o.inboundNodes)if(n.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function Hy(r,t,e=console.log){let n="";for(let o=0;o0&&(n=n.slice(0,n.length-1)+" "),n+=r[o],n=n.slice(0,t[o]),n+=" ".repeat(t[o]-n.length);e(n)}function $8(r,t,e){let n,o;try{o=r.inboundNodes.map(u=>JSON.stringify(u.inputShapes)).join(",")}catch(u){o="multiple"}try{n=JSON.stringify(r.outputShape)}catch(u){n="multiple"}let s=r.name,i=r.getClassName(),a=[`${s} (${i})`,o,n,r.countParams().toString()];Hy(a,t,e)}function D8(r,t,e,n){let o,s;try{s=r.inboundNodes.map(p=>JSON.stringify(p.inputShapes)).join(",")}catch(p){s="multiple"}try{o=JSON.stringify(r.outputShape)}catch(p){o="multiple"}let i=[];for(let p of r.inboundNodes)if(!(e!=null&&e.length>0&&e.indexOf(p)===-1))for(let m=0;mb.name)}`);vo(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(b=>b.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let b of this.outputs){let w=b.sourceLayer,C=b.nodeIndex,N=b.tensorIndex;this.outputLayers.push(w),this.outputLayersNodeIndices.push(C),this.outputLayersTensorIndices.push(N)}for(let b of this.inputs){let w=b.sourceLayer,C=b.nodeIndex,N=b.tensorIndex;ro(C===0,"input layer has >1 nodes"),ro(N===0,"input layer has >1 tensors"),this.inputLayers.push(w),this.inputLayersNodeIndices.push(C),this.inputLayersTensorIndices.push(N)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let b=0;bb.shape),this.internalOutputShapes=this.outputs.map(b=>b.shape);let e={},n={},o={},s={},i={},a=[],u=(b,w,C,N,_,A)=>{(N==null||_==null||A==null)&&(N=b.sourceLayer,_=b.nodeIndex,A=b.tensorIndex);let $=N.inboundNodes[_];if(C.indexOf($)!==-1)throw new Hr(`The tensor ${b.name} at layer "${N.name}" is part of a cycle.`);if(w.indexOf($)!==-1)return;this.containerNodes.add(zn.nodeKey(N,_)),N.id in i||(i[N.id]=Object.keys(i).length),C.indexOf($)===-1&&C.push($);let F=$.inboundLayers.length;for(let P=0;P=0;)C.splice(C.indexOf($),1);a.push($)},l=[],c=[];for(let b of this.outputs)u(b,l,c);let p=a.slice().reverse();for(let b of p){n[b.id]=b,b.id in e||(e[b.id]=0);let w=e[b.id],C=o[b.outboundLayer.id]==null?0:o[b.outboundLayer.id];w=Math.max(w,C),o[b.outboundLayer.id]=w,s[b.outboundLayer.id]=b.outboundLayer,e[b.id]=w;for(let N=0;NparseInt(b,10)).sort(yh);this.layers=[];for(let b of d){let w=f[b];w.sort((C,N)=>{let _=i[C.id],A=i[N.id];return _A?1:0});for(let C of w)C instanceof zn&&this.internalContainerRefs.push(C),this.layers.push(C)}this.layersByDepth=f,d=Object.keys(m).map(b=>parseInt(b,10)).sort(yh);let h=this.inputs.slice(),g=[];for(let b of d)for(let w of m[b]){let C=w.outboundLayer;if(C!=null){for(let N of w.inputTensors)if(h.indexOf(N)===-1)throw new Hr(`Graph disconnected: cannot obtain value for tensor ${N} at layer "${C.name}". The following previous layers were accessed without issue: ${g}`);for(let N of w.outputTensors)h.push(N);g.push(C.name)}}this.nodesByDepth=m;let x=this.layers.map(b=>b.name);for(let b of x){let w=x.filter(C=>C===b).length;if(w!==1)throw new Hr(`The name "${b}" is used ${w} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(x))}this.outboundNodes=[],this.inboundNodes=[],new ol({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(b=>null),outputMasks:this.outputs.map(b=>null),inputShapes:this.inputs.map(b=>b.shape),outputShapes:this.outputs.map(b=>b.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let t={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(let e of this.layers)t.numDisposedVariables+=e.dispose().numDisposedVariables;for(let e of this.internalContainerRefs)t.numDisposedVariables+=e.dispose().numDisposedVariables}return t.refCountAfterDispose=this._refCount,t}get trainable(){return this.trainable_}set trainable(t){this.layers.forEach(e=>{e._trainableWeights.forEach(n=>n.trainable=t)}),this.trainable_=t}get trainableWeights(){if(this._trainableWeights.length>0)throw new M("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 t=[];for(let e of this.layers)t=t.concat(e.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let e of this.layers)t.push(...e.nonTrainableWeights);if(!this.trainable){let e=[];for(let n of this.layers)e.push(...n.trainableWeights);return e.concat(t)}return t}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(t,e=!0){let n={},o=0;for(let i of this.layers)for(let a of i.weights){if(n[a.originalName]!=null)throw new M(`Duplicate weight name: ${a.originalName}`);n[a.originalName]=a,o++}let s=[];for(let i in t){let a=i;if(n[i]==null){let u=i.split("/");a=u.slice(0,-2).concat([u[u.length-1]]).join("/")}if(n[a]!=null)s.push([n[a],t[i]]);else if(e)throw new M(`Provided weight data has no target variable: ${i}`);delete n[a]}if(e){let i=[];for(let a in n)i.push(a);if(i.length>0)throw new M(`${i.length} of ${o} weights are not set: ${i}`)}Pm(s)}updatedConfig(){let t=this.getConfig(),e={};return e.className=this.getClassName(),e.config=t,e.kerasVersion=`tfjs-layers ${Um}`,e.backend="TensorFlow.js",e}toJSON(t,e=!0){let n=qy(this.updatedConfig());return e?JSON.stringify(n):n}call(t,e){return B(()=>{t=xe(t);let n=new ko;for(let o=0;o{t=xe(t);let n;return e==null?n=Io(null,t.length):n=xe(e),this.runInternalGraph(t,n)[1]})}computeOutputShape(t){let e=Fm(t);if(e.length!==this.inputLayers.length)throw new M(`Invalid inputShape argument ${t}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let a=0;aparseInt(a,10)).sort(yh);if(o.length>1)for(let a of o){let u=this.nodesByDepth[a];for(let l of u){let c=l.outboundLayer;if(this.inputLayers.map(h=>h.id).indexOf(c.id)!==-1)continue;let p=[];for(let h=0;hparseInt(u,10)).sort(yh);for(let u of o){let l=this.nodesByDepth[u];for(let c of l){let p=c.outboundLayer,m=c.inputTensors,f=c.outputTensors,d=new Array;for(let h of m)h.id in n&&d.push(n[h.id]);if(d.length===m.length){let h={},g,x,b,w;if(c.callArgs!=null&&(h=c.callArgs),d.length===1){let[C,N]=d[0];h.mask==null&&(h.mask=N),b=xe(p.call(C,h)),w=xe(p.computeMask(C,N)),g=[C],x=[N]}else g=d.map(C=>C[0]),x=d.map(C=>C[1]),h.mask==null&&(h.mask=x),b=xe(p.call(g,h)),w=xe(p.computeMask(g,x));if(p.activityRegularizer)throw new St("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let C=0;C{let t=[];for(let e of this.layers)for(let n=0;n0){let h=[];for(let g=0;g0&&g.apply(Nr(b),w)}function l(g){let x=g.name,b=gn(g,e.customObjects!=null?e.customObjects:{});b.setFastWeightInitDuringBuild(o),s[x]=b,g.inboundNodes.forEach(C=>{if(!(C instanceof Array))throw new M(`Corrupted configuration, expected array for nodeData: ${C}`);a(b,C)})}let c=e.name,p=e.layers;for(let g of p)l(g);for(;!b$(i);)for(let g of p){let x=s[g.name];if(x.name in i){let b=i[x.name];delete i[x.name];for(let w of b)u(x,w)}}let m=[],f=[],d=e.inputLayers;for(let g of d){let x=g[0],b=g[1],w=g[2];ro(x in s);let N=s[x].inboundNodes[b].outputTensors;m.push(N[w])}let h=e.outputLayers;for(let g of h){let x=g[0],b=g[1],w=g[2];ro(x in s);let N=s[x].inboundNodes[b].outputTensors;f.push(N[w])}return new t({inputs:m,outputs:f,name:c})}get stateful(){if(this._stateful)throw new M("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(let t of this.layers)if(t.stateful)return!0;return!1}resetStates(){B(()=>{this.layers.forEach(t=>{t.stateful&&t.resetStates()})})}};function R8(r,t,e){let n=t.length;if(r==null||Array.isArray(r)&&r.length===0)return t.map(o=>null);if(n===1)return Array.isArray(r)&&r.length===1?r:typeof r=="object"&&t[0]in r?[r[t[0]]]:[r];if(Array.isArray(r)){if(r.length!==n)throw new Error(`Provided ${e} is an array of ${r.length} element(s), but the model has ${n} outputs. Make sure a set of weights is provided for each model output.`);return r}else if(typeof r=="object"&&Object.keys(r).length>0&&typeof r[Object.keys(r)[0]]=="object"){let o=[];return t.forEach(s=>{s in r?o.push(r[s]):o.push(null)}),o}else throw new Error(`The model has multiple (${n}) outputs, so ${e} must be either an array with ${n} elements or an object with ${t} keys. Provided ${e} not understood: ${JSON.stringify(r)}`)}function Ky(r,t){return R8(r,t,"classWeight")}async function jy(r,t,e,n){if(t!=null||n!=null)throw new Error("Support sampleWeight is not implemented yet");if(e!=null){let o=B(()=>{if(r.shape.length===1)return sn(r);if(r.shape.length===2){if(r.shape[1]>1)return Ai(r,1);if(r.shape[1]===1)return R(r,[r.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${r.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${r.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),s=Array.from(await o.data());vt(o);let i=[];return s.forEach(a=>{if(e[a]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${a} exists in the data but not in classWeight`);i.push(e[a])}),Me(i,"float32")}else return null}function oD(r,t){return D(r,t)}var F8=32;function aD(r,t){let e,n,o=t;e=o.xs,n=o.ys,y.assert(e!=null&&n!=null,()=>`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}`);let s=sD("input",r.inputNames,e),i=sD("output",r.outputNames,n),a=s[0].shape[0];y.assert(s.length===r.inputs.length,()=>`LayersModel has ${r.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(r.inputNames)})`),y.assert(i.length===r.outputs.length,()=>`LayersModel has ${r.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(r.outputNames)})`);for(let u=0;u`Batch size mismatch: input ${r.inputNames[u]} has ${s[u].shape[0]}; expected ${a} based on input ${r.inputNames[0]}.`);for(let u=0;u`Batch size mismatch: output ${r.outputNames[u]} has ${i[u].shape[0]}; expected ${a} based on input ${r.inputNames[0]}.`);return{xs:s,ys:i}}function sD(r,t,e){if(e instanceof Ft)return[e];if(Array.isArray(e))return y.assert(e.length===t.length,()=>`Received an array of ${e.length} Tensors, but expected ${t.length} to match the ${r} keys ${t}.`),e;{let n=[];for(let o of t){if(e[o]==null)throw new M(`The feature data generated by the dataset lacks the required ${r} key '${o}'.`);n.push(e[o])}return n}}function O8(r){if(r.length===3)throw new St("Validation with sample weights is not implemented yet.");return{xs:r[0],ys:r[1]}}async function lD(r,t,e){let n=e.batchesPerEpoch!=null;if(y.assert(r.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),y.assert(e!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),y.assert(e.epochs!=null&&e.epochs>0&&Number.isInteger(e.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${e.epochs}`),y.assert(!n||e.batchesPerEpoch>0&&Number.isInteger(e.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${e.batchesPerEpoch}`),y.assert(e.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),r.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");r.isTraining=!0;try{let o=e.validationData!=null,s,i;if(o)if(iD(e.validationData))y.assert(e.validationBatches==null||e.validationBatches>0&&Number.isInteger(e.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${e.validationBatches}`);else{let g=O8(e.validationData);s=g.xs,i=g.ys}let a=r.makeTrainFunction(),u=r.getDedupedMetricsNames(),l;o?l=u.slice().concat(u.map(g=>"val_"+g)):l=u.slice();let c=zy(e.callbacks,e.yieldEvery),p=e.verbose==null?1:e.verbose,{callbackList:m,history:f}=By(c,p,e.epochs,null,null,P8(t,e),null,o,l);m.setModel(r),r.history=f,await m.onTrainBegin(),r.stopTraining_=!1;let d=e.initialEpoch==null?0:e.initialEpoch,h=await t.iterator();for(;d=e.batchesPerEpoch:w.done){if(o){let C;iD(e.validationData)?C=xe(await r.evaluateDataset(e.validationData,{batches:e.validationBatches})):C=xe(r.evaluate(s,i,{batchSize:e.validationBatchSize==null?F8:e.validationBatchSize,verbose:0}));for(let N=0;N0)throw new St("Verbose mode is not implemented yet.");y.assert(!n||e.batches>0&&Number.isInteger(e.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(e.batches)}`);let i=L8(t)?t:await t.iterator(),a=0,u=0;for(;!n||u{if(l.value){let{xs:c,ys:p}=aD(r,l.value),m=c.concat(p),f=B(()=>o(m));if(vt(m),u===0)for(let h=0;hX(s[h],D(d,g))),u>0&&vt(x)}vt(f),a+=d,++u}return s}),l.done){n&&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, ${e.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let l=0;l0&&Number.isInteger(r),()=>`batchSize is required to be a positive integer, but got ${r}`)}function Hm(r,t,e){return r==null?[null]:Array.isArray(r)?r.map(n=>rl(n,t,e-t)):rl(r,t,e-t)}function Yy(r,t){return B(()=>r==null?null:Array.isArray(r)?r.map(e=>Yy(e,t)):_y(r,t.dtype==="int32"?t:J(t,"int32")))}function Zy(r,t){let e=[],n=0,o=null;for(;n=r&&(o=r),e.push([n,o]),n=o;return e}async function M8(r,t,e,n,o,s,i,a,u,l,c,p,m,f,d){o==null&&(o=32),s==null&&(s=1),c==null&&(c=!0),m==null&&(m=0);let h=!1;if(u!=null&&l!=null&&(h=!0),d!=null&&(h=!0,f==null))throw new M("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let g=r.checkNumSamples(e,o,f,"steps_per_epoch"),x;g!=null&&(x=Zr(0,g)),i==null&&(i=1);let{callbackList:b,history:w}=By(a,i,s,m,g,f,o,h,p);b.setModel(r),r.history=w,await b.onTrainBegin(),r.stopTraining_=!1;for(let C=m;C{let P=A[$][0],V=A[$][1],G=rl(_,P,V-P);F.batch=$,F.size=V-P;let W=Yy(e,G),q=t(W);for(let H=0;H0){if(g=!0,n.validationData.length===2)u=n.validationData[0],l=n.validationData[1];else throw n.validationData.length===3?new St("validationData including sample weights is not supported yet."):new M(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${n.validationData} is invalid.`);let F=!0,P=await r.standardizeUserData(u,l,null,null,F,f);c=P[0],p=P[1],x=c.concat(p)}else if(n.validationSplit!=null&&n.validationSplit>0&&n.validationSplit<1){g=!0;let F=Math.floor(o[0].shape[0]*(1-n.validationSplit)),P=o[0].shape[0];c=Hm(o,F,P),i=o,o=Hm(o,0,F),p=Hm(s,F,P),a=s,s=Hm(s,0,F),x=c.concat(p)}else n.validationSteps!=null&&(g=!0);let b=o.concat(s).concat(m);r.checkTrainableWeightsConsistency();let w=r.makeTrainFunction(),C=r.getDedupedMetricsNames(),N,_;g?(r.makeTestFunction(),N=r.testFunction,_=C.slice().concat(C.map(F=>"val_"+F))):(N=null,x=[],_=C.slice());let A=zy(n.callbacks,n.yieldEvery);return await M8(r,w,b,C,f,n.epochs,n.verbose,A,N,x,n.shuffle,_,n.initialEpoch,null,null)}finally{r.isTraining=!1,Eo(o,t),Eo(s,e),Eo(i,t),Eo(a,e),Eo(c,u),Eo(p,l),m!=null&&vt(m)}}function F0(r){let t=[];r instanceof Ft&&(r=[r]);for(let e=0;ee.push(o.id));else if(t!=null)for(let o in t){let s=t[o];e.push(s.id)}let n=[];if(r instanceof Ft)e.indexOf(r.id)===-1&&n.push(r);else if(Array.isArray(r))r.forEach(o=>{e.indexOf(o.id)===-1&&n.push(o)});else if(r!=null)for(let o in r){let s=r[o];e.indexOf(s.id)===-1&&n.push(s)}n.forEach(o=>{o.isDisposed||o.dispose()})}function z8(r){return r instanceof Ft}function O0(r){return Array.isArray(r)}function pD(r){return!z8(r)&&!O0(r)}function mD(r,t,e,n=!0,o=""){if(t==null||t.length===0){if(r!=null){let i=!1;if(O0(r)&&r.length>0)i=!0;else if(pD(r)){for(let a in r)if(r.hasOwnProperty(a)){i=!0;break}}else i=!0;if(i)throw new M(`Error when checking model ${o} expected no data, but got ${r}`)}return[]}if(r==null)return t.map(i=>null);let s;if(pD(r)){r=r,s=[];for(let i of t){if(r[i]==null)throw new M(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(r[i])}}else if(O0(r)){if(r=r,r.length!==t.length)throw new M(`Error when checking model ${o}: 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): ${r}`);s=r}else{if(r=r,t.length>1)throw new M(`The model ${o} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${r.shape}`);s=[r]}if(s=F0(s),e!=null)for(let i=0;i=0&&l!==c)throw new M(`${o} expected a batch of elements where each example has shape [${e[i].slice(1,e[i].length)}] (i.e.,tensor shape [*,${e[i].slice(1,e[i].length)}]) but the ${o} received an input with ${a.shape[0]} examples, each with shape [${a.shape.slice(1,a.shape.length)}] (tensor shape [${a.shape}])`)}}return s}function B8(r,t,e){let n=vo(r.map(s=>s.shape[0]));n.sort();let o=vo(t.map(s=>s.shape[0]));if(o.sort(),n.length>1)throw new M(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(r.map(s=>s.shape))}`);if(o.length>1)throw new M(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(s=>s.shape))}`);if(n.length>0&&o.length>0&&!y.arraysEqual(n,o))throw new M(`Input Tensors should have the same number of samples as target Tensors. Found ${n[0]} input sample(s) and ${o[0]} target sample(s).`)}function V8(r,t,e){let n=[Hi,Wm,xc];for(let o=0;o1)throw new M(`The model expects ${t.length} ${o} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(r.shape)}.`);s=[r]}if(e!=null)for(let i=0;i[]);let e;if(typeof r=="string"||typeof r=="function")e=[r];else if(Array.isArray(r)||typeof r=="object")e=r;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${r}`);if(Array.isArray(e))return t.map(n=>e);{let n=[];for(let o of t){let s=e.hasOwnProperty(o)?e[o]:[];Array.isArray(s)||(s=[s]),n.push(s)}return n}}var W8="layers-model",Bn=class extends zn{constructor(t){super(t),this.isTraining=!1}summary(t,e,n=console.log){if(!this.built)throw new M("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");rD(this,t,e,n)}compile(t){if(t.loss==null&&(t.loss=[]),this.loss=t.loss,typeof t.optimizer=="string")this.optimizer_=eD(t.optimizer),this.isOptimizerOwned=!0;else{if(!(t.optimizer instanceof Wr))throw new M("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=t.optimizer,this.isOptimizerOwned=!1}let e=[];if(!Array.isArray(t.loss)&&typeof t.loss!="string"&&typeof t.loss!="function"){t.loss=t.loss;for(let i in t.loss)if(this.outputNames.indexOf(i)===-1)throw new M(`Unknown entry in loss dictionary: "${i}". Only expected the following keys: ${this.outputNames}`);for(let i of this.outputNames)t.loss[i]==null&&console.warn(`Output "${i}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${i} during training`),e.push(Vy(t.loss[i]))}else if(Array.isArray(t.loss)){if(t.loss.length!==this.outputs.length)throw new M(`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=${t.loss}.`);e=t.loss.map(a=>Vy(a))}else{let i=Vy(t.loss);this.outputs.forEach(a=>{e.push(i)})}this.lossFunctions=e,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let i=0;i{for(let i=0;i1&&(this.metricsTensors.push([a,i]),this.metricsNames.push(this.outputNames[i]+"_loss"))}});let o=G8(t.metrics,this.outputNames),s=(i,a,u)=>{this.outputNames.length>1&&(a=this.outputNames[i]+"_"+a),this.metricsNames.push(a),this.metricsTensors.push([u,i])};Hs("metric",()=>{for(let i=0;i{let c="",p,m,f;for(let d of l){if(typeof d=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(d)!==-1){let g=this.internalOutputShapes[i];g[g.length-1]===1||this.lossFunctions[i]===Wm?["accuracy","acc"].indexOf(d)!==-1?m=Th:["crossentropy","ce"].indexOf(d)!==-1&&(m=Wy):this.lossFunctions[i]===Gm?["accuracy","acc"].indexOf(d)!==-1?m=Uy:["crossentropy","ce"].indexOf(d)!==-1&&(m=$0):["accuracy","acc"].indexOf(d)!==-1?m=kh:["crossentropy","ce"].indexOf(d)!==-1&&(m=Eh);let x;["accuracy","acc"].indexOf(d)!==-1?x="acc":["crossentropy","ce"].indexOf(d)!==-1&&(x="ce"),f=m,p=c+x}else f=Q$(d),p=c+_h(d);let h;Hs(p,()=>{h=f}),s(i,p,h)}})(a)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&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(t,e,n={}){let o=n.batchSize==null?32:n.batchSize;Xy(o);let s=!0,i=this.standardizeUserDataXY(t,e,s,o);try{let a=i[0].concat(i[1]);this.makeTestFunction();let u=this.testFunction,l=this.testLoop(u,a,o,n.verbose,n.steps);return Nr(l)}finally{Eo(i[0],t),Eo(i[1],e)}}async evaluateDataset(t,e){return this.makeTestFunction(),uD(this,t,e)}checkNumSamples(t,e,n,o="steps"){let s;if(n!=null){if(s=null,e!=null)throw new M(`If ${o} is set, batchSize must be null or undefined.Got batchSize = ${e}`)}else if(t!=null)Array.isArray(t)?s=t[0].shape[0]:s=t.shape[0];else throw new M(`Either the input data should have a defined shape, or ${o} shoud be specified.`);return s}execute(t,e){if(Array.isArray(e)&&e.length===0)throw new M("`outputs` is an empty Array, which is not allowed.");let n=Array.isArray(e),o=n?e:[e],s=this.retrieveSymbolicTensors(o),i=new ko;if(t instanceof Ft&&(t=[t]),Array.isArray(t)){if(t.length!==this.inputs.length)throw new M(`The number of inputs provided (${t.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let u=0;ua.name);for(let a=0;a0){let o=[];throw e.forEach((s,i)=>{s==null&&o.push(t[i])}),new M(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(o)}`)}return e}predictLoop(t,e=32,n=!1){return B(()=>{let o=this.checkNumSamples(t);if(n)throw new St("Verbose predictLoop() is not implemented yet.");let s=Zy(o,e),i=this.outputs.map(a=>[]);for(let a=0;a{let l=s[a][0],c=s[a][1],p=Hm(t,l,c),m=[];if(Array.isArray(p))for(let d=0;di[c].push(l));return Nr(i.map(a=>ne(a,0)))})}predict(t,e={}){let n=F0(t);fD(n,this.inputNames,this.feedInputShapes,!1);try{let o=e.batchSize==null?32:e.batchSize;return Xy(o),this.predictLoop(n,o)}finally{Eo(n,t)}}predictOnBatch(t){fD(t,this.inputNames,this.feedInputShapes,!0);let e=(Array.isArray(t)?t[0]:t).shape[0];return this.predictLoop(t,e)}standardizeUserDataXY(t,e,n=!0,o){if(this.optimizer_==null)throw new Hr("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let s=[];for(let i=0;i0&&t[0].shape[0]%o!==0)throw new M(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${o}. Found: ${t[0].shape[0]} sample(s).`);return[t,e]}async standardizeUserData(t,e,n,o,s=!0,i){let[a,u]=this.standardizeUserDataXY(t,e,s,i);if(n!=null)throw new Error("sample weight is not supported yet.");let l=null;if(o!=null){let c=Ky(o,this.outputNames);l=[];for(let p=0;p{let i=this.checkNumSamples(e,n,s,"steps"),a=[];if(o>0)throw new St("Verbose mode is not implemented yet.");if(s!=null)throw new St("steps mode in testLoop() is not implemented yet");{let u=Zy(i,n),l=Me(Zr(0,i));for(let c=0;c1){let i=C0(t.slice(0,n),o);s+=`_${i}`}e.push(s)}return e}makeTrainFunction(){return t=>{let e=[],n=t.slice(0,this.inputs.length),o=t.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=t.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),i=[],a=()=>{let p=[];for(let h=0;h1&&h{d=X(d,h)}),d},u=this.collectedTrainableWeights.map(p=>p.read()),l=!0;return[this.optimizer_.minimize(a,l,u)].concat(i)}}makeTestFunction(){this.testFunction=t=>B(()=>{let e=[],n,o=t.slice(0,this.inputs.length),s=t.slice(this.inputs.length,this.inputs.length+this.outputs.length),i=[];for(let l=0;lSo(e))}else{let e=Object.keys(this.loss);t={};let n=this.loss;for(let o of e)if(typeof n[o]=="string")t[o]=So(n[o]);else throw new Error("Serialization of non-string loss is not supported.")}return t}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[So(_h(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(t=>So(_h(t)));{let t={};for(let e in this.metrics)t[e]=So(_h(this.metrics[e]));return t}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(t){if(t.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(t.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(t.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let e=yc(t.optimizer_config),n=gn(e),o;if(typeof t.loss=="string")o=el(t.loss);else if(Array.isArray(t.loss))o=t.loss.map(i=>el(i));else if(t.loss!=null){o={};for(let i in t.loss)o[i]=el(t.loss[i])}let s;if(Array.isArray(t.metrics))s=t.metrics.map(i=>el(i));else if(t.metrics!=null){s={};for(let i in t.metrics)s[i]=el(t.metrics[i])}this.compile({loss:o,metrics:s,optimizer:n})}async save(t,e){if(typeof t=="string"){let l=_r.getSaveHandlers(t);if(l.length===0)throw new M(`Cannot find any save handlers for URL '${t}'`);if(l.length>1)throw new M(`Found more than one (${l.length}) save handlers for URL '${t}'`);t=l[0]}if(t.save==null)throw new M("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await _r.encodeWeights(this.getNamedWeights(e)),o=!1,s=null,a={modelTopology:this.toJSON(s,o),format:W8,generatedBy:`TensorFlow.js tfjs-layers v${Um}`,convertedBy:null};if((e==null?!1:e.includeOptimizer)&&this.optimizer!=null){a.trainingConfig=this.getTrainingConfig();let l="optimizer",{data:c,specs:p}=await _r.encodeWeights(await this.optimizer.getWeights(),l);n.specs.push(...p),n.data=_r.concatenateArrayBuffers([n.data,c])}return this.userDefinedMetadata!=null&&(R0(this.userDefinedMetadata,this.name,!0),a.userDefinedMetadata=this.userDefinedMetadata),a.weightData=n.data,a.weightSpecs=n.specs,t.save(a)}setUserDefinedMetadata(t){R0(t,this.name),this.userDefinedMetadata=t}getUserDefinedMetadata(){return this.userDefinedMetadata}};Bn.className="Model";Q.registerClass(Bn);var Jy=class extends Bn{};Jy.className="Functional";Q.registerClass(Jy);async function dD(r,t){"modelTopology"in r||(r={modelTopology:r}),r=r;let e=r.modelTopology;e.model_config!=null&&(e=e.model_config);let n=yc(e),o=gn(n,t);if(r.weightsManifest!=null){let s=await _r.loadWeights(r.weightsManifest,r.pathPrefix,o.weights.map(a=>a.originalName)),i={};for(let a of o.weights)i[a.originalName]=s[a.originalName];o.loadWeights(i),vt(s)}return o}async function hD(r,t){if(t==null&&(t={}),typeof r=="string"){let e=_r.getLoadHandlers(r,t);if(e.length===0)e.push(_r.browserHTTPRequest(r,t));else if(e.length>1)throw new M(`Found more than one (${e.length}) load handlers for URL '${r}'`);r=e[0]}return U8(r,void 0,t)}async function U8(r,t,e){if(e==null&&(e={}),r.load==null)throw new M("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let n=await r.load(),o=n.modelTopology;o.model_config!=null&&(o=o.model_config);let s=e.strict==null?!0:e.strict,i=n.weightData!=null&&n.weightSpecs!=null&&s,a=gn(yc(o),t,i),u=n.trainingConfig;if(u!=null&&a.loadTrainingConfig(u),n.userDefinedMetadata!=null&&a.setUserDefinedMetadata(n.userDefinedMetadata),n.weightData!=null){if(n.weightSpecs==null)throw new M("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:l,optimizerWeights:c}=H8(n.weightData,n.weightSpecs);a.loadWeights(l,s),a.optimizer!=null&&c.length>0&&await a.optimizer.setWeights(c),vt(l),vt(c.map(p=>p.tensor))}return a}function H8(r,t){let e=_r.decodeWeights(r,t),n={},o=[];return t.forEach(s=>{s.group==="optimizer"?o.push({name:s.name,tensor:e[s.name]}):n[s.name]=e[s.name]}),{modelWeights:n,optimizerWeights:o}}var qi=class extends Bn{constructor(t){if(super({inputs:[],outputs:[]}),t=t||{},this.trainable=!0,this.built=!1,this.name=t.name!=null?t.name:gu("sequential_"),t.layers!=null)for(let e of t.layers)this.add(e)}checkShape(t){if(t.inboundNodes[0].outputTensors[0].shape.some(n=>n<0))throw new M(`Negative dimension size caused by adding layer ${t.name} with input shape [${t.inboundNodes[0].inputTensors[0].shape}]`)}add(t){let e=t instanceof qi||t instanceof Bn,n;if(e){if(n=t,n.outputs.length!==1)throw new M("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(n.inputs.length!==1)throw new M("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(t.inboundNodes.length===0){if(t.batchInputShape==null)throw new M("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let o=Dy({batchShape:t.batchInputShape,dtype:t.dtype,name:t.name+"_input"});t.apply(o)}if(e)this.outputs=n.outputs,this.inputs=n.inputs;else{if(t.inboundNodes.length!==1)throw new M(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${t.name} which has ${t.inboundNodes.length} pre-existing inbound connections.`);if(t.inboundNodes[0].outputTensors.length!==1)throw new M("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(t),this.outputs=[t.inboundNodes[0].outputTensors[0]],this.inputs=k0(this.outputs[0])}this.inboundNodes=[],new ol({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:Io(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(o=>o.shape),outputShapes:this.outputs[0].shape})}else{let o=t.apply(this.outputs[0]);if(Array.isArray(o))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(t),this.outputs=[o],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(t),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let t=this.layers.length-1;this.layers[t].outboundNodes=[],this.outputs=[this.layers[t].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(t,e){return this.model==null&&this.build(),this.model.call(t,e)}build(t){if(Bt(t),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new Bn({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(t,e,n=console.log){this.built||this.build(),super.summary(t,e,n)}setWeights(t){this.model==null&&this.build(),this.model.setWeights(t)}evaluate(t,e,n={}){if(!this.built)throw new Hr("The model needs to be compiled before being used.");return this.model.evaluate(t,e,n)}async evaluateDataset(t,e){if(!this.built)throw new Hr("The model needs to be compiled before being used.");return this.model.evaluateDataset(t,e)}predict(t,e={}){return this.model==null&&this.build(),this.model.predict(t,e)}predictOnBatch(t){return this.model==null&&this.build(),this.model.predictOnBatch(t)}compile(t){this.build(),this.model.compile(t),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 this.model==null?void 0:this.model.optimizer}set optimizer(t){this.model.optimizer=t}async fit(t,e,n={}){if(!this.built)throw new Hr("The model needs to be compiled before being used.");return this.model.fit(t,e,n)}async fitDataset(t,e){if(!this.built)throw new Hr("The model needs to be compiled before being used.");return this.model.fitDataset(t,e)}async trainOnBatch(t,e){return this.model.trainOnBatch(t,e)}static fromConfig(t,e,n={},o=!1){let s,i={};if(e instanceof Array){if(e[0].className==null||e[0].className==="Merge")throw new M("Legacy serialization format not supported yet.");s=e}else y.assert(e.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),s=e.layers,delete e.layers,i=e;let a=new t(i);if(!(a instanceof qi))throw new St(`Sequential.fromConfig called on non-Sequential input: ${a}`);for(let u of s){let c=gn(u,void 0,o);o&&c.setFastWeightInitDuringBuild(!0),a.add(c)}return a}set stopTraining(t){if(this.model==null)throw new M("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=t}get stopTraining(){if(this.model==null)throw new M("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let t=[];for(let e of this.layers){let n={};n.className=e.getClassName(),n.config=e.getConfig(),t.push(n)}return{name:this.name,layers:t}}};qi.className="Sequential";Q.registerClass(qi);function q8(r){return new Bn(r)}function K8(r){return new qi(r)}function P0(r){return Dy(r)}function j8(r,t){hn.registerCallbackConstructor(r,t)}var Qr=class extends Q.Serializable{getConfig(){return{}}},Qy=class extends Qr{apply(t,e=1){return F$(t,e)}};Qy.className="elu";Q.registerClass(Qy);var tb=class extends Qr{apply(t){return pm(t)}};tb.className="selu";Q.registerClass(tb);var eb=class extends Qr{apply(t){return Fr(t)}};eb.className="relu";Q.registerClass(eb);var rb=class extends Qr{apply(t){return B(()=>Mi(6,Fr(t)))}};rb.className="relu6";Q.registerClass(rb);var nb=class extends Qr{apply(t){return t}};nb.className="linear";Q.registerClass(nb);var ob=class extends Qr{apply(t){return Yr(t)}};ob.className="sigmoid";Q.registerClass(ob);var sb=class extends Qr{apply(t){return P$(t)}};sb.className="hardSigmoid";Q.registerClass(sb);var ib=class extends Qr{apply(t){return zs(t)}};ib.className="softplus";Q.registerClass(ib);var ab=class extends Qr{apply(t){return O$(t)}};ab.className="softsign";Q.registerClass(ab);var lb=class extends Qr{apply(t){return $i(t)}};lb.className="tanh";Q.registerClass(lb);var qm=class extends Qr{apply(t,e=-1){return iu(t,e)}};qm.className="softmax";Q.registerClass(qm);var ub=class extends Qr{apply(t,e=-1){return sm(t,e)}};ub.className="logSoftmax";Q.registerClass(ub);var cb=class extends Qr{apply(t,e=1){return B(()=>D(Yr(D(t,e)),t))}};cb.className="swish";Q.registerClass(cb);var pb=class extends Qr{apply(t){return B(()=>D(t,$i(zs(t))))}};pb.className="mish";Q.registerClass(pb);function js(r){return r.getClassName()}function L0(r,t={}){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,"activation")}function Xs(r){if(r==null){let t={};return t.className="linear",t.config={},L0(t)}if(typeof r=="string"){let t={};return t.className=r,t.config={},L0(t)}else return r instanceof Qr?r:L0(r)}function M0(r){if(r!=null&&typeof r!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${r}`)}var mb=class extends Q.Serializable{},wu=class extends mb{constructor(t){super(),M0(t),this.l1=t==null||t.l1==null?.01:t.l1,this.l2=t==null||t.l2==null?.01:t.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(t){return B(()=>{let e=Ne([1]);return this.hasL1&&(e=X(e,ft(D(this.l1,Ee(t))))),this.hasL2&&(e=X(e,ft(D(this.l2,lc(t))))),R(e,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(t,e){return new t({l1:e.l1,l2:e.l2})}};wu.className="L1L2";Q.registerClass(wu);function yD(r){return M0(r),new wu({l1:r!=null?r.l1:null,l2:0})}function bD(r){return M0(r),new wu({l2:r!=null?r.l2:null,l1:0})}var gD={l1l2:"L1L2"};function me(r){return Sm(r)}function xD(r,t={}){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,"regularizer")}function be(r){if(r==null)return null;if(typeof r=="string"){let e={className:r in gD?gD[r]:r,config:{}};return xD(e)}else return r instanceof mb?r:xD(r)}var Km=class extends $t{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null&&(this.maxValue=t.maxValue)}call(t,e){t=Nt(t);let n=Fr(t);return this.maxValue!=null&&(n=Cr(n,0,this.maxValue)),n}computeOutputShape(t){return t}getConfig(){let t={maxValue:this.maxValue},e=super.getConfig();return Object.assign(t,e),t}};Km.className="ReLU";Q.registerClass(Km);var jm=class extends $t{constructor(t){super(t==null?{}:t),this.DEFAULT_ALPHA=.3,t==null&&(t={}),this.alpha=t.alpha==null?this.DEFAULT_ALPHA:t.alpha}call(t,e){let n=Nt(t);return Ql(n,this.alpha)}computeOutputShape(t){return t}getConfig(){let t={alpha:this.alpha},e=super.getConfig();return Object.assign(t,e),t}};jm.className="LeakyReLU";Q.registerClass(jm);var Xm=class extends $t{constructor(t){if(super(t==null?{}:t),this.DEFAULT_ALPHA_INITIALIZER="zeros",t==null&&(t={}),this.supportsMasking=!0,this.alphaInitializer=de(t.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=be(t.alphaRegularizer),this.alphaConstraint=Be(t.alphaConstraint),t.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(t.sharedAxes))this.sharedAxes=t.sharedAxes;else if(typeof t.sharedAxes=="number")this.sharedAxes=[t.sharedAxes];else throw new M(`Expected sharedAxes to be a number or an array of numbers, but got ${t.sharedAxes}`)}build(t){t=Bt(t);let e=t.slice(1);if(this.sharedAxes!=null)for(let o of this.sharedAxes)e[o-1]=1;this.alpha=this.addWeight("alpha",e,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let o=1;o(Fe(t),t==="channelsFirst"?Ot(r,[0,2,3,1]):r))}function z0(r,t){return B(()=>(Fe(t),t==="channelsFirst"?Ot(r,[0,2,3,4,1]):r))}function Y8(r,t,e,n=1,o="valid",s,i=1){return B(()=>{if(s==null&&(s=mn()),Fe(s),r.shape.length!==3)throw new M(`The input of a conv1dWithBias operation should be 3, but is ${r.shape.length} instead.`);if(t.shape.length!==3)throw new M(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(e!=null&&e.shape.length!==1)throw new M(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s==="channelsFirst"&&(r=Ot(r,[0,2,1])),o==="causal")throw new St("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let a=Qp(r,t,n,o==="same"?"same":"valid","NWC",i);return e!=null&&(a=fn(a,e)),a})}function wD(r,t,e,n=[1,1],o="valid",s,i,a=null){return B(()=>{if(s==null&&(s=mn()),Fe(s),r.rank!==3&&r.rank!==4)throw new M(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${r.rank}.`);if(t.rank!==3&&t.rank!==4)throw new M(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${r.rank}.`);let u=Ah(r,s);if(o==="causal")throw new St("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return u=uu.conv2d({x:u,filter:t,strides:n,pad:o==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:e,activation:a}),s==="channelsFirst"&&(u=Ot(u,[0,3,1,2])),u})}function Z8(r,t,e,n=[1,1,1],o="valid",s,i){return B(()=>{if(s==null&&(s=mn()),Fe(s),r.rank!==4&&r.rank!==5)throw new M(`conv3dWithBias expects input to be of rank 4 or 5, but received ${r.rank}.`);if(t.rank!==4&&t.rank!==5)throw new M(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${r.rank}.`);let a=z0(r,s);if(o==="causal")throw new St("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return a=Tx(a,t,n,o==="same"?"same":"valid","NDHWC",i),e!=null&&(a=fn(a,e)),s==="channelsFirst"&&(a=Ot(a,[0,4,1,2,3])),a})}var bc=class extends $t{constructor(t,e){if(super(e),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",bc.verifyArgs(e),this.rank=t,Ze(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new St(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=Cu(e.kernelSize,t,"kernelSize"),this.strides=Cu(e.strides==null?1:e.strides,t,"strides"),this.padding=e.padding==null?"valid":e.padding,pn(this.padding),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Fe(this.dataFormat),this.activation=Xs(e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.biasInitializer=de(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Be(e.biasConstraint),this.biasRegularizer=be(e.biasRegularizer),this.activityRegularizer=be(e.activityRegularizer),this.dilationRate=Cu(e.dilationRate==null?1:e.dilationRate,t,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new M(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new M(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new M(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(t){if(ro("kernelSize"in t,"required key 'kernelSize' not in config"),typeof t.kernelSize!="number"&&!Cy(t.kernelSize,"number",1,3))throw new M(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(t.kernelSize)}.`)}getConfig(){let t={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:js(this.activation),useBias:this.useBias,biasInitializer:Te(this.biasInitializer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),biasConstraint:ze(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}},Iu=class extends bc{constructor(t,e){super(t,e),this.kernel=null,Iu.verifyArgs(e),this.filters=e.filters,Ze(this.filters,"filters"),this.kernelInitializer=de(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Be(e.kernelConstraint),this.kernelRegularizer=be(e.kernelRegularizer)}build(t){t=Bt(t);let e=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[e]==null)throw new M(`The channel dimension of the input should be defined. Found ${t[e]}`);let n=t[e],o=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",o,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:{[e]:n}}],this.built=!0}call(t,e){return B(()=>{t=Nt(t);let n,o=this.bias==null?null:this.bias.read(),s=Iy(this.activation.getClassName());if(s!=null&&this.rank===2)n=wD(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)n=Y8(t,this.kernel.read(),o,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=wD(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=Z8(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new St("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(t){t=Bt(t);let e=[],n=this.dataFormat==="channelsLast"?t.slice(1,t.length-1):t.slice(2);for(let s=0;s 0 but got ${JSON.stringify(t.filters)}`)}},il=class extends Iu{constructor(t){super(2,t),il.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!Cy(t.kernelSize,"number",1,2))throw new M(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(t.kernelSize)}.`)}};il.className="Conv2D";Q.registerClass(il);var al=class extends Iu{constructor(t){super(3,t),al.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!(Array.isArray(t.kernelSize)&&(t.kernelSize.length===1||t.kernelSize.length===3)))throw new M(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(t.kernelSize)}.`)}};al.className="Conv3D";Q.registerClass(al);var Qm=class extends il{constructor(t){if(super(t),this.inputSpec=[new ye({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new M(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=Bt(t),t.length!==4)throw new M("Input should have rank 4; Received input shape: "+JSON.stringify(t));let e=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[e]==null)throw new M("The channel dimension of the inputs should be defined. Found `None`.");let n=t[e],o=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",o,"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 ye({ndim:4,axes:{[e]:n}})],this.built=!0}call(t,e){return B(()=>{let n=Nt(t);if(n.shape.length!==4)throw new M(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let o=n.shape,s=o[0],i,a;this.dataFormat==="channelsFirst"?(i=2,a=3):(i=1,a=2);let u=o[i],l=o[a],c=this.kernelSize[0],p=this.kernelSize[1],m=this.strides[0],f=this.strides[1],d=Ys(u,m,c,this.padding),h=Ys(l,f,p,this.padding),g=[s,d,h,this.filters];this.dataFormat!=="channelsLast"&&(n=Ot(n,[0,2,3,1]));let x=em(n,this.kernel.read(),g,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(x=Ot(x,[0,3,1,2])),this.bias!=null&&(x=fn(x,this.bias.read(),this.dataFormat)),this.activation!=null&&(x=this.activation.apply(x)),x})}computeOutputShape(t){t=Bt(t);let e=t.slice(),n,o,s;this.dataFormat==="channelsFirst"?(n=1,o=2,s=3):(n=3,o=1,s=2);let i=this.kernelSize[0],a=this.kernelSize[1],u=this.strides[0],l=this.strides[1];return e[n]=this.filters,e[o]=Ys(e[o],u,i,this.padding),e[s]=Ys(e[s],l,a,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};Qm.className="Conv2DTranspose";Q.registerClass(Qm);var tf=class extends al{constructor(t){if(super(t),this.inputSpec=[new ye({ndim:5})],this.padding!=="same"&&this.padding!=="valid")throw new M(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=Bt(t),t.length!==5)throw new M("Input should have rank 5; Received input shape: "+JSON.stringify(t));let e=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[e]==null)throw new M("The channel dimension of the inputs should be defined. Found `None`.");let n=t[e],o=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",o,"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 ye({ndim:5,axes:{[e]:n}})],this.built=!0}call(t,e){return B(()=>{let n=Nt(t);if(n.shape.length!==5)throw new M(`Conv3DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let o=n.shape,s=o[0],i,a,u;this.dataFormat==="channelsFirst"?(u=2,i=3,a=4):(u=1,i=2,a=3);let l=o[u],c=o[i],p=o[a],m=this.kernelSize[0],f=this.kernelSize[1],d=this.kernelSize[2],h=this.strides[0],g=this.strides[1],x=this.strides[2],b=Ys(l,h,m,this.padding),w=Ys(c,g,f,this.padding),C=Ys(p,x,d,this.padding),N=[s,b,w,C,this.filters];this.dataFormat!=="channelsLast"&&(n=Ot(n,[0,2,3,4,1]));let _=Ex(n,this.kernel.read(),N,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(_=Ot(_,[0,4,1,2,3])),this.bias!==null&&(_=fn(_,this.bias.read(),this.dataFormat)),this.activation!==null&&(_=this.activation.apply(_)),_})}computeOutputShape(t){t=Bt(t);let e=t.slice(),n,o,s,i;this.dataFormat==="channelsFirst"?(n=1,o=2,s=3,i=4):(n=4,o=1,s=2,i=3);let a=this.kernelSize[0],u=this.kernelSize[1],l=this.kernelSize[2],c=this.strides[0],p=this.strides[1],m=this.strides[2];return e[n]=this.filters,e[o]=Ys(e[o],c,a,this.padding),e[s]=Ys(e[s],p,u,this.padding),e[i]=Ys(e[i],m,l,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};tf.className="Conv3DTranspose";Q.registerClass(tf);var fb=class extends Iu{constructor(t,e){if(super(t,e),this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,e.filters==null)throw new M("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(e.kernelInitializer!=null||e.kernelRegularizer!=null||e.kernelConstraint!=null)throw new M("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(e.padding!=null&&e.padding!=="same"&&e.padding!=="valid")throw new M(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(e.padding)}`);this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=de(e.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=be(e.depthwiseRegularizer),this.depthwiseConstraint=Be(e.depthwiseConstraint),this.pointwiseInitializer=de(e.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=be(e.pointwiseRegularizer),this.pointwiseConstraint=Be(e.pointwiseConstraint)}build(t){if(t=Bt(t),t.length{t=Nt(t);let n;if(this.rank===1)throw new St("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(t=Ot(t,[0,2,3,1])),n=mm(t,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=fn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Ot(n,[0,3,1,2])),n})}getConfig(){let t=super.getConfig();return delete t.rank,delete t.kernelInitializer,delete t.kernelRegularizer,delete t.kernelConstraint,t.depthwiseInitializer=Te(this.depthwiseInitializer),t.pointwiseInitializer=Te(this.pointwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.pointwiseRegularizer=me(this.pointwiseRegularizer),t.depthwiseConstraint=ze(this.depthwiseConstraint),t.pointwiseConstraint=ze(this.pointwiseConstraint),t}};fb.className="SeparableConv";var ef=class extends fb{constructor(t){super(2,t)}};ef.className="SeparableConv2D";Q.registerClass(ef);var Su=class extends Iu{constructor(t){super(1,t),Su.verifyArgs(t),this.inputSpec=[{ndim:3}]}getConfig(){let t=super.getConfig();return delete t.rank,delete t.dataFormat,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!Cy(t.kernelSize,"number",1,1))throw new M(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(t.kernelSize)}.`)}};Su.className="Conv1D";Q.registerClass(Su);var rf=class extends $t{constructor(t){super(t),typeof t.cropping=="number"?this.cropping=[[t.cropping,t.cropping],[t.cropping,t.cropping]]:typeof t.cropping[0]=="number"?this.cropping=[[t.cropping[0],t.cropping[0]],[t.cropping[1],t.cropping[1]]]:this.cropping=t.cropping,this.dataFormat=t.dataFormat===void 0?"channelsLast":t.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(t){return this.dataFormat==="channelsFirst"?[t[0],t[1],t[2]-this.cropping[0][0]-this.cropping[0][1],t[3]-this.cropping[1][0]-this.cropping[1][1]]:[t[0],t[1]-this.cropping[0][0]-this.cropping[0][1],t[2]-this.cropping[1][0]-this.cropping[1][1],t[3]]}call(t,e){return B(()=>{if(t=Nt(t),this.dataFormat==="channelsLast"){let n=wh(t,this.cropping[0][0],t.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return wh(n,this.cropping[1][0],t.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=wh(t,this.cropping[0][0],t.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return wh(n,this.cropping[1][0],t.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let t={cropping:this.cropping,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};rf.className="Cropping2D";Q.registerClass(rf);var nf=class extends $t{constructor(t){super(t),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=t.size==null?this.DEFAULT_SIZE:t.size,this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Fe(this.dataFormat),this.interpolation=t.interpolation==null?"nearest":t.interpolation,E$(this.interpolation)}computeOutputShape(t){if(this.dataFormat==="channelsFirst"){let e=t[2]==null?null:this.size[0]*t[2],n=t[3]==null?null:this.size[1]*t[3];return[t[0],t[1],e,n]}else{let e=t[1]==null?null:this.size[0]*t[1],n=t[2]==null?null:this.size[1]*t[2];return[t[0],e,n,t[3]]}}call(t,e){return B(()=>{let n=Nt(t),o=n.shape;if(this.dataFormat==="channelsFirst"){n=Ot(n,[0,2,3,1]);let s=this.size[0]*o[2],i=this.size[1]*o[3],a=this.interpolation==="nearest"?Gs.resizeNearestNeighbor(n,[s,i]):Gs.resizeBilinear(n,[s,i]);return Ot(a,[0,3,1,2])}else{let s=this.size[0]*o[1],i=this.size[1]*o[2];return this.interpolation==="nearest"?Gs.resizeNearestNeighbor(n,[s,i]):Gs.resizeBilinear(n,[s,i])}})}getConfig(){let t={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},e=super.getConfig();return Object.assign(t,e),t}};nf.className="UpSampling2D";Q.registerClass(nf);function J8(r,t,e=[1,1],n="valid",o,s){return B(()=>{o==null&&(o=mn()),Fe(o);let i=Ah(r,o);if(r.rank!==4)throw new M(`Input for depthwiseConv2d is required to be 4-D, but is instead ${r.rank}-D`);if(t.rank!==4)throw new M(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=Fi(i,t,e,n==="same"?"same":"valid","NHWC",s),o==="channelsFirst"&&(i=Ot(i,[0,3,1,2])),i})}var of=class extends bc{constructor(t){super(2,t),this.depthwiseKernel=null,this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=de(t.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Be(t.depthwiseConstraint),this.depthwiseRegularizer=be(t.depthwiseRegularizer)}build(t){if(t=Bt(t),t.length<4)throw new M(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(t)}.`);let e=this.dataFormat==="channelsFirst"?1:3;if(t[e]==null||t[e]<0)throw new M(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${t[e]}).`);let n=t[e],o=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",o,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(t,e){return B(()=>{t=Nt(t);let n=J8(t,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=fn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(t){t=Bt(t);let e=this.dataFormat==="channelsFirst"?t[2]:t[1],n=this.dataFormat==="channelsFirst"?t[3]:t[2],o=this.dataFormat==="channelsFirst"?t[1]*this.depthMultiplier:t[3]*this.depthMultiplier,s=Nn(e,this.kernelSize[0],this.padding,this.strides[0]),i=Nn(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[t[0],o,s,i]:[t[0],s,i,o]}getConfig(){let t=super.getConfig();return t.depthMultiplier=this.depthMultiplier,t.depthwiseInitializer=Te(this.depthwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.depthwiseConstraint=ze(this.depthwiseRegularizer),t}};of.className="DepthwiseConv2D";Q.registerClass(of);function B0(r,t,e,n){if(Array.isArray(r)){if(t!=null||e!=null)throw new M("When inputs is an array, neither initialState or constants should be provided");n!=null&&(e=r.slice(r.length-n,r.length),r=r.slice(0,r.length-n)),r.length>1&&(t=r.slice(1,r.length)),r=r[0]}function o(s){return s==null||Array.isArray(s)?s:[s]}return t=o(t),e=o(e),{inputs:r,initialState:t,constants:e}}function V0(r,t,e,n=!1,o,s,i=!1,a=!1){return B(()=>{let u=t.shape.length;if(u<3)throw new M(`Input should be at least 3D, but is ${u}D.`);let l=[1,0].concat(Zr(2,u));if(t=Ot(t,l),s!=null)throw new St("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."),o!=null&&(o=J(J(o,"bool"),"float32"),o.rank===u-1&&(o=rr(o,-1)),o=Ot(o,l)),n&&(t=pr(t,0),o!=null&&(o=pr(o,0)));let c=[],p,m=e,f=t.shape[0],d=vr(t),h;o!=null&&(h=vr(o));for(let x=0;xr(b,m));if(o==null)p=w[0],m=w[1];else{let C=B(()=>{let N=h[x],_=ct(yr(N),N),A=X(D(w[0],N),D(m[0],_)),$=m.map((F,P)=>X(D(w[1][P],N),D(F,_)));return{output:A,newStates:$}});p=C.output,m=C.newStates}a&&c.push(p)}let g;return a&&(g=nr(c,1)),[p,g,m]})}var Tn=class extends $t{constructor(t){super(t);let e;if(t.cell==null)throw new M("cell property is missing for the constructor of RNN.");if(Array.isArray(t.cell)?e=new Ic({cells:t.cell}):e=t.cell,e.stateSize==null)throw new M("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=e,this.returnSequences=t.returnSequences==null?!1:t.returnSequences,this.returnState=t.returnState==null?!1:t.returnState,this.goBackwards=t.goBackwards==null?!1:t.goBackwards,this._stateful=t.stateful==null?!1:t.stateful,this.unroll=t.unroll==null?!1:t.unroll,this.supportsMasking=!0,this.inputSpec=[new ye({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Zr(0,t).map(e=>null)}else return this.states_}setStates(t){this.states_=t}computeOutputShape(t){$y(t)&&(t=t[0]),t=t;let e=this.cell.stateSize;Array.isArray(e)||(e=[e]);let n=e[0],o;if(this.returnSequences?o=[t[0],t[1],n]:o=[t[0],n],this.returnState){let s=[];for(let i of e)s.push([t[0],i]);return[o].concat(s)}else return o}computeMask(t,e){return B(()=>{Array.isArray(e)&&(e=e[0]);let n=this.returnSequences?e:null;if(this.returnState){let o=this.states.map(s=>null);return[n].concat(o)}else return n})}get states(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,e=[];for(let n=0;na.shape[a.shape.length-1]),i))throw new M(`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=i.map(a=>new ye({shape:[null,a]}));this.stateful&&this.resetStates()}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new vn("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape[0];if(n==null)throw new M("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(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>Ne([n,o])):this.states_=[Ne([n,this.cell.stateSize])];else if(t==null)vt(this.states_),this.keptStates!=null&&(vt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>Ne([n,o])):this.states_[0]=Ne([n,this.cell.stateSize]);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new M(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);e===!0?this.keptStates.push(this.states_.slice()):vt(this.states_);for(let o=0;oDe(o.clone()))})}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=B0(t,n,o,this.numConstants);t=s.inputs,n=s.initialState,o=s.constants;let i=[],a=[];if(n!=null){e.initialState=n,i=i.concat(n),this.stateSpec=[];for(let l of n)this.stateSpec.push(new ye({shape:l.shape}));a=a.concat(this.stateSpec)}if(o!=null&&(e.constants=o,i=i.concat(o),this.numConstants=o.length),i[0]instanceof Jr){let l=[t].concat(i),c=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=c;let m=super.apply(l,e);return this.inputSpec=p,m}else return super.apply(t,e)}call(t,e){return B(()=>{let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;t=Nt(t),s==null&&(this.stateful?s=this.states_:s=this.getInitialState(t));let i=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(s.length!==i)throw new M(`RNN Layer has ${i} state(s) but was passed ${s.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let a={training:o},l=V0((d,h)=>{let g=this.cell.call([d].concat(h),a);return[g[0],g.slice(1)]},t,s,this.goBackwards,n,null,this.unroll,this.returnSequences),c=l[0],p=l[1],m=l[2];this.stateful&&this.resetStates(m,o);let f=this.returnSequences?p:c;return this.returnState?[f].concat(m):f})}getInitialState(t){return B(()=>{let e=Ne(t.shape);return e=ft(e,[1,2]),e=nl(e),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Ey(e,[1,n]):e):this.cell.stateSize>1?[Ey(e,[1,this.cell.stateSize])]:[e]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(t)}getConfig(){let t=super.getConfig(),e={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(e.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===Tn.className&&(e.cell={className:this.cell.getClassName(),config:n}),Object.assign(Object.assign(Object.assign({},n),t),e)}static fromConfig(t,e,n={}){let o=e.cell,s=gn(o,n);return new t(Object.assign(e,{cell:s}))}};Tn.className="RNN";Q.registerClass(Tn);var ll=class extends $t{},wc=class extends ll{constructor(t){super(t),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=t.units,Ze(this.units,"units"),this.activation=Xs(t.activation==null?this.DEFAULT_ACTIVATION:t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=de(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=be(t.kernelRegularizer),this.recurrentRegularizer=be(t.recurrentRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.kernelConstraint=Be(t.kernelConstraint),this.recurrentConstraint=Be(t.recurrentConstraint),this.biasConstraint=Be(t.biasConstraint),this.dropout=ac([1,qs([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=ac([1,qs([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Bt(t),this.kernel=this.addWeight("kernel",[t[t.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(t,e){return B(()=>{if(t=t,t.length!==2)throw new M(`SimpleRNNCell expects 2 input Tensors, got ${t.length}.`);let n=t[1];t=t[0];let o=e.training==null?!1:e.training;0yr(t),rate:this.dropout,training:o,dropoutFunc:this.dropoutFunc})),0yr(n),rate:this.recurrentDropout,training:o,dropoutFunc:this.dropoutFunc}));let s,i=this.dropoutMask,a=this.recurrentDropoutMask;i!=null?s=To(D(t,i),this.kernel.read()):s=To(t,this.kernel.read()),this.bias!=null&&(s=fn(s,this.bias.read())),a!=null&&(n=D(n,a));let u=X(s,To(n,this.recurrentKernel.read()));return this.activation!=null&&(u=this.activation.apply(u)),[u,u]})}getConfig(){let t=super.getConfig(),e={units:this.units,activation:js(this.activation),useBias:this.useBias,kernelInitializer:Te(this.kernelInitializer),recurrentInitializer:Te(this.recurrentInitializer),biasInitializer:Te(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),recurrentRegularizer:me(this.recurrentRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:ze(this.kernelConstraint),recurrentConstraint:ze(this.recurrentConstraint),biasConstraint:ze(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},t),e)}};wc.className="SimpleRNNCell";Q.registerClass(wc);var sf=class extends Tn{constructor(t){t.cell=new wc(t),super(t)}call(t,e){return B(()=>{this.cell.dropoutMask!=null&&(vt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(vt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return new t(e)}};sf.className="SimpleRNN";Q.registerClass(sf);var Cc=class extends ll{constructor(t){if(super(t),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",t.resetAfter)throw new M("GRUCell does not support reset_after parameter set to true.");this.units=t.units,Ze(this.units,"units"),this.activation=Xs(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=Xs(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=de(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=be(t.kernelRegularizer),this.recurrentRegularizer=be(t.recurrentRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.kernelConstraint=Be(t.kernelConstraint),this.recurrentConstraint=Be(t.recurrentConstraint),this.biasConstraint=Be(t.biasConstraint),this.dropout=ac([1,qs([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=ac([1,qs([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Bt(t);let e=t[t.length-1];this.kernel=this.addWeight("kernel",[e,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(t,e){return B(()=>{if(t=t,t.length!==2)throw new M(`GRUCell expects 2 input Tensors (inputs, h, c), got ${t.length}.`);let n=e.training==null?!1:e.training,o=t[1];t=t[0],0yr(t),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0yr(o),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));let s=this.dropoutMask,i=this.recurrentDropoutMask,a,u,l;0{this.cell.dropoutMask!=null&&(vt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(vt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return e.implmentation===0&&(e.implementation=1),new t(e)}};af.className="GRU";Q.registerClass(af);var ul=class extends ll{constructor(t){super(t),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=t.units,Ze(this.units,"units"),this.activation=Xs(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=Xs(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=de(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=t.unitForgetBias,this.kernelRegularizer=be(t.kernelRegularizer),this.recurrentRegularizer=be(t.recurrentRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.kernelConstraint=Be(t.kernelConstraint),this.recurrentConstraint=Be(t.recurrentConstraint),this.biasConstraint=Be(t.biasConstraint),this.dropout=ac([1,qs([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=ac([1,qs([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){var e;t=Bt(t);let n=t[t.length-1];this.kernel=this.addWeight("kernel",[n,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let o;if(this.useBias){if(this.unitForgetBias){let s=this.biasInitializer,i=this.units;o=new(e=class extends dn{apply(u,l){let c=s.apply([i]),p=new yu().apply([i]),m=s.apply([i*2]);return T0(T0(c,p),m)}},e.className="CustomInit",e)}else o=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,o,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(t,e){return B(()=>{let n=e.training==null?!1:e.training;if(t=t,t.length!==3)throw new M(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let o=t[1],s=t[2];t=t[0],0yr(t),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0yr(o),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));let i=this.dropoutMask,a=this.recurrentDropoutMask,u,l,c,p;0{this.cell.dropoutMask!=null&&(vt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(vt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return e.implmentation===0&&(e.implementation=1),new t(e)}};lf.className="LSTM";Q.registerClass(lf);var Ic=class extends ll{constructor(t){super(t),this.cells=t.cells}get stateSize(){let t=[];for(let e of this.cells.slice().reverse())Array.isArray(e.stateSize)?t.push(...e.stateSize):t.push(e.stateSize);return t}call(t,e){return B(()=>{t=t;let n=t.slice(1),o=[];for(let a of this.cells.slice().reverse())Array.isArray(a.stateSize)?o.push(n.splice(0,a.stateSize.length)):o.push(n.splice(0,1));o.reverse();let s=[],i;for(let a=0;a{Hs(`RNNCell_${o}`,()=>{n.build(t),Array.isArray(n.stateSize)?e=n.stateSize[0]:e=n.stateSize,t=[t[0],e]})}),this.built=!0}getConfig(){let t=super.getConfig(),e=s=>({className:s.getClassName(),config:s.getConfig()}),o={cells:this.cells.map(e)};return Object.assign(Object.assign({},t),o)}static fromConfig(t,e,n={}){let o=[];for(let s of e.cells)o.push(gn(s,n));return new t({cells:o})}get trainableWeights(){if(!this.trainable)return[];let t=[];for(let e of this.cells)t.push(...e.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let e of this.cells)t.push(...e.nonTrainableWeights);if(!this.trainable){let e=[];for(let n of this.cells)e.push(...n.trainableWeights);return e.concat(t)}return t}getWeights(){let t=[];for(let e of this.cells)t.push(...e.weights);return Ih(t)}setWeights(t){let e=[];for(let n of this.cells){let o=n.weights.length,s=t.splice(o);for(let i=0;is!=null?s(t(),e):Ay(t(),e),a=()=>xu(i,t,n);return!o||o<=1?De(a().clone()):Array(o).fill(void 0).map(a).map(l=>De(l.clone()))}var Q8=function(r,t){var e={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&t.indexOf(n)<0&&(e[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,n=Object.getOwnPropertySymbols(r);o{if(this.cell.dropoutMask!=null&&(vt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(vt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),e&&e.constants)throw new M("ConvRNN2D cell does not support constants");let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}computeOutputShape(t){let e=this.computeSingleOutputShape(t);return this.returnSequences||(e=[e[0],...e.slice(2)]),this.returnState&&(e=[e,...Array(2).fill([t[0],...e.slice(-3)])]),e}getInitialState(t){return B(()=>{let{stateSize:e}=this.cell,n=t.shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.slice(2)],i=Ne(s);return Array.isArray(e)?Array(e.length).fill(i):[i]})}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new vn("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.slice(2)];if(n[0]==null)throw new M("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(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>Ne(s)):this.states_=[Ne(s)];else if(t==null)vt(this.states_),this.keptStates!=null&&(vt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>Ne(s)):this.states_[0]=Ne(s);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new M(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);e?this.keptStates.push(this.states_.slice()):vt(this.states_);for(let a=0;aDe(a.clone()))})}computeSingleOutputShape(t){let{dataFormat:e,filters:n,kernelSize:o,padding:s,strides:i,dilationRate:a}=this.cell,u=e==="channelsFirst",l=t[u?3:2],c=t[u?4:3],p=Nn(l,o[0],s,i[0],a[0]),m=Nn(c,o[1],s,i[1],a[1]);return[...t.slice(0,2),...u?[n,p,m]:[p,m,n]]}};db.className="ConvRNN2D";var Sc=class extends ul{constructor(t){let{filters:e,kernelSize:n,strides:o,padding:s,dataFormat:i,dilationRate:a}=t;super(Object.assign(Object.assign({},t),{units:e})),this.filters=e,Ze(this.filters,"filters"),this.kernelSize=Cu(n,2,"kernelSize"),this.kernelSize.forEach(u=>Ze(u,"kernelSize")),this.strides=Cu(o||1,2,"strides"),this.strides.forEach(u=>Ze(u,"strides")),this.padding=s||"valid",pn(this.padding),this.dataFormat=i||"channelsLast",Fe(this.dataFormat),this.dilationRate=Cu(a||1,2,"dilationRate"),this.dilationRate.forEach(u=>Ze(u,"dilationRate"))}build(t){var e;t=Bt(t);let n=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[n]==null)throw new M(`The channel dimension of the input should be defined. Found ${t[n]}`);let o=t[n],s=4,i=this.kernelSize.concat([o,this.filters*s]);this.kernel=this.addWeight("kernel",i,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let a=this.kernelSize.concat([this.filters,this.filters*s]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",a,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let u;if(this.unitForgetBias){let l=this.biasInitializer,c=this.filters;u=new(e=class extends dn{apply(m,f){let d=l.apply([c]),h=cr([c]),g=l.apply([c*2]);return Nm([d,h,g])}},e.className="CustomInit",e)}else u=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*s],null,u,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(t,e){return B(()=>{if(t.length!==3)throw new M(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let n=e.training||!1,o=t[0],s=t[1],i=t[2],a=4;0yr(o),rate:this.dropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let u=this.dropoutMask,l=(rt,ot,at)=>!ot||!ot[at]?rt:D(ot[at],rt),c=l(o,u,0),p=l(o,u,1),m=l(o,u,2),f=l(o,u,3);0yr(s),rate:this.recurrentDropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let d=this.recurrentDropoutMask,h=l(s,d,0),g=l(s,d,1),x=l(s,d,2),b=l(s,d,3),w=3,[C,N,_,A]=mr(this.kernel.read(),a,w),[$,F,P,V]=this.useBias?mr(this.bias.read(),a):[null,null,null,null];c=this.inputConv(c,C,$,this.padding),p=this.inputConv(p,N,F,this.padding),m=this.inputConv(m,_,P,this.padding),f=this.inputConv(f,A,V,this.padding);let[G,W,q,H]=mr(this.recurrentKernel.read(),a,w);h=this.recurrentConv(h,G),g=this.recurrentConv(g,W),x=this.recurrentConv(x,q),b=this.recurrentConv(b,H);let j=this.recurrentActivation.apply(X(c,h)),Y=this.recurrentActivation.apply(X(p,g)),Z=X(D(Y,i),D(j,this.activation.apply(X(m,x)))),et=D(this.recurrentActivation.apply(X(f,b)),this.activation.apply(Z));return[et,et,Z]})}getConfig(){let t=super.getConfig(),{units:e}=t,n=Q8(t,["units"]),o={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),o)}inputConv(t,e,n,o){let s=In(t,e,this.strides,o||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?fn(s,n,this.dataFormat):s}recurrentConv(t,e){return In(t,e,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Sc.className="ConvLSTM2DCell";Q.registerClass(Sc);var uf=class extends db{constructor(t){let e=new Sc(t);super(Object.assign(Object.assign({},t),{cell:e}))}static fromConfig(t,e){return new t(e)}};uf.className="ConvLSTM2D";Q.registerClass(uf);var vc=class extends $t{constructor(t){super(t),this.rate=Math.max(Math.min(t.rate,1),0),this.noiseShape=t.noiseShape,this.seed=t.seed,this.supportsMasking=!0}getNoiseShape(t){if(this.noiseShape==null)return this.noiseShape;let e=t.shape,n=[];for(let o=0;o{this.invokeCallHook(t,e);let n=Nt(t);if(0Ay(n,this.rate,s,this.seed),()=>n,o)}return t})}getConfig(){let t={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},e=super.getConfig();return Object.assign(t,e),t}dispose(){return super.dispose()}};vc.className="Dropout";Q.registerClass(vc);var cf=class extends vc{constructor(t){super(t),this.inputSpec=[{ndim:3}]}getNoiseShape(t){let e=t.shape;return[e[0],1,e[2]]}};cf.className="SpatialDropout1D";Q.registerClass(cf);var pf=class extends $t{constructor(t){if(super(t),this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",t.batchInputShape==null&&t.inputShape==null&&t.inputDim!=null){let e=null;t.batchSize!=null&&(e=t.batchSize),this.batchInputShape=[e,t.inputDim]}this.units=t.units,Ze(this.units,"units"),this.activation=Xs(t.activation),t.useBias!=null&&(this.useBias=t.useBias),this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Be(t.kernelConstraint),this.biasConstraint=Be(t.biasConstraint),this.kernelRegularizer=be(t.kernelRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.activityRegularizer=be(t.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(t){t=Bt(t);let e=t[t.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[e,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]:e}}],this.built=!0}computeOutputShape(t){t=Bt(t);let e=t.slice();return e[e.length-1]=this.units,e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t),o=Iy(this.activation.getClassName()),s;return o!=null?s=To(n,this.kernel.read(),o,this.bias?this.bias.read():null):(s=To(n,this.kernel.read()),this.bias!=null&&(s=fn(s,this.bias.read())),this.activation!=null&&(s=this.activation.apply(s))),s})}getConfig(){let t={units:this.units,activation:js(this.activation),useBias:this.useBias,kernelInitializer:Te(this.kernelInitializer),biasInitializer:Te(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:ze(this.kernelConstraint),biasConstraint:ze(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}};pf.className="Dense";Q.registerClass(pf);var mf=class extends $t{constructor(t){t=t||{},super(t),this.inputSpec=[{minNDim:3}],this.dataFormat=t.dataFormat}computeOutputShape(t){t=Bt(t);for(let e of t.slice(1))if(e==null)throw new M(`The shape of the input to "Flatten" is not fully defined (got ${t.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[t[0],No(t,1)]}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t);if(this.dataFormat==="channelsFirst"&&n.rank>1){let o=[0];for(let s=2;s{this.invokeCallHook(t,e);let n=Nt(t);return this.activation.apply(n)})}getConfig(){let t={activation:js(this.activation)},e=super.getConfig();return Object.assign(t,e),t}};ff.className="Activation";Q.registerClass(ff);var df=class extends $t{constructor(t){super(t),this.n=t.n,this.inputSpec=[{ndim:2}]}computeOutputShape(t){return[t[0],this.n,t[1]]}call(t,e){return B(()=>(t=Nt(t),$$(t,this.n)))}getConfig(){let t={n:this.n},e=super.getConfig();return Object.assign(t,e),t}};df.className="RepeatVector";Q.registerClass(df);var hf=class extends $t{constructor(t){super(t),this.targetShape=t.targetShape;for(let e=0;e{this.invokeCallHook(t,e);let n=Nt(t),o=n.shape,s=o.slice(0,1).concat(this.fixUnknownDimension(o.slice(1),this.targetShape));return R(n,s)})}getConfig(){let t={targetShape:this.targetShape},e=super.getConfig();return Object.assign(t,e),t}};hf.className="Reshape";Q.registerClass(hf);var gf=class extends $t{constructor(t){if(super(t),t.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(t.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${t.dims} instead.`);let e=Zr(1,t.dims.length+1);if(!y.arraysEqual(t.dims.slice().sort(),e))throw new Error("Invalid permutation `dims`: "+JSON.stringify(t.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=t.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new ye({ndim:this.dims.length+1})]}computeOutputShape(t){t=Bt(t);let e=t.slice();return this.dims.forEach((n,o)=>{e[o+1]=t[n]}),e}call(t,e){return Ot(Nt(t),this.dimsIncludingBatch)}getConfig(){let t={dims:this.dims},e=super.getConfig();return Object.assign(t,e),t}};gf.className="Permute";Q.registerClass(gf);var xf=class extends $t{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null?this.maskValue=t.maskValue==null?0:t.maskValue:this.maskValue=0}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={maskValue:this.maskValue};return Object.assign(e,t),e}computeMask(t,e){let n=Nt(t),o=-1;return qu(Bs(n,this.maskValue),o)}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t),o=-1,s=!0,i=qu(Bs(n,this.maskValue),o,s);return D(n,J(i,n.dtype))})}};xf.className="Masking";Q.registerClass(xf);var yf=class extends $t{constructor(t){if(super(t),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",t.batchInputShape==null&&t.inputShape==null){let e=null;t.batchSize!=null&&(e=t.batchSize),t.inputLength==null?this.batchInputShape=[e,null]:this.batchInputShape=[e].concat(xe(t.inputLength))}this.inputDim=t.inputDim,Ze(this.inputDim,"inputDim"),this.outputDim=t.outputDim,Ze(this.outputDim,"outputDim"),this.embeddingsInitializer=de(t.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=be(t.embeddingsRegularizer),this.activityRegularizer=be(t.activityRegularizer),this.embeddingsConstraint=Be(t.embeddingsConstraint),this.maskZero=t.maskZero,this.supportsMasking=t.maskZero,this.inputLength=t.inputLength}build(t){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(t){}computeMask(t,e){return B(()=>this.maskZero?(t=Nt(t),Bs(t,It(t))):null)}computeOutputShape(t){if(t=Bt(t),this.inputLength==null)return[...t,this.outputDim];let e=xe(this.inputLength);if(e.length!==t.length-1)throw new M(`"inputLength" is ${this.inputLength}, but received input shape has shape ${t}`);{let n=0;for(let o=0;o{this.invokeCallHook(t,e);let n=Nt(t);n.dtype!=="int32"&&(n=no(n,"int32"));let o=_y(this.embeddings.read(),R(n,[n.size]));return R(o,Bt(this.computeOutputShape(n.shape)))})}getConfig(){let t={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Te(this.embeddingsInitializer),embeddingsRegularizer:me(this.embeddingsRegularizer),activityRegularizer:me(this.activityRegularizer),embeddingsConstraint:ze(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},e=super.getConfig();return Object.assign(t,e),t}};yf.className="Embedding";Q.registerClass(yf);var pl=class extends $t{constructor(t){super(t||{}),this.supportsMasking=!0}mergeFunction(t){throw new St}computeElementwiseOpOutputShape(t,e){if(t==null||e==null)return null;if(t.length1)throw new M(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(t)}.`);let n=t[0]==null?null:t[0].slice(1);for(let s=1;ss.length);t.indexOf(null)===-1&&vo(o).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(t,e){return B(()=>{if(t=t,this.reshapeRequired){let n=[],o=t.map(s=>s.rank);if(o.indexOf(null)===-1){let s=qs(o);for(let i of t){let a=i.rank;for(let u=0;u1){let c=Zr(1,l).concat([0]);n.push(Ot(u,c)),s=!0}else n.push(u)}let i=this.mergeFunction(n),a=i.rank;if(s){if(a==null){let u=i.shape,l=u.length,c=u[l-1],p=[c].concat(u.slice(0,u.length-1));i=R(Ot(R(i,[-1,c]),[1,0]),p)}else if(a>1){let u=[a-1].concat(Zr(0,a-1));i=Ot(i,u)}}return i}}else return this.mergeFunction(t)})}computeOutputShape(t){t=t;let e;t[0]==null?e=null:e=t[0].slice(1);for(let o=1;o{if(e==null)return null;if(!Array.isArray(e))throw new M("`mask` should be an Array");if(!Array.isArray(t))throw new M("`inputs` should be an Array");if(e.length!==t.length)throw new M(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${t.length} vs ${e.length})`);if(e.every(o=>o==null))return null;e=e.map(o=>o==null?o:rr(o,0));let n=e[0];for(let o=1;o{let e=t[0].clone();for(let n=1;n{let e=t[0].clone();for(let n=1;n{let e=t[0].clone();for(let n=1;n{let e=t[0];for(let n=1;n{let e=t[0];for(let n=1;n1)throw new M("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(t))}mergeFunction(t){return B(()=>Nm(t,this.axis))}computeOutputShape(t){if(!(Array.isArray(t)&&Array.isArray(t[0])))throw new M("A `Concatenate` layer should be called on a list of inputs.");let e=t,n=e[0].slice(),o=this.axis<0?n.length+this.axis:this.axis;for(let s of e.slice(1)){if(n[o]==null||s[o]==null){n[o]=null;break}n[o]+=s[o]}return n}computeMask(t,e){if(e==null)return null;if(!Array.isArray(e))throw new M("`mask` should be an array for Concatenate");if(!Array.isArray(t))throw new M("`inputs` should be an array for Concatenate");if(e.length!==t.length)throw new M(`Mismatch in the length of mask (${e.length}) and the legnth of inputs (${t.length})`);return B(()=>{let n=!0;if(e.forEach(i=>{if(i!=null){n=!1;return}}),n)return null;let o=[];for(let i=0;i3||t.shape.length>3)throw new St("batchDot is not implemented for tensors of 4D or higher rank yet");if(y.assert(r.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${r.shape.length}`),y.assert(r.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof e=="number"&&(e=[e,e]),r.dtype==="complex64"||t.dtype==="complex64")throw new St("batchDot is not implemented for complex64-type Tensors yet.");let n=r.shape.length,o=t.shape.length;e==null&&(e=[n-1,o-2]);let s=e;return B(()=>{let i;if(n>o){i=n-o;let u=[];for(let l=0;ln){i=o-n;let u=[];for(let l=0;l0){let u;n>o?u=n+o-3:u=n-1;let l=[];for(let c=u;c"A `Dot` layer should be called on a list of exactly 2 inputs.");let e=t[0],n=t[1];if(e.length>3||n.length>3)throw new St("Dot layer does not support tensors of 4D or higher rank yet.");let o=this.interpretAxes(e,n);if(e[o[0]]!==n[o[1]])throw new M(`Dimension incompatibility: ${e[o[0]]} !== ${n[o[1]]}`)}mergeFunction(t){if(t.length!==2)throw new M(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${t.length} input(s).`);let e=t[0],n=t[1],o;return Array.isArray(this.axes)?o=this.axes.map((s,i)=>$h(s,t[i].shape.length)):o=[$h(this.axes,e.shape.length),$h(this.axes,n.shape.length)],this.normalize&&(e=Sh(e,o[0]),n=Sh(n,o[1])),tY(e,n,o)}interpretAxes(t,e){let n;return Array.isArray(this.axes)?n=this.axes:n=[$h(this.axes,t.length),$h(this.axes,e.length)],n}computeOutputShape(t){y.assert(Array.isArray(t)&&t.length===2&&Array.isArray(t[0])&&Array.isArray(t[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let e=t[0].slice(),n=t[1].slice();if(e.length>3||n.length>3)throw new St("Dot layer does not support tensors of 4D or higher rank yet.");let o=this.interpretAxes(e,n);e.splice(o[0],1),n.splice(o[1],1),n.splice(0,1);let s=e.concat(n);return s.length===1&&s.push(1),s}computeMask(t,e){return null}getConfig(){let t={axes:this.axes,normalize:this.normalize},e=super.getConfig();return Object.assign(t,e),t}};Nf.className="Dot";Q.registerClass(Nf);var Tf=class extends $t{constructor(t){super(t),this.supportsMasking=!0,this.stddev=t.stddev}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={stddev:this.stddev};return Object.assign(e,t),e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t);return xu(()=>X(Tm(n.shape,0,this.stddev),n),()=>n,e.training||!1)})}};Tf.className="GaussianNoise";Q.registerClass(Tf);var kf=class extends $t{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={rate:this.rate};return Object.assign(e,t),e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t);return this.rate>0&&this.rate<1?xu(()=>{let s=Math.sqrt(this.rate/(1-this.rate));return D(n,Tm(n.shape,1,s))},()=>n,e.training||!1):n})}};kf.className="GaussianDropout";Q.registerClass(kf);var Ef=class extends $t{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate,this.noiseShape=t.noiseShape}_getNoiseShape(t){return this.noiseShape||Nt(t).shape}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={rate:this.rate};return Object.assign(e,t),e}call(t,e){return B(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(t);return xu(()=>{let s=Nt(t),i=1.6732632423543772,a=1.0507009873554805,u=-i*a,l=ln(zi(n),this.rate);l=no(l,"float32");let c=((1-this.rate)*(1+this.rate*u**2))**-.5,p=-c*u*this.rate,m=X(D(s,l),D(X(l,-1),u));return X(D(m,c),p)},()=>Nt(t),e.training||!1)}return t})}};Ef.className="AlphaDropout";Q.registerClass(Ef);function Dh(r,t,e,n,o,s=.001){let i;if(r.rank===2)i=xx(r,t,e,n,o,s);else if(r.rank===3)i=yx(r,t,e,n,o,s);else if(r.rank===4)i=bx(r,t,e,n,o,s);else throw new St(`batchNormalization is not implemented for array of rank ${r.rank} yet`);return i}function eY(r,t,e,n,o=.001){return B(()=>{let s=Zu(r,n),i=s.mean,a=s.variance;return[Dh(r,i,a,e,t,o),i,a]})}function rY(r,t,e,n,o=.001){return B(()=>{let s=Zu(r,n),i=s.mean,a=s.variance,u=[];for(let d of Zr(0,r.rank))n.indexOf(d)!==-1?u.push(1):u.push(r.shape[d]);let l=R(i,u),c=R(a,u),p=t==null?null:R(t,u),m=e==null?null:R(e,u);return[Dh(r,l,c,m,p,o),i,a]})}function nY(r,t,e,n,o=.001){return y.arraysEqual(n.slice().sort(),Zr(0,r.rank-1))?eY(r,t,e,n,o):rY(r,t,e,n,o)}var _f=class extends $t{constructor(t){t==null&&(t={}),super(t),this.supportsMasking=!0,this.axis=t.axis==null?-1:t.axis,this.momentum=t.momentum==null?.99:t.momentum,this.epsilon=t.epsilon==null?.001:t.epsilon,this.center=t.center==null?!0:t.center,this.scale=t.scale==null?!0:t.scale,this.betaInitializer=de(t.betaInitializer||"zeros"),this.gammaInitializer=de(t.gammaInitializer||"ones"),this.movingMeanInitializer=de(t.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=de(t.movingVarianceInitializer||"ones"),this.betaConstraint=Be(t.betaConstraint),this.gammaConstraint=Be(t.gammaConstraint),this.betaRegularizer=be(t.betaRegularizer),this.gammaRegularizer=be(t.gammaRegularizer)}build(t){t=Bt(t);let e=this.axis>=0?this.axis:this.axis+t.length,n=t[e];if(n==null)throw new M(`Axis ${e} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(t)}.`);this.inputSpec=[new ye({ndim:t.length,axes:{[e]:n}})];let o=[n];this.scale&&(this.gamma=this.addWeight("gamma",o,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",o,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",o,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",o,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(t,e){return B(()=>{let n=e.training==null?!1:e.training,o=Nt(t),s=o.shape,i=s.length,a=Zr(0,i),u=this.axis>=0?this.axis:this.axis+i;a.splice(u,1);let l=Io(1,i);l[u]=s[u];let c=a.slice();c.sort();let p=!y.arraysEqual(c,Zr(0,i).slice(0,i-1)),m=()=>{if(p){let b=R(this.movingMean.read(),l),w=R(this.movingVariance.read(),l),C=this.center?R(this.beta.read(),l):null,N=this.scale?R(this.gamma.read(),l):null;return Dh(o,b,w,C,N,this.epsilon)}else return Dh(o,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!n)return m();let[f,d,h]=nY(o,this.gamma.read(),this.beta.read(),a,this.epsilon),g=(b,w,C)=>{B(()=>{let N=1-C,_=b.read(),A=D(ct(_,w),N);b.write(ct(_,A))})};return(()=>{g(this.movingMean,d,this.momentum),g(this.movingVariance,h,this.momentum)})(),f})}getConfig(){let t={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Te(this.betaInitializer),gammaInitializer:Te(this.gammaInitializer),movingMeanInitializer:Te(this.movingMeanInitializer),movingVarianceInitializer:Te(this.movingVarianceInitializer),betaRegularizer:me(this.betaRegularizer),gammaRegularizer:me(this.gammaRegularizer),betaConstraint:ze(this.betaConstraint),gammaConstraint:ze(this.gammaConstraint)},e=super.getConfig();return Object.assign(t,e),t}};_f.className="BatchNormalization";Q.registerClass(_f);var Af=class extends $t{constructor(t){if(t==null&&(t={}),super(t),this.axis=t.axis==null?-1:t.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let 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)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=t.epsilon==null?.001:t.epsilon,this.center=t.center==null?!0:t.center,this.scale=t.scale==null?!0:t.scale,this.betaInitializer=de(t.betaInitializer||"zeros"),this.gammaInitializer=de(t.gammaInitializer||"ones"),this.betaRegularizer=be(t.betaRegularizer),this.gammaRegularizer=be(t.gammaRegularizer),this.supportsMasking=!0}build(t){t=Bt(t);let e=t.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let s=0;s=e)throw new Error(`Invalid axis: ${s}`);if(this.axis.length!==vo(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(s=>t[s]),o=!0;this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,o):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,o):this.beta=null,this.built=!0}call(t,e){let n=Nt(t),o=n.shape,s=o.length;return B(()=>{let{mean:a,variance:u}=Zu(n,this.axis,!0),l=Io(1,s);for(let h of this.axis)l[h]=o[h];let c=h=>h!=null&&h.shape.length!==s?R(h,l):h,p=this.scale?c(this.gamma.read()):null,m=this.center?c(this.beta.read()):null,f=[],d=[];for(let h=0;h{if(r.rank!==4)throw new M(`temporalPadding expects input tensor to be 4-D, but received a ${r.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new M("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(e==null&&(e=mn()),e!=="channelsLast"&&e!=="channelsFirst")throw new M(`Unknown data format: ${e}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let n;return e==="channelsFirst"?n=[[0,0],[0,0],t[0],t[1]]:n=[[0,0],t[0],t[1],[0,0]],cn(r,n)})}var $f=class extends $t{constructor(t){if(t==null&&(t={}),super(t),this.dataFormat=t.dataFormat==null?mn():t.dataFormat,t.padding==null)this.padding=[[1,1],[1,1]];else if(typeof t.padding=="number")this.padding=[[t.padding,t.padding],[t.padding,t.padding]];else{if(t.padding=t.padding,t.padding.length!==2)throw new M(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${t.padding.length} array.`);let e,n;if(typeof t.padding[0]=="number")e=[t.padding[0],t.padding[0]],n=[t.padding[1],t.padding[1]];else{if(t.padding=t.padding,t.padding[0].length!==2)throw new M(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${t.padding[0].length} array.`);if(e=t.padding[0],t.padding[1].length!==2)throw new M(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${t.padding[1].length} array.`);n=t.padding[1]}this.padding=[e,n]}this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){t=Bt(t);let e,n;return this.dataFormat==="channelsFirst"?(t[2]!=null&&t[2]>=0?e=t[2]+this.padding[0][0]+this.padding[0][1]:e=null,t[3]!=null&&t[3]>=0?n=t[3]+this.padding[1][0]+this.padding[1][1]:n=null,[t[0],t[1],e,n]):(t[1]!=null&&t[1]>=0?e=t[1]+this.padding[0][0]+this.padding[0][1]:e=null,t[2]!=null&&t[2]>=0?n=t[2]+this.padding[1][0]+this.padding[1][1]:n=null,[t[0],e,n,t[3]])}call(t,e){return B(()=>oY(Nt(t),this.padding,this.dataFormat))}getConfig(){let t={padding:this.padding,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};$f.className="ZeroPadding2D";Q.registerClass($f);function wb(r,t,e,n,o,s){return B(()=>{Fe(o),I0(s),pn(n),e==null&&(e=[1,1]),n==null&&(n="valid"),o==null&&(o=mn()),s==null&&(s="max"),r=Ah(r,o);let i,a=n==="same"?"same":"valid";return s==="max"?i=ru(r,t,e,a):i=Yl(r,t,e,a),o==="channelsFirst"&&(i=Ot(i,[0,3,1,2])),i})}function CD(r,t,e,n,o,s){return B(()=>{Fe(o),I0(s),pn(n),e==null&&(e=[1,1,1]),n==null&&(n="valid"),o==null&&(o=mn()),s==null&&(s="max"),r=z0(r,o);let i,a=n==="same"?"same":"valid";return s==="max"?i=Hx(r,t,e,a):i=gx(r,t,e,a),o==="channelsFirst"&&(i=Ot(i,[0,4,1,2,3])),i})}var hb=class extends $t{constructor(t){if(t.poolSize==null&&(t.poolSize=2),super(t),typeof t.poolSize=="number")this.poolSize=[t.poolSize];else if(Array.isArray(t.poolSize)&&t.poolSize.length===1&&typeof t.poolSize[0]=="number")this.poolSize=t.poolSize;else throw new M(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(t.poolSize)}`);if(Ze(this.poolSize,"poolSize"),t.strides==null)this.strides=this.poolSize;else if(typeof t.strides=="number")this.strides=[t.strides];else if(Array.isArray(t.strides)&&t.strides.length===1&&typeof t.strides[0]=="number")this.strides=t.strides;else throw new M(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(t.strides)}`);Ze(this.strides,"strides"),this.padding=t.padding==null?"valid":t.padding,pn(this.padding),this.inputSpec=[new ye({ndim:3})]}computeOutputShape(t){t=Bt(t);let e=Nn(t[1],this.poolSize[0],this.padding,this.strides[0]);return[t[0],e,t[2]]}call(t,e){return B(()=>{this.invokeCallHook(t,e),t=nl(Nt(t),2);let n=this.poolingFunction(Nt(t),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Mn(n,[2])})}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides},e=super.getConfig();return Object.assign(t,e),t}},Df=class extends hb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),wb(t,e,n,o,s,"max")}};Df.className="MaxPooling1D";Q.registerClass(Df);var Rf=class extends hb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),wb(t,e,n,o,s,"avg")}};Rf.className="AveragePooling1D";Q.registerClass(Rf);var gb=class extends $t{constructor(t){if(t.poolSize==null&&(t.poolSize=[2,2]),super(t),this.poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize],t.strides==null)this.strides=this.poolSize;else if(Array.isArray(t.strides)){if(t.strides.length!==2)throw new M(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${t.strides.length}.`);this.strides=t.strides}else this.strides=[t.strides,t.strides];Ze(this.poolSize,"poolSize"),Ze(this.strides,"strides"),this.padding=t.padding==null?"valid":t.padding,this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Fe(this.dataFormat),pn(this.padding),this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){t=Bt(t);let e=this.dataFormat==="channelsFirst"?t[2]:t[1],n=this.dataFormat==="channelsFirst"?t[3]:t[2];return e=Nn(e,this.poolSize[0],this.padding,this.strides[0]),n=Nn(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[t[0],t[1],e,n]:[t[0],e,n,t[3]]}call(t,e){return B(()=>(this.invokeCallHook(t,e),this.poolingFunction(Nt(t),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Ff=class extends gb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),wb(t,e,n,o,s,"max")}};Ff.className="MaxPooling2D";Q.registerClass(Ff);var Of=class extends gb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),wb(t,e,n,o,s,"avg")}};Of.className="AveragePooling2D";Q.registerClass(Of);var xb=class extends $t{constructor(t){if(t.poolSize==null&&(t.poolSize=[2,2,2]),super(t),this.poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize,t.poolSize],t.strides==null)this.strides=this.poolSize;else if(Array.isArray(t.strides)){if(t.strides.length!==3)throw new M(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${t.strides.length}.`);this.strides=t.strides}else this.strides=[t.strides,t.strides,t.strides];Ze(this.poolSize,"poolSize"),Ze(this.strides,"strides"),this.padding=t.padding==null?"valid":t.padding,this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Fe(this.dataFormat),pn(this.padding),this.inputSpec=[new ye({ndim:5})]}computeOutputShape(t){t=Bt(t);let e=this.dataFormat==="channelsFirst"?t[2]:t[1],n=this.dataFormat==="channelsFirst"?t[3]:t[2],o=this.dataFormat==="channelsFirst"?t[4]:t[3];return e=Nn(e,this.poolSize[0],this.padding,this.strides[0]),n=Nn(n,this.poolSize[1],this.padding,this.strides[1]),o=Nn(o,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[t[0],t[1],e,n,o]:[t[0],e,n,o,t[4]]}call(t,e){return B(()=>(this.invokeCallHook(t,e),this.poolingFunction(Nt(t),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Pf=class extends xb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),CD(t,e,n,o,s,"max")}};Pf.className="MaxPooling3D";Q.registerClass(Pf);var Lf=class extends xb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),CD(t,e,n,o,s,"avg")}};Lf.className="AveragePooling3D";Q.registerClass(Lf);var yb=class extends $t{constructor(t){super(t),this.inputSpec=[new ye({ndim:3})]}computeOutputShape(t){return[t[0],t[2]]}call(t,e){throw new St}},Mf=class extends yb{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=Nt(t);return ve(n,1)})}};Mf.className="GlobalAveragePooling1D";Q.registerClass(Mf);var zf=class extends yb{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=Nt(t);return Ir(n,1)})}};zf.className="GlobalMaxPooling1D";Q.registerClass(zf);var bb=class extends $t{constructor(t){super(t),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Fe(this.dataFormat),this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){return t=t,this.dataFormat==="channelsLast"?[t[0],t[3]]:[t[0],t[1]]}call(t,e){throw new St}getConfig(){let t={dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Bf=class extends bb{call(t,e){return B(()=>{let n=Nt(t);return this.dataFormat==="channelsLast"?ve(n,[1,2]):ve(n,[2,3])})}};Bf.className="GlobalAveragePooling2D";Q.registerClass(Bf);var Vf=class extends bb{call(t,e){return B(()=>{let n=Nt(t);return this.dataFormat==="channelsLast"?Ir(n,[1,2]):Ir(n,[2,3])})}};Vf.className="GlobalMaxPooling2D";Q.registerClass(Vf);var Cb=class extends $t{constructor(t){super(t),this.layer=t.layer}build(t){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(t){this.layer!=null&&(this.layer.trainable=t)}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(t){this.layer.setWeights(t)}getConfig(){let t={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},e=super.getConfig();return Object.assign(t,e),t}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(t)}static fromConfig(t,e,n={}){let o=e.layer,s=gn(o,n);delete e.layer;let i={layer:s};return Object.assign(i,e),new t(i)}},Gf=class extends Cb{constructor(t){super(t),this.supportsMasking=!0}build(t){if(t=Bt(t),t.length<3)throw new M(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(t)}`);this.inputSpec=[{shape:t}];let e=[t[0]].concat(t.slice(2));this.layer.built||(this.layer.build(e),this.layer.built=!0),super.build(t)}computeOutputShape(t){t=Bt(t);let e=[t[0]].concat(t.slice(2)),n=this.layer.computeOutputShape(e),o=t[1];return[n[0],o].concat(n.slice(1))}call(t,e){return B(()=>(t=Nt(t),V0((i,a)=>[Nt(this.layer.call(i,e)),[]],t,[],!1,null,null,!1,!0)[1]))}};Gf.className="TimeDistributed";Q.registerClass(Gf);function sY(r){Wi(T$,"BidirectionalMergeMode",r)}var iY="concat",Wf=class extends Cb{constructor(t){super(t);let e=t.layer.getConfig(),n={};n.className=t.layer.getClassName(),n.config=e,this.forwardLayer=gn(n),e.goBackwards=e.goBackwards!==!0;let o={};if(o.className=t.layer.getClassName(),o.config=e,this.backwardLayer=gn(o),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=t.mergeMode===void 0?iY:t.mergeMode,sY(this.mergeMode),t.weights)throw new St("weights support is not implemented for Bidirectional layer yet.");this._stateful=t.layer.stateful,this.returnSequences=t.layer.returnSequences,this.returnState=t.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=t.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(t){this._trainable=t,this.forwardLayer!=null&&(this.forwardLayer.trainable=t),this.backwardLayer!=null&&(this.backwardLayer.trainable=t)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(t){let e=t.length,n=Math.floor(e/2);this.forwardLayer.setWeights(t.slice(0,n)),this.backwardLayer.setWeights(t.slice(n))}computeOutputShape(t){let e=this.forwardLayer.computeOutputShape(t);Array.isArray(e)&&Array.isArray(e[0])||(e=[e]),e=e;let n,o,s;return this.returnState&&(s=e.slice(1)),n=e[0],n=n,this.mergeMode==="concat"?(n[n.length-1]*=2,o=[n]):this.mergeMode==null?o=[n,n.slice()]:o=[n],this.returnState?this.mergeMode==null?o.concat(s).concat(s.slice()):[n].concat(s).concat(s.slice()):Nr(o)}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=B0(t,n,o,this.numConstants);if(t=s.inputs,n=s.initialState,o=s.constants,Array.isArray(t)&&(n=t.slice(1),t=t[0]),(n==null||n.length===0)&&o==null)return super.apply(t,e);let i=[],a=[];if(n!=null){let l=n.length;if(l%2>0)throw new M("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");e.initialState=n,i.push(...n);let c=n.map(p=>new ye({shape:p.shape}));this.forwardLayer.stateSpec=c.slice(0,l/2),this.backwardLayer.stateSpec=c.slice(l/2),a.push(...c)}if(o!=null)throw new St("Support for constants in Bidirectional layers is not implemented yet.");let u=i[0]instanceof Jr;for(let l of i)if(l instanceof Jr!==u)throw new M("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(u){let l=[t].concat(i),c=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=c;let m=super.apply(l,e);return this.inputSpec=p,m}else return super.apply(t,e)}call(t,e){return B(()=>{let n=e.initialState,o,s;if(n==null)o=this.forwardLayer.call(t,e),s=this.backwardLayer.call(t,e);else{let u=n.slice(0,n.length/2),l=n.slice(n.length/2);o=this.forwardLayer.call(t,Object.assign(e,{initialState:u})),s=this.backwardLayer.call(t,Object.assign(e,{initialState:l}))}let i;this.returnState&&(Array.isArray(o)&&(i=o.slice(1).concat(s.slice(1))),o=o[0],s=s[0]),this.returnSequences&&(s=pr(s,1));let a;return this.mergeMode==="concat"?a=Nm([o,s]):this.mergeMode==="sum"?a=X(o,s):this.mergeMode==="ave"?a=D(.5,X(o,s)):this.mergeMode==="mul"?a=D(o,s):this.mergeMode==null&&(a=[o,s]),this.returnState?this.mergeMode==null?a.concat(i):[a].concat(i):a})}resetStates(t){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(t){Hs(this.forwardLayer.name,()=>{this.forwardLayer.build(t)}),Hs(this.backwardLayer.name,()=>{this.backwardLayer.build(t)}),this.built=!0}computeMask(t,e){Array.isArray(e)&&(e=e[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[e,e]:n=e:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let s=this.forwardLayer.states.map(i=>null);return Array.isArray(n)?n.concat(s).concat(s):[n].concat(s).concat(s)}else return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(t),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(t)}getConfig(){let t={mergeMode:this.mergeMode},e=super.getConfig();return Object.assign(t,e),t}static fromConfig(t,e){let n=gn(e.layer);if(delete e.layer,e.numConstants!=null)throw new St("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let o=e;return o.layer=n,new t(o)}};Wf.className="Bidirectional";Q.registerClass(Wf);var Uf=class extends $t{constructor(t){super(t),this.scale=t.scale,t.offset?this.offset=t.offset:this.offset=0}getConfig(){let t={scale:this.scale,offset:this.offset},e=super.getConfig();return Object.assign(t,e),t}call(t,e){return B(()=>(t=Nt(t),t.dtype!=="float32"&&(t=no(t,"float32")),X(D(t,this.scale),this.offset)))}};Uf.className="Rescaling";Q.registerClass(Uf);var aY=["bilinear","nearest"],ID=new Set(aY),Hf=class extends $t{constructor(t){if(super(t),this.height=t.height,this.width=t.width,t.interpolation)if(ID.has(t.interpolation))this.interpolation=t.interpolation;else throw new M(`Invalid interpolation parameter: ${t.interpolation} is not implemented`);else this.interpolation="bilinear";this.cropToAspectRatio=Boolean(t.cropToAspectRatio)}computeOutputShape(t){t=Bt(t);let e=t[2];return[this.height,this.width,e]}getConfig(){let t={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},e=super.getConfig();return Object.assign(t,e),t}call(t,e){return B(()=>{let n=[this.height,this.width];if(this.interpolation==="bilinear")return Gs.resizeBilinear(t,n,!this.cropToAspectRatio);if(this.interpolation==="nearest")return Gs.resizeNearestNeighbor(t,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...ID]} are supported`)})}};Hf.className="Resizing";Q.registerClass(Hf);function SD(r,t,e,n){let o=Nt(r);if(o.dtype!=="int32"&&(o=no(o,"int32")),t==="int")return o;let s=o.shape;if(o.rank===0&&(o=rr(o,-1)),t==="oneHot"&&o.shape[o.shape.length-1]!==1&&(o=rr(o,-1)),o.rank>2)throw new M(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${s} which would result in output rank ${o.rank}.`);let i=["multiHot","oneHot"].includes(t),a=o,u;if(typeof n!="undefined"&&t==="count"?u=ch(a,n,e,i):u=ch(a,[],e,i),t!=="tfIdf")return u;if(n)return D(u,n);throw new M("When outputMode is 'tfIdf', weights must be provided.")}var qf=class extends $t{constructor(t){super(t),this.numTokens=t.numTokens,t.outputMode?this.outputMode=t.outputMode:this.outputMode="multiHot"}getConfig(){let t={numTokens:this.numTokens,outputMode:this.outputMode},e=super.getConfig();return Object.assign(t,e),t}computeOutputShape(t){return t=Bt(t),t==null?[this.numTokens]:this.outputMode==="oneHot"&&t[t.length-1]!==1?(t.push(this.numTokens),t):(t[t.length-1]=this.numTokens,t)}call(t,e){return B(()=>{t=Nt(t),t.dtype!=="int32"&&(t=no(t,"int32"));let n;if(typeof e.countWeights!="undefined"){if(this.outputMode!=="count")throw new M(`countWeights is not used when outputMode !== count. + Received countWeights=${e.countWeights}`);n=Nt(e.countWeights)}let o=Ir(t),s=Ja(t),i=Re(this.numTokens,o).bufferSync().get(0),a=ln(s,0).bufferSync().get(0);if(!(i&&a))throw new M(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return SD(t,this.outputMode,this.numTokens,n)})}};qf.className="CategoryEncoding";Q.registerClass(qf);function uY(r){return new Ks(r)}function cY(r){return new Ym(r)}function pY(r){return new Km(r)}function mY(r){return new jm(r)}function fY(r){return new Xm(r)}function dY(r){return new Jm(r)}function hY(r){return new Zm(r)}function gY(r){return new Su(r)}function xY(r){return new il(r)}function yY(r){return new Qm(r)}function bY(r){return new al(r)}function wY(r){return new tf(r)}function CY(r){return new ef(r)}function IY(r){return new rf(r)}function SY(r){return new nf(r)}function vY(r){return new of(r)}function NY(r){return new ff(r)}function TY(r){return new pf(r)}function kY(r){return new vc(r)}function EY(r){return new cf(r)}function _Y(r){return new mf(r)}function AY(r){return new df(r)}function $Y(r){return new hf(r)}function DY(r){return new gf(r)}function RY(r){return new yf(r)}function FY(r){return new bf(r)}function OY(r){return new Cf(r)}function PY(r){return new vf(r)}function LY(r){return new If(r)}function MY(r){return new Sf(r)}function zY(r){return new wf(r)}function BY(r){return new Nf(r)}function VY(r){return new _f(r)}function GY(r){return new Af(r)}function WY(r){return new $f(r)}function G0(r){return new Rf(r)}function UY(r){return G0(r)}function HY(r){return G0(r)}function W0(r){return new Of(r)}function qY(r){return W0(r)}function KY(r){return W0(r)}function U0(r){return new Lf(r)}function jY(r){return U0(r)}function XY(r){return U0(r)}function YY(r){return new Mf(r)}function ZY(r){return new Bf(r)}function vD(r){return new zf(r)}function ND(r){return new Vf(r)}function TD(r){return new Df(r)}function kD(r){return new Ff(r)}function JY(r){return new Pf(r)}function QY(r){return new af(r)}function tZ(r){return new Cc(r)}function eZ(r){return new lf(r)}function rZ(r){return new ul(r)}function nZ(r){return new sf(r)}function oZ(r){return new wc(r)}function sZ(r){return new uf(r)}function iZ(r){return new Sc(r)}function aZ(r){return new Tn(r)}function lZ(r){return new Ic(r)}function uZ(r){return new Wf(r)}function cZ(r){return new Gf(r)}var pZ=vD,mZ=ND,fZ=TD,dZ=kD;function hZ(r){return new Tf(r)}function gZ(r){return new kf(r)}function xZ(r){return new Ef(r)}function yZ(r){return new xf(r)}function bZ(r){return new Uf(r)}function wZ(r){return new Hf(r)}function CZ(r){return new qf(r)}var _D={};Wt(_D,{MAPE:()=>DZ,MSE:()=>OZ,binaryAccuracy:()=>IZ,binaryCrossentropy:()=>SZ,categoricalAccuracy:()=>NZ,categoricalCrossentropy:()=>TZ,cosineProximity:()=>_Z,mape:()=>RZ,meanAbsoluteError:()=>AZ,meanAbsolutePercentageError:()=>$Z,meanSquaredError:()=>FZ,mse:()=>PZ,precision:()=>kZ,recall:()=>EZ,sparseCategoricalAccuracy:()=>vZ});function IZ(r,t){return Th(r,t)}function SZ(r,t){return Wy(r,t)}function vZ(r,t){return Uy(r,t)}function NZ(r,t){return kh(r,t)}function TZ(r,t){return Eh(r,t)}function kZ(r,t){return A0(r,t)}function EZ(r,t){return J$(r,t)}function _Z(r,t){return Nh(r,t)}function AZ(r,t){return Vm(r,t)}function $Z(r,t){return bu(r,t)}function DZ(r,t){return bu(r,t)}function RZ(r,t){return bu(r,t)}function FZ(r,t){return Hi(r,t)}function OZ(r,t){return Hi(r,t)}function PZ(r,t){return Hi(r,t)}var AD={};Wt(AD,{modelFromJSON:()=>dD});var $D={};Wt($D,{l1:()=>MZ,l1l2:()=>LZ,l2:()=>zZ});function LZ(r){return new wu(r)}function MZ(r){return yD(r)}function zZ(r){return bD(r)}var Sb=class extends sl{constructor(){super(...arguments),this.model=null}setModel(t){if(!(t instanceof Bn))throw new Error("model must be a LayersModel, not some other Container");this.model=t}};function Ib(r,t){return rt}var vb=class extends Sb{constructor(t){if(super(),t==null&&(t={}),t.restoreBestWeights)throw new St("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=t.monitor||"val_loss",this.minDelta=Math.abs(t.minDelta||0),this.patience=t.patience||0,this.verbose=t.verbose||0,this.mode=t.mode||"auto",this.baseline=t.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=Ib:this.mode==="max"?this.monitorFunc=DD:this.monitor.indexOf("acc")!==-1?this.monitorFunc=DD:this.monitorFunc=Ib,this.monitorFunc===Ib&&(this.minDelta*=-1)}async onTrainBegin(t){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Ib?1/0:-1/0}async onEpochEnd(t,e){await Ui(e);let n=this.getMonitorValue(e);n!=null&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=t,this.model.stopTraining=!0)))}async onTrainEnd(t){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(t){t==null&&(t={});let e=t[this.monitor];return e==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(t)}`),e}};function BZ(r){return new vb(r)}var VZ={earlyStopping:BZ};var GZ=z();GZ.registerFlag("KEEP_INTERMEDIATE_TENSORS",()=>!1,r=>{r&&console.warn("Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.")});var oo;(function(r){r[r.DT_INVALID=0]="DT_INVALID",r[r.DT_FLOAT=1]="DT_FLOAT",r[r.DT_DOUBLE=2]="DT_DOUBLE",r[r.DT_INT32=3]="DT_INT32",r[r.DT_UINT8=4]="DT_UINT8",r[r.DT_INT16=5]="DT_INT16",r[r.DT_INT8=6]="DT_INT8",r[r.DT_STRING=7]="DT_STRING",r[r.DT_COMPLEX64=8]="DT_COMPLEX64",r[r.DT_INT64=9]="DT_INT64",r[r.DT_BOOL=10]="DT_BOOL",r[r.DT_QINT8=11]="DT_QINT8",r[r.DT_QUINT8=12]="DT_QUINT8",r[r.DT_QINT32=13]="DT_QINT32",r[r.DT_BFLOAT16=14]="DT_BFLOAT16",r[r.DT_QINT16=15]="DT_QINT16",r[r.DT_QUINT16=16]="DT_QUINT16",r[r.DT_UINT16=17]="DT_UINT16",r[r.DT_COMPLEX128=18]="DT_COMPLEX128",r[r.DT_HALF=19]="DT_HALF",r[r.DT_RESOURCE=20]="DT_RESOURCE",r[r.DT_VARIANT=21]="DT_VARIANT",r[r.DT_UINT32=22]="DT_UINT32",r[r.DT_UINT64=23]="DT_UINT64",r[r.DT_FLOAT_REF=101]="DT_FLOAT_REF",r[r.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",r[r.DT_INT32_REF=103]="DT_INT32_REF",r[r.DT_UINT8_REF=104]="DT_UINT8_REF",r[r.DT_INT16_REF=105]="DT_INT16_REF",r[r.DT_INT8_REF=106]="DT_INT8_REF",r[r.DT_STRING_REF=107]="DT_STRING_REF",r[r.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",r[r.DT_INT64_REF=109]="DT_INT64_REF",r[r.DT_BOOL_REF=110]="DT_BOOL_REF",r[r.DT_QINT8_REF=111]="DT_QINT8_REF",r[r.DT_QUINT8_REF=112]="DT_QUINT8_REF",r[r.DT_QINT32_REF=113]="DT_QINT32_REF",r[r.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF",r[r.DT_QINT16_REF=115]="DT_QINT16_REF",r[r.DT_QUINT16_REF=116]="DT_QUINT16_REF",r[r.DT_UINT16_REF=117]="DT_UINT16_REF",r[r.DT_COMPLEX128_REF=118]="DT_COMPLEX128_REF",r[r.DT_HALF_REF=119]="DT_HALF_REF",r[r.DT_RESOURCE_REF=120]="DT_RESOURCE_REF",r[r.DT_VARIANT_REF=121]="DT_VARIANT_REF",r[r.DT_UINT32_REF=122]="DT_UINT32_REF",r[r.DT_UINT64_REF=123]="DT_UINT64_REF"})(oo||(oo={}));var RD;(function(r){let t;(function(e){e[e.LEGACY=0]="LEGACY",e[e.V1=1]="V1",e[e.V2=2]="V2"})(t=r.CheckpointFormatVersion||(r.CheckpointFormatVersion={}))})(RD||(RD={}));var H0={};function UZ(r,t){let e={tfOpName:r,category:"custom",inputs:[],attrs:[],customExecutor:t};H0[r]=e}function Nb(r){return H0[r]}function HZ(r){delete H0[r]}function S(r,t,e,n,o){let s=t.inputParams[r];if(s&&s.inputIndexStart!==void 0){let a=s.inputIndexStart,u=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?a+1:s.inputIndexEnd;if(s.type==="tensor")return br(t.inputNames[s.inputIndexStart],e,n,o);if(s.type==="tensors")return t.inputNames.slice(a,u).map(m=>br(m,e,n,o));let l=br(t.inputNames.slice(a)[0],e,n,o),c=l.dataSync();return s.type==="number"?c[0]:y.toNestedArray(l.shape,c)}let i=t.attrParams[r];return i&&i.value}function br(r,t,e,n){let[o,s]=xn(r);if(n!=null){let a=n.getHashTableHandleByName(o);if(a!=null)return a}let i=e.currentContextIds.find(a=>!!t[Tb(o,a)]);return i!==void 0?t[Tb(o,i)][s]:void 0}function FD(r,t,e){return t[Tb(r,e.currentContextId)]}function _o(r,t){let[e,n,o]=xn(r);return[Tb(e,t&&t.currentContextId),n,o]}function Tb(r,t){return t?`${r}-${t}`:r}function xn(r){let t=r.split(":");if(t.length===1)return[r,0,void 0];let e=t[0],n=t.length===3?t[1]:void 0,o=Number(t[t.length-1]);return[e,o,n]}function Rh(r,t,e){let n=S("pad",r,t,e);if(n==="explicit"){n=S("explicitPaddings",r,t,e);let o=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)o[s][0]=n[s*2],o[s][1]=n[s*2+1];return o}return n}function Zs(r){return r.kept?r:sn(r)}var q0={};Wt(q0,{json:()=>qZ});var qZ=[{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}]}];var K0={};Wt(K0,{json:()=>KZ});var KZ=[{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}]},{tfOpName:"IsNan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var j0={};Wt(j0,{json:()=>jZ});var jZ=[{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:"TensorListConcatV2",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"}]},{tfOpName:"TensorListLength",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}]},{tfOpName:"TensorListResize",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"size",type:"number"}]}];var X0={};Wt(X0,{json:()=>XZ});var XZ=[{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",defaultValue:.2}]},{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"}]}];var Y0={};Wt(Y0,{json:()=>YZ});var YZ=[{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"}]},{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:"RandomStandardNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"seed",name:"seed",type:"number",defaultValue:0},{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:"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"}]}];var Z0={};Wt(Z0,{json:()=>ZZ});var ZZ=[{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}]}];var J0={};Wt(J0,{json:()=>JZ});var JZ=[{tfOpName:"LowerBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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:"UpperBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{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"}]}];var Q0={};Wt(Q0,{json:()=>QZ});var QZ=[{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"}]}];var tN={};Wt(tN,{json:()=>t7});var t7=[{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"}]}];var eN={};Wt(eN,{json:()=>e7});var e7=[{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"}]},{tfOpName:"ImageProjectiveTransformV3",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"transforms",type:"tensor"},{start:2,name:"outputShape",type:"number[]"},{start:3,name:"fillValue",type:"number"}],attrs:[{tfName:"interpolation",name:"interpolation",type:"string"},{tfName:"fill_mode",name:"fillMode",type:"string"}]}];var rN={};Wt(rN,{json:()=>r7});var r7=[{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}]}];var nN={};Wt(nN,{json:()=>n7});var n7=[{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:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2},{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}]},{tfOpName:"Einsum",category:"matrices",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"equation",name:"equation",type:"string"},{tfName:"N",name:"n",type:"number",defaultValue:2},{tfName:"T",name:"dtype",type:"dtype"}]}];var oN={};Wt(oN,{json:()=>o7});var o7=[{tfOpName:"EuclideanNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",defaultValue:!1}]},{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}]}];var sN={};Wt(sN,{json:()=>s7});var s7=[{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:"Cumprod",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"}]},{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"}]}];var iN={};Wt(iN,{json:()=>i7});var i7=[{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}]}];var aN={};Wt(aN,{json:()=>a7});var a7=[{tfOpName:"SparseFillEmptyRows",category:"sparse",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"denseShape",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}]},{tfOpName:"SparseReshape",category:"sparse",inputs:[{start:0,name:"inputIndices",type:"tensor"},{start:1,name:"inputShape",type:"tensor"},{start:2,name:"newShape",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SparseSegmentMean",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]},{tfOpName:"SparseSegmentSum",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]}];var lN={};Wt(lN,{json:()=>l7});var l7=[{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}]}];var uN={};Wt(uN,{json:()=>u7});var u7=[{tfOpName:"StringNGrams",category:"string",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"dataSplits",type:"tensor"}],attrs:[{tfName:"separator",name:"separator",type:"string"},{tfName:"ngram_widths",name:"nGramWidths",type:"number[]"},{tfName:"left_pad",name:"leftPad",type:"string"},{tfName:"right_pad",name:"rightPad",type:"string"},{tfName:"pad_width",name:"padWidth",type:"number"},{tfName:"preserve_short_sequences",name:"preserveShortSequences",type:"bool"}],outputs:["ngrams","ngrams_splits"]},{tfOpName:"StringSplit",category:"string",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"delimiter",type:"tensor"}],attrs:[{tfName:"skip_empty",name:"skipEmpty",type:"bool"}],outputs:["indices","values","shape"]},{tfOpName:"StringToHashBucketFast",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"num_buckets",name:"numBuckets",type:"number"}]}];var cN={};Wt(cN,{json:()=>c7});var c7=[{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:[]},{tfOpName:"BroadcastArgs",category:"transformation",inputs:[{start:0,name:"s0",type:"tensor"},{start:1,name:"s1",type:"tensor"}],attrs:[]}];var Fh=class{constructor(){let t=[q0,K0,j0,X0,Y0,Z0,J0,Q0,tN,eN,rN,nN,oN,sN,iN,aN,lN,uN,cN],e=[].concat(...t.map(n=>n.json));this.opMappers=e.reduce((n,o)=>(n[o.tfOpName]=o,n),{})}static get Instance(){return this._instance||(this._instance=new this)}transformGraph(t,e={}){let n=t.node,o=[],s=[],i=[],a=n.reduce((h,g)=>(h[g.name]=this.mapNode(g),g.op.startsWith("Placeholder")?o.push(h[g.name]):g.op==="Const"?s.push(h[g.name]):(g.input==null||g.input.length===0)&&i.push(h[g.name]),h),{}),u=[],l=[],c={},p={};e!=null&&(c=this.mapSignatureEntries(e.inputs),p=this.mapSignatureEntries(e.outputs));let m=Object.keys(a);m.forEach(h=>{let g=a[h];g.inputNames.forEach((x,b)=>{let[w,,C]=_o(x),N=a[w];if(N.outputs!=null){let _=N.outputs.indexOf(C);if(_!==-1){let A=`${w}:${_}`;g.inputNames[b]=A}}g.inputs.push(N),N.children.push(g)})}),Object.keys(p).length===0?m.forEach(h=>{let g=a[h];g.children.length===0&&l.push(g)}):Object.keys(p).forEach(h=>{let[g]=_o(h),x=a[g];x!=null&&(x.signatureKey=p[h],l.push(x))}),Object.keys(c).length>0?Object.keys(c).forEach(h=>{let[g]=_o(h),x=a[g];x&&(x.signatureKey=c[h],u.push(x))}):u=o;let f={};t.library!=null&&t.library.function!=null&&(f=t.library.function.reduce((h,g)=>(h[g.signature.name]=this.mapFunction(g),h),{}));let d={nodes:a,inputs:u,outputs:l,weights:s,placeholders:o,signature:e,functions:f};return i.length>0&&(d.initNodes=i),d}mapSignatureEntries(t){return Object.keys(t||{}).reduce((e,n)=>(e[t[n].name]=n,e),{})}mapNode(t){let e=Nb(t.op)||this.opMappers[t.op]||{};t.attr==null&&(t.attr={});let n={name:t.name,op:t.op,category:e.category,inputNames:(t.input||[]).map(o=>o.startsWith("^")?o.slice(1):o),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:t.attr,outputs:e.outputs};return e.inputs!=null&&(n.inputParams=e.inputs.reduce((o,s)=>(o[s.name]={type:s.type,inputIndexStart:s.start,inputIndexEnd:s.end},o),{})),e.attrs!=null&&(n.attrParams=e.attrs.reduce((o,s)=>{let i=s.type,a;switch(s.type){case"string":a=kb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=kb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"string[]":a=Fb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Fb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"number":a=_b(t.attr,s.tfName,s.defaultValue||0),a===void 0&&!!s.tfDeprecatedName&&(a=_b(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"number[]":a=Rb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Rb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool":a=Eb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Eb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool[]":a=Pb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Pb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape":a=Db(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Db(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape[]":a=Ob(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Ob(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype":a=Ab(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Ab(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype[]":a=$b(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=$b(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"func":a=OD(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=OD(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${s.type} for op: ${t.op}`)}return o[s.name]={value:a,type:i},o},{})),n}mapFunction(t){let e=t.nodeDef,n=[],o=[],s={};e!=null&&(s=e.reduce((p,m)=>(p[m.name]=this.mapNode(m),m.op==="Const"&&o.push(p[m.name]),p),{}));let i=[],a=[];t.signature.inputArg.forEach(p=>{let[m]=_o(p.name),f={name:m,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:pN(p.type),type:"dtype"}},children:[]};f.signatureKey=p.name,i.push(f),s[m]=f}),Object.keys(s).forEach(p=>{let m=s[p];m.inputNames.forEach((f,d)=>{let[h,,g]=_o(f),x=s[h];if(x.outputs!=null){let b=x.outputs.indexOf(g);if(b!==-1){let w=`${h}:${b}`;m.inputNames[d]=w}}m.inputs.push(x),x.children.push(m)})});let l=t.ret;t.signature.outputArg.forEach(p=>{let[m,f]=_o(l[p.name]),d=s[m];d!=null&&(d.defaultOutput=f,a.push(d))});let c=this.mapArgsToSignature(t);return{nodes:s,inputs:i,outputs:a,weights:o,placeholders:n,signature:c}}mapArgsToSignature(t){return{methodName:t.signature.name,inputs:t.signature.inputArg.reduce((e,n)=>(e[n.name]=this.mapArgToTensorInfo(n),e),{}),outputs:t.signature.outputArg.reduce((e,n)=>(e[n.name]=this.mapArgToTensorInfo(n,t.ret),e),{})}}mapArgToTensorInfo(t,e){let n=t.name;return e!=null&&(n=e[n]),{name:n,dtype:t.type}}};function p7(r){let t=z().global;if(typeof t.atob!="undefined")return t.atob(r);if(typeof Buffer!="undefined")return new Buffer(r,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function PD(r,t){let e=Array.isArray(r)?String.fromCharCode.apply(null,r):p7(r);return t?e:e.toLowerCase()}function kb(r,t,e,n=!1){let o=r[t];return o!=null?PD(o.s,n):e}function Eb(r,t,e){let n=r[t];return n?n.b:e}function _b(r,t,e){let n=r[t]||{},o=n.i!=null?n.i:n.f!=null?n.f:e;return typeof o=="number"?o:parseInt(o,10)}function pN(r){switch(typeof r=="string"&&(r=oo[r]),r){case oo.DT_FLOAT:case oo.DT_HALF:return"float32";case oo.DT_INT32:case oo.DT_INT64:case oo.DT_INT8:case oo.DT_UINT8:return"int32";case oo.DT_BOOL:return"bool";case oo.DT_DOUBLE:return"float32";case oo.DT_STRING:return"string";default:return null}}function OD(r,t,e){let n=r[t];return n&&n.func?n.func.name:e}function Ab(r,t,e){let n=r[t];return n&&n.type?pN(n.type):e}function $b(r,t,e){let n=r[t];return n&&n.list&&n.list.type?n.list.type.map(o=>pN(o)):e}function LD(r){if(!r.unknownRank)return r.dim!=null?r.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function Db(r,t,e){let n=r[t];return n&&n.shape?LD(n.shape):e}function Rb(r,t,e){let n=r[t];return n?((n.list.f&&n.list.f.length?n.list.f:n.list.i)||[]).map(o=>typeof o=="number"?o:parseInt(o,10)):e}function Fb(r,t,e,n=!1){let o=r[t];return o&&o.list&&o.list.s?o.list.s.map(s=>PD(s,n)):e}function Ob(r,t,e){let n=r[t];return n&&n.list&&n.list.shape?n.list.shape.map(o=>LD(o)):e}function Pb(r,t,e){let n=r[t];return n&&n.list&&n.list.b?n.list.b:e}var Lb=class{constructor(t,e,n){this.node=t,this.tensorMap=e,this.context=n,this.inputs=[],this.attrs={},this.inputs=t.inputNames.map(o=>this.getInput(o)),t.rawAttrs!=null&&(this.attrs=Object.keys(t.rawAttrs).reduce((o,s)=>(o[s]=this.getAttr(s),o),{}))}getInput(t){return br(t,this.tensorMap,this.context)}getAttr(t,e){let n=this.node.rawAttrs[t];if(n.tensor!=null)return br(t,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return _b(this.node.rawAttrs,t,e);if(n.s!=null)return kb(this.node.rawAttrs,t,e);if(n.b!=null)return Eb(this.node.rawAttrs,t,e);if(n.shape!=null)return Db(this.node.rawAttrs,t,e);if(n.type!=null)return Ab(this.node.rawAttrs,t,e);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Rb(this.node.rawAttrs,t,e);if(n.list.s!=null)return Fb(this.node.rawAttrs,t,e);if(n.list.shape!=null)return Ob(this.node.rawAttrs,t,e);if(n.list.b!=null)return Pb(this.node.rawAttrs,t,e);if(n.list.type!=null)return $b(this.node.rawAttrs,t,e)}return e}};var ae={};Wt(ae,{OP_SCOPE_SUFFIX:()=>kv,abs:()=>Ee,acos:()=>ax,acosh:()=>lx,add:()=>X,addN:()=>LE,all:()=>Zp,any:()=>qu,argMax:()=>Ai,argMin:()=>ux,asin:()=>cx,asinh:()=>px,atan:()=>mx,atan2:()=>fx,atanh:()=>dx,avgPool:()=>Yl,avgPool3d:()=>gx,basicLSTMCell:()=>BE,batchNorm:()=>Di,batchNorm2d:()=>xx,batchNorm3d:()=>yx,batchNorm4d:()=>bx,batchToSpaceND:()=>Zl,bincount:()=>wx,booleanMaskAsync:()=>n6,broadcastArgs:()=>GE,broadcastTo:()=>Ri,buffer:()=>wt,cast:()=>J,ceil:()=>Cx,clipByValue:()=>Cr,clone:()=>sn,complex:()=>wn,concat:()=>ne,concat1d:()=>Ix,concat2d:()=>Sx,concat3d:()=>vx,concat4d:()=>Nx,conv1d:()=>Qp,conv2d:()=>In,conv2dTranspose:()=>em,conv3d:()=>Tx,conv3dTranspose:()=>Ex,cos:()=>Jl,cosh:()=>rm,cosineWindow:()=>hh,cumprod:()=>Xu,cumsum:()=>nm,denseBincount:()=>ch,depthToSpace:()=>_x,depthwiseConv2d:()=>Fi,diag:()=>WE,dilation2d:()=>Ax,div:()=>pt,divNoNan:()=>$x,dot:()=>Dx,dropout:()=>l0,einsum:()=>UE,elu:()=>Oi,enclosingPowerOfTwo:()=>u0,equal:()=>$r,erf:()=>Rx,euclideanNorm:()=>Fx,exp:()=>er,expandDims:()=>rr,expm1:()=>Ox,eye:()=>Yu,fft:()=>au,fill:()=>xo,floor:()=>Pi,floorDiv:()=>Yp,fused:()=>uu,gather:()=>Li,gatherND:()=>m6,greater:()=>Re,greaterEqual:()=>ln,ifft:()=>tl,imag:()=>Xl,image:()=>Gs,inTopKAsync:()=>h6,irfft:()=>xm,isFinite:()=>Px,isInf:()=>Lx,isNaN:()=>Mx,leakyRelu:()=>Ql,less:()=>om,lessEqual:()=>Ln,linalg:()=>p0,linspace:()=>KE,localResponseNormalization:()=>zx,log:()=>Sr,log1p:()=>tu,logSigmoid:()=>Gx,logSoftmax:()=>sm,logSumExp:()=>im,logicalAnd:()=>Rr,logicalNot:()=>eu,logicalOr:()=>am,logicalXor:()=>Wx,losses:()=>hX,lowerBound:()=>jE,matMul:()=>Lt,max:()=>Ir,maxPool:()=>ru,maxPool3d:()=>Hx,maxPoolWithArgmax:()=>XE,maximum:()=>Sn,mean:()=>ve,meshgrid:()=>YE,min:()=>Ja,minimum:()=>Mi,mirrorPad:()=>qx,mod:()=>Kx,moments:()=>Zu,movingAverage:()=>s6,mul:()=>D,multiRNNCell:()=>ZE,multinomial:()=>JE,neg:()=>Ht,norm:()=>Qa,notEqual:()=>Bs,oneHot:()=>Ei,ones:()=>cr,onesLike:()=>yr,op:()=>T,outerProduct:()=>QE,pad:()=>cn,pad1d:()=>t_,pad2d:()=>e_,pad3d:()=>r_,pad4d:()=>n_,pool:()=>jx,pow:()=>an,prelu:()=>ou,print:()=>Jg,prod:()=>Xx,raggedGather:()=>o_,raggedRange:()=>s_,raggedTensorToTensor:()=>i_,rand:()=>a_,randomGamma:()=>v_,randomNormal:()=>tc,randomStandardNormal:()=>N_,randomUniform:()=>zi,range:()=>su,real:()=>Za,reciprocal:()=>ty,relu:()=>Fr,relu6:()=>lm,reshape:()=>R,reverse:()=>pr,reverse1d:()=>T_,reverse2d:()=>k_,reverse3d:()=>E_,reverse4d:()=>__,rfft:()=>lu,round:()=>um,rsqrt:()=>cm,scalar:()=>mt,scatterND:()=>a6,searchSorted:()=>mh,selu:()=>pm,separableConv2d:()=>mm,setdiff1dAsync:()=>A_,sigmoid:()=>Yr,sign:()=>ey,signal:()=>dX,sin:()=>fm,sinh:()=>dm,slice:()=>Rt,slice1d:()=>hm,slice2d:()=>dh,slice3d:()=>gm,slice4d:()=>ec,softmax:()=>iu,softplus:()=>zs,spaceToBatchND:()=>nu,sparse:()=>gX,sparseToDense:()=>c6,spectral:()=>fX,split:()=>mr,sqrt:()=>Se,square:()=>Mt,squaredDifference:()=>ym,squeeze:()=>Mn,stack:()=>nr,step:()=>bo,stridedSlice:()=>ry,string:()=>xX,sub:()=>ct,sum:()=>ft,tan:()=>ny,tanh:()=>$i,tensor:()=>ur,tensor1d:()=>Me,tensor2d:()=>Vs,tensor3d:()=>rx,tensor4d:()=>$_,tensor5d:()=>D_,tensor6d:()=>R_,tile:()=>Dr,topk:()=>oy,transpose:()=>Ot,truncatedNormal:()=>bm,unique:()=>sy,unsortedSegmentSum:()=>wm,unstack:()=>vr,upperBound:()=>F_,variable:()=>iy,where:()=>_e,whereAsync:()=>ly,zeros:()=>Ne,zerosLike:()=>It});var MD=(r,t,e,n=ae)=>{switch(r.op){case"BiasAdd":case"AddV2":case"Add":return[n.add(S("a",r,t,e),S("b",r,t,e))];case"AddN":return[n.addN(S("tensors",r,t,e))];case"FloorMod":case"Mod":return[n.mod(S("a",r,t,e),S("b",r,t,e))];case"Mul":return[n.mul(S("a",r,t,e),S("b",r,t,e))];case"RealDiv":case"Div":return[n.div(S("a",r,t,e),S("b",r,t,e))];case"DivNoNan":return[n.divNoNan(S("a",r,t,e),S("b",r,t,e))];case"FloorDiv":return[n.floorDiv(S("a",r,t,e),S("b",r,t,e))];case"Sub":return[n.sub(S("a",r,t,e),S("b",r,t,e))];case"Minimum":return[n.minimum(S("a",r,t,e),S("b",r,t,e))];case"Maximum":return[n.maximum(S("a",r,t,e),S("b",r,t,e))];case"Pow":return[n.pow(S("a",r,t,e),S("b",r,t,e))];case"SquaredDifference":return[n.squaredDifference(S("a",r,t,e),S("b",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var zD=(r,t,e,n=ae)=>{switch(r.op){case"Abs":case"ComplexAbs":return[n.abs(S("x",r,t,e))];case"Acos":return[n.acos(S("x",r,t,e))];case"Acosh":return[n.acosh(S("x",r,t,e))];case"Asin":return[n.asin(S("x",r,t,e))];case"Asinh":return[n.asinh(S("x",r,t,e))];case"Atan":return[n.atan(S("x",r,t,e))];case"Atan2":return[n.atan2(S("x",r,t,e),S("y",r,t,e))];case"Atanh":return[n.atanh(S("x",r,t,e))];case"Ceil":return[n.ceil(S("x",r,t,e))];case"Complex":return[n.complex(S("real",r,t,e),S("imag",r,t,e))];case"Cos":return[n.cos(S("x",r,t,e))];case"Cosh":return[n.cosh(S("x",r,t,e))];case"Elu":return[n.elu(S("x",r,t,e))];case"Erf":return[n.erf(S("x",r,t,e))];case"Exp":return[n.exp(S("x",r,t,e))];case"Expm1":return[n.expm1(S("x",r,t,e))];case"Floor":return[n.floor(S("x",r,t,e))];case"Log":return[n.log(S("x",r,t,e))];case"Log1p":return[n.log1p(S("x",r,t,e))];case"Imag":return[n.imag(S("x",r,t,e))];case"Neg":return[n.neg(S("x",r,t,e))];case"Reciprocal":return[n.reciprocal(S("x",r,t,e))];case"Real":return[n.real(S("x",r,t,e))];case"Relu":return[n.relu(S("x",r,t,e))];case"Round":return[n.round(S("x",r,t,e))];case"Selu":return[n.selu(S("x",r,t,e))];case"Sigmoid":return[n.sigmoid(S("x",r,t,e))];case"Sin":return[n.sin(S("x",r,t,e))];case"Sign":return[n.sign(S("x",r,t,e))];case"Sinh":return[n.sinh(S("x",r,t,e))];case"Softplus":return[n.softplus(S("x",r,t,e))];case"Sqrt":return[n.sqrt(S("x",r,t,e))];case"Square":return[n.square(S("x",r,t,e))];case"Tanh":return[n.tanh(S("x",r,t,e))];case"Tan":return[n.tan(S("x",r,t,e))];case"ClipByValue":return[n.clipByValue(S("x",r,t,e),S("clipValueMin",r,t,e),S("clipValueMax",r,t,e))];case"Relu6":return[n.relu6(S("x",r,t,e))];case"Rsqrt":return[n.rsqrt(br(r.inputNames[0],t,e))];case"Prod":return[n.prod(S("x",r,t,e),S("axes",r,t,e))];case"LeakyRelu":return[n.leakyRelu(S("x",r,t,e),S("alpha",r,t,e))];case"Prelu":return[n.prelu(S("x",r,t,e),S("alpha",r,t,e))];case"IsNan":return[n.isNaN(br(r.inputNames[0],t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Vn(r,t,e=""){if(!(typeof r=="number"||typeof t=="number")){y.assert(r.length===t.length,()=>e+` Shapes ${r} and ${t} must match`);for(let n=0;ne+` Shapes ${r} and ${t} must match`)}}}function BD(r){return!(typeof r=="number"||r.some(t=>t<0))}function Kf(r,t,e){let n=Mb(r,e),o=!BD(n);if(o&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${n}`);if(o&&t.forEach(s=>{n=Mb(s.shape,n)}),!BD(n))throw new Error(`Non-fully-defined elementShape: ${n}`);return n}function Mb(r,t){if(typeof r=="number")return t;if(typeof t=="number")return r;if(r.length!==t.length)throw new Error(`Incompatible ranks during merge: ${r} vs. ${t}`);let e=[];for(let n=0;n=0&&s>=0&&o!==s)throw new Error(`Incompatible shape during merge: ${r} vs. ${t}`);e[n]=o>=0?o:s}return e}var zb=class{constructor(t,e,n,o,s,i,a){this.name=t,this.dtype=e,this.maxSize=n,this.elementShape=o,this.identicalElementShapes=s,this.dynamicSize=i,this.clearAfterRead=a,this.tensors=[],this.closed_=!1,this.idTensor=mt(0),De(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(t){this.tensors.forEach(e=>{(t==null||!t.has(e.tensor.id))&&e.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(t<0||t>=this.size())throw new Error(`Tried to read from index ${t}, but array size is: ${this.size()}`);let e=this.tensors[t];if(e.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${t} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(e.cleared=!0),e.read=!0,e.tensor}readMany(t){return t.map(e=>this.read(e))}write(t,e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(t<0||!this.dynamicSize&&t>=this.maxSize)throw new Error(`Tried to write to index ${t}, but array is not resizeable and size is: ${this.maxSize}`);let n=this.tensors[t]||{};if(e.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, because the value dtype is ${e.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=e.shape),Vn(this.elementShape,e.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${t}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, because it has already been written.`);n.tensor=e,De(e),n.written=!0,this.tensors[t]=n}writeMany(t,e){if(t.length!==e.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${t.length} is not the same as tensors size: ${e.length}.`);t.forEach((n,o)=>this.write(n,e[o]))}gather(t,e){if(!!e&&e!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${e}`);if(t)t=t.slice(0,this.size());else{t=[];for(let o=0;o=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(t,vr(e,0))}split(t,e){if(e.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${e.dtype}`);let n=0,o=t.map(u=>(n+=u,n));if(n!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${n}, and tensor's shape is: ${e.shape}`);if(!this.dynamicSize&&t.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${t.length}), and the TensorArray is not marked as dynamically resizeable`);let s=n===0?0:e.size/n,i=[];B(()=>{e=R(e,[1,n,s]);for(let u=0;u{if(n!==s.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${s.dtype}`);Vn(e,s.shape,"TensorList shape mismatch: "),De(s)}),this.idTensor=mt(0),this.maxNumElements=o,De(this.idTensor)}get id(){return this.idTensor.id}copy(){return new ml([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(t){this.tensors.forEach(e=>{(t==null||!t.has(e.id))&&e.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(t,e,n=-1){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);if(n!==-1&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);Vn(t,this.elementShape,"TensorList shape mismatch: ");let o=Kf(this.elementShape,this.tensors,t);return B(()=>{let s=this.tensors.map(i=>R(i,o));return nr(s,0)})}popBack(t,e){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let n=Kf(this.elementShape,this.tensors,t),o=this.tensors.pop();return o.kept=!1,Vn(o.shape,t,"TensorList shape mismatch: "),R(o,n)}pushBack(t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(Vn(t.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");De(t),this.tensors.push(t)}resize(t){if(t<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${t}`);if(this.maxNumElements!==-1&&t>this.maxNumElements)throw new Error(`TensorListResize input size ${t} is greater maxNumElement ${this.maxNumElements}.`);let e=new ml([],this.elementShape,this.elementDtype,this.maxNumElements);e.tensors.length=t;for(let n=0;nthis.tensors.length)throw new Error(`Trying to access element ${t} in a list with ${this.tensors.length} elements.`);if(this.tensors[t]==null)throw new Error(`element at index ${t} is null.`);Vn(this.tensors[t].shape,e,"TensorList shape mismatch: ");let o=Kf(this.elementShape,this.tensors,e);return R(this.tensors[t],o)}setItem(t,e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(t<0||this.maxNumElements!==-1&&t>=this.maxNumElements)throw new Error(`Trying to set element ${t} in a list with max ${this.maxNumElements} elements.`);Vn(this.elementShape,e.shape,"TensorList shape mismatch: "),De(e),this.tensors[t]!=null&&(this.tensors[t].kept=!1),this.tensors[t]=e}gather(t,e,n){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);Vn(this.elementShape,n,"TensorList shape mismatch: "),t=t.slice(0,this.size());let o=Kf(this.elementShape,this.tensors,n);return t.length===0?ur([],[0].concat(o)):B(()=>{let s=t.map(i=>R(this.tensors[i],o));return nr(s,0)})}concat(t,e){if(!!t&&t!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${t}`);Vn(this.elementShape,e,"TensorList shape mismatch: ");let n=Kf(this.elementShape,this.tensors,e);return this.size()===0?ur([],[0].concat(n)):B(()=>{let o=this.tensors.map(s=>R(s,n));return ne(o,0)})}};function VD(r,t,e){let n=r.dtype;if(r.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${r.shape}`);if(r.dtype!==e)throw new Error(`Invalid data types; op elements ${r.dtype}, but list elements ${e}`);let o=r.shape.slice(1);Vn(o,t,"TensorList shape mismatch: ");let s=vr(r);return new ml(s,t,n)}function GD(r,t,e,n){return new ml([],r,t,n)}function WD(r,t,e,n){if(t.length!==r.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${r.shape[0]}`);let o=Math.max(...t);if(n!=null&&n!==-1&&o>=n)throw new Error(`Max index must be < array size (${o} vs. ${n})`);let s=new ml([],e,r.dtype,n),i=vr(r,0);return t.forEach((a,u)=>{s.setItem(a,i[u])}),s}function UD(r,t,e){let n=0,o=t.map(c=>(n+=c,n));if(n!==r.shape[0])throw new Error(`Expected sum of lengths to be equal to + ${n}, and tensor's shape is: ${e.shape}`);if(!this.dynamicSize&&t.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${t.length}), and the TensorArray is not marked as dynamically resizeable`);let s=n===0?0:e.size/n,i=[];B(()=>{e=R(e,[1,n,s]);for(let u=0;u{if(n!==s.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${s.dtype}`);Vn(e,s.shape,"TensorList shape mismatch: "),De(s)}),this.idTensor=mt(0),this.maxNumElements=o,De(this.idTensor)}get id(){return this.idTensor.id}copy(){return new ml([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(t){this.tensors.forEach(e=>{(t==null||!t.has(e.id))&&e.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(t,e,n=-1){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);if(n!==-1&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);Vn(t,this.elementShape,"TensorList shape mismatch: ");let o=Kf(this.elementShape,this.tensors,t);return B(()=>{let s=this.tensors.map(i=>R(i,o));return nr(s,0)})}popBack(t,e){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let n=Kf(this.elementShape,this.tensors,t),o=this.tensors.pop();return o.kept=!1,Vn(o.shape,t,"TensorList shape mismatch: "),R(o,n)}pushBack(t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(Vn(t.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");De(t),this.tensors.push(t)}resize(t){if(t<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${t}`);if(this.maxNumElements!==-1&&t>this.maxNumElements)throw new Error(`TensorListResize input size ${t} is greater maxNumElement ${this.maxNumElements}.`);let e=new ml([],this.elementShape,this.elementDtype,this.maxNumElements);e.tensors.length=t;for(let n=0;nthis.tensors.length)throw new Error(`Trying to access element ${t} in a list with ${this.tensors.length} elements.`);if(this.tensors[t]==null)throw new Error(`element at index ${t} is null.`);Vn(this.tensors[t].shape,e,"TensorList shape mismatch: ");let o=Kf(this.elementShape,this.tensors,e);return R(this.tensors[t],o)}setItem(t,e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(t<0||this.maxNumElements!==-1&&t>=this.maxNumElements)throw new Error(`Trying to set element ${t} in a list with max ${this.maxNumElements} elements.`);Vn(this.elementShape,e.shape,"TensorList shape mismatch: "),De(e),this.tensors[t]!=null&&(this.tensors[t].kept=!1),this.tensors[t]=e}gather(t,e,n){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);Vn(this.elementShape,n,"TensorList shape mismatch: "),t=t.slice(0,this.size());let o=Kf(this.elementShape,this.tensors,n);return t.length===0?ur([],[0].concat(o)):B(()=>{let s=t.map(i=>R(this.tensors[i],o));return nr(s,0)})}concat(t,e){if(!!t&&t!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${t}`);Vn(this.elementShape,e,"TensorList shape mismatch: ");let n=Kf(this.elementShape,this.tensors,e);return this.size()===0?ur([],[0].concat(n)):B(()=>{let o=this.tensors.map(s=>R(s,n));return ne(o,0)})}};function VD(r,t,e){let n=r.dtype;if(r.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${r.shape}`);if(r.dtype!==e)throw new Error(`Invalid data types; op elements ${r.dtype}, but list elements ${e}`);let o=r.shape.slice(1);Vn(o,t,"TensorList shape mismatch: ");let s=vr(r);return new ml(s,t,n)}function GD(r,t,e,n){return new ml([],r,t,n)}function WD(r,t,e,n){if(t.length!==r.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${r.shape[0]}`);let o=Math.max(...t);if(n!=null&&n!==-1&&o>=n)throw new Error(`Max index must be < array size (${o} vs. ${n})`);let s=new ml([],e,r.dtype,n),i=vr(r,0);return t.forEach((a,u)=>{s.setItem(a,i[u])}),s}function UD(r,t,e){let n=0,o=t.map(c=>(n+=c,n));if(n!==r.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${n}, and tensor's shape is: ${r.shape}`);let s=r.shape.slice(1),i=Mb(s,e),a=n===0?0:r.size/n,u=B(()=>{let c=[];r=R(r,[1,n,a]);for(let p=0;p{switch(r.op){case"If":case"StatelessIf":{let n=S("thenBranch",r,t,e),o=S("elseBranch",r,t,e),s=S("cond",r,t,e),i=S("args",r,t,e);return(await s.data())[0]?e.functionMap[n].executeFunctionAsync(i,e.tensorArrayMap,e.tensorListMap):e.functionMap[o].executeFunctionAsync(i,e.tensorArrayMap,e.tensorListMap)}case"While":case"StatelessWhile":{let n=S("body",r,t,e),o=S("cond",r,t,e),s=S("args",r,t,e),i=await e.functionMap[o].executeFunctionAsync(s,e.tensorArrayMap,e.tensorListMap),a=s.map(c=>c.id),u=await i[0].data();i.forEach(c=>{!c.kept&&a.indexOf(c.id)===-1&&c.dispose()});let l=s;for(;u[0];){let c=l;l=await e.functionMap[n].executeFunctionAsync(l,e.tensorArrayMap,e.tensorListMap);let p=l.map(f=>f.id);c.forEach(f=>{!f.kept&&a.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()});let m=await e.functionMap[o].executeFunctionAsync(l,e.tensorArrayMap,e.tensorListMap);u=await m[0].data(),m.forEach(f=>{!f.kept&&a.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()})}return l}case"LoopCond":{let n=S("pred",r,t,e);return[Zs(n)]}case"Switch":{let n=S("pred",r,t,e),o=S("data",r,t,e);return o.kept||(o=Zs(o)),(await n.data())[0]?[void 0,o]:[o,void 0]}case"Merge":{let n=r.inputNames.find(o=>br(o,t,e)!==void 0);if(n){let o=br(n,t,e);return[Zs(o)]}return}case"Enter":{let n=S("frameName",r,t,e),o=S("tensor",r,t,e);return e.enterFrame(n),[Zs(o)]}case"Exit":{let n=S("tensor",r,t,e);return e.exitFrame(),[Zs(n)]}case"NextIteration":{let n=S("tensor",r,t,e);return e.nextIteration(),[Zs(n)]}case"TensorArrayV3":{let n=S("size",r,t,e),o=S("dtype",r,t,e),s=S("elementShape",r,t,e),i=S("dynamicSize",r,t,e),a=S("clearAfterRead",r,t,e),u=S("identicalElementShapes",r,t,e),l=S("name",r,t,e),c=new zb(l,o,n,s,u,i,a);return e.addTensorArray(c),[c.idTensor,mt(1)]}case"TensorArrayWriteV3":{let n=S("tensorArrayId",r,t,e),o=S("index",r,t,e),s=S("tensor",r,t,e),i=e.getTensorArray(n.id);return i.write(o,s),[i.idTensor]}case"TensorArrayReadV3":{let n=S("tensorArrayId",r,t,e),o=S("index",r,t,e);return[e.getTensorArray(n.id).read(o)]}case"TensorArrayGatherV3":{let n=S("tensorArrayId",r,t,e),o=S("indices",r,t,e),s=S("dtype",r,t,e);return[e.getTensorArray(n.id).gather(o,s)]}case"TensorArrayScatterV3":{let n=S("tensorArrayId",r,t,e),o=S("indices",r,t,e),s=S("tensor",r,t,e),i=e.getTensorArray(n.id);return i.scatter(o,s),[i.idTensor]}case"TensorArrayConcatV3":{let n=S("tensorArrayId",r,t,e),o=e.getTensorArray(n.id),s=S("dtype",r,t,e);return[o.concat(s)]}case"TensorArraySplitV3":{let n=S("tensorArrayId",r,t,e),o=S("tensor",r,t,e),s=S("lengths",r,t,e),i=e.getTensorArray(n.id);return i.split(s,o),[i.idTensor]}case"TensorArraySizeV3":{let n=S("tensorArrayId",r,t,e),o=e.getTensorArray(n.id);return[mt(o.size(),"int32")]}case"TensorArrayCloseV3":{let n=S("tensorArrayId",r,t,e),o=e.getTensorArray(n.id);return o.clearAndClose(),[o.idTensor]}case"TensorListSetItem":{let n=S("tensorListId",r,t,e),o=S("index",r,t,e),s=S("tensor",r,t,e),i=e.getTensorList(n.id);return i.setItem(o,s),[i.idTensor]}case"TensorListGetItem":{let n=S("tensorListId",r,t,e),o=S("index",r,t,e),s=S("elementShape",r,t,e),i=S("elementDType",r,t,e);return[e.getTensorList(n.id).getItem(o,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let n=S("indices",r,t,e),o=S("tensor",r,t,e),s=S("elementShape",r,t,e),i=S("numElements",r,t,e),a=WD(o,n,s,i);return e.addTensorList(a),[a.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let n=S("elementShape",r,t,e),o=S("elementDType",r,t,e),s;r.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=S(s,r,t,e),a=r.op==="TensorListReserve"?-1:i,u=GD(n,o,i,a);return e.addTensorList(u),[u.idTensor]}case"TensorListGather":{let n=S("tensorListId",r,t,e),o=S("indices",r,t,e),s=S("elementShape",r,t,e),i=S("elementDType",r,t,e);return[e.getTensorList(n.id).gather(o,i,s)]}case"TensorListStack":{let n=S("tensorListId",r,t,e),o=S("elementShape",r,t,e),s=S("elementDType",r,t,e),i=S("numElements",r,t,e);return[e.getTensorList(n.id).stack(o,s,i)]}case"TensorListFromTensor":{let n=S("tensor",r,t,e),o=S("elementShape",r,t,e),s=S("elementDType",r,t,e),i=VD(n,o,s);return e.addTensorList(i),[i.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{let n=S("tensorListId",r,t,e),o=e.getTensorList(n.id),s=S("dtype",r,t,e),i=S("elementShape",r,t,e);return[o.concat(s,i)]}case"TensorListPushBack":{let n=S("tensorListId",r,t,e),o=S("tensor",r,t,e),s=e.getTensorList(n.id);return s.pushBack(o),[s.idTensor]}case"TensorListPopBack":{let n=S("tensorListId",r,t,e),o=S("elementShape",r,t,e),s=S("elementDType",r,t,e);return[e.getTensorList(n.id).popBack(o,s)]}case"TensorListSplit":{let n=S("tensor",r,t,e),o=S("elementShape",r,t,e),s=S("lengths",r,t,e),i=UD(n,s,o);return e.addTensorList(i),[i.idTensor]}case"TensorListLength":{let n=S("tensorListId",r,t,e),o=e.getTensorList(n.id);return[mt(o.size(),"int32")]}case"TensorListResize":{let n=S("tensorListId",r,t,e),o=S("size",r,t,e),i=e.getTensorList(n.id).resize(o);return e.addTensorList(i),[i.idTensor]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};function qD(r,t,e){let[n,o]=S("fusedOps",r,t,e),s=n==="biasadd",i=!s,a=o==="prelu",u=n==="fusedbatchnorm",l=S("numArgs",r,t,e);if(s){if(a&&l!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!a&&s&&l!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(u)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported");let c=S("strides",r,t,e),p=Rh(r,t,e),m=S("dataFormat",r,t,e).toUpperCase(),f=S("dilations",r,t,e),[d,h]=S("args",r,t,e);i&&(h=d,d=void 0);let g=S("leakyreluAlpha",r,t,e);return{stride:c,pad:p,dataFormat:m,dilations:f,biasArg:d,preluArg:h,activationFunc:o,leakyreluAlpha:g}}var KD=(r,t,e,n=ae)=>{switch(r.op){case"Conv1D":{let o=S("stride",r,t,e),s=S("pad",r,t,e),i=S("dataFormat",r,t,e).toUpperCase(),a=S("dilation",r,t,e);return[n.conv1d(S("x",r,t,e),S("filter",r,t,e),o,s,i,a)]}case"Conv2D":{let o=S("strides",r,t,e),s=Rh(r,t,e),i=S("dataFormat",r,t,e).toUpperCase(),a=S("dilations",r,t,e);return[n.conv2d(S("x",r,t,e),S("filter",r,t,e),[o[1],o[2]],s,i,[a[1],a[2]])]}case"_FusedConv2D":{let{stride:o,pad:s,dataFormat:i,dilations:a,biasArg:u,preluArg:l,activationFunc:c,leakyreluAlpha:p}=qD(r,t,e);return[n.fused.conv2d({x:S("x",r,t,e),filter:S("filter",r,t,e),strides:[o[1],o[2]],pad:s,dataFormat:i,dilations:[a[1],a[2]],bias:u,activation:c,preluActivationWeights:l,leakyreluAlpha:p})]}case"FusedDepthwiseConv2dNative":{let{stride:o,pad:s,dataFormat:i,dilations:a,biasArg:u,preluArg:l,activationFunc:c,leakyreluAlpha:p}=qD(r,t,e);return[n.fused.depthwiseConv2d({x:S("x",r,t,e),filter:S("filter",r,t,e),strides:[o[1],o[2]],pad:s,dataFormat:i,dilations:[a[1],a[2]],bias:u,activation:c,preluActivationWeights:l,leakyreluAlpha:p})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let o=S("outputShape",r,t,e),s=S("strides",r,t,e),i=Rh(r,t,e);return[n.conv2dTranspose(S("x",r,t,e),S("filter",r,t,e),o,[s[1],s[2]],i)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let o=S("strides",r,t,e),s=Rh(r,t,e),i=S("dilations",r,t,e),a=S("dataFormat",r,t,e).toUpperCase();return[n.depthwiseConv2d(S("input",r,t,e),S("filter",r,t,e),[o[1],o[2]],s,a,[i[1],i[2]])]}case"Conv3D":{let o=S("strides",r,t,e),s=S("pad",r,t,e),i=S("dataFormat",r,t,e).toUpperCase(),a=S("dilations",r,t,e);return[n.conv3d(S("x",r,t,e),S("filter",r,t,e),[o[1],o[2],o[3]],s,i,[a[1],a[2],a[3]])]}case"AvgPool":{let o=S("strides",r,t,e),s=S("pad",r,t,e),i=S("kernelSize",r,t,e);return[n.avgPool(S("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case"MaxPool":{let o=S("strides",r,t,e),s=S("pad",r,t,e),i=S("kernelSize",r,t,e);return[n.maxPool(S("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case"MaxPoolWithArgmax":{let o=S("strides",r,t,e),s=S("pad",r,t,e),i=S("kernelSize",r,t,e),a=S("includeBatchInIndex",r,t,e),{result:u,indexes:l}=n.maxPoolWithArgmax(S("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s,a);return[u,l]}case"AvgPool3D":{let o=S("strides",r,t,e),s=S("pad",r,t,e),i=S("kernelSize",r,t,e);return[n.avgPool3d(S("x",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case"MaxPool3D":{let o=S("strides",r,t,e),s=S("pad",r,t,e),i=S("kernelSize",r,t,e);return[n.maxPool3d(S("x",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case"Dilation2D":{let o=S("strides",r,t,e),s=S("pad",r,t,e),i=S("dilations",r,t,e),a=o[1],u=o[2],l=i[1],c=i[2];return[n.dilation2d(S("x",r,t,e),S("filter",r,t,e),[a,u],s,[l,c],"NHWC")]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var jD=(r,t,e,n=ae)=>{switch(r.op){case"Fill":{let o=S("shape",r,t,e),s=S("dtype",r,t,e),i=S("value",r,t,e);return[n.fill(o,i,s)]}case"LinSpace":{let o=S("start",r,t,e),s=S("stop",r,t,e),i=S("num",r,t,e);return[n.linspace(o,s,i)]}case"Multinomial":{let o=S("logits",r,t,e),s=S("numSamples",r,t,e),i=S("seed",r,t,e);return[n.multinomial(o,s,i)]}case"OneHot":{let o=S("indices",r,t,e),s=S("depth",r,t,e),i=S("onValue",r,t,e),a=S("offValue",r,t,e),u=S("dtype",r,t,e);return[n.oneHot(o,s,i,a,u)]}case"Ones":return[n.ones(S("shape",r,t,e),S("dtype",r,t,e))];case"OnesLike":return[n.onesLike(S("x",r,t,e))];case"RandomStandardNormal":return[n.randomStandardNormal(S("shape",r,t,e),S("dtype",r,t,e),S("seed",r,t,e))];case"RandomUniform":return[n.randomUniform(S("shape",r,t,e),S("minval",r,t,e),S("maxval",r,t,e),S("dtype",r,t,e))];case"Range":{let o=S("start",r,t,e),s=S("stop",r,t,e),i=S("step",r,t,e);return[n.range(o,s,i,S("dtype",r,t,e))]}case"TruncatedNormal":{let o=S("shape",r,t,e),s=S("mean",r,t,e),i=S("stdDev",r,t,e),a=S("seed",r,t,e);return[n.truncatedNormal(o,s,i,S("dtype",r,t,e),a)]}case"Zeros":return[n.zeros(S("shape",r,t,e),S("dtype",r,t,e))];case"ZerosLike":return[n.zerosLike(S("x",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function mN(r,t,e){let n=S("boxes",r,t,e),o=S("scores",r,t,e),s=S("maxOutputSize",r,t,e),i=S("iouThreshold",r,t,e),a=S("scoreThreshold",r,t,e),u=S("softNmsSigma",r,t,e);return{boxes:n,scores:o,maxOutputSize:s,iouThreshold:i,scoreThreshold:a,softNmsSigma:u}}var XD=async(r,t,e,n,o=ae)=>{switch(r.op){case"NonMaxSuppressionV5":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l,softNmsSigma:c}=mN(r,t,e),p=await o.image.nonMaxSuppressionWithScoreAsync(s,i,a,u,l,c);return[p.selectedIndices,p.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l}=mN(r,t,e),c=S("padToMaxOutputSize",r,t,e),p=await o.image.nonMaxSuppressionPaddedAsync(s,i,a,u,l,c);return[p.selectedIndices,p.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l}=mN(r,t,e);return[await o.image.nonMaxSuppressionAsync(s,i,a,u,l)]}case"Where":{let s=o.cast(S("condition",r,t,e),"bool"),i=[await o.whereAsync(s)];return s.dispose(),i}case"ListDiff":return o.setdiff1dAsync(S("x",r,t,e),S("y",r,t,e));default:throw TypeError(`Node type ${r.op} is not implemented`)}};var YD=(r,t,e,n=ae)=>{switch(r.op){case"LowerBound":{let o=S("sortedSequence",r,t,e),s=S("values",r,t,e);return[n.lowerBound(o,s)]}case"TopKV2":{let o=S("x",r,t,e),s=S("k",r,t,e),i=S("sorted",r,t,e),a=n.topk(o,s,i);return[a.values,a.indices]}case"UpperBound":{let o=S("sortedSequence",r,t,e),s=S("values",r,t,e);return[n.upperBound(o,s)]}case"Unique":{let o=S("x",r,t,e),s=n.unique(o);return[s.values,s.indices]}case"UniqueV2":{let o=S("x",r,t,e),s=S("axis",r,t,e),i=n.unique(o,s);return[i.values,i.indices]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var ZD=(r,t,e,n=ae)=>{switch(r.op){case"Const":return t[r.name];case"PlaceholderWithDefault":let o=S("default",r,t,e);return[br(r.name,t,e)||o];case"Placeholder":return[br(r.name,t,e)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let c=S("x",r,t,e);return[Zs(c)]}case"IdentityN":return S("x",r,t,e).map(c=>Zs(c));case"Snapshot":let s=S("x",r,t,e);return[Zs(s)];case"Shape":return[n.tensor1d(S("x",r,t,e).shape,"int32")];case"ShapeN":return S("x",r,t,e).map(c=>n.tensor1d(c.shape));case"Size":return[n.scalar(S("x",r,t,e).size,"int32")];case"Rank":return[n.scalar(S("x",r,t,e).rank,"int32")];case"NoOp":return[n.scalar(1)];case"Print":let i=S("x",r,t,e),a=S("data",r,t,e),u=S("message",r,t,e),l=S("summarize",r,t,e);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(u);for(let c=0;ct.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return mt(this.size(),"int32")}async import(t,e){this.checkKeyAndValueTensor(t,e);let n=await t.data();return this.tensorMap.forEach(o=>o.dispose()),this.tensorMap.clear(),B(()=>{let o=vr(e),s=n.length,i=o.length;y.assert(s===i,()=>`The number of elements doesn't match, keys has ${s} elements, the values has ${i} elements.`);for(let a=0;a{let o=[];for(let s=0;s{switch(r.op){case"HashTable":case"HashTableV2":{let o=n.getHashTableHandleByName(r.name);if(o!=null)return[o];{let s=S("keyDType",r,t,e),i=S("valueDType",r,t,e),a=new Bb(s,i);return n.addHashTable(r.name,a),[a.handle]}}case"LookupTableImport":case"LookupTableImportV2":{let o=S("tableHandle",r,t,e,n),s=S("keys",r,t,e),i=S("values",r,t,e);return[await n.getHashTableById(o.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let o=S("tableHandle",r,t,e,n),s=S("keys",r,t,e),i=S("defaultValue",r,t,e);return[await n.getHashTableById(o.id).find(s,i)]}case"LookupTableSize":case"LookupTableSizeV2":{let o=S("tableHandle",r,t,e,n);return[n.getHashTableById(o.id).tensorSize()]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var QD=(r,t,e,n=ae)=>{switch(r.op){case"ResizeBilinear":{let o=S("images",r,t,e),s=S("size",r,t,e),i=S("alignCorners",r,t,e),a=S("halfPixelCenters",r,t,e);return[n.image.resizeBilinear(o,[s[0],s[1]],i,a)]}case"ResizeNearestNeighbor":{let o=S("images",r,t,e),s=S("size",r,t,e),i=S("alignCorners",r,t,e),a=S("halfPixelCenters",r,t,e);return[n.image.resizeNearestNeighbor(o,[s[0],s[1]],i,a)]}case"CropAndResize":{let o=S("image",r,t,e),s=S("boxes",r,t,e),i=S("boxInd",r,t,e),a=S("cropSize",r,t,e),u=S("method",r,t,e),l=S("extrapolationValue",r,t,e);return[n.image.cropAndResize(o,s,i,a,u,l)]}case"ImageProjectiveTransformV3":{let o=S("images",r,t,e),s=S("transforms",r,t,e),i=S("outputShape",r,t,e),a=S("fillValue",r,t,e),u=S("interpolation",r,t,e),l=S("fillMode",r,t,e);return[n.image.transform(o,s,u.toLowerCase(),l.toLowerCase(),a,i)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var tR=(r,t,e,n=ae)=>{switch(r.op){case"Equal":return[n.equal(S("a",r,t,e),S("b",r,t,e))];case"NotEqual":return[n.notEqual(S("a",r,t,e),S("b",r,t,e))];case"Greater":return[n.greater(S("a",r,t,e),S("b",r,t,e))];case"GreaterEqual":return[n.greaterEqual(S("a",r,t,e),S("b",r,t,e))];case"Less":return[n.less(S("a",r,t,e),S("b",r,t,e))];case"LessEqual":return[n.lessEqual(S("a",r,t,e),S("b",r,t,e))];case"LogicalAnd":return[n.logicalAnd(S("a",r,t,e),S("b",r,t,e))];case"LogicalNot":return[n.logicalNot(S("a",r,t,e))];case"LogicalOr":return[n.logicalOr(S("a",r,t,e),S("b",r,t,e))];case"Select":case"SelectV2":return[n.where(S("condition",r,t,e),S("a",r,t,e),S("b",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var eR=(r,t,e,n=ae)=>{switch(r.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[n.matMul(S("a",r,t,e),S("b",r,t,e),S("transposeA",r,t,e),S("transposeB",r,t,e))];case"Einsum":return[n.einsum(S("equation",r,t,e),...S("tensors",r,t,e))];case"Transpose":return[n.transpose(S("x",r,t,e),S("perm",r,t,e))];case"_FusedMatMul":let[o,s]=S("fusedOps",r,t,e),i=o==="biasadd",a=s==="prelu",u=S("numArgs",r,t,e),l=S("leakyreluAlpha",r,t,e);if(i){if(a&&u!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!a&&u!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[c,p]=S("args",r,t,e);return[n.fused.matMul({a:S("a",r,t,e),b:S("b",r,t,e),transposeA:S("transposeA",r,t,e),transposeB:S("transposeB",r,t,e),bias:c,activation:s,preluActivationWeights:p,leakyreluAlpha:l})];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var rR=(r,t,e,n=ae)=>{switch(r.op){case"EuclideanNorm":return[n.euclideanNorm(S("x",r,t,e),S("axis",r,t,e),S("keepDims",r,t,e))];case"FusedBatchNorm":case"FusedBatchNormV2":return[n.batchNorm(S("x",r,t,e),S("mean",r,t,e),S("variance",r,t,e),S("offset",r,t,e),S("scale",r,t,e),S("epsilon",r,t,e))];case"FusedBatchNormV3":return[n.batchNorm(S("x",r,t,e),S("mean",r,t,e),S("variance",r,t,e),S("offset",r,t,e),S("scale",r,t,e),S("epsilon",r,t,e))];case"LRN":return[n.localResponseNormalization(S("x",r,t,e),S("radius",r,t,e),S("bias",r,t,e),S("alpha",r,t,e),S("beta",r,t,e))];case"Softmax":return[n.softmax(S("x",r,t,e))];case"LogSoftmax":return[n.logSoftmax(S("x",r,t,e))];case"SparseToDense":return[n.sparseToDense(S("sparseIndices",r,t,e),S("outputShape",r,t,e),S("sparseValues",r,t,e),S("defaultValue",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var nR=(r,t,e,n=ae)=>{switch(r.op){case"Max":{let a=S("axis",r,t,e),u=S("keepDims",r,t,e);return[n.max(S("x",r,t,e),a,u)]}case"Mean":{let a=S("axis",r,t,e),u=S("keepDims",r,t,e);return[n.mean(S("x",r,t,e),a,u)]}case"Min":{let a=S("axis",r,t,e),u=S("keepDims",r,t,e);return[n.min(S("x",r,t,e),a,u)]}case"Sum":{let a=S("axis",r,t,e),u=S("keepDims",r,t,e);return[n.sum(S("x",r,t,e),a,u)]}case"All":{let a=S("axis",r,t,e),u=S("keepDims",r,t,e);return[n.all(S("x",r,t,e),a,u)]}case"Any":{let a=S("axis",r,t,e),u=S("keepDims",r,t,e);return[n.any(S("x",r,t,e),a,u)]}case"ArgMax":{let a=S("axis",r,t,e);return[n.argMax(S("x",r,t,e),a)]}case"ArgMin":{let a=S("axis",r,t,e);return[n.argMin(S("x",r,t,e),a)]}case"Prod":{let a=S("axis",r,t,e),u=S("keepDims",r,t,e);return[n.prod(S("x",r,t,e),a,u)]}case"Cumprod":{let a=S("axis",r,t,e),u=S("exclusive",r,t,e),l=S("reverse",r,t,e);return[n.cumprod(S("x",r,t,e),a,u,l)]}case"Cumsum":{let a=S("axis",r,t,e),u=S("exclusive",r,t,e),l=S("reverse",r,t,e);return[n.cumsum(S("x",r,t,e),a,u,l)]}case"Bincount":let o=S("x",r,t,e),s=S("weights",r,t,e),i=S("size",r,t,e);return[n.bincount(o,s,i)];case"DenseBincount":{let a=S("x",r,t,e),u=S("weights",r,t,e),l=S("size",r,t,e),c=S("binaryOutput",r,t,e);return[n.denseBincount(a,u,l,c)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var oR=(r,t,e,n=ae)=>{switch(r.op){case"ConcatV2":case"Concat":{let o=S("n",r,t,e),s=S("axis",r,t,e),i=S("tensors",r,t,e);return i=i.slice(0,o),[n.concat(i,s)]}case"Gather":{let o=S("x",r,t,e),s=S("indices",r,t,e);return[n.gather(o,n.cast(s,"int32"),0)]}case"GatherV2":{let o=S("axis",r,t,e),s=S("batchDims",r,t,e),i=S("x",r,t,e),a=S("indices",r,t,e);return[n.gather(i,n.cast(a,"int32"),o,s)]}case"Reverse":{let o=S("dims",r,t,e),s=[];for(let a=0;a{let o=S("axis",r,t,e),s=S("tensors",r,t,e),i=s[0].shape,a=n.squeeze(s[0]).shape,u=s.map(l=>{let c=y.arraysEqual(l.shape,i);if(!c&&!y.arraysEqual(n.squeeze(l).shape,a))throw new Error("the input tensors shape does not match");return c?l:n.reshape(l,i)});return[n.stack(u,o)]});case"Unpack":{let o=S("axis",r,t,e),s=S("tensor",r,t,e);return n.unstack(s,o)}case"Tile":{let o=S("reps",r,t,e);return[n.tile(S("x",r,t,e),o)]}case"Split":case"SplitV":{let o=S("axis",r,t,e),s=S("numOrSizeSplits",r,t,e),i=S("x",r,t,e);return n.split(i,s,o)}case"ScatterNd":{let o=S("indices",r,t,e),s=S("values",r,t,e),i=S("shape",r,t,e);return[n.scatterND(o,s,i)]}case"GatherNd":{let o=S("x",r,t,e),s=S("indices",r,t,e);return[n.gatherND(o,s)]}case"SparseToDense":{let o=S("sparseIndices",r,t,e),s=S("outputShape",r,t,e),i=S("sparseValues",r,t,e),a=S("defaultValue",r,t,e);return[n.sparseToDense(o,i,s,i.dtype===a.dtype?a:n.cast(a,i.dtype))]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var sR=(r,t,e,n=ae)=>{switch(r.op){case"SparseFillEmptyRows":{let{outputIndices:o,outputValues:s,emptyRowIndicator:i,reverseIndexMap:a}=n.sparse.sparseFillEmptyRows(S("indices",r,t,e),S("values",r,t,e),S("denseShape",r,t,e),S("defaultValue",r,t,e));return[o,s,i,a]}case"SparseReshape":{let{outputIndices:o,outputShape:s}=n.sparse.sparseReshape(S("inputIndices",r,t,e),S("inputShape",r,t,e),S("newShape",r,t,e));return[o,s]}case"SparseSegmentMean":return[n.sparse.sparseSegmentMean(S("data",r,t,e),S("indices",r,t,e),S("segmentIds",r,t,e))];case"SparseSegmentSum":return[n.sparse.sparseSegmentSum(S("data",r,t,e),S("indices",r,t,e),S("segmentIds",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var iR=(r,t,e,n=ae)=>{switch(r.op){case"FFT":return[n.fft(S("x",r,t,e))];case"IFFT":return[n.ifft(S("x",r,t,e))];case"RFFT":return[n.rfft(S("x",r,t,e))];case"IRFFT":return[n.irfft(S("x",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var aR=(r,t,e,n=ae)=>{switch(r.op){case"StringNGrams":{let{nGrams:o,nGramsSplits:s}=n.string.stringNGrams(S("data",r,t,e),S("dataSplits",r,t,e),S("separator",r,t,e),S("nGramWidths",r,t,e),S("leftPad",r,t,e),S("rightPad",r,t,e),S("padWidth",r,t,e),S("preserveShortSequences",r,t,e));return[o,s]}case"StringSplit":{let{indices:o,values:s,shape:i}=n.string.stringSplit(S("input",r,t,e),S("delimiter",r,t,e),S("skipEmpty",r,t,e));return[o,s,i]}case"StringToHashBucketFast":return[n.string.stringToHashBucketFast(S("input",r,t,e),S("numBuckets",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var lR=(r,t,e,n=ae)=>{switch(r.op){case"Cast":return[n.cast(S("x",r,t,e),S("dtype",r,t,e))];case"ExpandDims":{let o=S("axis",r,t,e);return[n.expandDims(S("x",r,t,e),o)]}case"Squeeze":{let o=S("axis",r,t,e);return[n.squeeze(S("x",r,t,e),o)]}case"Reshape":return[n.reshape(S("x",r,t,e),S("shape",r,t,e))];case"MirrorPad":return[n.mirrorPad(S("x",r,t,e),S("padding",r,t,e),S("mode",r,t,e))];case"PadV2":case"Pad":return[n.pad(S("x",r,t,e),S("padding",r,t,e),S("constantValue",r,t,e))];case"SpaceToBatchND":{let o=S("blockShape",r,t,e),s=S("paddings",r,t,e);return[n.spaceToBatchND(S("x",r,t,e),o,s)]}case"BatchToSpaceND":{let o=S("blockShape",r,t,e),s=S("crops",r,t,e);return[n.batchToSpaceND(S("x",r,t,e),o,s)]}case"DepthToSpace":{let o=S("blockSize",r,t,e),s=S("dataFormat",r,t,e).toUpperCase();return[n.depthToSpace(S("x",r,t,e),o,s)]}case"BroadcastTo":return[n.broadcastTo(S("x",r,t,e),S("shape",r,t,e))];case"BroadcastArgs":return[n.broadcastArgs(S("s0",r,t,e),S("s1",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function fN(r,t,e,n,o=B){let s=((i,a,u)=>{switch(i.category){case"arithmetic":return o(()=>MD(i,a,u));case"basic_math":return o(()=>zD(i,a,u));case"control":return HD(i,a,u);case"convolution":return o(()=>KD(i,a,u));case"creation":return o(()=>jD(i,a,u));case"dynamic":return XD(i,a,u);case"evaluation":return o(()=>YD(i,a,u));case"image":return o(()=>QD(i,a,u));case"graph":return o(()=>ZD(i,a,u));case"logical":return o(()=>tR(i,a,u));case"matrices":return o(()=>eR(i,a,u));case"normalization":return o(()=>rR(i,a,u));case"reduction":return o(()=>nR(i,a,u));case"slice_join":return o(()=>oR(i,a,u));case"sparse":return o(()=>sR(i,a,u));case"spectral":return o(()=>iR(i,a,u));case"string":return o(()=>aR(i,a,u));case"transformation":return o(()=>lR(i,a,u));case"hash_table":return JD(i,a,u,n);case"custom":let l=Nb(i.op);if(l&&l.customExecutor)return l.customExecutor(new Lb(i,a,u));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(r,t,e);return y.isPromise(s)?s.then(i=>[].concat(i)):[].concat(s)}var Oh=class{constructor(t={},e={},n={},o={}){this.weightMap=t,this.tensorArrayMap=e,this.tensorListMap=n,this.functionMap=o,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(t,e){return{id:t,frameName:e,iterationId:0}}set currentContext(t){this.contexts!==t&&(this.contexts=t,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let t=[];for(let e=0;ee.id===0&&e.iterationId===0?"":`${e.frameName}-${e.iterationId}`).join("/"):""}enterFrame(t){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,t)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let t=Object.assign({},this.contexts[this.contexts.length-1]);t.iterationId+=1,t.id=this.lastId,this.contexts.splice(-1,1,t),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(t){return this.weightMap[t]}addTensorArray(t){this.tensorArrayMap[t.id]=t}getTensorArray(t){return this.tensorArrayMap[t]}addTensorList(t){this.tensorListMap[t.id]=t}getTensorList(t){return this.tensorListMap[t]}dispose(t){for(let e in this.tensorArrayMap)this.tensorArrayMap[e].clearAndClose(t);for(let e in this.tensorListMap)this.tensorListMap[e].clearAndClose(t)}};function dN(r,t,e,n){let o=new Set,s=[],i=null,a=null,u=new Set,l=Object.keys(r).map(m=>xn(m)[0]),c=[];n!=null&&(c=n.map(m=>xn(m.name)[0]));let p=[...t];for(;p.length>0;){let m=p.pop();if((hN(m)||F7(m)||O7(m))&&i==null&&(i=m,a=i.children.map(f=>f.name).filter(f=>o.has(f))),o.add(m.name),e[m.name]==null&&l.indexOf(m.name)===-1&&c.indexOf(m.name)===-1){if(m.inputs.length===0){s.push(m.name);continue}m.inputs.forEach(f=>{u.has(f.name)||(u.add(f.name),p.push(f))})}}return{inputs:r,outputs:t,usedNodes:o,missingInputs:s,dynamicNode:i,syncInputs:a}}function uR(r,t,e){let{usedNodes:n,inputs:o}=e,s=[],i=Object.keys(o).map(c=>xn(c)[0]).map(c=>r.nodes[c]),a=r.initNodes;i.forEach(c=>{n.has(c.name)&&s.push(c)}),r.weights.forEach(c=>{n.has(c.name)&&s.push(c)}),a!=null&&a.forEach(c=>{n.has(c.name)&&s.push(c)});let u=new Set,l=[];for(;s.length>0;){let c=s.pop();u.add(c.name),t[c.name]||l.push(c),c.children.forEach(p=>{!u.has(p.name)&&n.has(p.name)&&p.inputs.every(m=>u.has(m.name))&&s.push(p)})}return l}var $7=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],D7=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],R7=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function hN(r){return $7.indexOf(r.op)>=0}function F7(r){return D7.indexOf(r.op)>=0}function O7(r){return R7.indexOf(r.op)>=0}var Nc=class{constructor(t,e){this.graph=t,this.parent=e,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this.intermediateTensors={},this.keepTensorForDebug=!1,this._outputs=t.outputs,this._inputs=t.inputs,this._initNodes=t.initNodes,this._signature=t.signature,this._functions=t.functions,t.functions!=null&&Object.keys(t.functions).forEach(n=>{this._functionExecutorMap[n]=new Nc(t.functions[n],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(t){let e=Object.keys(t).map(n=>t[n].map(o=>o.id));this._weightIds=[].concat(...e),this._weightMap=t}set resourceManager(t){this._resourceManager=t}get inputs(){return this._inputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(t=>t.signatureKey||t.name)}get outputNodes(){return this._outputs.map(t=>{let e=t.signatureKey||t.name;return t.defaultOutput?`${e}:${t.defaultOutput}`:e})}get functions(){return Object.keys(this._functions).reduce((t,e)=>(t[e]=this._functions[e].signature,t),{})}getCompilationKey(t,e){let n=t.map(s=>s.name).sort(),o=e.map(s=>s.name).sort();return n.join(this.SEPERATOR)+"--"+o.join(this.SEPERATOR)}compile(t,e){let n=dN(t,e,this.weightMap,this._initNodes),{missingInputs:o,dynamicNode:s,syncInputs:i}=n;if(s!=null)throw new Error(`This execution contains the node '${s.name}', which has the dynamic op '${s.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${i}]`);if(o.length>0){let a=e.map(l=>l.name),u=Object.keys(t);throw new Error(`Cannot compute the outputs [${a}] from the provided inputs [${u}]. Missing the following inputs: [${o}]`)}return uR(this.graph,this.weightMap,n)}execute(t,e){t=this.mapInputs(t);let n=Object.keys(t).sort();this.checkInputs(t),this.checkInputShapeAndType(t),e=this.mapOutputs(e),this.checkOutputs(e);let o=n.map(p=>this.graph.nodes[xn(p)[0]]),s=e.map(p=>xn(p)[0]),i=s.map(p=>this.graph.nodes[p]);this.resetIntermediateTensors(),i.length===0&&(i=this._outputs);let a=this.getCompilationKey(o,i),u=this.compiledMap.get(a);u==null&&(u=this.compile(t,i),this.compiledMap.set(a,u));let l={},c={};return B(()=>{let p=new Oh(this.weightMap,l,c,this.functionExecutorMap),m=Object.assign({},this.weightMap);Object.keys(t).forEach(h=>{let[g,x]=xn(h),b=[];b[x]=t[h],m[g]=b});let f=this.getFrozenTensorIds(m),d={};for(let h=0;hbr(h,m,p))})}getFrozenTensorIds(t){let e=[].concat.apply([],Object.keys(t).map(n=>t[n]).map(n=>n.map(o=>o.id)));return new Set(e)}checkTensorForDisposal(t,e,n,o,s,i,a){e.category==="control"||i.indexOf(t)!==-1||(n[t].forEach(u=>{u!=null&&(a[u.id]=(a[u.id]||0)+e.children.length)}),e.inputs.forEach(u=>{if(u.category!=="control"){let l=FD(u.name,n,o);l!=null&&l.forEach(c=>{if(c&&!c.kept&&!s.has(c.id)){let p=a[c.id];if(p===1){if(!this.keepTensorForDebug)c.dispose();else{let[m,f]=_o(e.name,o);this.intermediateTensors[m]?this.intermediateTensors[m][f]=c:(this.intermediateTensors[m]=[],this.intermediateTensors[m][f]=c)}delete a[c.id]}else p!=null&&a[c.id]--}})}}))}async executeAsync(t,e){return this._executeAsync(t,e)}disposeIntermediateTensors(){!this.intermediateTensors||(Object.keys(this.intermediateTensors).forEach(t=>this.intermediateTensors[t].forEach(e=>e.dispose())),this.disposeTensorsMap())}disposeTensorsMap(){!this.tensorsMap||Object.keys(this.tensorsMap).forEach(t=>{this.tensorsMap[t].forEach(n=>{n&&!n.kept&&!n.isDisposed&&!this.keepIds.has(n.id)&&n.dispose()})})}getIntermediateTensors(){return this.tensorsMap}resetIntermediateTensors(){for(let t in this.intermediateTensors)this.intermediateTensors[t].forEach(e=>e.dispose()),delete this.intermediateTensors[t]}async _executeAsync(t,e,n=!1,o={},s={}){n||(t=this.mapInputs(t),this.checkInputs(t),this.checkInputShapeAndType(t),e=this.mapOutputs(e),this.checkOutputs(e));try{this.keepTensorForDebug=z().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(c){console.warn(c.message)}this.resetIntermediateTensors();let i=new Oh(this.weightMap,o,s,this.functionExecutorMap);this.tensorsMap=await this.executeWithControlFlow(t,i,e,n);let a=e.map(c=>br(c,this.tensorsMap,i)),u=a.map(c=>c.id),l=Object.keys(t).map(c=>t[c].id);return this.keepIds=new Set([...u,...l,...this.weightIds]),this.keepTensorForDebug||this.disposeTensorsMap(),this.parent==null&&i.dispose(this.keepIds),a}async executeFunctionAsync(t,e,n){let o=t.reduce((s,i,a)=>(s[this.inputs[a].name]=i,s),{});return this._executeAsync(o,this.outputNodes,!0,e,n)}async executeWithControlFlow(t,e,n,o){let s=Object.keys(t),i=s.map(w=>this.graph.nodes[xn(w)[0]]),a=n.map(w=>xn(w)[0]),u=a.map(w=>this.graph.nodes[w]);u.length===0&&(u=this._outputs);let{usedNodes:l,missingInputs:c,dynamicNode:p,syncInputs:m}=dN(t,u,this.weightMap,this._initNodes),f=[...i,...this.graph.weights,...this._initNodes||[]].map(w=>({node:w,contexts:e.currentContext})),d=Object.assign({},this.weightMap);Object.keys(t).forEach(w=>{let[C,N]=xn(w),_=[];_[N]=t[w],d[C]=_});let h={},g=this.getFrozenTensorIds(d),x={};for(;f.length>0;){let w=this.processStack(i,f,e,d,x,g,a,h,l);await Promise.all(w)}p==null&&!o&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let b=u.filter(w=>!hN(w)&&!br(w.name,d,e)).map(w=>w.name);if(b.length>0){let w="";throw p!=null&&(w=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${m}]`),new Error(`Cannot compute the outputs [${b}] from the provided inputs [${s}]. Consider providing the following inputs: [${c}]. ${w}`)}return d}processStack(t,e,n,o,s,i,a,u,l){let c=[];for(;e.length>0;){let p=e.pop();n.currentContext=p.contexts;let m="";if(p.node.op==="Enter"&&S("isConstant",p.node,o,n)&&([m]=_o(p.node.name,n)),o[p.node.name]==null){let f=fN(p.node,o,n,this._resourceManager);m||([m]=_o(p.node.name,n));let d=n.currentContext;y.isPromise(f)?c.push(f.then(h=>(o[m]=h,n.currentContext=d,this.checkTensorForDisposal(m,p.node,o,n,i,a,u),this.processChildNodes(p.node,e,n,o,s,l),h))):(o[m]=f,this.checkTensorForDisposal(m,p.node,o,n,i,a,u),this.processChildNodes(p.node,e,n,o,s,l))}else this.processChildNodes(p.node,e,n,o,s,l)}return c}processChildNodes(t,e,n,o,s,i){t.children.forEach(a=>{let[u]=_o(a.name,n);s[u]||!i.has(a.name)||(a.op==="Merge"?a.inputNames.some(l=>!!br(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})):a.inputNames.every(l=>!!br(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})))})}dispose(){Object.keys(this.weightMap).forEach(t=>this.weightMap[t].forEach(e=>e.dispose()))}checkInputShapeAndType(t){Object.keys(t).forEach(e=>{let n=t[e],[o]=xn(e),s=this.graph.nodes[o];if(s.attrParams.shape&&s.attrParams.shape.value){let i=s.attrParams.shape.value,a=i.length===n.shape.length&&n.shape.every((u,l)=>i[l]===-1||i[l]===u);y.assert(a,()=>`The shape of dict['${s.name}'] provided in model.execute(dict) must be [${i}], but was [${n.shape}]`)}s.attrParams.dtype&&s.attrParams.dtype.value&&y.assert(n.dtype===s.attrParams.dtype.value,()=>`The dtype of dict['${s.name}'] provided in model.execute(dict) must be ${s.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(t){let e={};for(let n in t)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[n]!=null){let o=this._signature.inputs[n];e[o.name]=t[n]}else e[n]=t[n];return e}checkInputs(t){let e=Object.keys(t).filter(n=>{let[o]=xn(n);return this.graph.nodes[o]==null});if(e.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${e}] that are not part of graph`)}mapOutputs(t){return t.map(e=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[e]!=null?this._signature.outputs[e].name:e,{})}checkOutputs(t){t.forEach(e=>{let[n]=xn(e);if(!this.graph.nodes[n])throw new Error(`The output '${e}' is not found in the graph`)})}};var Vb=class{constructor(t={},e={}){this.hashTableNameToHandle=t,this.hashTableMap=e}addHashTable(t,e){this.hashTableNameToHandle[t]=e.handle,this.hashTableMap[e.id]=e}getHashTableHandleByName(t){return this.hashTableNameToHandle[t]}getHashTableById(t){return this.hashTableMap[t]}dispose(){for(let t in this.hashTableMap)this.hashTableMap[t].clearAndClose(),delete this.hashTableMap[t];for(let t in this.hashTableNameToHandle)this.hashTableNameToHandle[t].dispose(),delete this.hashTableNameToHandle[t]}};var P7="?tfjs-format=file",L7="model.json",Ph=class{constructor(t,e={},n=_r){this.modelUrl=t,this.loadOptions=e,this.version="n/a",this.io=n,e==null&&(this.loadOptions={}),this.resourceManager=new Vb}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}get modelStructuredOutputKeys(){return this.structuredOutputKeys}findIOHandler(){let t=this.modelUrl;if(t.load!=null)this.handler=t;else if(this.loadOptions.requestInit!=null)this.handler=this.io.browserHTTPRequest(t,this.loadOptions);else{let e=this.io.getLoadHandlers(t,this.loadOptions);if(e.length===0)e.push(this.io.browserHTTPRequest(t,this.loadOptions));else if(e.length>1)throw new Error(`Found more than one (${e.length}) load handlers for URL '${[t]}'`);this.handler=e[0]}}load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let t=this.handler.load();return y.isPromise(t)?t.then(e=>this.loadSync(e)):this.loadSync(t)}loadSync(t){this.artifacts=t;let e=this.artifacts.modelTopology,n=this.artifacts.signature;if(this.artifacts.userDefinedMetadata!=null){let s=this.artifacts.userDefinedMetadata;s.signature!=null&&(n=s.signature),s.structuredOutputKeys!=null&&(this.structuredOutputKeys=s.structuredOutputKeys)}this.signature=n,this.version=`${e.versions.producer}.${e.versions.minConsumer}`;let o=this.io.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new Nc(Fh.Instance.transformGraph(e,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(o),this.executor.resourceManager=this.resourceManager,t.modelInitializer!=null&&t.modelInitializer.node!=null){let s=Fh.Instance.transformGraph(t.modelInitializer);this.initializer=new Nc(s),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=t.initializerSignature}return!0}async save(t,e){if(typeof t=="string"){let n=this.io.getSaveHandlers(t);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${t}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${t}'`);t=n[0]}if(t.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return t.save(this.artifacts)}predict(t,e){let n=this.execute(t,this.outputNodes);if(this.structuredOutputKeys){let o=n instanceof Ft?[n]:n,s={};return o.forEach((i,a)=>s[this.structuredOutputKeys[a]]=i),s}return n}normalizeInputs(t){if(!(t instanceof Ft)&&!Array.isArray(t)){if(this.signature!=null&&this.signature.inputs!=null)for(let o in this.signature.inputs){let s=this.signature.inputs[o];s.resourceId!=null&&(t[o]=this.resourceIdToCapturedInput[s.resourceId])}return t}t=Array.isArray(t)?t:[t];let e=Object.keys(this.resourceIdToCapturedInput).length;if(t.length+e!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-e} non-resource placeholders, while there are ${t.length} input tensors provided.`);let n=0;return this.inputNodes.reduce((o,s)=>{let i=this.signature?this.signature.inputs[s]:null;return i!=null&&i.resourceId!=null?o[s]=this.resourceIdToCapturedInput[i.resourceId]:o[s]=t[n++],o},{})}normalizeOutputs(t){return t=t||this.outputNodes,Array.isArray(t)?t:[t]}executeInitializerGraph(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(t){if(this.resourceIdToCapturedInput={},this.initializerSignature){let e=Object.keys(this.initializerSignature.outputs);for(let n=0;n1?n:n[0]}async executeAsync(t,e){this.resourceIdToCapturedInput==null&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),t=this.normalizeInputs(t),e=this.normalizeOutputs(e);let n=await this.executor.executeAsync(t,e);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(t){return Object.keys(t).reduce((e,n)=>(e[n]=[t[n]],e),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&vt(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function M7(r,t={},e=_r){if(r==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");t==null&&(t={}),t.fromTFHub&&typeof r=="string"&&(r=B7(r));let n=new Ph(r,t,e);return await n.load(),n}function z7(r){if(r==null)throw new Error("modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model");let t;if(r instanceof Array){let[n,o]=r;if(!n)throw new Error("modelJSON must be the first element of the array");if(!o||!(o instanceof ArrayBuffer))throw new Error("An ArrayBuffer of weights must be the second element of the array");if(!("modelTopology"in n))throw new Error("Model JSON is missing 'modelTopology'");if(!("weightsManifest"in n))throw new Error("Model JSON is missing 'weightsManifest'");let s=_r.getWeightSpecs(n.weightsManifest),i=_r.getModelArtifactsForJSONSync(n,s,o);t=_r.fromMemorySync(i)}else if("load"in r)t=r;else if("modelTopology"in r&&"weightSpecs"in r&&"weightData"in r)t=_r.fromMemorySync(r);else throw new Error("Unknown model format");let e=new Ph(t);return e.load(),e}function B7(r){return r.endsWith("/")||(r=r+"/"),`${r}${L7}${P7}`}var cR="4.0.0";var AR={};Wt(AR,{CSVDataset:()=>Yf,Dataset:()=>Js,FileDataSource:()=>ed,TextLineDataset:()=>Xf,URLDataSource:()=>rd,array:()=>wR,csv:()=>NR,func:()=>TR,generator:()=>kR,microphone:()=>_R,version_data:()=>PN,webcam:()=>ER,zip:()=>CR});var bR=Tl(fh());var gR=Tl(fh());function pR(r,t){return Gb(r,t)}function Gb(r,t,e=new Map,n=new Set){if(r==null)return null;if(typeof Blob=="function"&&r instanceof Blob)return r.slice();if(n.has(r))throw new Error("Circular references are not supported.");if(e.has(r))return e.get(r);let o=t(r);if(o.recurse&&o.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(o.recurse)if(vu(r)){let s=Array.isArray(r)?[]:{};n.add(r);for(let i in r){let a=r[i],u=Gb(a,t,e,n);s[i]=u}return n.delete(r),r.__proto__&&(s.__proto__=r.__proto__),s}else throw new Error(`Can't recurse into non-iterable type: ${r}`);else return e.set(r,o.value),o.value}function mR(r,t=xN){return fR(r,t)}function fR(r,t,e=new Set){let n=r[0];if(e.has(n))throw new Error("Circular references are not supported.");let o=t(r);if(o.recurse&&o.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(o.recurse)if(vu(n)){let s=Array.isArray(n)?[]:{};e.add(n);for(let i in n){let a=r.map(l=>l[i]),u=fR(a,t,e);s[i]=u}return e.delete(n),s}else throw new Error(`Can't recurse into non-iterable type: ${n}`);else return o.value}function xN(r){return r===null?null:vu(r[0])?{value:null,recurse:!0}:{value:r,recurse:!1}}async function Wb(r,t){let e=new Map;Gb(r,t,e);for(let o of Array.from(e.keys())){let s=e.get(o);if(y.isPromise(s)){let i=await s;e.set(o,i)}}return Gb(r,t,e)}function vu(r){let t=!1;if(z().get("IS_BROWSER"))t=r instanceof TextDecoder;else{let{StringDecoder:e}=gN();t=r instanceof e}return r!=null&&!ArrayBuffer.isView(r)&&(Array.isArray(r)||typeof r=="object"&&!(r instanceof Ft)&&!(r instanceof Promise)&&!t)}function dR(r){return r==null||V7(r)||Array.isArray(r)||typeof r=="object"&&r instanceof Ft||y.isTypedArray(r)}function V7(r){return r===null||typeof r!="object"&&typeof r!="function"}function hR(r){return pR(r,G7)}function G7(r){return r instanceof Ft?{value:r.clone(),recurse:!1}:vu(r)?{value:null,recurse:!0}:{value:r,recurse:!1}}var jf=class{constructor(t){if(this.capacity=t,this.begin=0,this.end=0,t==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(t<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(t),this.doubledCapacity=2*t}wrap(t){for(;t<0;)t+=this.doubledCapacity;return t%this.doubledCapacity}get(t){if(t<0)throw new RangeError("Can't get item at a negative index.");return this.data[t%this.capacity]}set(t,e){if(t<0)throw new RangeError("Can't set item at a negative index.");this.data[t%this.capacity]=e}length(){let t=this.end-this.begin;return t<0&&(t=this.doubledCapacity+t),t}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(t){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,t),this.end=this.wrap(this.end+1)}pushAll(t){for(let e of t)this.push(e)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let t=this.get(this.end);return this.set(this.end,void 0),t}unshift(t){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,t)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let t=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),t}shuffleExcise(t){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let e=this.wrap(this.begin+t),n=this.get(e);return this.set(e,this.pop()),n}};var Tc=class extends jf{constructor(){super(Tc.INITIAL_CAPACITY)}isFull(){return!1}push(t){super.isFull()&&this.expand(),super.push(t)}unshift(t){super.isFull()&&this.expand(),super.unshift(t)}expand(){let t=this.capacity*2,e=new Array(t),n=this.length();for(let o=0;oe===!0)}rowMajorBatch(t,e=!0){return new SN(this,t,e)}columnMajorBatch(t,e=!0,n=xN){return this.rowMajorBatch(t,e).map(s=>mR(s,n))}concatenate(t,e){return new Hb(AN([this,t]),e)}take(t){return t<0||t==null?this:new IN(this,t)}skip(t){return t<0||t==null?this:new CN(this,t)}prefetch(t){return new qb(this,t)}shuffle(t,e){return new _N(this,t,e)}serial(){return new wN(this)}},yN=class extends Je{constructor(t){super(),this.items=t,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let t=this.items[this.trav];return this.trav++,{value:hR(t),done:!1}}},bN=class extends Je{constructor(t){super(),this.nextFn=t}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(t){throw t.message=`Error thrown while iterating through a dataset: ${t.message}`,t}}},wN=class extends Je{constructor(t){super(),this.upstream=t,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()}},CN=class extends Je{constructor(t,e){super(),this.upstream=t,this.maxCount=e,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()}},SN=class extends Je{constructor(t,e,n=!0){super(),this.upstream=t,this.batchSize=e,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(){let t=[];for(;t.length0?{value:t,done:!1}:{value:null,done:!0};t.push(e.value)}return{value:t,done:!1}}},vN=class extends Je{constructor(t,e){super(),this.upstream=t,this.predicate=e,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(;;){let t=await this.upstream.next();if(t.done||this.predicate(t.value))return t;vt(t.value)}}},NN=class extends Je{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> Map`}async next(){let t=await this.upstream.next();if(t.done)return{value:null,done:!0};let e=go.getTensorsInContainer(t.value),n=this.transform(t.value),o=go.getTensorsInContainer(n);for(let s of e)go.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},TN=class extends Je{constructor(t,e){super(),this.upstream=t,this.handler=e,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(t){if(!this.handler(t))return{value:null,done:!0}}}},Ub=class extends Je{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let t=await this.upstream.next();if(t.done)return{value:null,done:!0};let e=go.getTensorsInContainer(t.value),n=await this.transform(t.value),o=go.getTensorsInContainer(n);for(let s of e)go.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},kc=class extends Je{constructor(){super(),this.outputQueue=new Tc,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},kN=class extends kc{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let t=await this.upstream.next();if(t.done)return!1;let e=go.getTensorsInContainer(t.value),n=this.transform(t.value),o=go.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let s of e)go.isTensorInList(s,o)||s.dispose();return!0}},Hb=class extends Je{constructor(t,e){super(),this.baseErrorHandler=e,this.lastRead=null,this.iterator=null,this.moreIterators=t}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(t){if(await t,this.iterator==null){let n=await this.moreIterators.next();if(n.done)return{value:null,done:!0};this.iterator=n.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let e=await this.iterator.next();return e.done?(this.iterator=null,this.readFromChain(t)):e}},fl;(function(r){r[r.FAIL=0]="FAIL",r[r.SHORTEST=1]="SHORTEST",r[r.LONGEST=2]="LONGEST"})(fl||(fl={}));var EN=class extends Je{constructor(t,e=fl.FAIL){super(),this.iterators=t,this.mismatchMode=e,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(t){await t;let e=0,n=0;function o(i){return i instanceof Je?{value:i.next().then(u=>(e++,u.done&&n++,u.value)),recurse:!1}:{value:null,recurse:!0}}let s=await Wb(this.iterators,o);if(e===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case fl.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case fl.SHORTEST:return{value:null,done:!0};case fl.LONGEST:default:}return this.count++,{value:s,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},qb=class extends Je{constructor(t,e){super(),this.upstream=t,this.bufferSize=e,this.buffer=new jf(e)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let t=this.upstream.next();this.buffer.push(t)}}next(){return this.refill(),this.buffer.shift()}},_N=class extends qb{constructor(t,e,n){super(t,e),this.upstream=t,this.windowSize=e,this.upstreamExhausted=!1,this.random=gR.alea(n||y.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(t){return Math.floor(this.random()*t)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let t=this.chooseIndex(),e=await this.buffer.shuffleExcise(t);if(e.done)this.upstreamExhausted=!0;else return this.refill(),e}return{value:null,done:!0}}};var Js=class{constructor(){this.size=null}batch(t,e=!0){let n=this;y.assert(t>0,()=>`batchSize needs to be positive, but it is + ${n}, and tensor's shape is: ${r.shape}`);let s=r.shape.slice(1),i=Mb(s,e),a=n===0?0:r.size/n,u=B(()=>{let c=[];r=R(r,[1,n,a]);for(let p=0;p{switch(r.op){case"If":case"StatelessIf":{let n=S("thenBranch",r,t,e),o=S("elseBranch",r,t,e),s=S("cond",r,t,e),i=S("args",r,t,e);return(await s.data())[0]?e.functionMap[n].executeFunctionAsync(i,e.tensorArrayMap,e.tensorListMap):e.functionMap[o].executeFunctionAsync(i,e.tensorArrayMap,e.tensorListMap)}case"While":case"StatelessWhile":{let n=S("body",r,t,e),o=S("cond",r,t,e),s=S("args",r,t,e),i=await e.functionMap[o].executeFunctionAsync(s,e.tensorArrayMap,e.tensorListMap),a=s.map(c=>c.id),u=await i[0].data();i.forEach(c=>{!c.kept&&a.indexOf(c.id)===-1&&c.dispose()});let l=s;for(;u[0];){let c=l;l=await e.functionMap[n].executeFunctionAsync(l,e.tensorArrayMap,e.tensorListMap);let p=l.map(f=>f.id);c.forEach(f=>{!f.kept&&a.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()});let m=await e.functionMap[o].executeFunctionAsync(l,e.tensorArrayMap,e.tensorListMap);u=await m[0].data(),m.forEach(f=>{!f.kept&&a.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()})}return l}case"LoopCond":{let n=S("pred",r,t,e);return[Zs(n)]}case"Switch":{let n=S("pred",r,t,e),o=S("data",r,t,e);return o.kept||(o=Zs(o)),(await n.data())[0]?[void 0,o]:[o,void 0]}case"Merge":{let n=r.inputNames.find(o=>br(o,t,e)!==void 0);if(n){let o=br(n,t,e);return[Zs(o)]}return}case"Enter":{let n=S("frameName",r,t,e),o=S("tensor",r,t,e);return e.enterFrame(n),[Zs(o)]}case"Exit":{let n=S("tensor",r,t,e);return e.exitFrame(),[Zs(n)]}case"NextIteration":{let n=S("tensor",r,t,e);return e.nextIteration(),[Zs(n)]}case"TensorArrayV3":{let n=S("size",r,t,e),o=S("dtype",r,t,e),s=S("elementShape",r,t,e),i=S("dynamicSize",r,t,e),a=S("clearAfterRead",r,t,e),u=S("identicalElementShapes",r,t,e),l=S("name",r,t,e),c=new zb(l,o,n,s,u,i,a);return e.addTensorArray(c),[c.idTensor,mt(1)]}case"TensorArrayWriteV3":{let n=S("tensorArrayId",r,t,e),o=S("index",r,t,e),s=S("tensor",r,t,e),i=e.getTensorArray(n.id);return i.write(o,s),[i.idTensor]}case"TensorArrayReadV3":{let n=S("tensorArrayId",r,t,e),o=S("index",r,t,e);return[e.getTensorArray(n.id).read(o)]}case"TensorArrayGatherV3":{let n=S("tensorArrayId",r,t,e),o=S("indices",r,t,e),s=S("dtype",r,t,e);return[e.getTensorArray(n.id).gather(o,s)]}case"TensorArrayScatterV3":{let n=S("tensorArrayId",r,t,e),o=S("indices",r,t,e),s=S("tensor",r,t,e),i=e.getTensorArray(n.id);return i.scatter(o,s),[i.idTensor]}case"TensorArrayConcatV3":{let n=S("tensorArrayId",r,t,e),o=e.getTensorArray(n.id),s=S("dtype",r,t,e);return[o.concat(s)]}case"TensorArraySplitV3":{let n=S("tensorArrayId",r,t,e),o=S("tensor",r,t,e),s=S("lengths",r,t,e),i=e.getTensorArray(n.id);return i.split(s,o),[i.idTensor]}case"TensorArraySizeV3":{let n=S("tensorArrayId",r,t,e),o=e.getTensorArray(n.id);return[mt(o.size(),"int32")]}case"TensorArrayCloseV3":{let n=S("tensorArrayId",r,t,e),o=e.getTensorArray(n.id);return o.clearAndClose(),[o.idTensor]}case"TensorListSetItem":{let n=S("tensorListId",r,t,e),o=S("index",r,t,e),s=S("tensor",r,t,e),i=e.getTensorList(n.id);return i.setItem(o,s),[i.idTensor]}case"TensorListGetItem":{let n=S("tensorListId",r,t,e),o=S("index",r,t,e),s=S("elementShape",r,t,e),i=S("elementDType",r,t,e);return[e.getTensorList(n.id).getItem(o,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let n=S("indices",r,t,e),o=S("tensor",r,t,e),s=S("elementShape",r,t,e),i=S("numElements",r,t,e),a=WD(o,n,s,i);return e.addTensorList(a),[a.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let n=S("elementShape",r,t,e),o=S("elementDType",r,t,e),s;r.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=S(s,r,t,e),a=r.op==="TensorListReserve"?-1:i,u=GD(n,o,i,a);return e.addTensorList(u),[u.idTensor]}case"TensorListGather":{let n=S("tensorListId",r,t,e),o=S("indices",r,t,e),s=S("elementShape",r,t,e),i=S("elementDType",r,t,e);return[e.getTensorList(n.id).gather(o,i,s)]}case"TensorListStack":{let n=S("tensorListId",r,t,e),o=S("elementShape",r,t,e),s=S("elementDType",r,t,e),i=S("numElements",r,t,e);return[e.getTensorList(n.id).stack(o,s,i)]}case"TensorListFromTensor":{let n=S("tensor",r,t,e),o=S("elementShape",r,t,e),s=S("elementDType",r,t,e),i=VD(n,o,s);return e.addTensorList(i),[i.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{let n=S("tensorListId",r,t,e),o=e.getTensorList(n.id),s=S("dtype",r,t,e),i=S("elementShape",r,t,e);return[o.concat(s,i)]}case"TensorListPushBack":{let n=S("tensorListId",r,t,e),o=S("tensor",r,t,e),s=e.getTensorList(n.id);return s.pushBack(o),[s.idTensor]}case"TensorListPopBack":{let n=S("tensorListId",r,t,e),o=S("elementShape",r,t,e),s=S("elementDType",r,t,e);return[e.getTensorList(n.id).popBack(o,s)]}case"TensorListSplit":{let n=S("tensor",r,t,e),o=S("elementShape",r,t,e),s=S("lengths",r,t,e),i=UD(n,s,o);return e.addTensorList(i),[i.idTensor]}case"TensorListLength":{let n=S("tensorListId",r,t,e),o=e.getTensorList(n.id);return[mt(o.size(),"int32")]}case"TensorListResize":{let n=S("tensorListId",r,t,e),o=S("size",r,t,e),i=e.getTensorList(n.id).resize(o);return e.addTensorList(i),[i.idTensor]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};function qD(r,t,e){let[n,o]=S("fusedOps",r,t,e),s=n==="biasadd",i=!s,a=o==="prelu",u=n==="fusedbatchnorm",l=S("numArgs",r,t,e);if(s){if(a&&l!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!a&&s&&l!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(u)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported");let c=S("strides",r,t,e),p=Rh(r,t,e),m=S("dataFormat",r,t,e).toUpperCase(),f=S("dilations",r,t,e),[d,h]=S("args",r,t,e);i&&(h=d,d=void 0);let g=S("leakyreluAlpha",r,t,e);return{stride:c,pad:p,dataFormat:m,dilations:f,biasArg:d,preluArg:h,activationFunc:o,leakyreluAlpha:g}}var KD=(r,t,e,n=ae)=>{switch(r.op){case"Conv1D":{let o=S("stride",r,t,e),s=S("pad",r,t,e),i=S("dataFormat",r,t,e).toUpperCase(),a=S("dilation",r,t,e);return[n.conv1d(S("x",r,t,e),S("filter",r,t,e),o,s,i,a)]}case"Conv2D":{let o=S("strides",r,t,e),s=Rh(r,t,e),i=S("dataFormat",r,t,e).toUpperCase(),a=S("dilations",r,t,e);return[n.conv2d(S("x",r,t,e),S("filter",r,t,e),[o[1],o[2]],s,i,[a[1],a[2]])]}case"_FusedConv2D":{let{stride:o,pad:s,dataFormat:i,dilations:a,biasArg:u,preluArg:l,activationFunc:c,leakyreluAlpha:p}=qD(r,t,e);return[n.fused.conv2d({x:S("x",r,t,e),filter:S("filter",r,t,e),strides:[o[1],o[2]],pad:s,dataFormat:i,dilations:[a[1],a[2]],bias:u,activation:c,preluActivationWeights:l,leakyreluAlpha:p})]}case"FusedDepthwiseConv2dNative":{let{stride:o,pad:s,dataFormat:i,dilations:a,biasArg:u,preluArg:l,activationFunc:c,leakyreluAlpha:p}=qD(r,t,e);return[n.fused.depthwiseConv2d({x:S("x",r,t,e),filter:S("filter",r,t,e),strides:[o[1],o[2]],pad:s,dataFormat:i,dilations:[a[1],a[2]],bias:u,activation:c,preluActivationWeights:l,leakyreluAlpha:p})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let o=S("outputShape",r,t,e),s=S("strides",r,t,e),i=Rh(r,t,e);return[n.conv2dTranspose(S("x",r,t,e),S("filter",r,t,e),o,[s[1],s[2]],i)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let o=S("strides",r,t,e),s=Rh(r,t,e),i=S("dilations",r,t,e),a=S("dataFormat",r,t,e).toUpperCase();return[n.depthwiseConv2d(S("input",r,t,e),S("filter",r,t,e),[o[1],o[2]],s,a,[i[1],i[2]])]}case"Conv3D":{let o=S("strides",r,t,e),s=S("pad",r,t,e),i=S("dataFormat",r,t,e).toUpperCase(),a=S("dilations",r,t,e);return[n.conv3d(S("x",r,t,e),S("filter",r,t,e),[o[1],o[2],o[3]],s,i,[a[1],a[2],a[3]])]}case"AvgPool":{let o=S("strides",r,t,e),s=S("pad",r,t,e),i=S("kernelSize",r,t,e);return[n.avgPool(S("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case"MaxPool":{let o=S("strides",r,t,e),s=S("pad",r,t,e),i=S("kernelSize",r,t,e);return[n.maxPool(S("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case"MaxPoolWithArgmax":{let o=S("strides",r,t,e),s=S("pad",r,t,e),i=S("kernelSize",r,t,e),a=S("includeBatchInIndex",r,t,e),{result:u,indexes:l}=n.maxPoolWithArgmax(S("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s,a);return[u,l]}case"AvgPool3D":{let o=S("strides",r,t,e),s=S("pad",r,t,e),i=S("kernelSize",r,t,e);return[n.avgPool3d(S("x",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case"MaxPool3D":{let o=S("strides",r,t,e),s=S("pad",r,t,e),i=S("kernelSize",r,t,e);return[n.maxPool3d(S("x",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case"Dilation2D":{let o=S("strides",r,t,e),s=S("pad",r,t,e),i=S("dilations",r,t,e),a=o[1],u=o[2],l=i[1],c=i[2];return[n.dilation2d(S("x",r,t,e),S("filter",r,t,e),[a,u],s,[l,c],"NHWC")]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var jD=(r,t,e,n=ae)=>{switch(r.op){case"Fill":{let o=S("shape",r,t,e),s=S("dtype",r,t,e),i=S("value",r,t,e);return[n.fill(o,i,s)]}case"LinSpace":{let o=S("start",r,t,e),s=S("stop",r,t,e),i=S("num",r,t,e);return[n.linspace(o,s,i)]}case"Multinomial":{let o=S("logits",r,t,e),s=S("numSamples",r,t,e),i=S("seed",r,t,e);return[n.multinomial(o,s,i)]}case"OneHot":{let o=S("indices",r,t,e),s=S("depth",r,t,e),i=S("onValue",r,t,e),a=S("offValue",r,t,e),u=S("dtype",r,t,e);return[n.oneHot(o,s,i,a,u)]}case"Ones":return[n.ones(S("shape",r,t,e),S("dtype",r,t,e))];case"OnesLike":return[n.onesLike(S("x",r,t,e))];case"RandomStandardNormal":return[n.randomStandardNormal(S("shape",r,t,e),S("dtype",r,t,e),S("seed",r,t,e))];case"RandomUniform":return[n.randomUniform(S("shape",r,t,e),S("minval",r,t,e),S("maxval",r,t,e),S("dtype",r,t,e))];case"Range":{let o=S("start",r,t,e),s=S("stop",r,t,e),i=S("step",r,t,e);return[n.range(o,s,i,S("dtype",r,t,e))]}case"TruncatedNormal":{let o=S("shape",r,t,e),s=S("mean",r,t,e),i=S("stdDev",r,t,e),a=S("seed",r,t,e);return[n.truncatedNormal(o,s,i,S("dtype",r,t,e),a)]}case"Zeros":return[n.zeros(S("shape",r,t,e),S("dtype",r,t,e))];case"ZerosLike":return[n.zerosLike(S("x",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function mN(r,t,e){let n=S("boxes",r,t,e),o=S("scores",r,t,e),s=S("maxOutputSize",r,t,e),i=S("iouThreshold",r,t,e),a=S("scoreThreshold",r,t,e),u=S("softNmsSigma",r,t,e);return{boxes:n,scores:o,maxOutputSize:s,iouThreshold:i,scoreThreshold:a,softNmsSigma:u}}var XD=async(r,t,e,n,o=ae)=>{switch(r.op){case"NonMaxSuppressionV5":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l,softNmsSigma:c}=mN(r,t,e),p=await o.image.nonMaxSuppressionWithScoreAsync(s,i,a,u,l,c);return[p.selectedIndices,p.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l}=mN(r,t,e),c=S("padToMaxOutputSize",r,t,e),p=await o.image.nonMaxSuppressionPaddedAsync(s,i,a,u,l,c);return[p.selectedIndices,p.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l}=mN(r,t,e);return[await o.image.nonMaxSuppressionAsync(s,i,a,u,l)]}case"Where":{let s=o.cast(S("condition",r,t,e),"bool"),i=[await o.whereAsync(s)];return s.dispose(),i}case"ListDiff":return o.setdiff1dAsync(S("x",r,t,e),S("y",r,t,e));default:throw TypeError(`Node type ${r.op} is not implemented`)}};var YD=(r,t,e,n=ae)=>{switch(r.op){case"LowerBound":{let o=S("sortedSequence",r,t,e),s=S("values",r,t,e);return[n.lowerBound(o,s)]}case"TopKV2":{let o=S("x",r,t,e),s=S("k",r,t,e),i=S("sorted",r,t,e),a=n.topk(o,s,i);return[a.values,a.indices]}case"UpperBound":{let o=S("sortedSequence",r,t,e),s=S("values",r,t,e);return[n.upperBound(o,s)]}case"Unique":{let o=S("x",r,t,e),s=n.unique(o);return[s.values,s.indices]}case"UniqueV2":{let o=S("x",r,t,e),s=S("axis",r,t,e),i=n.unique(o,s);return[i.values,i.indices]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var ZD=(r,t,e,n=ae)=>{switch(r.op){case"Const":return t[r.name];case"PlaceholderWithDefault":let o=S("default",r,t,e);return[br(r.name,t,e)||o];case"Placeholder":return[br(r.name,t,e)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let c=S("x",r,t,e);return[Zs(c)]}case"IdentityN":return S("x",r,t,e).map(c=>Zs(c));case"Snapshot":let s=S("x",r,t,e);return[Zs(s)];case"Shape":return[n.tensor1d(S("x",r,t,e).shape,"int32")];case"ShapeN":return S("x",r,t,e).map(c=>n.tensor1d(c.shape));case"Size":return[n.scalar(S("x",r,t,e).size,"int32")];case"Rank":return[n.scalar(S("x",r,t,e).rank,"int32")];case"NoOp":return[n.scalar(1)];case"Print":let i=S("x",r,t,e),a=S("data",r,t,e),u=S("message",r,t,e),l=S("summarize",r,t,e);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(u);for(let c=0;ct.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return mt(this.size(),"int32")}async import(t,e){this.checkKeyAndValueTensor(t,e);let n=await t.data();return this.tensorMap.forEach(o=>o.dispose()),this.tensorMap.clear(),B(()=>{let o=vr(e),s=n.length,i=o.length;y.assert(s===i,()=>`The number of elements doesn't match, keys has ${s} elements, the values has ${i} elements.`);for(let a=0;a{let o=[];for(let s=0;s{switch(r.op){case"HashTable":case"HashTableV2":{let o=n.getHashTableHandleByName(r.name);if(o!=null)return[o];{let s=S("keyDType",r,t,e),i=S("valueDType",r,t,e),a=new Bb(s,i);return n.addHashTable(r.name,a),[a.handle]}}case"LookupTableImport":case"LookupTableImportV2":{let o=S("tableHandle",r,t,e,n),s=S("keys",r,t,e),i=S("values",r,t,e);return[await n.getHashTableById(o.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let o=S("tableHandle",r,t,e,n),s=S("keys",r,t,e),i=S("defaultValue",r,t,e);return[await n.getHashTableById(o.id).find(s,i)]}case"LookupTableSize":case"LookupTableSizeV2":{let o=S("tableHandle",r,t,e,n);return[n.getHashTableById(o.id).tensorSize()]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var QD=(r,t,e,n=ae)=>{switch(r.op){case"ResizeBilinear":{let o=S("images",r,t,e),s=S("size",r,t,e),i=S("alignCorners",r,t,e),a=S("halfPixelCenters",r,t,e);return[n.image.resizeBilinear(o,[s[0],s[1]],i,a)]}case"ResizeNearestNeighbor":{let o=S("images",r,t,e),s=S("size",r,t,e),i=S("alignCorners",r,t,e),a=S("halfPixelCenters",r,t,e);return[n.image.resizeNearestNeighbor(o,[s[0],s[1]],i,a)]}case"CropAndResize":{let o=S("image",r,t,e),s=S("boxes",r,t,e),i=S("boxInd",r,t,e),a=S("cropSize",r,t,e),u=S("method",r,t,e),l=S("extrapolationValue",r,t,e);return[n.image.cropAndResize(o,s,i,a,u,l)]}case"ImageProjectiveTransformV3":{let o=S("images",r,t,e),s=S("transforms",r,t,e),i=S("outputShape",r,t,e),a=S("fillValue",r,t,e),u=S("interpolation",r,t,e),l=S("fillMode",r,t,e);return[n.image.transform(o,s,u.toLowerCase(),l.toLowerCase(),a,i)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var tR=(r,t,e,n=ae)=>{switch(r.op){case"Equal":return[n.equal(S("a",r,t,e),S("b",r,t,e))];case"NotEqual":return[n.notEqual(S("a",r,t,e),S("b",r,t,e))];case"Greater":return[n.greater(S("a",r,t,e),S("b",r,t,e))];case"GreaterEqual":return[n.greaterEqual(S("a",r,t,e),S("b",r,t,e))];case"Less":return[n.less(S("a",r,t,e),S("b",r,t,e))];case"LessEqual":return[n.lessEqual(S("a",r,t,e),S("b",r,t,e))];case"LogicalAnd":return[n.logicalAnd(S("a",r,t,e),S("b",r,t,e))];case"LogicalNot":return[n.logicalNot(S("a",r,t,e))];case"LogicalOr":return[n.logicalOr(S("a",r,t,e),S("b",r,t,e))];case"Select":case"SelectV2":return[n.where(S("condition",r,t,e),S("a",r,t,e),S("b",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var eR=(r,t,e,n=ae)=>{switch(r.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[n.matMul(S("a",r,t,e),S("b",r,t,e),S("transposeA",r,t,e),S("transposeB",r,t,e))];case"Einsum":return[n.einsum(S("equation",r,t,e),...S("tensors",r,t,e))];case"Transpose":return[n.transpose(S("x",r,t,e),S("perm",r,t,e))];case"_FusedMatMul":let[o,s]=S("fusedOps",r,t,e),i=o==="biasadd",a=s==="prelu",u=S("numArgs",r,t,e),l=S("leakyreluAlpha",r,t,e);if(i){if(a&&u!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!a&&u!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[c,p]=S("args",r,t,e);return[n.fused.matMul({a:S("a",r,t,e),b:S("b",r,t,e),transposeA:S("transposeA",r,t,e),transposeB:S("transposeB",r,t,e),bias:c,activation:s,preluActivationWeights:p,leakyreluAlpha:l})];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var rR=(r,t,e,n=ae)=>{switch(r.op){case"EuclideanNorm":return[n.euclideanNorm(S("x",r,t,e),S("axis",r,t,e),S("keepDims",r,t,e))];case"FusedBatchNorm":case"FusedBatchNormV2":return[n.batchNorm(S("x",r,t,e),S("mean",r,t,e),S("variance",r,t,e),S("offset",r,t,e),S("scale",r,t,e),S("epsilon",r,t,e))];case"FusedBatchNormV3":return[n.batchNorm(S("x",r,t,e),S("mean",r,t,e),S("variance",r,t,e),S("offset",r,t,e),S("scale",r,t,e),S("epsilon",r,t,e))];case"LRN":return[n.localResponseNormalization(S("x",r,t,e),S("radius",r,t,e),S("bias",r,t,e),S("alpha",r,t,e),S("beta",r,t,e))];case"Softmax":return[n.softmax(S("x",r,t,e))];case"LogSoftmax":return[n.logSoftmax(S("x",r,t,e))];case"SparseToDense":return[n.sparseToDense(S("sparseIndices",r,t,e),S("outputShape",r,t,e),S("sparseValues",r,t,e),S("defaultValue",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var nR=(r,t,e,n=ae)=>{switch(r.op){case"Max":{let a=S("axis",r,t,e),u=S("keepDims",r,t,e);return[n.max(S("x",r,t,e),a,u)]}case"Mean":{let a=S("axis",r,t,e),u=S("keepDims",r,t,e);return[n.mean(S("x",r,t,e),a,u)]}case"Min":{let a=S("axis",r,t,e),u=S("keepDims",r,t,e);return[n.min(S("x",r,t,e),a,u)]}case"Sum":{let a=S("axis",r,t,e),u=S("keepDims",r,t,e);return[n.sum(S("x",r,t,e),a,u)]}case"All":{let a=S("axis",r,t,e),u=S("keepDims",r,t,e);return[n.all(S("x",r,t,e),a,u)]}case"Any":{let a=S("axis",r,t,e),u=S("keepDims",r,t,e);return[n.any(S("x",r,t,e),a,u)]}case"ArgMax":{let a=S("axis",r,t,e);return[n.argMax(S("x",r,t,e),a)]}case"ArgMin":{let a=S("axis",r,t,e);return[n.argMin(S("x",r,t,e),a)]}case"Prod":{let a=S("axis",r,t,e),u=S("keepDims",r,t,e);return[n.prod(S("x",r,t,e),a,u)]}case"Cumprod":{let a=S("axis",r,t,e),u=S("exclusive",r,t,e),l=S("reverse",r,t,e);return[n.cumprod(S("x",r,t,e),a,u,l)]}case"Cumsum":{let a=S("axis",r,t,e),u=S("exclusive",r,t,e),l=S("reverse",r,t,e);return[n.cumsum(S("x",r,t,e),a,u,l)]}case"Bincount":let o=S("x",r,t,e),s=S("weights",r,t,e),i=S("size",r,t,e);return[n.bincount(o,s,i)];case"DenseBincount":{let a=S("x",r,t,e),u=S("weights",r,t,e),l=S("size",r,t,e),c=S("binaryOutput",r,t,e);return[n.denseBincount(a,u,l,c)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var oR=(r,t,e,n=ae)=>{switch(r.op){case"ConcatV2":case"Concat":{let o=S("n",r,t,e),s=S("axis",r,t,e),i=S("tensors",r,t,e);return i=i.slice(0,o),[n.concat(i,s)]}case"Gather":{let o=S("x",r,t,e),s=S("indices",r,t,e);return[n.gather(o,n.cast(s,"int32"),0)]}case"GatherV2":{let o=S("axis",r,t,e),s=S("batchDims",r,t,e),i=S("x",r,t,e),a=S("indices",r,t,e);return[n.gather(i,n.cast(a,"int32"),o,s)]}case"Reverse":{let o=S("dims",r,t,e),s=[];for(let a=0;a{let o=S("axis",r,t,e),s=S("tensors",r,t,e),i=s[0].shape,a=n.squeeze(s[0]).shape,u=s.map(l=>{let c=y.arraysEqual(l.shape,i);if(!c&&!y.arraysEqual(n.squeeze(l).shape,a))throw new Error("the input tensors shape does not match");return c?l:n.reshape(l,i)});return[n.stack(u,o)]});case"Unpack":{let o=S("axis",r,t,e),s=S("tensor",r,t,e);return n.unstack(s,o)}case"Tile":{let o=S("reps",r,t,e);return[n.tile(S("x",r,t,e),o)]}case"Split":case"SplitV":{let o=S("axis",r,t,e),s=S("numOrSizeSplits",r,t,e),i=S("x",r,t,e);return n.split(i,s,o)}case"ScatterNd":{let o=S("indices",r,t,e),s=S("values",r,t,e),i=S("shape",r,t,e);return[n.scatterND(o,s,i)]}case"GatherNd":{let o=S("x",r,t,e),s=S("indices",r,t,e);return[n.gatherND(o,s)]}case"SparseToDense":{let o=S("sparseIndices",r,t,e),s=S("outputShape",r,t,e),i=S("sparseValues",r,t,e),a=S("defaultValue",r,t,e);return[n.sparseToDense(o,i,s,i.dtype===a.dtype?a:n.cast(a,i.dtype))]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var sR=(r,t,e,n=ae)=>{switch(r.op){case"SparseFillEmptyRows":{let{outputIndices:o,outputValues:s,emptyRowIndicator:i,reverseIndexMap:a}=n.sparse.sparseFillEmptyRows(S("indices",r,t,e),S("values",r,t,e),S("denseShape",r,t,e),S("defaultValue",r,t,e));return[o,s,i,a]}case"SparseReshape":{let{outputIndices:o,outputShape:s}=n.sparse.sparseReshape(S("inputIndices",r,t,e),S("inputShape",r,t,e),S("newShape",r,t,e));return[o,s]}case"SparseSegmentMean":return[n.sparse.sparseSegmentMean(S("data",r,t,e),S("indices",r,t,e),S("segmentIds",r,t,e))];case"SparseSegmentSum":return[n.sparse.sparseSegmentSum(S("data",r,t,e),S("indices",r,t,e),S("segmentIds",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var iR=(r,t,e,n=ae)=>{switch(r.op){case"FFT":return[n.fft(S("x",r,t,e))];case"IFFT":return[n.ifft(S("x",r,t,e))];case"RFFT":return[n.rfft(S("x",r,t,e))];case"IRFFT":return[n.irfft(S("x",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var aR=(r,t,e,n=ae)=>{switch(r.op){case"StringNGrams":{let{nGrams:o,nGramsSplits:s}=n.string.stringNGrams(S("data",r,t,e),S("dataSplits",r,t,e),S("separator",r,t,e),S("nGramWidths",r,t,e),S("leftPad",r,t,e),S("rightPad",r,t,e),S("padWidth",r,t,e),S("preserveShortSequences",r,t,e));return[o,s]}case"StringSplit":{let{indices:o,values:s,shape:i}=n.string.stringSplit(S("input",r,t,e),S("delimiter",r,t,e),S("skipEmpty",r,t,e));return[o,s,i]}case"StringToHashBucketFast":return[n.string.stringToHashBucketFast(S("input",r,t,e),S("numBuckets",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var lR=(r,t,e,n=ae)=>{switch(r.op){case"Cast":return[n.cast(S("x",r,t,e),S("dtype",r,t,e))];case"ExpandDims":{let o=S("axis",r,t,e);return[n.expandDims(S("x",r,t,e),o)]}case"Squeeze":{let o=S("axis",r,t,e);return[n.squeeze(S("x",r,t,e),o)]}case"Reshape":return[n.reshape(S("x",r,t,e),S("shape",r,t,e))];case"MirrorPad":return[n.mirrorPad(S("x",r,t,e),S("padding",r,t,e),S("mode",r,t,e))];case"PadV2":case"Pad":return[n.pad(S("x",r,t,e),S("padding",r,t,e),S("constantValue",r,t,e))];case"SpaceToBatchND":{let o=S("blockShape",r,t,e),s=S("paddings",r,t,e);return[n.spaceToBatchND(S("x",r,t,e),o,s)]}case"BatchToSpaceND":{let o=S("blockShape",r,t,e),s=S("crops",r,t,e);return[n.batchToSpaceND(S("x",r,t,e),o,s)]}case"DepthToSpace":{let o=S("blockSize",r,t,e),s=S("dataFormat",r,t,e).toUpperCase();return[n.depthToSpace(S("x",r,t,e),o,s)]}case"BroadcastTo":return[n.broadcastTo(S("x",r,t,e),S("shape",r,t,e))];case"BroadcastArgs":return[n.broadcastArgs(S("s0",r,t,e),S("s1",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function fN(r,t,e,n,o=B){let s=((i,a,u)=>{switch(i.category){case"arithmetic":return o(()=>MD(i,a,u));case"basic_math":return o(()=>zD(i,a,u));case"control":return HD(i,a,u);case"convolution":return o(()=>KD(i,a,u));case"creation":return o(()=>jD(i,a,u));case"dynamic":return XD(i,a,u);case"evaluation":return o(()=>YD(i,a,u));case"image":return o(()=>QD(i,a,u));case"graph":return o(()=>ZD(i,a,u));case"logical":return o(()=>tR(i,a,u));case"matrices":return o(()=>eR(i,a,u));case"normalization":return o(()=>rR(i,a,u));case"reduction":return o(()=>nR(i,a,u));case"slice_join":return o(()=>oR(i,a,u));case"sparse":return o(()=>sR(i,a,u));case"spectral":return o(()=>iR(i,a,u));case"string":return o(()=>aR(i,a,u));case"transformation":return o(()=>lR(i,a,u));case"hash_table":return JD(i,a,u,n);case"custom":let l=Nb(i.op);if(l&&l.customExecutor)return l.customExecutor(new Lb(i,a,u));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(r,t,e);return y.isPromise(s)?s.then(i=>[].concat(i)):[].concat(s)}var Oh=class{constructor(t={},e={},n={},o={}){this.weightMap=t,this.tensorArrayMap=e,this.tensorListMap=n,this.functionMap=o,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(t,e){return{id:t,frameName:e,iterationId:0}}set currentContext(t){this.contexts!==t&&(this.contexts=t,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let t=[];for(let e=0;ee.id===0&&e.iterationId===0?"":`${e.frameName}-${e.iterationId}`).join("/"):""}enterFrame(t){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,t)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let t=Object.assign({},this.contexts[this.contexts.length-1]);t.iterationId+=1,t.id=this.lastId,this.contexts.splice(-1,1,t),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(t){return this.weightMap[t]}addTensorArray(t){this.tensorArrayMap[t.id]=t}getTensorArray(t){return this.tensorArrayMap[t]}addTensorList(t){this.tensorListMap[t.id]=t}getTensorList(t){return this.tensorListMap[t]}dispose(t){for(let e in this.tensorArrayMap)this.tensorArrayMap[e].clearAndClose(t);for(let e in this.tensorListMap)this.tensorListMap[e].clearAndClose(t)}};function dN(r,t,e,n){let o=new Set,s=[],i=null,a=null,u=new Set,l=Object.keys(r).map(m=>xn(m)[0]),c=[];n!=null&&(c=n.map(m=>xn(m.name)[0]));let p=[...t];for(;p.length>0;){let m=p.pop();if((hN(m)||F7(m)||O7(m))&&i==null&&(i=m,a=i.children.map(f=>f.name).filter(f=>o.has(f))),o.add(m.name),e[m.name]==null&&l.indexOf(m.name)===-1&&c.indexOf(m.name)===-1){if(m.inputs.length===0){s.push(m.name);continue}m.inputs.forEach(f=>{u.has(f.name)||(u.add(f.name),p.push(f))})}}return{inputs:r,outputs:t,usedNodes:o,missingInputs:s,dynamicNode:i,syncInputs:a}}function uR(r,t,e){let{usedNodes:n,inputs:o}=e,s=[],i=Object.keys(o).map(c=>xn(c)[0]).map(c=>r.nodes[c]),a=r.initNodes;i.forEach(c=>{n.has(c.name)&&s.push(c)}),r.weights.forEach(c=>{n.has(c.name)&&s.push(c)}),a!=null&&a.forEach(c=>{n.has(c.name)&&s.push(c)});let u=new Set,l=[];for(;s.length>0;){let c=s.pop();u.add(c.name),t[c.name]||l.push(c),c.children.forEach(p=>{!u.has(p.name)&&n.has(p.name)&&p.inputs.every(m=>u.has(m.name))&&s.push(p)})}return l}var $7=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],D7=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],R7=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function hN(r){return $7.indexOf(r.op)>=0}function F7(r){return D7.indexOf(r.op)>=0}function O7(r){return R7.indexOf(r.op)>=0}var Nc=class{constructor(t,e){this.graph=t,this.parent=e,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this.intermediateTensors={},this.keepTensorForDebug=!1,this._outputs=t.outputs,this._inputs=t.inputs,this._initNodes=t.initNodes,this._signature=t.signature,this._functions=t.functions,t.functions!=null&&Object.keys(t.functions).forEach(n=>{this._functionExecutorMap[n]=new Nc(t.functions[n],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(t){let e=Object.keys(t).map(n=>t[n].map(o=>o.id));this._weightIds=[].concat(...e),this._weightMap=t}set resourceManager(t){this._resourceManager=t}get inputs(){return this._inputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(t=>t.signatureKey||t.name)}get outputNodes(){return this._outputs.map(t=>{let e=t.signatureKey||t.name;return t.defaultOutput?`${e}:${t.defaultOutput}`:e})}get functions(){return Object.keys(this._functions).reduce((t,e)=>(t[e]=this._functions[e].signature,t),{})}getCompilationKey(t,e){let n=t.map(s=>s.name).sort(),o=e.map(s=>s.name).sort();return n.join(this.SEPERATOR)+"--"+o.join(this.SEPERATOR)}compile(t,e){let n=dN(t,e,this.weightMap,this._initNodes),{missingInputs:o,dynamicNode:s,syncInputs:i}=n;if(s!=null)throw new Error(`This execution contains the node '${s.name}', which has the dynamic op '${s.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${i}]`);if(o.length>0){let a=e.map(l=>l.name),u=Object.keys(t);throw new Error(`Cannot compute the outputs [${a}] from the provided inputs [${u}]. Missing the following inputs: [${o}]`)}return uR(this.graph,this.weightMap,n)}execute(t,e){t=this.mapInputs(t);let n=Object.keys(t).sort();this.checkInputs(t),this.checkInputShapeAndType(t),e=this.mapOutputs(e),this.checkOutputs(e);let o=n.map(p=>this.graph.nodes[xn(p)[0]]),s=e.map(p=>xn(p)[0]),i=s.map(p=>this.graph.nodes[p]);this.resetIntermediateTensors(),i.length===0&&(i=this._outputs);let a=this.getCompilationKey(o,i),u=this.compiledMap.get(a);u==null&&(u=this.compile(t,i),this.compiledMap.set(a,u));let l={},c={};return B(()=>{let p=new Oh(this.weightMap,l,c,this.functionExecutorMap),m=Object.assign({},this.weightMap);Object.keys(t).forEach(h=>{let[g,x]=xn(h),b=[];b[x]=t[h],m[g]=b});let f=this.getFrozenTensorIds(m),d={};for(let h=0;hbr(h,m,p))})}getFrozenTensorIds(t){let e=[].concat.apply([],Object.keys(t).map(n=>t[n]).map(n=>n.map(o=>o.id)));return new Set(e)}checkTensorForDisposal(t,e,n,o,s,i,a){e.category==="control"||i.indexOf(t)!==-1||(n[t].forEach(u=>{u!=null&&(a[u.id]=(a[u.id]||0)+e.children.length)}),e.inputs.forEach(u=>{if(u.category!=="control"){let l=FD(u.name,n,o);l!=null&&l.forEach(c=>{if(c&&!c.kept&&!s.has(c.id)){let p=a[c.id];if(p===1){if(!this.keepTensorForDebug)c.dispose();else{let[m,f]=_o(e.name,o);this.intermediateTensors[m]?this.intermediateTensors[m][f]=c:(this.intermediateTensors[m]=[],this.intermediateTensors[m][f]=c)}delete a[c.id]}else p!=null&&a[c.id]--}})}}))}async executeAsync(t,e){return this._executeAsync(t,e)}disposeIntermediateTensors(){!this.intermediateTensors||(Object.keys(this.intermediateTensors).forEach(t=>this.intermediateTensors[t].forEach(e=>e.dispose())),this.disposeTensorsMap())}disposeTensorsMap(){!this.tensorsMap||Object.keys(this.tensorsMap).forEach(t=>{this.tensorsMap[t].forEach(n=>{n&&!n.kept&&!n.isDisposed&&!this.keepIds.has(n.id)&&n.dispose()})})}getIntermediateTensors(){return this.tensorsMap}resetIntermediateTensors(){for(let t in this.intermediateTensors)this.intermediateTensors[t].forEach(e=>e.dispose()),delete this.intermediateTensors[t]}async _executeAsync(t,e,n=!1,o={},s={}){n||(t=this.mapInputs(t),this.checkInputs(t),this.checkInputShapeAndType(t),e=this.mapOutputs(e),this.checkOutputs(e));try{this.keepTensorForDebug=z().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(c){console.warn(c.message)}this.resetIntermediateTensors();let i=new Oh(this.weightMap,o,s,this.functionExecutorMap);this.tensorsMap=await this.executeWithControlFlow(t,i,e,n);let a=e.map(c=>br(c,this.tensorsMap,i)),u=a.map(c=>c.id),l=Object.keys(t).map(c=>t[c].id);return this.keepIds=new Set([...u,...l,...this.weightIds]),this.keepTensorForDebug||this.disposeTensorsMap(),this.parent==null&&i.dispose(this.keepIds),a}async executeFunctionAsync(t,e,n){let o=t.reduce((s,i,a)=>(s[this.inputs[a].name]=i,s),{});return this._executeAsync(o,this.outputNodes,!0,e,n)}async executeWithControlFlow(t,e,n,o){let s=Object.keys(t),i=s.map(w=>this.graph.nodes[xn(w)[0]]),a=n.map(w=>xn(w)[0]),u=a.map(w=>this.graph.nodes[w]);u.length===0&&(u=this._outputs);let{usedNodes:l,missingInputs:c,dynamicNode:p,syncInputs:m}=dN(t,u,this.weightMap,this._initNodes),f=[...i,...this.graph.weights,...this._initNodes||[]].map(w=>({node:w,contexts:e.currentContext})),d=Object.assign({},this.weightMap);Object.keys(t).forEach(w=>{let[C,N]=xn(w),_=[];_[N]=t[w],d[C]=_});let h={},g=this.getFrozenTensorIds(d),x={};for(;f.length>0;){let w=this.processStack(i,f,e,d,x,g,a,h,l);await Promise.all(w)}p==null&&!o&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let b=u.filter(w=>!hN(w)&&!br(w.name,d,e)).map(w=>w.name);if(b.length>0){let w="";throw p!=null&&(w=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${m}]`),new Error(`Cannot compute the outputs [${b}] from the provided inputs [${s}]. Consider providing the following inputs: [${c}]. ${w}`)}return d}processStack(t,e,n,o,s,i,a,u,l){let c=[];for(;e.length>0;){let p=e.pop();n.currentContext=p.contexts;let m="";if(p.node.op==="Enter"&&S("isConstant",p.node,o,n)&&([m]=_o(p.node.name,n)),o[p.node.name]==null){let f=fN(p.node,o,n,this._resourceManager);m||([m]=_o(p.node.name,n));let d=n.currentContext;y.isPromise(f)?c.push(f.then(h=>(o[m]=h,n.currentContext=d,this.checkTensorForDisposal(m,p.node,o,n,i,a,u),this.processChildNodes(p.node,e,n,o,s,l),h))):(o[m]=f,this.checkTensorForDisposal(m,p.node,o,n,i,a,u),this.processChildNodes(p.node,e,n,o,s,l))}else this.processChildNodes(p.node,e,n,o,s,l)}return c}processChildNodes(t,e,n,o,s,i){t.children.forEach(a=>{let[u]=_o(a.name,n);s[u]||!i.has(a.name)||(a.op==="Merge"?a.inputNames.some(l=>!!br(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})):a.inputNames.every(l=>!!br(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})))})}dispose(){Object.keys(this.weightMap).forEach(t=>this.weightMap[t].forEach(e=>e.dispose()))}checkInputShapeAndType(t){Object.keys(t).forEach(e=>{let n=t[e],[o]=xn(e),s=this.graph.nodes[o];if(s.attrParams.shape&&s.attrParams.shape.value){let i=s.attrParams.shape.value,a=i.length===n.shape.length&&n.shape.every((u,l)=>i[l]===-1||i[l]===u);y.assert(a,()=>`The shape of dict['${s.name}'] provided in model.execute(dict) must be [${i}], but was [${n.shape}]`)}s.attrParams.dtype&&s.attrParams.dtype.value&&y.assert(n.dtype===s.attrParams.dtype.value,()=>`The dtype of dict['${s.name}'] provided in model.execute(dict) must be ${s.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(t){let e={};for(let n in t)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[n]!=null){let o=this._signature.inputs[n];e[o.name]=t[n]}else e[n]=t[n];return e}checkInputs(t){let e=Object.keys(t).filter(n=>{let[o]=xn(n);return this.graph.nodes[o]==null});if(e.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${e}] that are not part of graph`)}mapOutputs(t){return t.map(e=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[e]!=null?this._signature.outputs[e].name:e,{})}checkOutputs(t){t.forEach(e=>{let[n]=xn(e);if(!this.graph.nodes[n])throw new Error(`The output '${e}' is not found in the graph`)})}};var Vb=class{constructor(t={},e={}){this.hashTableNameToHandle=t,this.hashTableMap=e}addHashTable(t,e){this.hashTableNameToHandle[t]=e.handle,this.hashTableMap[e.id]=e}getHashTableHandleByName(t){return this.hashTableNameToHandle[t]}getHashTableById(t){return this.hashTableMap[t]}dispose(){for(let t in this.hashTableMap)this.hashTableMap[t].clearAndClose(),delete this.hashTableMap[t];for(let t in this.hashTableNameToHandle)this.hashTableNameToHandle[t].dispose(),delete this.hashTableNameToHandle[t]}};var P7="?tfjs-format=file",L7="model.json",Ph=class{constructor(t,e={},n=_r){this.modelUrl=t,this.loadOptions=e,this.version="n/a",this.io=n,e==null&&(this.loadOptions={}),this.resourceManager=new Vb}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}get modelStructuredOutputKeys(){return this.structuredOutputKeys}findIOHandler(){let t=this.modelUrl;if(t.load!=null)this.handler=t;else if(this.loadOptions.requestInit!=null)this.handler=this.io.browserHTTPRequest(t,this.loadOptions);else{let e=this.io.getLoadHandlers(t,this.loadOptions);if(e.length===0)e.push(this.io.browserHTTPRequest(t,this.loadOptions));else if(e.length>1)throw new Error(`Found more than one (${e.length}) load handlers for URL '${[t]}'`);this.handler=e[0]}}load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let t=this.handler.load();return y.isPromise(t)?t.then(e=>this.loadSync(e)):this.loadSync(t)}loadSync(t){this.artifacts=t;let e=this.artifacts.modelTopology,n=this.artifacts.signature;if(this.artifacts.userDefinedMetadata!=null){let s=this.artifacts.userDefinedMetadata;s.signature!=null&&(n=s.signature),s.structuredOutputKeys!=null&&(this.structuredOutputKeys=s.structuredOutputKeys)}this.signature=n,this.version=`${e.versions.producer}.${e.versions.minConsumer}`;let o=this.io.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new Nc(Fh.Instance.transformGraph(e,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(o),this.executor.resourceManager=this.resourceManager,t.modelInitializer!=null&&t.modelInitializer.node!=null){let s=Fh.Instance.transformGraph(t.modelInitializer);this.initializer=new Nc(s),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=t.initializerSignature}return!0}async save(t,e){if(typeof t=="string"){let n=this.io.getSaveHandlers(t);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${t}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${t}'`);t=n[0]}if(t.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return t.save(this.artifacts)}predict(t,e){let n=this.execute(t,this.outputNodes);if(this.structuredOutputKeys){let o=n instanceof Ft?[n]:n,s={};return o.forEach((i,a)=>s[this.structuredOutputKeys[a]]=i),s}return n}normalizeInputs(t){if(!(t instanceof Ft)&&!Array.isArray(t)){if(this.signature!=null&&this.signature.inputs!=null)for(let o in this.signature.inputs){let s=this.signature.inputs[o];s.resourceId!=null&&(t[o]=this.resourceIdToCapturedInput[s.resourceId])}return t}t=Array.isArray(t)?t:[t];let e=Object.keys(this.resourceIdToCapturedInput).length;if(t.length+e!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-e} non-resource placeholders, while there are ${t.length} input tensors provided.`);let n=0;return this.inputNodes.reduce((o,s)=>{let i=this.signature?this.signature.inputs[s]:null;return i!=null&&i.resourceId!=null?o[s]=this.resourceIdToCapturedInput[i.resourceId]:o[s]=t[n++],o},{})}normalizeOutputs(t){return t=t||this.outputNodes,Array.isArray(t)?t:[t]}executeInitializerGraph(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(t){if(this.resourceIdToCapturedInput={},this.initializerSignature){let e=Object.keys(this.initializerSignature.outputs);for(let n=0;n1?n:n[0]}async executeAsync(t,e){this.resourceIdToCapturedInput==null&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),t=this.normalizeInputs(t),e=this.normalizeOutputs(e);let n=await this.executor.executeAsync(t,e);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(t){return Object.keys(t).reduce((e,n)=>(e[n]=[t[n]],e),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&vt(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function M7(r,t={},e=_r){if(r==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");t==null&&(t={}),t.fromTFHub&&typeof r=="string"&&(r=B7(r));let n=new Ph(r,t,e);return await n.load(),n}function z7(r){if(r==null)throw new Error("modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model");let t;if(r instanceof Array){let[n,o]=r;if(!n)throw new Error("modelJSON must be the first element of the array");if(!o||!(o instanceof ArrayBuffer))throw new Error("An ArrayBuffer of weights must be the second element of the array");if(!("modelTopology"in n))throw new Error("Model JSON is missing 'modelTopology'");if(!("weightsManifest"in n))throw new Error("Model JSON is missing 'weightsManifest'");let s=_r.getWeightSpecs(n.weightsManifest),i=_r.getModelArtifactsForJSONSync(n,s,o);t=_r.fromMemorySync(i)}else if("load"in r)t=r;else if("modelTopology"in r&&"weightSpecs"in r&&"weightData"in r)t=_r.fromMemorySync(r);else throw new Error("Unknown model format");let e=new Ph(t);return e.load(),e}function B7(r){return r.endsWith("/")||(r=r+"/"),`${r}${L7}${P7}`}var cR="4.0.0";var AR={};Wt(AR,{CSVDataset:()=>Yf,Dataset:()=>Js,FileDataSource:()=>ed,TextLineDataset:()=>Xf,URLDataSource:()=>rd,array:()=>wR,csv:()=>NR,func:()=>TR,generator:()=>kR,microphone:()=>_R,version_data:()=>PN,webcam:()=>ER,zip:()=>CR});var bR=Tl(fh());var gR=Tl(fh());function pR(r,t){return Gb(r,t)}function Gb(r,t,e=new Map,n=new Set){if(r==null)return null;if(typeof Blob=="function"&&r instanceof Blob)return r.slice();if(n.has(r))throw new Error("Circular references are not supported.");if(e.has(r))return e.get(r);let o=t(r);if(o.recurse&&o.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(o.recurse)if(vu(r)){let s=Array.isArray(r)?[]:{};n.add(r);for(let i in r){let a=r[i],u=Gb(a,t,e,n);s[i]=u}return n.delete(r),r.__proto__&&(s.__proto__=r.__proto__),s}else throw new Error(`Can't recurse into non-iterable type: ${r}`);else return e.set(r,o.value),o.value}function mR(r,t=xN){return fR(r,t)}function fR(r,t,e=new Set){let n=r[0];if(e.has(n))throw new Error("Circular references are not supported.");let o=t(r);if(o.recurse&&o.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(o.recurse)if(vu(n)){let s=Array.isArray(n)?[]:{};e.add(n);for(let i in n){let a=r.map(l=>l[i]),u=fR(a,t,e);s[i]=u}return e.delete(n),s}else throw new Error(`Can't recurse into non-iterable type: ${n}`);else return o.value}function xN(r){return r===null?null:vu(r[0])?{value:null,recurse:!0}:{value:r,recurse:!1}}async function Wb(r,t){let e=new Map;Gb(r,t,e);for(let o of Array.from(e.keys())){let s=e.get(o);if(y.isPromise(s)){let i=await s;e.set(o,i)}}return Gb(r,t,e)}function vu(r){let t=!1;if(z().get("IS_BROWSER"))t=r instanceof TextDecoder;else{let{StringDecoder:e}=gN();t=r instanceof e}return r!=null&&!ArrayBuffer.isView(r)&&(Array.isArray(r)||typeof r=="object"&&!(r instanceof Ft)&&!(r instanceof Promise)&&!t)}function dR(r){return r==null||V7(r)||Array.isArray(r)||typeof r=="object"&&r instanceof Ft||y.isTypedArray(r)}function V7(r){return r===null||typeof r!="object"&&typeof r!="function"}function hR(r){return pR(r,G7)}function G7(r){return r instanceof Ft?{value:r.clone(),recurse:!1}:vu(r)?{value:null,recurse:!0}:{value:r,recurse:!1}}var jf=class{constructor(t){if(this.capacity=t,this.begin=0,this.end=0,t==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(t<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(t),this.doubledCapacity=2*t}wrap(t){for(;t<0;)t+=this.doubledCapacity;return t%this.doubledCapacity}get(t){if(t<0)throw new RangeError("Can't get item at a negative index.");return this.data[t%this.capacity]}set(t,e){if(t<0)throw new RangeError("Can't set item at a negative index.");this.data[t%this.capacity]=e}length(){let t=this.end-this.begin;return t<0&&(t=this.doubledCapacity+t),t}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(t){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,t),this.end=this.wrap(this.end+1)}pushAll(t){for(let e of t)this.push(e)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let t=this.get(this.end);return this.set(this.end,void 0),t}unshift(t){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,t)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let t=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),t}shuffleExcise(t){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let e=this.wrap(this.begin+t),n=this.get(e);return this.set(e,this.pop()),n}};var Tc=class extends jf{constructor(){super(Tc.INITIAL_CAPACITY)}isFull(){return!1}push(t){super.isFull()&&this.expand(),super.push(t)}unshift(t){super.isFull()&&this.expand(),super.unshift(t)}expand(){let t=this.capacity*2,e=new Array(t),n=this.length();for(let o=0;oe===!0)}rowMajorBatch(t,e=!0){return new SN(this,t,e)}columnMajorBatch(t,e=!0,n=xN){return this.rowMajorBatch(t,e).map(s=>mR(s,n))}concatenate(t,e){return new Hb(AN([this,t]),e)}take(t){return t<0||t==null?this:new IN(this,t)}skip(t){return t<0||t==null?this:new CN(this,t)}prefetch(t){return new qb(this,t)}shuffle(t,e){return new _N(this,t,e)}serial(){return new wN(this)}},yN=class extends Je{constructor(t){super(),this.items=t,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let t=this.items[this.trav];return this.trav++,{value:hR(t),done:!1}}},bN=class extends Je{constructor(t){super(),this.nextFn=t}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(t){throw t.message=`Error thrown while iterating through a dataset: ${t.message}`,t}}},wN=class extends Je{constructor(t){super(),this.upstream=t,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()}},CN=class extends Je{constructor(t,e){super(),this.upstream=t,this.maxCount=e,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()}},SN=class extends Je{constructor(t,e,n=!0){super(),this.upstream=t,this.batchSize=e,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(){let t=[];for(;t.length0?{value:t,done:!1}:{value:null,done:!0};t.push(e.value)}return{value:t,done:!1}}},vN=class extends Je{constructor(t,e){super(),this.upstream=t,this.predicate=e,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(;;){let t=await this.upstream.next();if(t.done||this.predicate(t.value))return t;vt(t.value)}}},NN=class extends Je{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> Map`}async next(){let t=await this.upstream.next();if(t.done)return{value:null,done:!0};let e=go.getTensorsInContainer(t.value),n=this.transform(t.value),o=go.getTensorsInContainer(n);for(let s of e)go.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},TN=class extends Je{constructor(t,e){super(),this.upstream=t,this.handler=e,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(t){if(!this.handler(t))return{value:null,done:!0}}}},Ub=class extends Je{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let t=await this.upstream.next();if(t.done)return{value:null,done:!0};let e=go.getTensorsInContainer(t.value),n=await this.transform(t.value),o=go.getTensorsInContainer(n);for(let s of e)go.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},kc=class extends Je{constructor(){super(),this.outputQueue=new Tc,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},kN=class extends kc{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let t=await this.upstream.next();if(t.done)return!1;let e=go.getTensorsInContainer(t.value),n=this.transform(t.value),o=go.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let s of e)go.isTensorInList(s,o)||s.dispose();return!0}},Hb=class extends Je{constructor(t,e){super(),this.baseErrorHandler=e,this.lastRead=null,this.iterator=null,this.moreIterators=t}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(t){if(await t,this.iterator==null){let n=await this.moreIterators.next();if(n.done)return{value:null,done:!0};this.iterator=n.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let e=await this.iterator.next();return e.done?(this.iterator=null,this.readFromChain(t)):e}},fl;(function(r){r[r.FAIL=0]="FAIL",r[r.SHORTEST=1]="SHORTEST",r[r.LONGEST=2]="LONGEST"})(fl||(fl={}));var EN=class extends Je{constructor(t,e=fl.FAIL){super(),this.iterators=t,this.mismatchMode=e,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(t){await t;let e=0,n=0;function o(i){return i instanceof Je?{value:i.next().then(u=>(e++,u.done&&n++,u.value)),recurse:!1}:{value:null,recurse:!0}}let s=await Wb(this.iterators,o);if(e===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case fl.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case fl.SHORTEST:return{value:null,done:!0};case fl.LONGEST:default:}return this.count++,{value:s,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},qb=class extends Je{constructor(t,e){super(),this.upstream=t,this.bufferSize=e,this.buffer=new jf(e)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let t=this.upstream.next();this.buffer.push(t)}}next(){return this.refill(),this.buffer.shift()}},_N=class extends qb{constructor(t,e,n){super(t,e),this.upstream=t,this.windowSize=e,this.upstreamExhausted=!1,this.random=gR.alea(n||y.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(t){return Math.floor(this.random()*t)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let t=this.chooseIndex(),e=await this.buffer.shuffleExcise(t);if(e.done)this.upstreamExhausted=!0;else return this.refill(),e}return{value:null,done:!0}}};var Js=class{constructor(){this.size=null}batch(t,e=!0){let n=this;y.assert(t>0,()=>`batchSize needs to be positive, but it is ${t}`);let o;return this.size===1/0||this.size==null?o=this.size:e?o=Math.ceil(this.size/t):o=Math.floor(this.size/t),kn(async()=>(await n.iterator()).columnMajorBatch(t,e,W7),o)}concatenate(t){let e=this,n;return this.size===1/0||t.size===1/0?n=1/0:this.size!=null&&t.size!=null?n=this.size+t.size:n=null,kn(async()=>(await e.iterator()).concatenate(await t.iterator()),n)}filter(t){let e=this,n;return this.size===1/0?n=1/0:n=null,kn(async()=>(await e.iterator()).filter(o=>B(()=>t(o))),n)}async forEachAsync(t){return(await this.iterator()).forEachAsync(t)}map(t){let e=this;return kn(async()=>(await e.iterator()).map(n=>B(()=>t(n))),this.size)}mapAsync(t){let e=this;return kn(async()=>(await e.iterator()).mapAsync(t),this.size)}prefetch(t){if(t==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");let e=this;return kn(async()=>(await e.iterator()).prefetch(t),this.size)}repeat(t){let e=this,n;return this.size!=null&&t>0?n=this.size*t:t===0?n=0:this.size!=null&&(t===void 0||t<0)?n=1/0:n=null,kn(async()=>{let o=Lh(async()=>({value:await e.iterator(),done:!1}));return xR(o.take(t))},n)}skip(t){let e=this,n;return this.size!=null&&t>=0&&this.size>=t?n=this.size-t:this.size!=null&&(this.size(await e.iterator()).skip(t),n)}shuffle(t,e,n=!0){if(t==null||t<0)throw this.size==null?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)`);let o=this,s=bR.alea(e||y.now().toString());return kn(async()=>{let i=s.int32();return n&&(i+=s.int32()),(await o.iterator()).shuffle(t,i.toString())},this.size)}take(t){let e=this,n;return this.size!=null&&this.size>t?n=t:this.size!=null&&this.size<=t?n=this.size:n=null,kn(async()=>(await e.iterator()).take(t),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()}};Js.MAX_BUFFER_SIZE=1e4;function kn(r,t=null){return new class extends Js{constructor(){super(...arguments),this.size=t}async iterator(){return r()}}}function wR(r){return kn(async()=>AN(r),r.length)}function CR(r){if(!vu(r))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(r))for(let e=0;e{let e=await Wb(r,n=>{if(n instanceof Js)return{value:n.iterator(),recurse:!1};if(vu(n))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return yR(e,fl.SHORTEST)},t)}function W7(r){if(r===null)return null;let t=r[0];return dR(t)?{value:U7(r),recurse:!1}:{value:null,recurse:!0}}function U7(r){if(r.length===0)throw new Error("Can't make a batch of zero elements.");return r[0]instanceof Ft?nr(r):ur(r)}var Xf=class extends Js{constructor(t){super(),this.input=t}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` `).map(o=>(o.endsWith("\r")&&(o=o.slice(0,-1)),o))}};var Kb='"',Mh=Symbol("out"),IR=Symbol("field"),jb=Symbol("quote"),$N=Symbol("quoteafterquote"),SR=Symbol("quoteinquote"),Yf=class extends Js{constructor(t,e){super(),this.input=t,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new Xf(t),e||(e={}),this.hasHeader=e.hasHeader!==!1,this.fullColumnNames=e.columnNames,this.columnConfigs=e.columnConfigs,this.configuredColumnsOnly=e.configuredColumnsOnly,e.delimWhitespace?(y.assert(e.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=e.delimiter?e.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let t=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!t)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&t&&y.assert(t.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 ("+t.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=t);let e=this.fullColumnNames.reduce((o,s)=>(o[s]=o[s]+1||1,o),{}),n=Object.keys(e).filter(o=>e[o]>1);if(y.assert(n.length===0,()=>"Duplicate column names found: "+n.toString()),this.columnConfigs){for(let o of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(o)===-1)throw new Error('The key "'+o+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let e=await(await this.base.iterator()).next();if(e.done)throw new Error("No data was found for CSV parsing.");let n=e.value;return this.parseRow(n,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let t=await this.base.iterator();return this.hasHeader&&(t=t.skip(1)),t.map(e=>this.makeDataElement(e))}makeDataElement(t){let e=this.parseRow(t),n={},o={};for(let s=0;s14||!Number.isInteger(e))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=t.numFramesPerSpectrogram||43,this.sampleRateHz=t.sampleRateHz,this.columnTruncateLength=t.columnTruncateLength||this.fftSize,this.audioTrackConstraints=t.audioTrackConstraints,this.smoothingTimeConstant=t.smoothingTimeConstant||0,this.includeSpectrogram=t.includeSpectrogram!==!1,this.includeWaveform=t.includeWaveform===!0,!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(t={}){if(!z().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let e=new Zf(t);return await e.start(),e}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(n){throw new Error(`Error thrown while initializing video stream: ${n.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let t=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new t,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let e=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,e.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 t,e,n=await this.getAudioData();if(this.includeSpectrogram){let o=this.flattenQueue(n.freqDataQueue);t=this.getTensorFromAudioDataArray(o,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let o=this.flattenQueue(n.timeDataQueue);e=this.getTensorFromAudioDataArray(o,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:t,waveform:e},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let t=[],e=[],n=0;return new Promise(o=>{let s=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&o({freqDataQueue:t,timeDataQueue:e}),t.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),e.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(s),o({freqDataQueue:t,timeDataQueue:e}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&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(t){let e=t[0].length,n=new Float32Array(t.length*e);return t.forEach((o,s)=>n.set(o,s*e)),n}getTensorFromAudioDataArray(t,e){let n=new Float32Array(y.sizeFromShape(e));return n.set(t,n.length-t.length),ur(n,e)}};var Jf=class extends Je{constructor(t,e){if(super(),this.webcamVideoElement=t,this.webcamConfig=e,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Me([0],"int32"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,o=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,s=(1-n)/2,i=(1-o)/2,a=s+n,u=o+i;this.cropBox=Vs([i,s,u,a],[1,4])}else this.cropBox=Vs([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(t,e={}){if(!z().get("IS_BROWSER"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!t){if(t=document.createElement("video"),!e.resizeWidth||!e.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");t.width=e.resizeWidth,t.height=e.resizeHeight}let n=new Jf(t,e);return await n.start(),n}async start(){this.webcamConfig.facingMode&&y.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`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(t){throw t.message=`Error thrown while initializing video stream: ${t.message}`,t}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(t){console.log(t),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(t=>{this.webcamVideoElement.onloadedmetadata=()=>{t()}})}async next(){if(this.isClosed)return{value:null,done:!0};let t;try{t=nx.fromPixels(this.webcamVideoElement)}catch(e){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(e)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(t),done:!1}}catch(e){throw new Error(`Error thrown cropping the video: ${e.message}`)}finally{t.dispose()}else return{value:t,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(t){return B(()=>{let e=rr(J(t,"float32"),0),n;n=Gs.cropAndResize(e,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let o=n.shape;return R(n,o.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.")}};var Qf=class{};var zh=class extends Je{split(t){return new DN(this,t)}},DN=class extends zh{constructor(t,e){super(),this.upstream=t,this.impl=new RN(t,e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},RN=class extends kc{constructor(t,e){super(),this.upstream=t,this.separator=e,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let t=await this.upstream.next();if(t.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let e=t.value.split(this.separator);e[0]=this.carryover+e[0];for(let n of e.slice(0,-1))this.outputQueue.push(n);return this.carryover=e[e.length-1],!0}};var Xb=class extends Je{decodeUTF8(){return new FN(this)}},FN=class extends zh{constructor(t){super(),this.upstream=t,this.impl=new ON(t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},ON=class extends kc{constructor(t){if(super(),this.upstream=t,z().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:e}=gN();this.decoder=new e("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let t=await this.upstream.next(),e;if(t.done)return!1;e=t.value;let n;return z().get("IS_BROWSER")?n=this.decoder.decode(e,{stream:!0}):n=this.decoder.write(Buffer.from(e.buffer)),this.outputQueue.push(n),!0}};var td=class extends Xb{constructor(t,e={}){super(),this.file=t,this.options=e,y.assert(t instanceof Uint8Array||(z().get("IS_BROWSER")?t instanceof File||t instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=e.offset||0,this.chunkSize=e.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((e,n)=>{let o=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,o)));else{let s=new FileReader;s.onload=a=>{let u=s.result;if(u instanceof ArrayBuffer&&(u=new Uint8Array(u)),!(u instanceof Uint8Array))return n(new TypeError("FileReader returned unknown type."));e(u)},s.onabort=a=>n(new Error("Aborted")),s.onerror=a=>n(new Error(a.type));let i=this.file.slice(this.offset,o);s.readAsArrayBuffer(i)}this.offset=o}),done:!1}}};async function vR(r,t={},e){let n,o;typeof r=="string"?n=r:(n=r.url,o=H7(r));let s=await(e||y.fetch)(n,o);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new td(i,t)}else throw new Error(s.statusText)}var H7=r=>({method:r.method,headers:r.headers,body:r.body,mode:r.mode,credentials:r.credentials,cache:r.cache,redirect:r.redirect,referrer:r.referrer,integrity:r.integrity});function Yb(r){return typeof r=="string"&&r.slice(0,7)==="file://"}var ed=class extends Qf{constructor(t,e={}){super(),this.input=t,this.options=e}async iterator(){if(Yb(this.input)&&z().get("IS_NODE")){let t=Zb();this.input=t.readFileSync(this.input.slice(7))}return new td(this.input,this.options)}};var rd=class extends Qf{constructor(t,e={}){super(),this.url=t,this.fileOptions=e}async iterator(){return Yb(this.url)?new ed(this.url,this.fileOptions).iterator():vR(this.url,this.fileOptions)}};function NR(r,t={}){return new Yf(new rd(r),t)}function TR(r){let t=Lh(r);return kn(async()=>t)}function kR(r){return kn(async()=>{let t=await r();return Lh(()=>t.next())})}async function ER(r,t){return Jf.create(r,t)}async function _R(r){return Zf.create(r)}var PN="4.0.0";function tt(r,t){Array.isArray(r)||(r=[r]),r.forEach(e=>{e!=null&&y.assert(e.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var q7=Ur.whereImpl,Nu=class extends zo{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new ra(this,Pn())}nextDataId(){return Nu.nextDataId++}write(t,e,n){this.firstUse&&(this.firstUse=!1,z().get("IS_NODE")&&v.warn(` ============================ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, visit https://github.com/tensorflow/tfjs-node for more details. -============================`));let o={id:this.nextDataId()};return this.data.set(o,{values:t,dtype:n,refCount:1}),o}makeTensorInfo(t,e,n){let o;if(e==="string"&&n!=null&&n.length>0&&y.isString(n[0])){let s=n.map(i=>y.encodeString(i));o=this.write(s,t,e)}else o=this.write(n,t,e);return{dataId:o,shape:t,dtype:e}}refCount(t){return this.data.has(t)?this.data.get(t).refCount:0}incRef(t){let e=this.data.get(t);e.refCount++}decRef(t){if(this.data.has(t)){let e=this.data.get(t);e.refCount--}}move(t,e,n,o,s){this.data.set(t,{values:e,dtype:o,refCount:s})}numDataIds(){return this.data.numDataIds()}async read(t){return this.readSync(t)}readSync(t){let{dtype:e,complexTensorInfos:n}=this.data.get(t);if(e==="complex64"){let o=this.readSync(n.real.dataId),s=this.readSync(n.imag.dataId);return v.mergeRealAndImagArrays(o,s)}return this.data.get(t).values}bufferSync(t){let e=this.readSync(t.dataId);if(t.dtype==="string")try{let n=e.map(o=>y.decodeString(o));return wt(t.shape,t.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return wt(t.shape,t.dtype,e)}makeOutput(t,e,n){return Pn().makeTensorFromTensorInfo(this.makeTensorInfo(e,n,t),this)}disposeData(t,e=!1){if(this.data.has(t)){if(this.data.get(t).refCount--,!e&&this.data.get(t).refCount>0)return!1;let{complexTensorInfos:n}=this.data.get(t);n!=null&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(t)}return!0}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}async time(t){let e=y.now();return t(),{kernelMs:y.now()-e}}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(t){tt([t],"where");let e=this.readSync(t.dataId);return q7(t.shape,e)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};Nu.nextDataId=0;var mw={};Wt(mw,{addImpl:()=>zN,bincountImpl:()=>sd,bincountReduceImpl:()=>Jb,castImpl:()=>MN,ceilImpl:()=>BN,concatImpl:()=>Ec,equalImpl:()=>VN,expImpl:()=>WN,expm1Impl:()=>HN,floorImpl:()=>qN,gatherNdImpl:()=>Qb,gatherV2Impl:()=>tw,greaterEqualImpl:()=>jN,greaterImpl:()=>KN,lessEqualImpl:()=>YN,lessImpl:()=>XN,linSpaceImpl:()=>ew,logImpl:()=>ZN,maxImpl:()=>rw,maximumImpl:()=>JN,minimumImpl:()=>QN,multiplyImpl:()=>Bh,negImpl:()=>tT,notEqualImpl:()=>eT,prodImpl:()=>rT,raggedGatherImpl:()=>nw,raggedRangeImpl:()=>ow,raggedTensorToTensorImpl:()=>sw,rangeImpl:()=>Ac,rsqrtImpl:()=>nT,scatterImpl:()=>dl,sigmoidImpl:()=>sF,simpleAbsImpl:()=>LN,sliceImpl:()=>$c,sparseFillEmptyRowsImpl:()=>iw,sparseReshapeImpl:()=>aw,sparseSegmentReductionImpl:()=>ld,sqrtImpl:()=>lF,squaredDifferenceImpl:()=>sT,stridedSliceImpl:()=>lw,stringNGramsImpl:()=>Dc,stringSplitImpl:()=>Rc,stringToHashBucketFastImpl:()=>Fc,subImpl:()=>aT,tileImpl:()=>uw,topKImpl:()=>cw,transposeImpl:()=>id,uniqueImpl:()=>pw});function LN(r){let t=new Float32Array(r.length);for(let e=0;e{let{x:t}=r.inputs,e=r.backend;tt(t,"abs");let n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId).values;return n=LN(o),e.makeOutput(n,t.shape,t.dtype)},$R={kernelName:ii,backendName:"cpu",kernelFunc:K7};function Qt(r){return(t,e,n,o,s)=>{let i=v.assertAndGetBroadcastShape(t,e),a=i.length,u=y.computeStrides(i),l=y.sizeFromShape(i),c=y.getTypedArrayFromDType(s,l),p=t.length,m=e.length,f=y.computeStrides(t),d=y.computeStrides(e),h=v.getBroadcastDims(t,i),g=v.getBroadcastDims(e,i);if(h.length+g.length===0)for(let x=0;xw[A]=0);let C=y.locToIndex(w,p,f),N=b.slice(-m);g.forEach(A=>N[A]=0);let _=y.locToIndex(N,m,d);c[x]=r(n[C],o[_])}return[c,i]}}function wr(r){let{inputs:t,backend:e}=r,{real:n,imag:o}=t,s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,a=e.makeTensorInfo(n.shape,"complex64"),u=e.data.get(a.dataId);return u.complexTensorInfos={real:e.makeTensorInfo(n.shape,"float32",s),imag:e.makeTensorInfo(o.shape,"float32",i)},a}var DR={kernelName:pp,backendName:"cpu",kernelFunc:wr};function nd(r,t,e="float32"){if(e==="complex64"){let o=nd(r,t,"float32"),s=nd(r,t,"float32");return wr({inputs:{real:o,imag:s},backend:r})}let n=y.makeZerosTypedArray(y.sizeFromShape(t),e);return r.makeTensorInfo(t,e,n)}function Kr(r){let{inputs:t,backend:e}=r,{x:n}=t;return e.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}var RR={kernelName:co,backendName:"cpu",kernelFunc:Kr};function Ao(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.data.get(n.dataId).complexTensorInfos.real,s=e.data.get(o.dataId).values;return e.makeTensorInfo(o.shape,o.dtype,s)}var FR={kernelName:Rp,backendName:"cpu",kernelFunc:Ao};function MN(r,t,e,n){if(n==="int32"){let o=Int32Array.from(r);return[t,"int32",o]}if(n==="bool"){let o=y.toTypedArray([0],e),[s,i]=Qt((a,u)=>a!==u?1:0)(t,[],r,o,"bool");return[i,"bool",s]}throw new Error(`Error in Cast: failed to cast ${e} to ${n}`)}function $o(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s==="complex64"){if(o.dtype==="complex64")return Kr({inputs:{x:o},backend:e});let c=nd(e,o.shape,o.dtype),p=$o({inputs:{x:o},backend:e,attrs:{dtype:"float32"}}),m=wr({inputs:{real:p,imag:c},backend:e});return e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),m}if(o.dtype==="complex64"){let c=Ao({inputs:{input:o},backend:e}),p=$o({inputs:{x:c},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(c),p}if(!y.hasEncodingLoss(o.dtype,s)){let c=Kr({inputs:{x:o},backend:e});return{dataId:c.dataId,shape:c.shape,dtype:s}}let i=e.data.get(o.dataId).values,[a,u,l]=MN(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}var OR={kernelName:lo,backendName:"cpu",kernelFunc:$o};function oe(r,t,e,n){return e==null?({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;tt([i,a],r);let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=i.dtype==="string"?v.fromUint8ToStringArray(l):l,m=i.dtype==="string"?v.fromUint8ToStringArray(c):c,f=n||i.dtype,[d,h]=t(i.shape,a.shape,p,m,f);return u.makeTensorInfo(h,f,d)}:({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;if(i.dtype==="complex64"||a.dtype==="complex64"){let l=$o({inputs:{x:i},backend:u,attrs:{dtype:"complex64"}}),c=u.data.get(l.dataId),p=c.complexTensorInfos.real,m=c.complexTensorInfos.imag,f=u.data.get(p.dataId).values,d=u.data.get(m.dataId).values,h=$o({inputs:{x:a},backend:u,attrs:{dtype:"complex64"}}),g=u.data.get(h.dataId),x=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,w=u.data.get(x.dataId).values,C=u.data.get(b.dataId).values,[N,_,A]=e(i.shape,a.shape,f,d,w,C),$=u.makeTensorInfo(A,"float32",N),F=u.makeTensorInfo(A,"float32",_),P=wr({inputs:{real:$,imag:F},backend:u});return u.disposeIntermediateTensorInfo(l),u.disposeIntermediateTensorInfo(h),u.disposeIntermediateTensorInfo($),u.disposeIntermediateTensorInfo(F),P}else{let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=n||i.dtype,[m,f]=t(i.shape,a.shape,l,c,p);return u.makeTensorInfo(f,p,m)}}}function od(r){return(t,e,n,o,s,i)=>{let a=v.assertAndGetBroadcastShape(t,e),u=y.sizeFromShape(a),l=a.length,c=y.computeStrides(a),p=y.getTypedArrayFromDType("float32",u),m=y.getTypedArrayFromDType("float32",u),f=v.getBroadcastDims(t,a),d=v.getBroadcastDims(e,a),h=v.mergeRealAndImagArrays(n,o),g=v.mergeRealAndImagArrays(s,i),x=t.length,b=y.computeStrides(t),w=e.length,C=y.computeStrides(e);if(f.length+d.length===0)for(let N=0;NA[G]=0);let $=y.locToIndex(A,x,b),F=_.slice(-w);d.forEach(G=>F[G]=0);let P=y.locToIndex(F,w,C),V=r(h[$*2],h[$*2+1],g[P*2],g[P*2+1]);p[N]=V.real,m[N]=V.imag}return[p,m,a]}}var zN=Qt((r,t)=>r+t),j7=od((r,t,e,n)=>({real:r+e,imag:t+n})),Ki=oe(Zn,zN,j7),PR={kernelName:Zn,backendName:"cpu",kernelFunc:Ki};function sd(r,t,e,n,o){let s=y.sizeFromShape(n),i=y.makeZerosTypedArray(o,e);for(let a=0;a=o||(s>0?i[u]+=t[a]:i[u]+=1)}return i}function Jb(r,t,e,n=!1){let o=r.shape[0],s=r.shape[1],i=wt([o,e],t.dtype);for(let a=0;a=e||(n?i.set(1,a,l):t.size>0?i.set(i.get(a,l)+t.get(a,u),a,l):i.set(i.get(a,l)+1,a,l))}return i}function yn(r){return(t,e,n)=>{let o=y.getTypedArrayFromDType(e,t.length);for(let s=0;s{let{x:i}=n;if(tt(i,r),i.dtype==="string"||e==="string")throw new Error("unaryKernelFunc does not support string input/output");let a=s,u=a.data.get(i.dataId).values,l=y.sizeFromShape(i.shape),c=e||i.dtype,p=y.getArrayFromDType(c,l);for(let m=0;m{let{x:i}=n;if(tt(i,r),i.dtype==="string"||e==="string")throw new Error("unaryKernelFunc does not support string input/output");let a=s,u=a.data.get(i.dataId).values,l=e||i.dtype,c=t(u,l,o);return a.makeTensorInfo(i.shape,l,c)}}var BN=yn(r=>Math.ceil(r)),X7=Do(qo,BN),LR={kernelName:qo,backendName:"cpu",kernelFunc:X7};function Ec(r,t,e,n){let o=y.getArrayFromDType(e,y.sizeFromShape(t));if(n&&e!=="string"){let s=0;r.forEach(i=>{let a=y.sizeFromShape(i.shape);o.set(i.vals,s),s+=a})}else{let s=0;r.forEach(i=>{let a=e==="string"?v.fromUint8ToStringArray(i.vals):i.vals,u=0;for(let l=0;lr===t?1:0),GN=oe(xa,VN,null,"bool"),MR={kernelName:xa,backendName:"cpu",kernelFunc:GN};var WN=yn(r=>Math.exp(r)),UN=Do(es,WN,"float32"),zR={kernelName:es,backendName:"cpu",kernelFunc:UN};var HN=yn(r=>Math.expm1(r)),Y7=Do(ya,HN),BR={kernelName:ya,backendName:"cpu",kernelFunc:Y7};var qN=yn(r=>Math.floor(r)),Z7=Do(rs,qN),VR={kernelName:rs,backendName:"cpu",kernelFunc:Z7};function Qb(r,t,e,n,o,s,i,a,u){let l=wt([n,s],e);for(let c=0;c=u/s)throw new Error(`Invalid indices: ${p} does not index into ${a}`);for(let f=0;fr>t?1:0),J7=oe(Ca,KN,null,"bool"),GR={kernelName:Ca,backendName:"cpu",kernelFunc:J7};var jN=Qt((r,t)=>r>=t?1:0),Q7=oe(ss,jN,null,"bool"),WR={kernelName:ss,backendName:"cpu",kernelFunc:Q7};var XN=Qt((r,t)=>rr<=t?1:0),eJ=oe(Ta,YN,null,"bool"),HR={kernelName:Ta,backendName:"cpu",kernelFunc:eJ};function ew(r,t,e){let n=(t-r)/(e-1),o=y.makeZerosTypedArray(e,"float32");o[0]=r;for(let s=1;sMath.log(r)),rJ=Do(as,ZN),qR={kernelName:as,backendName:"cpu",kernelFunc:rJ};function rw(r,t,e,n){let o=y.getTypedArrayFromDType(n,y.sizeFromShape(e));for(let s=0;sa)&&(a=l)}o[s]=a}return o}var JN=Qt((r,t)=>Math.max(r,t)),nJ=oe(us,JN),KR={kernelName:us,backendName:"cpu",kernelFunc:nJ};var QN=Qt((r,t)=>Math.min(r,t)),oJ=oe(fs,QN),jR={kernelName:fs,backendName:"cpu",kernelFunc:oJ};var Bh=Qt((r,t)=>r*t),sJ=od((r,t,e,n)=>({real:r*e-t*n,imag:r*n+t*e})),_c=oe(hs,Bh,sJ),XR={kernelName:hs,backendName:"cpu",kernelFunc:_c};function tT(r,t,e){let n=y.createScalarValue(-1,e);return Bh([],t,n,r,e)}function iJ(r){let{inputs:t,backend:e}=r,{x:n}=t;tt(n,"neg");let o=e.data.get(n.dataId).values,[s,i]=tT(o,n.shape,n.dtype);return e.makeTensorInfo(i,n.dtype,s)}var YR={kernelName:pi,backendName:"cpu",kernelFunc:iJ};var eT=Qt((r,t)=>r!==t?1:0),aJ=oe(Da,eT,null,"bool"),ZR={kernelName:Da,backendName:"cpu",kernelFunc:aJ};function id(r,t,e,n,o){let s=t.length,i=y.sizeFromShape(t),a=y.computeStrides(t),u=y.computeStrides(o),l=y.getTypedArrayFromDType(e,y.sizeFromShape(o));for(let c=0;ce.disposeIntermediateTensorInfo(b)),e.makeTensorInfo(x,g,d)}var QR={kernelName:ws,backendName:"cpu",kernelFunc:lJ};function uJ(r,t,e){r.forEach((n,o)=>{if(n<0||n>=e){let s=y.indexToLoc(o,t.length,y.computeStrides(t)).join(",");throw new Error(`indices[${s}] = ${n} is not in [0, ${e})`)}})}function cJ(r,t){for(let e=0;eo)throw new Error("Ragged splits must not point past values");for(let s=1;sn[s])throw new Error("Ragged splits must be sorted in ascending order")}}function pJ(r,t,e,n){let o=[],s=0,i=t.length-1+e.length,a=new Array(i).fill(null).map(()=>[0]);cJ(e,n);let u=1;for(let l=0;l=0){let h=a[d],g=h[h.length-1]-f[c];for(let x=c;xo[i]=s)}return t}function tF(r,t){let e=r.slice(0,t);for(;e.length1)throw new Error("starts must be a scalar or vector");if(o.length>1)throw new Error("limits must be a scalar or vector");if(i.length>1)throw new Error("deltas must be a scalar or vector");let a=t.length===0,u=o.length===0,l=i.length===0,c=[];a||c.push(t[0]),u||c.push(o[0]),l||c.push(i[0]);for(let g=1;g0&&bx)C=0;else if(C=Math.ceil(Math.abs((b-x)/w)),C>eF)throw new Error(`Requires ((limit - start) / delta) <= ${eF}`);m[g+1]=m[g]+C}let f=m[p],d=y.getArrayFromDType(e,f),h=0;for(let g=0;gn&&(n=s)}return n}static getMaxWidthValueRowID(t){let e=t.length;if(e===0)return 0;let n=0,o=t[0],s=0;for(let i=1;i"Final length of result must be equal to firstDimension."),s}calculateOutputIndexRowSplit(t,e,n,o){let s=t.length,i=[];for(let a=0;a0&&i.length!==t[s-1])throw new Error("Invalid row split size.");return i}calculateOutputIndexValueRowID(t,e,n,o){let s=t.length,i=[];if(s===0)return[];let a=0,u=t[0];if(u>=e.length)throw new Error(`Got currentValueRowId=${u}, which is not less than ${e.length}`);let l=e[u];i.push(l);for(let c=1;c=0&&(++a,a=e.length)throw new Error(`Got nextValueRowId=${p} which is not less than ${e.length}`);l=e[p]}i.push(l)}if(i.length!==t.length)throw new Error("Invalid row ids.");return i}calculateOutputIndex(t,e,n,o){let s=this.getRowPartitionTensor(t),i=this.getRowPartitionTypeByDimension(t);switch(i){case Ro.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,e,n,o);case Ro.ROW_SPLITS:if(s.length-1>e.length)throw new Error(`Row partition size is greater than output size: ${s.length-1} > ${e.length}`);return this.calculateOutputIndexRowSplit(s,e,n,o);default:throw new Error(`Unsupported partition type: ${Ro[i]}`)}}getFirstDimensionSize(){let t=this.rowPartitionValues[0];if(this.rowPartitionTypes.length===0)throw new Error("No row_partition_types given.");let e=this.rowPartitionTypes[0];switch(e){case Ro.FIRST_DIM_SIZE:return t[0];case Ro.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Ro.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Ro[e]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error("Invalid first partition input. Tensor requires at least one element.");let e=this.getFirstDimensionSize(),n=this.calculateOutputSize(e),o=new Array(this.raggedRank+1);o[o.length-1]=1;for(let u=o.length-2;u>=0;--u)o[u]=o[u+1]*n[u+1];let s=nF(n,!1),i=y.getArrayFromDType(this.valuesDType,y.sizeFromShape(s));if(o[0]*n[0]>0){let u=this.calculateFirstParentOutputIndex(e,o[0],n[0]);for(let l=1;l<=this.raggedRank;++l)u=this.calculateOutputIndex(l-1,u,o[l],n[l]);this.setOutput(this.raggedRank,u,i,s)}return[s,i]}setOutput(t,e,n,o){if(n.length===0)return;let s=this.values,i=n,a=o.slice();a=a.slice(t+1);let u=y.sizeFromShape(a),l=e.length,c=this.defaultValue;if(c.length!==u&&c.length!==1){let d=this.defaultValueShape;B(()=>{let h=R(c,d);c=Ri(h,a).dataSync()})}let p=0,m=0,f=0;for(let d=0;d<=l;++d){let h=d=l){let g=n.length;h=Math.floor(g/u)}if(h>f)if(this.defaultValue.length===1)i.subarray(f*u,h*u).fill(this.defaultValue[0]),f=h;else for(;h>f;){let g=i.slice(f*u);rF(g,c,u),++f}h<0?(p=d+1,m=f):(p=d,m=f,f=m+1)}}};function rF(r,t,e){for(let n=0;n= 0`);if(n<-1)throw new Error(`Dimension ${n} must be >= -1`);n=-1}e.push(n)}return e}function sw(r,t,e,n,o,s,i,a,u,l){return new ad(r,t,e,n,o,s,i,a,u,l).compute()}function Ac(r,t,e,n){let o=r===t,s=r1;if(o||s||i)return y.makeZerosTypedArray(0,n);let a=Math.abs(Math.ceil((t-r)/e)),u=y.makeZerosTypedArray(a,n);t1/Math.sqrt(r)),hJ=Do(ks,nT),oF={kernelName:ks,backendName:"cpu",kernelFunc:hJ};function dl(r,t,e,n,o,s,i,a,u,l){let c=[n/o,o],p=r.values,m=t.values;if(n===0)return wt(e,t.dtype);let f=wt(c,t.dtype);typeof u=="string"||typeof u=="number"?f.values.fill(u):typeof u=="boolean"&&f.values.fill(+u);for(let d=0;d=n/o)throw new Error(`Invalid indices: ${h} does not index into ${e}`);for(let x=0;x1/(1+Math.exp(-r))),oT=kt(_s,r=>1/(1+Math.exp(-r))),iF={kernelName:_s,backendName:"cpu",kernelFunc:oT};function $c(r,t,e,n,o){let s=Le.isSliceContinous(n,t,e),i=y.sizeFromShape(e),a=y.computeStrides(n);if(s){let p=Le.computeFlatOffset(t,a);return o==="string"?r.slice(p,p+i):r.subarray(p,p+i)}let u=o==="string"?v.fromUint8ToStringArray(r):r,l=wt(n,o,u),c=wt(e,o);for(let p=0;pd+t[h]);c.set(l.get(...f),...m)}return o==="string"?v.fromStringArrayToUint8(c.values):c.values}function Fo(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n;tt(o,"slice");let[a,u]=Le.parseSliceParams(o,s,i);Le.assertParamsValid(o,a,u);let l=e.data.get(o.dataId).values,c=$c(l,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,c)}var aF={kernelName:gi,backendName:"cpu",kernelFunc:Fo};function iw(r,t,e,n,o,s,i){let a=t[0],u=s[0],l=new Array(u),c=new Array(a),p=t[1];if(u===0){if(a!==0)throw new Error(v.getSparseFillEmptyRowsIndicesDenseShapeMismatch(a));let g=y.getArrayFromDType(e,0),x=y.getArrayFromDType(o,0);return[g,[0,p],x,l,c]}let m=!0,f=0,d=new Array(u).fill(0);for(let g=0;g=u)throw new Error(v.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,x,u));++d[x],m=m&&x>=f,f=x}let h=!0;for(let g=0;g0&&(d[g]+=d[g-1])}if(h&&m){let g=r,x=n;for(let b=0;b0){f[m-1]=1;for(let g=m-2;g>=0;--g)f[g]=f[g+1]*n[g+1]}let d=[];if(a>0){d[a-1]=1;for(let g=a-2;g>=0;--g)d[g]=d[g+1]*u[g+1]}let h=y.getArrayFromDType(e,i*a);for(let g=0;g0?o[a-1]+1:0;if(p<0)throw new Error(v.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=t.slice();m[0]=p;let f=m.reduce((w,C)=>w*C,1),d=y.getArrayFromDType(e,f);if(a===0)return p>0&&d.fill(i),[d,m];if(p<=0)throw new Error(v.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let h=0,g=1,x=0,b=o[h];for(;;){let w=0;if(g=w)throw new Error(v.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(v.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>x&&d.fill(i,x*l,b*l);for(let C=h;C=u[0])throw new Error(v.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(C,n[C],u[0]));for(let _=0;_a)break}return xMath.sqrt(r)),gJ=kt(As,r=>Math.sqrt(r)),uF={kernelName:As,backendName:"cpu",kernelFunc:gJ};var sT=Qt((r,t)=>{let e=r-t;return e*e}),xJ=oe(Rs,sT),cF={kernelName:Rs,backendName:"cpu",kernelFunc:xJ};function lw(r,t,e,n){let o=wt(r,t.dtype);for(let s=0;s0?0:a-u),f=0;f+=l*this.leftPad.length;for(let b=0;bb.forEach(w=>h[g++]=w);for(let b=0;b0){x(t[m+p-1]);for(let b=0;b0){let u=e[0];if(u!==0)throw new Error(`First split value must be 0, got ${u}`);for(let l=1;l=u;if(c=c&&e[l]<=n,!c)throw new Error(`Invalid split value ${e[l]}, must be in [${u}, ${n}]`);u=e[l]}if(u!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${u}`)}let s=o-1,i=y.getArrayFromDType("int32",o);if(n===0||o===0){let u=new Array(n);for(let l=0;l<=s;++l)i[l]=0;return[u,i]}i[0]=0;for(let u=1;u<=s;++u){let l=e[u]-e[u-1],c=0;this.nGramWidths.forEach(p=>{c+=this.getNumNGrams(l,p)}),this.preserveShort&&l>0&&c===0&&(c=1),i[u]=i[u-1]+c}let a=new Array(i[s]);for(let u=0;u{let m=e[u+1]-e[u],f=this.getNumNGrams(m,p);this.createNGrams(t,l,a,c,f,p),c+=f}),this.preserveShort&&c===i[u]){let p=e[u+1]-e[u];if(p===0)continue;let m=p+2*this.padWidth,f=1;this.createNGrams(t,l,a,c,f,m)}}return[a,i]}};function Dc(r,t,e,n,o,s,i,a){return new iT(e,n,o,s,i,a).compute(r,t)}function yJ(r,t,e,n){if(!r.length)return;if(t.length===0){for(let s=0;sr-t),bJ=od((r,t,e,n)=>({real:r-e,imag:t-n})),Vh=oe(Fs,aT,bJ),pF={kernelName:Fs,backendName:"cpu",kernelFunc:Vh};function uw(r,t){let e=new Array(r.rank);for(let o=0;o{let e=t.value-r.value;return e===0?r.index-t.index:e};function mF(r,t,e=0,n=r.length-1){for(;n>e;){if(n-e>600){let a=n-e+1,u=t-e+1,l=Math.log(a),c=.5*Math.exp(2*l/3),p=.5*Math.sqrt(l*c*(a-c)/a)*Math.sign(u-a/2),m=Math.max(e,Math.floor(t-u*c/a+p)),f=Math.min(n,Math.floor(t+(a-u)*c/a+p));mF(r,t,m,f)}let o=r[t],s=e,i=n;for(y.swap(r,e,t),Gh(r[n],o)>0&&y.swap(r,e,n);s0;)i=i-1}Gh(r[e],o)===0?y.swap(r,e,i):(i=i+1,y.swap(r,i,n)),i<=t&&(e=i+1),t<=i&&(n=i-1)}}function cw(r,t,e,n,o){let s=t[t.length-1],[i,a]=[r.length/s,s],u=y.getTypedArrayFromDType(e,i*n),l=y.getTypedArrayFromDType("int32",i*n);for(let p=0;pd[w]={value:b,index:w}),n{for(let g=0;gnew Nu,1);var lT=kt(ts,r=>r>=0?r:Math.exp(r)-1),fF={kernelName:ts,backendName:"cpu",kernelFunc:lT};function uT(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n;tt([o],"leakyRelu");let i=y.sizeFromShape(o.shape),a=e.data.get(o.dataId).values,u=y.getTypedArrayFromDType("float32",i);for(let l=0;lr<0?t*r:r);function cT(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t;tt([n,o],"prelu");let s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,[a,u]=CJ(n.shape,o.shape,s,i,"float32");return e.makeTensorInfo(u,"float32",a)}var hF={kernelName:bs,backendName:"cpu",kernelFunc:cT};var pT=kt(Cs,r=>Math.max(0,r)),gF={kernelName:Cs,backendName:"cpu",kernelFunc:pT};var mT=kt(vs,r=>Math.min(Math.max(0,r),6)),xF={kernelName:vs,backendName:"cpu",kernelFunc:mT};function Oc(r,t,e,n,o){if(e==="linear")return Kr({inputs:{x:t},backend:r});if(e==="relu")return pT({inputs:{x:t},backend:r});if(e==="elu")return lT({inputs:{x:t},backend:r});if(e==="relu6")return mT({inputs:{x:t},backend:r});if(e==="prelu")return cT({inputs:{x:t,alpha:n},backend:r});if(e==="leakyrelu")return uT({inputs:{x:t},backend:r,attrs:{alpha:o}});if(e==="sigmoid")return oT({inputs:{x:t},backend:r});throw new Error(`Activation ${e} has not been implemented for the CPU backend.`)}function Yt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{shape:s}=n,i=y.sizeFromShape(o.shape),a=y.inferFromImplicitShape(s,i),u=y.sizeFromShape(a);y.assert(i===u,()=>`The new shape (${a}) has ${u} elements and the old shape (${o.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),e.incRef(o.dataId);let l=e.data.get(o.dataId);if(l.complexTensorInfos!=null){let c=l.complexTensorInfos.real,p=l.complexTensorInfos.imag;c.shape=a,p.shape=a}return{dataId:o.dataId,shape:a,dtype:o.dtype}}var yF={kernelName:di,backendName:"cpu",kernelFunc:Yt};function fT(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;tt([o,s],"matMul");let u=o.shape.length,l=s.shape.length,c=i?o.shape[u-2]:o.shape[u-1],p=a?s.shape[l-1]:s.shape[l-2],m=i?o.shape[u-1]:o.shape[u-2],f=a?s.shape[l-2]:s.shape[l-1],d=o.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=Vr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)).concat([m,f]);y.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${o.shape} and ${s.shape} and transposeA=${i} and transposeB=${a} must match.`);let C=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],_=Yt({inputs:{x:o},backend:e,attrs:{shape:C}}),A=Yt({inputs:{x:s},backend:e,attrs:{shape:N}}),$=i?_.shape[1]:_.shape[2],F=i?_.shape[2]:_.shape[1],P=a?A.shape[1]:A.shape[2],V=Math.max(g,x),G=e.data.get(_.dataId).values,W=e.data.get(A.dataId).values,q=y.computeStrides(_.shape),H=y.computeStrides(A.shape),[j,Y,Z]=i?[q[0],1,q[1]]:[q[0],q[1],1],[et,rt,ot]=a?[1,H[1],H[0]]:[H[1],1,H[0]],at=F*P,nt=wt([V,F,P],_.dtype),it=nt.values,dt=e.blockSize;for(let ht=0;htMath.acos(r)),CF={kernelName:oa,backendName:"cpu",kernelFunc:SJ};var vJ=kt(sa,r=>Math.acosh(r)),IF={kernelName:sa,backendName:"cpu",kernelFunc:vJ};function NJ(r){let{inputs:t,backend:e}=r,n=t;tt(t,"addN");let o=n.map(a=>e.data.get(a.dataId).values),s=wt(n[0].shape,n[0].dtype),i=s.values;for(let a=0;ab&&(b=N,w=C)}f[g]=w}return l.forEach(g=>e.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,"int32",f)}var TF={kernelName:Wo,backendName:"cpu",kernelFunc:EJ};function _J(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n;tt(o,"argMin");let i=y.parseAxisParam(s,o.shape),a=v.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Ve({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=v.getInnerMostAxes(i.length,u.shape.length)),i=[i[0]],v.assertAxesAreInnerMostDims("argMin",i,u.shape.length);let[c,p]=v.computeOutAndReduceShapes(u.shape,i),m=y.sizeFromShape(c),f=y.makeZerosTypedArray(m,"int32"),d=y.sizeFromShape(p),h=e.data.get(u.dataId).values;for(let g=0;ge.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,"int32",f)}var kF={kernelName:kl,backendName:"cpu",kernelFunc:_J};var AJ=kt(la,r=>Math.asin(r)),EF={kernelName:la,backendName:"cpu",kernelFunc:AJ};var $J=kt(ua,r=>Math.asinh(r)),_F={kernelName:ua,backendName:"cpu",kernelFunc:$J};var DJ=kt(ca,r=>Math.atan(r)),AF={kernelName:ca,backendName:"cpu",kernelFunc:DJ};var RJ=Qt((r,t)=>Math.atan2(r,t)),FJ=oe(ma,RJ),$F={kernelName:ma,backendName:"cpu",kernelFunc:FJ};var OJ=kt(pa,r=>Math.atanh(r)),DF={kernelName:pa,backendName:"cpu",kernelFunc:OJ};function ud(r,t,e,n,o,s){let i=o.strideHeight,a=o.strideWidth,u=o.dilationHeight,l=o.dilationWidth,c=o.effectiveFilterHeight,p=o.effectiveFilterWidth,m=o.padInfo.top,f=o.padInfo.left,d=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,h=wt(o.outShape,e),g=h.values,x=o.outShape[1]*o.outShape[2]*o.outShape[3],b=o.outShape[2]*o.outShape[3],w=o.outShape[3];for(let C=0;CY?Y=dt:s==="avg"&&(Z+=dt,et++)}if(isNaN(Y))break}let rt=G+W*w+A;g[rt]=s==="avg"?Z/et:Y}}}return h}function fw(r,t,e,n,o=!1,s=!1){let i=wt(n.outShape,"int32"),a=n.strideHeight,u=n.strideWidth,l=n.dilationHeight,c=n.dilationWidth,p=n.effectiveFilterHeight,m=n.effectiveFilterWidth,f=n.padInfo.top,d=n.padInfo.left,h=wt(t,e,r);for(let g=0;gP&&(P=j,o?V=s?((g*n.inHeight+G)*n.inWidth+q)*n.inChannels+x:(G*n.inWidth+q)*n.inChannels+x:V=W*m+H)}}i.set(V,g,b,_,x)}}return i}function dw(r,t,e,n,o,s){let i=o.strideDepth,a=o.strideHeight,u=o.strideWidth,l=o.dilationDepth,c=o.dilationHeight,p=o.dilationWidth,m=o.effectiveFilterDepth,f=o.effectiveFilterHeight,d=o.effectiveFilterWidth,h=o.padInfo.front,g=o.padInfo.top,x=o.padInfo.left,b=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,w=wt(o.outShape,e),C=w.values,N=o.outShape[1]*o.outShape[2]*o.outShape[3]*o.outShape[4],_=o.outShape[2]*o.outShape[3]*o.outShape[4],A=o.outShape[3]*o.outShape[4],$=o.outShape[4];for(let F=0;FEt?Et=We:s==="avg"&&(At+=We,Vt++),isNaN(Et))break}if(isNaN(Et))break}if(isNaN(Et))break}let Zt=bt+G;C[Zt]=s==="avg"?At/Vt:Et}}}}return w}function RF(r,t){let e=wt(t.outShape,"int32"),n=t.strideDepth,o=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,a=t.dilationHeight,u=t.dilationWidth,l=t.effectiveFilterDepth,c=t.effectiveFilterHeight,p=t.effectiveFilterWidth,m=t.padInfo.front,f=t.padInfo.top,d=t.padInfo.left;for(let h=0;h=W&&(W=ot,q=j*c*p+Z*c+rt)}}}e.set(q,h,x,N,F,g)}}}return e}function PJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;tt(o,"avgPool");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(v.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=v.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Kr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=ud(m,o.shape,o.dtype,f,c,"avg");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var FF={kernelName:Uo,backendName:"cpu",kernelFunc:PJ};function LJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;tt(o,"avgPool3d");let c=v.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=dw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,"avg");return e.makeTensorInfo(m.shape,"float32",m.values)}var OF={kernelName:El,backendName:"cpu",kernelFunc:LJ};function MJ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;tt([o,s],"avgPool3DGrad");let c=v.computePool3DInfo(s.shape,i,a,1,u,l),p=c.strideDepth,m=c.strideHeight,f=c.strideWidth,d=c.filterDepth,h=c.filterHeight,g=c.filterWidth,x=c.dilationDepth,b=c.dilationHeight,w=c.dilationWidth,C=c.effectiveFilterDepth,N=c.effectiveFilterHeight,_=c.effectiveFilterWidth,A=C-1-c.padInfo.front,$=_-1-c.padInfo.left,F=N-1-c.padInfo.top,P=wt(s.shape,"float32"),V=1/(d*h*g),G=e.bufferSync(o);for(let W=0;W=c.outDepth||Math.floor(nt)!==nt))for(let it=0;it=c.outHeight||Math.floor(dt)!==dt))for(let ht=0;ht<_;ht+=w){let bt=(rt+ht)/f;if(bt<0||bt>=c.outWidth||Math.floor(bt)!==bt)continue;ot+=G.get(W,nt,dt,bt,q)}}}P.set(ot*V,W,H,j,Y,q)}return e.makeTensorInfo(P.shape,P.dtype,P.values)}var PF={kernelName:lp,backendName:"cpu",kernelFunc:MJ};function zJ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;tt([o,s],"avgPoolGrad");let{filterSize:a,strides:u,pad:l}=n,c=v.computePool2DInfo(i.shape,a,u,1,l),p=c.strideHeight,m=c.strideWidth,f=c.filterHeight,d=c.filterWidth,h=c.dilationHeight,g=c.dilationWidth,x=c.effectiveFilterHeight,b=c.effectiveFilterWidth,w=b-1-c.padInfo.left,C=x-1-c.padInfo.top,N=wt(i.shape,"float32"),_=1/(f*d),A=e.data.get(o.dataId).values,$=wt(o.shape,"float32",A);for(let F=0;F=c.outHeight||Math.floor(Y)!==Y))for(let Z=0;Z=c.outWidth||Math.floor(et)!==et)continue;H+=$.get(F,Y,et,P)}}N.set(H*_,F,V,G,P)}return e.makeTensorInfo(N.shape,N.dtype,N.values)}var LF={kernelName:ap,backendName:"cpu",kernelFunc:zJ};function BJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,scale:s,offset:i,mean:a,variance:u}=t;y.assert(a.shape.length===u.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),y.assert(i==null||a.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),y.assert(s==null||a.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),tt([o,a,u,s,i],"batchNorm");let{varianceEpsilon:l}=n;l==null&&(l=.001);let c=e.data.get(o.dataId).values,p=e.data.get(a.dataId).values,m=e.data.get(u.dataId).values,f=s?e.data.get(s.dataId).values:new Float32Array([1]),d=i?e.data.get(i.dataId).values:new Float32Array([0]),h=new Float32Array(c.length),g=d.length,x=f.length,b=m.length,w=p.length,C=0,N=0,_=0,A=0;for(let $=0;$=g&&(C=0),N>=w&&(N=0),_>=x&&(_=0),A>=b&&(A=0);return e.makeTensorInfo(o.shape,o.dtype,h)}var MF={kernelName:os,backendName:"cpu",kernelFunc:BJ};function VJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;tt([o],"batchToSpaceND");let a=s.reduce((x,b)=>x*b),u=v.getReshaped(o.shape,s,a),l=v.getPermuted(u.length,s.length),c=v.getReshapedPermuted(o.shape,s,a),p=v.getSliceBeginCoords(i,s.length),m=v.getSliceSize(c,i,s.length),f=Yt({inputs:{x:o},backend:e,attrs:{shape:u}}),d=Ve({inputs:{x:f},backend:e,attrs:{perm:l}}),h=Yt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Fo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var zF={kernelName:ai,backendName:"cpu",kernelFunc:VJ};function GJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i}=n,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,l=sd(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var BF={kernelName:up,backendName:"cpu",kernelFunc:GJ};function WJ(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,a=v.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],"int32",Int32Array.from(a))}var VF={kernelName:cp,backendName:"cpu",kernelFunc:WJ};var UJ=kt(uo,(r,t)=>{let e=t;return r>e.clipValueMax?e.clipValueMax:r{let{x:t}=r.inputs,e=r.backend,n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId),s=o.complexTensorInfos.real,i=o.complexTensorInfos.imag,a=e.data.get(s.dataId).values,u=e.data.get(i.dataId).values;for(let l=0;lh.shape);v.assertParamsConsistent(i,s);let a=v.computeOutShape(t.map(h=>h.shape),s);if(y.sizeFromShape(a)===0)return e.makeTensorInfo(a,t[0].dtype,[]);let u=t.filter(h=>y.sizeFromShape(h.shape)>0);if(u.length===1)return Kr({inputs:{x:u[0]},backend:e});if(u[0].dtype==="complex64"){let h=u.map(C=>Ao({inputs:{input:C},backend:e})),g=u.map(C=>ji({inputs:{input:C},backend:e})),x=Tu({inputs:h,backend:e,attrs:{axis:s}}),b=Tu({inputs:g,backend:e,attrs:{axis:s}}),w=wr({inputs:{real:x,imag:b},backend:e});return h.forEach(C=>e.disposeIntermediateTensorInfo(C)),g.forEach(C=>e.disposeIntermediateTensorInfo(C)),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(b),w}let l=u.map(h=>{let g=y.sizeFromShape(h.shape.slice(s));return Yt({inputs:{x:h},backend:e,attrs:{shape:[-1,g]}})}),c=l.map(h=>({vals:e.data.get(h.dataId).values,shape:h.shape}));a=v.computeOutShape(l.map(h=>h.shape),1);let p=l[0].shape[0]===1,m=Ec(c,a,t[0].dtype,p),f=v.computeOutShape(u.map(h=>h.shape),s),d=e.makeTensorInfo(f,t[0].dtype,m);return l.forEach(h=>e.disposeIntermediateTensorInfo(h)),d}var HF={kernelName:li,backendName:"cpu",kernelFunc:Tu};function dT(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dataFormat:u,dilations:l,dimRoundingMode:c}=n;tt([o,s],"conv2d");let p=v.convertConv2DDataFormat(u),m=v.computeConv2DInfo(o.shape,s.shape,i,l,a,c,!1,p),f=m.filterHeight,d=m.filterWidth,h=m.dilationHeight,g=m.dilationWidth,x=m.padInfo.left,b=m.padInfo.top,w=m.dataFormat==="channelsLast",C=new pe(m.outShape,o.dtype),N=y.computeStrides(o.shape),_=y.computeStrides(s.shape),A=N[0],$=w?N[1]:N[2],F=w?N[2]:1,P=w?1:N[1],V=C.strides[0],G=w?C.strides[1]:C.strides[2],W=w?C.strides[2]:1,q=w?1:C.strides[1],H=e.data.get(o.dataId).values,j=e.data.get(s.dataId).values,Y=C.values;for(let Z=0;Z=m.inHeight)continue;let ht=it*_[0],bt=et+dt*$;for(let Et=0;Et=m.inWidth)continue;let he=ht+Zt*_[1],jt=bt+ce*F,ke=he;for(let fe=0;fe=l.inDepth)continue;let Z=j*F[0],et=V+Y*$[1];for(let rt=0;rt=l.inHeight)continue;let dt=Z+nt*F[1],ht=et+it*$[2];for(let bt=0;bt=l.inWidth)continue;let ce=dt+Vt*F[2],he=ht+Zt*l.inChannels,jt=ce;for(let ke=0;keMath.cos(r)),JF={kernelName:Xo,backendName:"cpu",kernelFunc:ZJ};var JJ=kt(Yo,r=>Math.cosh(r)),QF={kernelName:Yo,backendName:"cpu",kernelFunc:JJ};function QJ(r){let{inputs:t,backend:e,attrs:n}=r,{image:o,boxes:s,boxInd:i}=t,{cropSize:a,method:u,extrapolationValue:l}=n,[c,p,m,f]=o.shape,d=s.shape[0],[h,g]=a,x=wt([d,h,g,f],"float32"),b=e.data.get(s.dataId).values,w=e.data.get(i.dataId).values,C=e.data.get(o.dataId).values,N=y.computeStrides(o.shape),_=y.computeStrides(x.shape);for(let A=0;A=c)continue;let q=h>1?(V-F)*(p-1)/(h-1):0,H=g>1?(G-P)*(m-1)/(g-1):0;for(let j=0;j1?F*(p-1)+j*q:.5*(F+V)*(p-1);if(Y<0||Y>p-1){for(let Z=0;Z1?P*(m-1)+ot*H:.5*(P+G)*(m-1);if(at<0||at>m-1){for(let ht=0;ht1?P*(m-1)+Z*H:.5*(P+G)*(m-1);if(et<0||et>m-1){for(let at=0;atx+d-b-1:(x,b)=>x+b;for(let x=0;xx+d-b-1:(x,b)=>x+b;for(let x=0;x`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`);let a=o.shape[0],u=o.shape[1],l=o.shape[2],c=o.shape[3],p=u*s,m=l*s,f=c/(s*s),d=e.data.get(o.dataId).values,h=new Float32Array(a*p*m*f),g=0;for(let x=0;x`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${m}'`);let f=v.computeConv2DInfo(o.shape,s.shape,i,m,a,l,!0),{filterHeight:d,filterWidth:h,dilationHeight:g,dilationWidth:x,padInfo:b}=f,w=b.left,C=b.top,N=f.outChannels/f.inChannels,_=new pe(f.outShape,o.dtype),A=e.data.get(o.dataId).values,$=e.data.get(s.dataId).values,F=_.values;for(let P=0;P=f.inHeight)continue;let Z=j*p[0],et=V+Y*c[1];for(let rt=0;rt=f.inWidth)continue;let dt=Z+nt*p[1],ht=et+it*f.inChannels,bt=ot,Et=dt;for(let At=0;At{let{x:n,filter:o}=r,{strides:s,pad:i,dilations:a}=e,u=t,l=u.data.get(n.dataId).values,c=n.shape.length,p=u.data.get(o.dataId).values,m=o.shape.length,{batchSize:f,inHeight:d,inWidth:h,inChannels:g,outHeight:x,outWidth:b,padInfo:w,strideHeight:C,strideWidth:N,filterHeight:_,filterWidth:A,dilationHeight:$,dilationWidth:F,outShape:P}=v.computeDilation2DInfo(n.shape,o.shape,s,i,"NHWC",a),V=y.sizeFromShape(P),G=P.length,W=y.getArrayFromDType(n.dtype,V);for(let H=0;H=0&&it=0&&htot&&(ot=At)}}}let at=y.locToIndex([H,j,Z,rt],G,y.computeStrides(P));W[at]=ot}}}return{dataId:u.write(y.toTypedArray(W,n.dtype),P,n.dtype),shape:P,dtype:n.dtype}}};var cO={kernelName:Xd,backendName:"cpu",kernelFunc:({inputs:r,backend:t,attrs:e})=>{let{x:n,filter:o,dy:s}=r,{strides:i,pad:a,dilations:u}=e,l=t,c=y.toNestedArray(n.shape,l.data.get(n.dataId).values),p=y.toNestedArray(o.shape,l.data.get(o.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:w,strideWidth:C,filterHeight:N,filterWidth:_,dilationHeight:A,dilationWidth:$,outShape:F}=v.computeDilation2DInfo(n.shape,o.shape,i,a,"NHWC",u);y.assert(s.rank===F.length,()=>`Error in ${Xd}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let P=y.toNestedArray(F,l.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(o.shape,o.dtype);for(let W=0;W=0&&nt=0&&dtet&&(et=ht,rt=at,ot=it)}}}V[rt][ot][Z]+=P[W][q][j][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),o.shape,o.dtype),shape:o.shape,dtype:o.dtype}}};var pO={kernelName:jd,backendName:"cpu",kernelFunc:({inputs:r,backend:t,attrs:e})=>{let{x:n,filter:o,dy:s}=r,{strides:i,pad:a,dilations:u}=e,l=t,c=y.toNestedArray(n.shape,l.data.get(n.dataId).values),p=y.toNestedArray(o.shape,l.data.get(o.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:w,strideWidth:C,filterHeight:N,filterWidth:_,dilationHeight:A,dilationWidth:$,outShape:F}=v.computeDilation2DInfo(n.shape,o.shape,i,a,"NHWC",u);y.assert(s.rank===F.length,()=>`Error in ${jd}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let P=y.toNestedArray(F,l.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(n.shape,n.dtype);for(let W=0;W=0&&nt=0&&dtet&&(et=ht,rt=nt,ot=dt)}}}V[W][rt][ot][Z]+=P[W][q][j][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}};function hl(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;tt(o,"sum");let a;o.dtype==="bool"?a=$o({inputs:{x:o},backend:e,attrs:{dtype:"int32"}}):a=Kr({inputs:{x:o},backend:e});let u=a.shape.length,l=y.parseAxisParam(s,a.shape),c=v.getAxesPermutation(l,u),p=l,m=a;c!=null&&(m=Ve({inputs:{x:a},backend:e,attrs:{perm:c}}),p=v.getInnerMostAxes(p.length,u)),v.assertAxesAreInnerMostDims("sum",p,m.shape.length);let[f,d]=v.computeOutAndReduceShapes(m.shape,p),h=v.upcastType(m.dtype,"int32"),g=nd(e,f,h),x=y.sizeFromShape(d),b=e.data.get(g.dataId).values,w=e.data.get(m.dataId).values;for(let C=0;C=0&&(m=hl({inputs:{x:m},backend:e,attrs:{axis:l[h]-(i.length-f),keepDims:!1}}),d.push(m)),f--)}for(let h of d)h!==m&&e.disposeIntermediateTensorInfo(h);return m}var fO={kernelName:bp,backendName:"cpu",kernelFunc:aQ};function lQ(r){let{inputs:t,backend:e}=r,{dy:n,y:o}=t;tt([n,o],"eluGrad");let s=new Float32Array(y.sizeFromShape(o.shape)),i=e.data.get(o.dataId).values,a=e.data.get(n.dataId).values;for(let u=0;u=1?s[u]=a[u]:s[u]=a[u]*(l+1)}return e.makeTensorInfo(o.shape,"float32",s)}var dO={kernelName:wp,backendName:"cpu",kernelFunc:lQ};var uQ=v.ERF_P,cQ=v.ERF_A1,pQ=v.ERF_A2,mQ=v.ERF_A3,fQ=v.ERF_A4,dQ=v.ERF_A5,hQ=kt(ga,r=>{let t=Math.sign(r),e=Math.abs(r),n=1/(1+uQ*e);return t*(1-((((dQ*n+fQ)*n+mQ)*n+pQ)*n+cQ)*n*Math.exp(-e*e))}),hO={kernelName:ga,backendName:"cpu",kernelFunc:hQ};function cd(r){let{inputs:t,backend:e,attrs:n}=r,{input:o}=t,{dim:s}=n,i=o.shape.length,a=o.shape.slice(),u=s;return s<0&&(y.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+s+1),a.splice(u,0,1),Yt({inputs:{x:o},backend:e,attrs:{shape:a}})}var gO={kernelName:ui,backendName:"cpu",kernelFunc:cd};var gQ=Qt((r,t)=>r/t),Wh=oe(Qo,gQ),Uh={kernelName:Qo,backendName:"cpu",kernelFunc:Wh};function hw(r,t,e){let n=r.shape,o=n[0],s=n[1],i=e.data.get(r.dataId),a=i.complexTensorInfos.real,u=i.complexTensorInfos.imag,l=[o,s],c=y.sizeFromShape(l),p=y.getTypedArrayFromDType("float32",c),m=y.getTypedArrayFromDType("float32",c);for(let g=0;g{let{image:n}=r,o=e,s=y.getTypedArrayFromDType(n.dtype,y.sizeFromShape(n.shape)),[i,a,u,l]=n.shape,c=o.data.get(n.dataId).values;for(let m=0;m=0&&wMath.floor(r/t)),SQ=oe(ns,IQ,null,"int32"),wO={kernelName:ns,backendName:"cpu",kernelFunc:SQ};function vQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=dT({inputs:{x:o,filter:s},backend:e,attrs:{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m}});if(i){let g=h;if(c==="NCHW"&&i.shape.length===1&&i.shape[0]!==1){let x=Yt({inputs:{x:i},backend:e,attrs:{shape:[i.shape[0],1,1]}});h=Ki({inputs:{a:h,b:x},backend:e}),e.disposeIntermediateTensorInfo(x)}else h=Ki({inputs:{a:h,b:i},backend:e});e.disposeIntermediateTensorInfo(g)}if(f){let g=h;if(c==="NCHW"&&f==="prelu"&&a.shape.length===1&&a.shape[0]!==1){let x=Yt({inputs:{x:a},backend:e,attrs:{shape:[a.shape[0],1,1]}});h=Oc(e,h,f,x,d),e.disposeIntermediateTensorInfo(x)}else h=Oc(e,h,f,a,d);e.disposeIntermediateTensorInfo(g)}return h}var CO={kernelName:Ii,backendName:"cpu",kernelFunc:vQ};function NQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=hT({inputs:{x:o,filter:s},backend:e,attrs:{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m}});if(i){let g=h;h=Ki({inputs:{a:h,b:i},backend:e}),e.disposeIntermediateTensorInfo(g)}if(f){let g=h;h=Oc(e,h,f,a,d),e.disposeIntermediateTensorInfo(g)}return h}var IO={kernelName:Si,backendName:"cpu",kernelFunc:NQ};function TQ(r){let{inputs:t,backend:e}=r,{params:n,indices:o}=t,s=y.sizeFromShape(n.shape),i=o.shape,a=i[i.length-1],[u,l,c,p]=v.prepareAndValidate(n,o);if(l===0)return e.makeTensorInfo(u,n.dtype,[]);let m=e.data.get(o.dataId).values,f=e.bufferSync(n),d=Qb(m,f,n.dtype,l,a,c,p,n.shape,s);return e.makeTensorInfo(u,n.dtype,d.values)}var SO={kernelName:wa,backendName:"cpu",kernelFunc:TQ};function kQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,indices:s}=t,{axis:i,batchDims:a}=n;tt([o,s],"gatherV2");let u=y.parseAxisParam(i,o.shape)[0],l=e.data.get(s.dataId).values,c=o.shape[u];for(let C=0;C=0,()=>`GatherV2: the index value ${N} is not in [0, ${c-1}]`)}let p=a;a==null&&(p=0);let m=y.sizeFromShape(s.shape),f=v.segment_util.collectGatherOpShapeInfo(o,s,u,p),d=Yt({inputs:{x:o},backend:e,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),h=Yt({inputs:{x:s},backend:e,attrs:{shape:[f.batchSize,m/f.batchSize]}}),g=[f.batchSize,f.outerSize,m/f.batchSize,f.sliceSize],x=e.bufferSync(h),b=e.bufferSync(d),w=tw(b,x,g);return e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.makeTensorInfo(f.outputShape,w.dtype,w.values)}var vO={kernelName:ci,backendName:"cpu",kernelFunc:kQ};function EQ(r){let{inputs:t,backend:e}=r,{input:n}=t,o=y.sizeFromShape(n.shape),s=n.shape[n.shape.length-1],i=o/s,a=Yt({inputs:{x:n},backend:e,attrs:{shape:[i,s]}}),u=hw(a,!0,e),l=Yt({inputs:{x:u},backend:e,attrs:{shape:n.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(u),l}var NO={kernelName:Ip,backendName:"cpu",kernelFunc:EQ};var _Q=kt(Ia,r=>Number.isFinite(r)?1:0,"bool"),TO={kernelName:Ia,backendName:"cpu",kernelFunc:_Q};var AQ=kt(Sa,r=>Math.abs(r)===1/0?1:0,"bool"),kO={kernelName:Sa,backendName:"cpu",kernelFunc:AQ};var $Q=kt(va,r=>Number.isNaN(r)?1:0,"bool"),EO={kernelName:va,backendName:"cpu",kernelFunc:$Q};function DQ(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=ew(n,o,s);return t.makeTensorInfo([i.length],"float32",i)}var _O={kernelName:vp,backendName:"cpu",kernelFunc:DQ};var RQ=kt(ka,r=>Math.log1p(r)),AO={kernelName:ka,backendName:"cpu",kernelFunc:RQ};var FQ=Qt((r,t)=>r&&t),OQ=oe(Ea,FQ,null,"bool"),$O={kernelName:Ea,backendName:"cpu",kernelFunc:OQ};var PQ=kt(_a,r=>r?0:1,"bool"),DO={kernelName:_a,backendName:"cpu",kernelFunc:PQ};var LQ=Qt((r,t)=>r||t),MQ=oe(Aa,LQ,null,"bool"),RO={kernelName:Aa,backendName:"cpu",kernelFunc:MQ};function zQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n;tt(o,"LRN");let l=o.shape[3],c=l-1,p=e.data.get(o.dataId).values,m=y.sizeFromShape(o.shape),f=new Float32Array(m);function d(h){let g=h%l,x=h-g+Math.max(0,g-s),b=h-g+Math.min(g+s,c),w=0;for(;x<=b;x++){let C=p[x];w+=C*C}return w}for(let h=0;h`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=v.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Kr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=ud(m,o.shape,o.dtype,f,c,"max");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var LO={kernelName:cs,backendName:"cpu",kernelFunc:VQ};function GQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;tt(o,"maxPool3d");let c=v.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=dw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,"max");return e.makeTensorInfo(m.shape,"float32",m.values)}var MO={kernelName:Fl,backendName:"cpu",kernelFunc:GQ};function WQ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;tt([o,s],"maxPool3DGrad");let c=v.computePool3DInfo(s.shape,i,a,1,u,l),p=e.bufferSync(s),m=RF(p,c),f=c.strideDepth,d=c.strideHeight,h=c.strideWidth,g=c.dilationDepth,x=c.dilationHeight,b=c.dilationWidth,w=c.effectiveFilterDepth,C=c.effectiveFilterHeight,N=c.effectiveFilterWidth,_=w-1-c.padInfo.front,A=N-1-c.padInfo.left,$=C-1-c.padInfo.top,F=wt(s.shape,"float32"),P=e.bufferSync(o);for(let V=0;V=c.outDepth||Math.floor(ot)!==ot))for(let at=0;at=c.outHeight||Math.floor(nt)!==nt))for(let it=0;it=c.outWidth||Math.floor(dt)!==dt)continue;let ht=w*C*N-1-m.get(V,ot,nt,dt,G),bt=rt*C*N+at*N+it,Et=ht===bt?1:0;if(Et===0)continue;et+=P.get(V,ot,nt,dt,G)*Et}}}F.set(et,V,W,q,H,G)}return e.makeTensorInfo(F.shape,F.dtype,F.values)}var zO={kernelName:kp,backendName:"cpu",kernelFunc:WQ};function UQ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;tt([s,i],"maxPoolGrad");let{filterSize:u,strides:l,pad:c,dimRoundingMode:p}=n,m=v.computePool2DInfo(a.shape,u,l,1,c,p),f=e.data.get(a.dataId).values,d=wt(m.outShape,a.dtype,fw(f,a.shape,a.dtype,m).values),h=m.strideHeight,g=m.strideWidth,x=m.dilationHeight,b=m.dilationWidth,w=m.effectiveFilterHeight,C=m.effectiveFilterWidth,N=C-1-m.padInfo.left,_=w-1-m.padInfo.top,A=wt(a.shape,"float32"),$=e.data.get(o.dataId).values,F=wt(o.shape,"float32",$);for(let P=0;P=m.outHeight||Math.floor(Z)!==Z))for(let et=0;et=m.outWidth||Math.floor(rt)!==rt)continue;let ot=w*C-1-d.get(P,Z,rt,V),at=Y*C+et,nt=ot===at?1:0;if(nt===0)continue;j+=F.get(P,Z,rt,V)*nt}}A.set(j,P,G,W,V)}return e.makeTensorInfo(A.shape,A.dtype,A.values)}var BO={kernelName:Tp,backendName:"cpu",kernelFunc:UQ};function VO(r,t,e,n,o){let s=y.computeStrides(t),i=ud(r,t,e,s,o,"max"),a=fw(r,t,e,o,!0,n);return[i.values,a.values]}var GO={kernelName:Ep,backendName:"cpu",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;tt(n,"MaxPoolWithArgmax");let l=u.data.get(n.dataId).values,c=v.computePool2DInfo(n.shape,o,s,[1,1],i),[p,m]=VO(l,n.shape,n.dtype,a,c),f=u.write(p,c.outShape,n.dtype),d=u.write(m,c.outShape,n.dtype);return[{dataId:f,shape:c.outShape,dtype:n.dtype},{dataId:d,shape:c.outShape,dtype:"int32"}]}};function HQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=y.parseAxisParam(s,o.shape),l=v.computeOutAndReduceShapes(o.shape,a)[1],c=y.sizeFromShape(l),p=[],m=e.makeTensorInfo([],"float32",new Float32Array([c]));p.push(m);let f=$o({inputs:{x:o},backend:e,attrs:{dtype:"float32"}});p.push(f);let d=Wh({inputs:{a:f,b:m},backend:e});p.push(d);let h=hl({inputs:{x:d},backend:e,attrs:{axis:s,keepDims:i}});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),h}var WO={kernelName:ps,backendName:"cpu",kernelFunc:HQ};function qQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;tt(o,"min");let a=y.parseAxisParam(s,o.shape),u=a,l=v.getAxesPermutation(u,o.shape.length),c=o;l!=null&&(c=Ve({inputs:{x:o},backend:e,attrs:{perm:l}}),u=v.getInnerMostAxes(u.length,o.shape.length)),v.assertAxesAreInnerMostDims("min",u,c.shape.length);let[p,m]=v.computeOutAndReduceShapes(c.shape,u),f=y.sizeFromShape(m),d=y.makeZerosTypedArray(y.sizeFromShape(p),c.dtype),h=e.data.get(c.dataId).values;for(let x=0;xw[0]+o.shape[C]+w[1]),u=s.map(w=>w[0]),l=s.map((w,C)=>w[0]+o.shape[C]),c=i==="reflect"?0:1,p=e.data.get(o.dataId).values,m=o.shape.length,f=y.computeStrides(o.shape),d=y.sizeFromShape(a),h=a.length,g=y.computeStrides(a),x=y.getTypedArrayFromDType(o.dtype,d);for(let w=0;w=l[_]&&(C[_]=(l[_]-1)*2-C[_]+c);C=C.map((_,A)=>_-u[A]);let N=y.locToIndex(C,m,f);x[w]=p[N]}return{dataId:e.write(x,a,o.dtype),shape:a,dtype:o.dtype}}var HO={kernelName:ds,backendName:"cpu",kernelFunc:KQ};var jQ=Qt((r,t)=>{let e=r%t;return r<0&&t<0||r>=0&&t>=0?e:(e+t)%t}),XQ=oe($a,jQ),qO={kernelName:$a,backendName:"cpu",kernelFunc:XQ};var jO=Tl(fh());function yT(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=o.shape.length,a=s;if(a===-1&&(a=i-1),a!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${a}`);let u=y.parseAxisParam([a],o.shape),l=xT({inputs:{x:o},backend:e,attrs:{reductionIndices:u,keepDims:!1}}),c=v.expandShapeToKeepDim(l.shape,u),p=Yt({inputs:{x:l},backend:e,attrs:{shape:c}}),m=Vh({inputs:{a:o,b:p},backend:e}),f=UN({inputs:{x:m},backend:e}),d=hl({inputs:{x:f},backend:e,attrs:{axis:u,keepDims:!1}}),h=Yt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Wh({inputs:{a:f,b:h},backend:e});return e.disposeIntermediateTensorInfo(l),e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var KO={kernelName:Ds,backendName:"cpu",kernelFunc:yT};function YQ(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n;tt(o,"multinomial");let u=a?o:yT({inputs:{logits:o},backend:e,attrs:{dim:-1}}),l=u.shape[0],c=u.shape[1],p=e.data.get(u.dataId).values,m=[l,s],f=y.makeZerosTypedArray(y.sizeFromShape(m),"int32");for(let d=0;d=0&&p[m]{y.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),y.assert(i===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let a=[],u=t.map(c=>{let p=cd({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Tu({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var nP={kernelName:fi,backendName:"cpu",kernelFunc:bT};function o9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{paddings:s,constantValue:i}=n;tt(o,"pad");let a=s.map((b,w)=>b[0]+o.shape[w]+b[1]),u=s.map(b=>b[0]),l=e.data.get(o.dataId).values,c=y.sizeFromShape(o.shape),p=o.shape.length,m=y.computeStrides(o.shape),f=y.sizeFromShape(a),d=a.length,h=y.computeStrides(a),g=y.getTypedArrayFromDType(o.dtype,f);i!==0&&g.fill(i);for(let b=0;b_+u[A]),N=y.locToIndex(C,d,h);g[N]=l[b]}return{dataId:e.write(g,a,o.dtype),shape:a,dtype:o.dtype}}var gw={kernelName:xs,backendName:"cpu",kernelFunc:o9};var s9=Qt((r,t)=>Math.pow(r,t)),i9=oe(ys,s9),oP={kernelName:ys,backendName:"cpu",kernelFunc:i9};function a9(r){let{inputs:t,backend:e,attrs:n}=r,{paramsNestedSplits:o,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:a}=n,u=o.map(x=>e.data.get(x.dataId).values),l=o.map(x=>x.shape),c=e.data.get(s.dataId).values,p=e.data.get(i.dataId).values,[m,f,d]=nw(u,l,c,s.shape,s.dtype,p,i.shape,a),h=m.map(x=>e.makeTensorInfo([x.length],"int32",x)),g=e.makeTensorInfo(d,s.dtype,f);return h.concat([g])}var sP={kernelName:Ap,backendName:"cpu",kernelFunc:a9};function l9(r){let{inputs:t,backend:e}=r,{starts:n,limits:o,deltas:s}=t,i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=ow(i,n.shape,n.dtype,a,o.shape,u,s.shape),p=e.makeTensorInfo([l.length],"int32",l),m=e.makeTensorInfo([c.length],n.dtype,c);return[p,m]}var iP={kernelName:$p,backendName:"cpu",kernelFunc:l9};function u9(r){let{inputs:t,backend:e,attrs:n}=r,{shape:o,values:s,defaultValue:i,rowPartitionTensors:a}=t,{rowPartitionTypes:u}=n,l=e.data.get(o.dataId).values,c=e.data.get(s.dataId).values,p=e.data.get(i.dataId).values,m=a.map(g=>e.data.get(g.dataId).values),f=a.map(g=>g.shape),[d,h]=sw(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var aP={kernelName:Dp,backendName:"cpu",kernelFunc:u9};function c9(r){let{backend:t,attrs:e}=r,{start:n,stop:o,dtype:s,step:i}=e,a=Ac(n,o,i,s);return t.makeTensorInfo([a.length],s,a)}var lP={kernelName:Ol,backendName:"cpu",kernelFunc:c9};var p9=kt(Pa,r=>1/r),uP={kernelName:Pa,backendName:"cpu",kernelFunc:p9};function m9(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n;tt(o,"resizeBilinear");let u=y.computeStrides(o.shape),[l,c]=a,[p,m,f,d]=o.shape,h=e.data.get(o.dataId).values,g=new Float32Array(y.sizeFromShape([p,l,c,d])),x=[s&&l>1?m-1:m,s&&c>1?f-1:f],b=[s&&l>1?l-1:l,s&&c>1?c-1:c],w=0,C=x[0]/b[0],N=x[1]/b[1];for(let _=0;_1?l-1:l,i&&f>1?c-1:c],g=[i&&m>1?m-1:m,i&&f>1?f-1:f],x=h[0]/g[0],b=h[1]/g[1],w=e.data.get(s.dataId).values,C=0;for(let N=0;N1?m-1:m,s&&c>1?f-1:f],b=[s&&l>1?l-1:l,s&&c>1?c-1:c],w=x[0]/b[0],C=x[1]/b[1],N=0;for(let _=0;_1?c-1:c,i&&d>1?p-1:p],b=[i&&f>1?f-1:f,i&&d>1?d-1:d],w=x[0]/b[0],C=x[1]/b[1],N=1/w,_=1/C,A=Math.ceil(N)*2+2,$=Math.ceil(_)*2+2;for(let F=0;F=f)continue;let nt=P+at*u[1],it=at*w,dt=Math.min(c-1,i?Math.round(it):Math.floor(it));if(V===dt)for(let ht=0;ht<$;ht++){let bt=ht+Z;if(bt<0||bt>=d)continue;let Et=nt+bt*u[2],At=bt*C,Vt=Math.min(p-1,i?Math.round(At):Math.floor(At));H===Vt&&(rt+=g[Et+et])}}h[j+et]=rt}}}}return e.makeTensorInfo(o.shape,o.dtype,h)}var fP={kernelName:Fp,backendName:"cpu",kernelFunc:h9};function g9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n;tt(o,"reverse");let i=o.shape.length,a=y.parseAxisParam(s,o.shape);if(i===0)return Kr({inputs:{x:o},backend:e});let u=new pe(o.shape,o.dtype),l=e.bufferSync(o);for(let c=0;cm[f]=o.shape[f]-1-m[f]),u.set(l.get(...m),...p)}return e.makeTensorInfo(u.shape,u.dtype,u.values)}var dP={kernelName:Ns,backendName:"cpu",kernelFunc:g9};var hP={kernelName:qa,backendName:"cpu",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=y.getTypedArrayFromDType(n.dtype,y.sizeFromShape(n.shape)),[l,c,p,m]=n.shape,[f,d]=v.getImageCenter(i,c,p),h=255,g=Math.sin(o),x=Math.cos(o),b=a.data.get(n.dataId).values;for(let C=0;C=0&&q=0&&H{let t=Math.floor(r);return r-t<.5?Math.floor(r):r-t>.5?Math.ceil(r):t%2===0?t:t+1}),gP={kernelName:Ts,backendName:"cpu",kernelFunc:x9};function y9(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o,updates:s}=t,{shape:i}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=v.calculateShapes(s,o,i),m=!0,f=e.bufferSync(o),d=e.bufferSync(s),h=dl(f,d,i,p,l,u,a,c,0,m);return e.makeTensorInfo(i,h.dtype,h.values)}var xP={kernelName:La,backendName:"cpu",kernelFunc:y9};function b9(r,t){let e=0,n=r.length,o=0;for(;e1||o.shape.length===1?1:y.sizeFromShape(o.shape.slice(1));for(let d=0;dr>=0?v9*r:S9*(Math.exp(r)-1)),CP={kernelName:Ma,backendName:"cpu",kernelFunc:N9};var T9=kt(Ba,r=>r<0?-1:r>0?1:0),IP={kernelName:Ba,backendName:"cpu",kernelFunc:T9};var k9=kt(Es,r=>Math.sin(r)),SP={kernelName:Es,backendName:"cpu",kernelFunc:k9};var E9=kt(za,r=>Math.sinh(r)),vP={kernelName:za,backendName:"cpu",kernelFunc:E9};var _9=11920928955078125e-23,NP=Math.log(_9)+2,A9=kt(Va,r=>{let t=r>-NP,e=r0&&y.isString(n[0])){let s=n.map(i=>y.encodeString(i));o=this.write(s,t,e)}else o=this.write(n,t,e);return{dataId:o,shape:t,dtype:e}}refCount(t){return this.data.has(t)?this.data.get(t).refCount:0}incRef(t){let e=this.data.get(t);e.refCount++}decRef(t){if(this.data.has(t)){let e=this.data.get(t);e.refCount--}}move(t,e,n,o,s){this.data.set(t,{values:e,dtype:o,refCount:s})}numDataIds(){return this.data.numDataIds()}async read(t){return this.readSync(t)}readSync(t){let{dtype:e,complexTensorInfos:n}=this.data.get(t);if(e==="complex64"){let o=this.readSync(n.real.dataId),s=this.readSync(n.imag.dataId);return v.mergeRealAndImagArrays(o,s)}return this.data.get(t).values}bufferSync(t){let e=this.readSync(t.dataId);if(t.dtype==="string")try{let n=e.map(o=>y.decodeString(o));return wt(t.shape,t.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return wt(t.shape,t.dtype,e)}makeOutput(t,e,n){return Pn().makeTensorFromTensorInfo(this.makeTensorInfo(e,n,t),this)}disposeData(t,e=!1){if(this.data.has(t)){if(this.data.get(t).refCount--,!e&&this.data.get(t).refCount>0)return!1;let{complexTensorInfos:n}=this.data.get(t);n!=null&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(t)}return!0}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}async time(t){let e=y.now();return t(),{kernelMs:y.now()-e}}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(t){tt([t],"where");let e=this.readSync(t.dataId);return q7(t.shape,e)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};Nu.nextDataId=0;var mw={};Wt(mw,{addImpl:()=>zN,bincountImpl:()=>sd,bincountReduceImpl:()=>Jb,castImpl:()=>MN,ceilImpl:()=>BN,concatImpl:()=>Ec,equalImpl:()=>VN,expImpl:()=>WN,expm1Impl:()=>HN,floorImpl:()=>qN,gatherNdImpl:()=>Qb,gatherV2Impl:()=>tw,greaterEqualImpl:()=>jN,greaterImpl:()=>KN,lessEqualImpl:()=>YN,lessImpl:()=>XN,linSpaceImpl:()=>ew,logImpl:()=>ZN,maxImpl:()=>rw,maximumImpl:()=>JN,minimumImpl:()=>QN,multiplyImpl:()=>Bh,negImpl:()=>tT,notEqualImpl:()=>eT,prodImpl:()=>rT,raggedGatherImpl:()=>nw,raggedRangeImpl:()=>ow,raggedTensorToTensorImpl:()=>sw,rangeImpl:()=>Ac,rsqrtImpl:()=>nT,scatterImpl:()=>dl,sigmoidImpl:()=>sF,simpleAbsImpl:()=>LN,sliceImpl:()=>$c,sparseFillEmptyRowsImpl:()=>iw,sparseReshapeImpl:()=>aw,sparseSegmentReductionImpl:()=>ld,sqrtImpl:()=>lF,squaredDifferenceImpl:()=>sT,stridedSliceImpl:()=>lw,stringNGramsImpl:()=>Dc,stringSplitImpl:()=>Rc,stringToHashBucketFastImpl:()=>Fc,subImpl:()=>aT,tileImpl:()=>uw,topKImpl:()=>cw,transposeImpl:()=>id,uniqueImpl:()=>pw});function LN(r){let t=new Float32Array(r.length);for(let e=0;e{let{x:t}=r.inputs,e=r.backend;tt(t,"abs");let n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId).values;return n=LN(o),e.makeOutput(n,t.shape,t.dtype)},$R={kernelName:ii,backendName:"cpu",kernelFunc:K7};function Qt(r){return(t,e,n,o,s)=>{let i=v.assertAndGetBroadcastShape(t,e),a=i.length,u=y.computeStrides(i),l=y.sizeFromShape(i),c=y.getTypedArrayFromDType(s,l),p=t.length,m=e.length,f=y.computeStrides(t),d=y.computeStrides(e),h=v.getBroadcastDims(t,i),g=v.getBroadcastDims(e,i);if(h.length+g.length===0)for(let x=0;xw[A]=0);let C=y.locToIndex(w,p,f),N=b.slice(-m);g.forEach(A=>N[A]=0);let _=y.locToIndex(N,m,d);c[x]=r(n[C],o[_])}return[c,i]}}function wr(r){let{inputs:t,backend:e}=r,{real:n,imag:o}=t,s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,a=e.makeTensorInfo(n.shape,"complex64"),u=e.data.get(a.dataId);return u.complexTensorInfos={real:e.makeTensorInfo(n.shape,"float32",s),imag:e.makeTensorInfo(o.shape,"float32",i)},a}var DR={kernelName:pp,backendName:"cpu",kernelFunc:wr};function nd(r,t,e="float32"){if(e==="complex64"){let o=nd(r,t,"float32"),s=nd(r,t,"float32");return wr({inputs:{real:o,imag:s},backend:r})}let n=y.makeZerosTypedArray(y.sizeFromShape(t),e);return r.makeTensorInfo(t,e,n)}function Kr(r){let{inputs:t,backend:e}=r,{x:n}=t;return e.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}var RR={kernelName:co,backendName:"cpu",kernelFunc:Kr};function Ao(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.data.get(n.dataId).complexTensorInfos.real,s=e.data.get(o.dataId).values;return e.makeTensorInfo(o.shape,o.dtype,s)}var FR={kernelName:Rp,backendName:"cpu",kernelFunc:Ao};function MN(r,t,e,n){if(n==="int32"){let o=Int32Array.from(r);return[t,"int32",o]}if(n==="bool"){let o=y.toTypedArray([0],e),[s,i]=Qt((a,u)=>a!==u?1:0)(t,[],r,o,"bool");return[i,"bool",s]}throw new Error(`Error in Cast: failed to cast ${e} to ${n}`)}function $o(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s==="complex64"){if(o.dtype==="complex64")return Kr({inputs:{x:o},backend:e});let c=nd(e,o.shape,o.dtype),p=$o({inputs:{x:o},backend:e,attrs:{dtype:"float32"}}),m=wr({inputs:{real:p,imag:c},backend:e});return e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),m}if(o.dtype==="complex64"){let c=Ao({inputs:{input:o},backend:e}),p=$o({inputs:{x:c},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(c),p}if(!y.hasEncodingLoss(o.dtype,s)){let c=Kr({inputs:{x:o},backend:e});return{dataId:c.dataId,shape:c.shape,dtype:s}}let i=e.data.get(o.dataId).values,[a,u,l]=MN(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}var OR={kernelName:lo,backendName:"cpu",kernelFunc:$o};function oe(r,t,e,n){return e==null?({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;tt([i,a],r);let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=i.dtype==="string"?v.fromUint8ToStringArray(l):l,m=i.dtype==="string"?v.fromUint8ToStringArray(c):c,f=n||i.dtype,[d,h]=t(i.shape,a.shape,p,m,f);return u.makeTensorInfo(h,f,d)}:({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;if(i.dtype==="complex64"||a.dtype==="complex64"){let l=$o({inputs:{x:i},backend:u,attrs:{dtype:"complex64"}}),c=u.data.get(l.dataId),p=c.complexTensorInfos.real,m=c.complexTensorInfos.imag,f=u.data.get(p.dataId).values,d=u.data.get(m.dataId).values,h=$o({inputs:{x:a},backend:u,attrs:{dtype:"complex64"}}),g=u.data.get(h.dataId),x=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,w=u.data.get(x.dataId).values,C=u.data.get(b.dataId).values,[N,_,A]=e(i.shape,a.shape,f,d,w,C),$=u.makeTensorInfo(A,"float32",N),F=u.makeTensorInfo(A,"float32",_),P=wr({inputs:{real:$,imag:F},backend:u});return u.disposeIntermediateTensorInfo(l),u.disposeIntermediateTensorInfo(h),u.disposeIntermediateTensorInfo($),u.disposeIntermediateTensorInfo(F),P}else{let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=n||i.dtype,[m,f]=t(i.shape,a.shape,l,c,p);return u.makeTensorInfo(f,p,m)}}}function od(r){return(t,e,n,o,s,i)=>{let a=v.assertAndGetBroadcastShape(t,e),u=y.sizeFromShape(a),l=a.length,c=y.computeStrides(a),p=y.getTypedArrayFromDType("float32",u),m=y.getTypedArrayFromDType("float32",u),f=v.getBroadcastDims(t,a),d=v.getBroadcastDims(e,a),h=v.mergeRealAndImagArrays(n,o),g=v.mergeRealAndImagArrays(s,i),x=t.length,b=y.computeStrides(t),w=e.length,C=y.computeStrides(e);if(f.length+d.length===0)for(let N=0;NA[G]=0);let $=y.locToIndex(A,x,b),F=_.slice(-w);d.forEach(G=>F[G]=0);let P=y.locToIndex(F,w,C),V=r(h[$*2],h[$*2+1],g[P*2],g[P*2+1]);p[N]=V.real,m[N]=V.imag}return[p,m,a]}}var zN=Qt((r,t)=>r+t),j7=od((r,t,e,n)=>({real:r+e,imag:t+n})),Ki=oe(Zn,zN,j7),PR={kernelName:Zn,backendName:"cpu",kernelFunc:Ki};function sd(r,t,e,n,o){let s=y.sizeFromShape(n),i=y.makeZerosTypedArray(o,e);for(let a=0;a=o||(s>0?i[u]+=t[a]:i[u]+=1)}return i}function Jb(r,t,e,n=!1){let o=r.shape[0],s=r.shape[1],i=wt([o,e],t.dtype);for(let a=0;a=e||(n?i.set(1,a,l):t.size>0?i.set(i.get(a,l)+t.get(a,u),a,l):i.set(i.get(a,l)+1,a,l))}return i}function yn(r){return(t,e,n)=>{let o=y.getTypedArrayFromDType(e,t.length);for(let s=0;s{let{x:i}=n;if(tt(i,r),i.dtype==="string"||e==="string")throw new Error("unaryKernelFunc does not support string input/output");let a=s,u=a.data.get(i.dataId).values,l=y.sizeFromShape(i.shape),c=e||i.dtype,p=y.getArrayFromDType(c,l);for(let m=0;m{let{x:i}=n;if(tt(i,r),i.dtype==="string"||e==="string")throw new Error("unaryKernelFunc does not support string input/output");let a=s,u=a.data.get(i.dataId).values,l=e||i.dtype,c=t(u,l,o);return a.makeTensorInfo(i.shape,l,c)}}var BN=yn(r=>Math.ceil(r)),X7=Do(qo,BN),LR={kernelName:qo,backendName:"cpu",kernelFunc:X7};function Ec(r,t,e,n){let o=y.getArrayFromDType(e,y.sizeFromShape(t));if(n&&e!=="string"){let s=0;r.forEach(i=>{let a=y.sizeFromShape(i.shape);o.set(i.vals,s),s+=a})}else{let s=0;r.forEach(i=>{let a=e==="string"?v.fromUint8ToStringArray(i.vals):i.vals,u=0;for(let l=0;lr===t?1:0),GN=oe(xa,VN,null,"bool"),MR={kernelName:xa,backendName:"cpu",kernelFunc:GN};var WN=yn(r=>Math.exp(r)),UN=Do(es,WN,"float32"),zR={kernelName:es,backendName:"cpu",kernelFunc:UN};var HN=yn(r=>Math.expm1(r)),Y7=Do(ya,HN),BR={kernelName:ya,backendName:"cpu",kernelFunc:Y7};var qN=yn(r=>Math.floor(r)),Z7=Do(rs,qN),VR={kernelName:rs,backendName:"cpu",kernelFunc:Z7};function Qb(r,t,e,n,o,s,i,a,u){let l=wt([n,s],e);for(let c=0;c=u/s)throw new Error(`Invalid indices: ${p} does not index into ${a}`);for(let f=0;fr>t?1:0),J7=oe(Ca,KN,null,"bool"),GR={kernelName:Ca,backendName:"cpu",kernelFunc:J7};var jN=Qt((r,t)=>r>=t?1:0),Q7=oe(ss,jN,null,"bool"),WR={kernelName:ss,backendName:"cpu",kernelFunc:Q7};var XN=Qt((r,t)=>rr<=t?1:0),eJ=oe(Ta,YN,null,"bool"),HR={kernelName:Ta,backendName:"cpu",kernelFunc:eJ};function ew(r,t,e){let n=(t-r)/(e-1),o=y.makeZerosTypedArray(e,"float32");o[0]=r;for(let s=1;sMath.log(r)),rJ=Do(as,ZN),qR={kernelName:as,backendName:"cpu",kernelFunc:rJ};function rw(r,t,e,n){let o=y.getTypedArrayFromDType(n,y.sizeFromShape(e));for(let s=0;sa)&&(a=l)}o[s]=a}return o}var JN=Qt((r,t)=>Math.max(r,t)),nJ=oe(us,JN),KR={kernelName:us,backendName:"cpu",kernelFunc:nJ};var QN=Qt((r,t)=>Math.min(r,t)),oJ=oe(fs,QN),jR={kernelName:fs,backendName:"cpu",kernelFunc:oJ};var Bh=Qt((r,t)=>r*t),sJ=od((r,t,e,n)=>({real:r*e-t*n,imag:r*n+t*e})),_c=oe(hs,Bh,sJ),XR={kernelName:hs,backendName:"cpu",kernelFunc:_c};function tT(r,t,e){let n=y.createScalarValue(-1,e);return Bh([],t,n,r,e)}function iJ(r){let{inputs:t,backend:e}=r,{x:n}=t;tt(n,"neg");let o=e.data.get(n.dataId).values,[s,i]=tT(o,n.shape,n.dtype);return e.makeTensorInfo(i,n.dtype,s)}var YR={kernelName:pi,backendName:"cpu",kernelFunc:iJ};var eT=Qt((r,t)=>r!==t?1:0),aJ=oe(Da,eT,null,"bool"),ZR={kernelName:Da,backendName:"cpu",kernelFunc:aJ};function id(r,t,e,n,o){let s=t.length,i=y.sizeFromShape(t),a=y.computeStrides(t),u=y.computeStrides(o),l=y.getTypedArrayFromDType(e,y.sizeFromShape(o));for(let c=0;ce.disposeIntermediateTensorInfo(b)),e.makeTensorInfo(x,g,d)}var QR={kernelName:ws,backendName:"cpu",kernelFunc:lJ};function uJ(r,t,e){r.forEach((n,o)=>{if(n<0||n>=e){let s=y.indexToLoc(o,t.length,y.computeStrides(t)).join(",");throw new Error(`indices[${s}] = ${n} is not in [0, ${e})`)}})}function cJ(r,t){for(let e=0;eo)throw new Error("Ragged splits must not point past values");for(let s=1;sn[s])throw new Error("Ragged splits must be sorted in ascending order")}}function pJ(r,t,e,n){let o=[],s=0,i=t.length-1+e.length,a=new Array(i).fill(null).map(()=>[0]);cJ(e,n);let u=1;for(let l=0;l=0){let h=a[d],g=h[h.length-1]-f[c];for(let x=c;xo[i]=s)}return t}function tF(r,t){let e=r.slice(0,t);for(;e.length1)throw new Error("starts must be a scalar or vector");if(o.length>1)throw new Error("limits must be a scalar or vector");if(i.length>1)throw new Error("deltas must be a scalar or vector");let a=t.length===0,u=o.length===0,l=i.length===0,c=[];a||c.push(t[0]),u||c.push(o[0]),l||c.push(i[0]);for(let g=1;g0&&bx)C=0;else if(C=Math.ceil(Math.abs((b-x)/w)),C>eF)throw new Error(`Requires ((limit - start) / delta) <= ${eF}`);m[g+1]=m[g]+C}let f=m[p],d=y.getArrayFromDType(e,f),h=0;for(let g=0;gn&&(n=s)}return n}static getMaxWidthValueRowID(t){let e=t.length;if(e===0)return 0;let n=0,o=t[0],s=0;for(let i=1;i"Final length of result must be equal to firstDimension."),s}calculateOutputIndexRowSplit(t,e,n,o){let s=t.length,i=[];for(let a=0;a0&&i.length!==t[s-1])throw new Error("Invalid row split size.");return i}calculateOutputIndexValueRowID(t,e,n,o){let s=t.length,i=[];if(s===0)return[];let a=0,u=t[0];if(u>=e.length)throw new Error(`Got currentValueRowId=${u}, which is not less than ${e.length}`);let l=e[u];i.push(l);for(let c=1;c=0&&(++a,a=e.length)throw new Error(`Got nextValueRowId=${p} which is not less than ${e.length}`);l=e[p]}i.push(l)}if(i.length!==t.length)throw new Error("Invalid row ids.");return i}calculateOutputIndex(t,e,n,o){let s=this.getRowPartitionTensor(t),i=this.getRowPartitionTypeByDimension(t);switch(i){case Ro.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,e,n,o);case Ro.ROW_SPLITS:if(s.length-1>e.length)throw new Error(`Row partition size is greater than output size: ${s.length-1} > ${e.length}`);return this.calculateOutputIndexRowSplit(s,e,n,o);default:throw new Error(`Unsupported partition type: ${Ro[i]}`)}}getFirstDimensionSize(){let t=this.rowPartitionValues[0];if(this.rowPartitionTypes.length===0)throw new Error("No row_partition_types given.");let e=this.rowPartitionTypes[0];switch(e){case Ro.FIRST_DIM_SIZE:return t[0];case Ro.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Ro.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Ro[e]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error("Invalid first partition input. Tensor requires at least one element.");let e=this.getFirstDimensionSize(),n=this.calculateOutputSize(e),o=new Array(this.raggedRank+1);o[o.length-1]=1;for(let u=o.length-2;u>=0;--u)o[u]=o[u+1]*n[u+1];let s=nF(n,!1),i=y.getArrayFromDType(this.valuesDType,y.sizeFromShape(s));if(o[0]*n[0]>0){let u=this.calculateFirstParentOutputIndex(e,o[0],n[0]);for(let l=1;l<=this.raggedRank;++l)u=this.calculateOutputIndex(l-1,u,o[l],n[l]);this.setOutput(this.raggedRank,u,i,s)}return[s,i]}setOutput(t,e,n,o){if(n.length===0)return;let s=this.values,i=n,a=o.slice();a=a.slice(t+1);let u=y.sizeFromShape(a),l=e.length,c=this.defaultValue;if(c.length!==u&&c.length!==1){let d=this.defaultValueShape;B(()=>{let h=R(c,d);c=Ri(h,a).dataSync()})}let p=0,m=0,f=0;for(let d=0;d<=l;++d){let h=d=l){let g=n.length;h=Math.floor(g/u)}if(h>f)if(this.defaultValue.length===1)i.subarray(f*u,h*u).fill(this.defaultValue[0]),f=h;else for(;h>f;){let g=i.slice(f*u);rF(g,c,u),++f}h<0?(p=d+1,m=f):(p=d,m=f,f=m+1)}}};function rF(r,t,e){for(let n=0;n= 0`);if(n<-1)throw new Error(`Dimension ${n} must be >= -1`);n=-1}e.push(n)}return e}function sw(r,t,e,n,o,s,i,a,u,l){return new ad(r,t,e,n,o,s,i,a,u,l).compute()}function Ac(r,t,e,n){let o=r===t,s=r1;if(o||s||i)return y.makeZerosTypedArray(0,n);let a=Math.abs(Math.ceil((t-r)/e)),u=y.makeZerosTypedArray(a,n);t1/Math.sqrt(r)),hJ=Do(ks,nT),oF={kernelName:ks,backendName:"cpu",kernelFunc:hJ};function dl(r,t,e,n,o,s,i,a,u,l){let c=[n/o,o],p=r.values,m=t.values;if(n===0)return wt(e,t.dtype);let f=wt(c,t.dtype);typeof u=="string"||typeof u=="number"?f.values.fill(u):typeof u=="boolean"&&f.values.fill(+u);for(let d=0;d=n/o)throw new Error(`Invalid indices: ${h} does not index into ${e}`);for(let x=0;x1/(1+Math.exp(-r))),oT=Et(_s,r=>1/(1+Math.exp(-r))),iF={kernelName:_s,backendName:"cpu",kernelFunc:oT};function $c(r,t,e,n,o){let s=Le.isSliceContinous(n,t,e),i=y.sizeFromShape(e),a=y.computeStrides(n);if(s){let p=Le.computeFlatOffset(t,a);return o==="string"?r.slice(p,p+i):r.subarray(p,p+i)}let u=o==="string"?v.fromUint8ToStringArray(r):r,l=wt(n,o,u),c=wt(e,o);for(let p=0;pd+t[h]);c.set(l.get(...f),...m)}return o==="string"?v.fromStringArrayToUint8(c.values):c.values}function Fo(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n;tt(o,"slice");let[a,u]=Le.parseSliceParams(o,s,i);Le.assertParamsValid(o,a,u);let l=e.data.get(o.dataId).values,c=$c(l,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,c)}var aF={kernelName:gi,backendName:"cpu",kernelFunc:Fo};function iw(r,t,e,n,o,s,i){let a=t[0],u=s[0],l=new Array(u),c=new Array(a),p=t[1];if(u===0){if(a!==0)throw new Error(v.getSparseFillEmptyRowsIndicesDenseShapeMismatch(a));let g=y.getArrayFromDType(e,0),x=y.getArrayFromDType(o,0);return[g,[0,p],x,l,c]}let m=!0,f=0,d=new Array(u).fill(0);for(let g=0;g=u)throw new Error(v.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,x,u));++d[x],m=m&&x>=f,f=x}let h=!0;for(let g=0;g0&&(d[g]+=d[g-1])}if(h&&m){let g=r,x=n;for(let b=0;b0){f[m-1]=1;for(let g=m-2;g>=0;--g)f[g]=f[g+1]*n[g+1]}let d=[];if(a>0){d[a-1]=1;for(let g=a-2;g>=0;--g)d[g]=d[g+1]*u[g+1]}let h=y.getArrayFromDType(e,i*a);for(let g=0;g0?o[a-1]+1:0;if(p<0)throw new Error(v.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=t.slice();m[0]=p;let f=m.reduce((w,C)=>w*C,1),d=y.getArrayFromDType(e,f);if(a===0)return p>0&&d.fill(i),[d,m];if(p<=0)throw new Error(v.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let h=0,g=1,x=0,b=o[h];for(;;){let w=0;if(g=w)throw new Error(v.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(v.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>x&&d.fill(i,x*l,b*l);for(let C=h;C=u[0])throw new Error(v.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(C,n[C],u[0]));for(let _=0;_a)break}return xMath.sqrt(r)),gJ=Et(As,r=>Math.sqrt(r)),uF={kernelName:As,backendName:"cpu",kernelFunc:gJ};var sT=Qt((r,t)=>{let e=r-t;return e*e}),xJ=oe(Rs,sT),cF={kernelName:Rs,backendName:"cpu",kernelFunc:xJ};function lw(r,t,e,n){let o=wt(r,t.dtype);for(let s=0;s0?0:a-u),f=0;f+=l*this.leftPad.length;for(let b=0;bb.forEach(w=>h[g++]=w);for(let b=0;b0){x(t[m+p-1]);for(let b=0;b0){let u=e[0];if(u!==0)throw new Error(`First split value must be 0, got ${u}`);for(let l=1;l=u;if(c=c&&e[l]<=n,!c)throw new Error(`Invalid split value ${e[l]}, must be in [${u}, ${n}]`);u=e[l]}if(u!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${u}`)}let s=o-1,i=y.getArrayFromDType("int32",o);if(n===0||o===0){let u=new Array(n);for(let l=0;l<=s;++l)i[l]=0;return[u,i]}i[0]=0;for(let u=1;u<=s;++u){let l=e[u]-e[u-1],c=0;this.nGramWidths.forEach(p=>{c+=this.getNumNGrams(l,p)}),this.preserveShort&&l>0&&c===0&&(c=1),i[u]=i[u-1]+c}let a=new Array(i[s]);for(let u=0;u{let m=e[u+1]-e[u],f=this.getNumNGrams(m,p);this.createNGrams(t,l,a,c,f,p),c+=f}),this.preserveShort&&c===i[u]){let p=e[u+1]-e[u];if(p===0)continue;let m=p+2*this.padWidth,f=1;this.createNGrams(t,l,a,c,f,m)}}return[a,i]}};function Dc(r,t,e,n,o,s,i,a){return new iT(e,n,o,s,i,a).compute(r,t)}function yJ(r,t,e,n){if(!r.length)return;if(t.length===0){for(let s=0;sr-t),bJ=od((r,t,e,n)=>({real:r-e,imag:t-n})),Vh=oe(Fs,aT,bJ),pF={kernelName:Fs,backendName:"cpu",kernelFunc:Vh};function uw(r,t){let e=new Array(r.rank);for(let o=0;o{let e=t.value-r.value;return e===0?r.index-t.index:e};function mF(r,t,e=0,n=r.length-1){for(;n>e;){if(n-e>600){let a=n-e+1,u=t-e+1,l=Math.log(a),c=.5*Math.exp(2*l/3),p=.5*Math.sqrt(l*c*(a-c)/a)*Math.sign(u-a/2),m=Math.max(e,Math.floor(t-u*c/a+p)),f=Math.min(n,Math.floor(t+(a-u)*c/a+p));mF(r,t,m,f)}let o=r[t],s=e,i=n;for(y.swap(r,e,t),Gh(r[n],o)>0&&y.swap(r,e,n);s0;)i=i-1}Gh(r[e],o)===0?y.swap(r,e,i):(i=i+1,y.swap(r,i,n)),i<=t&&(e=i+1),t<=i&&(n=i-1)}}function cw(r,t,e,n,o){let s=t[t.length-1],[i,a]=[r.length/s,s],u=y.getTypedArrayFromDType(e,i*n),l=y.getTypedArrayFromDType("int32",i*n);for(let p=0;pd[w]={value:b,index:w}),n{for(let g=0;gnew Nu,1);var lT=Et(ts,r=>r>=0?r:Math.exp(r)-1),fF={kernelName:ts,backendName:"cpu",kernelFunc:lT};function uT(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n;tt([o],"leakyRelu");let i=y.sizeFromShape(o.shape),a=e.data.get(o.dataId).values,u=y.getTypedArrayFromDType("float32",i);for(let l=0;lr<0?t*r:r);function cT(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t;tt([n,o],"prelu");let s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,[a,u]=CJ(n.shape,o.shape,s,i,"float32");return e.makeTensorInfo(u,"float32",a)}var hF={kernelName:bs,backendName:"cpu",kernelFunc:cT};var pT=Et(Cs,r=>Math.max(0,r)),gF={kernelName:Cs,backendName:"cpu",kernelFunc:pT};var mT=Et(vs,r=>Math.min(Math.max(0,r),6)),xF={kernelName:vs,backendName:"cpu",kernelFunc:mT};function Oc(r,t,e,n,o){if(e==="linear")return Kr({inputs:{x:t},backend:r});if(e==="relu")return pT({inputs:{x:t},backend:r});if(e==="elu")return lT({inputs:{x:t},backend:r});if(e==="relu6")return mT({inputs:{x:t},backend:r});if(e==="prelu")return cT({inputs:{x:t,alpha:n},backend:r});if(e==="leakyrelu")return uT({inputs:{x:t},backend:r,attrs:{alpha:o}});if(e==="sigmoid")return oT({inputs:{x:t},backend:r});throw new Error(`Activation ${e} has not been implemented for the CPU backend.`)}function Yt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{shape:s}=n,i=y.sizeFromShape(o.shape),a=y.inferFromImplicitShape(s,i),u=y.sizeFromShape(a);y.assert(i===u,()=>`The new shape (${a}) has ${u} elements and the old shape (${o.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),e.incRef(o.dataId);let l=e.data.get(o.dataId);if(l.complexTensorInfos!=null){let c=l.complexTensorInfos.real,p=l.complexTensorInfos.imag;c.shape=a,p.shape=a}return{dataId:o.dataId,shape:a,dtype:o.dtype}}var yF={kernelName:di,backendName:"cpu",kernelFunc:Yt};function fT(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;tt([o,s],"matMul");let u=o.shape.length,l=s.shape.length,c=i?o.shape[u-2]:o.shape[u-1],p=a?s.shape[l-1]:s.shape[l-2],m=i?o.shape[u-1]:o.shape[u-2],f=a?s.shape[l-2]:s.shape[l-1],d=o.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=Vr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)).concat([m,f]);y.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${o.shape} and ${s.shape} and transposeA=${i} and transposeB=${a} must match.`);let C=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],_=Yt({inputs:{x:o},backend:e,attrs:{shape:C}}),A=Yt({inputs:{x:s},backend:e,attrs:{shape:N}}),$=i?_.shape[1]:_.shape[2],F=i?_.shape[2]:_.shape[1],P=a?A.shape[1]:A.shape[2],V=Math.max(g,x),G=e.data.get(_.dataId).values,W=e.data.get(A.dataId).values,q=y.computeStrides(_.shape),H=y.computeStrides(A.shape),[j,Y,Z]=i?[q[0],1,q[1]]:[q[0],q[1],1],[et,rt,ot]=a?[1,H[1],H[0]]:[H[1],1,H[0]],at=F*P,nt=wt([V,F,P],_.dtype),st=nt.values,dt=e.blockSize;for(let ht=0;htMath.acos(r)),CF={kernelName:oa,backendName:"cpu",kernelFunc:SJ};var vJ=Et(sa,r=>Math.acosh(r)),IF={kernelName:sa,backendName:"cpu",kernelFunc:vJ};function NJ(r){let{inputs:t,backend:e}=r,n=t;tt(t,"addN");let o=n.map(a=>e.data.get(a.dataId).values),s=wt(n[0].shape,n[0].dtype),i=s.values;for(let a=0;ab&&(b=N,w=C)}f[g]=w}return l.forEach(g=>e.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,"int32",f)}var TF={kernelName:Wo,backendName:"cpu",kernelFunc:EJ};function _J(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n;tt(o,"argMin");let i=y.parseAxisParam(s,o.shape),a=v.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Ve({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=v.getInnerMostAxes(i.length,u.shape.length)),i=[i[0]],v.assertAxesAreInnerMostDims("argMin",i,u.shape.length);let[c,p]=v.computeOutAndReduceShapes(u.shape,i),m=y.sizeFromShape(c),f=y.makeZerosTypedArray(m,"int32"),d=y.sizeFromShape(p),h=e.data.get(u.dataId).values;for(let g=0;ge.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,"int32",f)}var kF={kernelName:kl,backendName:"cpu",kernelFunc:_J};var AJ=Et(la,r=>Math.asin(r)),EF={kernelName:la,backendName:"cpu",kernelFunc:AJ};var $J=Et(ua,r=>Math.asinh(r)),_F={kernelName:ua,backendName:"cpu",kernelFunc:$J};var DJ=Et(ca,r=>Math.atan(r)),AF={kernelName:ca,backendName:"cpu",kernelFunc:DJ};var RJ=Qt((r,t)=>Math.atan2(r,t)),FJ=oe(ma,RJ),$F={kernelName:ma,backendName:"cpu",kernelFunc:FJ};var OJ=Et(pa,r=>Math.atanh(r)),DF={kernelName:pa,backendName:"cpu",kernelFunc:OJ};function ud(r,t,e,n,o,s){let i=o.strideHeight,a=o.strideWidth,u=o.dilationHeight,l=o.dilationWidth,c=o.effectiveFilterHeight,p=o.effectiveFilterWidth,m=o.padInfo.top,f=o.padInfo.left,d=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,h=wt(o.outShape,e),g=h.values,x=o.outShape[1]*o.outShape[2]*o.outShape[3],b=o.outShape[2]*o.outShape[3],w=o.outShape[3];for(let C=0;CY?Y=dt:s==="avg"&&(Z+=dt,et++)}if(isNaN(Y))break}let rt=G+W*w+A;g[rt]=s==="avg"?Z/et:Y}}}return h}function fw(r,t,e,n,o=!1,s=!1){let i=wt(n.outShape,"int32"),a=n.strideHeight,u=n.strideWidth,l=n.dilationHeight,c=n.dilationWidth,p=n.effectiveFilterHeight,m=n.effectiveFilterWidth,f=n.padInfo.top,d=n.padInfo.left,h=wt(t,e,r);for(let g=0;gP&&(P=j,o?V=s?((g*n.inHeight+G)*n.inWidth+q)*n.inChannels+x:(G*n.inWidth+q)*n.inChannels+x:V=W*m+H)}}i.set(V,g,b,_,x)}}return i}function dw(r,t,e,n,o,s){let i=o.strideDepth,a=o.strideHeight,u=o.strideWidth,l=o.dilationDepth,c=o.dilationHeight,p=o.dilationWidth,m=o.effectiveFilterDepth,f=o.effectiveFilterHeight,d=o.effectiveFilterWidth,h=o.padInfo.front,g=o.padInfo.top,x=o.padInfo.left,b=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,w=wt(o.outShape,e),C=w.values,N=o.outShape[1]*o.outShape[2]*o.outShape[3]*o.outShape[4],_=o.outShape[2]*o.outShape[3]*o.outShape[4],A=o.outShape[3]*o.outShape[4],$=o.outShape[4];for(let F=0;Fkt?kt=We:s==="avg"&&(_t+=We,Vt++),isNaN(kt))break}if(isNaN(kt))break}if(isNaN(kt))break}let Zt=bt+G;C[Zt]=s==="avg"?_t/Vt:kt}}}}return w}function RF(r,t){let e=wt(t.outShape,"int32"),n=t.strideDepth,o=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,a=t.dilationHeight,u=t.dilationWidth,l=t.effectiveFilterDepth,c=t.effectiveFilterHeight,p=t.effectiveFilterWidth,m=t.padInfo.front,f=t.padInfo.top,d=t.padInfo.left;for(let h=0;h=W&&(W=ot,q=j*c*p+Z*c+rt)}}}e.set(q,h,x,N,F,g)}}}return e}function PJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;tt(o,"avgPool");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(v.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=v.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Kr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=ud(m,o.shape,o.dtype,f,c,"avg");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var FF={kernelName:Uo,backendName:"cpu",kernelFunc:PJ};function LJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;tt(o,"avgPool3d");let c=v.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=dw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,"avg");return e.makeTensorInfo(m.shape,"float32",m.values)}var OF={kernelName:El,backendName:"cpu",kernelFunc:LJ};function MJ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;tt([o,s],"avgPool3DGrad");let c=v.computePool3DInfo(s.shape,i,a,1,u,l),p=c.strideDepth,m=c.strideHeight,f=c.strideWidth,d=c.filterDepth,h=c.filterHeight,g=c.filterWidth,x=c.dilationDepth,b=c.dilationHeight,w=c.dilationWidth,C=c.effectiveFilterDepth,N=c.effectiveFilterHeight,_=c.effectiveFilterWidth,A=C-1-c.padInfo.front,$=_-1-c.padInfo.left,F=N-1-c.padInfo.top,P=wt(s.shape,"float32"),V=1/(d*h*g),G=e.bufferSync(o);for(let W=0;W=c.outDepth||Math.floor(nt)!==nt))for(let st=0;st=c.outHeight||Math.floor(dt)!==dt))for(let ht=0;ht<_;ht+=w){let bt=(rt+ht)/f;if(bt<0||bt>=c.outWidth||Math.floor(bt)!==bt)continue;let kt=G.get(W,nt,dt,bt,q);ot+=kt}}}P.set(ot*V,W,H,j,Y,q)}return e.makeTensorInfo(P.shape,P.dtype,P.values)}var PF={kernelName:lp,backendName:"cpu",kernelFunc:MJ};function zJ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;tt([o,s],"avgPoolGrad");let{filterSize:a,strides:u,pad:l}=n,c=v.computePool2DInfo(i.shape,a,u,1,l),p=c.strideHeight,m=c.strideWidth,f=c.filterHeight,d=c.filterWidth,h=c.dilationHeight,g=c.dilationWidth,x=c.effectiveFilterHeight,b=c.effectiveFilterWidth,w=b-1-c.padInfo.left,C=x-1-c.padInfo.top,N=wt(i.shape,"float32"),_=1/(f*d),A=e.data.get(o.dataId).values,$=wt(o.shape,"float32",A);for(let F=0;F=c.outHeight||Math.floor(Y)!==Y))for(let Z=0;Z=c.outWidth||Math.floor(et)!==et)continue;let rt=$.get(F,Y,et,P);H+=rt}}N.set(H*_,F,V,G,P)}return e.makeTensorInfo(N.shape,N.dtype,N.values)}var LF={kernelName:ap,backendName:"cpu",kernelFunc:zJ};function BJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,scale:s,offset:i,mean:a,variance:u}=t;y.assert(a.shape.length===u.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),y.assert(i==null||a.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),y.assert(s==null||a.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),tt([o,a,u,s,i],"batchNorm");let{varianceEpsilon:l}=n;l==null&&(l=.001);let c=e.data.get(o.dataId).values,p=e.data.get(a.dataId).values,m=e.data.get(u.dataId).values,f=s?e.data.get(s.dataId).values:new Float32Array([1]),d=i?e.data.get(i.dataId).values:new Float32Array([0]),h=new Float32Array(c.length),g=d.length,x=f.length,b=m.length,w=p.length,C=0,N=0,_=0,A=0;for(let $=0;$=g&&(C=0),N>=w&&(N=0),_>=x&&(_=0),A>=b&&(A=0);return e.makeTensorInfo(o.shape,o.dtype,h)}var MF={kernelName:os,backendName:"cpu",kernelFunc:BJ};function VJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;tt([o],"batchToSpaceND");let a=s.reduce((x,b)=>x*b),u=v.getReshaped(o.shape,s,a),l=v.getPermuted(u.length,s.length),c=v.getReshapedPermuted(o.shape,s,a),p=v.getSliceBeginCoords(i,s.length),m=v.getSliceSize(c,i,s.length),f=Yt({inputs:{x:o},backend:e,attrs:{shape:u}}),d=Ve({inputs:{x:f},backend:e,attrs:{perm:l}}),h=Yt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Fo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var zF={kernelName:ai,backendName:"cpu",kernelFunc:VJ};function GJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i}=n,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,l=sd(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var BF={kernelName:up,backendName:"cpu",kernelFunc:GJ};function WJ(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,a=v.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],"int32",Int32Array.from(a))}var VF={kernelName:cp,backendName:"cpu",kernelFunc:WJ};var UJ=Et(uo,(r,t)=>{let e=t;return r>e.clipValueMax?e.clipValueMax:r{let{x:t}=r.inputs,e=r.backend,n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId),s=o.complexTensorInfos.real,i=o.complexTensorInfos.imag,a=e.data.get(s.dataId).values,u=e.data.get(i.dataId).values;for(let l=0;lh.shape);v.assertParamsConsistent(i,s);let a=v.computeOutShape(t.map(h=>h.shape),s);if(y.sizeFromShape(a)===0)return e.makeTensorInfo(a,t[0].dtype,[]);let u=t.filter(h=>y.sizeFromShape(h.shape)>0);if(u.length===1)return Kr({inputs:{x:u[0]},backend:e});if(u[0].dtype==="complex64"){let h=u.map(C=>Ao({inputs:{input:C},backend:e})),g=u.map(C=>ji({inputs:{input:C},backend:e})),x=Tu({inputs:h,backend:e,attrs:{axis:s}}),b=Tu({inputs:g,backend:e,attrs:{axis:s}}),w=wr({inputs:{real:x,imag:b},backend:e});return h.forEach(C=>e.disposeIntermediateTensorInfo(C)),g.forEach(C=>e.disposeIntermediateTensorInfo(C)),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(b),w}let l=u.map(h=>{let x=[-1,y.sizeFromShape(h.shape.slice(s))];return Yt({inputs:{x:h},backend:e,attrs:{shape:x}})}),c=l.map(h=>({vals:e.data.get(h.dataId).values,shape:h.shape}));a=v.computeOutShape(l.map(h=>h.shape),1);let p=l[0].shape[0]===1,m=Ec(c,a,t[0].dtype,p),f=v.computeOutShape(u.map(h=>h.shape),s),d=e.makeTensorInfo(f,t[0].dtype,m);return l.forEach(h=>e.disposeIntermediateTensorInfo(h)),d}var HF={kernelName:li,backendName:"cpu",kernelFunc:Tu};function dT(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dataFormat:u,dilations:l,dimRoundingMode:c}=n;tt([o,s],"conv2d");let p=v.convertConv2DDataFormat(u),m=v.computeConv2DInfo(o.shape,s.shape,i,l,a,c,!1,p),f=m.filterHeight,d=m.filterWidth,h=m.dilationHeight,g=m.dilationWidth,x=m.padInfo.left,b=m.padInfo.top,w=m.dataFormat==="channelsLast",C=new pe(m.outShape,o.dtype),N=y.computeStrides(o.shape),_=y.computeStrides(s.shape),A=N[0],$=w?N[1]:N[2],F=w?N[2]:1,P=w?1:N[1],V=C.strides[0],G=w?C.strides[1]:C.strides[2],W=w?C.strides[2]:1,q=w?1:C.strides[1],H=e.data.get(o.dataId).values,j=e.data.get(s.dataId).values,Y=C.values;for(let Z=0;Z=m.inHeight)continue;let ht=st*_[0],bt=et+dt*$;for(let kt=0;kt=m.inWidth)continue;let he=ht+Zt*_[1],jt=bt+ce*F,ke=he;for(let fe=0;fe=l.inDepth)continue;let Z=j*F[0],et=V+Y*$[1];for(let rt=0;rt=l.inHeight)continue;let dt=Z+nt*F[1],ht=et+st*$[2];for(let bt=0;bt=l.inWidth)continue;let ce=dt+Vt*F[2],he=ht+Zt*l.inChannels,jt=ce;for(let ke=0;keMath.cos(r)),JF={kernelName:Xo,backendName:"cpu",kernelFunc:ZJ};var JJ=Et(Yo,r=>Math.cosh(r)),QF={kernelName:Yo,backendName:"cpu",kernelFunc:JJ};function QJ(r){let{inputs:t,backend:e,attrs:n}=r,{image:o,boxes:s,boxInd:i}=t,{cropSize:a,method:u,extrapolationValue:l}=n,[c,p,m,f]=o.shape,d=s.shape[0],[h,g]=a,x=wt([d,h,g,f],"float32"),b=e.data.get(s.dataId).values,w=e.data.get(i.dataId).values,C=e.data.get(o.dataId).values,N=y.computeStrides(o.shape),_=y.computeStrides(x.shape);for(let A=0;A=c)continue;let q=h>1?(V-F)*(p-1)/(h-1):0,H=g>1?(G-P)*(m-1)/(g-1):0;for(let j=0;j1?F*(p-1)+j*q:.5*(F+V)*(p-1);if(Y<0||Y>p-1){for(let Z=0;Z1?P*(m-1)+ot*H:.5*(P+G)*(m-1);if(at<0||at>m-1){for(let ht=0;ht1?P*(m-1)+Z*H:.5*(P+G)*(m-1);if(et<0||et>m-1){for(let at=0;atx+d-b-1:(x,b)=>x+b;for(let x=0;xx+d-b-1:(x,b)=>x+b;for(let x=0;x`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`);let a=o.shape[0],u=o.shape[1],l=o.shape[2],c=o.shape[3],p=u*s,m=l*s,f=c/(s*s),d=e.data.get(o.dataId).values,h=new Float32Array(a*p*m*f),g=0;for(let x=0;x`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${m}'`);let f=v.computeConv2DInfo(o.shape,s.shape,i,m,a,l,!0),{filterHeight:d,filterWidth:h,dilationHeight:g,dilationWidth:x,padInfo:b}=f,w=b.left,C=b.top,N=f.outChannels/f.inChannels,_=new pe(f.outShape,o.dtype),A=e.data.get(o.dataId).values,$=e.data.get(s.dataId).values,F=_.values;for(let P=0;P=f.inHeight)continue;let Z=j*p[0],et=V+Y*c[1];for(let rt=0;rt=f.inWidth)continue;let dt=Z+nt*p[1],ht=et+st*f.inChannels,bt=ot,kt=dt;for(let _t=0;_t{let{x:n,filter:o}=r,{strides:s,pad:i,dilations:a}=e,u=t,l=u.data.get(n.dataId).values,c=n.shape.length,p=u.data.get(o.dataId).values,m=o.shape.length,{batchSize:f,inHeight:d,inWidth:h,inChannels:g,outHeight:x,outWidth:b,padInfo:w,strideHeight:C,strideWidth:N,filterHeight:_,filterWidth:A,dilationHeight:$,dilationWidth:F,outShape:P}=v.computeDilation2DInfo(n.shape,o.shape,s,i,"NHWC",a),V=y.sizeFromShape(P),G=P.length,W=y.getArrayFromDType(n.dtype,V);for(let H=0;H=0&&st=0&&htot&&(ot=_t)}}}let at=y.locToIndex([H,j,Z,rt],G,y.computeStrides(P));W[at]=ot}}}return{dataId:u.write(y.toTypedArray(W,n.dtype),P,n.dtype),shape:P,dtype:n.dtype}}};var cO={kernelName:Xd,backendName:"cpu",kernelFunc:({inputs:r,backend:t,attrs:e})=>{let{x:n,filter:o,dy:s}=r,{strides:i,pad:a,dilations:u}=e,l=t,c=y.toNestedArray(n.shape,l.data.get(n.dataId).values),p=y.toNestedArray(o.shape,l.data.get(o.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:w,strideWidth:C,filterHeight:N,filterWidth:_,dilationHeight:A,dilationWidth:$,outShape:F}=v.computeDilation2DInfo(n.shape,o.shape,i,a,"NHWC",u);y.assert(s.rank===F.length,()=>`Error in ${Xd}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let P=y.toNestedArray(F,l.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(o.shape,o.dtype);for(let W=0;W=0&&nt=0&&dtet&&(et=ht,rt=at,ot=st)}}}V[rt][ot][Z]+=P[W][q][j][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),o.shape,o.dtype),shape:o.shape,dtype:o.dtype}}};var pO={kernelName:jd,backendName:"cpu",kernelFunc:({inputs:r,backend:t,attrs:e})=>{let{x:n,filter:o,dy:s}=r,{strides:i,pad:a,dilations:u}=e,l=t,c=y.toNestedArray(n.shape,l.data.get(n.dataId).values),p=y.toNestedArray(o.shape,l.data.get(o.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:w,strideWidth:C,filterHeight:N,filterWidth:_,dilationHeight:A,dilationWidth:$,outShape:F}=v.computeDilation2DInfo(n.shape,o.shape,i,a,"NHWC",u);y.assert(s.rank===F.length,()=>`Error in ${jd}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let P=y.toNestedArray(F,l.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(n.shape,n.dtype);for(let W=0;W=0&&nt=0&&dtet&&(et=ht,rt=nt,ot=dt)}}}V[W][rt][ot][Z]+=P[W][q][j][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}};function hl(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;tt(o,"sum");let a;o.dtype==="bool"?a=$o({inputs:{x:o},backend:e,attrs:{dtype:"int32"}}):a=Kr({inputs:{x:o},backend:e});let u=a.shape.length,l=y.parseAxisParam(s,a.shape),c=v.getAxesPermutation(l,u),p=l,m=a;c!=null&&(m=Ve({inputs:{x:a},backend:e,attrs:{perm:c}}),p=v.getInnerMostAxes(p.length,u)),v.assertAxesAreInnerMostDims("sum",p,m.shape.length);let[f,d]=v.computeOutAndReduceShapes(m.shape,p),h=v.upcastType(m.dtype,"int32"),g=nd(e,f,h),x=y.sizeFromShape(d),b=e.data.get(g.dataId).values,w=e.data.get(m.dataId).values;for(let C=0;C=0&&(m=hl({inputs:{x:m},backend:e,attrs:{axis:l[h]-(i.length-f),keepDims:!1}}),d.push(m)),f--)}for(let h of d)h!==m&&e.disposeIntermediateTensorInfo(h);return m}var fO={kernelName:bp,backendName:"cpu",kernelFunc:aQ};function lQ(r){let{inputs:t,backend:e}=r,{dy:n,y:o}=t;tt([n,o],"eluGrad");let s=new Float32Array(y.sizeFromShape(o.shape)),i=e.data.get(o.dataId).values,a=e.data.get(n.dataId).values;for(let u=0;u=1?s[u]=a[u]:s[u]=a[u]*(l+1)}return e.makeTensorInfo(o.shape,"float32",s)}var dO={kernelName:wp,backendName:"cpu",kernelFunc:lQ};var uQ=v.ERF_P,cQ=v.ERF_A1,pQ=v.ERF_A2,mQ=v.ERF_A3,fQ=v.ERF_A4,dQ=v.ERF_A5,hQ=Et(ga,r=>{let t=Math.sign(r),e=Math.abs(r),n=1/(1+uQ*e);return t*(1-((((dQ*n+fQ)*n+mQ)*n+pQ)*n+cQ)*n*Math.exp(-e*e))}),hO={kernelName:ga,backendName:"cpu",kernelFunc:hQ};function cd(r){let{inputs:t,backend:e,attrs:n}=r,{input:o}=t,{dim:s}=n,i=o.shape.length,a=o.shape.slice(),u=s;return s<0&&(y.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+s+1),a.splice(u,0,1),Yt({inputs:{x:o},backend:e,attrs:{shape:a}})}var gO={kernelName:ui,backendName:"cpu",kernelFunc:cd};var gQ=Qt((r,t)=>r/t),Wh=oe(Qo,gQ),Uh={kernelName:Qo,backendName:"cpu",kernelFunc:Wh};function hw(r,t,e){let n=r.shape,o=n[0],s=n[1],i=e.data.get(r.dataId),a=i.complexTensorInfos.real,u=i.complexTensorInfos.imag,l=[o,s],c=y.sizeFromShape(l),p=y.getTypedArrayFromDType("float32",c),m=y.getTypedArrayFromDType("float32",c);for(let g=0;g{let{image:n}=r,o=e,s=y.getTypedArrayFromDType(n.dtype,y.sizeFromShape(n.shape)),[i,a,u,l]=n.shape,c=o.data.get(n.dataId).values;for(let m=0;m=0&&wMath.floor(r/t)),SQ=oe(ns,IQ,null,"int32"),wO={kernelName:ns,backendName:"cpu",kernelFunc:SQ};function vQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=dT({inputs:{x:o,filter:s},backend:e,attrs:{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m}});if(i){let g=h;if(c==="NCHW"&&i.shape.length===1&&i.shape[0]!==1){let x=Yt({inputs:{x:i},backend:e,attrs:{shape:[i.shape[0],1,1]}});h=Ki({inputs:{a:h,b:x},backend:e}),e.disposeIntermediateTensorInfo(x)}else h=Ki({inputs:{a:h,b:i},backend:e});e.disposeIntermediateTensorInfo(g)}if(f){let g=h;if(c==="NCHW"&&f==="prelu"&&a.shape.length===1&&a.shape[0]!==1){let x=Yt({inputs:{x:a},backend:e,attrs:{shape:[a.shape[0],1,1]}});h=Oc(e,h,f,x,d),e.disposeIntermediateTensorInfo(x)}else h=Oc(e,h,f,a,d);e.disposeIntermediateTensorInfo(g)}return h}var CO={kernelName:Ii,backendName:"cpu",kernelFunc:vQ};function NQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=hT({inputs:{x:o,filter:s},backend:e,attrs:{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m}});if(i){let g=h;h=Ki({inputs:{a:h,b:i},backend:e}),e.disposeIntermediateTensorInfo(g)}if(f){let g=h;h=Oc(e,h,f,a,d),e.disposeIntermediateTensorInfo(g)}return h}var IO={kernelName:Si,backendName:"cpu",kernelFunc:NQ};function TQ(r){let{inputs:t,backend:e}=r,{params:n,indices:o}=t,s=y.sizeFromShape(n.shape),i=o.shape,a=i[i.length-1],[u,l,c,p]=v.prepareAndValidate(n,o);if(l===0)return e.makeTensorInfo(u,n.dtype,[]);let m=e.data.get(o.dataId).values,f=e.bufferSync(n),d=Qb(m,f,n.dtype,l,a,c,p,n.shape,s);return e.makeTensorInfo(u,n.dtype,d.values)}var SO={kernelName:wa,backendName:"cpu",kernelFunc:TQ};function kQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,indices:s}=t,{axis:i,batchDims:a}=n;tt([o,s],"gatherV2");let u=y.parseAxisParam(i,o.shape)[0],l=e.data.get(s.dataId).values,c=o.shape[u];for(let C=0;C=0,()=>`GatherV2: the index value ${N} is not in [0, ${c-1}]`)}let p=a;a==null&&(p=0);let m=y.sizeFromShape(s.shape),f=v.segment_util.collectGatherOpShapeInfo(o,s,u,p),d=Yt({inputs:{x:o},backend:e,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),h=Yt({inputs:{x:s},backend:e,attrs:{shape:[f.batchSize,m/f.batchSize]}}),g=[f.batchSize,f.outerSize,m/f.batchSize,f.sliceSize],x=e.bufferSync(h),b=e.bufferSync(d),w=tw(b,x,g);return e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.makeTensorInfo(f.outputShape,w.dtype,w.values)}var vO={kernelName:ci,backendName:"cpu",kernelFunc:kQ};function EQ(r){let{inputs:t,backend:e}=r,{input:n}=t,o=y.sizeFromShape(n.shape),s=n.shape[n.shape.length-1],i=o/s,a=Yt({inputs:{x:n},backend:e,attrs:{shape:[i,s]}}),u=hw(a,!0,e),l=Yt({inputs:{x:u},backend:e,attrs:{shape:n.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(u),l}var NO={kernelName:Ip,backendName:"cpu",kernelFunc:EQ};var _Q=Et(Ia,r=>Number.isFinite(r)?1:0,"bool"),TO={kernelName:Ia,backendName:"cpu",kernelFunc:_Q};var AQ=Et(Sa,r=>Math.abs(r)===1/0?1:0,"bool"),kO={kernelName:Sa,backendName:"cpu",kernelFunc:AQ};var $Q=Et(va,r=>Number.isNaN(r)?1:0,"bool"),EO={kernelName:va,backendName:"cpu",kernelFunc:$Q};function DQ(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=ew(n,o,s);return t.makeTensorInfo([i.length],"float32",i)}var _O={kernelName:vp,backendName:"cpu",kernelFunc:DQ};var RQ=Et(ka,r=>Math.log1p(r)),AO={kernelName:ka,backendName:"cpu",kernelFunc:RQ};var FQ=Qt((r,t)=>r&&t),OQ=oe(Ea,FQ,null,"bool"),$O={kernelName:Ea,backendName:"cpu",kernelFunc:OQ};var PQ=Et(_a,r=>r?0:1,"bool"),DO={kernelName:_a,backendName:"cpu",kernelFunc:PQ};var LQ=Qt((r,t)=>r||t),MQ=oe(Aa,LQ,null,"bool"),RO={kernelName:Aa,backendName:"cpu",kernelFunc:MQ};function zQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n;tt(o,"LRN");let l=o.shape[3],c=l-1,p=e.data.get(o.dataId).values,m=y.sizeFromShape(o.shape),f=new Float32Array(m);function d(h){let g=h%l,x=h-g+Math.max(0,g-s),b=h-g+Math.min(g+s,c),w=0;for(;x<=b;x++){let C=p[x];w+=C*C}return w}for(let h=0;h`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=v.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Kr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=ud(m,o.shape,o.dtype,f,c,"max");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var LO={kernelName:cs,backendName:"cpu",kernelFunc:VQ};function GQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;tt(o,"maxPool3d");let c=v.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=dw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,"max");return e.makeTensorInfo(m.shape,"float32",m.values)}var MO={kernelName:Fl,backendName:"cpu",kernelFunc:GQ};function WQ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;tt([o,s],"maxPool3DGrad");let c=v.computePool3DInfo(s.shape,i,a,1,u,l),p=e.bufferSync(s),m=RF(p,c),f=c.strideDepth,d=c.strideHeight,h=c.strideWidth,g=c.dilationDepth,x=c.dilationHeight,b=c.dilationWidth,w=c.effectiveFilterDepth,C=c.effectiveFilterHeight,N=c.effectiveFilterWidth,_=w-1-c.padInfo.front,A=N-1-c.padInfo.left,$=C-1-c.padInfo.top,F=wt(s.shape,"float32"),P=e.bufferSync(o);for(let V=0;V=c.outDepth||Math.floor(ot)!==ot))for(let at=0;at=c.outHeight||Math.floor(nt)!==nt))for(let st=0;st=c.outWidth||Math.floor(dt)!==dt)continue;let ht=w*C*N-1-m.get(V,ot,nt,dt,G),bt=rt*C*N+at*N+st,kt=ht===bt?1:0;if(kt===0)continue;let _t=P.get(V,ot,nt,dt,G);et+=_t*kt}}}F.set(et,V,W,q,H,G)}return e.makeTensorInfo(F.shape,F.dtype,F.values)}var zO={kernelName:kp,backendName:"cpu",kernelFunc:WQ};function UQ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;tt([s,i],"maxPoolGrad");let{filterSize:u,strides:l,pad:c,dimRoundingMode:p}=n,m=v.computePool2DInfo(a.shape,u,l,1,c,p),f=e.data.get(a.dataId).values,d=wt(m.outShape,a.dtype,fw(f,a.shape,a.dtype,m).values),h=m.strideHeight,g=m.strideWidth,x=m.dilationHeight,b=m.dilationWidth,w=m.effectiveFilterHeight,C=m.effectiveFilterWidth,N=C-1-m.padInfo.left,_=w-1-m.padInfo.top,A=wt(a.shape,"float32"),$=e.data.get(o.dataId).values,F=wt(o.shape,"float32",$);for(let P=0;P=m.outHeight||Math.floor(Z)!==Z))for(let et=0;et=m.outWidth||Math.floor(rt)!==rt)continue;let ot=w*C-1-d.get(P,Z,rt,V),at=Y*C+et,nt=ot===at?1:0;if(nt===0)continue;let st=F.get(P,Z,rt,V);j+=st*nt}}A.set(j,P,G,W,V)}return e.makeTensorInfo(A.shape,A.dtype,A.values)}var BO={kernelName:Tp,backendName:"cpu",kernelFunc:UQ};function VO(r,t,e,n,o){let s=y.computeStrides(t),i=ud(r,t,e,s,o,"max"),a=fw(r,t,e,o,!0,n);return[i.values,a.values]}var GO={kernelName:Ep,backendName:"cpu",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;tt(n,"MaxPoolWithArgmax");let l=u.data.get(n.dataId).values,c=v.computePool2DInfo(n.shape,o,s,[1,1],i),[p,m]=VO(l,n.shape,n.dtype,a,c),f=u.write(p,c.outShape,n.dtype),d=u.write(m,c.outShape,n.dtype);return[{dataId:f,shape:c.outShape,dtype:n.dtype},{dataId:d,shape:c.outShape,dtype:"int32"}]}};function HQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=y.parseAxisParam(s,o.shape),l=v.computeOutAndReduceShapes(o.shape,a)[1],c=y.sizeFromShape(l),p=[],m=e.makeTensorInfo([],"float32",new Float32Array([c]));p.push(m);let f=$o({inputs:{x:o},backend:e,attrs:{dtype:"float32"}});p.push(f);let d=Wh({inputs:{a:f,b:m},backend:e});p.push(d);let h=hl({inputs:{x:d},backend:e,attrs:{axis:s,keepDims:i}});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),h}var WO={kernelName:ps,backendName:"cpu",kernelFunc:HQ};function qQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;tt(o,"min");let a=y.parseAxisParam(s,o.shape),u=a,l=v.getAxesPermutation(u,o.shape.length),c=o;l!=null&&(c=Ve({inputs:{x:o},backend:e,attrs:{perm:l}}),u=v.getInnerMostAxes(u.length,o.shape.length)),v.assertAxesAreInnerMostDims("min",u,c.shape.length);let[p,m]=v.computeOutAndReduceShapes(c.shape,u),f=y.sizeFromShape(m),d=y.makeZerosTypedArray(y.sizeFromShape(p),c.dtype),h=e.data.get(c.dataId).values;for(let x=0;xw[0]+o.shape[C]+w[1]),u=s.map(w=>w[0]),l=s.map((w,C)=>w[0]+o.shape[C]),c=i==="reflect"?0:1,p=e.data.get(o.dataId).values,m=o.shape.length,f=y.computeStrides(o.shape),d=y.sizeFromShape(a),h=a.length,g=y.computeStrides(a),x=y.getTypedArrayFromDType(o.dtype,d);for(let w=0;w=l[_]&&(C[_]=(l[_]-1)*2-C[_]+c);C=C.map((_,A)=>_-u[A]);let N=y.locToIndex(C,m,f);x[w]=p[N]}return{dataId:e.write(x,a,o.dtype),shape:a,dtype:o.dtype}}var HO={kernelName:ds,backendName:"cpu",kernelFunc:KQ};var jQ=Qt((r,t)=>{let e=r%t;return r<0&&t<0||r>=0&&t>=0?e:(e+t)%t}),XQ=oe($a,jQ),qO={kernelName:$a,backendName:"cpu",kernelFunc:XQ};var jO=Tl(fh());function yT(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=o.shape.length,a=s;if(a===-1&&(a=i-1),a!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${a}`);let u=y.parseAxisParam([a],o.shape),l=xT({inputs:{x:o},backend:e,attrs:{reductionIndices:u,keepDims:!1}}),c=v.expandShapeToKeepDim(l.shape,u),p=Yt({inputs:{x:l},backend:e,attrs:{shape:c}}),m=Vh({inputs:{a:o,b:p},backend:e}),f=UN({inputs:{x:m},backend:e}),d=hl({inputs:{x:f},backend:e,attrs:{axis:u,keepDims:!1}}),h=Yt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Wh({inputs:{a:f,b:h},backend:e});return e.disposeIntermediateTensorInfo(l),e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var KO={kernelName:Ds,backendName:"cpu",kernelFunc:yT};function YQ(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n;tt(o,"multinomial");let u=a?o:yT({inputs:{logits:o},backend:e,attrs:{dim:-1}}),l=u.shape[0],c=u.shape[1],p=e.data.get(u.dataId).values,m=[l,s],f=y.makeZerosTypedArray(y.sizeFromShape(m),"int32");for(let d=0;d=0&&p[m]{y.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),y.assert(i===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let a=[],u=t.map(c=>{let p=cd({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Tu({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var nP={kernelName:fi,backendName:"cpu",kernelFunc:bT};function o9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{paddings:s,constantValue:i}=n;tt(o,"pad");let a=s.map((b,w)=>b[0]+o.shape[w]+b[1]),u=s.map(b=>b[0]),l=e.data.get(o.dataId).values,c=y.sizeFromShape(o.shape),p=o.shape.length,m=y.computeStrides(o.shape),f=y.sizeFromShape(a),d=a.length,h=y.computeStrides(a),g=y.getTypedArrayFromDType(o.dtype,f);i!==0&&g.fill(i);for(let b=0;b_+u[A]),N=y.locToIndex(C,d,h);g[N]=l[b]}return{dataId:e.write(g,a,o.dtype),shape:a,dtype:o.dtype}}var gw={kernelName:xs,backendName:"cpu",kernelFunc:o9};var s9=Qt((r,t)=>Math.pow(r,t)),i9=oe(ys,s9),oP={kernelName:ys,backendName:"cpu",kernelFunc:i9};function a9(r){let{inputs:t,backend:e,attrs:n}=r,{paramsNestedSplits:o,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:a}=n,u=o.map(x=>e.data.get(x.dataId).values),l=o.map(x=>x.shape),c=e.data.get(s.dataId).values,p=e.data.get(i.dataId).values,[m,f,d]=nw(u,l,c,s.shape,s.dtype,p,i.shape,a),h=m.map(x=>e.makeTensorInfo([x.length],"int32",x)),g=e.makeTensorInfo(d,s.dtype,f);return h.concat([g])}var sP={kernelName:Ap,backendName:"cpu",kernelFunc:a9};function l9(r){let{inputs:t,backend:e}=r,{starts:n,limits:o,deltas:s}=t,i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=ow(i,n.shape,n.dtype,a,o.shape,u,s.shape),p=e.makeTensorInfo([l.length],"int32",l),m=e.makeTensorInfo([c.length],n.dtype,c);return[p,m]}var iP={kernelName:$p,backendName:"cpu",kernelFunc:l9};function u9(r){let{inputs:t,backend:e,attrs:n}=r,{shape:o,values:s,defaultValue:i,rowPartitionTensors:a}=t,{rowPartitionTypes:u}=n,l=e.data.get(o.dataId).values,c=e.data.get(s.dataId).values,p=e.data.get(i.dataId).values,m=a.map(g=>e.data.get(g.dataId).values),f=a.map(g=>g.shape),[d,h]=sw(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var aP={kernelName:Dp,backendName:"cpu",kernelFunc:u9};function c9(r){let{backend:t,attrs:e}=r,{start:n,stop:o,dtype:s,step:i}=e,a=Ac(n,o,i,s);return t.makeTensorInfo([a.length],s,a)}var lP={kernelName:Ol,backendName:"cpu",kernelFunc:c9};var p9=Et(Pa,r=>1/r),uP={kernelName:Pa,backendName:"cpu",kernelFunc:p9};function m9(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n;tt(o,"resizeBilinear");let u=y.computeStrides(o.shape),[l,c]=a,[p,m,f,d]=o.shape,h=e.data.get(o.dataId).values,g=new Float32Array(y.sizeFromShape([p,l,c,d])),x=[s&&l>1?m-1:m,s&&c>1?f-1:f],b=[s&&l>1?l-1:l,s&&c>1?c-1:c],w=0,C=x[0]/b[0],N=x[1]/b[1];for(let _=0;_1?l-1:l,i&&f>1?c-1:c],g=[i&&m>1?m-1:m,i&&f>1?f-1:f],x=h[0]/g[0],b=h[1]/g[1],w=e.data.get(s.dataId).values,C=0;for(let N=0;N1?m-1:m,s&&c>1?f-1:f],b=[s&&l>1?l-1:l,s&&c>1?c-1:c],w=x[0]/b[0],C=x[1]/b[1],N=0;for(let _=0;_1?c-1:c,i&&d>1?p-1:p],b=[i&&f>1?f-1:f,i&&d>1?d-1:d],w=x[0]/b[0],C=x[1]/b[1],N=1/w,_=1/C,A=Math.ceil(N)*2+2,$=Math.ceil(_)*2+2;for(let F=0;F=f)continue;let nt=P+at*u[1],st=at*w,dt=Math.min(c-1,i?Math.round(st):Math.floor(st));if(V===dt)for(let ht=0;ht<$;ht++){let bt=ht+Z;if(bt<0||bt>=d)continue;let kt=nt+bt*u[2],_t=bt*C,Vt=Math.min(p-1,i?Math.round(_t):Math.floor(_t));H===Vt&&(rt+=g[kt+et])}}h[j+et]=rt}}}}return e.makeTensorInfo(o.shape,o.dtype,h)}var fP={kernelName:Fp,backendName:"cpu",kernelFunc:h9};function g9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n;tt(o,"reverse");let i=o.shape.length,a=y.parseAxisParam(s,o.shape);if(i===0)return Kr({inputs:{x:o},backend:e});let u=new pe(o.shape,o.dtype),l=e.bufferSync(o);for(let c=0;cm[f]=o.shape[f]-1-m[f]),u.set(l.get(...m),...p)}return e.makeTensorInfo(u.shape,u.dtype,u.values)}var dP={kernelName:Ns,backendName:"cpu",kernelFunc:g9};var hP={kernelName:qa,backendName:"cpu",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=y.getTypedArrayFromDType(n.dtype,y.sizeFromShape(n.shape)),[l,c,p,m]=n.shape,[f,d]=v.getImageCenter(i,c,p),h=255,g=Math.sin(o),x=Math.cos(o),b=a.data.get(n.dataId).values;for(let C=0;C=0&&q=0&&H{let t=Math.floor(r);return r-t<.5?Math.floor(r):r-t>.5?Math.ceil(r):t%2===0?t:t+1}),gP={kernelName:Ts,backendName:"cpu",kernelFunc:x9};function y9(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o,updates:s}=t,{shape:i}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=v.calculateShapes(s,o,i),m=!0,f=e.bufferSync(o),d=e.bufferSync(s),h=dl(f,d,i,p,l,u,a,c,0,m);return e.makeTensorInfo(i,h.dtype,h.values)}var xP={kernelName:La,backendName:"cpu",kernelFunc:y9};function b9(r,t){let e=0,n=r.length,o=0;for(;e1||o.shape.length===1?1:y.sizeFromShape(o.shape.slice(1));for(let d=0;dr>=0?v9*r:S9*(Math.exp(r)-1)),CP={kernelName:Ma,backendName:"cpu",kernelFunc:N9};var T9=Et(Ba,r=>r<0?-1:r>0?1:0),IP={kernelName:Ba,backendName:"cpu",kernelFunc:T9};var k9=Et(Es,r=>Math.sin(r)),SP={kernelName:Es,backendName:"cpu",kernelFunc:k9};var E9=Et(za,r=>Math.sinh(r)),vP={kernelName:za,backendName:"cpu",kernelFunc:E9};var _9=11920928955078125e-23,NP=Math.log(_9)+2,A9=Et(Va,r=>{let t=r>-NP,e=r{let m=[...c];m[a]=p;let f=Fo({inputs:{x:o},backend:e,attrs:{begin:l,size:m}});return l[a]+=p,f})}var RP={kernelName:yi,backendName:"cpu",kernelFunc:L9};var FP={kernelName:zl,backendName:"cpu",kernelFunc:({inputs:r,backend:t})=>{let{x:e}=r,n=t;tt(e,"square");let o=n.data.get(e.dataId).values,s=new Float32Array(o.length);for(let a=0;a{let e=t;return isNaN(r)?NaN:r>0?1:e.alpha}),OP={kernelName:po,backendName:"cpu",kernelFunc:M9};function z9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n;tt(o,"stridedSlice");let{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Le.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=Yt({inputs:{x:o},backend:e,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let _=Le.computeOutShape(b,w,C),A=Fo({inputs:{x:o},backend:e,attrs:{begin:b,size:_}});N=Yt({inputs:{x:A},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(A)}else{let _=e.bufferSync(o),A=lw(f,_,C,b);N=e.makeTensorInfo(d,A.dtype,A.values)}return N}var PP={kernelName:Wa,backendName:"cpu",kernelFunc:z9};function B9(r){let{inputs:t,backend:e,attrs:n}=r,{separator:o,nGramWidths:s,leftPad:i,rightPad:a,padWidth:u,preserveShortSequences:l}=n,{data:c,dataSplits:p}=t,m=e.data.get(c.dataId).values,f=e.data.get(p.dataId).values,[d,h]=Dc(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],"string",d),e.makeTensorInfo(p.shape,"int32",h)]}var LP={kernelName:Bl,backendName:"cpu",kernelFunc:B9};function V9(r){let{inputs:t,backend:e,attrs:n}=r,{skipEmpty:o}=n,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let a=e.data.get(s.dataId).values,u=e.data.get(i.dataId).values[0],[l,c,p]=Rc(a,u,o),m=c.length;return[e.makeTensorInfo([m,2],"int32",l),e.makeTensorInfo([m],"string",c),e.makeTensorInfo([2],"int32",new Int32Array(p))]}var MP={kernelName:Vl,backendName:"cpu",kernelFunc:V9};function G9(r){let{inputs:t,backend:e,attrs:n}=r,{numBuckets:o}=n,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(o<=0)throw new Error("Number of buckets must be at least 1");let i=e.data.get(s.dataId).values,a=Fc(i,o);return e.makeTensorInfo(s.shape,"int32",a)}var zP={kernelName:Gl,backendName:"cpu",kernelFunc:G9};var W9=kt(Os,r=>Math.tan(r)),BP={kernelName:Os,backendName:"cpu",kernelFunc:W9};var U9=kt(Ps,r=>Math.tanh(r)),VP={kernelName:Ps,backendName:"cpu",kernelFunc:U9};function H9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reps:s}=n;tt(o,"tile");let i=uw(e.bufferSync(o),s);return e.makeTensorInfo(i.shape,i.dtype,i.values)}var GP={kernelName:Jn,backendName:"cpu",kernelFunc:H9};function q9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{k:s,sorted:i}=n;tt(o,"topk");let a=e.data.get(o.dataId).values,[u,l]=cw(a,o.shape,o.dtype,s,i);return[e.makeTensorInfo(u.shape,u.dtype,u.values),e.makeTensorInfo(l.shape,l.dtype,l.values)]}var WP={kernelName:Ua,backendName:"cpu",kernelFunc:q9};function K9(r){let{inputs:t,attrs:e,backend:n}=r,{image:o,transforms:s}=t,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=e,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=y.computeStrides(o.shape),b=x[0],w=x[1],C=x[2],N=y.computeStrides(g),_=N[0],A=N[1],$=N[2],F=y.getTypedArrayFromDType(o.dtype,y.sizeFromShape(g));F.fill(u);let P=n.data.get(o.dataId).values,V=n.data.get(s.dataId).values;for(let W=0;Wt-1)if(t<=1)e=0;else{let n=2*t;e-=n*Math.trunc(e/n),e>=t&&(e=n-e-1)}return y.clamp(0,e,t-1)}function X9(r,t){let e=r;if(e<0)if(t<=1)e=0;else{let n=t-1;e+=t*(Math.trunc(-e/n)+1)}else if(e>t-1)if(t<=1)e=0;else{let n=t-1;e-=t*Math.trunc(e/n)}return y.clamp(0,e,t-1)}function Y9(r,t){return r}function Z9(r,t){return y.clamp(0,r,t-1)}function Kh(r,t,e,n,o,s,i,a,u,l,c){let p=i*n+a*o+u*s+l;return 0<=a&&ae.disposeIntermediateTensorInfo(d)),f}var jP={kernelName:Wl,backendName:"cpu",kernelFunc:rtt};var ntt=[wF,$R,CF,IF,PR,SF,vF,NF,TF,kF,EF,_F,AF,$F,DF,FF,OF,PF,LF,bF,MF,zF,BF,VF,OR,LR,GF,DR,WF,HF,qF,KF,jF,XF,YF,ZF,JF,QF,tO,eO,rO,nO,oO,sO,iO,aO,lO,uO,cO,pO,fO,fF,dO,MR,hO,zR,gO,BR,xO,yO,bO,VR,wO,CO,IO,SO,vO,GR,WR,RR,NO,UF,TO,kO,EO,dF,UR,HR,_O,qR,AO,$O,DO,RO,FO,OO,PO,KR,LO,MO,zO,BO,GO,WO,UO,jR,HO,qO,XO,XR,YR,YO,ZO,JO,ZR,QO,rP,nP,gw,oP,hF,QR,sP,iP,aP,lP,FR,Uh,uP,gF,xF,yF,cP,pP,mP,fP,dP,hP,gP,oF,xP,bP,wP,CP,iF,IP,SP,vP,aF,KO,TP,kP,EP,_P,AP,$P,DP,RP,uF,FP,cF,OP,PP,LP,MP,zP,pF,mO,BP,VP,GP,WP,HP,JR,qP,KP,jP,tP];for(let r of ntt)Lu(r);var dd={};Wt(dd,{assertNotComplex:()=>Qs,bindCanvasToFramebuffer:()=>mtt,bindColorTextureToFramebuffer:()=>Zh,bindTextureToProgramUniformSampler:()=>OT,bindTextureUnit:()=>JP,bindVertexBufferToProgramAttribute:()=>Iw,callAndCheck:()=>yt,canBeRepresented:()=>ST,createFragmentShader:()=>NT,createFramebuffer:()=>DT,createProgram:()=>TT,createStaticIndexBuffer:()=>_T,createStaticVertexBuffer:()=>ET,createTexture:()=>AT,createVertexShader:()=>vT,getBatchDim:()=>xl,getExtensionOrThrow:()=>pd,getFramebufferErrorMessage:()=>QP,getMaxTexturesInShader:()=>MT,getNumChannels:()=>ctt,getProgramUniformLocation:()=>FT,getProgramUniformLocationOrThrow:()=>RT,getRowsCols:()=>yl,getShapeAs3D:()=>fd,getTextureShapeFromLogicalShape:()=>PT,getWebGLDisjointQueryTimerVersion:()=>zT,getWebGLErrorMessage:()=>ZP,getWebGLMaxTextureSize:()=>LT,hasExtension:()=>Wn,isCapableOfRenderingToFloatTexture:()=>BT,isDownloadFloatTextureEnabled:()=>VT,isReshapeFree:()=>Eu,isWebGLFenceEnabled:()=>GT,isWebGLVersionEnabled:()=>vw,linkProgram:()=>kT,logShaderSourceAndInfoLog:()=>Cw,resetMaxTextureSize:()=>ftt,resetMaxTexturesInShader:()=>dtt,unbindColorTextureFromFramebuffer:()=>Sw,unbindTextureUnit:()=>ptt,validateFramebuffer:()=>md,validateProgram:()=>Yh,validateTextureSize:()=>$T});var Pc={},xw={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function wT(r,t){Pc[r]=t}function Gn(r,t){if(!(r in Pc)||t!=null){let n=stt(r,t);if(n!==null)Pc[r]=n;else return console.log("Could not get context for WebGL version",r),null}let e=Pc[r];return e==null||e.isContextLost()?(delete Pc[r],Gn(r)):(e.disable(e.DEPTH_TEST),e.disable(e.STENCIL_TEST),e.disable(e.BLEND),e.disable(e.DITHER),e.disable(e.POLYGON_OFFSET_FILL),e.disable(e.SAMPLE_COVERAGE),e.enable(e.SCISSOR_TEST),e.enable(e.CULL_FACE),e.cullFace(e.BACK),Pc[r])}function ott(r){if(typeof OffscreenCanvas!="undefined"&&r===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function stt(r,t){if(r!==1&&r!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let e=t==null?ott(r):t;return e.addEventListener("webglcontextlost",n=>{n.preventDefault(),delete Pc[r]},!1),z().getBool("SOFTWARE_WEBGL_ENABLED")&&(xw.failIfMajorPerformanceCaveat=!1),r===1?e.getContext("webgl",xw)||e.getContext("experimental-webgl",xw):e.getContext("webgl2",xw)}var ku;(function(r){r[r.DENSE=0]="DENSE",r[r.SHARED_BATCH=1]="SHARED_BATCH"})(ku||(ku={}));var jr;(function(r){r[r.RENDER=0]="RENDER",r[r.UPLOAD=1]="UPLOAD",r[r.PIXELS=2]="PIXELS",r[r.DOWNLOAD=3]="DOWNLOAD"})(jr||(jr={}));var Pr;(function(r){r[r.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",r[r.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",r[r.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",r[r.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",r[r.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"})(Pr||(Pr={}));function Lc(r,t){return[t,r]}function XP(r,t){return r*t}function jh(r){let t=y.sizeFromShape(r),e=Math.ceil(t/4);return y.sizeToSquarishShape(e)}function Xi(r,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(r/2))]}function YP(r,t){let[e,n]=Xi(r,t);return e*n*4}function Xh(r,t){let e=r,n,o,s,i,a,u,l,c,p,m;return z().getNumber("WEBGL_VERSION")===2?(n=e.R32F,o=e.R16F,s=e.RGBA16F,i=e.RGBA32F,a=e.RED,l=4,c=1,p=e.HALF_FLOAT,m=e.FLOAT,u=e.RGBA8):(n=r.RGBA,o=r.RGBA,s=r.RGBA,i=e.RGBA,a=r.RGBA,l=4,c=4,p=t!=null?t.HALF_FLOAT_OES:null,m=r.FLOAT,u=r.RGBA),{internalFormatFloat:n,internalFormatHalfFloat:o,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:a,downloadTextureFormat:u,downloadUnpackNumChannels:l,defaultNumChannels:c,textureTypeHalfFloat:p,textureTypeFloat:m}}function yt(r,t){let e=t();return z().getBool("DEBUG")&&itt(r),e}function itt(r){let t=r.getError();if(t!==r.NO_ERROR)throw new Error("WebGL Error: "+ZP(r,t))}var att=596e-10,ltt=65504;function ST(r){return!!(z().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||r===0||attr.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function vT(r,t){let e=gl(r,()=>r.createShader(r.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(yt(r,()=>r.shaderSource(e,t)),yt(r,()=>r.compileShader(e)),r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw console.log(r.getShaderInfoLog(e)),new Error("Failed to compile vertex shader.");return e}function NT(r,t){let e=gl(r,()=>r.createShader(r.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(yt(r,()=>r.shaderSource(e,t)),yt(r,()=>r.compileShader(e)),z().get("ENGINE_COMPILE_ONLY"))return e;if(r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw Cw(t,r.getShaderInfoLog(e)),new Error("Failed to compile fragment shader.");return e}var utt=/ERROR: [0-9]+:([0-9]+):/g;function Cw(r,t){let e=utt.exec(t);if(e==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(r);return}let n=+e[1],o=r.split(` + ${s.shape}`);if(o.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=ld(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var $P={kernelName:Ml,backendName:"cpu",kernelFunc:O9};function P9(r){let{inputs:t,backend:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=t,{outputShape:a}=n,{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=v.calculateShapes(s,o,a),f=!1,d=e.bufferSync(o),h;switch(s.dtype){case"bool":{let g=e.bufferSync(s),x=Boolean(e.data.get(i.dataId).values[0]);h=dl(d,g,a,m,c,l,u,p,x,f);break}case"float32":{let g=e.bufferSync(s),x=e.data.get(i.dataId).values[0];h=dl(d,g,a,m,c,l,u,p,x,f);break}case"int32":{let g=e.bufferSync(s),x=e.data.get(i.dataId).values[0];h=dl(d,g,a,m,c,l,u,p,x,f);break}case"string":{let g=e.bufferSync(s),x=y.decodeString(e.data.get(i.dataId).values[0]);h=dl(d,g,a,m,c,l,u,p,x,f);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return e.makeTensorInfo(a,h.dtype,h.values)}var DP={kernelName:Lp,backendName:"cpu",kernelFunc:P9};function L9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=n,a=y.parseAxisParam(i,o.shape)[0],u=v.prepareSplitSize(o,s,a),l=new Array(o.shape.length).fill(0),c=o.shape.slice();return u.map(p=>{let m=[...c];m[a]=p;let f=Fo({inputs:{x:o},backend:e,attrs:{begin:l,size:m}});return l[a]+=p,f})}var RP={kernelName:yi,backendName:"cpu",kernelFunc:L9};var FP={kernelName:zl,backendName:"cpu",kernelFunc:({inputs:r,backend:t})=>{let{x:e}=r,n=t;tt(e,"square");let o=n.data.get(e.dataId).values,s=new Float32Array(o.length);for(let a=0;a{let e=t;return isNaN(r)?NaN:r>0?1:e.alpha}),OP={kernelName:po,backendName:"cpu",kernelFunc:M9};function z9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n;tt(o,"stridedSlice");let{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Le.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=Yt({inputs:{x:o},backend:e,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let _=Le.computeOutShape(b,w,C),A=Fo({inputs:{x:o},backend:e,attrs:{begin:b,size:_}});N=Yt({inputs:{x:A},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(A)}else{let _=e.bufferSync(o),A=lw(f,_,C,b);N=e.makeTensorInfo(d,A.dtype,A.values)}return N}var PP={kernelName:Wa,backendName:"cpu",kernelFunc:z9};function B9(r){let{inputs:t,backend:e,attrs:n}=r,{separator:o,nGramWidths:s,leftPad:i,rightPad:a,padWidth:u,preserveShortSequences:l}=n,{data:c,dataSplits:p}=t,m=e.data.get(c.dataId).values,f=e.data.get(p.dataId).values,[d,h]=Dc(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],"string",d),e.makeTensorInfo(p.shape,"int32",h)]}var LP={kernelName:Bl,backendName:"cpu",kernelFunc:B9};function V9(r){let{inputs:t,backend:e,attrs:n}=r,{skipEmpty:o}=n,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let a=e.data.get(s.dataId).values,u=e.data.get(i.dataId).values[0],[l,c,p]=Rc(a,u,o),m=c.length;return[e.makeTensorInfo([m,2],"int32",l),e.makeTensorInfo([m],"string",c),e.makeTensorInfo([2],"int32",new Int32Array(p))]}var MP={kernelName:Vl,backendName:"cpu",kernelFunc:V9};function G9(r){let{inputs:t,backend:e,attrs:n}=r,{numBuckets:o}=n,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(o<=0)throw new Error("Number of buckets must be at least 1");let i=e.data.get(s.dataId).values,a=Fc(i,o);return e.makeTensorInfo(s.shape,"int32",a)}var zP={kernelName:Gl,backendName:"cpu",kernelFunc:G9};var W9=Et(Os,r=>Math.tan(r)),BP={kernelName:Os,backendName:"cpu",kernelFunc:W9};var U9=Et(Ps,r=>Math.tanh(r)),VP={kernelName:Ps,backendName:"cpu",kernelFunc:U9};function H9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reps:s}=n;tt(o,"tile");let i=uw(e.bufferSync(o),s);return e.makeTensorInfo(i.shape,i.dtype,i.values)}var GP={kernelName:Jn,backendName:"cpu",kernelFunc:H9};function q9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{k:s,sorted:i}=n;tt(o,"topk");let a=e.data.get(o.dataId).values,[u,l]=cw(a,o.shape,o.dtype,s,i);return[e.makeTensorInfo(u.shape,u.dtype,u.values),e.makeTensorInfo(l.shape,l.dtype,l.values)]}var WP={kernelName:Ua,backendName:"cpu",kernelFunc:q9};function K9(r){let{inputs:t,attrs:e,backend:n}=r,{image:o,transforms:s}=t,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=e,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=y.computeStrides(o.shape),b=x[0],w=x[1],C=x[2],N=y.computeStrides(g),_=N[0],A=N[1],$=N[2],F=y.getTypedArrayFromDType(o.dtype,y.sizeFromShape(g));F.fill(u);let P=n.data.get(o.dataId).values,V=n.data.get(s.dataId).values;for(let W=0;Wt-1)if(t<=1)e=0;else{let n=2*t;e-=n*Math.trunc(e/n),e>=t&&(e=n-e-1)}return y.clamp(0,e,t-1)}function X9(r,t){let e=r;if(e<0)if(t<=1)e=0;else{let n=t-1;e+=t*(Math.trunc(-e/n)+1)}else if(e>t-1)if(t<=1)e=0;else{let n=t-1;e-=t*Math.trunc(e/n)}return y.clamp(0,e,t-1)}function Y9(r,t){return r}function Z9(r,t){return y.clamp(0,r,t-1)}function Kh(r,t,e,n,o,s,i,a,u,l,c){let p=i*n+a*o+u*s+l;return 0<=a&&ae.disposeIntermediateTensorInfo(d)),f}var jP={kernelName:Wl,backendName:"cpu",kernelFunc:rtt};var ntt=[wF,$R,CF,IF,PR,SF,vF,NF,TF,kF,EF,_F,AF,$F,DF,FF,OF,PF,LF,bF,MF,zF,BF,VF,OR,LR,GF,DR,WF,HF,qF,KF,jF,XF,YF,ZF,JF,QF,tO,eO,rO,nO,oO,sO,iO,aO,lO,uO,cO,pO,fO,fF,dO,MR,hO,zR,gO,BR,xO,yO,bO,VR,wO,CO,IO,SO,vO,GR,WR,RR,NO,UF,TO,kO,EO,dF,UR,HR,_O,qR,AO,$O,DO,RO,FO,OO,PO,KR,LO,MO,zO,BO,GO,WO,UO,jR,HO,qO,XO,XR,YR,YO,ZO,JO,ZR,QO,rP,nP,gw,oP,hF,QR,sP,iP,aP,lP,FR,Uh,uP,gF,xF,yF,cP,pP,mP,fP,dP,hP,gP,oF,xP,bP,wP,CP,iF,IP,SP,vP,aF,KO,TP,kP,EP,_P,AP,$P,DP,RP,uF,FP,cF,OP,PP,LP,MP,zP,pF,mO,BP,VP,GP,WP,HP,JR,qP,KP,jP,tP];for(let r of ntt)Lu(r);var dd={};Wt(dd,{assertNotComplex:()=>Qs,bindCanvasToFramebuffer:()=>mtt,bindColorTextureToFramebuffer:()=>Zh,bindTextureToProgramUniformSampler:()=>OT,bindTextureUnit:()=>JP,bindVertexBufferToProgramAttribute:()=>Iw,callAndCheck:()=>yt,canBeRepresented:()=>ST,createFragmentShader:()=>NT,createFramebuffer:()=>DT,createProgram:()=>TT,createStaticIndexBuffer:()=>_T,createStaticVertexBuffer:()=>ET,createTexture:()=>AT,createVertexShader:()=>vT,getBatchDim:()=>xl,getExtensionOrThrow:()=>pd,getFramebufferErrorMessage:()=>QP,getMaxTexturesInShader:()=>MT,getNumChannels:()=>ctt,getProgramUniformLocation:()=>FT,getProgramUniformLocationOrThrow:()=>RT,getRowsCols:()=>yl,getShapeAs3D:()=>fd,getTextureShapeFromLogicalShape:()=>PT,getWebGLDisjointQueryTimerVersion:()=>zT,getWebGLErrorMessage:()=>ZP,getWebGLMaxTextureSize:()=>LT,hasExtension:()=>Wn,isCapableOfRenderingToFloatTexture:()=>BT,isDownloadFloatTextureEnabled:()=>VT,isReshapeFree:()=>Eu,isWebGLFenceEnabled:()=>GT,isWebGLVersionEnabled:()=>vw,linkProgram:()=>kT,logShaderSourceAndInfoLog:()=>Cw,resetMaxTextureSize:()=>ftt,resetMaxTexturesInShader:()=>dtt,unbindColorTextureFromFramebuffer:()=>Sw,unbindTextureUnit:()=>ptt,validateFramebuffer:()=>md,validateProgram:()=>Yh,validateTextureSize:()=>$T});var Pc={},xw={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function wT(r,t){Pc[r]=t}function Gn(r,t){if(!(r in Pc)||t!=null){let n=stt(r,t);if(n!==null)Pc[r]=n;else return console.log("Could not get context for WebGL version",r),null}let e=Pc[r];return e==null||e.isContextLost()?(delete Pc[r],Gn(r)):(e.disable(e.DEPTH_TEST),e.disable(e.STENCIL_TEST),e.disable(e.BLEND),e.disable(e.DITHER),e.disable(e.POLYGON_OFFSET_FILL),e.disable(e.SAMPLE_COVERAGE),e.enable(e.SCISSOR_TEST),e.enable(e.CULL_FACE),e.cullFace(e.BACK),Pc[r])}function ott(r){if(typeof OffscreenCanvas!="undefined"&&r===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function stt(r,t){if(r!==1&&r!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let e=t==null?ott(r):t;return e.addEventListener("webglcontextlost",n=>{n.preventDefault(),delete Pc[r]},!1),z().getBool("SOFTWARE_WEBGL_ENABLED")&&(xw.failIfMajorPerformanceCaveat=!1),r===1?e.getContext("webgl",xw)||e.getContext("experimental-webgl",xw):e.getContext("webgl2",xw)}var ku;(function(r){r[r.DENSE=0]="DENSE",r[r.SHARED_BATCH=1]="SHARED_BATCH"})(ku||(ku={}));var jr;(function(r){r[r.RENDER=0]="RENDER",r[r.UPLOAD=1]="UPLOAD",r[r.PIXELS=2]="PIXELS",r[r.DOWNLOAD=3]="DOWNLOAD"})(jr||(jr={}));var Pr;(function(r){r[r.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",r[r.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",r[r.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",r[r.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",r[r.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"})(Pr||(Pr={}));function Lc(r,t){return[t,r]}function XP(r,t){return r*t}function jh(r){let t=y.sizeFromShape(r),e=Math.ceil(t/4);return y.sizeToSquarishShape(e)}function Xi(r,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(r/2))]}function YP(r,t){let[e,n]=Xi(r,t);return e*n*4}function Xh(r,t){let e=r,n,o,s,i,a,u,l,c,p,m;return z().getNumber("WEBGL_VERSION")===2?(n=e.R32F,o=e.R16F,s=e.RGBA16F,i=e.RGBA32F,a=e.RED,l=4,c=1,p=e.HALF_FLOAT,m=e.FLOAT,u=e.RGBA8):(n=r.RGBA,o=r.RGBA,s=r.RGBA,i=e.RGBA,a=r.RGBA,l=4,c=4,p=t!=null?t.HALF_FLOAT_OES:null,m=r.FLOAT,u=r.RGBA),{internalFormatFloat:n,internalFormatHalfFloat:o,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:a,downloadTextureFormat:u,downloadUnpackNumChannels:l,defaultNumChannels:c,textureTypeHalfFloat:p,textureTypeFloat:m}}function yt(r,t){let e=t();return z().getBool("DEBUG")&&itt(r),e}function itt(r){let t=r.getError();if(t!==r.NO_ERROR)throw new Error("WebGL Error: "+ZP(r,t))}var att=596e-10,ltt=65504;function ST(r){return!!(z().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||r===0||attr.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function vT(r,t){let e=gl(r,()=>r.createShader(r.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(yt(r,()=>r.shaderSource(e,t)),yt(r,()=>r.compileShader(e)),r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw console.log(r.getShaderInfoLog(e)),new Error("Failed to compile vertex shader.");return e}function NT(r,t){let e=gl(r,()=>r.createShader(r.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(yt(r,()=>r.shaderSource(e,t)),yt(r,()=>r.compileShader(e)),z().get("ENGINE_COMPILE_ONLY"))return e;if(r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw Cw(t,r.getShaderInfoLog(e)),new Error("Failed to compile fragment shader.");return e}var utt=/ERROR: [0-9]+:([0-9]+):/g;function Cw(r,t){let e=utt.exec(t);if(e==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(r);return}let n=+e[1],o=r.split(` `),s=o.length.toString().length+2,i=o.map((p,m)=>y.rightPad((m+1).toString(),s)+p),a=0;for(let p=0;p`The new shape (${u}) has ${l} elements and the old shape (${o.shape}) has ${a} elements. The new shape and old shape must have the same number of elements.`);let c=i.texData.get(o.dataId);return c.isPacked&&!Eu(o.shape,u)&&!(c.texture!==null&&Eu(c.shape,u))?IM(o,u,i):(i.incRef(o.dataId),{dataId:o.dataId,shape:u,dtype:o.dtype})}var SM={kernelName:di,backendName:"webgl",kernelFunc:st};var rg=class{constructor(t,e){this.variableNames=["x"];let{windowSize:n,batchSize:o,inSize:s,outSize:i}=t;this.outputShape=[o,i];let a=Math.floor(n/4)*4,u=n%4,l="sumValue += dot(values, ones);";if(e!=null){let p=1/e;l=`sumValue += dot(values * ${y.isInt(p)?p.toPrecision(2):p}, ones);`}let c="";s%n>0&&(c=` + `}};var wM="return a * b;";function eg(r){let{inputs:t,backend:e}=r,{a:n,b:o}=t,s=v.upcastType(n.dtype,o.dtype);if(n.dtype==="complex64"){let a=e.texData.get(n.dataId),u=e.texData.get(o.dataId),l=new tg(fk.REAL,n.shape,o.shape),c=new tg(fk.IMAG,n.shape,o.shape),p=[{dataId:a.complexTensorInfos.real.dataId,dtype:a.complexTensorInfos.real.dtype,shape:n.shape},{dataId:a.complexTensorInfos.imag.dataId,dtype:a.complexTensorInfos.imag.dtype,shape:n.shape},{dataId:u.complexTensorInfos.real.dataId,dtype:u.complexTensorInfos.real.dtype,shape:o.shape},{dataId:u.complexTensorInfos.imag.dataId,dtype:u.complexTensorInfos.imag.dtype,shape:o.shape}],m=e.runWebGLProgram(l,p,"float32"),f=e.runWebGLProgram(c,p,"float32"),d=En({inputs:{real:m,imag:f},backend:e});return e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),d}if(e.shouldExecuteOnCPU([n,o])){let a=e.texData.get(n.dataId),u=e.texData.get(o.dataId),[l,c]=AL(n.shape,o.shape,a.values,u.values,s),p=e.makeTensorInfo(c,s),m=e.texData.get(p.dataId);return m.values=l,p}let i;return z().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new Oo(wM,n.shape,o.shape):i=new io(wM,n.shape,o.shape),e.runWebGLProgram(i,[n,o],s)}var CM={kernelName:hs,backendName:"webgl",kernelFunc:eg};function IM(r,t,e){let n=[xl(r.shape),...yl(r.shape)],o={dtype:r.dtype,shape:n,dataId:r.dataId},s=[xl(t),...yl(t)],i=new Id(s,n),a=!0,u=[n],l=e.runWebGLProgram(i,[o],r.dtype,u,a);return{dataId:l.dataId,shape:t,dtype:l.dtype}}function it(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{shape:s}=n,i=e,a=y.sizeFromShape(o.shape),u=y.inferFromImplicitShape(s,a),l=y.sizeFromShape(u);y.assert(a===l,()=>`The new shape (${u}) has ${l} elements and the old shape (${o.shape}) has ${a} elements. The new shape and old shape must have the same number of elements.`);let c=i.texData.get(o.dataId);return c.isPacked&&!Eu(o.shape,u)&&!(c.texture!==null&&Eu(c.shape,u))?IM(o,u,i):(i.incRef(o.dataId),{dataId:o.dataId,shape:u,dtype:o.dtype})}var SM={kernelName:di,backendName:"webgl",kernelFunc:it};var rg=class{constructor(t,e){this.variableNames=["x"];let{windowSize:n,batchSize:o,inSize:s,outSize:i}=t;this.outputShape=[o,i];let a=Math.floor(n/4)*4,u=n%4,l="sumValue += dot(values, ones);";if(e!=null){let p=1/e;l=`sumValue += dot(values * ${y.isInt(p)?p.toPrecision(2):p}, ones);`}let c="";s%n>0&&(c=` if (inIdx < 0 || inIdx >= ${s}) { return 0.0; } @@ -1524,7 +1524,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(result); } - `}};function Au(r,t,e){let n=z().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new qw(r.shape,t):new Hw(r.shape,t);return e.runWebGLProgram(n,[r],r.dtype)}function vM(r,t,e,n){let o=t,s=r.shape.length,i=y.parseAxisParam(o,r.shape),a=i,u=v.getAxesPermutation(a,s),l=u!=null,c=r;l&&(c=Au(r,u,n),a=v.getInnerMostAxes(a.length,s)),v.assertAxesAreInnerMostDims("sum",a,s);let[p,m]=v.computeOutAndReduceShapes(c.shape,a),f=p;e&&(f=v.expandShapeToKeepDim(p,i));let d=y.sizeFromShape(m),g=y.sizeFromShape(r.shape)/d,x=st({inputs:{x:c},attrs:{shape:[g,d]},backend:n}),b=Wu(r.dtype),w=Un(x,b,"sum",n),C=st({inputs:{x:w},attrs:{shape:f},backend:n});return n.disposeIntermediateTensorInfo(x),n.disposeIntermediateTensorInfo(w),l&&n.disposeIntermediateTensorInfo(c),C}function Wc(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;return vM(o,s,i,e)}var NM={kernelName:$s,backendName:"webgl",kernelFunc:Wc};function Oe(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{perm:s}=n,i=e,a=o.shape.length,u=new Array(a);for(let c=0;c`Error in matMul: inner shapes (${p}) and (${m}) of Tensors with shapes ${r.shape} and ${t.shape} and transposeA=${e} and transposeB=${n} must match.`);let N=e?[x,p,f]:[x,f,p],_=n?[b,d,m]:[b,m,d],A=st({inputs:{x:r},backend:o,attrs:{shape:N}}),$=st({inputs:{x:t},backend:o,attrs:{shape:_}}),F=[A,$],P=Math.max(x,b),V=e?A.shape[1]:A.shape[2],G=s!=null,W=i!=null,q=u==="leakyrelu",H=u!=null?bl(u,!0):null,j=G||W||q||H!=null,Y;if((f===1||d===1)&&V>dk&&j===!1){let et=A,rt=$;e&&(et=Oe({inputs:{x:A},backend:o,attrs:{perm:[0,2,1]}}),F.push(et)),n&&(rt=Oe({inputs:{x:$},backend:o,attrs:{perm:[0,2,1]}}),F.push(rt));let ot=d!==1,at=d===1,nt=et;ot&&(nt=st({inputs:{x:et},backend:o,attrs:{shape:[P,V,1]}}),F.push(nt));let it=d===1?2:1,dt=rt;at&&(dt=st({inputs:{x:rt},backend:o,attrs:{shape:[P,1,V]}}),F.push(dt));let ht=eg({inputs:{a:nt,b:dt},backend:o});Y=Wc({inputs:{x:ht},backend:o,attrs:{axis:it,keepDims:!0}}),F.push(ht)}else{let et=sr(r.dtype,t.dtype),rt=new vd(N,_,[P,f,d],e,n,G,H,W,q),ot=[A,$];if(s!=null&&ot.push(s),W&&ot.push(i),q){let at=o.makeTensorInfo([],"float32",y.createScalarValue(a,"float32"));ot.push(at),F.push(at)}Y=o.runWebGLProgram(rt,ot,et)}let Z=st({inputs:{x:Y},backend:o,attrs:{shape:C}});F.push(Y);for(let et of F)o.disposeIntermediateTensorInfo(et);return Z}function Cet(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s,bias:i,preluActivationWeights:a}=t,{transposeA:u,transposeB:l,activation:c,leakyreluAlpha:p}=n;return Uc({a:o,b:s,transposeA:u,transposeB:l,backend:e,bias:i,preluActivationWeights:a,leakyreluAlpha:p,activation:c})}var kM={kernelName:Ci,backendName:"webgl",kernelFunc:Cet};var EM="return abs(x);";function Iet(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])&&n.dtype!=="complex64"){let s=e.texData.get(n.dataId),i=Mw(s.values);return e.makeTensorInfo(n.shape,n.dtype,i)}let o;return z().getBool("WEBGL_PACK_UNARY_OPERATIONS")?o=new so(n.shape,EM):o=new tn(n.shape,EM),e.runWebGLProgram(o,[n],n.dtype)}var _M={kernelName:ii,backendName:"webgl",kernelFunc:Iet};var vet=fr+` + `}};function Au(r,t,e){let n=z().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new qw(r.shape,t):new Hw(r.shape,t);return e.runWebGLProgram(n,[r],r.dtype)}function vM(r,t,e,n){let o=t,s=r.shape.length,i=y.parseAxisParam(o,r.shape),a=i,u=v.getAxesPermutation(a,s),l=u!=null,c=r;l&&(c=Au(r,u,n),a=v.getInnerMostAxes(a.length,s)),v.assertAxesAreInnerMostDims("sum",a,s);let[p,m]=v.computeOutAndReduceShapes(c.shape,a),f=p;e&&(f=v.expandShapeToKeepDim(p,i));let d=y.sizeFromShape(m),g=y.sizeFromShape(r.shape)/d,x=it({inputs:{x:c},attrs:{shape:[g,d]},backend:n}),b=Wu(r.dtype),w=Un(x,b,"sum",n),C=it({inputs:{x:w},attrs:{shape:f},backend:n});return n.disposeIntermediateTensorInfo(x),n.disposeIntermediateTensorInfo(w),l&&n.disposeIntermediateTensorInfo(c),C}function Wc(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;return vM(o,s,i,e)}var NM={kernelName:$s,backendName:"webgl",kernelFunc:Wc};function Oe(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{perm:s}=n,i=e,a=o.shape.length,u=new Array(a);for(let c=0;c`Error in matMul: inner shapes (${p}) and (${m}) of Tensors with shapes ${r.shape} and ${t.shape} and transposeA=${e} and transposeB=${n} must match.`);let N=e?[x,p,f]:[x,f,p],_=n?[b,d,m]:[b,m,d],A=it({inputs:{x:r},backend:o,attrs:{shape:N}}),$=it({inputs:{x:t},backend:o,attrs:{shape:_}}),F=[A,$],P=Math.max(x,b),V=e?A.shape[1]:A.shape[2],G=s!=null,W=i!=null,q=u==="leakyrelu",H=u!=null?bl(u,!0):null,j=G||W||q||H!=null,Y;if((f===1||d===1)&&V>dk&&j===!1){let et=A,rt=$;e&&(et=Oe({inputs:{x:A},backend:o,attrs:{perm:[0,2,1]}}),F.push(et)),n&&(rt=Oe({inputs:{x:$},backend:o,attrs:{perm:[0,2,1]}}),F.push(rt));let ot=d!==1,at=d===1,nt=et;ot&&(nt=it({inputs:{x:et},backend:o,attrs:{shape:[P,V,1]}}),F.push(nt));let st=d===1?2:1,dt=rt;at&&(dt=it({inputs:{x:rt},backend:o,attrs:{shape:[P,1,V]}}),F.push(dt));let ht=eg({inputs:{a:nt,b:dt},backend:o});Y=Wc({inputs:{x:ht},backend:o,attrs:{axis:st,keepDims:!0}}),F.push(ht)}else{let et=sr(r.dtype,t.dtype),rt=new vd(N,_,[P,f,d],e,n,G,H,W,q),ot=[A,$];if(s!=null&&ot.push(s),W&&ot.push(i),q){let at=o.makeTensorInfo([],"float32",y.createScalarValue(a,"float32"));ot.push(at),F.push(at)}Y=o.runWebGLProgram(rt,ot,et)}let Z=it({inputs:{x:Y},backend:o,attrs:{shape:C}});F.push(Y);for(let et of F)o.disposeIntermediateTensorInfo(et);return Z}function Cet(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s,bias:i,preluActivationWeights:a}=t,{transposeA:u,transposeB:l,activation:c,leakyreluAlpha:p}=n;return Uc({a:o,b:s,transposeA:u,transposeB:l,backend:e,bias:i,preluActivationWeights:a,leakyreluAlpha:p,activation:c})}var kM={kernelName:Ci,backendName:"webgl",kernelFunc:Cet};var EM="return abs(x);";function Iet(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])&&n.dtype!=="complex64"){let s=e.texData.get(n.dataId),i=Mw(s.values);return e.makeTensorInfo(n.shape,n.dtype,i)}let o;return z().getBool("WEBGL_PACK_UNARY_OPERATIONS")?o=new so(n.shape,EM):o=new tn(n.shape,EM),e.runWebGLProgram(o,[n],n.dtype)}var _M={kernelName:ii,backendName:"webgl",kernelFunc:Iet};var vet=fr+` if (abs(x) > 1.) { return NAN; } @@ -1547,7 +1547,7 @@ return log(x + sqrt(x * x - 1.0));`,ket=Ct({opSnippet:Tet}),$M={kernelName:sa,ba vec4 result = ${o}; setOutput(result); } - `}};function Xw(r){let{inputs:t,backend:e}=r,n=t;if(n.length===1)return tr({inputs:{x:n[0]},backend:e});if(n.length>z().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let u=Math.floor(n.length/2),l=Xw({inputs:n.slice(0,u),backend:e}),c=Xw({inputs:n.slice(u),backend:e});return Xw({inputs:[l,c],backend:e})}let o=n.map(u=>u.dtype).reduce((u,l)=>sr(u,l)),s=n.map(u=>u.shape),a=z().getBool("WEBGL_PACK")?new jw(n[0].shape,s):new Kw(n[0].shape,s);return e.runWebGLProgram(a,n,o)}var FM={kernelName:Go,backendName:"webgl",kernelFunc:Xw};function _et(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=v.getAxesPermutation(l,a),p=o;c!=null&&(p=Oe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=v.getInnerMostAxes(l.length,a)),v.assertAxesAreInnerMostDims("all",l,a);let[m,f]=v.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=st({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Un(h,h.dtype,"all",e),x;if(i){let b=v.expandShapeToKeepDim(m,u);x=st({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=st({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var OM={kernelName:ia,backendName:"webgl",kernelFunc:_et};function Aet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=v.getAxesPermutation(l,a),p=o;c!=null&&(p=Oe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=v.getInnerMostAxes(l.length,a)),v.assertAxesAreInnerMostDims("any",l,a);let[m,f]=v.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=st({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Un(h,h.dtype,"any",e),x;if(i){let b=v.expandShapeToKeepDim(m,u);x=st({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=st({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var PM={kernelName:aa,backendName:"webgl",kernelFunc:Aet};var Yw=class{constructor(t,e,n){this.variableNames=["A"];let{windowSize:o,batchSize:s,outSize:i}=t;n||this.variableNames.push("bestIndicesA"),this.outputShape=[s,i];let a=e==="max"?">":"<",u=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` + `}};function Xw(r){let{inputs:t,backend:e}=r,n=t;if(n.length===1)return tr({inputs:{x:n[0]},backend:e});if(n.length>z().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let u=Math.floor(n.length/2),l=Xw({inputs:n.slice(0,u),backend:e}),c=Xw({inputs:n.slice(u),backend:e});return Xw({inputs:[l,c],backend:e})}let o=n.map(u=>u.dtype).reduce((u,l)=>sr(u,l)),s=n.map(u=>u.shape),a=z().getBool("WEBGL_PACK")?new jw(n[0].shape,s):new Kw(n[0].shape,s);return e.runWebGLProgram(a,n,o)}var FM={kernelName:Go,backendName:"webgl",kernelFunc:Xw};function _et(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=v.getAxesPermutation(l,a),p=o;c!=null&&(p=Oe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=v.getInnerMostAxes(l.length,a)),v.assertAxesAreInnerMostDims("all",l,a);let[m,f]=v.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=it({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Un(h,h.dtype,"all",e),x;if(i){let b=v.expandShapeToKeepDim(m,u);x=it({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=it({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var OM={kernelName:ia,backendName:"webgl",kernelFunc:_et};function Aet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=v.getAxesPermutation(l,a),p=o;c!=null&&(p=Oe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=v.getInnerMostAxes(l.length,a)),v.assertAxesAreInnerMostDims("any",l,a);let[m,f]=v.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=it({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Un(h,h.dtype,"any",e),x;if(i){let b=v.expandShapeToKeepDim(m,u);x=it({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=it({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var PM={kernelName:aa,backendName:"webgl",kernelFunc:Aet};var Yw=class{constructor(t,e,n){this.variableNames=["A"];let{windowSize:o,batchSize:s,outSize:i}=t;n||this.variableNames.push("bestIndicesA"),this.outputShape=[s,i];let a=e==="max"?">":"<",u=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -1629,7 +1629,7 @@ return log(x + sqrt(x * x - 1.0));`,ket=Ct({opSnippet:Tet}),$M={kernelName:sa,ba } setOutput(bestIndex); } - `}};function LM(r,t,e,n=null){let o=t.shape[0],s=t.shape[1];n!=null&&(o=n.shape[0],s=n.shape[1]);let i=v.computeOptimalWindowSize(s),a={windowSize:i,inSize:s,batchSize:o,outSize:Math.ceil(s/i)},u=new Yw(a,e,n==null),l=[t];n!=null&&l.push(n);let c=r.runWebGLProgram(u,l,"int32");if(c.shape[1]===1)return c;let p=LM(r,t,e,c);return r.disposeIntermediateTensorInfo(c),p}function MM(r,t,e,n=null){let o=n!=null?n.shape:t.shape,s=o[o.length-1],i=v.computeOptimalWindowSize(s),a=new Zw(o,i,e,n==null),u=n==null?[t]:[t,n],l=r.runWebGLProgram(a,u,"int32");if(l.shape.length===t.shape.length){let c=MM(r,t,e,l);return r.disposeIntermediateTensorInfo(l),c}return l}function Jw(r,t,e,n){let o=[e];if(v.assertAxesAreInnerMostDims("arg"+n.charAt(0).toUpperCase()+n.slice(1),o,t.shape.length),!z().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],i=r.texData.get(t.dataId),a=i!==null&&i.isPacked,u=t;a&&(u=r.unpackTensor(t),s.push(u));let[l,c]=v.computeOutAndReduceShapes(u.shape,o),p=y.sizeFromShape(c),m=st({inputs:{x:u},backend:r,attrs:{shape:[-1,p]}});s.push(m);let f=LM(r,m,n);s.push(f);let d=st({inputs:{x:f},backend:r,attrs:{shape:l}});return s.forEach(h=>r.disposeIntermediateTensorInfo(h)),d}return MM(r,t,n)}function $et(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=v.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Oe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=v.getInnerMostAxes(i.length,u.shape.length)),v.assertAxesAreInnerMostDims("argMax",[i[0]],u.shape.length);let c=Jw(e,u,i[0],"max");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var zM={kernelName:Wo,backendName:"webgl",kernelFunc:$et};function Det(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=v.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Oe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=v.getInnerMostAxes(i.length,u.shape.length)),v.assertAxesAreInnerMostDims("argMin",[i[0]],u.shape.length);let c=Jw(e,u,i[0],"min");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var BM={kernelName:kl,backendName:"webgl",kernelFunc:Det};var Ret=fr+` + `}};function LM(r,t,e,n=null){let o=t.shape[0],s=t.shape[1];n!=null&&(o=n.shape[0],s=n.shape[1]);let i=v.computeOptimalWindowSize(s),a={windowSize:i,inSize:s,batchSize:o,outSize:Math.ceil(s/i)},u=new Yw(a,e,n==null),l=[t];n!=null&&l.push(n);let c=r.runWebGLProgram(u,l,"int32");if(c.shape[1]===1)return c;let p=LM(r,t,e,c);return r.disposeIntermediateTensorInfo(c),p}function MM(r,t,e,n=null){let o=n!=null?n.shape:t.shape,s=o[o.length-1],i=v.computeOptimalWindowSize(s),a=new Zw(o,i,e,n==null),u=n==null?[t]:[t,n],l=r.runWebGLProgram(a,u,"int32");if(l.shape.length===t.shape.length){let c=MM(r,t,e,l);return r.disposeIntermediateTensorInfo(l),c}return l}function Jw(r,t,e,n){let o=[e];if(v.assertAxesAreInnerMostDims("arg"+n.charAt(0).toUpperCase()+n.slice(1),o,t.shape.length),!z().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],i=r.texData.get(t.dataId),a=i!==null&&i.isPacked,u=t;a&&(u=r.unpackTensor(t),s.push(u));let[l,c]=v.computeOutAndReduceShapes(u.shape,o),p=y.sizeFromShape(c),m=it({inputs:{x:u},backend:r,attrs:{shape:[-1,p]}});s.push(m);let f=LM(r,m,n);s.push(f);let d=it({inputs:{x:f},backend:r,attrs:{shape:l}});return s.forEach(h=>r.disposeIntermediateTensorInfo(h)),d}return MM(r,t,n)}function $et(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=v.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Oe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=v.getInnerMostAxes(i.length,u.shape.length)),v.assertAxesAreInnerMostDims("argMax",[i[0]],u.shape.length);let c=Jw(e,u,i[0],"max");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var zM={kernelName:Wo,backendName:"webgl",kernelFunc:$et};function Det(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=v.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Oe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=v.getInnerMostAxes(i.length,u.shape.length)),v.assertAxesAreInnerMostDims("argMin",[i[0]],u.shape.length);let c=Jw(e,u,i[0],"min");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var BM={kernelName:kl,backendName:"webgl",kernelFunc:Det};var Ret=fr+` if (abs(x) > 1.) { return NAN; } @@ -2111,7 +2111,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN ${u} setOutput(result); } - `}};function Zet(r,t,e,n){let o=n.texData.get(r.dataId),s=n.makeTensorInfo(e,r.dtype),i=n.texData.get(s.dataId);Object.assign(i,o),i.refCount=1,i.shape=e,i.dtype=r.dtype;let a=Le.computeFlatOffset(t,y.computeStrides(r.shape));o.slice&&(a+=o.slice.flatOffset),i.slice={flatOffset:a,origDataId:o.slice&&o.slice.origDataId||r.dataId};let u=n.dataRefCount.get(i.slice.origDataId)||1;return n.dataRefCount.set(i.slice.origDataId,u+1),s}function ri(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n,[a,u]=Le.parseSliceParams(o,s,i);if(Le.assertParamsValid(o,a,u),y.sizeFromShape(u)===0)return e.makeTensorInfo(u,o.dtype,[]);if(e.shouldExecuteOnCPU([o])||o.dtype==="string"){let p=e.texData.get(o.dataId),m=VL(p.values,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,m)}let{isPacked:l}=e.texData.get(o.dataId),c=Le.isSliceContinous(o.shape,a,u);if(l||!c){let p=z().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new oC(u):new nC(u),m=[a];return e.runWebGLProgram(p,[o],o.dtype,m)}return e.uploadToGPU(o.dataId),Zet(o,a,u,e)}var JM={kernelName:gi,backendName:"webgl",kernelFunc:ri};var Jet=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;y.assert(o.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let a=s.reduce((b,w)=>b*w),u=v.getReshaped(o.shape,s,a),l=v.getPermuted(u.length,s.length),c=v.getReshapedPermuted(o.shape,s,a),p=v.getSliceBeginCoords(i,s.length),m=v.getSliceSize(c,i,s.length),f=[],d=st({inputs:{x:o},backend:e,attrs:{shape:u}}),h=Oe({inputs:{x:d},backend:e,attrs:{perm:l}}),g=st({inputs:{x:h},backend:e,attrs:{shape:c}}),x=ri({inputs:{x:g},backend:e,attrs:{begin:p,size:m}});return f.push(d),f.push(h),f.push(g),f.forEach(b=>e.disposeIntermediateTensorInfo(b)),x},QM={kernelName:ai,backendName:"webgl",kernelFunc:Jet};function Qet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i}=n,a=e.readSync(o.dataId),u=e.readSync(s.dataId),l=Lw(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var tz={kernelName:up,backendName:"webgl",kernelFunc:Qet};function trt(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.readSync(n.dataId),i=e.readSync(o.dataId),a=v.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],"int32",Int32Array.from(a))}var ez={kernelName:cp,backendName:"webgl",kernelFunc:trt};var ert="return float(a != b);",gk=le({opSnippet:ert,cpuKernelImpl:DL,dtype:"bool"}),rz={kernelName:Da,backendName:"webgl",kernelFunc:gk};function wl(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return tr({inputs:{x:o.complexTensorInfos.real},backend:e})}var nz={kernelName:Rp,backendName:"webgl",kernelFunc:wl};var rrt="return float(int(x));";function oz(r,t){let e=new tn(r.shape,rrt),n=t.runWebGLProgram(e,[r],"int32");return{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}function xk(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s==="complex64"){if(o.dtype==="complex64")return tr({inputs:{x:o},backend:e});let i=Ne(o.shape),a=xk({inputs:{x:o},backend:e,attrs:{dtype:"float32"}}),u=En({inputs:{real:a,imag:i},backend:e});return i.dispose(),e.disposeIntermediateTensorInfo(a),u}if(o.dtype==="complex64"){let i=wl({inputs:{input:o},backend:e}),a=xk({inputs:{x:i},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(i),a}if(!y.hasEncodingLoss(o.dtype,s)){let i=tr({inputs:{x:o},backend:e});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(e.shouldExecuteOnCPU([o])){let i=e.texData.get(o.dataId).values,[a,u,l]=mL(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}if(s==="int32")return oz(o,e);if(s==="bool"){let i=e.makeTensorInfo([],"bool",y.getTypedArrayFromDType("bool",1)),u=gk({inputs:{a:o,b:i},backend:e});return e.disposeIntermediateTensorInfo(i),u}throw new Error(`Error in Cast: failed to cast ${o.dtype} to ${s}`)}var sz={kernelName:lo,backendName:"webgl",kernelFunc:xk};var iz="return ceil(x);",nrt=Ct({opSnippet:iz,packedOpSnippet:iz,cpuKernelImpl:fL}),az={kernelName:qo,backendName:"webgl",kernelFunc:nrt};var sC=class{constructor(t){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=t,this.userCode=` + `}};function Zet(r,t,e,n){let o=n.texData.get(r.dataId),s=n.makeTensorInfo(e,r.dtype),i=n.texData.get(s.dataId);Object.assign(i,o),i.refCount=1,i.shape=e,i.dtype=r.dtype;let a=Le.computeFlatOffset(t,y.computeStrides(r.shape));o.slice&&(a+=o.slice.flatOffset),i.slice={flatOffset:a,origDataId:o.slice&&o.slice.origDataId||r.dataId};let u=n.dataRefCount.get(i.slice.origDataId)||1;return n.dataRefCount.set(i.slice.origDataId,u+1),s}function ri(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n,[a,u]=Le.parseSliceParams(o,s,i);if(Le.assertParamsValid(o,a,u),y.sizeFromShape(u)===0)return e.makeTensorInfo(u,o.dtype,[]);if(e.shouldExecuteOnCPU([o])||o.dtype==="string"){let p=e.texData.get(o.dataId),m=VL(p.values,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,m)}let{isPacked:l}=e.texData.get(o.dataId),c=Le.isSliceContinous(o.shape,a,u);if(l||!c){let p=z().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new oC(u):new nC(u),m=[a];return e.runWebGLProgram(p,[o],o.dtype,m)}return e.uploadToGPU(o.dataId),Zet(o,a,u,e)}var JM={kernelName:gi,backendName:"webgl",kernelFunc:ri};var Jet=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;y.assert(o.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let a=s.reduce((b,w)=>b*w),u=v.getReshaped(o.shape,s,a),l=v.getPermuted(u.length,s.length),c=v.getReshapedPermuted(o.shape,s,a),p=v.getSliceBeginCoords(i,s.length),m=v.getSliceSize(c,i,s.length),f=[],d=it({inputs:{x:o},backend:e,attrs:{shape:u}}),h=Oe({inputs:{x:d},backend:e,attrs:{perm:l}}),g=it({inputs:{x:h},backend:e,attrs:{shape:c}}),x=ri({inputs:{x:g},backend:e,attrs:{begin:p,size:m}});return f.push(d),f.push(h),f.push(g),f.forEach(b=>e.disposeIntermediateTensorInfo(b)),x},QM={kernelName:ai,backendName:"webgl",kernelFunc:Jet};function Qet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i}=n,a=e.readSync(o.dataId),u=e.readSync(s.dataId),l=Lw(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var tz={kernelName:up,backendName:"webgl",kernelFunc:Qet};function trt(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.readSync(n.dataId),i=e.readSync(o.dataId),a=v.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],"int32",Int32Array.from(a))}var ez={kernelName:cp,backendName:"webgl",kernelFunc:trt};var ert="return float(a != b);",gk=le({opSnippet:ert,cpuKernelImpl:DL,dtype:"bool"}),rz={kernelName:Da,backendName:"webgl",kernelFunc:gk};function wl(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return tr({inputs:{x:o.complexTensorInfos.real},backend:e})}var nz={kernelName:Rp,backendName:"webgl",kernelFunc:wl};var rrt="return float(int(x));";function oz(r,t){let e=new tn(r.shape,rrt),n=t.runWebGLProgram(e,[r],"int32");return{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}function xk(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s==="complex64"){if(o.dtype==="complex64")return tr({inputs:{x:o},backend:e});let i=Ne(o.shape),a=xk({inputs:{x:o},backend:e,attrs:{dtype:"float32"}}),u=En({inputs:{real:a,imag:i},backend:e});return i.dispose(),e.disposeIntermediateTensorInfo(a),u}if(o.dtype==="complex64"){let i=wl({inputs:{input:o},backend:e}),a=xk({inputs:{x:i},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(i),a}if(!y.hasEncodingLoss(o.dtype,s)){let i=tr({inputs:{x:o},backend:e});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(e.shouldExecuteOnCPU([o])){let i=e.texData.get(o.dataId).values,[a,u,l]=mL(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}if(s==="int32")return oz(o,e);if(s==="bool"){let i=e.makeTensorInfo([],"bool",y.getTypedArrayFromDType("bool",1)),u=gk({inputs:{a:o,b:i},backend:e});return e.disposeIntermediateTensorInfo(i),u}throw new Error(`Error in Cast: failed to cast ${o.dtype} to ${s}`)}var sz={kernelName:lo,backendName:"webgl",kernelFunc:xk};var iz="return ceil(x);",nrt=Ct({opSnippet:iz,packedOpSnippet:iz,cpuKernelImpl:fL}),az={kernelName:qo,backendName:"webgl",kernelFunc:nrt};var sC=class{constructor(t){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=t,this.userCode=` void main() { float value = getAAtOutCoords(); @@ -2192,7 +2192,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN } setOutput(result); } - `}};function uC(r,t,e){let n=r.indexOf(t);return r.map((s,i)=>i===n?`${s} - ${e}`:s).join()}function Hc(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return tr({inputs:{x:o.complexTensorInfos.imag},backend:e})}var pz={kernelName:Sp,backendName:"webgl",kernelFunc:Hc};function Nd(r,t,e){let n=r[0].dtype;if(n==="complex64"){let p=r.map(g=>wl({inputs:{input:g},backend:e})),m=r.map(g=>Hc({inputs:{input:g},backend:e})),f=Nd(p,t,e),d=Nd(m,t,e),h=En({inputs:{real:f,imag:d},backend:e});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),m.forEach(g=>e.disposeIntermediateTensorInfo(g)),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),h}let o=e.shouldExecuteOnCPU(r);if(n==="string"&&(o=!0),o){let p=r.map(b=>{let w=y.sizeFromShape(b.shape.slice(t));return st({inputs:{x:b},backend:e,attrs:{shape:[-1,w]}})}),m=p.map(b=>({vals:e.readSync(b.dataId),shape:b.shape})),f=v.computeOutShape(p.map(b=>b.shape),1),d=p[0].shape[0]===1,h=dL(m,f,n,d),g=v.computeOutShape(r.map(b=>b.shape),t),x=e.makeTensorInfo(g,n,h);return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}let s=z().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(r.length>s){let p=[];for(let f=0;f1){let p=new cC(r.map(m=>m.shape),t);return e.runWebGLProgram(p,r,n)}let{tensors2D:i,outShape:a}=irt(r,t,e),u=new lC(i.map(p=>p.shape)),l=e.runWebGLProgram(u,i,n);i.forEach(p=>e.disposeIntermediateTensorInfo(p));let c=st({inputs:{x:l},attrs:{shape:a},backend:e});return e.disposeIntermediateTensorInfo(l),c}function irt(r,t,e){let n=v.computeOutShape(r.map(s=>s.shape),t);return{tensors2D:r.map(s=>st({inputs:{x:s},attrs:{shape:[-1,y.sizeFromShape(s.shape.slice(t))]},backend:e})),outShape:n}}function yk(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n,s=y.parseAxisParam(o,t[0].shape)[0],i=t.map(l=>l.shape);v.assertParamsConsistent(i,s);let a=v.computeOutShape(t.map(l=>l.shape),s);if(y.sizeFromShape(a)===0)return e.makeTensorInfo(a,t[0].dtype,[]);let u=t.filter(l=>y.sizeFromShape(l.shape)>0);return u.length===1?tr({inputs:{x:u[0]},backend:e}):Nd(u,s,e)}var mz={kernelName:li,backendName:"webgl",kernelFunc:yk};var Td=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=["x","W"],this.outputShape=t.outShape;let i=t.padInfo.top,a=t.padInfo.left,u=t.strideHeight,l=t.strideWidth,c=t.dilationHeight,p=t.dilationWidth,m=t.filterHeight,f=t.filterWidth,d=Math.floor(t.inChannels/4)*4,h=t.inChannels%4,g=t.dataFormat==="channelsLast",x=g?1:2,b=g?2:3,w=g?3:1,C="",N="";n&&(o?C=`float activation(float a) { + `}};function uC(r,t,e){let n=r.indexOf(t);return r.map((s,i)=>i===n?`${s} - ${e}`:s).join()}function Hc(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return tr({inputs:{x:o.complexTensorInfos.imag},backend:e})}var pz={kernelName:Sp,backendName:"webgl",kernelFunc:Hc};function Nd(r,t,e){let n=r[0].dtype;if(n==="complex64"){let p=r.map(g=>wl({inputs:{input:g},backend:e})),m=r.map(g=>Hc({inputs:{input:g},backend:e})),f=Nd(p,t,e),d=Nd(m,t,e),h=En({inputs:{real:f,imag:d},backend:e});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),m.forEach(g=>e.disposeIntermediateTensorInfo(g)),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),h}let o=e.shouldExecuteOnCPU(r);if(n==="string"&&(o=!0),o){let p=r.map(b=>{let C=[-1,y.sizeFromShape(b.shape.slice(t))];return it({inputs:{x:b},backend:e,attrs:{shape:C}})}),m=p.map(b=>({vals:e.readSync(b.dataId),shape:b.shape})),f=v.computeOutShape(p.map(b=>b.shape),1),d=p[0].shape[0]===1,h=dL(m,f,n,d),g=v.computeOutShape(r.map(b=>b.shape),t),x=e.makeTensorInfo(g,n,h);return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}let s=z().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(r.length>s){let p=[];for(let f=0;f1){let p=new cC(r.map(m=>m.shape),t);return e.runWebGLProgram(p,r,n)}let{tensors2D:i,outShape:a}=irt(r,t,e),u=new lC(i.map(p=>p.shape)),l=e.runWebGLProgram(u,i,n);i.forEach(p=>e.disposeIntermediateTensorInfo(p));let c=it({inputs:{x:l},attrs:{shape:a},backend:e});return e.disposeIntermediateTensorInfo(l),c}function irt(r,t,e){let n=v.computeOutShape(r.map(s=>s.shape),t);return{tensors2D:r.map(s=>it({inputs:{x:s},attrs:{shape:[-1,y.sizeFromShape(s.shape.slice(t))]},backend:e})),outShape:n}}function yk(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n,s=y.parseAxisParam(o,t[0].shape)[0],i=t.map(l=>l.shape);v.assertParamsConsistent(i,s);let a=v.computeOutShape(t.map(l=>l.shape),s);if(y.sizeFromShape(a)===0)return e.makeTensorInfo(a,t[0].dtype,[]);let u=t.filter(l=>y.sizeFromShape(l.shape)>0);return u.length===1?tr({inputs:{x:u[0]},backend:e}):Nd(u,s,e)}var mz={kernelName:li,backendName:"webgl",kernelFunc:yk};var Td=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=["x","W"],this.outputShape=t.outShape;let i=t.padInfo.top,a=t.padInfo.left,u=t.strideHeight,l=t.strideWidth,c=t.dilationHeight,p=t.dilationWidth,m=t.filterHeight,f=t.filterWidth,d=Math.floor(t.inChannels/4)*4,h=t.inChannels%4,g=t.dataFormat==="channelsLast",x=g?1:2,b=g?2:3,w=g?3:1,C="",N="";n&&(o?C=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:s?C=`float activation(float a) { @@ -2657,7 +2657,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN ${o.output} = result; } - `}};function fC(r,t){let e=r.length;return e>=3?t?[...r.slice(0,-3),r[e-3]*r[e-2],r[e-1]]:[...r.slice(0,-3),r[e-3],r[e-2]*r[e-1]]:!t&&e===1&&r[0]>1?[r[0],1]:null}function dC({x:r,filter:t,convInfo:e,backend:n,bias:o=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:a=null}){let u=r.shape,l=n.texData.get(r.dataId),c=e.inChannels,p=u[0]*u[1]*u[2],m=e.outChannels,f=e.dataFormat==="channelsLast",d=!1,h=!1,g,x=[];if(s!=null){let C=fC(s.shape,f);C!=null&&(s=st({inputs:{x:s},backend:n,attrs:{shape:C}}),x.push(s))}if(o!=null){let C=fC(o.shape,f);C!=null&&(o=st({inputs:{x:o},backend:n,attrs:{shape:C}}),x.push(o))}if(!((p===1||m===1)&&c>dk)&&l.isPacked&&f&&l.texture!=null&&u[2]%2!==0&&y.arraysEqual(l.shape.slice(-3),u.slice(-3))){let C=u[0]*u[1]*(u[2]+1),N={dataId:r.dataId,shape:[1,C,e.inChannels],dtype:r.dtype},_=l.shape;l.shape=l.shape.slice(),l.shape[l.shape.length-2]++,y.assert(Eu(l.shape,N.shape),()=>`packed reshape ${l.shape} to ${N.shape} isn't free`);let A=st({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}});x.push(A);let $=Uc({a:N,b:A,backend:n,transposeA:d,transposeB:h,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i}),F=n.texData.get($.dataId);y.assert(F.isPacked,()=>"batchMatMul result is expected to be packed"),l.shape=_,F.shape=e.outShape,g=tr({inputs:{x:$},backend:n}),g.shape=e.outShape,x.push($)}else{let C=e.outHeight*e.outWidth,N=st({inputs:{x:r},backend:n,attrs:{shape:f?[e.batchSize,C,e.inChannels]:[e.batchSize,e.inChannels,C]}}),_=st({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}}),A=Uc({a:f?N:_,b:f?_:N,transposeA:!f,transposeB:h,backend:n,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i});g=st({inputs:{x:A},backend:n,attrs:{shape:e.outShape}}),x.push(N),x.push(_),x.push(A)}for(let C of x)n.disposeIntermediateTensorInfo(C);return g}function hC({x:r,filter:t,convInfo:e,backend:n,bias:o=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:a=null}){let{filterWidth:u,filterHeight:l,inChannels:c,outWidth:p,outHeight:m,dataFormat:f}=e,d=f==="channelsLast",h=u*l*c,g=m*p,x=[e.batchSize,h,g],b=!0,w=!1,C=[];if(s!=null){let Z=fC(s.shape,d);Z!=null&&(s=st({inputs:{x:s},backend:n,attrs:{shape:Z}}),C.push(s))}if(o!=null){let Z=fC(o.shape,d);Z!=null&&(o=st({inputs:{x:o},backend:n,attrs:{shape:Z}}),C.push(o))}let N=st({inputs:{x:t},backend:n,attrs:{shape:[1,h,y.sizeFromShape(t.shape)/h]}});C.push(N);let _=new mC(x,e),A=[r.shape,[e.padInfo.top,e.padInfo.left],[e.strideHeight,e.strideWidth],[e.dilationHeight,e.dilationWidth],[e.inChannels],[e.filterWidth*e.inChannels],[e.outWidth]],$=n.runWebGLProgram(_,[r],"float32",A),F=st({inputs:{x:$},backend:n,attrs:{shape:x}});C.push($),C.push(F);let P=o!=null,V=s!=null,G=a==="leakyrelu",W=a?bl(a,!0):null,q=new vd(d?F.shape:N.shape,d?N.shape:F.shape,d?[e.batchSize,g,e.outChannels]:[e.batchSize,e.outChannels,g],b,w,P,W,V,G),H=d?[F,N]:[N,F];if(o&&H.push(o),V&&H.push(s),G){let Z=n.makeTensorInfo([],"float32",y.createScalarValue(i,"float32"));H.push(Z),C.push(Z)}let j=n.runWebGLProgram(q,H,"float32"),Y=st({inputs:{x:j},backend:n,attrs:{shape:e.outShape}});C.push(j);for(let Z of C)n.disposeIntermediateTensorInfo(Z);return Y}function art(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dataFormat:u,dilations:l,dimRoundingMode:c}=n,p=v.convertConv2DDataFormat(u),m=v.computeConv2DInfo(o.shape,s.shape,i,l,a,c,!1,p),f;if(m.filterHeight===1&&m.filterWidth===1&&m.dilationHeight===1&&m.dilationWidth===1&&m.strideHeight===1&&m.strideWidth===1&&(m.padInfo.type==="SAME"||m.padInfo.type==="VALID"))f=dC({x:o,filter:s,convInfo:m,backend:e});else if(m.strideWidth<=2&&p==="channelsLast"&&z().getBool("WEBGL_EXP_CONV")){let h=new kd(m),g=[[m.padInfo.top,m.padInfo.left],[m.strideHeight,m.strideWidth],[m.dilationHeight,m.dilationWidth],[m.inHeight,m.inWidth]];f=e.runWebGLProgram(h,[o,s],"float32",g)}else if(z().getBool("WEBGL_CONV_IM2COL"))f=hC({x:o,filter:s,convInfo:m,backend:e});else{let h=new Td(m);f=e.runWebGLProgram(h,[o,s],"float32")}let d=st({inputs:{x:f},backend:e,attrs:{shape:m.outShape}});return e.disposeIntermediateTensorInfo(f),d}var fz={kernelName:Ko,backendName:"webgl",kernelFunc:art};var gC=class{constructor(t){this.variableNames=["x","dy"],this.outputShape=t.filterShape;let e=t.strideHeight,n=t.strideWidth,o=t.padInfo.top,s=t.padInfo.left,i=t.dataFormat==="channelsLast";this.userCode=` + `}};function fC(r,t){let e=r.length;return e>=3?t?[...r.slice(0,-3),r[e-3]*r[e-2],r[e-1]]:[...r.slice(0,-3),r[e-3],r[e-2]*r[e-1]]:!t&&e===1&&r[0]>1?[r[0],1]:null}function dC({x:r,filter:t,convInfo:e,backend:n,bias:o=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:a=null}){let u=r.shape,l=n.texData.get(r.dataId),c=e.inChannels,p=u[0]*u[1]*u[2],m=e.outChannels,f=e.dataFormat==="channelsLast",d=!1,h=!1,g,x=[];if(s!=null){let C=fC(s.shape,f);C!=null&&(s=it({inputs:{x:s},backend:n,attrs:{shape:C}}),x.push(s))}if(o!=null){let C=fC(o.shape,f);C!=null&&(o=it({inputs:{x:o},backend:n,attrs:{shape:C}}),x.push(o))}if(!((p===1||m===1)&&c>dk)&&l.isPacked&&f&&l.texture!=null&&u[2]%2!==0&&y.arraysEqual(l.shape.slice(-3),u.slice(-3))){let C=u[0]*u[1]*(u[2]+1),N={dataId:r.dataId,shape:[1,C,e.inChannels],dtype:r.dtype},_=l.shape;l.shape=l.shape.slice(),l.shape[l.shape.length-2]++,y.assert(Eu(l.shape,N.shape),()=>`packed reshape ${l.shape} to ${N.shape} isn't free`);let A=it({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}});x.push(A);let $=Uc({a:N,b:A,backend:n,transposeA:d,transposeB:h,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i}),F=n.texData.get($.dataId);y.assert(F.isPacked,()=>"batchMatMul result is expected to be packed"),l.shape=_,F.shape=e.outShape,g=tr({inputs:{x:$},backend:n}),g.shape=e.outShape,x.push($)}else{let C=e.outHeight*e.outWidth,N=it({inputs:{x:r},backend:n,attrs:{shape:f?[e.batchSize,C,e.inChannels]:[e.batchSize,e.inChannels,C]}}),_=it({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}}),A=Uc({a:f?N:_,b:f?_:N,transposeA:!f,transposeB:h,backend:n,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i});g=it({inputs:{x:A},backend:n,attrs:{shape:e.outShape}}),x.push(N),x.push(_),x.push(A)}for(let C of x)n.disposeIntermediateTensorInfo(C);return g}function hC({x:r,filter:t,convInfo:e,backend:n,bias:o=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:a=null}){let{filterWidth:u,filterHeight:l,inChannels:c,outWidth:p,outHeight:m,dataFormat:f}=e,d=f==="channelsLast",h=u*l*c,g=m*p,x=[e.batchSize,h,g],b=!0,w=!1,C=[];if(s!=null){let Z=fC(s.shape,d);Z!=null&&(s=it({inputs:{x:s},backend:n,attrs:{shape:Z}}),C.push(s))}if(o!=null){let Z=fC(o.shape,d);Z!=null&&(o=it({inputs:{x:o},backend:n,attrs:{shape:Z}}),C.push(o))}let N=it({inputs:{x:t},backend:n,attrs:{shape:[1,h,y.sizeFromShape(t.shape)/h]}});C.push(N);let _=new mC(x,e),A=[r.shape,[e.padInfo.top,e.padInfo.left],[e.strideHeight,e.strideWidth],[e.dilationHeight,e.dilationWidth],[e.inChannels],[e.filterWidth*e.inChannels],[e.outWidth]],$=n.runWebGLProgram(_,[r],"float32",A),F=it({inputs:{x:$},backend:n,attrs:{shape:x}});C.push($),C.push(F);let P=o!=null,V=s!=null,G=a==="leakyrelu",W=a?bl(a,!0):null,q=new vd(d?F.shape:N.shape,d?N.shape:F.shape,d?[e.batchSize,g,e.outChannels]:[e.batchSize,e.outChannels,g],b,w,P,W,V,G),H=d?[F,N]:[N,F];if(o&&H.push(o),V&&H.push(s),G){let Z=n.makeTensorInfo([],"float32",y.createScalarValue(i,"float32"));H.push(Z),C.push(Z)}let j=n.runWebGLProgram(q,H,"float32"),Y=it({inputs:{x:j},backend:n,attrs:{shape:e.outShape}});C.push(j);for(let Z of C)n.disposeIntermediateTensorInfo(Z);return Y}function art(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dataFormat:u,dilations:l,dimRoundingMode:c}=n,p=v.convertConv2DDataFormat(u),m=v.computeConv2DInfo(o.shape,s.shape,i,l,a,c,!1,p),f;if(m.filterHeight===1&&m.filterWidth===1&&m.dilationHeight===1&&m.dilationWidth===1&&m.strideHeight===1&&m.strideWidth===1&&(m.padInfo.type==="SAME"||m.padInfo.type==="VALID"))f=dC({x:o,filter:s,convInfo:m,backend:e});else if(m.strideWidth<=2&&p==="channelsLast"&&z().getBool("WEBGL_EXP_CONV")){let h=new kd(m),g=[[m.padInfo.top,m.padInfo.left],[m.strideHeight,m.strideWidth],[m.dilationHeight,m.dilationWidth],[m.inHeight,m.inWidth]];f=e.runWebGLProgram(h,[o,s],"float32",g)}else if(z().getBool("WEBGL_CONV_IM2COL"))f=hC({x:o,filter:s,convInfo:m,backend:e});else{let h=new Td(m);f=e.runWebGLProgram(h,[o,s],"float32")}let d=it({inputs:{x:f},backend:e,attrs:{shape:m.outShape}});return e.disposeIntermediateTensorInfo(f),d}var fz={kernelName:Ko,backendName:"webgl",kernelFunc:art};var gC=class{constructor(t){this.variableNames=["x","dy"],this.outputShape=t.filterShape;let e=t.strideHeight,n=t.strideWidth,o=t.padInfo.top,s=t.padInfo.left,i=t.dataFormat==="channelsLast";this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -3277,7 +3277,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0; setOutput(val); } - `}};function Nrt(r){let{inputs:t,backend:e}=r,{x:n}=t,o=[...n.shape,...n.shape],s=y.sizeFromShape(n.shape),i=st({inputs:{x:n},backend:e,attrs:{shape:[s]}}),a=new NC(s),u=e.runWebGLProgram(a,[i],i.dtype),l=st({inputs:{x:u},backend:e,attrs:{shape:o}});return e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(u),l}var $z={kernelName:yp,backendName:"webgl",kernelFunc:Nrt};var TC=class{constructor(t){this.variableNames=["x","W"],this.outputShape=t.outShape;let{inHeight:e,inWidth:n,padInfo:o,strideHeight:s,strideWidth:i,filterHeight:a,filterWidth:u,dilationHeight:l,dilationWidth:c}=t,{top:p,left:m}=o;this.userCode=` + `}};function Nrt(r){let{inputs:t,backend:e}=r,{x:n}=t,o=[...n.shape,...n.shape],s=y.sizeFromShape(n.shape),i=it({inputs:{x:n},backend:e,attrs:{shape:[s]}}),a=new NC(s),u=e.runWebGLProgram(a,[i],i.dtype),l=it({inputs:{x:u},backend:e,attrs:{shape:o}});return e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(u),l}var $z={kernelName:yp,backendName:"webgl",kernelFunc:Nrt};var TC=class{constructor(t){this.variableNames=["x","W"],this.outputShape=t.outShape;let{inHeight:e,inWidth:n,padInfo:o,strideHeight:s,strideWidth:i,filterHeight:a,filterWidth:u,dilationHeight:l,dilationWidth:c}=t,{top:p,left:m}=o;this.userCode=` const ivec2 strides = ivec2(${s}, ${i}); const ivec2 pads = ivec2(${p}, ${m}); const float neg_infinity = -3.4e38; @@ -3315,7 +3315,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN float result = curVal; setOutput(result); } - `}};function Trt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=v.computeDilation2DInfo(o.shape,s.shape,i,a,"NHWC",u),c,p=new TC(l);c=e.runWebGLProgram(p,[o,s],"float32");let m=st({inputs:{x:c},backend:e,attrs:{shape:l.outShape}});return e.disposeIntermediateTensorInfo(c),m}var Dz={kernelName:$l,backendName:"webgl",kernelFunc:Trt};function krt(r){let{inputs:t,backend:e,attrs:n}=r,{equation:o}=n,s=t,{allDims:i,summedDims:a,idDims:u}=v.decodeEinsumEquation(o,s.length);v.checkEinsumDimSizes(i.length,u,s);let{path:l,steps:c}=v.getEinsumComputePath(a,u),p=c.length,m=null,f=i.length,d=[];for(let h=0;h=0&&(m=Wc({inputs:{x:m},backend:e,attrs:{axis:l[h]-(i.length-f),keepDims:!1}}),d.push(m)),f--)}for(let h of d)h!==m&&e.disposeIntermediateTensorInfo(h);return m}var Rz={kernelName:bp,backendName:"webgl",kernelFunc:krt};var Ert="return (x >= 0.0) ? x : (exp(x) - 1.0);",_rt=` + `}};function Trt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=v.computeDilation2DInfo(o.shape,s.shape,i,a,"NHWC",u),c,p=new TC(l);c=e.runWebGLProgram(p,[o,s],"float32");let m=it({inputs:{x:c},backend:e,attrs:{shape:l.outShape}});return e.disposeIntermediateTensorInfo(c),m}var Dz={kernelName:$l,backendName:"webgl",kernelFunc:Trt};function krt(r){let{inputs:t,backend:e,attrs:n}=r,{equation:o}=n,s=t,{allDims:i,summedDims:a,idDims:u}=v.decodeEinsumEquation(o,s.length);v.checkEinsumDimSizes(i.length,u,s);let{path:l,steps:c}=v.getEinsumComputePath(a,u),p=c.length,m=null,f=i.length,d=[];for(let h=0;h=0&&(m=Wc({inputs:{x:m},backend:e,attrs:{axis:l[h]-(i.length-f),keepDims:!1}}),d.push(m)),f--)}for(let h of d)h!==m&&e.disposeIntermediateTensorInfo(h);return m}var Rz={kernelName:bp,backendName:"webgl",kernelFunc:krt};var Ert="return (x >= 0.0) ? x : (exp(x) - 1.0);",_rt=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -3355,7 +3355,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN result.a = isNaN.a ? x.a : result.a; return result; -`,bk=Ct({opSnippet:zrt,packedOpSnippet:Brt,cpuKernelImpl:gL,dtype:"float32"}),Mz={kernelName:es,backendName:"webgl",kernelFunc:bk};function kC(r){let{inputs:t,attrs:e,backend:n}=r,{dim:o}=e,{input:s}=t,i=s.shape.length,a=s.shape.slice(),u=o;return o<0&&(y.assert(-(i+1)<=o,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+o+1),a.splice(u,0,1),st({inputs:{x:s},backend:n,attrs:{shape:a}})}var zz={kernelName:ui,backendName:"webgl",kernelFunc:kC};var Bz="return exp(x) - 1.0;",Vrt=Ct({opSnippet:Bz,packedOpSnippet:Bz,cpuKernelImpl:xL}),Vz={kernelName:ya,backendName:"webgl",kernelFunc:Vrt};var og=class{constructor(t,e,n){this.variableNames=["real","imag"];let o=e[1];this.outputShape=e;let s=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,i=n?`${o}.0`:"1.0",a;if(t==="real")a="return real * expR - imag * expI;";else if(t==="imag")a="return real * expI + imag * expR;";else throw new Error(`FFT component must be either "real" or "imag", got ${t}.`);this.userCode=` +`,bk=Ct({opSnippet:zrt,packedOpSnippet:Brt,cpuKernelImpl:gL,dtype:"float32"}),Mz={kernelName:es,backendName:"webgl",kernelFunc:bk};function kC(r){let{inputs:t,attrs:e,backend:n}=r,{dim:o}=e,{input:s}=t,i=s.shape.length,a=s.shape.slice(),u=o;return o<0&&(y.assert(-(i+1)<=o,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+o+1),a.splice(u,0,1),it({inputs:{x:s},backend:n,attrs:{shape:a}})}var zz={kernelName:ui,backendName:"webgl",kernelFunc:kC};var Bz="return exp(x) - 1.0;",Vrt=Ct({opSnippet:Bz,packedOpSnippet:Bz,cpuKernelImpl:xL}),Vz={kernelName:ya,backendName:"webgl",kernelFunc:Vrt};var og=class{constructor(t,e,n){this.variableNames=["real","imag"];let o=e[1];this.outputShape=e;let s=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,i=n?`${o}.0`:"1.0",a;if(t==="real")a="return real * expR - imag * expI;";else if(t==="imag")a="return real * expI + imag * expR;";else throw new Error(`FFT component must be either "real" or "imag", got ${t}.`);this.userCode=` const float exponentMultiplier = ${s}; float unaryOpComplex(float real, float expR, float imag, float expI) { @@ -3388,7 +3388,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN ivec2 coords = getOutputCoords(); setOutput(mulMatDFT(coords[0], coords[1])); } - `}};function EC(r,t,e){let n=e.texData.get(r.dataId),o=y.sizeFromShape(r.shape),s=r.shape[r.shape.length-1],i=o/s,a=st({inputs:{x:r},backend:e,attrs:{shape:[i,s]}}),u=a.shape,l=new og("real",u,t),c=new og("imag",u,t),p=[{dataId:n.complexTensorInfos.real.dataId,dtype:n.complexTensorInfos.real.dtype,shape:u},{dataId:n.complexTensorInfos.imag.dataId,dtype:n.complexTensorInfos.imag.dtype,shape:u}],m=e.runWebGLProgram(l,p,"float32"),f=e.runWebGLProgram(c,p,"float32"),d=En({inputs:{real:m,imag:f},backend:e});e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f);let h=st({inputs:{x:d},backend:e,attrs:{shape:r.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(d),h}function Grt(r){let{inputs:t,backend:e}=r,{input:n}=t;return EC(n,!1,e)}var Gz={kernelName:Cp,backendName:"webgl",kernelFunc:Grt};var _C=class{constructor(t,e){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=t,this.userCode=` + `}};function EC(r,t,e){let n=e.texData.get(r.dataId),o=y.sizeFromShape(r.shape),s=r.shape[r.shape.length-1],i=o/s,a=it({inputs:{x:r},backend:e,attrs:{shape:[i,s]}}),u=a.shape,l=new og("real",u,t),c=new og("imag",u,t),p=[{dataId:n.complexTensorInfos.real.dataId,dtype:n.complexTensorInfos.real.dtype,shape:u},{dataId:n.complexTensorInfos.imag.dataId,dtype:n.complexTensorInfos.imag.dtype,shape:u}],m=e.runWebGLProgram(l,p,"float32"),f=e.runWebGLProgram(c,p,"float32"),d=En({inputs:{real:m,imag:f},backend:e});e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f);let h=it({inputs:{x:d},backend:e,attrs:{shape:r.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(d),h}function Grt(r){let{inputs:t,backend:e}=r,{input:n}=t;return EC(n,!1,e)}var Gz={kernelName:Cp,backendName:"webgl",kernelFunc:Grt};var _C=class{constructor(t,e){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=t,this.userCode=` void main() { // Input can be obtained from uniform value. setOutput(value); @@ -3494,7 +3494,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN ${e.output} = result; } - `}};var jz={kernelName:Yd,backendName:"webgl",kernelFunc:Krt},Ad,wk=z().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function Krt(r){let{inputs:t,backend:e,attrs:n}=r,{pixels:o}=t,{numChannels:s}=n,i=typeof HTMLVideoElement!="undefined"&&o instanceof HTMLVideoElement,a=typeof HTMLImageElement!="undefined"&&o instanceof HTMLImageElement,[u,l]=i?[o.videoWidth,o.videoHeight]:[o.width,o.height],c=[l,u],p=[l,u,s];if(a||i){let h=z().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(Ad==null||h!==wk)&&(wk=h,Ad=document.createElement("canvas").getContext("2d",{willReadFrequently:wk})),Ad.canvas.width=u,Ad.canvas.height=l,Ad.drawImage(o,0,0,u,l),o=Ad.canvas}let m=e.makeTensorInfo(c,"int32");e.texData.get(m.dataId).usage=jr.PIXELS,e.gpgpu.uploadPixelDataToTexture(e.getTexture(m.dataId),o);let f=z().getBool("WEBGL_PACK")?new DC(p):new $C(p),d=e.runWebGLProgram(f,[m],"int32");return e.disposeData(m.dataId),d}function jrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=v.convertConv2DDataFormat(c),g=v.computeConv2DInfo(o.shape,s.shape,u,p,l,m,!1,h),x,b=[],w=i!=null,C=a!=null,N=f==="leakyrelu",_=()=>{let $=[o,s],F=(P,V)=>{if(V==="NCHW"&&P.shape.length===1&&P.shape[0]!==1){let G=st({inputs:{x:P},backend:e,attrs:{shape:[P.shape[0],1,1]}});return b.push(G),G}return P};if(w&&$.push(F(i,c)),C&&$.push(F(a,c)),N){let P=e.makeTensorInfo([],"float32",y.createScalarValue(d,"float32"));$.push(P),b.push(P)}return $};if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type==="SAME"||g.padInfo.type==="VALID"))x=dC({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else if(g.strideWidth<=2&&h==="channelsLast"&&z().getBool("WEBGL_EXP_CONV")){let $=f?bl(f,!0):null,F=new kd(g,w,$,C,N),P=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],V=_();x=e.runWebGLProgram(F,V,"float32",P)}else if(z().getBool("WEBGL_CONV_IM2COL"))x=hC({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else{let $=f?bl(f,!1):null,F=new Td(g,w,$,C,N),P=_();x=e.runWebGLProgram(F,P,"float32")}let A=st({inputs:{x},backend:e,attrs:{shape:g.outShape}});return b.push(x),b.forEach($=>e.disposeIntermediateTensorInfo($)),A}var Xz={kernelName:Ii,backendName:"webgl",kernelFunc:jrt};function Xrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dimRoundingMode:p,activation:m,leakyreluAlpha:f}=n,d=[],h=c;h==null&&(h=[1,1]),y.assert(v.eitherStridesOrDilationsAreOne(u,h),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${u} and dilations '${h}'`);let g=v.computeConv2DInfo(o.shape,s.shape,u,h,l,p,!0),x=z().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=m?bl(m,x):null,w=[o,s],C=i!=null,N=a!=null,_=m==="leakyrelu";if(C&&w.push(i),N&&w.push(a),_){let P=e.makeTensorInfo([],"float32",y.createScalarValue(f,"float32"));w.push(P),d.push(P)}let A;x?A=new _d(g,C,b,N,_):A=new Ed(g,C,b,N,_);let $=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=e.runWebGLProgram(A,w,"float32",$);return d.forEach(P=>e.disposeIntermediateTensorInfo(P)),F}var Yz={kernelName:Si,backendName:"webgl",kernelFunc:Xrt};var RC=class{constructor(t,e,n,o){this.sliceDim=t,this.strides=e,this.paramsShape=o,this.variableNames=["x","indices"],this.outputShape=n;let s=zt(n.length),i=` + `}};var jz={kernelName:Yd,backendName:"webgl",kernelFunc:Krt},Ad,wk=z().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function Krt(r){let{inputs:t,backend:e,attrs:n}=r,{pixels:o}=t,{numChannels:s}=n,i=typeof HTMLVideoElement!="undefined"&&o instanceof HTMLVideoElement,a=typeof HTMLImageElement!="undefined"&&o instanceof HTMLImageElement,[u,l]=i?[o.videoWidth,o.videoHeight]:[o.width,o.height],c=[l,u],p=[l,u,s];if(a||i){let h=z().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(Ad==null||h!==wk)&&(wk=h,Ad=document.createElement("canvas").getContext("2d",{willReadFrequently:wk})),Ad.canvas.width=u,Ad.canvas.height=l,Ad.drawImage(o,0,0,u,l),o=Ad.canvas}let m=e.makeTensorInfo(c,"int32");e.texData.get(m.dataId).usage=jr.PIXELS,e.gpgpu.uploadPixelDataToTexture(e.getTexture(m.dataId),o);let f=z().getBool("WEBGL_PACK")?new DC(p):new $C(p),d=e.runWebGLProgram(f,[m],"int32");return e.disposeData(m.dataId),d}function jrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=v.convertConv2DDataFormat(c),g=v.computeConv2DInfo(o.shape,s.shape,u,p,l,m,!1,h),x,b=[],w=i!=null,C=a!=null,N=f==="leakyrelu",_=()=>{let $=[o,s],F=(P,V)=>{if(V==="NCHW"&&P.shape.length===1&&P.shape[0]!==1){let G=it({inputs:{x:P},backend:e,attrs:{shape:[P.shape[0],1,1]}});return b.push(G),G}return P};if(w&&$.push(F(i,c)),C&&$.push(F(a,c)),N){let P=e.makeTensorInfo([],"float32",y.createScalarValue(d,"float32"));$.push(P),b.push(P)}return $};if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type==="SAME"||g.padInfo.type==="VALID"))x=dC({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else if(g.strideWidth<=2&&h==="channelsLast"&&z().getBool("WEBGL_EXP_CONV")){let $=f?bl(f,!0):null,F=new kd(g,w,$,C,N),P=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],V=_();x=e.runWebGLProgram(F,V,"float32",P)}else if(z().getBool("WEBGL_CONV_IM2COL"))x=hC({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else{let $=f?bl(f,!1):null,F=new Td(g,w,$,C,N),P=_();x=e.runWebGLProgram(F,P,"float32")}let A=it({inputs:{x},backend:e,attrs:{shape:g.outShape}});return b.push(x),b.forEach($=>e.disposeIntermediateTensorInfo($)),A}var Xz={kernelName:Ii,backendName:"webgl",kernelFunc:jrt};function Xrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dimRoundingMode:p,activation:m,leakyreluAlpha:f}=n,d=[],h=c;h==null&&(h=[1,1]),y.assert(v.eitherStridesOrDilationsAreOne(u,h),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${u} and dilations '${h}'`);let g=v.computeConv2DInfo(o.shape,s.shape,u,h,l,p,!0),x=z().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=m?bl(m,x):null,w=[o,s],C=i!=null,N=a!=null,_=m==="leakyrelu";if(C&&w.push(i),N&&w.push(a),_){let P=e.makeTensorInfo([],"float32",y.createScalarValue(f,"float32"));w.push(P),d.push(P)}let A;x?A=new _d(g,C,b,N,_):A=new Ed(g,C,b,N,_);let $=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=e.runWebGLProgram(A,w,"float32",$);return d.forEach(P=>e.disposeIntermediateTensorInfo(P)),F}var Yz={kernelName:Si,backendName:"webgl",kernelFunc:Xrt};var RC=class{constructor(t,e,n,o){this.sliceDim=t,this.strides=e,this.paramsShape=o,this.variableNames=["x","indices"],this.outputShape=n;let s=zt(n.length),i=` int index;`;for(let a=0;a= 0) && (index < ${t[2]}) ? 1.0 : 0.0; setOutput(inBounds * getA(${o})); } - `}};function Zrt(r,t){let e=["resRC.x","resRC.y","resRC.z","resRC.w"],n=[];for(let o=0;o=0,()=>`GatherV2: the index value ${N} is not in [0, ${w-1}]`)}}let l=v.segment_util.collectGatherOpShapeInfo(o,s,u,a),c=y.sizeFromShape(s.shape),p=[],m=st({inputs:{x:o},backend:e,attrs:{shape:[l.batchSize,l.outerSize,l.dimSize,l.sliceSize]}}),f=st({inputs:{x:s},backend:e,attrs:{shape:[l.batchSize,c/l.batchSize]}});p.push(m),p.push(f);let d=[l.batchSize,l.outerSize,c/l.batchSize,l.sliceSize];if(e.shouldExecuteOnCPU([o,s])||o.dtype==="string"){let b=e.bufferSync(f),w=e.bufferSync(m),C=wL(w,b,d);return p.forEach(N=>e.disposeIntermediateTensorInfo(N)),e.makeTensorInfo(l.outputShape,C.dtype,C.values)}let h=new FC(m.shape,d),g=e.runWebGLProgram(h,[m,f],m.dtype);p.push(g);let x=st({inputs:{x:g},backend:e,attrs:{shape:l.outputShape}});return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}var Jz={kernelName:ci,backendName:"webgl",kernelFunc:Ck};var Jrt="return float(a > b);",Qrt=` + `}};function Zrt(r,t){let e=["resRC.x","resRC.y","resRC.z","resRC.w"],n=[];for(let o=0;o=0,()=>`GatherV2: the index value ${N} is not in [0, ${w-1}]`)}}let l=v.segment_util.collectGatherOpShapeInfo(o,s,u,a),c=y.sizeFromShape(s.shape),p=[],m=it({inputs:{x:o},backend:e,attrs:{shape:[l.batchSize,l.outerSize,l.dimSize,l.sliceSize]}}),f=it({inputs:{x:s},backend:e,attrs:{shape:[l.batchSize,c/l.batchSize]}});p.push(m),p.push(f);let d=[l.batchSize,l.outerSize,c/l.batchSize,l.sliceSize];if(e.shouldExecuteOnCPU([o,s])||o.dtype==="string"){let b=e.bufferSync(f),w=e.bufferSync(m),C=wL(w,b,d);return p.forEach(N=>e.disposeIntermediateTensorInfo(N)),e.makeTensorInfo(l.outputShape,C.dtype,C.values)}let h=new FC(m.shape,d),g=e.runWebGLProgram(h,[m,f],m.dtype);p.push(g);let x=it({inputs:{x:g},backend:e,attrs:{shape:l.outputShape}});return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}var Jz={kernelName:ci,backendName:"webgl",kernelFunc:Ck};var Jrt="return float(a > b);",Qrt=` return vec4(greaterThan(a, b)); `,tnt=le({opSnippet:Jrt,packedOpSnippet:Qrt,cpuKernelImpl:CL,dtype:"bool"}),Qz={kernelName:Ca,backendName:"webgl",kernelFunc:tnt};var ent="return float(a >= b);",rnt=` return vec4(greaterThanEqual(a, b)); @@ -3681,7 +3681,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN } setOutput(result); } - `}};var Dnt=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o,y:s,dy:i}=t,{depthRadius:a,bias:u,alpha:l,beta:c}=n,p=new LC(o.shape,a,u,l,c);return e.runWebGLProgram(p,[o,s,i],o.dtype)},d3={kernelName:Np,backendName:"webgl",kernelFunc:Dnt};function h3(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=st({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Un(a,r.dtype,"max",n),l=st({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}function Ik(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reductionIndices:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=v.getAxesPermutation(l,a),p=c!=null,m=e.shouldExecuteOnCPU([o]),f=o;if(p){if(m){let w=e.texData.get(f.dataId).values,C=new Array(a);for(let A=0;A{let{inputs:t,backend:e,attrs:n}=r,{x:o,y:s,dy:i}=t,{depthRadius:a,bias:u,alpha:l,beta:c}=n,p=new LC(o.shape,a,u,l,c);return e.runWebGLProgram(p,[o,s,i],o.dtype)},d3={kernelName:Np,backendName:"webgl",kernelFunc:Dnt};function h3(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=it({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Un(a,r.dtype,"max",n),l=it({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}function Ik(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reductionIndices:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=v.getAxesPermutation(l,a),p=c!=null,m=e.shouldExecuteOnCPU([o]),f=o;if(p){if(m){let w=e.texData.get(f.dataId).values,C=new Array(a);for(let A=0;A{let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;y.assert(n.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${n.shape.length}.`);let l=[1,1];y.assert(v.eitherStridesOrDilationsAreOne(s,l),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${l}'`);let c=v.computePool2DInfo(n.shape,o,s,l,i),[p,m]=I3(n,a,c,u);return[p,m]}};function v3(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=st({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Un(a,"float32","mean",n),l=st({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}var N3={kernelName:ps,backendName:"webgl",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{keepDims:o,axis:s}=t,i=e,a=n.shape.length,u=y.parseAxisParam(s,n.shape),l=u,c=v.getAxesPermutation(l,a),p=c!=null,m=i.shouldExecuteOnCPU([n]),f=[],d=n;if(p){if(m){let C=i.texData.get(d.dataId).values,N=new Array(a);for(let $=0;${let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;y.assert(n.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${n.shape.length}.`);let l=[1,1];y.assert(v.eitherStridesOrDilationsAreOne(s,l),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${l}'`);let c=v.computePool2DInfo(n.shape,o,s,l,i),[p,m]=I3(n,a,c,u);return[p,m]}};function v3(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=it({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Un(a,"float32","mean",n),l=it({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}var N3={kernelName:ps,backendName:"webgl",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{keepDims:o,axis:s}=t,i=e,a=n.shape.length,u=y.parseAxisParam(s,n.shape),l=u,c=v.getAxesPermutation(l,a),p=c!=null,m=i.shouldExecuteOnCPU([n]),f=[],d=n;if(p){if(m){let C=i.texData.get(d.dataId).values,N=new Array(a);for(let $=0;${let{inputs:t,backend:e,attrs:n}=r,{indices:o}=t,{dtype:s,depth:i,onValue:a,offValue:u}=n,l=y.sizeFromShape(o.shape),c=new WC(l,i,a,u),p=st({inputs:{x:o},backend:e,attrs:{shape:[l]}}),m=e.runWebGLProgram(c,[p],s);e.disposeIntermediateTensorInfo(p);let f=[...o.shape,i],d=st({inputs:{x:m},backend:e,attrs:{shape:f}});return e.disposeIntermediateTensorInfo(m),d},z3={kernelName:gs,backendName:"webgl",kernelFunc:iot};function sg(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype==="complex64"){let o=wl({inputs:{input:n},backend:e}),s=sg({inputs:{x:o},backend:e}),i=Hc({inputs:{input:n},backend:e}),a=sg({inputs:{x:i},backend:e}),u=En({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Cl({attrs:{shape:n.shape,dtype:n.dtype,value:n.dtype==="string"?"":0},backend:e})}var B3={kernelName:wi,backendName:"webgl",kernelFunc:sg};function V3(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(n.dtype==="complex64"){let o=wl({inputs:{input:n},backend:e}),s=V3({inputs:{x:o},backend:e}),i=Hc({inputs:{input:n},backend:e}),a=sg({inputs:{x:i},backend:e}),u=En({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Cl({attrs:{shape:n.shape,dtype:n.dtype,value:1},backend:e})}var G3={kernelName:mi,backendName:"webgl",kernelFunc:V3};function aot(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return kC({inputs:{input:t[0]},backend:e,attrs:{dim:o}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{y.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),y.assert(i===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let a=[],u=t.map(c=>{let p=kC({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=yk({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var W3={kernelName:fi,backendName:"webgl",kernelFunc:aot};var UC=class{constructor(t,e,n){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=e.map((l,c)=>l[0]+t[c]+l[1]);let o=t.length,s=zt(o),i=e.map(l=>l[0]).join(","),a=e.map((l,c)=>l[0]+t[c]).join(","),u=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,o);if(o===1){this.userCode=` + `}};var iot=r=>{let{inputs:t,backend:e,attrs:n}=r,{indices:o}=t,{dtype:s,depth:i,onValue:a,offValue:u}=n,l=y.sizeFromShape(o.shape),c=new WC(l,i,a,u),p=it({inputs:{x:o},backend:e,attrs:{shape:[l]}}),m=e.runWebGLProgram(c,[p],s);e.disposeIntermediateTensorInfo(p);let f=[...o.shape,i],d=it({inputs:{x:m},backend:e,attrs:{shape:f}});return e.disposeIntermediateTensorInfo(m),d},z3={kernelName:gs,backendName:"webgl",kernelFunc:iot};function sg(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype==="complex64"){let o=wl({inputs:{input:n},backend:e}),s=sg({inputs:{x:o},backend:e}),i=Hc({inputs:{input:n},backend:e}),a=sg({inputs:{x:i},backend:e}),u=En({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Cl({attrs:{shape:n.shape,dtype:n.dtype,value:n.dtype==="string"?"":0},backend:e})}var B3={kernelName:wi,backendName:"webgl",kernelFunc:sg};function V3(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(n.dtype==="complex64"){let o=wl({inputs:{input:n},backend:e}),s=V3({inputs:{x:o},backend:e}),i=Hc({inputs:{input:n},backend:e}),a=sg({inputs:{x:i},backend:e}),u=En({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Cl({attrs:{shape:n.shape,dtype:n.dtype,value:1},backend:e})}var G3={kernelName:mi,backendName:"webgl",kernelFunc:V3};function aot(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return kC({inputs:{input:t[0]},backend:e,attrs:{dim:o}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{y.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),y.assert(i===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let a=[],u=t.map(c=>{let p=kC({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=yk({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var W3={kernelName:fi,backendName:"webgl",kernelFunc:aot};var UC=class{constructor(t,e,n){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=e.map((l,c)=>l[0]+t[c]+l[1]);let o=t.length,s=zt(o),i=e.map(l=>l[0]).join(","),a=e.map((l,c)=>l[0]+t[c]).join(","),u=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,o);if(o===1){this.userCode=` int start = ${i}; int end = ${a}; @@ -4037,7 +4037,7 @@ return a / b;`,Xnt=` bvec4 isNaN = bvec4(isNaN1.x && isNaN2.x, isNaN1.y && isNaN2.y, isNaN1.z && isNaN2.z, isNaN1.w && isNaN2.w); `+Yi+` return result; -`,cot=le({opSnippet:lot,packedOpSnippet:uot}),H3={kernelName:ys,backendName:"webgl",kernelFunc:cot};function pot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=[],l=y.parseAxisParam(s,o.shape),c=l,p=v.getAxesPermutation(c,a),m=o;p!=null&&(m=Oe({inputs:{x:o},backend:e,attrs:{perm:p}}),c=v.getInnerMostAxes(c.length,a),u.push(m)),v.assertAxesAreInnerMostDims("prod",c,a);let f;if(e.shouldExecuteOnCPU([m])){let d=e.texData.get(m.dataId).values,{outVals:h,outShape:g,outDtype:x}=RL(m.shape,m.dtype,d,c);f=e.makeTensorInfo(g,x,h)}else{let[d,h]=v.computeOutAndReduceShapes(m.shape,c),g=y.sizeFromShape(h),x=st({inputs:{x:m},backend:e,attrs:{shape:[-1,g]}}),b=Wu(o.dtype),w=Un(x,b,"prod",e);f=st({inputs:{x:w},backend:e,attrs:{shape:d}}),u.push(x),u.push(w)}if(i){u.push(f);let d=v.expandShapeToKeepDim(f.shape,l);f=st({inputs:{x:f},backend:e,attrs:{shape:d}})}return u.forEach(d=>e.disposeIntermediateTensorInfo(d)),f}var q3={kernelName:ws,backendName:"webgl",kernelFunc:pot};function mot(r){let{inputs:t,backend:e,attrs:n}=r,{paramsNestedSplits:o,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:a}=n,u=o.map(x=>e.readSync(x.dataId)),l=o.map(x=>x.shape),c=e.readSync(s.dataId),p=e.readSync(i.dataId),[m,f,d]=FL(u,l,c,s.shape,s.dtype,p,i.shape,a),h=m.map(x=>e.makeTensorInfo([x.length],"int32",x)),g=e.makeTensorInfo(d,s.dtype,f);return h.concat([g])}var K3={kernelName:Ap,backendName:"webgl",kernelFunc:mot};function fot(r){let{inputs:t,backend:e}=r,{starts:n,limits:o,deltas:s}=t,i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=OL(i,n.shape,n.dtype,a,o.shape,u,s.shape),p=e.makeTensorInfo([l.length],"int32",l),m=e.makeTensorInfo([c.length],n.dtype,c);return[p,m]}var j3={kernelName:$p,backendName:"webgl",kernelFunc:fot};function dot(r){let{inputs:t,backend:e,attrs:n}=r,{shape:o,values:s,defaultValue:i,rowPartitionTensors:a}=t,{rowPartitionTypes:u}=n,l=e.readSync(o.dataId),c=e.readSync(s.dataId),p=e.readSync(i.dataId),m=a.map(g=>e.readSync(g.dataId)),f=a.map(g=>g.shape),[d,h]=PL(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var X3={kernelName:Dp,backendName:"webgl",kernelFunc:dot};var kk=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=LL(n,o,s,i);return t.makeTensorInfo([a.length],i,a)},Y3={kernelName:Ol,backendName:"webgl",kernelFunc:kk};var hot="return 1.0 / x;",got=Ct({opSnippet:hot}),Z3={kernelName:Pa,backendName:"webgl",kernelFunc:got};var xot=fr+` +`,cot=le({opSnippet:lot,packedOpSnippet:uot}),H3={kernelName:ys,backendName:"webgl",kernelFunc:cot};function pot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=[],l=y.parseAxisParam(s,o.shape),c=l,p=v.getAxesPermutation(c,a),m=o;p!=null&&(m=Oe({inputs:{x:o},backend:e,attrs:{perm:p}}),c=v.getInnerMostAxes(c.length,a),u.push(m)),v.assertAxesAreInnerMostDims("prod",c,a);let f;if(e.shouldExecuteOnCPU([m])){let d=e.texData.get(m.dataId).values,{outVals:h,outShape:g,outDtype:x}=RL(m.shape,m.dtype,d,c);f=e.makeTensorInfo(g,x,h)}else{let[d,h]=v.computeOutAndReduceShapes(m.shape,c),g=y.sizeFromShape(h),x=it({inputs:{x:m},backend:e,attrs:{shape:[-1,g]}}),b=Wu(o.dtype),w=Un(x,b,"prod",e);f=it({inputs:{x:w},backend:e,attrs:{shape:d}}),u.push(x),u.push(w)}if(i){u.push(f);let d=v.expandShapeToKeepDim(f.shape,l);f=it({inputs:{x:f},backend:e,attrs:{shape:d}})}return u.forEach(d=>e.disposeIntermediateTensorInfo(d)),f}var q3={kernelName:ws,backendName:"webgl",kernelFunc:pot};function mot(r){let{inputs:t,backend:e,attrs:n}=r,{paramsNestedSplits:o,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:a}=n,u=o.map(x=>e.readSync(x.dataId)),l=o.map(x=>x.shape),c=e.readSync(s.dataId),p=e.readSync(i.dataId),[m,f,d]=FL(u,l,c,s.shape,s.dtype,p,i.shape,a),h=m.map(x=>e.makeTensorInfo([x.length],"int32",x)),g=e.makeTensorInfo(d,s.dtype,f);return h.concat([g])}var K3={kernelName:Ap,backendName:"webgl",kernelFunc:mot};function fot(r){let{inputs:t,backend:e}=r,{starts:n,limits:o,deltas:s}=t,i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=OL(i,n.shape,n.dtype,a,o.shape,u,s.shape),p=e.makeTensorInfo([l.length],"int32",l),m=e.makeTensorInfo([c.length],n.dtype,c);return[p,m]}var j3={kernelName:$p,backendName:"webgl",kernelFunc:fot};function dot(r){let{inputs:t,backend:e,attrs:n}=r,{shape:o,values:s,defaultValue:i,rowPartitionTensors:a}=t,{rowPartitionTypes:u}=n,l=e.readSync(o.dataId),c=e.readSync(s.dataId),p=e.readSync(i.dataId),m=a.map(g=>e.readSync(g.dataId)),f=a.map(g=>g.shape),[d,h]=PL(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var X3={kernelName:Dp,backendName:"webgl",kernelFunc:dot};var kk=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=LL(n,o,s,i);return t.makeTensorInfo([a.length],i,a)},Y3={kernelName:Ol,backendName:"webgl",kernelFunc:kk};var hot="return 1.0 / x;",got=Ct({opSnippet:hot}),Z3={kernelName:Pa,backendName:"webgl",kernelFunc:got};var xot=fr+` return (x < 0.0) ? 0.0 : x; `,yot=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); @@ -4477,7 +4477,7 @@ return a / b;`,Xnt=` } setOutput(mix(getDefaultValue(), sum, float(found))); } - `}};function Dot(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o,updates:s}=t,{shape:i}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=v.calculateShapes(s,o,i),m=[p/l,l];if(p===0)return e.makeTensorInfo(i,o.dtype);let f=st({inputs:{x:o},backend:e,attrs:{shape:[u,a]}}),d=st({inputs:{x:s},backend:e,attrs:{shape:[u,l]}}),h=e.makeTensorInfo([],"float32",new Float32Array([0])),g=new $d(u,a,f.shape.length,d.shape.length,c,m),x=e.runWebGLProgram(g,[d,f,h],d.dtype),b=st({inputs:{x},backend:e,attrs:{shape:i}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(h),b}var lB={kernelName:La,backendName:"webgl",kernelFunc:Dot};var eI=class{constructor(t,e,n,o){this.variableNames=["sortedSequence","values"],this.customUniforms=[{name:"numInputs",type:"int"}],this.outputShape=[t,n];let s="while (left < right) {",i=`for (int i = 0; i < ${Math.ceil(Math.log2(e+1))}; ++i) { if (left >= right) break;`,a=z().getNumber("WEBGL_VERSION")===2?s:i,u=o==="left"?"<":"<=";this.userCode=` + `}};function Dot(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o,updates:s}=t,{shape:i}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=v.calculateShapes(s,o,i),m=[p/l,l];if(p===0)return e.makeTensorInfo(i,o.dtype);let f=it({inputs:{x:o},backend:e,attrs:{shape:[u,a]}}),d=it({inputs:{x:s},backend:e,attrs:{shape:[u,l]}}),h=e.makeTensorInfo([],"float32",new Float32Array([0])),g=new $d(u,a,f.shape.length,d.shape.length,c,m),x=e.runWebGLProgram(g,[d,f,h],d.dtype),b=it({inputs:{x},backend:e,attrs:{shape:i}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(h),b}var lB={kernelName:La,backendName:"webgl",kernelFunc:Dot};var eI=class{constructor(t,e,n,o){this.variableNames=["sortedSequence","values"],this.customUniforms=[{name:"numInputs",type:"int"}],this.outputShape=[t,n];let s="while (left < right) {",i=`for (int i = 0; i < ${Math.ceil(Math.log2(e+1))}; ++i) { if (left >= right) break;`,a=z().getNumber("WEBGL_VERSION")===2?s:i,u=o==="left"?"<":"<=";this.userCode=` int findBound(int batch, float value) { int left = 0; int right = numInputs; @@ -4558,7 +4558,7 @@ return a / b;`,Xnt=` result = log(exp_x + 1.0); } return result; -`,Kot=Ct({opSnippet:qot}),gB={kernelName:Va,backendName:"webgl",kernelFunc:Kot};var jot=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,paddings:i}=n;y.assert(o.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let a=s.reduce((x,b)=>x*b),u=[[0,0]];u.push(...i);for(let x=1+s.length;xe.disposeIntermediateTensorInfo(x)),g},xB={kernelName:xi,backendName:"webgl",kernelFunc:jot};function Xot(r){let{inputs:t,backend:e}=r,{indices:n,values:o,denseShape:s,defaultValue:i}=t;if(s.shape.length!==1)throw new Error(`Dense shape must be a vector, saw: +`,Kot=Ct({opSnippet:qot}),gB={kernelName:Va,backendName:"webgl",kernelFunc:Kot};var jot=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,paddings:i}=n;y.assert(o.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let a=s.reduce((x,b)=>x*b),u=[[0,0]];u.push(...i);for(let x=1+s.length;xe.disposeIntermediateTensorInfo(x)),g},xB={kernelName:xi,backendName:"webgl",kernelFunc:jot};function Xot(r){let{inputs:t,backend:e}=r,{indices:n,values:o,denseShape:s,defaultValue:i}=t;if(s.shape.length!==1)throw new Error(`Dense shape must be a vector, saw: ${s.shape}`);if(n.shape.length!==2)throw new Error(`Indices must be a matrix, saw: ${n.shape}`);if(o.shape.length!==1)throw new Error(`Values must be a vector, saw: ${o.shape}`);if(i.shape.length!==0)throw new Error(`Default value must be a scalar, saw: @@ -4566,7 +4566,7 @@ return a / b;`,Xnt=` ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape ${s.shape}`);let i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=zw(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var wB={kernelName:Ll,backendName:"webgl",kernelFunc:Zot};function Jot(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);let i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=zw(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var CB={kernelName:Ml,backendName:"webgl",kernelFunc:Jot};function Qot(r){let{inputs:t,backend:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=t,{outputShape:a}=n,{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=v.calculateShapes(s,o,a),f=!1;if(s.dtype==="string"){let x=e.bufferSync(o),b=e.bufferSync(s),w=y.decodeString(e.readSync(i.dataId)[0]),C=zL(x,b,a,m,c,l,u,p,w,f);return e.makeTensorInfo(a,C.dtype,C.values)}let d=new $d(l,u,o.shape.length,s.shape.length,p,[m,1],f),h=e.runWebGLProgram(d,[s,o,i],s.dtype),g=st({inputs:{x:h},backend:e,attrs:{shape:a}});return e.disposeIntermediateTensorInfo(h),g}var IB={kernelName:Lp,backendName:"webgl",kernelFunc:Qot};function tst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=n,a=y.parseAxisParam(i,o.shape)[0],u=v.prepareSplitSize(o,s,a),l=o.shape.length,c=new Array(l).fill(0),p=o.shape.slice();return u.map(m=>{let f=[...p];f[a]=m;let d=ri({inputs:{x:o},backend:e,attrs:{begin:c,size:f}});return c[a]+=m,d})}var SB={kernelName:yi,backendName:"webgl",kernelFunc:tst};var vB="return sqrt(x);",est=Ct({opSnippet:vB,packedOpSnippet:vB,cpuKernelImpl:UL}),NB={kernelName:As,backendName:"webgl",kernelFunc:est};var rst="return x * x;",nst=Ct({opSnippet:rst}),TB={kernelName:zl,backendName:"webgl",kernelFunc:nst};var kB="return (a - b) * (a - b);",ost=le({opSnippet:kB,packedOpSnippet:kB}),EB={kernelName:Rs,backendName:"webgl",kernelFunc:ost};function sst({inputs:r,attrs:t,backend:e}){let{x:n}=r,o=fr+` + ${s.shape}`);let i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=zw(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var CB={kernelName:Ml,backendName:"webgl",kernelFunc:Jot};function Qot(r){let{inputs:t,backend:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=t,{outputShape:a}=n,{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=v.calculateShapes(s,o,a),f=!1;if(s.dtype==="string"){let x=e.bufferSync(o),b=e.bufferSync(s),w=y.decodeString(e.readSync(i.dataId)[0]),C=zL(x,b,a,m,c,l,u,p,w,f);return e.makeTensorInfo(a,C.dtype,C.values)}let d=new $d(l,u,o.shape.length,s.shape.length,p,[m,1],f),h=e.runWebGLProgram(d,[s,o,i],s.dtype),g=it({inputs:{x:h},backend:e,attrs:{shape:a}});return e.disposeIntermediateTensorInfo(h),g}var IB={kernelName:Lp,backendName:"webgl",kernelFunc:Qot};function tst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=n,a=y.parseAxisParam(i,o.shape)[0],u=v.prepareSplitSize(o,s,a),l=o.shape.length,c=new Array(l).fill(0),p=o.shape.slice();return u.map(m=>{let f=[...p];f[a]=m;let d=ri({inputs:{x:o},backend:e,attrs:{begin:c,size:f}});return c[a]+=m,d})}var SB={kernelName:yi,backendName:"webgl",kernelFunc:tst};var vB="return sqrt(x);",est=Ct({opSnippet:vB,packedOpSnippet:vB,cpuKernelImpl:UL}),NB={kernelName:As,backendName:"webgl",kernelFunc:est};var rst="return x * x;",nst=Ct({opSnippet:rst}),TB={kernelName:zl,backendName:"webgl",kernelFunc:nst};var kB="return (a - b) * (a - b);",ost=le({opSnippet:kB,packedOpSnippet:kB}),EB={kernelName:Rs,backendName:"webgl",kernelFunc:ost};function sst({inputs:r,attrs:t,backend:e}){let{x:n}=r,o=fr+` return x > 0.0 ? 1.0 : float(${t.alpha}); `,s=new tn(n.shape,o);return e.runWebGLProgram(s,[n],n.dtype)}var _B={kernelName:po,backendName:"webgl",kernelFunc:sst};var nI=class{constructor(t,e,n){this.variableNames=["x"],this.outputShape=n;let o=n.length,s=zt(n.length),i=zt(n.length),a="";if(o===1)a="coords * strides + begin";else{let u=0;a=n.map((l,c)=>(u++,n.length===1?`coords * strides[${c}] + begin[${c}]`:`coords[${u-1}] * strides[${c}] + begin[${c}]`)).join(",")}this.userCode=` ${s} begin = ${s}(${t}); @@ -4576,7 +4576,7 @@ return a / b;`,Xnt=` ${i} coords = getOutputCoords(); setOutput(getX(${a})); } - `}};function ist(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n,{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Le.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=st({inputs:{x:o},backend:e,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let A=Le.computeOutShape(b,w,C),$=ri({inputs:{x:o},backend:e,attrs:{begin:b,size:A}});N=st({inputs:{x:$},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo($)}else if(e.shouldExecuteOnCPU([o])){let $=e.readSync(o.dataId),F=wt(o.shape,o.dtype,$),P=HL(f,F,C,b);N=e.makeTensorInfo(d,o.dtype,P.values)}else{let $=new nI(b,C,f);N=e.runWebGLProgram($,[o],o.dtype)}let _=st({inputs:{x:N},backend:e,attrs:{shape:d}});return e.disposeIntermediateTensorInfo(N),_}var AB={kernelName:Wa,backendName:"webgl",kernelFunc:ist};function ast(r){let{inputs:t,backend:e,attrs:n}=r,{separator:o,nGramWidths:s,leftPad:i,rightPad:a,padWidth:u,preserveShortSequences:l}=n,{data:c,dataSplits:p}=t,m=e.readSync(c.dataId),f=e.readSync(p.dataId),[d,h]=qL(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],"string",d),e.makeTensorInfo(p.shape,"int32",h)]}var $B={kernelName:Bl,backendName:"webgl",kernelFunc:ast};function lst(r){let{inputs:t,backend:e,attrs:n}=r,{skipEmpty:o}=n,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let a=e.readSync(s.dataId),u=e.readSync(i.dataId)[0],[l,c,p]=KL(a,u,o),m=c.length;return[e.makeTensorInfo([m,2],"int32",l),e.makeTensorInfo([m],"string",c),e.makeTensorInfo([2],"int32",new Int32Array(p))]}var DB={kernelName:Vl,backendName:"webgl",kernelFunc:lst};function ust(r){let{inputs:t,backend:e,attrs:n}=r,{numBuckets:o}=n,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(o<=0)throw new Error("Number of buckets must be at least 1");let i=e.readSync(s.dataId),a=jL(i,o);return e.makeTensorInfo(s.shape,"int32",a)}var RB={kernelName:Gl,backendName:"webgl",kernelFunc:ust};var cst="return tan(x);",pst=Ct({opSnippet:cst}),FB={kernelName:Os,backendName:"webgl",kernelFunc:pst};var mst=` + `}};function ist(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n,{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Le.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=it({inputs:{x:o},backend:e,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let A=Le.computeOutShape(b,w,C),$=ri({inputs:{x:o},backend:e,attrs:{begin:b,size:A}});N=it({inputs:{x:$},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo($)}else if(e.shouldExecuteOnCPU([o])){let $=e.readSync(o.dataId),F=wt(o.shape,o.dtype,$),P=HL(f,F,C,b);N=e.makeTensorInfo(d,o.dtype,P.values)}else{let $=new nI(b,C,f);N=e.runWebGLProgram($,[o],o.dtype)}let _=it({inputs:{x:N},backend:e,attrs:{shape:d}});return e.disposeIntermediateTensorInfo(N),_}var AB={kernelName:Wa,backendName:"webgl",kernelFunc:ist};function ast(r){let{inputs:t,backend:e,attrs:n}=r,{separator:o,nGramWidths:s,leftPad:i,rightPad:a,padWidth:u,preserveShortSequences:l}=n,{data:c,dataSplits:p}=t,m=e.readSync(c.dataId),f=e.readSync(p.dataId),[d,h]=qL(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],"string",d),e.makeTensorInfo(p.shape,"int32",h)]}var $B={kernelName:Bl,backendName:"webgl",kernelFunc:ast};function lst(r){let{inputs:t,backend:e,attrs:n}=r,{skipEmpty:o}=n,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let a=e.readSync(s.dataId),u=e.readSync(i.dataId)[0],[l,c,p]=KL(a,u,o),m=c.length;return[e.makeTensorInfo([m,2],"int32",l),e.makeTensorInfo([m],"string",c),e.makeTensorInfo([2],"int32",new Int32Array(p))]}var DB={kernelName:Vl,backendName:"webgl",kernelFunc:lst};function ust(r){let{inputs:t,backend:e,attrs:n}=r,{numBuckets:o}=n,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(o<=0)throw new Error("Number of buckets must be at least 1");let i=e.readSync(s.dataId),a=jL(i,o);return e.makeTensorInfo(s.shape,"int32",a)}var RB={kernelName:Gl,backendName:"webgl",kernelFunc:ust};var cst="return tan(x);",pst=Ct({opSnippet:cst}),FB={kernelName:Os,backendName:"webgl",kernelFunc:pst};var mst=` float e2x = exp(-2.0 * abs(x)); return sign(x) * (1.0 - e2x) / (1.0 + e2x); `,fst=Ct({opSnippet:mst}),OB={kernelName:Ps,backendName:"webgl",kernelFunc:fst};var oI=class{constructor(t,e){this.variableNames=["A"];let n=new Array(t.length);for(let i=0;i= x1 ? float(i0) : float(i1)); } - `}};function Kc(r,t){t!==null&&r.disposeIntermediateTensorInfo(t)}function LB(r){let t=1;for(;tu){let P=e.readSync(o.dataId),[V,G]=ZL(P,l,o.dtype,s,i);return[e.makeTensorInfo(V.shape,V.dtype,V.values),e.makeTensorInfo(G.shape,G.dtype,G.values)]}if(s===0)return l[l.length-1]=0,[e.makeTensorInfo(l,o.dtype,[]),e.makeTensorInfo(l,"int32",[])];if(c===1)return[o,Cl({attrs:{shape:l,dtype:"int32",value:0},backend:e})];let p=e.texData.get(o.dataId),m=p!==null&&p.isPacked,f=m?e.unpackTensor(o):o,h=y.sizeFromShape(l)/c,g=st({inputs:{x:f},attrs:{shape:[h,c]},backend:e});m&&Kc(e,f);let x=LB(s),b=LB(c),w=null,C=()=>w===null?[g,g]:[g,w],N=(P,V,G)=>{let W=C(),q=new sI(G),j=[[c],[w===null?1:0],[Number.NEGATIVE_INFINITY],[P],[V]],Y=w;w=e.runWebGLProgram(q,W,"int32",j),Kc(e,Y)};for(let P=1;P=1;G/=2)N(V,G,[h,b])}for(let P=b;P>x;P/=2){let V=C(),G=new iI([h,P/2]),q=[[c],[w===null?1:0],[x]],H=w;w=e.runWebGLProgram(G,V,"int32",q),Kc(e,H);let j=x/2,Y=j*2;for(let Z=j;Z>=1;Z/=2)N(Y,Z,w.shape)}let _=w;w=ri({inputs:{x:w},backend:e,attrs:{begin:0,size:[h,s]}}),Kc(e,_);let A=Ck({inputs:{x:g,indices:w},backend:e,attrs:{axis:1,batchDims:1}});Kc(e,g);let $=l.slice(0,-1);$.push(s),_=w,w=st({inputs:{x:w},attrs:{shape:$},backend:e}),Kc(e,_);let F=A;return A=st({inputs:{x:A},attrs:{shape:$},backend:e}),Kc(e,F),[A,w]}var MB={kernelName:Ua,backendName:"webgl",kernelFunc:hst};var aI=class{constructor(t,e,n,o,s,i){this.variableNames=["Image","Transforms"],this.outputShape=i;let a=n==="nearest"?1:2,u;switch(o){case"constant":u=1;break;case"reflect":u=2;break;case"wrap":u=3;break;case"nearest":u=4;break;default:u=1;break}this.userCode=` + `}};function Kc(r,t){t!==null&&r.disposeIntermediateTensorInfo(t)}function LB(r){let t=1;for(;tu){let P=e.readSync(o.dataId),[V,G]=ZL(P,l,o.dtype,s,i);return[e.makeTensorInfo(V.shape,V.dtype,V.values),e.makeTensorInfo(G.shape,G.dtype,G.values)]}if(s===0)return l[l.length-1]=0,[e.makeTensorInfo(l,o.dtype,[]),e.makeTensorInfo(l,"int32",[])];if(c===1)return[o,Cl({attrs:{shape:l,dtype:"int32",value:0},backend:e})];let p=e.texData.get(o.dataId),m=p!==null&&p.isPacked,f=m?e.unpackTensor(o):o,h=y.sizeFromShape(l)/c,g=it({inputs:{x:f},attrs:{shape:[h,c]},backend:e});m&&Kc(e,f);let x=LB(s),b=LB(c),w=null,C=()=>w===null?[g,g]:[g,w],N=(P,V,G)=>{let W=C(),q=new sI(G),j=[[c],[w===null?1:0],[Number.NEGATIVE_INFINITY],[P],[V]],Y=w;w=e.runWebGLProgram(q,W,"int32",j),Kc(e,Y)};for(let P=1;P=1;G/=2)N(V,G,[h,b])}for(let P=b;P>x;P/=2){let V=C(),G=new iI([h,P/2]),q=[[c],[w===null?1:0],[x]],H=w;w=e.runWebGLProgram(G,V,"int32",q),Kc(e,H);let j=x/2,Y=j*2;for(let Z=j;Z>=1;Z/=2)N(Y,Z,w.shape)}let _=w;w=ri({inputs:{x:w},backend:e,attrs:{begin:0,size:[h,s]}}),Kc(e,_);let A=Ck({inputs:{x:g,indices:w},backend:e,attrs:{axis:1,batchDims:1}});Kc(e,g);let $=l.slice(0,-1);$.push(s),_=w,w=it({inputs:{x:w},attrs:{shape:$},backend:e}),Kc(e,_);let F=A;return A=it({inputs:{x:A},attrs:{shape:$},backend:e}),Kc(e,F),[A,w]}var MB={kernelName:Ua,backendName:"webgl",kernelFunc:hst};var aI=class{constructor(t,e,n,o,s,i){this.variableNames=["Image","Transforms"],this.outputShape=i;let a=n==="nearest"?1:2,u;switch(o){case"constant":u=1;break;case"reflect":u=2;break;case"wrap":u=3;break;case"nearest":u=4;break;default:u=1;break}this.userCode=` float mapCoord(float outCoord, float len) { float inCoord = outCoord; if(${u} == 2) { @@ -4770,7 +4770,7 @@ return a / b;`,Xnt=` } setOutput(outputValue); } - `}};function gst(r){let{inputs:t,backend:e,attrs:n}=r,{image:o,transforms:s}=t,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=n,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=new aI(p,m,i,a,u,g);return e.runWebGLProgram(x,[o,s],"float32")}var zB={kernelName:Ha,backendName:"webgl",kernelFunc:gst};function xst(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t;Qs(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=n.readSync(s.dataId),{outputValues:a,outputShape:u,indices:l}=JL(i,o,s.shape,s.dtype);return[n.makeTensorInfo(u,s.dtype,a),n.makeTensorInfo([l.length],"int32",l)]}var BB={kernelName:Mp,backendName:"webgl",kernelFunc:xst};function yst(r){let{inputs:t,backend:e,attrs:n}=r,{value:o}=t,{axis:s}=n;s<0&&(s+=o.shape.length);let i=o,a=i.shape.length,u=o.shape[s],l=new Array(a-1),c=0;for(let h=0;he.disposeIntermediateTensorInfo(h)),d}var VB={kernelName:bi,backendName:"webgl",kernelFunc:yst};var lI=class{constructor(t,e){this.variableNames=["x","segmentIds"];let n=t.windowSize,o=t.batchSize,s=t.inSize,i=t.numSegments,a=i*Math.ceil(s/n);this.outputShape=[o,a];let u="0.0",l="sumValue",c=Math.floor(n/4)*4,p=n%4,m=` + `}};function gst(r){let{inputs:t,backend:e,attrs:n}=r,{image:o,transforms:s}=t,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=n,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=new aI(p,m,i,a,u,g);return e.runWebGLProgram(x,[o,s],"float32")}var zB={kernelName:Ha,backendName:"webgl",kernelFunc:gst};function xst(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t;Qs(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=n.readSync(s.dataId),{outputValues:a,outputShape:u,indices:l}=JL(i,o,s.shape,s.dtype);return[n.makeTensorInfo(u,s.dtype,a),n.makeTensorInfo([l.length],"int32",l)]}var BB={kernelName:Mp,backendName:"webgl",kernelFunc:xst};function yst(r){let{inputs:t,backend:e,attrs:n}=r,{value:o}=t,{axis:s}=n;s<0&&(s+=o.shape.length);let i=o,a=i.shape.length,u=o.shape[s],l=new Array(a-1),c=0;for(let h=0;he.disposeIntermediateTensorInfo(h)),d}var VB={kernelName:bi,backendName:"webgl",kernelFunc:yst};var lI=class{constructor(t,e){this.variableNames=["x","segmentIds"];let n=t.windowSize,o=t.batchSize,s=t.inSize,i=t.numSegments,a=i*Math.ceil(s/n);this.outputShape=[o,a];let u="0.0",l="sumValue",c=Math.floor(n/4)*4,p=n%4,m=` sumValue += dot(values, segFilter); `,f="";s%n>0&&(f=` if (inIdx < 0 || inIdx >= ${s}) { @@ -4876,6 +4876,6 @@ return a / b;`,Xnt=` } setOutput(${l}); } - `}};function bst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,segmentIds:s}=t,{numSegments:i}=n,a=o.shape.length,u=[],l=0,c=v.getAxesPermutation([l],a),p=o;c!=null&&(p=Oe({inputs:{x:o},backend:e,attrs:{perm:c}}),u.push(p),l=v.getInnerMostAxes(1,a)[0]);let m=v.segment_util.computeOutShape(p.shape,l,i),f=y.sizeFromShape([p.shape[l]]),d=st({inputs:{x:p},backend:e,attrs:{shape:[-1,f]}});u.push(d);let h=Wu(o.dtype),g=(C,N,_,A,$)=>{let F=C.shape[0],P=C.shape[1],V=v.segment_util.segOpComputeOptimalWindowSize(P,$),G={windowSize:V,inSize:P,batchSize:F,numSegments:$},W=new lI(G,N),q=e.compileAndRun(W,[C,_],A);if(u.push(q),q.shape[1]===$)return q;let H=kk({backend:e,attrs:{start:0,stop:$,step:1,dtype:"float32"}}),j=Ek({inputs:{x:H},backend:e,attrs:{reps:[P/V]}});return u.push(H),u.push(j),g(q,N,j,A,$)},x=g(d,"unsortedSegmentSum",s,h,i),b=st({inputs:{x},backend:e,attrs:{shape:m}}),w=b;if(c!=null){u.push(b);let C=v.getUndoAxesPermutation(c);w=Oe({inputs:{x:w},backend:e,attrs:{perm:C}})}return u.forEach(C=>e.disposeIntermediateTensorInfo(C)),w}var GB={kernelName:Wl,backendName:"webgl",kernelFunc:bst};var wst=[kM,_M,AM,$M,RM,FM,OM,PM,zM,BM,VM,GM,WM,UM,HM,qM,KM,jM,XM,YM,ZM,QM,tz,ez,sz,az,lz,xM,cz,mz,fz,dz,hz,gz,xz,yz,bz,wz,Cz,vz,Nz,Tz,kz,Ez,_z,Az,$z,Dz,Rz,Fz,Oz,Pz,Lz,Mz,zz,Vz,Gz,Wz,Uz,qz,Kz,jz,Xz,Yz,Zz,Jz,Qz,t3,gM,e3,pz,r3,n3,o3,yM,s3,i3,a3,l3,u3,c3,p3,m3,f3,d3,g3,x3,y3,b3,w3,C3,S3,N3,T3,k3,E3,_3,F3,CM,O3,P3,L3,M3,rz,z3,G3,W3,U3,H3,bM,q3,K3,j3,X3,Y3,nz,A3,Z3,J3,Q3,SM,tB,eB,rB,nB,oB,sB,iB,aB,lB,uB,cB,pB,mB,fB,dB,hB,JM,R3,gB,xB,yB,bB,wB,CB,IB,SB,NB,TB,EB,_B,AB,$B,DB,RB,D3,NM,FB,OB,PB,MB,zB,TM,BB,VB,GB,B3];for(let r of wst)Lu(r);var qt;(function(r){r[r.float32=0]="float32",r[r.int32=1]="int32",r[r.bool=2]="bool",r[r.string=3]="string",r[r.complex64=4]="complex64"})(qt||(qt={}));var Du;(function(r){r[r.linear=0]="linear",r[r.relu=1]="relu",r[r.relu6=2]="relu6",r[r.prelu=3]="prelu",r[r.leakyrelu=4]="leakyrelu",r[r.sigmoid=5]="sigmoid",r[r.elu=6]="elu"})(Du||(Du={}));var WB;function Cst(r){WB=r.wasm.cwrap(Ci,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function Ist(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s,bias:i,preluActivationWeights:a}=t;if(o.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:u,transposeB:l,activation:c,leakyreluAlpha:p}=n,m=e.dataIdMap.get(o.dataId).id,f=e.dataIdMap.get(s.dataId).id,d=0;if(i!=null){let $=e.dataIdMap.get(i.dataId);if($.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${$.shape.length}.`);d=$.id}let h=a==null?0:e.dataIdMap.get(a.dataId).id,g=Du[c];if(g==null)throw new Error(`${c} activation not yet supported for FusedConv2D in the wasm backend.`);let x=u?o.shape[2]:o.shape[1],b=l?s.shape[1]:s.shape[2],w=Vr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)),C=e.makeOutput([...w,x,b],o.dtype),N=e.dataIdMap.get(C.dataId).id,_=new Uint8Array(new Int32Array(o.shape).buffer),A=new Uint8Array(new Int32Array(s.shape).buffer);return WB(m,_,o.shape.length,f,A,s.shape.length,u,l,g,d,h,p||0,N),C}var UB={kernelName:Ci,backendName:"wasm",setupFunc:Cst,kernelFunc:Ist};function se(r,t){let e;function n(s){e=s.wasm.cwrap(r,null,["number","number","number"])}function o(s){let{backend:i,inputs:{x:a}}=s,u=i.dataIdMap.get(a.dataId).id,l=i.makeOutput(a.shape,t||a.dtype),c=i.dataIdMap.get(l.dataId).id;return y.sizeFromShape(l.shape)===0||e(u,qt[a.dtype],c),l}return{kernelName:r,backendName:"wasm",setupFunc:n,kernelFunc:o}}var HB=se(ii);function ue(r,t,e){let n;function o(i){n=i.wasm.cwrap(r,null,["number","array","number","number","array","number","number","number"])}function s(i){let{backend:a,inputs:u}=i,{a:l,b:c}=u,p=a.dataIdMap.get(l.dataId).id,m=a.dataIdMap.get(c.dataId).id,f=e!=null?e:l.dtype,d=v.assertAndGetBroadcastShape(l.shape,c.shape),h=a.makeOutput(d,f);if(y.sizeFromShape(d)===0)return h;let g=new Uint8Array(new Int32Array(l.shape).buffer),x=new Uint8Array(new Int32Array(c.shape).buffer),b=a.dataIdMap.get(h.dataId).id;return(()=>n(p,g,l.shape.length,m,x,c.shape.length,qt[l.dtype],b))(),h}return{kernelName:r,backendName:"wasm",setupFunc:o,kernelFunc:s}}var Sst=!0,qB=ue(Zn,Sst);var KB;function vst(r){KB=r.wasm.cwrap(Go,null,["array","number","number","number"])}function Nst(r){let{inputs:t,backend:e}=r,n=e.makeOutput(t[0].shape,t[0].dtype);if(y.sizeFromShape(n.shape)===0)return n;let o=t.map(a=>e.dataIdMap.get(a.dataId).id),s=new Uint8Array(new Int32Array(o).buffer),i=e.dataIdMap.get(n.dataId).id;return KB(s,o.length,qt[n.dtype],i),n}var jB={kernelName:Go,backendName:"wasm",setupFunc:vst,kernelFunc:Nst};function jc(r){let{inputs:{x:t},backend:e}=r;if(t.dtype==="string")return ur(e.readSync(t.dataId),t.shape,t.dtype);let n=e.makeOutput(t.shape,t.dtype),o=e.typedArrayFromHeap(t);return e.typedArrayFromHeap(n).set(o),n}var XB={kernelName:co,backendName:"wasm",kernelFunc:jc};var YB;function Tst(r){YB=r.wasm.cwrap(Qn,null,["number","array","number","number","number","array","number"])}function ao(r){let{inputs:t,backend:e,attrs:n}=r,[o,s]=Est(t.x.shape,n.perm),i=!0;for(let d=0;d=o&&(s===-1||n[s]>n[i])&&(s=i);n[s]=o}return[e,n]}var ZB={kernelName:Qn,backendName:"wasm",kernelFunc:ao,setupFunc:Tst};function bn(r,t,e){let n=r.shape,o=r.shape.length,s=y.parseAxisParam(t,n),i=s,a=v.getAxesPermutation(i,o),u=null,l=!1;if(a!=null){let c=new Array(o);for(let f=0;f`new shape: ${i}, old shape: ${n.shape}. New shape and old shape must have the same number of elements.`),r.backend.incRef(n.dataId),{dataId:n.dataId,shape:i,dtype:n.dtype}}var iV={kernelName:di,backendName:"wasm",kernelFunc:ar};var aV;function Lst(r){aV=r.wasm.cwrap(Ho,null,["number","array","number","number","array","number","number","number","number"])}function Mst(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;if(o.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let u=o.shape.length,l=s.shape.length,c=i?o.shape[u-2]:o.shape[u-1],p=a?s.shape[l-1]:s.shape[l-2],m=i?o.shape[u-1]:o.shape[u-2],f=a?s.shape[l-2]:s.shape[l-1],d=o.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=Vr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)).concat([m,f]);y.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${o.shape} and ${s.shape} and transposeA=${i} and transposeB=${a} must match.`);let C=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],_=ar({inputs:{x:o},backend:e,attrs:{shape:C}}),A=ar({inputs:{x:s},backend:e,attrs:{shape:N}}),$=e.dataIdMap.get(_.dataId).id,F=e.dataIdMap.get(A.dataId).id,P=i?_.shape[2]:_.shape[1],V=a?A.shape[1]:A.shape[2],G=Math.max(g,x),W=e.makeOutput([G,P,V],_.dtype),q=e.dataIdMap.get(W.dataId).id,H=new Uint8Array(new Int32Array(_.shape).buffer),j=new Uint8Array(new Int32Array(A.shape).buffer);return aV($,H,_.shape.length,F,j,A.shape.length,i,a,q),e.disposeData(_.dataId),e.disposeData(A.dataId),W.shape=w,W}var lV={kernelName:Ho,backendName:"wasm",setupFunc:Lst,kernelFunc:Mst};function Lo(r){let{inputs:{x:t},attrs:{begin:e,size:n},backend:o}=r,[s,i]=Le.parseSliceParams(t,e,n),a=Le.isSliceContinous(t.shape,s,i),u=o.readSync(t.dataId),l=o.makeOutput(i,t.dtype),c=y.computeStrides(t.shape),p=o.dataIdMap.get(l.dataId);if(a){let d=Le.computeFlatOffset(s,c);return t.dtype==="string"?p.stringBytes=u.slice(d,d+y.sizeFromShape(i)):o.typedArrayFromHeap(l).set(u.subarray(d,d+y.sizeFromShape(i))),l}if(t.dtype==="string"){let d=$c(u,s,i,t.shape,t.dtype);return p.stringBytes=d,l}let m=o.typedArrayFromHeap(l),f=t.shape.length;if(f===2)zst(u,c[0],m,s,i);else if(f===3)Bst(u,c[0],c[1],m,s,i);else if(f===4)Vst(u,c[0],c[1],c[2],m,s,i);else{let d=$c(u,s,i,t.shape,t.dtype);m.set(d)}return l}function zst(r,t,e,n,o){let s=0,i=n[0],a=n[1],u=i+o[0];for(let l=i;lx*b),u=v.getReshaped(o.shape,s,a),l=v.getPermuted(u.length,s.length),c=v.getReshapedPermuted(o.shape,s,a),p=v.getSliceBeginCoords(i,s.length),m=v.getSliceSize(c,i,s.length),f=ar({inputs:{x:o},backend:e,attrs:{shape:u}}),d=ao({inputs:{x:f},backend:e,attrs:{perm:l}}),h=ar({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Lo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeData(f.dataId),e.disposeData(d.dataId),e.disposeData(f.dataId),g}var cV={kernelName:ai,backendName:"wasm",kernelFunc:Gst};function ni(r){let{inputs:{x:t},attrs:{dtype:e},backend:n}=r,o=n.makeOutput(t.shape,e),s=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(o).set(s),o}var pV={kernelName:lo,backendName:"wasm",kernelFunc:ni};var mV=se(qo);var fV;function Wst(r){fV=r.wasm.cwrap(uo,null,["number","number","number","number"])}function Ust(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a=e.dataIdMap.get(o.dataId).id,u=e.makeOutput(o.shape,o.dtype),l=e.dataIdMap.get(u.dataId).id;return fV(a,s,i,l),u}var dV={kernelName:uo,backendName:"wasm",setupFunc:Wst,kernelFunc:Ust};function _k(r){let{inputs:t,backend:e}=r,n=y.parseAxisParam(r.attrs.axis,t[0].shape)[0],o=t.map(f=>f.shape);v.assertParamsConsistent(o,n);let s=v.computeOutShape(t.map(f=>f.shape),n),i=t.filter(f=>y.sizeFromShape(f.shape)>0);if(i.length===1)return jc({inputs:{x:i[0]},backend:e});let a=e.makeOutput(s,t[0].dtype);if(y.sizeFromShape(s)===0)return a;if(i[0].dtype==="string"){let f=i.map(w=>{let C=y.sizeFromShape(w.shape.slice(n));return ar({inputs:{x:w},backend:e,attrs:{shape:[-1,C]}})}),d=f.map(w=>({vals:e.readSync(w.dataId),shape:w.shape}));s=v.computeOutShape(f.map(w=>w.shape),1);let h=f[0].shape[0]===1,g=Ec(d,s,t[0].dtype,h),x=v.computeOutShape(i.map(w=>w.shape),n);a.shape=x;let b=e.dataIdMap.get(a.dataId);return b.stringBytes=v.fromStringArrayToUint8(g),f.forEach(w=>e.disposeData(w.dataId)),a}let u=y.sizeFromShape(i[0].shape.slice(0,n)),l=0,c=i.map(f=>{let d=y.sizeFromShape(f.shape.slice(n));return l+=d,d}),p=i.map(f=>e.typedArrayFromHeap(f)),m=e.typedArrayFromHeap(a);for(let f=0;f`cumprod does not support ${o.dtype} tensors in the WASM backend`);let l=v.getAxesPermutation([s],u),c=o;l!==null&&(c=ao({inputs:{x:o},attrs:{perm:l},backend:e}));let p=v.getInnerMostAxes(1,u)[0];v.assertAxesAreInnerMostDims("cumprod",[p],u);let m=e.makeOutput(c.shape,c.dtype),f=c.shape[p],d=e.dataIdMap.get(c.dataId).id,h=e.dataIdMap.get(m.dataId).id;vV(d,i?1:0,a?1:0,f,h,qt[o.dtype]);let g=m;if(l!==null){let x=v.getUndoAxesPermutation(l);g=ao({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var NV={kernelName:fa,backendName:"wasm",setupFunc:Zst,kernelFunc:Jst};var TV;function Qst(r){TV=r.wasm.cwrap(Zo,null,["number","number","number","number","number","number"])}function tit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n,u=o.shape.length;y.assert(o.dtype==="float32"||o.dtype==="int32",()=>`cumsum does not support ${o.dtype} tensors in the WASM backend`);let l=v.getAxesPermutation([s],u),c=o;l!==null&&(c=ao({inputs:{x:o},attrs:{perm:l},backend:e}));let p=v.getInnerMostAxes(1,u)[0];v.assertAxesAreInnerMostDims("cumsum",[p],u);let m=e.makeOutput(c.shape,c.dtype),f=c.shape[p],d=e.dataIdMap.get(c.dataId).id,h=e.dataIdMap.get(m.dataId).id;TV(d,i?1:0,a?1:0,f,h,qt[o.dtype]);let g=m;if(l!==null){let x=v.getUndoAxesPermutation(l);g=ao({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var kV={kernelName:Zo,backendName:"wasm",setupFunc:Qst,kernelFunc:tit};var EV;function eit(r){EV=r.wasm.cwrap(ha,null,["number","number","number","array","number","array","array","number","number"])}function rit(r){let{backend:t,inputs:e,attrs:n}=r,{x:o}=e,{blockSize:s,dataFormat:i}=n,a=o.shape[0],u=i==="NHWC"?o.shape[1]:o.shape[2],l=i==="NHWC"?o.shape[2]:o.shape[3],c=i==="NHWC"?o.shape[3]:o.shape[1],p=u*s,m=l*s,f=c/(s*s),d=i==="NHWC"?[a,p,m,f]:[a,f,p,m],h=t.makeOutput(d,"float32"),x=t.dataIdMap.get(o.dataId).id,b=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),w=new Uint8Array(new Int32Array(d).buffer),C=new Uint8Array(new Int32Array(y.computeStrides(d)).buffer),N=t.dataIdMap.get(h.dataId).id;return EV(x,s,i==="NHWC"?1:0,b,o.shape.length-1,w,C,d.length,N),h}var _V={kernelName:ha,backendName:"wasm",setupFunc:eit,kernelFunc:rit};var AV;function nit(r){AV=r.wasm.cwrap(Jo,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function oit(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s}=t,i=n.dataIdMap.get(o.dataId).id,a=n.dataIdMap.get(s.dataId).id,{strides:u,dilations:l,pad:c,dimRoundingMode:p}=e,m=l==null?[1,1]:l,f=v.computeConv2DInfo(o.shape,s.shape,u,m,c,p,!0),d=f.filterHeight,h=f.filterWidth,g=f.padInfo.top,x=f.padInfo.right,b=f.padInfo.bottom,w=f.padInfo.left,C=f.dilationHeight,N=f.dilationWidth,_=f.strideHeight,A=f.strideWidth,$=f.inChannels,F=f.outChannels,P=f.padInfo.type==="SAME"?1:0;if(f.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${f.dataFormat}'. Please use 'channelsLast'.`);let V=n.makeOutput(f.outShape,"float32"),G=n.dataIdMap.get(V.dataId).id;return AV(i,o.shape[0],o.shape[1],o.shape[2],a,d,h,g,x,b,w,P,C,N,_,A,$,F,G),V}var $V={kernelName:Jo,backendName:"wasm",setupFunc:nit,kernelFunc:oit};var DV=se(ts);var sit=!1,RV=ue(xa,sit,"bool");var FV=se(es,"float32");function uI(r){let{inputs:t,attrs:e,backend:n}=r,{input:o}=t,{dim:s}=e,i=o.shape.length,a=o.shape.slice(),u=s;return s<0&&(y.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+s+1),a.splice(u,0,1),ar({inputs:{x:o},backend:n,attrs:{shape:a}})}var OV={kernelName:ui,backendName:"wasm",kernelFunc:uI};function $k(r){let{attrs:{shape:t,value:e,dtype:n},backend:o}=r,s=o.makeOutput(t,n);return o.typedArrayFromHeap(s).fill(e),s}var PV={kernelName:Dl,backendName:"wasm",kernelFunc:$k};var LV;function iit(r){LV=r.wasm.cwrap(ba,null,["number","number","number","number","number","number"])}function ait(r){let{inputs:t,backend:e}=r,{image:n}=t,o=e.makeOutput(n.shape,n.dtype),s=e.dataIdMap.get(n.dataId).id,i=e.dataIdMap.get(o.dataId).id,[a,u,l,c]=n.shape;return LV(s,a,u,l,c,i),o}var MV={kernelName:ba,backendName:"wasm",kernelFunc:ait,setupFunc:iit};var zV=se(rs);var lit=!1,BV=ue(ns,lit);var VV;function uit(r){VV=r.wasm.cwrap(os,null,["number","number","number","number","number","number","number"])}function cit(r){let{backend:t,inputs:e,attrs:n}=r,{varianceEpsilon:o}=n,{x:s,mean:i,variance:a,offset:u,scale:l}=e,c=t.dataIdMap.get(s.dataId).id,p=t.dataIdMap.get(i.dataId).id,m=t.dataIdMap.get(a.dataId).id,f=u!=null?t.dataIdMap.get(u.dataId).id:0,d=l!=null?t.dataIdMap.get(l.dataId).id:0,h=t.makeOutput(s.shape,s.dtype);if(y.sizeFromShape(s.shape)===0)return h;let g=t.dataIdMap.get(h.dataId).id;return VV(c,p,m,f,d,o,g),h}var GV={kernelName:os,backendName:"wasm",setupFunc:uit,kernelFunc:cit};var WV;function pit(r){WV=r.wasm.cwrap(Ii,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function mit(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=e,h=v.computeConv2DInfo(o.shape,s.shape,u,c,l,m),g=Du[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedConv2D in the wasm backend.`);let x=n.dataIdMap.get(o.dataId).id,b=n.dataIdMap.get(s.dataId).id,w=h.outChannels,C=0;if(i!=null){let nt=n.dataIdMap.get(i.dataId);if(nt.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${nt.shape.length}.`);if(nt.shape[0]!==w)throw new Error(`FusedConv2D bias shape (${nt.shape}) does not match the number of output channels (${w})`);C=nt.id}let N=h.filterHeight,_=h.filterWidth,A=h.padInfo.top,$=h.padInfo.right,F=h.padInfo.bottom,P=h.padInfo.left,V=h.dilationHeight,G=h.dilationWidth,W=h.strideHeight,q=h.strideWidth,H=h.inChannels,j=h.padInfo.type==="SAME"?1:0,Y=h.batchSize,Z=h.inHeight,et=h.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let rt=n.makeOutput(h.outShape,"float32"),ot=n.dataIdMap.get(rt.dataId).id,at=a==null?0:n.dataIdMap.get(a.dataId).id;return WV(x,Y,Z,et,b,N,_,C,A,$,F,P,j,V,G,W,q,H,w,g,at,d||0,ot),rt}var UV={kernelName:Ii,backendName:"wasm",setupFunc:pit,kernelFunc:mit};var HV;function fit(r){HV=r.wasm.cwrap(Si,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function dit(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=e,h=v.computeConv2DInfo(o.shape,s.shape,u,c,l,m,!0),g=Du[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let x=n.dataIdMap.get(o.dataId).id,b=n.dataIdMap.get(s.dataId).id,w=h.outChannels,C=0;if(i!=null){let nt=n.dataIdMap.get(i.dataId);if(nt.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${nt.shape.length}.`);if(nt.shape[0]!==w)throw new Error(`FusedDepthwiseConv2D bias shape (${nt.shape}) does not match the number of output channels (${w})`);C=nt.id}let N=h.filterHeight,_=h.filterWidth,A=h.padInfo.top,$=h.padInfo.right,F=h.padInfo.bottom,P=h.padInfo.left,V=h.dilationHeight,G=h.dilationWidth,W=h.strideHeight,q=h.strideWidth,H=h.inChannels,j=h.padInfo.type==="SAME"?1:0,Y=h.batchSize,Z=h.inHeight,et=h.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let rt=n.makeOutput(h.outShape,"float32"),ot=n.dataIdMap.get(rt.dataId).id,at=a==null?0:n.dataIdMap.get(a.dataId).id;return HV(x,Y,Z,et,b,N,_,C,A,$,F,P,j,V,G,W,q,H,w,g,at,d||0,ot),rt}var qV={kernelName:Si,backendName:"wasm",setupFunc:fit,kernelFunc:dit};var KV;function hit(r){KV=r.wasm.cwrap(wa,null,["number","number","number","number","number","number","array","number"])}function git(r){let{backend:t,inputs:e}=r,{params:n,indices:o}=e,[s,i,a,u]=ox.prepareAndValidate(n,o),l=t.makeOutput(s,n.dtype);if(i===0)return l;let c=o.shape,p=c[c.length-1],f=t.dataIdMap.get(n.dataId).id,h=t.dataIdMap.get(o.dataId).id,g=new Uint8Array(new Int32Array(u).buffer),x=t.dataIdMap.get(l.dataId).id;return KV(f,qt[n.dtype],h,i,p,a,g,x),l}var jV={kernelName:wa,backendName:"wasm",setupFunc:hit,kernelFunc:git};var XV;function xit(r){XV=r.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function yit(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,indices:s}=e,{axis:i,batchDims:a}=n,u=y.parseAxisParam(i,o.shape)[0],l=t.readSync(s.dataId),c=o.shape[u];for(let F=0;F=0,()=>`GatherV2: the index value ${P} is not in [0, ${c-1}]`)}let p=v.segment_util.collectGatherOpShapeInfo(o,s,u,a),m=ar({inputs:{x:o},attrs:{shape:[p.batchSize,p.outerSize,p.dimSize,p.sliceSize]},backend:t}),f=y.sizeFromShape(s.shape),d=ar({inputs:{x:s},attrs:{shape:[p.batchSize,f/p.batchSize]},backend:t}),h=[p.batchSize,p.outerSize,f/p.batchSize,p.sliceSize],g=t.makeOutput(h,o.dtype);if(y.sizeFromShape(o.shape)===0)return g;let x=m.shape.length-1,w=t.dataIdMap.get(m.dataId).id,N=t.dataIdMap.get(d.dataId).id,_=t.dataIdMap.get(g.dataId).id,A=new Uint8Array(new Int32Array(y.computeStrides(m.shape)).buffer),$=new Uint8Array(new Int32Array(y.computeStrides(h)).buffer);return XV(w,qt[o.dtype],A,x,N,p.batchSize,$,_),t.disposeData(m.dataId),t.disposeData(d.dataId),g.shape=p.outputShape,g}var YV={kernelName:ci,backendName:"wasm",setupFunc:xit,kernelFunc:yit};var bit=!1,ZV=ue(Ca,bit,"bool");var wit=!1,JV=ue(ss,wit,"bool");var QV;function Cit(r){QV=r.wasm.cwrap(is,null,["number","number","number","number"])}function Iit(r){let{inputs:{x:t},attrs:{alpha:e},backend:n}=r,o=n.dataIdMap.get(t.dataId).id,s=n.makeOutput(t.shape,"float32");if(y.sizeFromShape(t.shape)!==0){let i=n.dataIdMap.get(s.dataId).id;QV(o,qt[t.dtype],e,i)}return s}var tG={kernelName:is,backendName:"wasm",setupFunc:Cit,kernelFunc:Iit};var Sit=!1,eG=ue(Na,Sit,"bool");var vit=!1,rG=ue(Ta,vit,"bool");var nG=se(as);var Nit=!1,oG=ue(Ea,Nit,"bool");var sG=se(_a);var Tit=!1,iG=ue(Aa,Tit,"bool");var kit=!1,aG=ue(m1,kit,"bool");var lG;function Eit(r){lG=r.wasm.cwrap(ls,null,["number","number","number","number"])}function _it(r){let{backend:t,inputs:e,attrs:n}=r,{reductionIndices:o,keepDims:s}=n,{x:i}=e,u=t.dataIdMap.get(i.dataId).id,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;l=c,u=w}let d=l.shape.length;v.assertAxesAreInnerMostDims("max",p,d);let[h,g]=v.computeOutAndReduceShapes(l.shape,p),x=y.sizeFromShape(g),b=t.makeOutput(h,i.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;lG(u,qt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=v.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var uG={kernelName:ls,backendName:"wasm",setupFunc:Eit,kernelFunc:_it};var Ait=!1,cG=ue(us,Ait);var pG;function $it(r){pG=r.wasm.cwrap(cs,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Dit(r){let{inputs:t,attrs:e,backend:n}=r,o=t.x,s=n.dataIdMap.get(o.dataId).id;y.assert(o.dtype==="float32",()=>`Error in MaxPool: only float32 input is supported. Got ${o.dtype}.`);let{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=e,c=v.computePool2DInfo(o.shape,i,a,1,u,l),p=c.filterHeight,m=c.filterWidth,f=c.padInfo.top,d=c.padInfo.right,h=c.padInfo.bottom,g=c.padInfo.left,x=c.dilationHeight,b=c.dilationWidth,w=c.strideHeight,C=c.strideWidth,N=c.inChannels,_=c.outChannels;if(c.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${c.dataFormat}'. Please use 'channelsLast'.`);let A=n.makeOutput(c.outShape,"float32"),$=n.dataIdMap.get(A.dataId).id;return pG(s,o.shape[0],o.shape[1],o.shape[2],p,m,f,d,h,g,x,b,w,C,N,_,$),A}var mG={kernelName:cs,backendName:"wasm",setupFunc:$it,kernelFunc:Dit};var fG;function Rit(r){fG=r.wasm.cwrap(ps,null,["number, number, number"])}function Fit(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t),d=p;if(f){let C=t.dataIdMap.get(c.dataId).id;C!==a&&(l=c,u=C,d=v.getInnerMostAxes(d.length,l.shape.length))}v.assertAxesAreInnerMostDims("mean",d,l.shape.length);let[h,g]=v.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=l;l.dtype!=="float32"&&(b=ni({backend:t,inputs:{x:l},attrs:{dtype:"float32"}}),u=t.dataIdMap.get(b.dataId).id);let w=t.makeOutput(h,"float32");if(y.sizeFromShape(l.shape)!==0){let C=t.dataIdMap.get(w.dataId).id;fG(u,x,C)}if(f&&t.disposeData(c.dataId),s){let C=v.expandShapeToKeepDim(w.shape,m);w.shape=C}return l.dtype!=="float32"&&t.disposeData(b.dataId),w}var dG={kernelName:ps,backendName:"wasm",setupFunc:Rit,kernelFunc:Fit};var hG;function Oit(r){hG=r.wasm.cwrap(ms,null,["number","number","number","number"])}function Pit(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w)}let d=l.shape.length;v.assertAxesAreInnerMostDims("min",p,d);let[h,g]=v.computeOutAndReduceShapes(l.shape,p),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;hG(u,qt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=v.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var gG={kernelName:ms,backendName:"wasm",setupFunc:Oit,kernelFunc:Pit};var Lit=!1,xG=ue(fs,Lit);var Dk;(function(r){r[r.reflect=0]="reflect",r[r.symmetric=1]="symmetric"})(Dk||(Dk={}));var yG;function Mit(r){yG=r.wasm.cwrap(ds,null,["number","array","number","number","array","array","number","number"])}function zit(r){let{inputs:{x:t},backend:e,attrs:{paddings:n,mode:o}}=r,s=n.map((d,h)=>d[0]+t.shape[h]+d[1]),i=e.dataIdMap.get(t.dataId).id,a=e.makeOutput(s,t.dtype),u=e.dataIdMap.get(a.dataId).id,l=new Uint8Array(new Int32Array(t.shape).buffer),c=n.map(d=>d[0]),p=n.map(d=>d[1]),m=new Uint8Array(new Int32Array(c).buffer),f=new Uint8Array(new Int32Array(p).buffer);return yG(i,l,t.shape.length,qt[t.dtype],m,f,Dk[o],u),a}var bG={kernelName:ds,backendName:"wasm",kernelFunc:zit,setupFunc:Mit};var Bit=!0,wG=ue(hs,Bit);var CG=se(pi);function Dd(r,t){let e=new Int32Array(r.wasm.HEAPU8.buffer,t,4),n=e[0],o=e[1],s=e[2],i=e[3];return r.wasm._free(t),{pSelectedIndices:n,selectedSize:o,pSelectedScores:s,pValidOutputs:i}}var IG;function Vit(r){IG=r.wasm.cwrap(Ra,"number",["number","number","number","number","number"])}function Git(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i}=n,{boxes:a,scores:u}=e,l=t.dataIdMap.get(a.dataId).id,c=t.dataIdMap.get(u.dataId).id,p=IG(l,c,s,o,i),{pSelectedIndices:m,selectedSize:f,pSelectedScores:d,pValidOutputs:h}=Dd(t,p);return t.wasm._free(d),t.wasm._free(h),t.makeOutput([f],"int32",m)}var SG={kernelName:Ra,backendName:"wasm",setupFunc:Vit,kernelFunc:Git};var vG;function Wit(r){vG=r.wasm.cwrap(Fa,"number",["number","number","number","number","number","bool"])}function Uit(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:a}=n,{boxes:u,scores:l}=e,c=t.dataIdMap.get(u.dataId).id,p=t.dataIdMap.get(l.dataId).id,m=vG(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Dd(t,m);t.wasm._free(h);let x=t.makeOutput([d],"int32",f),b=t.makeOutput([],"int32",g);return[x,b]}var NG={kernelName:Fa,backendName:"wasm",setupFunc:Wit,kernelFunc:Uit};var TG;function Hit(r){TG=r.wasm.cwrap(Oa,"number",["number","number","number","number","number","number"])}function qit(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i,softNmsSigma:a}=n,{boxes:u,scores:l}=e,c=t.dataIdMap.get(u.dataId).id,p=t.dataIdMap.get(l.dataId).id,m=TG(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Dd(t,m);t.wasm._free(g);let x=t.makeOutput([d],"int32",f),b=t.makeOutput([d],"float32",h);return[x,b]}var kG={kernelName:Oa,backendName:"wasm",setupFunc:Hit,kernelFunc:qit};var Kit=!1,EG=ue(Da,Kit,"bool");var _G;function jit(r){_G=r.wasm.cwrap(gs,null,["number","number","number","number","number"])}function Xit(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o}=t,{dtype:s,depth:i,onValue:a,offValue:u}=n,l=e.makeOutput([...o.shape,i],s),c=e.dataIdMap.get(l.dataId).id,m=e.dataIdMap.get(o.dataId).id;return _G(m,i,a,u,c),l}var AG={kernelName:gs,backendName:"wasm",setupFunc:jit,kernelFunc:Xit};function Yit(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(1),n}var $G={kernelName:mi,backendName:"wasm",kernelFunc:Yit};function Zit(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return uI({inputs:{input:t[0]},backend:e,attrs:{dim:o}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{y.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),y.assert(i===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let a=[],u=t.map(c=>{let p=uI({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=_k({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeData(c.dataId)),l}var DG={kernelName:fi,backendName:"wasm",kernelFunc:Zit};var RG;function Jit(r){RG=r.wasm.cwrap(xs,null,["number","array","number","number","array","array","number","number"])}function Qit(r){let{inputs:{x:t},backend:e,attrs:{paddings:n,constantValue:o}}=r,s=n.map((h,g)=>h[0]+t.shape[g]+h[1]);if(y.sizeFromShape(t.shape)===0)return $k({backend:e,attrs:{shape:s,value:o,dtype:t.dtype}});let i=e.dataIdMap.get(t.dataId).id,a=e.makeOutput(s,t.dtype),l=e.dataIdMap.get(a.dataId).id,c=new Uint8Array(new Int32Array(t.shape).buffer),p=n.map(h=>h[0]),m=n.map(h=>h[1]),f=new Uint8Array(new Int32Array(p).buffer),d=new Uint8Array(new Int32Array(m).buffer);return RG(i,c,t.shape.length,qt[t.dtype],f,d,o,l),a}var cI={kernelName:xs,backendName:"wasm",kernelFunc:Qit,setupFunc:Jit};var tat=!1,FG=ue(ys,tat);var OG;function eat(r){OG=r.wasm.cwrap(bs,null,["number","number","number"])}function rat(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=e.dataIdMap.get(n.dataId).id,i=e.dataIdMap.get(o.dataId).id,a=s,u=n,l=u;u.dtype!=="float32"&&(l=ni({backend:e,inputs:{x:n},attrs:{dtype:"float32"}}),a=e.dataIdMap.get(l.dataId).id);let c=e.makeOutput(n.shape,"float32"),p=e.dataIdMap.get(c.dataId).id;return OG(a,i,p),u.dtype!=="float32"&&e.disposeData(l.dataId),c}var PG={kernelName:bs,backendName:"wasm",setupFunc:eat,kernelFunc:rat};var LG;function nat(r){LG=r.wasm.cwrap(ws,null,["number","number","number","number"])}function oat(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=v.getInnerMostAxes(d.length,l.shape.length))}v.assertAxesAreInnerMostDims("prod",d,l.shape.length);let[h,g]=v.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;LG(u,x,qt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=v.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var MG={kernelName:ws,backendName:"wasm",setupFunc:nat,kernelFunc:oat};var sat=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=Ac(n,o,s,i),u=t.makeOutput([a.length],i);return t.typedArrayFromHeap(u).set(a),u},zG={kernelName:Ol,backendName:"wasm",kernelFunc:sat};var iat=!0,BG=ue(Qo,iat);var VG=se(Cs);var GG=se(vs);var WG;function aat(r){WG=r.wasm.cwrap(Ss,null,["number","number","number","number","number","number","number","number","number","number"])}function lat(r){let{backend:t,inputs:e,attrs:n}=r,{images:o}=e,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,[c,p,m,f]=o.shape,d=[c,u,l,f],h=t.dataIdMap.get(o.dataId),g;h.dtype!=="float32"&&(g=ni({backend:t,inputs:{x:o},attrs:{dtype:"float32"}}),h=t.dataIdMap.get(g.dataId));let x=h.id,b=t.makeOutput(d,"float32");if(y.sizeFromShape(o.shape)===0)return b;let w=t.dataIdMap.get(b.dataId).id;return WG(x,c,p,m,f,u,l,s?1:0,i?1:0,w),g!=null&&t.disposeData(g.dataId),b}var UG={kernelName:Ss,backendName:"wasm",setupFunc:aat,kernelFunc:lat};var HG;function uat(r){HG=r.wasm.cwrap(Is,null,["number","number","number","number","number","number","number","number","number","number"])}function cat(r){let{backend:t,inputs:e,attrs:n}=r,{images:o}=e,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,[c,p,m,f]=o.shape,d=[c,u,l,f],h=t.makeOutput(d,"float32");if(y.sizeFromShape(o.shape)===0)return h;let g=t.dataIdMap.get(o.dataId),x;g.dtype!=="float32"&&(x=ni({backend:t,inputs:{x:o},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(x.dataId));let b=g.id,w=t.dataIdMap.get(h.dataId).id;return HG(b,c,p,m,f,u,l,s?1:0,i?1:0,w),x!=null&&t.disposeData(x.dataId),h}var qG={kernelName:Is,backendName:"wasm",setupFunc:uat,kernelFunc:cat};var KG;function pat(r){KG=r.wasm.cwrap(Ns,null,["number","array","number","array","number","number"])}function mat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n,i=y.parseAxisParam(s,o.shape);if(o.shape.length===0)return jc({inputs:{x:o},backend:e});let a=e.makeOutput(o.shape,o.dtype),u=e.dataIdMap.get(o.dataId).id,l=e.dataIdMap.get(a.dataId).id,c=new Uint8Array(new Int32Array(i).buffer),p=new Uint8Array(new Int32Array(o.shape).buffer);KG(u,c,i.length,p,o.shape.length,l);let m=ar({inputs:{x:a},attrs:{shape:o.shape},backend:e});return e.disposeData(a.dataId),m}var jG={kernelName:Ns,backendName:"wasm",kernelFunc:mat,setupFunc:pat};var XG;function fat(r){XG=r.wasm.cwrap(qa,null,["number","number","number","number","number","number","number","number","array","number","number"])}function dat(r){let{inputs:t,backend:e,attrs:n}=r,{image:o}=t,{radians:s,fillValue:i,center:a}=n,u=e.makeOutput(o.shape,o.dtype),l=e.dataIdMap.get(o.dataId).id,c=e.dataIdMap.get(u.dataId).id,[p,m,f,d]=o.shape,[h,g]=v.getImageCenter(a,m,f),x=i===0,b=255,w=typeof i=="number"?[i,i,i,x?0:b]:[...i,b],C=new Uint8Array(new Int32Array(w).buffer);return XG(l,p,m,f,d,s,h,g,C,w.length,c),u}var YG={kernelName:qa,backendName:"wasm",kernelFunc:dat,setupFunc:fat};var ZG=se(Ts);var JG=se(ks);var QG;function hat(r){QG=r.wasm.cwrap(La,null,["number","number","number","number","number","number","array","number","number"])}function gat(r){let{backend:t,inputs:e,attrs:n}=r,{indices:o,updates:s}=e,{shape:i}=n,a=t.makeOutput(i,s.dtype);if(y.sizeFromShape(i)===0)return a;let{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=lh.calculateShapes(s,o,i),d=t.dataIdMap.get(o.dataId).id,g=t.dataIdMap.get(s.dataId).id,x=new Uint8Array(new Int32Array(p).buffer),b=t.dataIdMap.get(a.dataId).id;return QG(d,g,qt[s.dtype],u,l,c,x,m,b),a}var tW={kernelName:La,backendName:"wasm",setupFunc:hat,kernelFunc:gat};var eW;function xat(r){eW=r.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function yat(r){let{inputs:t,backend:e}=r,{condition:n,t:o,e:s}=t,i=e.dataIdMap.get(n.dataId).id,a=e.dataIdMap.get(o.dataId).id,u=e.dataIdMap.get(s.dataId).id,l=e.makeOutput(o.shape,o.dtype),c=e.dataIdMap.get(l.dataId).id,p=n.shape.length,m=o.shape.length,f=p===0||p>1||m===1?1:y.sizeFromShape(o.shape.slice(1));return eW(i,a,u,f,c),l}var rW={kernelName:hi,backendName:"wasm",kernelFunc:yat,setupFunc:xat};var nW;function bat(r){nW=r.wasm.cwrap(_s,null,["number","number"])}function wat(r){let{backend:t,inputs:{x:e}}=r,n=t.dataIdMap.get(e.dataId).id,o=t.makeOutput(e.shape,e.dtype),s=t.dataIdMap.get(o.dataId).id;return y.sizeFromShape(o.shape)===0||nW(n,s),o}var oW={kernelName:"Sigmoid",backendName:"wasm",setupFunc:bat,kernelFunc:wat};var sW=se(Es);var iW;function Cat(r){iW=r.wasm.cwrap(Ds,null,["number","number","number","number"])}function Iat(r){let{backend:t,inputs:{logits:e},attrs:{dim:n}}=r,o=t.dataIdMap.get(e.dataId).id,s=t.makeOutput(e.shape,e.dtype),i=t.dataIdMap.get(s.dataId).id,a=e.shape[n],u=y.sizeFromShape(e.shape)/a;return y.sizeFromShape(s.shape)===0||iW(o,i,a,u),s}var aW={kernelName:Ds,backendName:"wasm",setupFunc:Cat,kernelFunc:Iat};function Sat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,paddings:i}=n,a=y.sizeFromShape(s),u=[[0,0]];u.push(...i);for(let _=1+s.length;_{let F=C.shape[0],P=C.shape[1],V=v.segment_util.segOpComputeOptimalWindowSize(P,$),G={windowSize:V,inSize:P,batchSize:F,numSegments:$},W=new lI(G,N),q=e.compileAndRun(W,[C,_],A);if(u.push(q),q.shape[1]===$)return q;let H=kk({backend:e,attrs:{start:0,stop:$,step:1,dtype:"float32"}}),j=Ek({inputs:{x:H},backend:e,attrs:{reps:[P/V]}});return u.push(H),u.push(j),g(q,N,j,A,$)},x=g(d,"unsortedSegmentSum",s,h,i),b=it({inputs:{x},backend:e,attrs:{shape:m}}),w=b;if(c!=null){u.push(b);let C=v.getUndoAxesPermutation(c);w=Oe({inputs:{x:w},backend:e,attrs:{perm:C}})}return u.forEach(C=>e.disposeIntermediateTensorInfo(C)),w}var GB={kernelName:Wl,backendName:"webgl",kernelFunc:bst};var wst=[kM,_M,AM,$M,RM,FM,OM,PM,zM,BM,VM,GM,WM,UM,HM,qM,KM,jM,XM,YM,ZM,QM,tz,ez,sz,az,lz,xM,cz,mz,fz,dz,hz,gz,xz,yz,bz,wz,Cz,vz,Nz,Tz,kz,Ez,_z,Az,$z,Dz,Rz,Fz,Oz,Pz,Lz,Mz,zz,Vz,Gz,Wz,Uz,qz,Kz,jz,Xz,Yz,Zz,Jz,Qz,t3,gM,e3,pz,r3,n3,o3,yM,s3,i3,a3,l3,u3,c3,p3,m3,f3,d3,g3,x3,y3,b3,w3,C3,S3,N3,T3,k3,E3,_3,F3,CM,O3,P3,L3,M3,rz,z3,G3,W3,U3,H3,bM,q3,K3,j3,X3,Y3,nz,A3,Z3,J3,Q3,SM,tB,eB,rB,nB,oB,sB,iB,aB,lB,uB,cB,pB,mB,fB,dB,hB,JM,R3,gB,xB,yB,bB,wB,CB,IB,SB,NB,TB,EB,_B,AB,$B,DB,RB,D3,NM,FB,OB,PB,MB,zB,TM,BB,VB,GB,B3];for(let r of wst)Lu(r);var qt;(function(r){r[r.float32=0]="float32",r[r.int32=1]="int32",r[r.bool=2]="bool",r[r.string=3]="string",r[r.complex64=4]="complex64"})(qt||(qt={}));var Du;(function(r){r[r.linear=0]="linear",r[r.relu=1]="relu",r[r.relu6=2]="relu6",r[r.prelu=3]="prelu",r[r.leakyrelu=4]="leakyrelu",r[r.sigmoid=5]="sigmoid",r[r.elu=6]="elu"})(Du||(Du={}));var WB;function Cst(r){WB=r.wasm.cwrap(Ci,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function Ist(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s,bias:i,preluActivationWeights:a}=t;if(o.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:u,transposeB:l,activation:c,leakyreluAlpha:p}=n,m=e.dataIdMap.get(o.dataId).id,f=e.dataIdMap.get(s.dataId).id,d=0;if(i!=null){let $=e.dataIdMap.get(i.dataId);if($.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${$.shape.length}.`);d=$.id}let h=a==null?0:e.dataIdMap.get(a.dataId).id,g=Du[c];if(g==null)throw new Error(`${c} activation not yet supported for FusedConv2D in the wasm backend.`);let x=u?o.shape[2]:o.shape[1],b=l?s.shape[1]:s.shape[2],w=Vr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)),C=e.makeOutput([...w,x,b],o.dtype),N=e.dataIdMap.get(C.dataId).id,_=new Uint8Array(new Int32Array(o.shape).buffer),A=new Uint8Array(new Int32Array(s.shape).buffer);return WB(m,_,o.shape.length,f,A,s.shape.length,u,l,g,d,h,p||0,N),C}var UB={kernelName:Ci,backendName:"wasm",setupFunc:Cst,kernelFunc:Ist};function se(r,t){let e;function n(s){e=s.wasm.cwrap(r,null,["number","number","number"])}function o(s){let{backend:i,inputs:{x:a}}=s,u=i.dataIdMap.get(a.dataId).id,l=i.makeOutput(a.shape,t||a.dtype),c=i.dataIdMap.get(l.dataId).id;return y.sizeFromShape(l.shape)===0||e(u,qt[a.dtype],c),l}return{kernelName:r,backendName:"wasm",setupFunc:n,kernelFunc:o}}var HB=se(ii);function ue(r,t,e){let n;function o(i){n=i.wasm.cwrap(r,null,["number","array","number","number","array","number","number","number"])}function s(i){let{backend:a,inputs:u}=i,{a:l,b:c}=u,p=a.dataIdMap.get(l.dataId).id,m=a.dataIdMap.get(c.dataId).id,f=e!=null?e:l.dtype,d=v.assertAndGetBroadcastShape(l.shape,c.shape),h=a.makeOutput(d,f);if(y.sizeFromShape(d)===0)return h;let g=new Uint8Array(new Int32Array(l.shape).buffer),x=new Uint8Array(new Int32Array(c.shape).buffer),b=a.dataIdMap.get(h.dataId).id;return(()=>n(p,g,l.shape.length,m,x,c.shape.length,qt[l.dtype],b))(),h}return{kernelName:r,backendName:"wasm",setupFunc:o,kernelFunc:s}}var Sst=!0,qB=ue(Zn,Sst);var KB;function vst(r){KB=r.wasm.cwrap(Go,null,["array","number","number","number"])}function Nst(r){let{inputs:t,backend:e}=r,n=e.makeOutput(t[0].shape,t[0].dtype);if(y.sizeFromShape(n.shape)===0)return n;let o=t.map(a=>e.dataIdMap.get(a.dataId).id),s=new Uint8Array(new Int32Array(o).buffer),i=e.dataIdMap.get(n.dataId).id;return KB(s,o.length,qt[n.dtype],i),n}var jB={kernelName:Go,backendName:"wasm",setupFunc:vst,kernelFunc:Nst};function jc(r){let{inputs:{x:t},backend:e}=r;if(t.dtype==="string")return ur(e.readSync(t.dataId),t.shape,t.dtype);let n=e.makeOutput(t.shape,t.dtype),o=e.typedArrayFromHeap(t);return e.typedArrayFromHeap(n).set(o),n}var XB={kernelName:co,backendName:"wasm",kernelFunc:jc};var YB;function Tst(r){YB=r.wasm.cwrap(Qn,null,["number","array","number","number","number","array","number"])}function ao(r){let{inputs:t,backend:e,attrs:n}=r,[o,s]=Est(t.x.shape,n.perm),i=!0;for(let d=0;d=o&&(s===-1||n[s]>n[i])&&(s=i);n[s]=o}return[e,n]}var ZB={kernelName:Qn,backendName:"wasm",kernelFunc:ao,setupFunc:Tst};function bn(r,t,e){let n=r.shape,o=r.shape.length,s=y.parseAxisParam(t,n),i=s,a=v.getAxesPermutation(i,o),u=null,l=!1;if(a!=null){let c=new Array(o);for(let f=0;f`new shape: ${i}, old shape: ${n.shape}. New shape and old shape must have the same number of elements.`),r.backend.incRef(n.dataId),{dataId:n.dataId,shape:i,dtype:n.dtype}}var iV={kernelName:di,backendName:"wasm",kernelFunc:ar};var aV;function Lst(r){aV=r.wasm.cwrap(Ho,null,["number","array","number","number","array","number","number","number","number"])}function Mst(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;if(o.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let u=o.shape.length,l=s.shape.length,c=i?o.shape[u-2]:o.shape[u-1],p=a?s.shape[l-1]:s.shape[l-2],m=i?o.shape[u-1]:o.shape[u-2],f=a?s.shape[l-2]:s.shape[l-1],d=o.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=Vr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)).concat([m,f]);y.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${o.shape} and ${s.shape} and transposeA=${i} and transposeB=${a} must match.`);let C=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],_=ar({inputs:{x:o},backend:e,attrs:{shape:C}}),A=ar({inputs:{x:s},backend:e,attrs:{shape:N}}),$=e.dataIdMap.get(_.dataId).id,F=e.dataIdMap.get(A.dataId).id,P=i?_.shape[2]:_.shape[1],V=a?A.shape[1]:A.shape[2],G=Math.max(g,x),W=e.makeOutput([G,P,V],_.dtype),q=e.dataIdMap.get(W.dataId).id,H=new Uint8Array(new Int32Array(_.shape).buffer),j=new Uint8Array(new Int32Array(A.shape).buffer);return aV($,H,_.shape.length,F,j,A.shape.length,i,a,q),e.disposeData(_.dataId),e.disposeData(A.dataId),W.shape=w,W}var lV={kernelName:Ho,backendName:"wasm",setupFunc:Lst,kernelFunc:Mst};function Lo(r){let{inputs:{x:t},attrs:{begin:e,size:n},backend:o}=r,[s,i]=Le.parseSliceParams(t,e,n),a=Le.isSliceContinous(t.shape,s,i),u=o.readSync(t.dataId),l=o.makeOutput(i,t.dtype),c=y.computeStrides(t.shape),p=o.dataIdMap.get(l.dataId);if(a){let d=Le.computeFlatOffset(s,c);return t.dtype==="string"?p.stringBytes=u.slice(d,d+y.sizeFromShape(i)):o.typedArrayFromHeap(l).set(u.subarray(d,d+y.sizeFromShape(i))),l}if(t.dtype==="string"){let d=$c(u,s,i,t.shape,t.dtype);return p.stringBytes=d,l}let m=o.typedArrayFromHeap(l),f=t.shape.length;if(f===2)zst(u,c[0],m,s,i);else if(f===3)Bst(u,c[0],c[1],m,s,i);else if(f===4)Vst(u,c[0],c[1],c[2],m,s,i);else{let d=$c(u,s,i,t.shape,t.dtype);m.set(d)}return l}function zst(r,t,e,n,o){let s=0,i=n[0],a=n[1],u=i+o[0];for(let l=i;lx*b),u=v.getReshaped(o.shape,s,a),l=v.getPermuted(u.length,s.length),c=v.getReshapedPermuted(o.shape,s,a),p=v.getSliceBeginCoords(i,s.length),m=v.getSliceSize(c,i,s.length),f=ar({inputs:{x:o},backend:e,attrs:{shape:u}}),d=ao({inputs:{x:f},backend:e,attrs:{perm:l}}),h=ar({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Lo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeData(f.dataId),e.disposeData(d.dataId),e.disposeData(f.dataId),g}var cV={kernelName:ai,backendName:"wasm",kernelFunc:Gst};function ni(r){let{inputs:{x:t},attrs:{dtype:e},backend:n}=r,o=n.makeOutput(t.shape,e),s=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(o).set(s),o}var pV={kernelName:lo,backendName:"wasm",kernelFunc:ni};var mV=se(qo);var fV;function Wst(r){fV=r.wasm.cwrap(uo,null,["number","number","number","number"])}function Ust(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a=e.dataIdMap.get(o.dataId).id,u=e.makeOutput(o.shape,o.dtype),l=e.dataIdMap.get(u.dataId).id;return fV(a,s,i,l),u}var dV={kernelName:uo,backendName:"wasm",setupFunc:Wst,kernelFunc:Ust};function _k(r){let{inputs:t,backend:e}=r,n=y.parseAxisParam(r.attrs.axis,t[0].shape)[0],o=t.map(f=>f.shape);v.assertParamsConsistent(o,n);let s=v.computeOutShape(t.map(f=>f.shape),n),i=t.filter(f=>y.sizeFromShape(f.shape)>0);if(i.length===1)return jc({inputs:{x:i[0]},backend:e});let a=e.makeOutput(s,t[0].dtype);if(y.sizeFromShape(s)===0)return a;if(i[0].dtype==="string"){let f=i.map(w=>{let N=[-1,y.sizeFromShape(w.shape.slice(n))];return ar({inputs:{x:w},backend:e,attrs:{shape:N}})}),d=f.map(w=>({vals:e.readSync(w.dataId),shape:w.shape}));s=v.computeOutShape(f.map(w=>w.shape),1);let h=f[0].shape[0]===1,g=Ec(d,s,t[0].dtype,h),x=v.computeOutShape(i.map(w=>w.shape),n);a.shape=x;let b=e.dataIdMap.get(a.dataId);return b.stringBytes=v.fromStringArrayToUint8(g),f.forEach(w=>e.disposeData(w.dataId)),a}let u=y.sizeFromShape(i[0].shape.slice(0,n)),l=0,c=i.map(f=>{let d=y.sizeFromShape(f.shape.slice(n));return l+=d,d}),p=i.map(f=>e.typedArrayFromHeap(f)),m=e.typedArrayFromHeap(a);for(let f=0;f`cumprod does not support ${o.dtype} tensors in the WASM backend`);let l=v.getAxesPermutation([s],u),c=o;l!==null&&(c=ao({inputs:{x:o},attrs:{perm:l},backend:e}));let p=v.getInnerMostAxes(1,u)[0];v.assertAxesAreInnerMostDims("cumprod",[p],u);let m=e.makeOutput(c.shape,c.dtype),f=c.shape[p],d=e.dataIdMap.get(c.dataId).id,h=e.dataIdMap.get(m.dataId).id;vV(d,i?1:0,a?1:0,f,h,qt[o.dtype]);let g=m;if(l!==null){let x=v.getUndoAxesPermutation(l);g=ao({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var NV={kernelName:fa,backendName:"wasm",setupFunc:Zst,kernelFunc:Jst};var TV;function Qst(r){TV=r.wasm.cwrap(Zo,null,["number","number","number","number","number","number"])}function tit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n,u=o.shape.length;y.assert(o.dtype==="float32"||o.dtype==="int32",()=>`cumsum does not support ${o.dtype} tensors in the WASM backend`);let l=v.getAxesPermutation([s],u),c=o;l!==null&&(c=ao({inputs:{x:o},attrs:{perm:l},backend:e}));let p=v.getInnerMostAxes(1,u)[0];v.assertAxesAreInnerMostDims("cumsum",[p],u);let m=e.makeOutput(c.shape,c.dtype),f=c.shape[p],d=e.dataIdMap.get(c.dataId).id,h=e.dataIdMap.get(m.dataId).id;TV(d,i?1:0,a?1:0,f,h,qt[o.dtype]);let g=m;if(l!==null){let x=v.getUndoAxesPermutation(l);g=ao({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var kV={kernelName:Zo,backendName:"wasm",setupFunc:Qst,kernelFunc:tit};var EV;function eit(r){EV=r.wasm.cwrap(ha,null,["number","number","number","array","number","array","array","number","number"])}function rit(r){let{backend:t,inputs:e,attrs:n}=r,{x:o}=e,{blockSize:s,dataFormat:i}=n,a=o.shape[0],u=i==="NHWC"?o.shape[1]:o.shape[2],l=i==="NHWC"?o.shape[2]:o.shape[3],c=i==="NHWC"?o.shape[3]:o.shape[1],p=u*s,m=l*s,f=c/(s*s),d=i==="NHWC"?[a,p,m,f]:[a,f,p,m],h=t.makeOutput(d,"float32"),x=t.dataIdMap.get(o.dataId).id,b=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),w=new Uint8Array(new Int32Array(d).buffer),C=new Uint8Array(new Int32Array(y.computeStrides(d)).buffer),N=t.dataIdMap.get(h.dataId).id;return EV(x,s,i==="NHWC"?1:0,b,o.shape.length-1,w,C,d.length,N),h}var _V={kernelName:ha,backendName:"wasm",setupFunc:eit,kernelFunc:rit};var AV;function nit(r){AV=r.wasm.cwrap(Jo,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function oit(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s}=t,i=n.dataIdMap.get(o.dataId).id,a=n.dataIdMap.get(s.dataId).id,{strides:u,dilations:l,pad:c,dimRoundingMode:p}=e,m=l==null?[1,1]:l,f=v.computeConv2DInfo(o.shape,s.shape,u,m,c,p,!0),d=f.filterHeight,h=f.filterWidth,g=f.padInfo.top,x=f.padInfo.right,b=f.padInfo.bottom,w=f.padInfo.left,C=f.dilationHeight,N=f.dilationWidth,_=f.strideHeight,A=f.strideWidth,$=f.inChannels,F=f.outChannels,P=f.padInfo.type==="SAME"?1:0;if(f.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${f.dataFormat}'. Please use 'channelsLast'.`);let V=n.makeOutput(f.outShape,"float32"),G=n.dataIdMap.get(V.dataId).id;return AV(i,o.shape[0],o.shape[1],o.shape[2],a,d,h,g,x,b,w,P,C,N,_,A,$,F,G),V}var $V={kernelName:Jo,backendName:"wasm",setupFunc:nit,kernelFunc:oit};var DV=se(ts);var sit=!1,RV=ue(xa,sit,"bool");var FV=se(es,"float32");function uI(r){let{inputs:t,attrs:e,backend:n}=r,{input:o}=t,{dim:s}=e,i=o.shape.length,a=o.shape.slice(),u=s;return s<0&&(y.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+s+1),a.splice(u,0,1),ar({inputs:{x:o},backend:n,attrs:{shape:a}})}var OV={kernelName:ui,backendName:"wasm",kernelFunc:uI};function $k(r){let{attrs:{shape:t,value:e,dtype:n},backend:o}=r,s=o.makeOutput(t,n);return o.typedArrayFromHeap(s).fill(e),s}var PV={kernelName:Dl,backendName:"wasm",kernelFunc:$k};var LV;function iit(r){LV=r.wasm.cwrap(ba,null,["number","number","number","number","number","number"])}function ait(r){let{inputs:t,backend:e}=r,{image:n}=t,o=e.makeOutput(n.shape,n.dtype),s=e.dataIdMap.get(n.dataId).id,i=e.dataIdMap.get(o.dataId).id,[a,u,l,c]=n.shape;return LV(s,a,u,l,c,i),o}var MV={kernelName:ba,backendName:"wasm",kernelFunc:ait,setupFunc:iit};var zV=se(rs);var lit=!1,BV=ue(ns,lit);var VV;function uit(r){VV=r.wasm.cwrap(os,null,["number","number","number","number","number","number","number"])}function cit(r){let{backend:t,inputs:e,attrs:n}=r,{varianceEpsilon:o}=n,{x:s,mean:i,variance:a,offset:u,scale:l}=e,c=t.dataIdMap.get(s.dataId).id,p=t.dataIdMap.get(i.dataId).id,m=t.dataIdMap.get(a.dataId).id,f=u!=null?t.dataIdMap.get(u.dataId).id:0,d=l!=null?t.dataIdMap.get(l.dataId).id:0,h=t.makeOutput(s.shape,s.dtype);if(y.sizeFromShape(s.shape)===0)return h;let g=t.dataIdMap.get(h.dataId).id;return VV(c,p,m,f,d,o,g),h}var GV={kernelName:os,backendName:"wasm",setupFunc:uit,kernelFunc:cit};var WV;function pit(r){WV=r.wasm.cwrap(Ii,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function mit(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=e,h=v.computeConv2DInfo(o.shape,s.shape,u,c,l,m),g=Du[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedConv2D in the wasm backend.`);let x=n.dataIdMap.get(o.dataId).id,b=n.dataIdMap.get(s.dataId).id,w=h.outChannels,C=0;if(i!=null){let nt=n.dataIdMap.get(i.dataId);if(nt.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${nt.shape.length}.`);if(nt.shape[0]!==w)throw new Error(`FusedConv2D bias shape (${nt.shape}) does not match the number of output channels (${w})`);C=nt.id}let N=h.filterHeight,_=h.filterWidth,A=h.padInfo.top,$=h.padInfo.right,F=h.padInfo.bottom,P=h.padInfo.left,V=h.dilationHeight,G=h.dilationWidth,W=h.strideHeight,q=h.strideWidth,H=h.inChannels,j=h.padInfo.type==="SAME"?1:0,Y=h.batchSize,Z=h.inHeight,et=h.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let rt=n.makeOutput(h.outShape,"float32"),ot=n.dataIdMap.get(rt.dataId).id,at=a==null?0:n.dataIdMap.get(a.dataId).id;return WV(x,Y,Z,et,b,N,_,C,A,$,F,P,j,V,G,W,q,H,w,g,at,d||0,ot),rt}var UV={kernelName:Ii,backendName:"wasm",setupFunc:pit,kernelFunc:mit};var HV;function fit(r){HV=r.wasm.cwrap(Si,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function dit(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=e,h=v.computeConv2DInfo(o.shape,s.shape,u,c,l,m,!0),g=Du[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let x=n.dataIdMap.get(o.dataId).id,b=n.dataIdMap.get(s.dataId).id,w=h.outChannels,C=0;if(i!=null){let nt=n.dataIdMap.get(i.dataId);if(nt.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${nt.shape.length}.`);if(nt.shape[0]!==w)throw new Error(`FusedDepthwiseConv2D bias shape (${nt.shape}) does not match the number of output channels (${w})`);C=nt.id}let N=h.filterHeight,_=h.filterWidth,A=h.padInfo.top,$=h.padInfo.right,F=h.padInfo.bottom,P=h.padInfo.left,V=h.dilationHeight,G=h.dilationWidth,W=h.strideHeight,q=h.strideWidth,H=h.inChannels,j=h.padInfo.type==="SAME"?1:0,Y=h.batchSize,Z=h.inHeight,et=h.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let rt=n.makeOutput(h.outShape,"float32"),ot=n.dataIdMap.get(rt.dataId).id,at=a==null?0:n.dataIdMap.get(a.dataId).id;return HV(x,Y,Z,et,b,N,_,C,A,$,F,P,j,V,G,W,q,H,w,g,at,d||0,ot),rt}var qV={kernelName:Si,backendName:"wasm",setupFunc:fit,kernelFunc:dit};var KV;function hit(r){KV=r.wasm.cwrap(wa,null,["number","number","number","number","number","number","array","number"])}function git(r){let{backend:t,inputs:e}=r,{params:n,indices:o}=e,[s,i,a,u]=ox.prepareAndValidate(n,o),l=t.makeOutput(s,n.dtype);if(i===0)return l;let c=o.shape,p=c[c.length-1],f=t.dataIdMap.get(n.dataId).id,h=t.dataIdMap.get(o.dataId).id,g=new Uint8Array(new Int32Array(u).buffer),x=t.dataIdMap.get(l.dataId).id;return KV(f,qt[n.dtype],h,i,p,a,g,x),l}var jV={kernelName:wa,backendName:"wasm",setupFunc:hit,kernelFunc:git};var XV;function xit(r){XV=r.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function yit(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,indices:s}=e,{axis:i,batchDims:a}=n,u=y.parseAxisParam(i,o.shape)[0],l=t.readSync(s.dataId),c=o.shape[u];for(let F=0;F=0,()=>`GatherV2: the index value ${P} is not in [0, ${c-1}]`)}let p=v.segment_util.collectGatherOpShapeInfo(o,s,u,a),m=ar({inputs:{x:o},attrs:{shape:[p.batchSize,p.outerSize,p.dimSize,p.sliceSize]},backend:t}),f=y.sizeFromShape(s.shape),d=ar({inputs:{x:s},attrs:{shape:[p.batchSize,f/p.batchSize]},backend:t}),h=[p.batchSize,p.outerSize,f/p.batchSize,p.sliceSize],g=t.makeOutput(h,o.dtype);if(y.sizeFromShape(o.shape)===0)return g;let x=m.shape.length-1,w=t.dataIdMap.get(m.dataId).id,N=t.dataIdMap.get(d.dataId).id,_=t.dataIdMap.get(g.dataId).id,A=new Uint8Array(new Int32Array(y.computeStrides(m.shape)).buffer),$=new Uint8Array(new Int32Array(y.computeStrides(h)).buffer);return XV(w,qt[o.dtype],A,x,N,p.batchSize,$,_),t.disposeData(m.dataId),t.disposeData(d.dataId),g.shape=p.outputShape,g}var YV={kernelName:ci,backendName:"wasm",setupFunc:xit,kernelFunc:yit};var bit=!1,ZV=ue(Ca,bit,"bool");var wit=!1,JV=ue(ss,wit,"bool");var QV;function Cit(r){QV=r.wasm.cwrap(is,null,["number","number","number","number"])}function Iit(r){let{inputs:{x:t},attrs:{alpha:e},backend:n}=r,o=n.dataIdMap.get(t.dataId).id,s=n.makeOutput(t.shape,"float32");if(y.sizeFromShape(t.shape)!==0){let i=n.dataIdMap.get(s.dataId).id;QV(o,qt[t.dtype],e,i)}return s}var tG={kernelName:is,backendName:"wasm",setupFunc:Cit,kernelFunc:Iit};var Sit=!1,eG=ue(Na,Sit,"bool");var vit=!1,rG=ue(Ta,vit,"bool");var nG=se(as);var Nit=!1,oG=ue(Ea,Nit,"bool");var sG=se(_a);var Tit=!1,iG=ue(Aa,Tit,"bool");var kit=!1,aG=ue(m1,kit,"bool");var lG;function Eit(r){lG=r.wasm.cwrap(ls,null,["number","number","number","number"])}function _it(r){let{backend:t,inputs:e,attrs:n}=r,{reductionIndices:o,keepDims:s}=n,{x:i}=e,u=t.dataIdMap.get(i.dataId).id,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;l=c,u=w}let d=l.shape.length;v.assertAxesAreInnerMostDims("max",p,d);let[h,g]=v.computeOutAndReduceShapes(l.shape,p),x=y.sizeFromShape(g),b=t.makeOutput(h,i.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;lG(u,qt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=v.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var uG={kernelName:ls,backendName:"wasm",setupFunc:Eit,kernelFunc:_it};var Ait=!1,cG=ue(us,Ait);var pG;function $it(r){pG=r.wasm.cwrap(cs,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Dit(r){let{inputs:t,attrs:e,backend:n}=r,o=t.x,s=n.dataIdMap.get(o.dataId).id;y.assert(o.dtype==="float32",()=>`Error in MaxPool: only float32 input is supported. Got ${o.dtype}.`);let{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=e,c=v.computePool2DInfo(o.shape,i,a,1,u,l),p=c.filterHeight,m=c.filterWidth,f=c.padInfo.top,d=c.padInfo.right,h=c.padInfo.bottom,g=c.padInfo.left,x=c.dilationHeight,b=c.dilationWidth,w=c.strideHeight,C=c.strideWidth,N=c.inChannels,_=c.outChannels;if(c.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${c.dataFormat}'. Please use 'channelsLast'.`);let A=n.makeOutput(c.outShape,"float32"),$=n.dataIdMap.get(A.dataId).id;return pG(s,o.shape[0],o.shape[1],o.shape[2],p,m,f,d,h,g,x,b,w,C,N,_,$),A}var mG={kernelName:cs,backendName:"wasm",setupFunc:$it,kernelFunc:Dit};var fG;function Rit(r){fG=r.wasm.cwrap(ps,null,["number, number, number"])}function Fit(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t),d=p;if(f){let C=t.dataIdMap.get(c.dataId).id;C!==a&&(l=c,u=C,d=v.getInnerMostAxes(d.length,l.shape.length))}v.assertAxesAreInnerMostDims("mean",d,l.shape.length);let[h,g]=v.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=l;l.dtype!=="float32"&&(b=ni({backend:t,inputs:{x:l},attrs:{dtype:"float32"}}),u=t.dataIdMap.get(b.dataId).id);let w=t.makeOutput(h,"float32");if(y.sizeFromShape(l.shape)!==0){let C=t.dataIdMap.get(w.dataId).id;fG(u,x,C)}if(f&&t.disposeData(c.dataId),s){let C=v.expandShapeToKeepDim(w.shape,m);w.shape=C}return l.dtype!=="float32"&&t.disposeData(b.dataId),w}var dG={kernelName:ps,backendName:"wasm",setupFunc:Rit,kernelFunc:Fit};var hG;function Oit(r){hG=r.wasm.cwrap(ms,null,["number","number","number","number"])}function Pit(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w)}let d=l.shape.length;v.assertAxesAreInnerMostDims("min",p,d);let[h,g]=v.computeOutAndReduceShapes(l.shape,p),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;hG(u,qt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=v.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var gG={kernelName:ms,backendName:"wasm",setupFunc:Oit,kernelFunc:Pit};var Lit=!1,xG=ue(fs,Lit);var Dk;(function(r){r[r.reflect=0]="reflect",r[r.symmetric=1]="symmetric"})(Dk||(Dk={}));var yG;function Mit(r){yG=r.wasm.cwrap(ds,null,["number","array","number","number","array","array","number","number"])}function zit(r){let{inputs:{x:t},backend:e,attrs:{paddings:n,mode:o}}=r,s=n.map((d,h)=>d[0]+t.shape[h]+d[1]),i=e.dataIdMap.get(t.dataId).id,a=e.makeOutput(s,t.dtype),u=e.dataIdMap.get(a.dataId).id,l=new Uint8Array(new Int32Array(t.shape).buffer),c=n.map(d=>d[0]),p=n.map(d=>d[1]),m=new Uint8Array(new Int32Array(c).buffer),f=new Uint8Array(new Int32Array(p).buffer);return yG(i,l,t.shape.length,qt[t.dtype],m,f,Dk[o],u),a}var bG={kernelName:ds,backendName:"wasm",kernelFunc:zit,setupFunc:Mit};var Bit=!0,wG=ue(hs,Bit);var CG=se(pi);function Dd(r,t){let e=new Int32Array(r.wasm.HEAPU8.buffer,t,4),n=e[0],o=e[1],s=e[2],i=e[3];return r.wasm._free(t),{pSelectedIndices:n,selectedSize:o,pSelectedScores:s,pValidOutputs:i}}var IG;function Vit(r){IG=r.wasm.cwrap(Ra,"number",["number","number","number","number","number"])}function Git(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i}=n,{boxes:a,scores:u}=e,l=t.dataIdMap.get(a.dataId).id,c=t.dataIdMap.get(u.dataId).id,p=IG(l,c,s,o,i),{pSelectedIndices:m,selectedSize:f,pSelectedScores:d,pValidOutputs:h}=Dd(t,p);return t.wasm._free(d),t.wasm._free(h),t.makeOutput([f],"int32",m)}var SG={kernelName:Ra,backendName:"wasm",setupFunc:Vit,kernelFunc:Git};var vG;function Wit(r){vG=r.wasm.cwrap(Fa,"number",["number","number","number","number","number","bool"])}function Uit(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:a}=n,{boxes:u,scores:l}=e,c=t.dataIdMap.get(u.dataId).id,p=t.dataIdMap.get(l.dataId).id,m=vG(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Dd(t,m);t.wasm._free(h);let x=t.makeOutput([d],"int32",f),b=t.makeOutput([],"int32",g);return[x,b]}var NG={kernelName:Fa,backendName:"wasm",setupFunc:Wit,kernelFunc:Uit};var TG;function Hit(r){TG=r.wasm.cwrap(Oa,"number",["number","number","number","number","number","number"])}function qit(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i,softNmsSigma:a}=n,{boxes:u,scores:l}=e,c=t.dataIdMap.get(u.dataId).id,p=t.dataIdMap.get(l.dataId).id,m=TG(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Dd(t,m);t.wasm._free(g);let x=t.makeOutput([d],"int32",f),b=t.makeOutput([d],"float32",h);return[x,b]}var kG={kernelName:Oa,backendName:"wasm",setupFunc:Hit,kernelFunc:qit};var Kit=!1,EG=ue(Da,Kit,"bool");var _G;function jit(r){_G=r.wasm.cwrap(gs,null,["number","number","number","number","number"])}function Xit(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o}=t,{dtype:s,depth:i,onValue:a,offValue:u}=n,l=e.makeOutput([...o.shape,i],s),c=e.dataIdMap.get(l.dataId).id,m=e.dataIdMap.get(o.dataId).id;return _G(m,i,a,u,c),l}var AG={kernelName:gs,backendName:"wasm",setupFunc:jit,kernelFunc:Xit};function Yit(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(1),n}var $G={kernelName:mi,backendName:"wasm",kernelFunc:Yit};function Zit(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return uI({inputs:{input:t[0]},backend:e,attrs:{dim:o}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{y.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),y.assert(i===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let a=[],u=t.map(c=>{let p=uI({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=_k({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeData(c.dataId)),l}var DG={kernelName:fi,backendName:"wasm",kernelFunc:Zit};var RG;function Jit(r){RG=r.wasm.cwrap(xs,null,["number","array","number","number","array","array","number","number"])}function Qit(r){let{inputs:{x:t},backend:e,attrs:{paddings:n,constantValue:o}}=r,s=n.map((h,g)=>h[0]+t.shape[g]+h[1]);if(y.sizeFromShape(t.shape)===0)return $k({backend:e,attrs:{shape:s,value:o,dtype:t.dtype}});let i=e.dataIdMap.get(t.dataId).id,a=e.makeOutput(s,t.dtype),l=e.dataIdMap.get(a.dataId).id,c=new Uint8Array(new Int32Array(t.shape).buffer),p=n.map(h=>h[0]),m=n.map(h=>h[1]),f=new Uint8Array(new Int32Array(p).buffer),d=new Uint8Array(new Int32Array(m).buffer);return RG(i,c,t.shape.length,qt[t.dtype],f,d,o,l),a}var cI={kernelName:xs,backendName:"wasm",kernelFunc:Qit,setupFunc:Jit};var tat=!1,FG=ue(ys,tat);var OG;function eat(r){OG=r.wasm.cwrap(bs,null,["number","number","number"])}function rat(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=e.dataIdMap.get(n.dataId).id,i=e.dataIdMap.get(o.dataId).id,a=s,u=n,l=u;u.dtype!=="float32"&&(l=ni({backend:e,inputs:{x:n},attrs:{dtype:"float32"}}),a=e.dataIdMap.get(l.dataId).id);let c=e.makeOutput(n.shape,"float32"),p=e.dataIdMap.get(c.dataId).id;return OG(a,i,p),u.dtype!=="float32"&&e.disposeData(l.dataId),c}var PG={kernelName:bs,backendName:"wasm",setupFunc:eat,kernelFunc:rat};var LG;function nat(r){LG=r.wasm.cwrap(ws,null,["number","number","number","number"])}function oat(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=v.getInnerMostAxes(d.length,l.shape.length))}v.assertAxesAreInnerMostDims("prod",d,l.shape.length);let[h,g]=v.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;LG(u,x,qt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=v.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var MG={kernelName:ws,backendName:"wasm",setupFunc:nat,kernelFunc:oat};var sat=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=Ac(n,o,s,i),u=t.makeOutput([a.length],i);return t.typedArrayFromHeap(u).set(a),u},zG={kernelName:Ol,backendName:"wasm",kernelFunc:sat};var iat=!0,BG=ue(Qo,iat);var VG=se(Cs);var GG=se(vs);var WG;function aat(r){WG=r.wasm.cwrap(Ss,null,["number","number","number","number","number","number","number","number","number","number"])}function lat(r){let{backend:t,inputs:e,attrs:n}=r,{images:o}=e,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,[c,p,m,f]=o.shape,d=[c,u,l,f],h=t.dataIdMap.get(o.dataId),g;h.dtype!=="float32"&&(g=ni({backend:t,inputs:{x:o},attrs:{dtype:"float32"}}),h=t.dataIdMap.get(g.dataId));let x=h.id,b=t.makeOutput(d,"float32");if(y.sizeFromShape(o.shape)===0)return b;let w=t.dataIdMap.get(b.dataId).id;return WG(x,c,p,m,f,u,l,s?1:0,i?1:0,w),g!=null&&t.disposeData(g.dataId),b}var UG={kernelName:Ss,backendName:"wasm",setupFunc:aat,kernelFunc:lat};var HG;function uat(r){HG=r.wasm.cwrap(Is,null,["number","number","number","number","number","number","number","number","number","number"])}function cat(r){let{backend:t,inputs:e,attrs:n}=r,{images:o}=e,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,[c,p,m,f]=o.shape,d=[c,u,l,f],h=t.makeOutput(d,"float32");if(y.sizeFromShape(o.shape)===0)return h;let g=t.dataIdMap.get(o.dataId),x;g.dtype!=="float32"&&(x=ni({backend:t,inputs:{x:o},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(x.dataId));let b=g.id,w=t.dataIdMap.get(h.dataId).id;return HG(b,c,p,m,f,u,l,s?1:0,i?1:0,w),x!=null&&t.disposeData(x.dataId),h}var qG={kernelName:Is,backendName:"wasm",setupFunc:uat,kernelFunc:cat};var KG;function pat(r){KG=r.wasm.cwrap(Ns,null,["number","array","number","array","number","number"])}function mat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n,i=y.parseAxisParam(s,o.shape);if(o.shape.length===0)return jc({inputs:{x:o},backend:e});let a=e.makeOutput(o.shape,o.dtype),u=e.dataIdMap.get(o.dataId).id,l=e.dataIdMap.get(a.dataId).id,c=new Uint8Array(new Int32Array(i).buffer),p=new Uint8Array(new Int32Array(o.shape).buffer);KG(u,c,i.length,p,o.shape.length,l);let m=ar({inputs:{x:a},attrs:{shape:o.shape},backend:e});return e.disposeData(a.dataId),m}var jG={kernelName:Ns,backendName:"wasm",kernelFunc:mat,setupFunc:pat};var XG;function fat(r){XG=r.wasm.cwrap(qa,null,["number","number","number","number","number","number","number","number","array","number","number"])}function dat(r){let{inputs:t,backend:e,attrs:n}=r,{image:o}=t,{radians:s,fillValue:i,center:a}=n,u=e.makeOutput(o.shape,o.dtype),l=e.dataIdMap.get(o.dataId).id,c=e.dataIdMap.get(u.dataId).id,[p,m,f,d]=o.shape,[h,g]=v.getImageCenter(a,m,f),x=i===0,b=255,w=typeof i=="number"?[i,i,i,x?0:b]:[...i,b],C=new Uint8Array(new Int32Array(w).buffer);return XG(l,p,m,f,d,s,h,g,C,w.length,c),u}var YG={kernelName:qa,backendName:"wasm",kernelFunc:dat,setupFunc:fat};var ZG=se(Ts);var JG=se(ks);var QG;function hat(r){QG=r.wasm.cwrap(La,null,["number","number","number","number","number","number","array","number","number"])}function gat(r){let{backend:t,inputs:e,attrs:n}=r,{indices:o,updates:s}=e,{shape:i}=n,a=t.makeOutput(i,s.dtype);if(y.sizeFromShape(i)===0)return a;let{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=lh.calculateShapes(s,o,i),d=t.dataIdMap.get(o.dataId).id,g=t.dataIdMap.get(s.dataId).id,x=new Uint8Array(new Int32Array(p).buffer),b=t.dataIdMap.get(a.dataId).id;return QG(d,g,qt[s.dtype],u,l,c,x,m,b),a}var tW={kernelName:La,backendName:"wasm",setupFunc:hat,kernelFunc:gat};var eW;function xat(r){eW=r.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function yat(r){let{inputs:t,backend:e}=r,{condition:n,t:o,e:s}=t,i=e.dataIdMap.get(n.dataId).id,a=e.dataIdMap.get(o.dataId).id,u=e.dataIdMap.get(s.dataId).id,l=e.makeOutput(o.shape,o.dtype),c=e.dataIdMap.get(l.dataId).id,p=n.shape.length,m=o.shape.length,f=p===0||p>1||m===1?1:y.sizeFromShape(o.shape.slice(1));return eW(i,a,u,f,c),l}var rW={kernelName:hi,backendName:"wasm",kernelFunc:yat,setupFunc:xat};var nW;function bat(r){nW=r.wasm.cwrap(_s,null,["number","number"])}function wat(r){let{backend:t,inputs:{x:e}}=r,n=t.dataIdMap.get(e.dataId).id,o=t.makeOutput(e.shape,e.dtype),s=t.dataIdMap.get(o.dataId).id;return y.sizeFromShape(o.shape)===0||nW(n,s),o}var oW={kernelName:"Sigmoid",backendName:"wasm",setupFunc:bat,kernelFunc:wat};var sW=se(Es);var iW;function Cat(r){iW=r.wasm.cwrap(Ds,null,["number","number","number","number"])}function Iat(r){let{backend:t,inputs:{logits:e},attrs:{dim:n}}=r,o=t.dataIdMap.get(e.dataId).id,s=t.makeOutput(e.shape,e.dtype),i=t.dataIdMap.get(s.dataId).id,a=e.shape[n],u=y.sizeFromShape(e.shape)/a;return y.sizeFromShape(s.shape)===0||iW(o,i,a,u),s}var aW={kernelName:Ds,backendName:"wasm",setupFunc:Cat,kernelFunc:Iat};function Sat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,paddings:i}=n,a=y.sizeFromShape(s),u=[[0,0]];u.push(...i);for(let _=1+s.length;_0?u+1:0;if(c<0)throw new Error(v.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let p=o.shape.slice();p[0]=c;let m=e.dataIdMap.get(o.dataId).id,f=e.dataIdMap.get(s.dataId).id,d=e.dataIdMap.get(i.dataId).id,h=e.makeOutput(p,o.dtype),g=e.dataIdMap.get(h.dataId).id,x=e.makeOutput([4],"int32"),b=e.dataIdMap.get(x.dataId).id;fW(m,qt[o.dtype],o.shape[0],f,d,g,b,t,0);let w=e.readSync(x.dataId),C;switch(w[0]){case 0:{C=v.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{C=v.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:C=v.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(w[1],w[2]);break;case 3:C=v.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(w[1],w[2],w[3]);break;default:C=""}if(e.disposeData(x.dataId),C)throw e.disposeData(h.dataId),new Error(C);return h}function Eat(r){return mI(r,!0)}var dW={kernelName:Ll,backendName:"wasm",setupFunc:pI,kernelFunc:Eat};function _at(r){return mI(r,!1)}var hW={kernelName:Ml,backendName:"wasm",setupFunc:pI,kernelFunc:_at};function Aat(r){let{inputs:t,attrs:e,backend:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=e,a=y.parseAxisParam(i,o.shape)[0],u=v.prepareSplitSize(o,s,a),l=new Array(o.shape.length).fill(0),c=o.shape.slice();return u.map(p=>{let m=[...c];m[a]=p;let f=Lo({inputs:{x:o},attrs:{begin:l,size:m},backend:n});return l[a]+=p,f})}var gW={kernelName:yi,backendName:"wasm",kernelFunc:Aat};var xW=se(As);var yW=se(zl);var $at=!0,bW=ue(Rs,$at);var wW;function Dat(r){wW=r.wasm.cwrap(po,null,["number","number","number","number"])}function Rat(r){let{backend:t,inputs:e,attrs:n}=r,{alpha:o}=n,{x:s}=e,i=t.dataIdMap.get(s.dataId).id,a=t.makeOutput(s.shape,s.dtype),u=t.dataIdMap.get(a.dataId).id;return wW(i,o,qt[s.dtype],u),a}var CW={kernelName:po,backendName:"wasm",setupFunc:Dat,kernelFunc:Rat};var IW;function Fat(r){IW=r.wasm.cwrap(Wa,null,["number","array","number","array","array","array","array","array","number","number"])}function Oat(r){let{backend:t,inputs:e,attrs:n}=r,{x:o}=e,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n,{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Le.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=ar({inputs:{x:o},backend:t,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let _=Le.computeOutShape(b,w,C),A=Lo({inputs:{x:o},backend:t,attrs:{begin:b,size:_}});N=ar({inputs:{x:A},backend:t,attrs:{shape:d}}),t.disposeData(A.dataId)}else{let _=t.makeOutput(f,"float32"),A=t.dataIdMap.get(o.dataId).id,$=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),F=new Uint8Array(new Int32Array(b).buffer),P=new Uint8Array(new Int32Array(w).buffer),V=new Uint8Array(new Int32Array(C).buffer),G=new Uint8Array(new Int32Array(f).buffer),W=new Uint8Array(new Int32Array(y.computeStrides(f)).buffer),q=t.dataIdMap.get(_.dataId).id;IW(A,$,o.shape.length,F,P,V,G,W,f.length,q),N=ar({inputs:{x:_},backend:t,attrs:{shape:d}}),t.disposeData(_.dataId)}return N}var SW={kernelName:Wa,backendName:"wasm",setupFunc:Fat,kernelFunc:Oat};function Pat(r){let{backend:t,inputs:e,attrs:n}=r,{data:o,dataSplits:s}=e,{separator:i,nGramWidths:a,leftPad:u,rightPad:l,padWidth:c,preserveShortSequences:p}=n,m=t.readSync(o.dataId),f=t.readSync(s.dataId),[d,h]=Dc(m,f,i,a,u,l,c,p),g=t.makeOutput([d.length],"string"),x=t.dataIdMap.get(g.dataId);x.stringBytes=d;let b=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(b).set(h),[g,b]}var vW={kernelName:Bl,backendName:"wasm",kernelFunc:Pat};function Lat(r){let{backend:t,inputs:e,attrs:n}=r,{input:o,delimiter:s}=e,{skipEmpty:i}=n,a=t.readSync(o.dataId),u=t.readSync(s.dataId),[l,c,p]=Rc(a,u[0],i),m=c.length,f=t.makeOutput([m,2],"int32");t.typedArrayFromHeap(f).set(l);let h=t.makeOutput([m],"string"),g=t.dataIdMap.get(h.dataId);g.stringBytes=c;let x=t.makeOutput([2],"int32");return t.typedArrayFromHeap(x).set(p),[f,h,x]}var NW={kernelName:Vl,backendName:"wasm",kernelFunc:Lat};function Mat(r){let{backend:t,inputs:e,attrs:n}=r,{input:o}=e,{numBuckets:s}=n,i=t.readSync(o.dataId),a=Fc(i,s),u=t.makeOutput(o.shape,"int32");return t.typedArrayFromHeap(u).set(a),u}var TW={kernelName:Gl,backendName:"wasm",kernelFunc:Mat};var zat=!0,kW=ue(Fs,zat);var EW;function Bat(r){EW=r.wasm.cwrap($s,null,["number","number","number","number"])}function Vat(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=v.getInnerMostAxes(d.length,l.shape.length))}v.assertAxesAreInnerMostDims("sum",d,l.shape.length);let[h,g]=v.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;EW(u,x,qt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=v.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var _W={kernelName:$s,backendName:"wasm",setupFunc:Bat,kernelFunc:Vat};var AW=se(Os);var $W=se(Ps);var DW;function Gat(r){DW=r.wasm.cwrap(Jn,null,["number","array","number","array","number","number"])}function Wat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,s=e.dataIdMap.get(o.dataId).id,{reps:i}=n,a=new Array(o.shape.length);for(let m=0;m{let{x:n}=r,{k:o,sorted:s}=e,i=t.dataIdMap.get(n.dataId).id,a=new Uint8Array(new Int32Array(n.shape).buffer),u=n.shape.slice();u[u.length-1]=o;let l=t.makeOutput(u,n.dtype),c=t.dataIdMap.get(l.dataId).id,p=t.makeOutput(u,"int32"),m=t.dataIdMap.get(p.dataId).id;return FW(i,a,n.shape.length,qt[n.dtype],o,s,c,m),[l,p]},OW={kernelName:Ua,backendName:"wasm",setupFunc:Uat,kernelFunc:Hat};var PW;function qat(r){PW=r.wasm.cwrap(Ha,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function Kat(r){let{backend:t,inputs:e,attrs:n}=r,{image:o,transforms:s}=e,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=n,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),b=new Uint8Array(new Int32Array(y.computeStrides(g)).buffer),w=t.makeOutput(g,o.dtype),C=t.dataIdMap.get(w.dataId).id,_=t.dataIdMap.get(o.dataId).id,$=t.dataIdMap.get(s.dataId).id,F=i==="nearest"?1:2,P;switch(a){case"constant":P=1;break;case"reflect":P=2;break;case"wrap":P=3;break;case"nearest":P=4;break;default:P=1;break}return PW(_,$,s.shape[0]>1,c,d,h,f,m,p,x,o.shape.length-1,b,g.length-1,F,P,u,C),w}var LW={kernelName:Ha,backendName:"wasm",setupFunc:qat,kernelFunc:Kat};function jat(r){let{inputs:t,backend:e,attrs:n}=r,{value:o}=t,{axis:s}=n;s<0&&(s+=o.shape.length);let i=o.shape[s],a=o.shape.length,u=new Array(a-1),l=0;for(let f=0;f({dataId:f,dtype:d,shape:u}))}var MW={kernelName:bi,backendName:"wasm",kernelFunc:jat};function Xat(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(0),n}var zW={kernelName:wi,backendName:"wasm",kernelFunc:Xat};var Yat=[UB,HB,qB,jB,QB,eV,nV,sV,lV,cV,pV,mV,dV,hV,xV,bV,wV,CV,SV,NV,kV,_V,$V,DV,RV,FV,OV,PV,MV,zV,BV,GV,UV,qV,jV,YV,ZV,JV,XB,tG,eG,rG,nG,oG,sG,iG,aG,uG,cG,mG,dG,gG,xG,bG,wG,CG,SG,NG,kG,EG,AG,$G,DG,cI,FG,PG,MG,zG,BG,VG,GG,iV,UG,qG,jG,YG,ZG,JG,tW,rW,oW,sW,uV,aW,lW,cW,mW,dW,hW,gW,xW,yW,bW,CW,SW,vW,NW,TW,kW,_W,AW,$W,RW,OW,LW,ZB,MW,zW];for(let r of Yat)Lu(r);var Rk=z();Rk.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]))}catch(r){return!1}});Rk.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(Rk.get("IS_NODE"))return!1;try{return new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch(r){return!1}});var zk=Tl(WW()),XW=Tl(HW()),Bk=Tl(qW());var KW=zk.default||zk,Zat=Bk.default||Bk,cg=class extends zo{constructor(t){super(),this.wasm=t,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(ZW),Mk=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new ra(this,Pn())}write(t,e,n){let o={id:this.dataIdNextNumber++};return this.move(o,t,e,n,1),o}numDataIds(){return this.dataIdMap.numDataIds()}async time(t){let e=y.now();return t(),{kernelMs:y.now()-e}}move(t,e,n,o,s){let i=this.dataIdNextNumber++;if(o==="string"){let c=e;this.dataIdMap.set(t,{id:i,stringBytes:c,shape:n,dtype:o,memoryOffset:null,refCount:s});return}let a=y.sizeFromShape(n),u=a*y.bytesPerElement(o),l=this.wasm._malloc(u);this.dataIdMap.set(t,{id:i,memoryOffset:l,shape:n,dtype:o,refCount:s}),this.wasm.tfjs.registerTensor(i,a,l),e!=null&&this.wasm.HEAPU8.set(new Uint8Array(e.buffer,e.byteOffset,u),l)}async read(t){return this.readSync(t)}readSync(t,e,n){let{memoryOffset:o,dtype:s,shape:i,stringBytes:a}=this.dataIdMap.get(t);if(s==="string")return(e==null||e===0)&&(n==null||n>=a.length)?a:a.slice(e,n);e=e||0,n=n||y.sizeFromShape(i);let u=y.bytesPerElement(s),l=this.wasm.HEAPU8.slice(o+e*u,o+n*u);return Qat(l.buffer,s)}disposeData(t,e=!1){if(this.dataIdMap.has(t)){let n=this.dataIdMap.get(t);if(n.refCount--,!e&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(t)}return!0}refCount(t){return this.dataIdMap.has(t)?this.dataIdMap.get(t).refCount:0}incRef(t){let e=this.dataIdMap.get(t);e!=null&&e.refCount++}floatPrecision(){return 32}getMemoryOffset(t){return this.dataIdMap.get(t).memoryOffset}dispose(){this.wasm.tfjs.dispose(),"PThread"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(t,e,n){let o;if(n==null)o=this.write(null,t,e);else{let s=this.dataIdNextNumber++;o={id:s},this.dataIdMap.set(o,{id:s,memoryOffset:n,shape:t,dtype:e,refCount:1});let i=y.sizeFromShape(t);this.wasm.tfjs.registerTensor(s,i,n)}return{dataId:o,shape:t,dtype:e}}typedArrayFromHeap({shape:t,dtype:e,dataId:n}){let o=this.wasm.HEAPU8.buffer,{memoryOffset:s}=this.dataIdMap.get(n),i=y.sizeFromShape(t);switch(e){case"float32":return new Float32Array(o,s,i);case"int32":return new Int32Array(o,s,i);case"bool":return new Uint8Array(o,s,i);default:throw new Error(`Unknown dtype ${e}`)}}};function Jat(r){return(t,e)=>(y.fetch(r,{credentials:"same-origin"}).then(n=>{n.ok||t.env.a(`failed to load wasm binary file at '${r}'`),n.arrayBuffer().then(o=>{WebAssembly.instantiate(o,t).then(s=>{e(s.instance,s.module)})})}),{})}function jW(r,t,e){if(hI!=null)return hI;let n="tfjs-backend-wasm.wasm";return r&&t?n="tfjs-backend-wasm-threaded-simd.wasm":r&&(n="tfjs-backend-wasm-simd.wasm"),lg!=null&&lg[n]!=null?lg[n]:e+n}async function YW(){let[r,t]=await Promise.all([z().getAsync("WASM_HAS_SIMD_SUPPORT"),z().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((e,n)=>{let o={};o.locateFile=(a,u)=>{if(a.endsWith(".worker.js")){let l=XW.wasmWorkerContents.replace(/\n/g,"\\n"),c=new Blob([l],{type:"application/javascript"});return URL.createObjectURL(c)}return a.endsWith(".wasm")?jW(r,t,ag!=null?ag:u):u+a},Vk&&(o.instantiateWasm=Jat(jW(r,t,ag!=null?ag:"")));let s=!1;o.onAbort=()=>{if(s||ug)return;ug=!0,n({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"})};let i;t&&r&&hI==null?(o.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+KW.toString()],{type:"text/javascript"}),i=KW(o)):i=Zat(o),i.then(a=>{s=!0,ug=!1;let u=null;a.tfjs={init:a.cwrap("init",null,[]),initWithThreadsCount:a.cwrap("init_with_threads_count",null,["number"]),getThreadsCount:a.cwrap("get_threads_count","number",[]),registerTensor:a.cwrap("register_tensor",null,["number","number","number"]),disposeData:a.cwrap("dispose_data",u,["number"]),dispose:a.cwrap("dispose",u,[])},e({wasm:a})}).catch(n)})}function Qat(r,t){switch(t){case"float32":return new Float32Array(r);case"int32":return new Int32Array(r);case"bool":return new Uint8Array(r);default:throw new Error(`Unknown dtype ${t}`)}}var tlt=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],hI=null,ag=null,lg={},ug=!1,Vk=!1;function elt(r,t=!1){if(W0("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),ug)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");hI=r,Vk=t}function rlt(r,t=!1){if(ug)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof r=="string")ag=r;else{lg=r;let e=tlt.filter(n=>lg[n]==null);if(e.length>0)throw new Error(`There were no entries found for the following binaries: ${e.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}Vk=t}var ZW=-1,Mk=-1;function nlt(r){ZW=r}function olt(){if(Mk===-1)throw new Error("WASM backend not initialized.");return Mk}var slt="4.0.0";var ilt=2;Xp("wasm",async()=>{let{wasm:r}=await YW();return new cg(r)},ilt);var JW="4.0.0",alt="4.0.0",llt="4.0.0",ult="4.0.0",clt="4.0.0",plt={tfjs:JW,"tfjs-core":JW,"tfjs-converter":alt,"tfjs-backend-cpu":llt,"tfjs-backend-webgl":ult,"tfjs-backend-wasm":clt};export{ii as Abs,oa as Acos,sa as Acosh,cu as AdadeltaOptimizer,pu as AdagradOptimizer,mu as AdamOptimizer,fu as AdamaxOptimizer,Zn as Add,Go as AddN,ia as All,aa as Any,Wo as ArgMax,kl as ArgMin,la as Asin,ua as Asinh,ca as Atan,ma as Atan2,pa as Atanh,Uo as AvgPool,El as AvgPool3D,lp as AvgPool3DGrad,ap as AvgPoolGrad,cg as BackendWasm,Ho as BatchMatMul,ai as BatchToSpaceND,up as Bincount,cp as BroadcastArgs,p1 as BroadcastTo,Sb as Callback,Py as CallbackList,lo as Cast,qo as Ceil,uo as ClipByValue,pp as Complex,_l as ComplexAbs,li as Concat,Ko as Conv2D,mp as Conv2DBackpropFilter,jo as Conv2DBackpropInput,Al as Conv3D,fp as Conv3DBackpropFilterV2,dp as Conv3DBackpropInputV2,Xo as Cos,Yo as Cosh,da as CropAndResize,fa as Cumprod,Zo as Cumsum,My as CustomCallback,ra as DataStorage,hp as DenseBincount,ha as DepthToSpace,Jo as DepthwiseConv2dNative,gp as DepthwiseConv2dNativeBackpropFilter,xp as DepthwiseConv2dNativeBackpropInput,yp as Diag,$l as Dilation2D,Xd as Dilation2DBackpropFilter,jd as Dilation2DBackpropInput,i0 as ENV,vb as EarlyStopping,bp as Einsum,ts as Elu,wp as EluGrad,qd as Environment,xa as Equal,ga as Erf,es as Exp,ui as ExpandDims,ya as Expm1,Cp as FFT,Dl as Fill,ba as FlipLeftRight,rs as Floor,ns as FloorDiv,Yd as FromPixels,os as FusedBatchNorm,Ii as FusedConv2D,Si as FusedDepthwiseConv2D,Bc as GPGPUContext,wa as GatherNd,ci as GatherV2,Ph as GraphModel,Ca as Greater,ss as GreaterEqual,Ly as History,Ip as IFFT,co as Identity,Sp as Imag,ye as InputSpec,Ia as IsFinite,Sa as IsInf,va as IsNan,zo as KernelBackend,Rl as LRN,Np as LRNGrad,Ch as LayerVariable,Bn as LayersModel,is as LeakyRelu,Na as Less,Ta as LessEqual,vp as LinSpace,as as Log,ka as Log1p,f1 as LogSoftmax,Ea as LogicalAnd,_a as LogicalNot,Aa as LogicalOr,m1 as LogicalXor,xlt as LowerBound,_u as MathBackendWebGL,ls as Max,cs as MaxPool,Fl as MaxPool3D,kp as MaxPool3DGrad,Tp as MaxPoolGrad,Ep as MaxPoolWithArgmax,us as Maximum,ps as Mean,ms as Min,fs as Minimum,ds as MirrorPad,$a as Mod,du as MomentumOptimizer,_p as Multinomial,hs as Multiply,pi as Neg,Ra as NonMaxSuppressionV3,Fa as NonMaxSuppressionV4,Oa as NonMaxSuppressionV5,Da as NotEqual,k0 as OP_SCOPE_SUFFIX,gs as OneHot,mi as OnesLike,Wr as Optimizer,Ws as OptimizerConstructors,fi as Pack,xs as PadV2,ylt as Pool,ys as Pow,bs as Prelu,ws as Prod,hu as RMSPropOptimizer,Tn as RNN,Ap as RaggedGather,$p as RaggedRange,Dp as RaggedTensorToTensor,Ol as Range,x0 as Rank,Rp as Real,Qo as RealDiv,Pa as Reciprocal,Xe as Reduction,Cs as Relu,vs as Relu6,di as Reshape,Ss as ResizeBilinear,Op as ResizeBilinearGrad,Is as ResizeNearestNeighbor,Fp as ResizeNearestNeighborGrad,Ns as Reverse,qa as RotateWithOffset,Ts as Round,ks as Rsqrt,Bi as SGDOptimizer,La as ScatterNd,Pp as SearchSorted,hi as Select,Ma as Selu,qi as Sequential,_s as Sigmoid,Ba as Sign,Es as Sin,za as Sinh,gi as Slice,Ds as Softmax,Va as Softplus,xi as SpaceToBatchND,Pl as SparseFillEmptyRows,Ga as SparseReshape,Ll as SparseSegmentMean,Ml as SparseSegmentSum,Lp as SparseToDense,yi as SplitV,As as Sqrt,zl as Square,Rs as SquaredDifference,po as Step,Wa as StridedSlice,Bl as StringNGrams,Vl as StringSplit,Gl as StringToHashBucketFast,Fs as Sub,$s as Sum,Jr as SymbolicTensor,Os as Tan,Ps as Tanh,Ft as Tensor,pe as TensorBuffer,Jn as Tile,Ua as TopK,Ha as Transform,Qn as Transpose,Mp as Unique,bi as Unpack,Wl as UnsortedSegmentSum,blt as UpperBound,Ka as Variable,wi as ZerosLike,Ci as _FusedMatMul,Ee as abs,ax as acos,lx as acosh,X as add,LE as addN,Zp as all,qu as any,Ai as argMax,ux as argMin,cx as asin,px as asinh,mx as atan,fx as atan2,dx as atanh,Yl as avgPool,gx as avgPool3d,gE as backend,v as backend_util,BE as basicLSTMCell,Di as batchNorm,xx as batchNorm2d,yx as batchNorm3d,bx as batchNorm4d,Zl as batchToSpaceND,wx as bincount,n6 as booleanMaskAsync,GE as broadcastArgs,Ri as broadcastTo,Vr as broadcast_util,nx as browser,wt as buffer,VZ as callbacks,J as cast,Cx as ceil,Cr as clipByValue,sn as clone,wn as complex,ne as concat,Ix as concat1d,Sx as concat2d,vx as concat3d,Nx as concat4d,K$ as constraints,Qp as conv1d,In as conv2d,em as conv2dTranspose,Tx as conv3d,Ex as conv3dTranspose,Tlt as copyRegisteredKernels,Jl as cos,rm as cosh,hh as cosineWindow,Xu as cumprod,nm as cumsum,un as customGrad,AR as data,ch as denseBincount,W0 as deprecationWarn,_x as depthToSpace,Fi as depthwiseConv2d,HZ as deregisterOp,Kl as device_util,WE as diag,Ax as dilation2d,gpt as disableDeprecationWarnings,vt as dispose,xpt as disposeVariables,pt as div,$x as divNoNan,Dx as dot,lv as dropout,UE as einsum,Oi as elu,hpt as enableDebugMode,dpt as enableProdMode,uv as enclosingPowerOfTwo,Pn as engine,z as env,$r as equal,Rx as erf,Fx as euclideanNorm,er as exp,rr as expandDims,Ox as expm1,Yu as eye,au as fft,xo as fill,Spt as findBackend,vpt as findBackendFactory,Pi as floor,Yp as floorDiv,hM as forceHalfFloat,uu as fused,Li as gather,m6 as gatherND,ox as gather_util,Cpt as getBackend,u0 as getGradient,Jd as getKernel,zg as getKernelsForBackend,olt as getThreadsCount,ik as gpgpu_util,bK as grad,wK as grads,Re as greater,ln as greaterEqual,tl as ifft,Xl as imag,Gs as image,h6 as inTopKAsync,j$ as initializers,Pv as input,_r as io,xm as irfft,Px as isFinite,Lx as isInf,Mx as isNaN,De as keep,Ur as kernel_impls,ED as layers,Ql as leakyRelu,om as less,Ln as lessEqual,pv as linalg,KE as linspace,M7 as loadGraphModel,z7 as loadGraphModelSync,hD as loadLayersModel,zx as localResponseNormalization,Sr as log,tu as log1p,Gx as logSigmoid,sm as logSoftmax,im as logSumExp,Rr as logicalAnd,eu as logicalNot,am as logicalOr,Wx as logicalXor,hX as losses,jE as lowerBound,Lt as matMul,yE as math,Ir as max,ru as maxPool,Hx as maxPool3d,XE as maxPoolWithArgmax,Sn as maximum,ve as mean,ah as memory,YE as meshgrid,_D as metrics,Ja as min,Mi as minimum,qx as mirrorPad,Kx as mod,q8 as model,AD as models,Zu as moments,s6 as movingAverage,D as mul,ZE as multiRNNCell,JE as multinomial,Ht as neg,gh as nextFrame,Qa as norm,Bs as notEqual,Ei as oneHot,cr as ones,yr as onesLike,T as op,QE as outerProduct,cn as pad,t_ as pad1d,e_ as pad2d,r_ as pad3d,n_ as pad4d,jx as pool,an as pow,ou as prelu,Jg as print,Xx as prod,ypt as profile,o_ as raggedGather,s_ as raggedRange,i_ as raggedTensorToTensor,a_ as rand,v_ as randomGamma,tc as randomNormal,N_ as randomStandardNormal,zi as randomUniform,su as range,wpt as ready,Za as real,ty as reciprocal,Xp as registerBackend,j8 as registerCallbackConstructor,h1 as registerGradient,Lu as registerKernel,UZ as registerOp,$D as regularizers,Fr as relu,lm as relu6,Ipt as removeBackend,R as reshape,pr as reverse,T_ as reverse1d,k_ as reverse2d,E_ as reverse3d,__ as reverse4d,lu as rfft,um as round,cm as rsqrt,mt as scalar,a6 as scatterND,lh as scatter_util,mh as searchSorted,pm as selu,mm as separableConv2d,K8 as sequential,Q as serialization,tH as setBackend,Npt as setPlatform,nlt as setThreadsCount,elt as setWasmPath,rlt as setWasmPaths,wT as setWebGLContext,A_ as setdiff1dAsync,Yr as sigmoid,ey as sign,dX as signal,fm as sin,dm as sinh,Rt as slice,hm as slice1d,dh as slice2d,gm as slice3d,ec as slice4d,Le as slice_util,iu as softmax,zs as softplus,nu as spaceToBatchND,gX as sparse,c6 as sparseToDense,fX as spectral,mr as split,Se as sqrt,Mt as square,ym as squaredDifference,Mn as squeeze,nr as stack,bo as step,ry as stridedSlice,xX as string,ct as sub,ft as sum,Wu as sumOutType,ny as tan,$i as tanh,ur as tensor,Me as tensor1d,Vs as tensor2d,rx as tensor3d,$_ as tensor4d,D_ as tensor5d,R_ as tensor6d,go as tensor_util,OE as test_util,B as tidy,Dr as tile,bpt as time,oy as topk,ic as train,Ot as transpose,bm as truncatedNormal,sy as unique,Nlt as unregisterGradient,vlt as unregisterKernel,wm as unsortedSegmentSum,vr as unstack,sr as upcastType,F_ as upperBound,y as util,CK as valueAndGrad,IK as valueAndGrads,iy as variable,Bx as variableGrads,plt as version,cR as version_converter,PE as version_core,Um as version_layers,slt as version_wasm,dM as version_webgl,Zke as webgl,dd as webgl_util,_e as where,ly as whereAsync,Ne as zeros,It as zerosLike}; + ${o.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=t.dataIdMap.get(n.dataId).id,a=t.dataIdMap.get(o.dataId).id,u=t.dataIdMap.get(s.dataId).id,l=n.shape[0],c=y.sizeFromShape(s.shape),p=t.makeOutput([l,c],n.dtype),m=t.dataIdMap.get(p.dataId).id,f=t.makeOutput([c],s.dtype),d=t.dataIdMap.get(f.dataId).id,h=t.makeOutput([3],"int32"),g=t.dataIdMap.get(h.dataId).id;pW(i,a,u,l,m,d,g);let x=t.readSync(h.dataId),b;switch(x[0]){case 0:{b=v.getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(x[1],x[2]);break}case 1:{b=v.getSparseReshapeNegativeOutputDimErrorMessage(x[1],x[2]);break}case 2:b=v.getSparseReshapeEmptyTensorZeroOutputDimErrorMessage();break;case 3:{let w=Array.from(t.readSync(o.dataId)),C=Array.from(t.readSync(f.dataId));b=v.getSparseReshapeInputOutputMultipleErrorMessage(w,C);break}case 4:{let w=Array.from(t.readSync(o.dataId)),C=Array.from(t.readSync(f.dataId));b=v.getSparseReshapeInputOutputMismatchErrorMessage(w,C);break}default:b=""}if(t.disposeData(h.dataId),b)throw t.disposeData(p.dataId),t.disposeData(f.dataId),new Error(b);return[p,f]}var mW={kernelName:Ga,backendName:"wasm",setupFunc:Tat,kernelFunc:kat};var fW;function pI(r){fW=r.wasm.cwrap("SparseSegmentReduction",null,["number","number","number","number","number","number","number","number","number"])}function mI(r,t){let{backend:e,inputs:n}=r,{data:o,indices:s,segmentIds:i}=n,a=s.shape[0],u=e.readSync(i.dataId,a-1,a)[0],c=a>0?u+1:0;if(c<0)throw new Error(v.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let p=o.shape.slice();p[0]=c;let m=e.dataIdMap.get(o.dataId).id,f=e.dataIdMap.get(s.dataId).id,d=e.dataIdMap.get(i.dataId).id,h=e.makeOutput(p,o.dtype),g=e.dataIdMap.get(h.dataId).id,x=e.makeOutput([4],"int32"),b=e.dataIdMap.get(x.dataId).id;fW(m,qt[o.dtype],o.shape[0],f,d,g,b,t,0);let w=e.readSync(x.dataId),C;switch(w[0]){case 0:{C=v.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{C=v.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:C=v.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(w[1],w[2]);break;case 3:C=v.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(w[1],w[2],w[3]);break;default:C=""}if(e.disposeData(x.dataId),C)throw e.disposeData(h.dataId),new Error(C);return h}function Eat(r){return mI(r,!0)}var dW={kernelName:Ll,backendName:"wasm",setupFunc:pI,kernelFunc:Eat};function _at(r){return mI(r,!1)}var hW={kernelName:Ml,backendName:"wasm",setupFunc:pI,kernelFunc:_at};function Aat(r){let{inputs:t,attrs:e,backend:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=e,a=y.parseAxisParam(i,o.shape)[0],u=v.prepareSplitSize(o,s,a),l=new Array(o.shape.length).fill(0),c=o.shape.slice();return u.map(p=>{let m=[...c];m[a]=p;let f=Lo({inputs:{x:o},attrs:{begin:l,size:m},backend:n});return l[a]+=p,f})}var gW={kernelName:yi,backendName:"wasm",kernelFunc:Aat};var xW=se(As);var yW=se(zl);var $at=!0,bW=ue(Rs,$at);var wW;function Dat(r){wW=r.wasm.cwrap(po,null,["number","number","number","number"])}function Rat(r){let{backend:t,inputs:e,attrs:n}=r,{alpha:o}=n,{x:s}=e,i=t.dataIdMap.get(s.dataId).id,a=t.makeOutput(s.shape,s.dtype),u=t.dataIdMap.get(a.dataId).id;return wW(i,o,qt[s.dtype],u),a}var CW={kernelName:po,backendName:"wasm",setupFunc:Dat,kernelFunc:Rat};var IW;function Fat(r){IW=r.wasm.cwrap(Wa,null,["number","array","number","array","array","array","array","array","number","number"])}function Oat(r){let{backend:t,inputs:e,attrs:n}=r,{x:o}=e,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n,{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Le.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=ar({inputs:{x:o},backend:t,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let _=Le.computeOutShape(b,w,C),A=Lo({inputs:{x:o},backend:t,attrs:{begin:b,size:_}});N=ar({inputs:{x:A},backend:t,attrs:{shape:d}}),t.disposeData(A.dataId)}else{let _=t.makeOutput(f,"float32"),A=t.dataIdMap.get(o.dataId).id,$=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),F=new Uint8Array(new Int32Array(b).buffer),P=new Uint8Array(new Int32Array(w).buffer),V=new Uint8Array(new Int32Array(C).buffer),G=new Uint8Array(new Int32Array(f).buffer),W=new Uint8Array(new Int32Array(y.computeStrides(f)).buffer),q=t.dataIdMap.get(_.dataId).id;IW(A,$,o.shape.length,F,P,V,G,W,f.length,q),N=ar({inputs:{x:_},backend:t,attrs:{shape:d}}),t.disposeData(_.dataId)}return N}var SW={kernelName:Wa,backendName:"wasm",setupFunc:Fat,kernelFunc:Oat};function Pat(r){let{backend:t,inputs:e,attrs:n}=r,{data:o,dataSplits:s}=e,{separator:i,nGramWidths:a,leftPad:u,rightPad:l,padWidth:c,preserveShortSequences:p}=n,m=t.readSync(o.dataId),f=t.readSync(s.dataId),[d,h]=Dc(m,f,i,a,u,l,c,p),g=t.makeOutput([d.length],"string"),x=t.dataIdMap.get(g.dataId);x.stringBytes=d;let b=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(b).set(h),[g,b]}var vW={kernelName:Bl,backendName:"wasm",kernelFunc:Pat};function Lat(r){let{backend:t,inputs:e,attrs:n}=r,{input:o,delimiter:s}=e,{skipEmpty:i}=n,a=t.readSync(o.dataId),u=t.readSync(s.dataId),[l,c,p]=Rc(a,u[0],i),m=c.length,f=t.makeOutput([m,2],"int32");t.typedArrayFromHeap(f).set(l);let h=t.makeOutput([m],"string"),g=t.dataIdMap.get(h.dataId);g.stringBytes=c;let x=t.makeOutput([2],"int32");return t.typedArrayFromHeap(x).set(p),[f,h,x]}var NW={kernelName:Vl,backendName:"wasm",kernelFunc:Lat};function Mat(r){let{backend:t,inputs:e,attrs:n}=r,{input:o}=e,{numBuckets:s}=n,i=t.readSync(o.dataId),a=Fc(i,s),u=t.makeOutput(o.shape,"int32");return t.typedArrayFromHeap(u).set(a),u}var TW={kernelName:Gl,backendName:"wasm",kernelFunc:Mat};var zat=!0,kW=ue(Fs,zat);var EW;function Bat(r){EW=r.wasm.cwrap($s,null,["number","number","number","number"])}function Vat(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=v.getInnerMostAxes(d.length,l.shape.length))}v.assertAxesAreInnerMostDims("sum",d,l.shape.length);let[h,g]=v.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;EW(u,x,qt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=v.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var _W={kernelName:$s,backendName:"wasm",setupFunc:Bat,kernelFunc:Vat};var AW=se(Os);var $W=se(Ps);var DW;function Gat(r){DW=r.wasm.cwrap(Jn,null,["number","array","number","array","number","number"])}function Wat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,s=e.dataIdMap.get(o.dataId).id,{reps:i}=n,a=new Array(o.shape.length);for(let m=0;m{let{x:n}=r,{k:o,sorted:s}=e,i=t.dataIdMap.get(n.dataId).id,a=new Uint8Array(new Int32Array(n.shape).buffer),u=n.shape.slice();u[u.length-1]=o;let l=t.makeOutput(u,n.dtype),c=t.dataIdMap.get(l.dataId).id,p=t.makeOutput(u,"int32"),m=t.dataIdMap.get(p.dataId).id;return FW(i,a,n.shape.length,qt[n.dtype],o,s,c,m),[l,p]},OW={kernelName:Ua,backendName:"wasm",setupFunc:Uat,kernelFunc:Hat};var PW;function qat(r){PW=r.wasm.cwrap(Ha,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function Kat(r){let{backend:t,inputs:e,attrs:n}=r,{image:o,transforms:s}=e,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=n,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),b=new Uint8Array(new Int32Array(y.computeStrides(g)).buffer),w=t.makeOutput(g,o.dtype),C=t.dataIdMap.get(w.dataId).id,_=t.dataIdMap.get(o.dataId).id,$=t.dataIdMap.get(s.dataId).id,F=i==="nearest"?1:2,P;switch(a){case"constant":P=1;break;case"reflect":P=2;break;case"wrap":P=3;break;case"nearest":P=4;break;default:P=1;break}return PW(_,$,s.shape[0]>1,c,d,h,f,m,p,x,o.shape.length-1,b,g.length-1,F,P,u,C),w}var LW={kernelName:Ha,backendName:"wasm",setupFunc:qat,kernelFunc:Kat};function jat(r){let{inputs:t,backend:e,attrs:n}=r,{value:o}=t,{axis:s}=n;s<0&&(s+=o.shape.length);let i=o.shape[s],a=o.shape.length,u=new Array(a-1),l=0;for(let f=0;f({dataId:f,dtype:d,shape:u}))}var MW={kernelName:bi,backendName:"wasm",kernelFunc:jat};function Xat(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(0),n}var zW={kernelName:wi,backendName:"wasm",kernelFunc:Xat};var Yat=[UB,HB,qB,jB,QB,eV,nV,sV,lV,cV,pV,mV,dV,hV,xV,bV,wV,CV,SV,NV,kV,_V,$V,DV,RV,FV,OV,PV,MV,zV,BV,GV,UV,qV,jV,YV,ZV,JV,XB,tG,eG,rG,nG,oG,sG,iG,aG,uG,cG,mG,dG,gG,xG,bG,wG,CG,SG,NG,kG,EG,AG,$G,DG,cI,FG,PG,MG,zG,BG,VG,GG,iV,UG,qG,jG,YG,ZG,JG,tW,rW,oW,sW,uV,aW,lW,cW,mW,dW,hW,gW,xW,yW,bW,CW,SW,vW,NW,TW,kW,_W,AW,$W,RW,OW,LW,ZB,MW,zW];for(let r of Yat)Lu(r);var Rk=z();Rk.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>{try{return WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]))}catch(r){return!1}});Rk.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(Rk.get("IS_NODE"))return!1;try{return new MessageChannel().port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]))}catch(r){return!1}});var zk=Tl(WW()),XW=Tl(HW()),Bk=Tl(qW());var KW=zk.default||zk,Zat=Bk.default||Bk,cg=class extends zo{constructor(t){super(),this.wasm=t,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(ZW),Mk=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new ra(this,Pn())}write(t,e,n){let o={id:this.dataIdNextNumber++};return this.move(o,t,e,n,1),o}numDataIds(){return this.dataIdMap.numDataIds()}async time(t){let e=y.now();return t(),{kernelMs:y.now()-e}}move(t,e,n,o,s){let i=this.dataIdNextNumber++;if(o==="string"){let c=e;this.dataIdMap.set(t,{id:i,stringBytes:c,shape:n,dtype:o,memoryOffset:null,refCount:s});return}let a=y.sizeFromShape(n),u=a*y.bytesPerElement(o),l=this.wasm._malloc(u);this.dataIdMap.set(t,{id:i,memoryOffset:l,shape:n,dtype:o,refCount:s}),this.wasm.tfjs.registerTensor(i,a,l),e!=null&&this.wasm.HEAPU8.set(new Uint8Array(e.buffer,e.byteOffset,u),l)}async read(t){return this.readSync(t)}readSync(t,e,n){let{memoryOffset:o,dtype:s,shape:i,stringBytes:a}=this.dataIdMap.get(t);if(s==="string")return(e==null||e===0)&&(n==null||n>=a.length)?a:a.slice(e,n);e=e||0,n=n||y.sizeFromShape(i);let u=y.bytesPerElement(s),l=this.wasm.HEAPU8.slice(o+e*u,o+n*u);return Qat(l.buffer,s)}disposeData(t,e=!1){if(this.dataIdMap.has(t)){let n=this.dataIdMap.get(t);if(n.refCount--,!e&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(t)}return!0}refCount(t){return this.dataIdMap.has(t)?this.dataIdMap.get(t).refCount:0}incRef(t){let e=this.dataIdMap.get(t);e!=null&&e.refCount++}floatPrecision(){return 32}getMemoryOffset(t){return this.dataIdMap.get(t).memoryOffset}dispose(){this.wasm.tfjs.dispose(),"PThread"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(t,e,n){let o;if(n==null)o=this.write(null,t,e);else{let s=this.dataIdNextNumber++;o={id:s},this.dataIdMap.set(o,{id:s,memoryOffset:n,shape:t,dtype:e,refCount:1});let i=y.sizeFromShape(t);this.wasm.tfjs.registerTensor(s,i,n)}return{dataId:o,shape:t,dtype:e}}typedArrayFromHeap({shape:t,dtype:e,dataId:n}){let o=this.wasm.HEAPU8.buffer,{memoryOffset:s}=this.dataIdMap.get(n),i=y.sizeFromShape(t);switch(e){case"float32":return new Float32Array(o,s,i);case"int32":return new Int32Array(o,s,i);case"bool":return new Uint8Array(o,s,i);default:throw new Error(`Unknown dtype ${e}`)}}};function Jat(r){return(t,e)=>(y.fetch(r,{credentials:"same-origin"}).then(n=>{n.ok||t.env.a(`failed to load wasm binary file at '${r}'`),n.arrayBuffer().then(o=>{WebAssembly.instantiate(o,t).then(s=>{e(s.instance,s.module)})})}),{})}function jW(r,t,e){if(hI!=null)return hI;let n="tfjs-backend-wasm.wasm";return r&&t?n="tfjs-backend-wasm-threaded-simd.wasm":r&&(n="tfjs-backend-wasm-simd.wasm"),lg!=null&&lg[n]!=null?lg[n]:e+n}async function YW(){let[r,t]=await Promise.all([z().getAsync("WASM_HAS_SIMD_SUPPORT"),z().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((e,n)=>{let o={};o.locateFile=(a,u)=>{if(a.endsWith(".worker.js")){let l=XW.wasmWorkerContents.replace(/\n/g,"\\n"),c=new Blob([l],{type:"application/javascript"});return URL.createObjectURL(c)}return a.endsWith(".wasm")?jW(r,t,ag!=null?ag:u):u+a},Vk&&(o.instantiateWasm=Jat(jW(r,t,ag!=null?ag:"")));let s=!1;o.onAbort=()=>{if(s||ug)return;ug=!0,n({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"})};let i;t&&r&&hI==null?(o.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+KW.toString()],{type:"text/javascript"}),i=KW(o)):i=Zat(o),i.then(a=>{s=!0,ug=!1;let u=null;a.tfjs={init:a.cwrap("init",null,[]),initWithThreadsCount:a.cwrap("init_with_threads_count",null,["number"]),getThreadsCount:a.cwrap("get_threads_count","number",[]),registerTensor:a.cwrap("register_tensor",null,["number","number","number"]),disposeData:a.cwrap("dispose_data",u,["number"]),dispose:a.cwrap("dispose",u,[])},e({wasm:a})}).catch(n)})}function Qat(r,t){switch(t){case"float32":return new Float32Array(r);case"int32":return new Int32Array(r);case"bool":return new Uint8Array(r);default:throw new Error(`Unknown dtype ${t}`)}}var tlt=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],hI=null,ag=null,lg={},ug=!1,Vk=!1;function elt(r,t=!1){if(Wv("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),ug)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");hI=r,Vk=t}function rlt(r,t=!1){if(ug)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof r=="string")ag=r;else{lg=r;let e=tlt.filter(n=>lg[n]==null);if(e.length>0)throw new Error(`There were no entries found for the following binaries: ${e.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}Vk=t}var ZW=-1,Mk=-1;function nlt(r){ZW=r}function olt(){if(Mk===-1)throw new Error("WASM backend not initialized.");return Mk}var slt="4.0.0";var ilt=2;Xp("wasm",async()=>{let{wasm:r}=await YW();return new cg(r)},ilt);var JW="4.0.0",alt="4.0.0",llt="4.0.0",ult="4.0.0",clt="4.0.0",plt={tfjs:JW,"tfjs-core":JW,"tfjs-converter":alt,"tfjs-backend-cpu":llt,"tfjs-backend-webgl":ult,"tfjs-backend-wasm":clt};export{ii as Abs,oa as Acos,sa as Acosh,cu as AdadeltaOptimizer,pu as AdagradOptimizer,mu as AdamOptimizer,fu as AdamaxOptimizer,Zn as Add,Go as AddN,ia as All,aa as Any,Wo as ArgMax,kl as ArgMin,la as Asin,ua as Asinh,ca as Atan,ma as Atan2,pa as Atanh,Uo as AvgPool,El as AvgPool3D,lp as AvgPool3DGrad,ap as AvgPoolGrad,cg as BackendWasm,Ho as BatchMatMul,ai as BatchToSpaceND,up as Bincount,cp as BroadcastArgs,p1 as BroadcastTo,Sb as Callback,Py as CallbackList,lo as Cast,qo as Ceil,uo as ClipByValue,pp as Complex,_l as ComplexAbs,li as Concat,Ko as Conv2D,mp as Conv2DBackpropFilter,jo as Conv2DBackpropInput,Al as Conv3D,fp as Conv3DBackpropFilterV2,dp as Conv3DBackpropInputV2,Xo as Cos,Yo as Cosh,da as CropAndResize,fa as Cumprod,Zo as Cumsum,My as CustomCallback,ra as DataStorage,hp as DenseBincount,ha as DepthToSpace,Jo as DepthwiseConv2dNative,gp as DepthwiseConv2dNativeBackpropFilter,xp as DepthwiseConv2dNativeBackpropInput,yp as Diag,$l as Dilation2D,Xd as Dilation2DBackpropFilter,jd as Dilation2DBackpropInput,iv as ENV,vb as EarlyStopping,bp as Einsum,ts as Elu,wp as EluGrad,qd as Environment,xa as Equal,ga as Erf,es as Exp,ui as ExpandDims,ya as Expm1,Cp as FFT,Dl as Fill,ba as FlipLeftRight,rs as Floor,ns as FloorDiv,Yd as FromPixels,os as FusedBatchNorm,Ii as FusedConv2D,Si as FusedDepthwiseConv2D,Bc as GPGPUContext,wa as GatherNd,ci as GatherV2,Ph as GraphModel,Ca as Greater,ss as GreaterEqual,Ly as History,Ip as IFFT,co as Identity,Sp as Imag,ye as InputSpec,Ia as IsFinite,Sa as IsInf,va as IsNan,zo as KernelBackend,Rl as LRN,Np as LRNGrad,Ch as LayerVariable,Bn as LayersModel,is as LeakyRelu,Na as Less,Ta as LessEqual,vp as LinSpace,as as Log,ka as Log1p,f1 as LogSoftmax,Ea as LogicalAnd,_a as LogicalNot,Aa as LogicalOr,m1 as LogicalXor,xlt as LowerBound,_u as MathBackendWebGL,ls as Max,cs as MaxPool,Fl as MaxPool3D,kp as MaxPool3DGrad,Tp as MaxPoolGrad,Ep as MaxPoolWithArgmax,us as Maximum,ps as Mean,ms as Min,fs as Minimum,ds as MirrorPad,$a as Mod,du as MomentumOptimizer,_p as Multinomial,hs as Multiply,pi as Neg,Ra as NonMaxSuppressionV3,Fa as NonMaxSuppressionV4,Oa as NonMaxSuppressionV5,Da as NotEqual,kv as OP_SCOPE_SUFFIX,gs as OneHot,mi as OnesLike,Wr as Optimizer,Ws as OptimizerConstructors,fi as Pack,xs as PadV2,ylt as Pool,ys as Pow,bs as Prelu,ws as Prod,hu as RMSPropOptimizer,Tn as RNN,Ap as RaggedGather,$p as RaggedRange,Dp as RaggedTensorToTensor,Ol as Range,xv as Rank,Rp as Real,Qo as RealDiv,Pa as Reciprocal,Xe as Reduction,Cs as Relu,vs as Relu6,di as Reshape,Ss as ResizeBilinear,Op as ResizeBilinearGrad,Is as ResizeNearestNeighbor,Fp as ResizeNearestNeighborGrad,Ns as Reverse,qa as RotateWithOffset,Ts as Round,ks as Rsqrt,Bi as SGDOptimizer,La as ScatterNd,Pp as SearchSorted,hi as Select,Ma as Selu,qi as Sequential,_s as Sigmoid,Ba as Sign,Es as Sin,za as Sinh,gi as Slice,Ds as Softmax,Va as Softplus,xi as SpaceToBatchND,Pl as SparseFillEmptyRows,Ga as SparseReshape,Ll as SparseSegmentMean,Ml as SparseSegmentSum,Lp as SparseToDense,yi as SplitV,As as Sqrt,zl as Square,Rs as SquaredDifference,po as Step,Wa as StridedSlice,Bl as StringNGrams,Vl as StringSplit,Gl as StringToHashBucketFast,Fs as Sub,$s as Sum,Jr as SymbolicTensor,Os as Tan,Ps as Tanh,Ft as Tensor,pe as TensorBuffer,Jn as Tile,Ua as TopK,Ha as Transform,Qn as Transpose,Mp as Unique,bi as Unpack,Wl as UnsortedSegmentSum,blt as UpperBound,Ka as Variable,wi as ZerosLike,Ci as _FusedMatMul,Ee as abs,ax as acos,lx as acosh,X as add,LE as addN,Zp as all,qu as any,Ai as argMax,ux as argMin,cx as asin,px as asinh,mx as atan,fx as atan2,dx as atanh,Yl as avgPool,gx as avgPool3d,gE as backend,v as backend_util,BE as basicLSTMCell,Di as batchNorm,xx as batchNorm2d,yx as batchNorm3d,bx as batchNorm4d,Zl as batchToSpaceND,wx as bincount,n6 as booleanMaskAsync,GE as broadcastArgs,Ri as broadcastTo,Vr as broadcast_util,nx as browser,wt as buffer,VZ as callbacks,J as cast,Cx as ceil,Cr as clipByValue,sn as clone,wn as complex,ne as concat,Ix as concat1d,Sx as concat2d,vx as concat3d,Nx as concat4d,K$ as constraints,Qp as conv1d,In as conv2d,em as conv2dTranspose,Tx as conv3d,Ex as conv3dTranspose,Tlt as copyRegisteredKernels,Jl as cos,rm as cosh,hh as cosineWindow,Xu as cumprod,nm as cumsum,un as customGrad,AR as data,ch as denseBincount,Wv as deprecationWarn,_x as depthToSpace,Fi as depthwiseConv2d,HZ as deregisterOp,Kl as device_util,WE as diag,Ax as dilation2d,gpt as disableDeprecationWarnings,vt as dispose,xpt as disposeVariables,pt as div,$x as divNoNan,Dx as dot,l0 as dropout,UE as einsum,Oi as elu,hpt as enableDebugMode,dpt as enableProdMode,u0 as enclosingPowerOfTwo,Pn as engine,z as env,$r as equal,Rx as erf,Fx as euclideanNorm,er as exp,rr as expandDims,Ox as expm1,Yu as eye,au as fft,xo as fill,Spt as findBackend,vpt as findBackendFactory,Pi as floor,Yp as floorDiv,hM as forceHalfFloat,uu as fused,Li as gather,m6 as gatherND,ox as gather_util,Cpt as getBackend,uv as getGradient,Jd as getKernel,zg as getKernelsForBackend,olt as getThreadsCount,ik as gpgpu_util,bK as grad,wK as grads,Re as greater,ln as greaterEqual,tl as ifft,Xl as imag,Gs as image,h6 as inTopKAsync,j$ as initializers,P0 as input,_r as io,xm as irfft,Px as isFinite,Lx as isInf,Mx as isNaN,De as keep,Ur as kernel_impls,ED as layers,Ql as leakyRelu,om as less,Ln as lessEqual,p0 as linalg,KE as linspace,M7 as loadGraphModel,z7 as loadGraphModelSync,hD as loadLayersModel,zx as localResponseNormalization,Sr as log,tu as log1p,Gx as logSigmoid,sm as logSoftmax,im as logSumExp,Rr as logicalAnd,eu as logicalNot,am as logicalOr,Wx as logicalXor,hX as losses,jE as lowerBound,Lt as matMul,yE as math,Ir as max,ru as maxPool,Hx as maxPool3d,XE as maxPoolWithArgmax,Sn as maximum,ve as mean,ah as memory,YE as meshgrid,_D as metrics,Ja as min,Mi as minimum,qx as mirrorPad,Kx as mod,q8 as model,AD as models,Zu as moments,s6 as movingAverage,D as mul,ZE as multiRNNCell,JE as multinomial,Ht as neg,gh as nextFrame,Qa as norm,Bs as notEqual,Ei as oneHot,cr as ones,yr as onesLike,T as op,QE as outerProduct,cn as pad,t_ as pad1d,e_ as pad2d,r_ as pad3d,n_ as pad4d,jx as pool,an as pow,ou as prelu,Jg as print,Xx as prod,ypt as profile,o_ as raggedGather,s_ as raggedRange,i_ as raggedTensorToTensor,a_ as rand,v_ as randomGamma,tc as randomNormal,N_ as randomStandardNormal,zi as randomUniform,su as range,wpt as ready,Za as real,ty as reciprocal,Xp as registerBackend,j8 as registerCallbackConstructor,h1 as registerGradient,Lu as registerKernel,UZ as registerOp,$D as regularizers,Fr as relu,lm as relu6,Ipt as removeBackend,R as reshape,pr as reverse,T_ as reverse1d,k_ as reverse2d,E_ as reverse3d,__ as reverse4d,lu as rfft,um as round,cm as rsqrt,mt as scalar,a6 as scatterND,lh as scatter_util,mh as searchSorted,pm as selu,mm as separableConv2d,K8 as sequential,Q as serialization,tH as setBackend,Npt as setPlatform,nlt as setThreadsCount,elt as setWasmPath,rlt as setWasmPaths,wT as setWebGLContext,A_ as setdiff1dAsync,Yr as sigmoid,ey as sign,dX as signal,fm as sin,dm as sinh,Rt as slice,hm as slice1d,dh as slice2d,gm as slice3d,ec as slice4d,Le as slice_util,iu as softmax,zs as softplus,nu as spaceToBatchND,gX as sparse,c6 as sparseToDense,fX as spectral,mr as split,Se as sqrt,Mt as square,ym as squaredDifference,Mn as squeeze,nr as stack,bo as step,ry as stridedSlice,xX as string,ct as sub,ft as sum,Wu as sumOutType,ny as tan,$i as tanh,ur as tensor,Me as tensor1d,Vs as tensor2d,rx as tensor3d,$_ as tensor4d,D_ as tensor5d,R_ as tensor6d,go as tensor_util,OE as test_util,B as tidy,Dr as tile,bpt as time,oy as topk,ic as train,Ot as transpose,bm as truncatedNormal,sy as unique,Nlt as unregisterGradient,vlt as unregisterKernel,wm as unsortedSegmentSum,vr as unstack,sr as upcastType,F_ as upperBound,y as util,CK as valueAndGrad,IK as valueAndGrads,iy as variable,Bx as variableGrads,plt as version,cR as version_converter,PE as version_core,Um as version_layers,slt as version_wasm,dM as version_webgl,Zke as webgl,dd as webgl_util,_e as where,ly as whereAsync,Ne as zeros,It as zerosLike}; diff --git a/package.json b/package.json index c88dc1a5..79e93350 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ ], "devDependencies": { "@canvas/image": "^1.0.1", - "@microsoft/api-extractor": "^7.33.4", + "@microsoft/api-extractor": "^7.33.6", "@tensorflow/tfjs": "^4.0.0", "@tensorflow/tfjs-backend-cpu": "^4.0.0", "@tensorflow/tfjs-backend-wasm": "^4.0.0", @@ -55,23 +55,23 @@ "@tensorflow/tfjs-layers": "^4.0.0", "@tensorflow/tfjs-node": "^4.0.0", "@tensorflow/tfjs-node-gpu": "^4.0.0", - "@types/node": "^18.11.0", + "@types/node": "^18.11.9", "@types/offscreencanvas": "^2019.7.0", - "@typescript-eslint/eslint-plugin": "^5.40.1", - "@typescript-eslint/parser": "^5.40.1", + "@typescript-eslint/eslint-plugin": "^5.42.1", + "@typescript-eslint/parser": "^5.42.1", "@vladmandic/build": "^0.7.14", "@vladmandic/pilogger": "^0.4.6", - "esbuild": "^0.15.11", - "eslint": "^8.25.0", + "esbuild": "^0.15.13", + "eslint": "^8.27.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-plugin-import": "^2.26.0", "eslint-plugin-json": "^3.1.0", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.1.0", + "eslint-plugin-promise": "^6.1.1", "rimraf": "^3.0.2", "seedrandom": "^3.0.5", - "tslib": "^2.4.0", - "typedoc": "^0.23.17", + "tslib": "^2.4.1", + "typedoc": "^0.23.20", "typescript": "4.8.4" } } diff --git a/typedoc/classes/AgeGenderNet.html b/typedoc/classes/AgeGenderNet.html index dd450555..f0d75ab0 100644 --- a/typedoc/classes/AgeGenderNet.html +++ b/typedoc/classes/AgeGenderNet.html @@ -6,7 +6,7 @@
  • Preparing search index...
  • -
  • The search index is not available
@vladmandic/face-api - v1.7.6 +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/BoundingBox.html b/typedoc/classes/BoundingBox.html index 76a49065..6162cb14 100644 --- a/typedoc/classes/BoundingBox.html +++ b/typedoc/classes/BoundingBox.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/Box.html b/typedoc/classes/Box.html index 2c7ea5d7..217581cb 100644 --- a/typedoc/classes/Box.html +++ b/typedoc/classes/Box.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/ComposableTask.html b/typedoc/classes/ComposableTask.html index 62fe1523..f56c3c99 100644 --- a/typedoc/classes/ComposableTask.html +++ b/typedoc/classes/ComposableTask.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/ComputeAllFaceDescriptorsTask.html b/typedoc/classes/ComputeAllFaceDescriptorsTask.html index 6a7cece3..2292d573 100644 --- a/typedoc/classes/ComputeAllFaceDescriptorsTask.html +++ b/typedoc/classes/ComputeAllFaceDescriptorsTask.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/ComputeFaceDescriptorsTaskBase.html b/typedoc/classes/ComputeFaceDescriptorsTaskBase.html index 30735ba8..423e2d94 100644 --- a/typedoc/classes/ComputeFaceDescriptorsTaskBase.html +++ b/typedoc/classes/ComputeFaceDescriptorsTaskBase.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/ComputeSingleFaceDescriptorTask.html b/typedoc/classes/ComputeSingleFaceDescriptorTask.html index d309b661..e73730f2 100644 --- a/typedoc/classes/ComputeSingleFaceDescriptorTask.html +++ b/typedoc/classes/ComputeSingleFaceDescriptorTask.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/DetectAllFaceLandmarksTask.html b/typedoc/classes/DetectAllFaceLandmarksTask.html index 71207845..ec5ccec9 100644 --- a/typedoc/classes/DetectAllFaceLandmarksTask.html +++ b/typedoc/classes/DetectAllFaceLandmarksTask.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/DetectAllFacesTask.html b/typedoc/classes/DetectAllFacesTask.html index 3a61d054..43421395 100644 --- a/typedoc/classes/DetectAllFacesTask.html +++ b/typedoc/classes/DetectAllFacesTask.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/DetectFaceLandmarksTaskBase.html b/typedoc/classes/DetectFaceLandmarksTaskBase.html index cb60bfac..8fa976f9 100644 --- a/typedoc/classes/DetectFaceLandmarksTaskBase.html +++ b/typedoc/classes/DetectFaceLandmarksTaskBase.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/DetectFacesTaskBase.html b/typedoc/classes/DetectFacesTaskBase.html index 320b982b..066c497e 100644 --- a/typedoc/classes/DetectFacesTaskBase.html +++ b/typedoc/classes/DetectFacesTaskBase.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/DetectSingleFaceLandmarksTask.html b/typedoc/classes/DetectSingleFaceLandmarksTask.html index 2775dea3..318d49ba 100644 --- a/typedoc/classes/DetectSingleFaceLandmarksTask.html +++ b/typedoc/classes/DetectSingleFaceLandmarksTask.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/DetectSingleFaceTask.html b/typedoc/classes/DetectSingleFaceTask.html index 26a8b058..2115062a 100644 --- a/typedoc/classes/DetectSingleFaceTask.html +++ b/typedoc/classes/DetectSingleFaceTask.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/Dimensions.html b/typedoc/classes/Dimensions.html index 3bce1c79..c24cb6fd 100644 --- a/typedoc/classes/Dimensions.html +++ b/typedoc/classes/Dimensions.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/FaceDetection.html b/typedoc/classes/FaceDetection.html index a63f09b8..d2828906 100644 --- a/typedoc/classes/FaceDetection.html +++ b/typedoc/classes/FaceDetection.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/FaceDetectionNet.html b/typedoc/classes/FaceDetectionNet.html index 987d9af9..5c4570eb 100644 --- a/typedoc/classes/FaceDetectionNet.html +++ b/typedoc/classes/FaceDetectionNet.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/FaceExpressionNet.html b/typedoc/classes/FaceExpressionNet.html index 56905147..978d33d5 100644 --- a/typedoc/classes/FaceExpressionNet.html +++ b/typedoc/classes/FaceExpressionNet.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/FaceExpressions.html b/typedoc/classes/FaceExpressions.html index bd3bb81e..42bf2c59 100644 --- a/typedoc/classes/FaceExpressions.html +++ b/typedoc/classes/FaceExpressions.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/FaceLandmark68Net.html b/typedoc/classes/FaceLandmark68Net.html index ada7ccfb..c147ea09 100644 --- a/typedoc/classes/FaceLandmark68Net.html +++ b/typedoc/classes/FaceLandmark68Net.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/FaceLandmark68TinyNet.html b/typedoc/classes/FaceLandmark68TinyNet.html index 8d5d864d..bc5169c0 100644 --- a/typedoc/classes/FaceLandmark68TinyNet.html +++ b/typedoc/classes/FaceLandmark68TinyNet.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/FaceLandmarkNet.html b/typedoc/classes/FaceLandmarkNet.html index 02440043..cd2052c8 100644 --- a/typedoc/classes/FaceLandmarkNet.html +++ b/typedoc/classes/FaceLandmarkNet.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/FaceLandmarks.html b/typedoc/classes/FaceLandmarks.html index 9b1dcc00..828ace0a 100644 --- a/typedoc/classes/FaceLandmarks.html +++ b/typedoc/classes/FaceLandmarks.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/FaceLandmarks5.html b/typedoc/classes/FaceLandmarks5.html index d7b09ce6..8d6651c9 100644 --- a/typedoc/classes/FaceLandmarks5.html +++ b/typedoc/classes/FaceLandmarks5.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/FaceLandmarks68.html b/typedoc/classes/FaceLandmarks68.html index 62dd05a2..a9a97fc3 100644 --- a/typedoc/classes/FaceLandmarks68.html +++ b/typedoc/classes/FaceLandmarks68.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/FaceMatch.html b/typedoc/classes/FaceMatch.html index 90db10b7..ff19cf98 100644 --- a/typedoc/classes/FaceMatch.html +++ b/typedoc/classes/FaceMatch.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/FaceMatcher.html b/typedoc/classes/FaceMatcher.html index 7cd930c5..ee27ba54 100644 --- a/typedoc/classes/FaceMatcher.html +++ b/typedoc/classes/FaceMatcher.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/FaceRecognitionNet.html b/typedoc/classes/FaceRecognitionNet.html index 3daeb061..54469a6a 100644 --- a/typedoc/classes/FaceRecognitionNet.html +++ b/typedoc/classes/FaceRecognitionNet.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/LabeledBox.html b/typedoc/classes/LabeledBox.html index 0317e69b..4790bb16 100644 --- a/typedoc/classes/LabeledBox.html +++ b/typedoc/classes/LabeledBox.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/LabeledFaceDescriptors.html b/typedoc/classes/LabeledFaceDescriptors.html index c4235857..d61e6ab4 100644 --- a/typedoc/classes/LabeledFaceDescriptors.html +++ b/typedoc/classes/LabeledFaceDescriptors.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/NetInput.html b/typedoc/classes/NetInput.html index f2ea4444..d194f09d 100644 --- a/typedoc/classes/NetInput.html +++ b/typedoc/classes/NetInput.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/NeuralNetwork.html b/typedoc/classes/NeuralNetwork.html index db66aa7a..25aea1c4 100644 --- a/typedoc/classes/NeuralNetwork.html +++ b/typedoc/classes/NeuralNetwork.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/ObjectDetection.html b/typedoc/classes/ObjectDetection.html index 012ca8ff..283c4a7d 100644 --- a/typedoc/classes/ObjectDetection.html +++ b/typedoc/classes/ObjectDetection.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/Point.html b/typedoc/classes/Point.html index 02acead5..33704783 100644 --- a/typedoc/classes/Point.html +++ b/typedoc/classes/Point.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/PredictedBox.html b/typedoc/classes/PredictedBox.html index 74d3370a..2eb4ea00 100644 --- a/typedoc/classes/PredictedBox.html +++ b/typedoc/classes/PredictedBox.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/Rect.html b/typedoc/classes/Rect.html index 88829b00..be98c35f 100644 --- a/typedoc/classes/Rect.html +++ b/typedoc/classes/Rect.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/SsdMobilenetv1.html b/typedoc/classes/SsdMobilenetv1.html index 7e636bb4..1b29712b 100644 --- a/typedoc/classes/SsdMobilenetv1.html +++ b/typedoc/classes/SsdMobilenetv1.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/SsdMobilenetv1Options.html b/typedoc/classes/SsdMobilenetv1Options.html index 2a3758f0..bcb918d3 100644 --- a/typedoc/classes/SsdMobilenetv1Options.html +++ b/typedoc/classes/SsdMobilenetv1Options.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/TinyFaceDetector.html b/typedoc/classes/TinyFaceDetector.html index a6fe3413..4e3a4bfa 100644 --- a/typedoc/classes/TinyFaceDetector.html +++ b/typedoc/classes/TinyFaceDetector.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/TinyFaceDetectorOptions.html b/typedoc/classes/TinyFaceDetectorOptions.html index 7a7e68ed..df034175 100644 --- a/typedoc/classes/TinyFaceDetectorOptions.html +++ b/typedoc/classes/TinyFaceDetectorOptions.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/TinyYolov2.html b/typedoc/classes/TinyYolov2.html index cdc50af6..8095aa83 100644 --- a/typedoc/classes/TinyYolov2.html +++ b/typedoc/classes/TinyYolov2.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/TinyYolov2Options.html b/typedoc/classes/TinyYolov2Options.html index 6a60a553..61a0b09a 100644 --- a/typedoc/classes/TinyYolov2Options.html +++ b/typedoc/classes/TinyYolov2Options.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/draw.DrawBox.html b/typedoc/classes/draw.DrawBox.html index 6f1c981c..60fa0dc2 100644 --- a/typedoc/classes/draw.DrawBox.html +++ b/typedoc/classes/draw.DrawBox.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/draw.DrawBoxOptions.html b/typedoc/classes/draw.DrawBoxOptions.html index fc5d8391..de5adb2b 100644 --- a/typedoc/classes/draw.DrawBoxOptions.html +++ b/typedoc/classes/draw.DrawBoxOptions.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/draw.DrawFaceLandmarks.html b/typedoc/classes/draw.DrawFaceLandmarks.html index 5977433a..41dada78 100644 --- a/typedoc/classes/draw.DrawFaceLandmarks.html +++ b/typedoc/classes/draw.DrawFaceLandmarks.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/draw.DrawFaceLandmarksOptions.html b/typedoc/classes/draw.DrawFaceLandmarksOptions.html index b9586cb3..6888aaf7 100644 --- a/typedoc/classes/draw.DrawFaceLandmarksOptions.html +++ b/typedoc/classes/draw.DrawFaceLandmarksOptions.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/draw.DrawTextField.html b/typedoc/classes/draw.DrawTextField.html index fdb02944..b64ff5f3 100644 --- a/typedoc/classes/draw.DrawTextField.html +++ b/typedoc/classes/draw.DrawTextField.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/classes/draw.DrawTextFieldOptions.html b/typedoc/classes/draw.DrawTextFieldOptions.html index b8738b43..f920c5f7 100644 --- a/typedoc/classes/draw.DrawTextFieldOptions.html +++ b/typedoc/classes/draw.DrawTextFieldOptions.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/enums/Gender.html b/typedoc/enums/Gender.html index 0f53a6e4..6c30a358 100644 --- a/typedoc/enums/Gender.html +++ b/typedoc/enums/Gender.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/enums/draw.AnchorPosition.html b/typedoc/enums/draw.AnchorPosition.html index 693f5404..42356346 100644 --- a/typedoc/enums/draw.AnchorPosition.html +++ b/typedoc/enums/draw.AnchorPosition.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/allFaces.html b/typedoc/functions/allFaces.html index 716995e8..edddd949 100644 --- a/typedoc/functions/allFaces.html +++ b/typedoc/functions/allFaces.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/allFacesSsdMobilenetv1.html b/typedoc/functions/allFacesSsdMobilenetv1.html index dc4c252a..c0ce3ea9 100644 --- a/typedoc/functions/allFacesSsdMobilenetv1.html +++ b/typedoc/functions/allFacesSsdMobilenetv1.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/allFacesTinyYolov2.html b/typedoc/functions/allFacesTinyYolov2.html index a511f241..3c1070d8 100644 --- a/typedoc/functions/allFacesTinyYolov2.html +++ b/typedoc/functions/allFacesTinyYolov2.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/awaitMediaLoaded.html b/typedoc/functions/awaitMediaLoaded.html index d4090845..0ceecdb1 100644 --- a/typedoc/functions/awaitMediaLoaded.html +++ b/typedoc/functions/awaitMediaLoaded.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/bufferToImage.html b/typedoc/functions/bufferToImage.html index 1861a9e7..c0e36f67 100644 --- a/typedoc/functions/bufferToImage.html +++ b/typedoc/functions/bufferToImage.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/computeFaceDescriptor.html b/typedoc/functions/computeFaceDescriptor.html index 4812f5f1..46d0ee18 100644 --- a/typedoc/functions/computeFaceDescriptor.html +++ b/typedoc/functions/computeFaceDescriptor.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/createCanvas.html b/typedoc/functions/createCanvas.html index 4e365357..199ee415 100644 --- a/typedoc/functions/createCanvas.html +++ b/typedoc/functions/createCanvas.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/createCanvasFromMedia.html b/typedoc/functions/createCanvasFromMedia.html index e330fbb8..ac72304d 100644 --- a/typedoc/functions/createCanvasFromMedia.html +++ b/typedoc/functions/createCanvasFromMedia.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/createFaceDetectionNet.html b/typedoc/functions/createFaceDetectionNet.html index 8bf5378f..930e649e 100644 --- a/typedoc/functions/createFaceDetectionNet.html +++ b/typedoc/functions/createFaceDetectionNet.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/createFaceRecognitionNet.html b/typedoc/functions/createFaceRecognitionNet.html index 4c4e4787..7144213e 100644 --- a/typedoc/functions/createFaceRecognitionNet.html +++ b/typedoc/functions/createFaceRecognitionNet.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/createSsdMobilenetv1.html b/typedoc/functions/createSsdMobilenetv1.html index 716f9a5a..c7affb9a 100644 --- a/typedoc/functions/createSsdMobilenetv1.html +++ b/typedoc/functions/createSsdMobilenetv1.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/createTinyFaceDetector.html b/typedoc/functions/createTinyFaceDetector.html index 18984925..cafa7883 100644 --- a/typedoc/functions/createTinyFaceDetector.html +++ b/typedoc/functions/createTinyFaceDetector.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/createTinyYolov2.html b/typedoc/functions/createTinyYolov2.html index e038f445..2b50dfcf 100644 --- a/typedoc/functions/createTinyYolov2.html +++ b/typedoc/functions/createTinyYolov2.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/detectAllFaces.html b/typedoc/functions/detectAllFaces.html index 61224025..f4b2aeab 100644 --- a/typedoc/functions/detectAllFaces.html +++ b/typedoc/functions/detectAllFaces.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/detectFaceLandmarks.html b/typedoc/functions/detectFaceLandmarks.html index 879ab1aa..4d470849 100644 --- a/typedoc/functions/detectFaceLandmarks.html +++ b/typedoc/functions/detectFaceLandmarks.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/detectFaceLandmarksTiny.html b/typedoc/functions/detectFaceLandmarksTiny.html index 62c67cb5..5b7d857d 100644 --- a/typedoc/functions/detectFaceLandmarksTiny.html +++ b/typedoc/functions/detectFaceLandmarksTiny.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/detectLandmarks.html b/typedoc/functions/detectLandmarks.html index b2735e26..3a65721a 100644 --- a/typedoc/functions/detectLandmarks.html +++ b/typedoc/functions/detectLandmarks.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/detectSingleFace.html b/typedoc/functions/detectSingleFace.html index dd052ed1..87133db8 100644 --- a/typedoc/functions/detectSingleFace.html +++ b/typedoc/functions/detectSingleFace.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/draw.drawContour.html b/typedoc/functions/draw.drawContour.html index 8a8a3e3c..54ae6966 100644 --- a/typedoc/functions/draw.drawContour.html +++ b/typedoc/functions/draw.drawContour.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/draw.drawDetections.html b/typedoc/functions/draw.drawDetections.html index 77c89a6e..2a7fc5bc 100644 --- a/typedoc/functions/draw.drawDetections.html +++ b/typedoc/functions/draw.drawDetections.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/draw.drawFaceExpressions.html b/typedoc/functions/draw.drawFaceExpressions.html index 2fd0f24f..1ba76ba9 100644 --- a/typedoc/functions/draw.drawFaceExpressions.html +++ b/typedoc/functions/draw.drawFaceExpressions.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/draw.drawFaceLandmarks-1.html b/typedoc/functions/draw.drawFaceLandmarks-1.html index cb810a2a..54860cc1 100644 --- a/typedoc/functions/draw.drawFaceLandmarks-1.html +++ b/typedoc/functions/draw.drawFaceLandmarks-1.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/euclideanDistance.html b/typedoc/functions/euclideanDistance.html index cef7d8ac..bf93d76a 100644 --- a/typedoc/functions/euclideanDistance.html +++ b/typedoc/functions/euclideanDistance.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/extendWithAge.html b/typedoc/functions/extendWithAge.html index f9e9aacc..c9717a7c 100644 --- a/typedoc/functions/extendWithAge.html +++ b/typedoc/functions/extendWithAge.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/extendWithFaceDescriptor.html b/typedoc/functions/extendWithFaceDescriptor.html index bac3b513..4702f735 100644 --- a/typedoc/functions/extendWithFaceDescriptor.html +++ b/typedoc/functions/extendWithFaceDescriptor.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/extendWithFaceDetection.html b/typedoc/functions/extendWithFaceDetection.html index 64f5d891..74a6053d 100644 --- a/typedoc/functions/extendWithFaceDetection.html +++ b/typedoc/functions/extendWithFaceDetection.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/extendWithFaceExpressions.html b/typedoc/functions/extendWithFaceExpressions.html index 7b84e28c..4a119a81 100644 --- a/typedoc/functions/extendWithFaceExpressions.html +++ b/typedoc/functions/extendWithFaceExpressions.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/extendWithFaceLandmarks.html b/typedoc/functions/extendWithFaceLandmarks.html index 2832d39a..bc8992e9 100644 --- a/typedoc/functions/extendWithFaceLandmarks.html +++ b/typedoc/functions/extendWithFaceLandmarks.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/extendWithGender.html b/typedoc/functions/extendWithGender.html index d82a3b6e..24d6ed7f 100644 --- a/typedoc/functions/extendWithGender.html +++ b/typedoc/functions/extendWithGender.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/extractFaceTensors.html b/typedoc/functions/extractFaceTensors.html index 53e5d1c3..0b683397 100644 --- a/typedoc/functions/extractFaceTensors.html +++ b/typedoc/functions/extractFaceTensors.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/extractFaces.html b/typedoc/functions/extractFaces.html index e2560eb9..4f016811 100644 --- a/typedoc/functions/extractFaces.html +++ b/typedoc/functions/extractFaces.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/fetchImage.html b/typedoc/functions/fetchImage.html index 91ce8dc4..bfe3726e 100644 --- a/typedoc/functions/fetchImage.html +++ b/typedoc/functions/fetchImage.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/fetchJson.html b/typedoc/functions/fetchJson.html index 5fd874a5..aa40037e 100644 --- a/typedoc/functions/fetchJson.html +++ b/typedoc/functions/fetchJson.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/fetchNetWeights.html b/typedoc/functions/fetchNetWeights.html index 30835145..b4d7ae90 100644 --- a/typedoc/functions/fetchNetWeights.html +++ b/typedoc/functions/fetchNetWeights.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/fetchOrThrow.html b/typedoc/functions/fetchOrThrow.html index 4cae3362..0a578c06 100644 --- a/typedoc/functions/fetchOrThrow.html +++ b/typedoc/functions/fetchOrThrow.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/fetchVideo.html b/typedoc/functions/fetchVideo.html index ee680eea..20f2a079 100644 --- a/typedoc/functions/fetchVideo.html +++ b/typedoc/functions/fetchVideo.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/getContext2dOrThrow.html b/typedoc/functions/getContext2dOrThrow.html index 7b189b94..afdbc764 100644 --- a/typedoc/functions/getContext2dOrThrow.html +++ b/typedoc/functions/getContext2dOrThrow.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/getMediaDimensions.html b/typedoc/functions/getMediaDimensions.html index 29da01bd..27e0e9b0 100644 --- a/typedoc/functions/getMediaDimensions.html +++ b/typedoc/functions/getMediaDimensions.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/imageTensorToCanvas.html b/typedoc/functions/imageTensorToCanvas.html index 548e18c2..06c17580 100644 --- a/typedoc/functions/imageTensorToCanvas.html +++ b/typedoc/functions/imageTensorToCanvas.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/imageToSquare.html b/typedoc/functions/imageToSquare.html index f8731161..c0825aa8 100644 --- a/typedoc/functions/imageToSquare.html +++ b/typedoc/functions/imageToSquare.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/inverseSigmoid.html b/typedoc/functions/inverseSigmoid.html index 5e5d332e..4f899d9b 100644 --- a/typedoc/functions/inverseSigmoid.html +++ b/typedoc/functions/inverseSigmoid.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/iou.html b/typedoc/functions/iou.html index 2d394bef..2149fad3 100644 --- a/typedoc/functions/iou.html +++ b/typedoc/functions/iou.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/isMediaElement.html b/typedoc/functions/isMediaElement.html index 23d447e2..46685434 100644 --- a/typedoc/functions/isMediaElement.html +++ b/typedoc/functions/isMediaElement.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/isMediaLoaded.html b/typedoc/functions/isMediaLoaded.html index 3b17eddc..c570ca96 100644 --- a/typedoc/functions/isMediaLoaded.html +++ b/typedoc/functions/isMediaLoaded.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/isWithAge.html b/typedoc/functions/isWithAge.html index 04e79a13..6d0fbe77 100644 --- a/typedoc/functions/isWithAge.html +++ b/typedoc/functions/isWithAge.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/isWithFaceDetection.html b/typedoc/functions/isWithFaceDetection.html index 6a655c4a..1730cd50 100644 --- a/typedoc/functions/isWithFaceDetection.html +++ b/typedoc/functions/isWithFaceDetection.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/isWithFaceExpressions.html b/typedoc/functions/isWithFaceExpressions.html index c6b4419d..1bfd4218 100644 --- a/typedoc/functions/isWithFaceExpressions.html +++ b/typedoc/functions/isWithFaceExpressions.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/isWithFaceLandmarks.html b/typedoc/functions/isWithFaceLandmarks.html index 6eddfcd8..08c41d88 100644 --- a/typedoc/functions/isWithFaceLandmarks.html +++ b/typedoc/functions/isWithFaceLandmarks.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/isWithGender.html b/typedoc/functions/isWithGender.html index 000dc27a..547ad71b 100644 --- a/typedoc/functions/isWithGender.html +++ b/typedoc/functions/isWithGender.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/loadAgeGenderModel.html b/typedoc/functions/loadAgeGenderModel.html index 17bce467..5e4844e4 100644 --- a/typedoc/functions/loadAgeGenderModel.html +++ b/typedoc/functions/loadAgeGenderModel.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/loadFaceDetectionModel.html b/typedoc/functions/loadFaceDetectionModel.html index 7d1be614..44afa475 100644 --- a/typedoc/functions/loadFaceDetectionModel.html +++ b/typedoc/functions/loadFaceDetectionModel.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/loadFaceExpressionModel.html b/typedoc/functions/loadFaceExpressionModel.html index d5060e9e..9189ec5d 100644 --- a/typedoc/functions/loadFaceExpressionModel.html +++ b/typedoc/functions/loadFaceExpressionModel.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/loadFaceLandmarkModel.html b/typedoc/functions/loadFaceLandmarkModel.html index 190a4999..16247435 100644 --- a/typedoc/functions/loadFaceLandmarkModel.html +++ b/typedoc/functions/loadFaceLandmarkModel.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/loadFaceLandmarkTinyModel.html b/typedoc/functions/loadFaceLandmarkTinyModel.html index d1caa537..90a52c92 100644 --- a/typedoc/functions/loadFaceLandmarkTinyModel.html +++ b/typedoc/functions/loadFaceLandmarkTinyModel.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/loadFaceRecognitionModel.html b/typedoc/functions/loadFaceRecognitionModel.html index cab20f2f..10abdb07 100644 --- a/typedoc/functions/loadFaceRecognitionModel.html +++ b/typedoc/functions/loadFaceRecognitionModel.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/loadSsdMobilenetv1Model.html b/typedoc/functions/loadSsdMobilenetv1Model.html index 748ddbdc..4e4d30ca 100644 --- a/typedoc/functions/loadSsdMobilenetv1Model.html +++ b/typedoc/functions/loadSsdMobilenetv1Model.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/loadTinyFaceDetectorModel.html b/typedoc/functions/loadTinyFaceDetectorModel.html index ad438f8e..1a4570f5 100644 --- a/typedoc/functions/loadTinyFaceDetectorModel.html +++ b/typedoc/functions/loadTinyFaceDetectorModel.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/loadTinyYolov2Model.html b/typedoc/functions/loadTinyYolov2Model.html index e9e7cf65..00f4026c 100644 --- a/typedoc/functions/loadTinyYolov2Model.html +++ b/typedoc/functions/loadTinyYolov2Model.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/loadWeightMap.html b/typedoc/functions/loadWeightMap.html index fa21dad9..dabfa7aa 100644 --- a/typedoc/functions/loadWeightMap.html +++ b/typedoc/functions/loadWeightMap.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/locateFaces.html b/typedoc/functions/locateFaces.html index c495c313..97827884 100644 --- a/typedoc/functions/locateFaces.html +++ b/typedoc/functions/locateFaces.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/matchDimensions.html b/typedoc/functions/matchDimensions.html index a05f8b28..0df4cea1 100644 --- a/typedoc/functions/matchDimensions.html +++ b/typedoc/functions/matchDimensions.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/minBbox.html b/typedoc/functions/minBbox.html index c9589872..870bca4b 100644 --- a/typedoc/functions/minBbox.html +++ b/typedoc/functions/minBbox.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/nonMaxSuppression.html b/typedoc/functions/nonMaxSuppression.html index a044f336..ac845b8c 100644 --- a/typedoc/functions/nonMaxSuppression.html +++ b/typedoc/functions/nonMaxSuppression.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/normalize.html b/typedoc/functions/normalize.html index 629d8806..002cb1b3 100644 --- a/typedoc/functions/normalize.html +++ b/typedoc/functions/normalize.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/padToSquare.html b/typedoc/functions/padToSquare.html index 55f7e8bc..7645347c 100644 --- a/typedoc/functions/padToSquare.html +++ b/typedoc/functions/padToSquare.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/predictAgeAndGender.html b/typedoc/functions/predictAgeAndGender.html index c3eb7962..0f1241df 100644 --- a/typedoc/functions/predictAgeAndGender.html +++ b/typedoc/functions/predictAgeAndGender.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/recognizeFaceExpressions.html b/typedoc/functions/recognizeFaceExpressions.html index 267eee9c..25450d0c 100644 --- a/typedoc/functions/recognizeFaceExpressions.html +++ b/typedoc/functions/recognizeFaceExpressions.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/resizeResults.html b/typedoc/functions/resizeResults.html index c16a19d9..8cdc6577 100644 --- a/typedoc/functions/resizeResults.html +++ b/typedoc/functions/resizeResults.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/resolveInput.html b/typedoc/functions/resolveInput.html index 7ba6c519..b9b70107 100644 --- a/typedoc/functions/resolveInput.html +++ b/typedoc/functions/resolveInput.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/shuffleArray.html b/typedoc/functions/shuffleArray.html index daf7fcc4..56e748c3 100644 --- a/typedoc/functions/shuffleArray.html +++ b/typedoc/functions/shuffleArray.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/sigmoid.html b/typedoc/functions/sigmoid.html index 808e005a..a75d719b 100644 --- a/typedoc/functions/sigmoid.html +++ b/typedoc/functions/sigmoid.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/ssdMobilenetv1-1.html b/typedoc/functions/ssdMobilenetv1-1.html index ab4ee7b4..059ba7b9 100644 --- a/typedoc/functions/ssdMobilenetv1-1.html +++ b/typedoc/functions/ssdMobilenetv1-1.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/tinyFaceDetector-1.html b/typedoc/functions/tinyFaceDetector-1.html index a4c0af27..9d434752 100644 --- a/typedoc/functions/tinyFaceDetector-1.html +++ b/typedoc/functions/tinyFaceDetector-1.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/tinyYolov2-1.html b/typedoc/functions/tinyYolov2-1.html index fc616ddd..e1afc344 100644 --- a/typedoc/functions/tinyYolov2-1.html +++ b/typedoc/functions/tinyYolov2-1.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/toNetInput.html b/typedoc/functions/toNetInput.html index 00967bc7..bfd99769 100644 --- a/typedoc/functions/toNetInput.html +++ b/typedoc/functions/toNetInput.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/utils.computeReshapedDimensions.html b/typedoc/functions/utils.computeReshapedDimensions.html index 861b6693..2c190d07 100644 --- a/typedoc/functions/utils.computeReshapedDimensions.html +++ b/typedoc/functions/utils.computeReshapedDimensions.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/utils.getCenterPoint.html b/typedoc/functions/utils.getCenterPoint.html index b1075a02..3a1ff556 100644 --- a/typedoc/functions/utils.getCenterPoint.html +++ b/typedoc/functions/utils.getCenterPoint.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/utils.isDimensions.html b/typedoc/functions/utils.isDimensions.html index 03dc7b75..962840d5 100644 --- a/typedoc/functions/utils.isDimensions.html +++ b/typedoc/functions/utils.isDimensions.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/utils.isEven.html b/typedoc/functions/utils.isEven.html index edceaa0b..4e32ebee 100644 --- a/typedoc/functions/utils.isEven.html +++ b/typedoc/functions/utils.isEven.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/utils.isFloat.html b/typedoc/functions/utils.isFloat.html index b0fc7f83..0dd8a9a3 100644 --- a/typedoc/functions/utils.isFloat.html +++ b/typedoc/functions/utils.isFloat.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/utils.isTensor.html b/typedoc/functions/utils.isTensor.html index 809f91ef..5a47a487 100644 --- a/typedoc/functions/utils.isTensor.html +++ b/typedoc/functions/utils.isTensor.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/utils.isTensor1D.html b/typedoc/functions/utils.isTensor1D.html index 2a793057..90371453 100644 --- a/typedoc/functions/utils.isTensor1D.html +++ b/typedoc/functions/utils.isTensor1D.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/utils.isTensor2D.html b/typedoc/functions/utils.isTensor2D.html index 5a793952..4529c093 100644 --- a/typedoc/functions/utils.isTensor2D.html +++ b/typedoc/functions/utils.isTensor2D.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/utils.isTensor3D.html b/typedoc/functions/utils.isTensor3D.html index 20d8ab52..24cfac3d 100644 --- a/typedoc/functions/utils.isTensor3D.html +++ b/typedoc/functions/utils.isTensor3D.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/utils.isTensor4D.html b/typedoc/functions/utils.isTensor4D.html index 3bd7f561..78722689 100644 --- a/typedoc/functions/utils.isTensor4D.html +++ b/typedoc/functions/utils.isTensor4D.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/utils.isValidNumber.html b/typedoc/functions/utils.isValidNumber.html index 5cbdee97..f631b3bd 100644 --- a/typedoc/functions/utils.isValidNumber.html +++ b/typedoc/functions/utils.isValidNumber.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/utils.isValidProbablitiy.html b/typedoc/functions/utils.isValidProbablitiy.html index 0635d190..14994fa0 100644 --- a/typedoc/functions/utils.isValidProbablitiy.html +++ b/typedoc/functions/utils.isValidProbablitiy.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/utils.range.html b/typedoc/functions/utils.range.html index 68d123bb..aceaa69b 100644 --- a/typedoc/functions/utils.range.html +++ b/typedoc/functions/utils.range.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/utils.round.html b/typedoc/functions/utils.round.html index c02dc261..a06a525f 100644 --- a/typedoc/functions/utils.round.html +++ b/typedoc/functions/utils.round.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/functions/validateConfig.html b/typedoc/functions/validateConfig.html index d93a5262..8a06b96b 100644 --- a/typedoc/functions/validateConfig.html +++ b/typedoc/functions/validateConfig.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/index.html b/typedoc/index.html index 4188c5c2..3a2d5a73 100644 --- a/typedoc/index.html +++ b/typedoc/index.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/interfaces/IBoundingBox.html b/typedoc/interfaces/IBoundingBox.html index f6f29d1f..eeac4c4d 100644 --- a/typedoc/interfaces/IBoundingBox.html +++ b/typedoc/interfaces/IBoundingBox.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/interfaces/IDimensions.html b/typedoc/interfaces/IDimensions.html index ccd3ea18..9fcce231 100644 --- a/typedoc/interfaces/IDimensions.html +++ b/typedoc/interfaces/IDimensions.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/interfaces/IFaceDetecion.html b/typedoc/interfaces/IFaceDetecion.html index 61354aff..da28c03a 100644 --- a/typedoc/interfaces/IFaceDetecion.html +++ b/typedoc/interfaces/IFaceDetecion.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/interfaces/IFaceLandmarks.html b/typedoc/interfaces/IFaceLandmarks.html index 09ad423c..0b4c7b85 100644 --- a/typedoc/interfaces/IFaceLandmarks.html +++ b/typedoc/interfaces/IFaceLandmarks.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/interfaces/IFaceMatch.html b/typedoc/interfaces/IFaceMatch.html index 81143472..6210e0ec 100644 --- a/typedoc/interfaces/IFaceMatch.html +++ b/typedoc/interfaces/IFaceMatch.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/interfaces/IPoint.html b/typedoc/interfaces/IPoint.html index 49517bcf..e1a99469 100644 --- a/typedoc/interfaces/IPoint.html +++ b/typedoc/interfaces/IPoint.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/interfaces/IRect.html b/typedoc/interfaces/IRect.html index 11c4199e..c750ac2a 100644 --- a/typedoc/interfaces/IRect.html +++ b/typedoc/interfaces/IRect.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/interfaces/ISsdMobilenetv1Options.html b/typedoc/interfaces/ISsdMobilenetv1Options.html index 45535874..6e60dfee 100644 --- a/typedoc/interfaces/ISsdMobilenetv1Options.html +++ b/typedoc/interfaces/ISsdMobilenetv1Options.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/interfaces/ITinyYolov2Options.html b/typedoc/interfaces/ITinyYolov2Options.html index aa91ccb6..c54f7b42 100644 --- a/typedoc/interfaces/ITinyYolov2Options.html +++ b/typedoc/interfaces/ITinyYolov2Options.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/interfaces/draw.IDrawBoxOptions.html b/typedoc/interfaces/draw.IDrawBoxOptions.html index 56f3ac90..da707e4b 100644 --- a/typedoc/interfaces/draw.IDrawBoxOptions.html +++ b/typedoc/interfaces/draw.IDrawBoxOptions.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/interfaces/draw.IDrawFaceLandmarksOptions.html b/typedoc/interfaces/draw.IDrawFaceLandmarksOptions.html index 88cf2db1..2037bb09 100644 --- a/typedoc/interfaces/draw.IDrawFaceLandmarksOptions.html +++ b/typedoc/interfaces/draw.IDrawFaceLandmarksOptions.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/interfaces/draw.IDrawTextFieldOptions.html b/typedoc/interfaces/draw.IDrawTextFieldOptions.html index 161ba626..7f7b4e09 100644 --- a/typedoc/interfaces/draw.IDrawTextFieldOptions.html +++ b/typedoc/interfaces/draw.IDrawTextFieldOptions.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/modules/draw.html b/typedoc/modules/draw.html index d825990c..7d572714 100644 --- a/typedoc/modules/draw.html +++ b/typedoc/modules/draw.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/modules/utils.html b/typedoc/modules/utils.html index e9a68128..e85ec47d 100644 --- a/typedoc/modules/utils.html +++ b/typedoc/modules/utils.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/AgeAndGenderPrediction.html b/typedoc/types/AgeAndGenderPrediction.html index bcff7429..9032be7d 100644 --- a/typedoc/types/AgeAndGenderPrediction.html +++ b/typedoc/types/AgeAndGenderPrediction.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/BatchNorm.html b/typedoc/types/BatchNorm.html index ee2ea47d..5e5b5c57 100644 --- a/typedoc/types/BatchNorm.html +++ b/typedoc/types/BatchNorm.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/ConvWithBatchNorm.html b/typedoc/types/ConvWithBatchNorm.html index 06a87f96..1c51ad5b 100644 --- a/typedoc/types/ConvWithBatchNorm.html +++ b/typedoc/types/ConvWithBatchNorm.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/DefaultTinyYolov2NetParams.html b/typedoc/types/DefaultTinyYolov2NetParams.html index 7e1ec21f..dcf168ad 100644 --- a/typedoc/types/DefaultTinyYolov2NetParams.html +++ b/typedoc/types/DefaultTinyYolov2NetParams.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/Environment.html b/typedoc/types/Environment.html index 019dc29b..47cd7860 100644 --- a/typedoc/types/Environment.html +++ b/typedoc/types/Environment.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/FaceDetectionFunction.html b/typedoc/types/FaceDetectionFunction.html index bfa7af4e..bc526c62 100644 --- a/typedoc/types/FaceDetectionFunction.html +++ b/typedoc/types/FaceDetectionFunction.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/FaceDetectionOptions.html b/typedoc/types/FaceDetectionOptions.html index e3c8a3ce..498e7557 100644 --- a/typedoc/types/FaceDetectionOptions.html +++ b/typedoc/types/FaceDetectionOptions.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/FileSystem.html b/typedoc/types/FileSystem.html index ad746b22..8b02436b 100644 --- a/typedoc/types/FileSystem.html +++ b/typedoc/types/FileSystem.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/ITinyFaceDetectorOptions.html b/typedoc/types/ITinyFaceDetectorOptions.html index 6b7c3125..16b11770 100644 --- a/typedoc/types/ITinyFaceDetectorOptions.html +++ b/typedoc/types/ITinyFaceDetectorOptions.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/MobilenetParams.html b/typedoc/types/MobilenetParams.html index 4c992c99..dd8e7ad5 100644 --- a/typedoc/types/MobilenetParams.html +++ b/typedoc/types/MobilenetParams.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/NetOutput.html b/typedoc/types/NetOutput.html index 336167fd..e25eeec9 100644 --- a/typedoc/types/NetOutput.html +++ b/typedoc/types/NetOutput.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/NetParams.html b/typedoc/types/NetParams.html index 909c3a2e..c813713b 100644 --- a/typedoc/types/NetParams.html +++ b/typedoc/types/NetParams.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/TMediaElement.html b/typedoc/types/TMediaElement.html index ffbd442f..c073a9cf 100644 --- a/typedoc/types/TMediaElement.html +++ b/typedoc/types/TMediaElement.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/TNetInput.html b/typedoc/types/TNetInput.html index 8698cd87..8a7467ba 100644 --- a/typedoc/types/TNetInput.html +++ b/typedoc/types/TNetInput.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/TNetInputArg.html b/typedoc/types/TNetInputArg.html index 69d18084..8845180a 100644 --- a/typedoc/types/TNetInputArg.html +++ b/typedoc/types/TNetInputArg.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/TResolvedNetInput.html b/typedoc/types/TResolvedNetInput.html index 4240aa14..c6b2c029 100644 --- a/typedoc/types/TResolvedNetInput.html +++ b/typedoc/types/TResolvedNetInput.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/TinyYolov2Config.html b/typedoc/types/TinyYolov2Config.html index 429d3c10..449ebc6d 100644 --- a/typedoc/types/TinyYolov2Config.html +++ b/typedoc/types/TinyYolov2Config.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/TinyYolov2NetParams.html b/typedoc/types/TinyYolov2NetParams.html index 2169d003..99e11382 100644 --- a/typedoc/types/TinyYolov2NetParams.html +++ b/typedoc/types/TinyYolov2NetParams.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/WithAge.html b/typedoc/types/WithAge.html index bc5550e0..0b98863b 100644 --- a/typedoc/types/WithAge.html +++ b/typedoc/types/WithAge.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/WithFaceDescriptor.html b/typedoc/types/WithFaceDescriptor.html index aca4f5b3..d09d9317 100644 --- a/typedoc/types/WithFaceDescriptor.html +++ b/typedoc/types/WithFaceDescriptor.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/WithFaceDetection.html b/typedoc/types/WithFaceDetection.html index d551e406..31b71320 100644 --- a/typedoc/types/WithFaceDetection.html +++ b/typedoc/types/WithFaceDetection.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/WithFaceExpressions.html b/typedoc/types/WithFaceExpressions.html index fe989c28..ff1ae605 100644 --- a/typedoc/types/WithFaceExpressions.html +++ b/typedoc/types/WithFaceExpressions.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/WithFaceLandmarks.html b/typedoc/types/WithFaceLandmarks.html index fbf17178..86021e21 100644 --- a/typedoc/types/WithFaceLandmarks.html +++ b/typedoc/types/WithFaceLandmarks.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/WithGender.html b/typedoc/types/WithGender.html index 1cde3037..da2e488f 100644 --- a/typedoc/types/WithGender.html +++ b/typedoc/types/WithGender.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/draw.DrawFaceExpressionsInput.html b/typedoc/types/draw.DrawFaceExpressionsInput.html index 39a9fd9e..aa73f6a0 100644 --- a/typedoc/types/draw.DrawFaceExpressionsInput.html +++ b/typedoc/types/draw.DrawFaceExpressionsInput.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/draw.DrawFaceLandmarksInput.html b/typedoc/types/draw.DrawFaceLandmarksInput.html index 495456c4..b22b3314 100644 --- a/typedoc/types/draw.DrawFaceLandmarksInput.html +++ b/typedoc/types/draw.DrawFaceLandmarksInput.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/types/draw.TDrawDetectionsInput.html b/typedoc/types/draw.TDrawDetectionsInput.html index bb0be86e..c17b3bbb 100644 --- a/typedoc/types/draw.TDrawDetectionsInput.html +++ b/typedoc/types/draw.TDrawDetectionsInput.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/variables/FACE_EXPRESSION_LABELS.html b/typedoc/variables/FACE_EXPRESSION_LABELS.html index fb53d428..123817a7 100644 --- a/typedoc/variables/FACE_EXPRESSION_LABELS.html +++ b/typedoc/variables/FACE_EXPRESSION_LABELS.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/variables/env.html b/typedoc/variables/env.html index 6e61674f..4a60bf02 100644 --- a/typedoc/variables/env.html +++ b/typedoc/variables/env.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/variables/nets.html b/typedoc/variables/nets.html index 359b5836..b591c301 100644 --- a/typedoc/variables/nets.html +++ b/typedoc/variables/nets.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6
    diff --git a/typedoc/variables/version.html b/typedoc/variables/version.html index 3afa9caf..5d1118e1 100644 --- a/typedoc/variables/version.html +++ b/typedoc/variables/version.html @@ -6,7 +6,7 @@
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.6